CN116438567A - 用于视频编码的基于神经网络的环内滤波 - Google Patents

用于视频编码的基于神经网络的环内滤波 Download PDF

Info

Publication number
CN116438567A
CN116438567A CN202180070827.8A CN202180070827A CN116438567A CN 116438567 A CN116438567 A CN 116438567A CN 202180070827 A CN202180070827 A CN 202180070827A CN 116438567 A CN116438567 A CN 116438567A
Authority
CN
China
Prior art keywords
branch
pictures
neural network
block
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
CN202180070827.8A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN116438567A publication Critical patent/CN116438567A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. 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/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/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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/20081Training; Learning
    • 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)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供了用于在视频处理中执行多密度神经网络的训练和执行的方法。一种示例性方法包括:接收包括多张图片的视频流;使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。

Description

用于视频编码的基于神经网络的环内滤波
技术领域
本公开总体上涉及视频处理,更具体地,涉及用于执行视频压缩和解压缩的方法和系统。
背景技术
视频是捕获视觉信息的静态图片集(或“静态帧集”)。为了减少内存的存储空间和传输带宽,视频可以在存储或传输之前压缩,并且在显示之前解压缩。压缩过程通常被称为编码,解压缩过程通常被称为解码。目前存在各种使用标准化视频编码技术的视频编码格式,最常见的是基于预测、变换、量化、熵编码和环路滤波。由标准化组织开发指定特定视频编码格式的视频编码标准,例如,高效视频编码(例如,HEVC/H.265)标准、通用视频编码(例如,VVC/H.266)标准和数字音视频编解码技术标准(AVS)。随着越来越多先进的视频编码技术被视频标准所采用,新的视频编码标准的编码效率也越来越高。
发明内容
本公开的实施例提供了一种用于在视频处理中训练神经网络的方法,该方法包括:接收多张训练图片;使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
本公开的实施例提供了一种在视频处理中使用神经网络的方法,该方法包括:接收包括多张图片的视频流;使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
本公开的实施例还提供了一种用于在视频处理中训练神经网络的系统,该系统包括:存储器,存储器存储指令集;以及处理器,处理器设置为执行指令集,以使系统执行:接收多张训练图片;使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
本公开的实施例还提供了一种在视频处理中使用神经网络的系统,该系统包括:存储器,存储器存储指令集;以及处理器,处理器设置为执行指令集,以使系统执行:接收包括多张图片的视频流;使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
本公开的实施例还提供了一种存储指令集的非易失性计算机可读介质,指令集可由装置的一个或多个处理器执行,以使装置启动用于在视频处理中训练神经网络的方法,该方法包括:接收多张训练图片;使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
本公开的实施例还提供了一种存储指令集的非易失性计算机可读介质,指令集可由装置的一个或多个处理器执行,以使装置启动在视频处理中使用神经网络的方法,该方法包括:接收包括多张图片的视频流;使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
附图说明
在以下详细描述和附图中示出了本公开的实施例和相应方面。图中所示的各种特征没有按比例绘制。
图1示出了根据本公开的一些实施例的视频序列的结构图。
图2A示出了根据本公开的一些实施例的编码过程的示意图。
图2B示出了根据本公开的一些实施例的另一编码过程的示意图。
图3A示出了根据本公开的一些实施例的解码过程的示意图。
图3B示出了根据本公开的一些实施例的另一解码过程的示意图。
图4示出了根据本公开的一些实施例的解码过程中具有色度缩放的亮度映射滤波器的示意图。
图5示出了根据本公开的一些实施例的自适应环路滤波器的菱形滤波器形状的示图。
图6A示出了根据本公开的一些实施例的作为环内滤波的示例神经网络架构的示意图。
图6B示出了根据本公开的一些实施例的示例残差块的示意图。
图7示出了根据本公开的一些实施例的神经网络环内滤波的多密度块的示意图。
图8示出了根据本公开的一些实施例的多密度块中下采样模块的示意图。
图9示出了根据本公开的一些实施例的多密度块中上采样模块的示意图。
图10示出了根据本公开的一些实施例的基于多密度块神经网络的示意图。
图11示出了根据本公开的一些实施例的用于在视频处理中执行神经网络的训练方法的流程图。
图12示出了根据本公开的一些实施例的用于执行包括预处理和后处理的神经网络的训练方法的流程图。
图13示出了根据本公开的一些实施例的在视频处理中使用神经网络方法的流程图。
图14示出了根据本公开的一些实施例的使用包括预处理和后处理的神经网络方法的流程图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,其中,除非额外说明,不同附图中的相同数字表示相同或相似的元件。在以下对本公开实施例的描述中提出的实施方案并不表示与本公开一致的所有实现方案。相反,它们仅仅是与所附权利要求中所描述的本公开内容相关的装置和方法的示例。下面将更详细地描述本公开的一种可选实施例。如果本公开提供的术语和定义与引入的术语和/或定义相冲突,则以本公开提供的术语和定义为准。
ITU-T视频编码专家组(ITU-TVCEG)和ISO/IEC运动图片专家组(ISO/IECMPEG)的联合视频专家组(JVET)目前正在开发多功能视频编码(VVC/H.266)标准,其目的为将其前身的高效视频编码(HEVC/H.265)标准的压缩效率提高一倍。换句话说,通用视频编码标准(VVC)的目标是使用一半的带宽来达到与HEVC/H.265相同的主观品质。
为了使通用视频编码标准(VVC)标准达到与HEVC/H.265相同的主观质量,联合视频专家组(“JVET”)已经使用联合探索模型(“JEM”)参考软件开发了超越HEVC的技术。随着编码技术被纳入JEM,JEM已经达到了了比HEVC高得多的编码性能。VCEG和MPEG也已经正式开始开发超越HEVC的下一代视频压缩标准。
通用视频编码标准(VVC)是最近开始制定的,将会继续开发更多的编码技术和提供更好的压缩性能。通用视频编码标准(VVC)基于同一个混合视频编码系统,该系统已被用于现代视频压缩标准(例如HEVC、H.264/AVC、MPEG2、H.263等)。
视频是一组按时间顺序排列的静态图片集(或静态帧集),用于存储视觉信息。视频捕获设备(例如,相机)可以用于以时间顺序捕获和存储这些图片,并且视频回放设备(例如,电视、计算机、智能手机、平板电脑、视频播放器或任何具有显示功能的最终用户终端)可以用于按照时间顺序显示这些图片。此外,在一些应用中,视频捕获设备可以实时地将捕获的视频传输到视频回放设备(例如,具有监视器的计算机),例如,用于监视、会议或直播。
为了减少此类应用所需的存储空间和传输带宽,可以对视频进行压缩。例如,视频可以在存储和传输之前被压缩,在显示之前被解压缩。压缩和解压缩可以由处理器(例如,通用计算机的处理器)或专门硬件设备上的软件来实现。用于压缩的模块或电路通常被称为“编码器”,而用于解压缩的模块或电路通常被称为“解码器”。编码器和解码器可以被统称为“编解码器”。编码器和解码器可以作为各种合适的硬件、软件或其组合中的任何一种来实现。例如,编码器和解码器的硬件实现方式可以包括电路,例如,一个或多个微处理器、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)、现场可编程门阵列(“FPGA”)、离散逻辑或其任何组合。编码器和解码器的软件实现方式可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何适合的计算机实现的算法或过程。视频压缩和解压缩可以通过各种算法或标准来实现,例如,MPEG-1、MPEG-2、MPEG-4、H.26x系列等。在一些应用中,编解码器可以通过第一编码标准解压缩视频,再通过第二编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以被称为“转码器”。
视频编码过程可以识别并保留可用于重建图片的有用信息。如果在视频编码过程中被忽略的信息不能被完全重构,则编码过程可以被称为“有损”。否则,可以被称为“无损”。大多数编码过程是有损的,这是一种减少视频编码过程中所需存储空间和传输带宽的权衡方式。
在很多情况下,正被编码的图片(被称为“当前图片”)的有用信息可以为相对于参考图片(例如,先前编码和重建的图片)的变化。这种变化可以包括像素的位置变化、亮度变化或颜色变化。其中代表物体的一组像素的位置变化可以反映物体在参考图片和当前图片之间的运动。
一张没有参考另一张图片的编码图片(即,该图片是它自己的参考图片)被称为“I图片”。使用先前图片作为参考图片进行编码的图片被称为“P图片”。使用先前图片和未来图片作为参考图片(即,参考是“双向的”)进行编码的图片被称为“B图片”。
图1示出了根据本公开的一些实施例的视频序列的结构。如图1所示,视频序列100可以是视频直播或已经被捕获并存档的视频。视频100可以是现实生活中的视频、计算机生成的视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的现实生活视频)。视频序列100可以从视频捕获设备(例如,相机)、包含先前捕获的视频的视频档案(例如,存储在存储设备中的视频文件)、或视频馈送接口(例如,视频广播收发器)输入,以接收来自视频内容提供者的视频。
如图1所示,视频序列100可以包括沿时间轴暂时排列的一系列图片,包括图片102、104、106和108。图片102-106是连续的,而在图片106和108之间有更多的图片。在图1中,图片102是一张I型图片,其参考图片是图片102本身。图片104是一张P型图片,其参考图片是图片102,如箭头所示。图片106是一张B型图片,其参考图片是图片104和108,如箭头所示。在一些实施例中,图片(例如,图片104)的参考图片可以不紧接在该图片之前或之后。例如,图片104的参考图片可以是图片102之前的图片。应当注意的是,图片102-106的参考图片仅是示例,本公开并不限制参考图片的实施例,图1所示的仅为示例。
通常,由于此类任务的计算复杂性,视频编解码器不会一次性编码或解码整个图片。相反,视频编解码器可以将图片分割成基本的片段,并逐段对图片进行编码或解码。在本公开中,这种基本的片段被称为基本处理单元(“BPU”)。例如,图1中的结构110示出了视频序列100的图片(例如,图片102到108中的任一者)的示例结构。在结构110中,一张图片被划分成4×4个基本处理单元,其边界用虚线示出。在一些实施例中,基本处理单元在一些视频编码标准(例如,MPEG系列、H.261、H.263或H.264/AVC)中可以被称为“宏块”,或者在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中可以被称为“编码树单元”(“CTU”)。基本处理单元在图片中可以具有不同的尺寸,例如,128×128、64×64、32×32、16×16、4×8、16×32,或者任何任意的形状和尺寸的像素。基本处理单元的尺寸和形状可以基于编码效率和基本处理单元中要保持的细节水平的平衡来为图片选择。
基本处理单元可以是逻辑单元,它可以包括存储在计算机存储器中(例如,在视频帧缓冲器中)的一组不同类型的视频数据。例如,彩色图片的基本处理单元可以包括表示非彩色亮度信息的亮度分量(Y)、表示颜色信息的一个或多个色度分量(例如,Cb和Cr)以及相关联的语法元素,其中,亮度分量和色度分量可以具有基本处理单元的相同大小。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度分量和色度分量可以被称为“编码树块”(“CTB”)。对基本处理单元执行的任何操作都可以对其每一个亮度分量和色度分量重复执行。
视频编码具有多个操作阶段,其示例如图2A-2B和图3A-3B所示。对于其中的每个阶段,基本处理单元的尺寸仍然大到无法处理,因此可以进一步划分为片段,在本公开中片段被称为“基本处理子单元”。在一些实施例中,基本处理子单元在一些视频编码标准(例如,MPEG系列、H.261、H.263或H.264/AVC)中可以被称为“块”,或者在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为“编码单元”(“CUs”)。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也是逻辑单元,它可以包括一组不同类型的存储在计算机存储器中(例如,在视频帧缓冲器中)的视频数据(例如,Y、Cb、Cr和相关联的语法元素)。对一个基本处理子单元执行的任何操作都可以对其每一个亮度分量和色度分量重复执行。应当注意的是,根据处理需要,这种划分可以进一步在更多的层面上执行。还应当注意的是,不同的阶段可以使用不同的方案来划分基本处理单元。
例如,在模式决策阶段(其示例在图2B中示出),编码器可以决定对基本处理单元使用什么预测模式(例如,帧内图片预测或帧间图片预测),该基本处理单元可能太大而无法做出该决策。编码器可将基本处理单元分割成多个基本处理子单元(例如,H.265/HEVC或H.266/VVC中的CU),并为每个单独的基本处理子单元决定一种预测类型。
再如,在预测阶段(其示例在图2A-2B中示出),编码器可以在基本处理子单元(例如,CUs)的层级上执行预测操作。然而,在某些情况下,基本处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在H.265/HEVC或H.266/VVC中称为“预测块”或“PB”),在该层级上可以执行预测操作。
再如,在变换阶段(其示例在图2A-2B中示出),编码器可以对残余的基本处理子单元(例如,CU)执行变换操作。然而,在某些情况下,基本处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在H.265/HEVC或H.266/VVC中称为“变换块”或“TB”),在该层级上可以执行变换操作。应当注意的是,在预测阶段和变换阶段,相同的基本处理子单元的划分方案可以是不同的。例如,在H.265/HEVC或H.266/VVC中,同一CU的预测块和变换块可以具有不同的尺寸和数量。
在图1的结构110中,基本处理单元112被进一步分成3×3个基本处理子单元,其边界以虚线示出。同一图片的不同基本处理单元可以按照不同的方案划分为基本处理子单元。
在一些实现例中,为了向视频编码和解码提供并行处理和抗错的能力,可以将图片划分为区域进行处理,这样,对于图片的一个区域,编码或解码过程可以不依赖于来自图片的任何其他区域的信息。换句话说,图片的每个区域都可以被独立处理。通过上述方法,编解码器可以并行处理图片的不同区域,从而提高编码效率。此外,当一个区域的数据在处理过程中被破坏或在网络传输中丢失时,编解码器可以正确地编码或解码同一图片的其他区域,而不依赖于被破坏或丢失的数据,因此提供了抗错能力。在一些视频编码标准中,一张图片可以被划分成不同类型的区域。例如,H.265/HEVC和H.266/VVC提供了两种类型的区域:“片状”和“块状”。还应当注意的是,视频序列100的不同图片可以具有不同的分割方案,用于将图片分割成区域。
例如,在图1中,结构110被划分成三个区域114、116和118,其边界在结构110内部被显示为实线。区域114包括四个基本处理单元。区域116和118各包括六个基本处理单元。应当注意,图1中的基本处理单元、基本处理子单元和结构110的区域仅仅是示例,本公开不仅限于其实施例。
图2A示出了根据本公开的一些实施例的编码过程的示意图。例如,图2A所示的编码过程200A可以由编码器执行。如图2A所示,编码器可以根据流程200A将视频序列202编码成视频比特流228。类似于图1中的视频序列100,视频序列202可以包括以时间顺序排列的一组图片(被称为“原始图片”)。类似于图1中的结构110,视频序列202的每个原始图片可以由编码器划分成基本处理单元、基本处理子单元或区域以进行处理。在一些实施例中,编码器可以针对视频序列202的每个原始图片在基本处理单元的层面上执行流程200A。例如,编码器可以以迭代方式执行流程200A,其中,编码器可以在流程200A的一次迭代中编码基本处理单元。在一些实施例中,编码器可以对视频序列202的每个原始图片的区域(例如,区域114-118)并行执行流程200A。
在图2A中,编码器可以将视频序列202的原始图片的基本处理单元(称为“原始BPU”)馈送到预测阶段204,以生成预测数据206和预测BPU208。编码器可以从原始BPU中减去预测BPU208,以生成残差BPU210。编码器可以将残差BPU210馈送到变换阶段212和量化阶段214,以生成量化的变换系数216。编码器可以将预测数据206和量化的变换系数216馈送到二进制编码阶段226,以生成视频比特流228。组件202、204、206、208、210、212、214、216、226和228可以被称为“前向路径”在流程200A中,在量化阶段214之后,编码器可以将量化的变换系数216馈送到逆量化阶段218和逆变换阶段220,以生成重构残差BPU222。编码器可以将重构残差BPU 222添加到预测BPU208,以生成预测参考224,该预测参考在预测阶段204中用于流程200A的下一次迭代。流程200A的组件218、220、222和224可以被称为“重构路径”。重构路径可用于确保编码器和解码器都使用相同的参考数据进行预测。
编码器可以迭代地执行流程200A以编码原始图片中的每个原始BPU(在前向路径中),并生成预测参考224用于编码原始图片的下一个原始BPU(在重构路径中)的预测参考224。在对原始图片的所有原始BPU进行编码之后,编码器可以继续对视频序列202中的下一个图片进行编码。
参考流程200A,编码器可以接收由视频采集设备(例如,相机)生成的视频序列202。上述使用的术语“接收”可以指接收、输入、获取、检索、获得、读取、访问或以任何方式输入数据的任何动作。
在预测阶段204,在当前迭代中,编码器可以接收原始BPU和预测参考224,并执行预测操作,以生成预测数据206和预测BPU208。预测参考224可以从过程200A的前一次迭代的重构路径中生成。预测阶段204的目的是通过提取预测数据206来减少信息冗余,上述预测数据206可用于根据预测数据206和预测参考224将原始BPU重构为预测的BPU208。
理想地,预测BPU208应该与原始的BPU相同。然而,由于非理想的预测和重构操作,预测BPU208通常与原始的BPU略有不同。为了记录这样的差异,在生成预测BPU208之后,编码器可以从原始BPU中减去该预测BPU,以生成残差BPU210。例如,编码器可以从原始BPU的对应像素值中减去预测BPU208的像素值(例如,灰度值或RGB值)。残差BPU210的每个像素可以具有一个残差值,作为原始BPU的像素值和预测BPU208的像素值之间相减得到的残差值。与原始BPU相比,预测数据206和残差BPU210可以具有更少的比特数,但是它们在用于重构原始BPU时没有显著的质量劣化。因此,原始BPU可以被压缩。
为了进一步压缩残差BPU210,在变换阶段212,编码器可以通过将残差BPU210分解成一组二维“编码图案”(Base Pattern)来减少其空间冗余,每个编码图案与“变换系数”相关联。编码图案可以具有相同的大小(即残差BPU210的大小)。每个编码图案可以表示残差BPU210的变化频率(例如,亮度变化的频率)的组成部分。任何编码图案都不能从任何其他编码图案的任何组合(例如,线性组合)中复制。换句话说,分解可以将残差BPU210的变化分解到频域中。这种分解类似于函数的离散傅立叶变换,其中,基模式类似于离散傅立叶变换的基函数(例如,三角函数),而变换系数类似于与基函数相关联的系数。
不同的转换算法可以使用不同的编码图案。在变换阶段212可以使用各种变换算法,例如,离散余弦变换、离散正弦变换等。变换阶段212的变换是可逆的。也就是说,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差BPU210。举例说明,为了恢复残差BPU210的像素,逆变换可以将编码图案的相应像素的值乘以相应的相关系数,并将乘积相加,以产生加权和。对于同一个视频编码标准,编码器和解码器可以使用相同的变换算法(因此是相同的编码图案)。因此,编码器可以仅记录变换系数,解码器可以根据这些变换系数来重构残差BPU210,而无需从编码器中接收编码图案。与残差BPU210相比,变换系数可以具有更少的比特数,但是其用于重构残差BPU210时并没有产生显著的质量劣化。因此,残差BPU 210可以被进一步压缩。
编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的编码图案可以表示不同的变化频率(例如,亮度变化频率)。因为人眼通常更善于识别低频变化,所以编码器可以忽略高频变化的信息,而不会导致解码质量显著劣化。例如,在量化阶段214,编码器可以通过将每个变换系数除以一个整数值(称为“量化参数”)并将商四舍五入成其最接近的整数来生成量化的变换系数216。在这样的操作之后,高频编码图案的一些变换系数可以被转换为零,并且低频编码图案的变换系数可以被转换为更小的整数。编码器可以忽略零值量化的变换系数216,通过该编码器进一步压缩变换系数。量化过程也是可逆的,其中,量化的变换系数216可以在量化的逆运算中被重构为变换系数(称为“逆量化”)。
因为编码器在四舍五入运算中不考虑这种除法的余数,所以量化阶段214可能是有损的。通常,量化阶段214可以在流程200A中造成最大程度的信息损失。信息损失越大,量化变换系数216需要的比特数就越少。为了获得不同程度的信息损失,编码器可以使用不同的量化参数值或量化过程的任何其他参数。
在二进制编码阶段226,编码器可以使用二进制编码技术对预测数据206和量化的变换系数216进行编码,例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损或有损压缩算法。在一些实施例中,除了预测数据206和量化的变换系数216之外,编码器还可以在二进制编码阶段226编码其他信息,例如,在预测阶段204使用的预测模式、预测操作的参数、在变换阶段212的变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频比特流228。在一些实施例中,视频比特流228可以被进一步打包用于网络传输。
参考流程200A的重构路径,在逆量化阶段218,编码器可以对量化的变换系数216进行逆量化,以生成重构的变换系数。在逆变换阶段220,编码器可以基于重构的变换系数来生成重构残差BPU222。编码器可以将重构残差BPU222添加到预测BPU208中,以生成预测参考224,上述预测参考将用于流程200A的下一次迭代。
应当注意的是,流程200A的其他变型也可以用于对视频序列202进行编码。在一些实施例中,流程200A的阶段可以由编码器以不同的顺序执行。在一些实施例中,流程200A的一个或多个阶段可以组合成一个单个阶段。在一些实施例中,流程200A的单个阶段可以被划分成多个阶段。例如,变换阶段212和量化阶段214可以合并成一个单一阶段。在一些实施例中,流程200A可以包括附加阶段。在一些实施例中,流程200A可以省略图2A中的一个或多个阶段。
图2B示出了根据本公开的一些实施例的另一编码过程200B的示意图。如图2B所示,流程200B可以从流程200A演变而来。例如,符合混合视频编码标准(例如,H.26x系列)的编码器可以使用流程200B。与流程200A相比,流程200B的前向路径额外包括模式决策阶段230,并将预测阶段204分成空间预测阶段2042和时间预测阶段2044。流程200B的重构路径还包括环路滤波器阶段232和缓冲器234。
通常,预测技术可以分为两种类型:空间预测和时间预测。空间预测(例如,帧内图片预测或“帧内预测”)可以使用来自同一图片中的一个或多个已经编码的相邻BPU的像素来预测当前BPU。也就是说,空间预测中的预测参考224可以包括相邻BPU。空间预测可以减少图片固有的空间冗余。时间预测(例如,帧间图片预测或“帧间预测”)可以使用来自一个或多个已编码图片的区域来预测当前BPU。也就是说,时间预测中的预测参考224可以包括已编码的图片。时间预测可以减少图片固有的时间冗余。
参考流程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于被编码的图片的原始BPU,预测参考224可以包括同一图片中已经被编码(在前向路径中)和重构(在重构路径中)的一个或多个相邻BPU。编码器可以通过外推相邻的BPU来生成预测BPU208。外推技术可以包括,例如,线性外推或插值、多项式外推或插值等。在一些实施例中,编码器可以在像素级执行外推,例如,通过外推预测BPU208的每个像素的对应像素的值。用于外推的相邻BPU可以相对于原始BPU从不同方向定位,例如,在垂直方向(例如,在原始BPU的顶部)、水平方向(例如,在原始BPU的左侧)、对角线方向(例如,在原始BPU的左下侧、右下侧、左上侧或右上侧),或者在所使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括,例如,所使用的相邻BPU的位置(例如,坐标)、所使用的相邻BPU的大小、外推的参数、所使用的相邻BPU相对于原始BPU的方向等。
再如,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图片的原始BPU,预测参考224可以包括已经被编码(在前向路径中)和重构(在重构路径中)的一张或多张图片(称为“参考图片”)。在一些实施例中,参考图片可以通过BPU进行BPU编码和重构。例如,编码器可以将重构的残差BPU222添加到预测BPU208,以生成重构的BPU。当生成同一图片的所有重构BPU时,编码器可以生成一个重构图片作为参考图片。编码器可以执行“运动估计”操作,以在参考图片的范围(称为“搜索窗口”)中搜索匹配区域。参考图片中的搜索窗口的位置可以基于当前图片中的原始BPU的位置来确定。例如,搜索窗口可以以参考图片中与当前图片中的原始BPU具有相同坐标的位置为中心,并且可以向外延伸预设的距离。当编码器在搜索窗口中识别出(例如,通过使用像素递归算法、块匹配算法等)与原始BPU相似的区域时,编码器可以将上述区域确定为匹配区域。匹配区域可以具有与原始BPU不同的尺寸(例如,小于、等于、大于或具有不同的形状)。因为参考图片和当前图片在时间线中是时间分离的(如图1所示),所以可以认为随着时间的推移,匹配区域“移动”到原始BPU的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考图片时(如图1中的图片106),编码器可以搜索匹配区域,并为每个参考图片确定其相关联的运动矢量。在一些实施例中,编码器可以为匹配参考图片的相应匹配区域的像素值分配权重。
运动估计可用于识别各种类型的运动,例如,平移、旋转、缩放等。对于帧间预测,预测数据206可以包括,例如,匹配区域的位置(例如,坐标)、与匹配区域相关联的运动矢量、参考图片的数量、与参考图片相关联的权重等。
为了生成预测BPU 208,编码器可以执行“运动补偿”操作。运动补偿可用于基于预测数据206(例如,运动向量)和预测参考224来重构预测BPU208。例如,编码器可以根据运动矢量移动参考图片的匹配区域,其中,编码器可以预测当前图片的原始BPU。当使用多个参考图片时(如图1中的图片106),编码器可以根据匹配区域的相应运动矢量和平均像素值来移动参考图片的匹配区域。在一些实施例中,如果编码器已经为对应于匹配参考图片的匹配区域的像素值分配了权重,则编码器可以将移动的匹配区域的像素值的加权和相加。
在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以使用相对于当前图片的同一时间方向上的一个或多个参考图片。例如,图1中的图片104是单向帧间预测图片,其中,参考图片(即,图片102)在图片104之前。双向帧间预测可以在相对于当前图片的两个时间方向上使用一个或多个参考图片。例如,图1中的图片106是双向帧间预测图片,其中,参考图片(即,图片104和108)相对于图片104处于两个时间方向。
仍然参考流程200B的前向路径,在空间预测阶段2042和时间预测阶段2044之后,在模式判定阶段230,编码器可以为流程200B的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行速率-失真优化技术,其中,编码器可以根据候选预测模式的比特率和在候选预测模式下重构的参考图片的失真来选择预测模式,以最小化成本函数值。根据所选择的预测模式,编码器可以生成对应的预测BPU208和预测数据206。
在流程200B的重构路径中,如果在前向路径中已经选择了帧内预测模式,则在生成预测参考224(例如,在当前图片中已经编码和重构的当前BPU)之后,编码器可以将预测参考224直接馈送到空间预测阶段2042,以供以后使用(例如,用于当前图片的下一个BPU的外推)。如果在前向路径中已经选择了帧间预测模式,则在生成预测参考224(例如,已经编码和重构所有BPU的当前图片)之后,编码器可将预测参考224馈送到环路滤波器阶段232,在环路滤波器阶段,编码器可将环路滤波器应用于预测参考224,以减少或消除帧间预测引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如,去块、采样自适应偏移、自适应环路滤波器等。经环路滤波的参考图片可存储在缓冲器234(或“解码的图片缓冲器”)中,以供以后使用(例如,用作视频序列202的未来图片的帧间预测参考图片)。编码器可以将一个或多个参考图片存储在缓冲器234中,以在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226对环路滤波器的参数(例如,环路滤波器强度)以及量化的变换系数216、预测数据206和其他信息进行编码。
图3A示出了根据本公开的一些实施例的解码过程300A的示意图。如图3A所示,流程300A可以是对应于图2A中的压缩过程200A的解压缩过程。在一些实施例中,流程300A可以类似于过程200A的重构路径。解码器可以根据过程300A将视频比特流228解码成视频流304。视频流304可以类似于视频序列202。然而,由于压缩和解压缩过程中的信息损失(例如,图2A-2B中的量化阶段214),通常,视频流304与视频序列202不完全相同。类似于图2A-2B中的流程200A和200B,解码器可以在基本处理单元(BPU)层面对视频比特流228中编码的每个图片执行流程300A。例如,解码器可以以迭代方式执行流程300A,其中,解码器可以在流程300A的一次迭代中解码一个基本处理单元。在一些实施例中,解码器可以对视频比特流228中编码的每个图片的区域(例如,区域114-118)并行执行流程300A。
在图3A中,解码器可以将与编码图片的基本处理单元(称为“编码BPU”)相关联的视频比特流228的一部分馈送到二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码成预测数据206和量化的变换系数216。解码器可以将量化的变换系数216馈送到逆量化阶段218和逆变换阶段220,以生成重构残差BPU222。解码器可以将预测数据206馈送到预测阶段204,以生成预测BPU208。解码器可以将重构残差BPU222添加到预测BPU208,以生成预测参考224。在一些实施例中,预测参考224可以存储在缓冲器中(例如,计算机存储器中的解码的图片缓冲器)。解码器可以将预测参考224馈送到预测阶段204,用于在流程300A的下一次迭代中执行预测操作。
解码器可以迭代地执行流程300A,以解码已编码图片的每个已编码BPU,并生成用于编码已编码的图片的下一个编码BPU的预测参考224。在解码已编码的图片的所有编码BPU之后,解码器可以将图片输出到视频流304以进行显示,并继续解码视频比特流228中的下一个编码图片。
在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损压缩算法)的逆运算。在一些实施例中,除了预测数据206和量化变换系数216之外,解码器还可以在二进制解码阶段302解码其他信息,例如,预测模式、预测操作的参数、变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频比特流228以数据包的形式在网络上传输,则解码器可以在将视频比特流228馈送到二进制解码阶段302之前对其进行解包。
图3B示出了根据本公开的一些实施例的另一解码过程300B的示意图。如图3B所示,流程300B可以从流程300A演变而来。例如,符合混合视频编码标准(例如,H.26x系列)的解码器可以使用流程300B。与流程300A相比,流程300B另外将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并且另外包括环路滤波器阶段232和缓冲器234。
在流程300B中,对于正被解码的编码图片(称为“当前图片”)的编码基本处理单元(称为“当前BPU”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式来编码当前BPU。例如,如果编码器使用帧内预测来编码当前BPU,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值)、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,用作参考的一个或多个相邻BPU的位置(例如,坐标)、相邻BPU的大小、外推参数、相邻BPU相对于原始BPU的方向等。再如,如果编码器使用帧间预测来编码当前BPU,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等。帧间预测操作的参数可以包括,例如,与当前BPU相关联的参考图片的数量、分别与参考图片相关联的权重、一个或多个匹配区域在相应参考图片中的位置(例如,坐标)、分别与匹配区域相关联的一个或多个运动矢量等。
基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测)还是在时间预测阶段2044执行时间预测(例如,帧间预测)。执行这种空间预测或时间预测的细节在图2B中已描述,在下文中将不再重复。在执行这种空间预测或时间预测之后,解码器可以生成预测BPU208。解码器可以将预测BPU208和重构残差BPU222相加,以生成预测参考224,如图3A所示。
在过程300B中,解码器可以将预测参考224馈送到空间预测阶段2042或时间预测阶段2044,用于在过程300B的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042处使用帧内预测来解码当前BPU,则在生成预测参考224(例如,经解码的当前BPU)之后,解码器可将预测参考224直接馈送到空间预测阶段2042,以供以后使用(例如,用于外推当前图片的下一BPU)。如果在时间预测阶段2044处使用帧间预测来解码当前BPU,则在生成预测参考224(例如,所有BPU已被解码的参考图片)之后,编码器可将预测参考224馈送到环路滤波器阶段232,以减少或消除失真(例如,块效应)。解码器可以以图2B中描述的方式将环路滤波器应用于预测参考224。经环路滤波的参考图片可存储在缓冲器234(例如,计算机存储器中的经解码的图片缓冲器)中,以供以后使用(例如,用作未来视频比特流228编码图片的帧间预测参考图片)。解码器可以在缓冲器234中存储一个或多个参考图片,以在时间预测阶段2044使用。在一些实施例中,当预测数据206的预测模式指示符指示帧间预测用于编码当前BPU时,预测数据还可以包括环路滤波器的参数(例如,环路滤波器强度)。
有四种类型的环路滤波器。例如,环路滤波器可以包括去块滤波器、采样自适应偏移(“SAO”)滤波器、具有色度缩放的亮度映射(“LMCS”)滤波器和自适应环路滤波器(“ALF”)。应用四种类型的环路滤波器的顺序可以是LMCS滤波器、去块滤波器、SAO滤波器和自适应环路滤波器。LMCS滤波器可以包括两个主要分量。第一分量可以是基于自适应分段线性模型的亮度分量的环内映射。第二分量可以用于色度分量,并且可以应用亮度相关的色度残差缩放。
图4示出了根据本公开的一些实施例的解码过程中具有色度缩放的示例亮度映射滤波器的示意图。如图4所示,暗灰色阴影的分量表示在映射域中可以应用的处理。这些分量可以包括逆量化和逆变换413、亮度帧内预测429以及在重构423中将亮度预测与亮度残差相加。图4中所示的未画阴影的分量表示在原始(例如,未映射的)域中应用处理的位置。这些分量可以包括环路滤波器432和433(例如,去块滤波器、ALF滤波器、SAO滤波器等)、色度运动补偿预测442、亮度运动补偿预测443、色度帧内预测428、在重构422中将色度预测与色度残差相加并将解码图片作为参考图片存储在DBP436和DBP437中。图4中具有浅灰色阴影的分量可以是新的LMCS功能块,例如,亮度信号的正向映射449、亮度信号的逆映射425和亮度相关的色度缩放处理411。
在一些系统(例如,通用视频编码标准(VVC)的测试模型7(“VTM7”))中,可以使用序列参数集(“SPS”)标志在序列级启用或禁用LMCS。去块滤波器可以应用于与图片单元(“PU”)或图块单元(“TU”)边界相邻的所有样本,除了当边界也是图片边界时或者当跨切片或图块边界禁用去块时,才可以修改这些系统。例如,在通用视频编码标准(VVC)中,可以添加以下特征:取决于重构样本的平均亮度水平的去块滤波器的滤波器强度;去块参数表的扩展和适应10比特的视频;4×4网格去块的亮度;更强的去块滤波器的亮度;更强的更强去块滤波器的色度;去块滤波器的子块边界;以及适应运动中较小差异的去块决策。
SAO滤波器可以是解码中的一个过程,其基于编码器传输的查找表中的值,基于预设条件向每个样本添加偏移值来修改解码的样本。在一些系统(例如,VVC或VTM7)中,SAO滤波器可以包括频带偏移模式和边缘偏移模式。在频带偏移模式中,一个完整的样本幅度范围可以被均匀地分成32个片段,并将上述片段命名为频带,属于上述这些频带中的四个频带(它们在32个频带内是连续的)的样本值通过添加表示为频带偏移的传输值来修改。频带偏移可以是正的,也可以是负的。使用四个连续频带的原因之一是,在可能出现带状瑕疵(Artifact)的平滑区域,CTB中的样本幅度往往只集中在几个频带中。在边缘偏移模式中,具有从0到3的值的语法元素sao_eo_class可以表明CTB中的边缘偏移分类是采用水平、垂直或两个对角梯度方向中的一个。通过将样本值与两个相邻样本进行比较,可以将CTB中的每个样本分为五个类别。对于每个类别,可以向解码器信令偏移信号,并将其添加到相应的样本中。
ALF滤波器可以应用于网格,例如,4×4网格。在一些系统(例如VVC或VTM7)中,基于局部梯度的方向和活动,可以将亮度滤波器单元分为25个类别中的一个,并且可使用7×7的菱形滤波器形状。对于每个类别,一组滤波器参数在适配参数集(“APS”)中发出信号。对于色度分量,可以使用5×5的菱形滤波器形状,并且可以发出八组参数信号。图5示出了根据本公开的一些实施例的自适应环路滤波器的示例菱形滤波器形状的示图。如图5所示,显示了一个可用于色度分量5×5的菱形滤波器形状,还显示了7×7菱形滤波器形状,可用于亮度分量。在对每个4×4亮度块进行滤波之前,可以根据为该块计算的梯度值,对滤波器系数和相应的滤波器限幅值应用几何变换,例如,旋转或对角和垂直翻转。这可能等同于将这些变换应用于滤波器支持区域中的样本。
基于卷积神经网络(“CNN”)的图像/视频压缩已经成为一个活跃的研究领域。例如,与传统的图像压缩方法相比,端到端图像压缩可以表现出更有竞争力的性能。一个端到端学习视频压缩框架可以利用光流来获得运动信息并重构当前帧。其他学习视频压缩的方法可以将神经网络纳入到传统视频编码框架中的不同功能块中(例如,帧内预测、帧间预测、变换、熵编码和环内滤波)。
基于学习的压缩方法或基于CNN的压缩方法可以利用神经网络的足够的可训练参数来学习压缩瑕疵的广泛特征,并且通过将压缩图片和原始图片之间的相关性映射到待学习的函数来最小化压缩图片的失真。例如,可以使用四层超分辨率CNN来代替编码过程中的SAO滤波器。与单路径CNN相比,具有可变滤波器大小的CNN有助于提取不同空间尺度的特征,其具有更低的网络复杂度和更快的训练过程。此外,多通道长短期依赖性残差网络可以用于将失真的帧映射映射到其相关联的原始帧,并且可以插入在去块滤波器和SAO滤波器之间。CU和TU边界也可以用作输入的一部分,以便更容易地捕捉瑕疵。除了局部补丁之外,通过考虑参考帧中的当前块和协同定位块来联合利用空间和时间信息。用于HEVC的多帧环内滤波器可以通过利用其相邻帧来增强每个编码帧的视觉质量。基于注意力的双尺度CNN可以减少压缩瑕疵,这也是对量化参数(“QP”)和分割信息等信息性先验的运用。非局部注意力网络可以用于高质量的图像恢复,其能捕获到像素之间的远距离依赖关系。
图6A示出了根据本公开的一些实施例的作为环内滤波的神经网络架构的示意图。如图6A所示,在生成输出之前,输入可以由包括卷积层和一个或多个残差块(“ResBlock”)的残差神经网络(“ResNet”)处理。在一些实施例中,卷积过程可以使用全分辨率卷积来进行,即步幅为1。全分辨率卷积可以用来保留原始信号的信息。图6B示出了根据本公开的一些实施例的示例残差块的示意图。图6B所示的一个ResBlock包括两个卷积层。在传统的神经网络中,每一层都会反馈到下一层。在图6B所示的ResBlock中,附加连接(例如,身份)可以在一个或多个层上馈送输入信号,并允许输入信号跳过一个或多个层。可以理解的是,图6B所示的ResBlock可以用于图6A所示的神经网络架构中。
虽然基于CNN的压缩方法能够捕获视频信号中的特征(例如,瑕疵特征)并描述高维映射,但是直接采用CNN架构有两个主要缺点。首先,分辨率适应性可能是一个问题。视频分辨率是指原始信号的采样密度。在固定的邻域内,不同分辨率的视频信号可以具有不同程度的样本相关性。因此,在一个特定分辨率上训练的CNN可能不适合其他分辨率的视频信号。其次,在空间精确表征和更大的感受域(例如,采样大小)之间可能会有一个权衡。视频压缩可能需要精确的信号信息。因此,可以谨慎使用下采样,以避免丢失视频信号中的精细细节。然而,全分辨率卷积层由于其有限的感受域,在利用上下文信息方面可能不太有效。
本公开的实施例提供了一种改进的基于神经网络的环内滤波来解决上述问题。为了提高神经网络(例如,CNN)的分辨率适应性和增强学习能力,在多密度神经网络中设计了新的多密度块(“MDB”)结构。图7示出了根据本公开的一些实施例的神经网络环内滤波的示例多密度块的示意图。如图7所示,MDB可以包括两个分支。第一分支包括保持全分辨率的基本分支,用于捕获空间精确的表征。第二分支包括一个密度分支,用于通过下采样和上采样学习以获得更大感受域的更丰富的空间相关性。通过这两个分支生成的特征地图可以合并成一个流。在一些实施例中,图7所示的MDB可以在LMCS滤波器和去块滤波器之后进行应用。
在一些实施例中,如图7所示,第一分支可以类似于ResNet(例如,图6B的ResNet)。ResNet可以包括一个或多个ResBlock。第二分支可以包括下采样模块、一个或多个ResBlock和一个上采样模块。在一些实施例中,密度信息隐藏在信号内部,但是可以从较低分辨率表示和较高分辨率或全分辨率表示之间的映射中获知密度信息。因此,下采样层可以位于其他模块(例如,ResBlock、上采样模块等)之前,以获得较低分辨率(例如,半分辨率)表示。在一些实施例中,低分辨率可以被调整。例如,低分辨率可以调整为四分之一分辨率而不是一半分辨率。在一些实施例中,下采样层可以依次由ResBlock和上采样层来生成与第一分支的特征图具有相同大小的密度表示。
在一些实施例中,来自第二分支的密度表示和第一分支的特征图可以合并。在一些实施例中,密度表示和特征图可以使用逐元素的乘积来合并。例如,密度表示和特征图可以包括相同数量的元素。因此,可以执行逐元素的乘积来合并密度表示和特征图。在一些实施例中,密度表示和特征图可以被加在一起。例如,第一分支可以包括64个通道作为输出,第二分支可以包括64个通道作为输出。当两个分支合并在一起时,来自第一分支的64个通道可以被添加到来自第二分支的64个通道,以提供128个通道,作为MDB的输出。
图7所示的MDB可以在分辨率适应性方面提供灵活性。例如,图7所示的第二分支在应用ResBlock之前对输入信号提供下采样或上采样。因此,可以相应地调整采样,使其与用于训练MDB的训练数据更加相关。此外,第一分支仍然可以使用更高分辨率或全分辨率卷积层来解释第二分支中可能丢失的更精细的细节。因此,除了分辨率适应性之外,MDB结构还可以通过在第一分支和第二分支中分别进行较高分辨率或全分辨率卷积和较低分辨率卷积,MDB结构还可以受益于空间精确表征和较大感受域的组合。
在一些实施例中,图7所示的MDB结构中的分支数量可以是灵活的。例如,MDB可以包括三个分支。第一分支包括保持全分辨率的基本分支,用于捕获空间精确的表征。第二分支包括一个密度分支,用于通过半下采样来学习获得较大感受域的更丰富的空间相关性。第三分支包括另一个密度分支,其通过四分之一下采样来获得更大的感受域。在一些实施例中,也可以考虑具有上采样卷积的密度分支。
图8示出了根据本公开的一些实施例的多密度块中的下采样模块的示意图。如图8所示,下采样模块可以包括3×3卷积。应当理解的是,卷积的大小可以是灵活的。例如,代替3×3卷积,下采样模块可以包括5×5卷积。在一些实施例中,3×3卷积可以以步幅2进行,以实现半下采样。在一些实施例中,在整流线性单元(“ReLU”)激活之后,可以应用附加的1×1卷积层和另一激活函数(例如,ReLU激活)来增强非线性学习。可以理解的是,图8所示的下采样模块可以应用于图7所示的MDB中。
图9示出了根据本公开的一些实施例的多密度块中的上采样模块的示意图。如图9所示,上采样模块可以包括像素混叠模块。像素混叠模块可以扩大空间分辨率。上采样模块还可以包括ReLU激活函数、1×1卷积以及1×1卷积之后的另一个激活函数。在一些实施例中,激活函数是一个sigmoid函数。因此,在上采样模块之后获得的密度表示可以具有取值0和1。在一些实施例中,密度表示的取值0和1可以容易地根据逐元素乘积与来自另一个分支或其他分支的结果合并。因此,密度表示可以用作来自其他分支的结果中每个元素的权重。取值1可以保留结果中相应元素的元素取值,取值0可以清除结果中相应元素的取值。可以理解的是,图9所示的上采样模块可以应用于图7所示的MDB中。
在一些实施例中,图8和图9中所示的ReLU激活函数可以用其他激活函数代替,例如,参数整流线性单元(“PReLU”)。在一些实施例中,下采样模块和上采样模块中的卷积层的数量可以是灵活的。例如,在图9所示的上采样模块中,在像素混洗模块和1×1卷积层之间可以有三个卷积层。在一些实施例中,卷积层的核大小可以是灵活的(例如,3×3、5×5等)。
图10示出了根据本公开的一些实施例的基于多密度块的神经网络的示意图。如图10所示,神经网络1000(例如,多密度神经网络)可以包括预处理模块1100、多密度模块1200(例如,图7所示的一个或多个MDB)和后处理模块1800。多密度模块1200可以包括一个或多个MDB(例如,MDB 1300和MDB 1400)。在一些实施例中,预处理模块1100包括第一隐藏层,其可以是均值偏移相减层1110。均值偏移相减层1110可以通过减去平均值来处理输入信号1010(例如,视频信号或图像信号),以降低数据多样性。随后,卷积层1120和ReLU激活层1130级串联,以将输入信号转换成较低级别的特征图。
在一些实施例中,后处理模块1800可以与预处理模块1100对称。例如,与预处理模块1100对称,后处理模块1800还可以包括卷积层1810、ReLU激活层1820和均值偏移相加层1830,其中,均值偏移相加层1830对应于预处理模块1100中的均值偏移相减层1110。在一些实施例中,输入的初始特征图和输出前的特征图之间的映射关系主要通过多密度模块1200来学习。在一些实施例中,预处理模块1100和后处理模块1800可以根据神经网络1000的不同目标进行修改。在一些实施例中,多密度模块1200中MDB的数量也是可调的。例如,如图10所示,多密度模块1200包括两个MDB,即1300和1400。分支的数量和每个分支中的ResBlock的数量可以单独调整。应当理解的是,图7、图8、图9和图10中所示的每个模块可以包括电路。
本公开的实施例还提供了用于在视频处理中执行神经网络的训练的方法。图11示出了根据本公开的一些实施例的用于在视频处理中执行神经网络的训练的示例方法的流程图。应当理解的是,图11所示的方法11000可以在图10所示的神经网络1000上执行。
在步骤S11010中,接收多张训练图片。多张训练图片可用于训练神经网络中的一个或多个ResBlock。神经网络设置为减少视频压缩中的块效应。在一些实施例中,神经网络可以包括一个或多个MDB。例如,图10所示的神经网络1000包括两个MDB 1300和1400,并且MDB 1300和1400中的每一个都包括一个或多个ResBlock。
在步骤S11021中,使用多张训练图片来训练神经网络中的MDB的第一分支。在一些实施例中,第一分支包括一个或多个ResBlock。在一些实施例中,第一分支不包括下采样处理或上采样处理。例如,图7中所示的MDB包括第一分支,该第一分支包括用于保持全分辨率以捕捉空间精确表征的基本分支。图7所示的第一分支包括一个或多个ResBlock。
在步骤S11022中,使用多张训练图片来训练神经网络中的MDB的第二分支。在一些实施例中,第二分支包括下采样处理、上采样处理和一个或多个残差块。例如,图7所示的MDB包括第二分支,该第二分支包括一个密度分支,用于通过下采样和上采样来学习获得更大感受域的更丰富的空间相关性。图7所示的第二分支包括下采样模块、一个或多个ResBlock和上采样模块。
在一些实施例中,步骤S11022中的第二分支的下采样处理可以包括一个或多个卷积层和一个或多个激活函数。例如,图8所示的下采样模块包括3×3卷积。3×3卷积可以以步幅2进行,以实现半下采样。图8所示的下采样模块还可以包括整流线性单元(“ReLU”)激活和附加的1×1卷积层,同时可以应用另一个激活函数(例如,ReLU激活)来增强非线性学习。
在一些实施例中,步骤S11022中的第二分支的上采样处理可以包括一个或多个卷积层和一个或多个包括sigmoid函数的激活函数。例如,图9所示的上采样模块包括像素混叠模块、ReLU激活函数、1×1卷积和1×1卷积之后的sigmoid激活函数。结果,在图9所示的上采样模块之后获得的密度表示可以具有取值0和1。
返回参考图11,在一些实施例中,除了步骤S11010、S11021和S11022之外,还可以执行步骤S11023。在步骤S11023中,使用多张训练图片来训练神经网络中的MDB的第三分支。在一些实施例中,第三分支包括下采样处理、上采样处理和一个或多个残差块,并且第三分支中的采样大小不同于第二分支的下采样处理的采样大小。例如,尽管在图7中没有明确示出,但是图7的MDB还可以包括类似于第二分支的第三分支,除了下采样和上采样的采样大小不同。不同的采样大小可以实现空间精确表征和感受域之间的交替平衡。在一些实施例中,在步骤11023中,可以使用多张训练图片来训练MDB的多个附加分支。
在一些实施例中,除了步骤S11010、S11021、S11022和S11023,还可以执行步骤S11030。在步骤S11030中,第一分支的输出和第二分支的输出可以合并在一起。在一些实施例中,可以通过执行逐元素的标量积来合并第一分支和第二分支的输出。例如,在图7所示的MDB中,底部的第一分支的输出通过逐元素的标量积与顶部的第二分支的输出合并。在一些实施例中,在上采样模块之后获得的密度表示可以具有取值0和1,并且密度表示的取值0和1可以根据逐元素乘积与来自另一个分支或其他分支的结果合并。因此,密度表示可以用作来自其他分支的结果中每个元素的权重。取值1可以保留结果中相应元素的元素取值,取值0可以清除结果中相应元素的取值。在一些实施例中,如果存在附加分支,则附加分支的输出可以类似地合并到第一分支和第二分支的输出中。
在一些实施例中,除了步骤S11010、S11021、S11022、S11023和S11030,还可以执行步骤S11090。在步骤S11090中,使用多张训练图片来训练第二MDB。例如,如图10所示,除了MDB1300之外,可以训练MDB1300之后的另一个MDB1400。在一些实施例中,在步骤S11090中,可以使用多张训练图片来训练多个附加MDB。
本公开的实施例还提供了用于在具有预处理和后处理的视频处理中执行神经网络的训练的方法。图12示出了根据本公开的一些实施例的用于执行包括预处理和后处理的神经网络的训练的示例方法的流程图。除了图11中所示的方法11000的步骤之外,图12中所示的方法12000可以包括附加的步骤S11015和S11100。应当理解的是,图12所示的方法12000可以在图10所示的神经网络1000上执行。
在步骤S11010之后,在步骤S11015中,可以对多张训练图片进行预处理。例如,如图10所示,预处理模块1100可以被包括在MDB(例如,图10的MDB 1300和MDB 1400)之前。在一些实施例中,预处理可以包括第一隐藏层,其可以是均值偏移相减层(例如,图10的均值偏移相减层1110)。随后,卷积层和激活层可以级联,以将训练图片转换成较低级别的特征图。
在步骤S11100中,可以对多张训练图片执行后处理。例如,如图10所示,后处理模块1800可以被包括在MDB(例如,图10的MDB 1300和MDB 1400)之后。在一些实施例中,后处理可以与预处理对称。例如,如图10所示,后处理模块1800与预处理模块1100对称,并且后处理模块1800可以包括对应于预处理模块1100中的主偏移相减层1110的均值偏移相加层1830。
本公开的实施例还提供了用于在视频处理中执行神经网络的方法。图13示出了根据本公开的一些实施例的在视频处理中使用神经网络的示例方法的流程图。应当理解,图13所示的方法13000可以在图10所示的神经网络1000上执行。
在步骤S13010中,接收包括多张图片的视频流。神经网络设置为减少视频流的视频压缩中的块效应。在一些实施例中,神经网络可以包括一个或多个MDB。例如,图10所示的神经网络1000包括两个MDB1300和1400,并且MDB1300和1400中的每一个都包括一个或多个ResBlock。
在步骤S13021中,使用神经网络中的MDB的第一分支来处理多张图片。在一些实施例中,第一分支包括一个或多个ResBlock。在一些实施例中,第一分支不包括下采样处理或上采样处理。例如,图7中所示的MDB包括第一分支,该第一分支包括用于保持全分辨率以捕捉空间精确表示的基本分支。图7所示的第一分支包括一个或多个ResBlock。
在步骤S13022中,使用神经网络中的MDB的第二分支来处理多张图片。在一些实施例中,第二分支包括下采样处理、上采样处理和一个或多个残差块。例如,图7所示的MDB包括第二分支,该第二分支包括用于通过下采样和上采样来学习以获得更大感受域的更丰富的空间相关性的密度分支。图7所示的第二分支包括下采样模块、一个或多个ResBlock和上采样模块。
在一些实施例中,步骤S13022中的第二分支的下采样处理可以包括一个或多个卷积层和一个或多个激活函数。例如,图8所示的下采样模块包括3×3卷积。3×3卷积可以以步幅2进行,以实现半下采样。图8中所示的下采样模块还可以包括整流线性单元(“ReLU”)激活、附加的1×1卷积层,并且可以应用另一个激活函数(例如,ReLU激活)来增强非线性学习。
在一些实施例中,步骤S13022中的第二分支的上采样处理可以包括一个或多个卷积层和一个或多个包括sigmoid函数的激活函数。例如,图9所示的上采样模块包括像素混叠模块、ReLU激活函数、1×1卷积和1×1卷积之后的sigmoid激活函数。结果,在图9所示的上采样模块之后获得的密度表示可以具有取值0和1。
返回参考图13,在一些实施例中,除了步骤S13010、S13021和S13022之外,还可以执行步骤S13023。在步骤S13023中,可以使用神经网络中的MDB的第三分支来处理多张图片。在一些实施例中,第三分支包括下采样处理、上采样处理和一个或多个残差块,并且第三分支中的采样大小不同于第二分支的下采样处理的采样大小。例如,尽管在图7中没有明确示出,但是图7的MDB还可以包括类似于第二分支的第三分支,除了下采样和上采样的采样大小不同。不同的采样大小可以实现空间精确表征和感受域之间的交替平衡。在一些实施例中,在步骤13023中,可以使用MDB的多个附加分支来处理多张图片。
在一些实施例中,除了步骤S13010、S13021、S13022和S13023,还可以执行步骤S13030。在步骤S13030中,第一分支的输出和第二分支的输出可以合并在一起。在一些实施例中,可以通过执行逐元素的标量积来合并第一分支和第二分支的输出。例如,在图7所示的MDB中,底部的第一分支的输出通过逐元素的标量积与顶部的第二分支的输出合并。在一些实施例中,在上采样模块之后获得的密度表示可以具有取值0和1,并且密度表示的取值0和1可以根据逐元素乘积与来自另一个分支或其他分支的结果合并。因此,密度表示可以用作来自其他分支的结果中每个元素的权重。取值1可以保留结果中相应元素的元素取值,取值0可以清除结果中相应元素的取值。在一些实施例中,如果存在附加分支,则附加分支的输出可以类似地合并到第一分支和第二分支的输出中。
在一些实施例中,除了步骤S13010、S13021、S13022、S13023和S13030,还可以执行步骤S13090。在步骤S13090中,可以使用第二MDB处理多张图片。例如,如图10所示,除了MDB1300之外,MDB 1300之后的另一个MDB 1400可以用于处理多张图片。在一些实施例中,在步骤S13090中,可以使用多个附加MDB来处理多张图片。
本公开的实施例还提供了在具有预处理和后处理的视频处理中使用神经网络的方法。图14示出了根据本公开的一些实施例的使用包括预处理和后处理的神经网络的示例方法的流程图。除了图13中示出的方法13000的步骤之外,图14中示出的方法14000可以包括S13015和S13100的附加步骤。应当理解,图14所示的方法14000可以在图10所示的神经网络1000上执行。
在步骤S13010之前,在步骤S13015中,可以对多张图片执行预处理。例如,如图10所示,预处理模块1100可以被包括在MDB1300和1400之前。在一些实施例中,预处理可以包括第一隐藏层,其可以是均值偏移相减层。随后,卷积层和激活层可以级联,以将多张图片转换成较低级的特征图。
在步骤S13100中,可以对多张图片执行后处理。例如,如图10所示,后处理模块1800可以被包括在MDB1300和1400之后。在一些实施例中,后处理可以与预处理对称。例如,如图10所示,后处理模块1800与预处理模块1100对称,并且后处理模块1800可以包括对应于预处理模块1100中的主偏移相减层1110的均值偏移相加层1830。
在一些实施例中,还提供了包括指令的非易失性计算机可读存储介质,并且该指令可以由设备(例如,所公开的编码器和解码器)执行,用于执行上述方法。非易失性介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、光盘只读存储器(CD-ROM)、任何其他光学数据存储介质、任何具有孔模式的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)和可擦除可编程只读存储器(EPROM)、闪存(FLASH)-EPROM或任何其他闪存、非易失性随机访问存储器(NVRAM)、高速缓存、寄存器、任何其他存储芯片或盒式存储器及其网络版本。该设备可以包括一个或多个处理器(CPU)、输入/输出接口、网络接口和/或存储器。
应当注意,在本文的关系术语(例如,“第一”和“第二”)仅用于将一个实体或操作与另一个实体或操作区分开,并不要求或暗示这些实体或操作之间的任何实际关系或顺序。此外,词语“包括”、“具有”、“含有”和“包含”以及其他类似形式旨在是含义上等同的并且是开放式的,因为这些词语中的任何一个后面的一个或多个项目并不意味着是这一个或多个项目的详尽列举,也不意味着仅限于所列出的一个或多个项目。
如本文所用,除非另有明确说明,术语“或”包括所有可能的组合,除非不可行。例如,如果规定数据库可以包括A或B,则除非另有特别说明或者不可行,否则数据库可以包括A、B或A和B。作为第二示例,如果规定数据库可以包括A、B或C,则除非另有特别说明或者不可行,否则数据库可以包括A、或B、或C、或者A和B、或者A和C、或者B和C、或者A和B和C。
应当理解,上述实施例可以通过硬件、软件(程序代码)、或者硬件和软件的组合来实现。如果由软件实现,则可以存储在上述计算机可读介质中。当由处理器执行时,该软件可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以由硬件、软件或硬件和软件的组合来实现。本领域普通技术人员还将理解,多个上述模块/单元可以组合为一个模块/单元,并且每个上述模块/单元可以进一步划分为多个子模块/子单元。
在前面的说明书中,已经参考许多具体细节描述了实施例,这些具体细节可以随实现方式而变化。可以对所描述的实施例进行某些调整和修改。考虑到在此处公开的本公开的详述和实践,其他实施例对于本领域技术人员来说是显而易见的。说明书和实施例仅被认为是示例性的,本公开的真实范围和精神由所附权利要求指出。图中所示的步骤顺序也旨在仅用于说明的目的,而不旨在限于任何特定的步骤顺序。因此,本领域技术人员可以理解,在实现相同方法时,这些步骤可以以不同的顺序执行。
可以使用以下权项进一步描述实施例:
1.一种用于在视频处理中训练神经网络的方法,包括:
接收多张训练图片;
使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
2.根据条款1所述的方法,还包括:
合并第一块的第一分支的输出和第一块的第二分支的输出。
3.根据条款2所述的方法,其中,合并第一块的第一分支的输出和第一块的第二分支的输出还包括:
对第一分支的输出和第二分支的输出执行逐元素的点积。
4.根据条款1-3中任一项所述的方法,其中:
第二分支的下采样处理包括:一个或多个卷积层以及一个或多个激活函数,一个或多个卷积层包括1×1卷积层;并且
第二分支的上采样处理包括:一个或多个卷积层以及一个或多个激活函数,一个或多个卷积层包括1×1卷积层,一个或多个激活函数包括sigmoid函数。
5.根据条款1-4中任一项所述的方法,还包括:
使用多张训练图片来训练神经网络的第一块的第三分支处理,其中,第三分支包括下采样处理、上采样处理和一个或多个残差块,并且第三分支的下采样处理的采样大小不同于第二分支的下采样处理的采样大小。
6.根据条款1-5中任一项所述的方法,还包括:
训练神经网络的第二块,其中,第二块包括多个分支。
7.根据条款1-6中任一项所述的方法,还包括:
对训练图片执行预处理,其中,预处理包括对训练图片执行均值偏移相减;以及
对训练图片执行后处理,其中,后处理包括对训练图片的均值偏移相加,并且均值偏移相加对应于预处理中的均值偏移相减。
8.一种在视频处理中使用神经网络的方法,包括:
接收包括多张图片的视频流;
使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
9.根据条款8所述的方法,还包括:
合并第一块的第一分支的输出和第一块的第二分支的输出。
10.根据条款9所述的方法,其中,合并第一块的第一分支的输出和第一块的第二分支的输出还包括:
对第一分支的输出和第二分支的输出执行逐元素的点积。
11.根据条款8-10中任一项所述的方法,其中:
第二分支的下采样处理包括:一个或多个卷积层以及一个或多个激活函数,一个或多个卷积层包括1×1卷积层;并且
第二分支的上采样处理包括:一个或多个卷积层以及一个或多个激活函数,一个或多个卷积层包括1×1卷积层,一个或多个激活函数包括sigmoid函数。
12.根据条款8-11中任一项所述的方法,还包括:
使用神经网络的第一块的第三分支处理多张图片,其中,第三分支包括下采样处理、上采样处理和一个或多个残差块,并且所述第三分支的所述下采样处理的采样大小不同于所述第二分支的所述下采样处理的采样大小。
13.根据条款8-12中任一项所述的方法,还包括:
使用神经网络的第二块处理多张图片,其中,第二块包括多个分支。
14.根据条款8-13中任一项所述的方法,还包括:
对多张图片执行预处理,其中,预处理包括对多张图片执行均值偏移相减;以及
对多张图片执行后处理,其中,后处理包括对训练图片的均值偏移相加,并且均值偏移相加对应于预处理中的均值偏移相减。
15.一种用于在视频处理中训练神经网络的系统,该系统包括:
存储器,存储器存储指令集;以及
处理器,处理器设置为执行指令集,以使系统执行:
接收多张训练图片;
使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
16.根据条款15所述的系统,其中,处理器还设置为执行指令集,以使系统执行:
合并第一块的第一分支的输出和第一块的第二分支的输出。
17.一种在视频处理中使用神经网络的系统,该系统包括:
存储器,存储器存储指令集;以及
处理器,处理器设置为执行指令集,以使系统执行:
接收包括多张图片的视频流;
使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
18.根据条款17所述的系统,其中,处理器还设置为执行指令集,以使系统执行:
合并第一块的第一分支的输出和第一块的第二分支的输出。
19.一种存储指令集的非易失性计算机可读介质,指令集可由装置的一个或多个处理器执行,以使装置启动用于在视频处理中执行神经网络的训练的方法,该方法包括:
接收多张训练图片;
使用多张训练图片来训练神经网络中的第一块的第一分支,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用多张训练图片来训练神经网络中的第一块的第二分支,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
20.一种存储指令集的非易失性计算机可读介质,指令集可由装置的一个或多个处理器执行,以使装置启动用于在视频处理中执行神经网络的训练的方法,该方法包括:
接收包括多张图片的视频流;
使用神经网络中的第一块的第一分支来处理多张图片,其中,神经网络设置为减少视频流的视频压缩中的块效应,并且第一分支包括一个或多个残差块;以及
使用神经网络中的第一块的第二分支来处理多张图片,其中,第二分支包括下采样处理、上采样处理和一个或多个残差块。
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,尽管采用了特定的术语,但是这些术语仅在一般和描述性的意义上使用,而不是为了限制的目的。

Claims (20)

1.一种在视频处理中使用神经网络的方法,包括:
接收包括多张图片的视频流;
使用所述神经网络中的第一块的第一分支来处理所述多张图片,其中,所述神经网络设置为减少所述视频流的视频压缩中的块效应,并且所述第一分支包括一个或多个残差块;以及
使用所述神经网络中的所述第一块的第二分支来处理所述多张图片,其中,所述第二分支包括下采样处理、上采样处理和一个或多个残差块。
2.根据权利要求1所述的方法,还包括:
合并所述第一块的所述第一分支的输出和所述第一块的所述第二分支的输出。
3.根据权利要求2所述的方法,其中,合并所述第一块的所述第一分支的所述输出和所述第一块的所述第二分支的所述输出还包括:
对所述第一分支的所述输出和所述第二分支的所述输出执行逐元素的点积。
4.根据权利要求1所述的方法,其中:
所述第二分支的所述下采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层;并且
所述第二分支的所述上采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层,所述一个或多个激活函数包括sigmoid函数。
5.根据权利要求1所述的方法,还包括:
使用所述神经网络的所述第一块的第三分支处理所述多张图片,其中,所述第三分支包括下采样处理、上采样处理和一个或多个残差块,并且所述第三分支的所述下采样处理的采样大小不同于所述第二分支的所述下采样处理的采样大小。
6.根据权利要求1所述的方法,还包括:
使用所述神经网络的第二块处理所述多张图片,其中,所述第二块包括多个分支。
7.根据权利要求1所述的方法,还包括:
对所述多张图片执行预处理,其中,所述预处理包括对所述多张图片执行均值偏移相减;以及
对所述多张图片执行后处理,其中,所述后处理包括对训练图片的均值偏移相加,并且所述均值偏移相加对应于所述预处理中的所述均值偏移相减。
8.一种在视频处理中使用神经网络的系统,所述系统包括:
存储器,所述存储器存储指令集;以及
处理器,所述处理器设置为执行所述指令集,以使所述系统执行:
接收包括多张图片的视频流;
使用所述神经网络中的第一块的第一分支来处理所述多张图片,其中,所述神经网络设置为减少所述视频流的视频压缩中的块效应,并且所述第一分支包括一个或多个残差块;以及
使用所述神经网络中的所述第一块的第二分支来处理所述多张图片,其中,所述第二分支包括下采样处理、上采样处理和一个或多个残差块。
9.根据权利要求8所述的系统,其中,所述处理器还设置为执行所述指令集,以使所述系统执行:
合并所述第一块的所述第一分支的输出和所述第一块的所述第二分支的输出。
10.根据权利要求9所述的系统,其中,所述处理器还设置为执行所述指令集,以使所述系统执行:
对所述第一分支的所述输出和所述第二分支的所述输出执行逐元素的点积。
11.根据权利要求8所述的系统,其中:
所述第二分支的所述下采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层;并且
所述第二分支的所述上采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层,所述一个或多个激活函数包括sigmoid函数。
12.根据权利要求8所述的系统,其中,所述处理器还设置为执行所述指令集,以使所述系统执行:
使用所述神经网络的所述第一块的第三分支处理所述多张图片,其中,所述第三分支包括下采样处理、上采样处理和一个或多个残差块,并且所述第三分支的所述下采样处理的采样大小不同于所述第二分支的所述下采样处理的采样大小。
13.根据权利要求8所述的系统,其中,所述处理器还设置为执行所述指令集,以使所述系统执行:
使用所述神经网络的第二块处理所述多张图片,其中,所述第二块包括多个分支。
14.根据权利要求8所述的系统,其中,所述处理器还设置为执行所述指令集,以使所述系统执行:
对所述多张图片执行预处理,其中,所述预处理包括对所述多张图片执行均值偏移相减;以及
对所述多张图片执行后处理,其中,所述后处理包括对训练图片的均值偏移相加,并且所述均值偏移相加对应于所述预处理中的所述均值偏移相减。
15.一种存储指令集的非易失性计算机可读介质,所述指令集可由装置的一个或多个处理器执行,以使所述装置启动用于在视频处理中执行神经网络的训练的方法,所述方法包括:
接收包括多张图片的视频流;
使用所述神经网络中的第一块的第一分支来处理所述多张图片,其中,所述神经网络设置为减少所述视频流的视频压缩中的块效应,并且所述第一分支包括一个或多个残差块;以及
使用所述神经网络中的所述第一块的第二分支来处理所述多张图片,其中,所述第二分支包括下采样处理、上采样处理和一个或多个残差块。
16.根据权利要求15所述的非易失性计算机可读介质,其中,所述方法还包括:
合并所述第一块的所述第一分支的输出和所述第一块的所述第二分支的输出。
17.根据权利要求16所述的非易失性计算机可读介质,其中,所述方法还包括:
对所述第一分支的所述输出和所述第二分支的所述输出执行逐元素的点积。
18.根据权利要求15所述的非易失性计算机可读介质,其中:
所述第二分支的所述下采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层;并且
所述第二分支的所述上采样处理包括:一个或多个卷积层以及一个或多个激活函数,所述一个或多个卷积层包括1×1卷积层,所述一个或多个激活函数包括sigmoid函数。
19.根据权利要求15所述的非易失性计算机可读介质,其中,所述方法还包括:
使用所述神经网络的所述第一块的第三分支处理所述多张图片,其中,所述第三分支包括下采样处理、上采样处理和一个或多个残差块,并且所述第三分支的所述下采样处理的采样大小不同于所述第二分支的所述下采样处理的采样大小。
20.根据权利要求15所述的非易失性计算机可读介质,其中,所述方法还包括:
使用所述神经网络的第二块处理所述多张图片,其中,所述第二块包括多个分支。
CN202180070827.8A 2021-01-19 2021-01-19 用于视频编码的基于神经网络的环内滤波 Pending CN116438567A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/072774 WO2022155799A1 (en) 2021-01-19 2021-01-19 Neural network based in-loop filtering for video coding

Publications (1)

Publication Number Publication Date
CN116438567A true CN116438567A (zh) 2023-07-14

Family

ID=82548471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180070827.8A Pending CN116438567A (zh) 2021-01-19 2021-01-19 用于视频编码的基于神经网络的环内滤波

Country Status (4)

Country Link
US (1) US20240048777A1 (zh)
EP (1) EP4281928A4 (zh)
CN (1) CN116438567A (zh)
WO (1) WO2022155799A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021002719A1 (ko) * 2019-07-03 2021-01-07 한국과학기술원 비디오 처리 방법 및 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009038364A1 (de) * 2009-08-23 2011-02-24 Friedrich-Alexander-Universität Erlangen-Nürnberg Verfahren und System zur automatischen Objekterkennung und anschließenden Objektverfolgung nach Maßgabe der Objektform
CN102196272B (zh) * 2010-03-11 2013-04-17 中国科学院微电子研究所 一种p帧编码方法及装置
US10368097B2 (en) * 2014-01-07 2019-07-30 Nokia Technologies Oy Apparatus, a method and a computer program product for coding and decoding chroma components of texture pictures for sample prediction of depth pictures
WO2017156772A1 (zh) * 2016-03-18 2017-09-21 深圳大学 一种乘客拥挤度的计算方法及其系统
EP3451293A1 (en) * 2017-08-28 2019-03-06 Thomson Licensing Method and apparatus for filtering with multi-branch deep learning
CN110120019B (zh) * 2019-04-26 2023-03-28 电子科技大学 一种基于特征增强的残差神经网络及图像去块效应方法
CN110188776A (zh) * 2019-05-30 2019-08-30 京东方科技集团股份有限公司 图像处理方法及装置、神经网络的训练方法、存储介质
CN112218097A (zh) * 2019-07-12 2021-01-12 富士通株式会社 环路滤波装置和图像解码装置
US11503323B2 (en) * 2020-09-24 2022-11-15 Tencent America LLC Method and apparatus for inter-picture prediction with virtual reference picture for video coding
US11483591B2 (en) * 2020-12-16 2022-10-25 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
EP4281928A1 (en) 2023-11-29
US20240048777A1 (en) 2024-02-08
EP4281928A4 (en) 2024-10-02
WO2022155799A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US11902561B2 (en) Convolutional-neutral-network based filter for video coding
CN114788264B (zh) 用于发出虚拟边界和环绕运动补偿的信号的方法
CN114145016A (zh) 视频信号的矩阵加权帧内预测
JP2023514136A (ja) クロマ信号を処理するための方法
CN114868393A (zh) 执行环绕运动补偿的方法
JP2023519216A (ja) ループフィルタの高レベルシンタックス制御
WO2022193917A1 (en) Methods, apparatus, and non-transitory computer readable medium for cross-component sample adaptive offset
CN114125449B (zh) 基于神经网络的视频处理方法、系统和计算机可读介质
CN115836525B (zh) 用于从多个交叉分量进行预测的视频编码、解码方法和设备
WO2022117010A1 (en) Methods and systems for cross-component sample adaptive offset
CN115398897B (zh) 用于导出时间运动信息的方法和装置
CN114788284B (zh) 用于在调色板模式下对视频数据进行编码的方法和装置
CN115349228A (zh) 视频记录的符号数据隐藏
CN115280770A (zh) 用于对视频进行编码或解码的方法和装置
CN116438567A (zh) 用于视频编码的基于神经网络的环内滤波
CN116114246B (zh) 帧内预测平滑滤波器系统及方法
CN118511507A (zh) 视频预测模式的加权
CN116601960A (zh) 使用自适应环路滤波器的方法及其系统
CN115552900A (zh) 用信号通知最大变换大小和残差编码的方法
CN114424528A (zh) 视频编码的运动补偿方法
CN115443655A (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