CN114125449B - 基于神经网络的视频处理方法、系统和计算机可读介质 - Google Patents
基于神经网络的视频处理方法、系统和计算机可读介质 Download PDFInfo
- Publication number
- CN114125449B CN114125449B CN202111247952.XA CN202111247952A CN114125449B CN 114125449 B CN114125449 B CN 114125449B CN 202111247952 A CN202111247952 A CN 202111247952A CN 114125449 B CN114125449 B CN 114125449B
- Authority
- CN
- China
- Prior art keywords
- weighted
- neural network
- generate
- density
- feature map
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 125
- 238000003672 processing method Methods 0.000 title claims description 8
- 238000000034 method Methods 0.000 claims abstract description 215
- 230000008569 process Effects 0.000 claims abstract description 171
- 238000012545 processing Methods 0.000 claims abstract description 104
- 238000007906 compression Methods 0.000 claims abstract description 37
- 230000006835 compression Effects 0.000 claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 34
- 230000015654 memory Effects 0.000 claims description 40
- 238000012549 training Methods 0.000 abstract description 31
- 238000001914 filtration Methods 0.000 abstract description 14
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 26
- 238000013139 quantization Methods 0.000 description 26
- 230000002123 temporal effect Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 20
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 13
- 238000013527 convolutional neural network Methods 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 11
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 11
- 239000000047 product Substances 0.000 description 11
- 230000002829 reductive effect Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000011176 pooling Methods 0.000 description 10
- 238000013213 extrapolation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000007499 fusion processing Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000006837 decompression Effects 0.000 description 6
- 229910003460 diamond Inorganic materials 0.000 description 6
- 239000010432 diamond Substances 0.000 description 6
- 238000010801 machine learning Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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 slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供了用于在视频处理中执行多密度神经网络的训练和执行的方法。示例性的方法包括:接收包括多个帧的视频流;使用神经网络中的第一密度分支处理多个帧以生成第一特征映射,其中,神经网络被配置成减少视频流的视频压缩中的块伪影,并且第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;使用神经网络中的注意力分支处理多个帧以生成加权映射,其中,注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及将加权映射应用于第一特征映射以生成第一加权特征映射。本公开提高了神经网络环路内滤波的分辨率适应性和学习能力,降低了整体计算复杂度,进而提高了编码效率。
Description
技术领域
本公开总体上涉及视频处理,尤其涉及基于神经网络的视频处理方法、系统和计算机可读介质。
背景技术
视频是捕捉视觉信息的一组静态图片(或”帧”)。为了减少存储内存和传输带宽,可以在存储或传输之前压缩视频,并在显示之前解压缩视频。压缩过程通常被称为编码,解压缩过程通常被称为解码。目前存在使用多种标准化的视频编码技术的多种视频编码格式,最常见的视频编码技术基于预测、变换、量化、熵编码和环路内滤波。规定了特定的视频编码格式的视频编码标准由标准化组织制定,例如高效视频编码(High Efficiency VideoCoding,例如,HEVC/H.265)标准、通用视频编码(Versatile Video Coding,例如,VVC/H.266)标准和AVS标准。随着越来越多的先进视频编码技术被应用到视频标准中,新的视频编码标准的编码效率越来越高。
发明内容
本公开的各种实施例提供基于神经网络的视频处理方法、系统和计算机可读介质。
本公开的实施例提供了一种基于神经网络的视频处理方法,所述方法包括:接收包括多个帧的视频流;使用神经网络中的第一密度分支处理所述多个帧以生成第一特征映射,其中,所述神经网络被配置为减少所述视频流的视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理,以及一个或多个卷积层;使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射,其中,所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及将所述加权映射应用于所述第一特征映射以生成第一加权特征映射。
本公开的实施例提供了一种在视频处理中训练神经网络的方法,所述方法包括:接收多个训练用图片;使用所述多个训练用图片训练神经网络中的第一密度分支,所述第一密度分支生成第一特征映射,其中,所述神经网络被配置为减少视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;以及使用所述多个训练用图片训练所述神经网络中的注意力分支,所述注意力分支生成加权映射,其中,所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层,并且应用所述加权映射于所述第一特征映射以生成第一加权特征映射。
本公开的实施例提供了一种基于神经网络的视频处理系统,所述系统包括:存储器,用于存储指令集;以及处理器,被配置为执行所述指令集以使所述系统执行:接收包括多个帧的视频流;使用神经网络中的第一密度分支处理所述多个帧以生成第一特征映射,其中,所述神经网络被配置为减少所述视频流的视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射,其中,所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及将所述加权映射应用于所述第一特征映射以生成第一加权特征映射。
本公开的实施例提供了一种在视频处理中训练神经网络的系统,所述系统包括:存储器,用于存储指令集;以及处理器,被配置为执行所述指令集以使所述系统执行:接收多个训练用图片;使用所述多个训练用图片训练神经网络中的第一密度分支,所述第一密度分支生成第一特征映射,其中,所述神经网络被配置为减少视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;以及使用所述多个训练用图片训练所述神经网络中的注意力分支,所述注意力分支生成加权映射,其中,所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层,并且应用所述加权映射于所述第一特征映射以生成第一加权特征映射。
本公开的实施例还提供一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备启动基于神经网络的视频处理方法,所述方法包括:接收包括多个帧的视频流;使用神经网络中的第一密度分支处理所述多个帧以生成第一特征映射,其中所述神经网络被配置为减少所述视频流的视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射,其中所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及将所述加权映射应用于所述第一特征映射以生成第一加权特征映射。
本公开的实施例还提供了一种非瞬时计算机可读介质,所述非瞬时计算机可读介质存储指令集,所述指令集可由设备的一个或多个处理器执行以使所述设备启动在视频处理中训练神经网络的方法,所述方法包括:接收多个训练用图片;使用所述多个训练用图片训练神经网络中的第一密度分支,所述第一密度分支生成第一特征映射,其中,所述神经网络被配置为减少视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;以及使用所述多个训练用图片训练所述神经网络中的注意力分支,所述注意力分支生成加权映射,其中所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层,并且所述加权映射被应用于所述第一特征映射以生成第一加权特征映射。
本公开的实施例提高了神经网络环路内滤波的分辨率适应性和学习能力,降低了整体计算复杂度,进而提高了编码效率。
附图说明
在下面的详细描述和附图中示出了本公开的实施例和各个方面。图中所示的各种特征没有按比例绘制。
图1示出根据本公开实施例的一示例性的视频序列的结构。
图2A示出根据本公开实施例的一示例性的编码过程的示意图。
图2B示出根据本公开实施例的另一示例性的编码过程的示意图。
图3A示出根据本公开实施例的一示例性的解码过程的示意图。
图3B示出根据本公开实施例的另一示例性的解码过程的示意图。
图4示出根据本公开实施例的一示例性的解码过程中的亮度映射与色度伸缩滤波器的示意图。
图5示出根据本公开实施例的一示例性的自适应环路滤波器的菱形滤波器形状的示意图。
图6A示出根据本公开实施例的一示例性的作为环路内滤波的神经网络结构的示意图。
图6B示出根据本公开实施例的一示例性的残差块的示意图。
图7示出根据本公开实施例的一示例性的神经网络环路内滤波的多密度机制的示意图。
图8示出根据本公开实施例的一示例性的神经网络环路内滤波中的多密度注意力分支的示意图。
图9示出根据本公开实施例的一示例性的改进的神经网络环路内滤波中的多密度注意力分支的示意图。
图10A示出根据本公开实施例的一示例性的改进的多密度注意力网络的示意图。
图10B示出根据本公开实施例的一示例性的融合过程的示意图。
图11示出根据本公开实施例的一示例性的在视频处理中训练神经网络的方法的流程图。
图12示出根据本公开实施例的一示例性的基于神经网络的视频处理方法的流程图。
图13示出根据本公开实施例的一示例性的神经处理单元。
图14示出根据本公开实施例的一示例性的机器学习系统1400。
具体实施例
现在将详细参考示例性实施例,其示例在附图中示出。以下说明参考附图,其中不同附图中的相同数字表示相同或类似的元件,除非另有说明。在以下示例性的实施例的描述中阐述的实现并不代表与本公开相符的所有实现。相反,它们仅仅是与所附权利要求中所述的与本公开相关的方面相符的装置和方法的示例。下面更详细地描述本公开的特定方面。如果本文提供的术语和定义与通过引用合并的术语和/或定义相冲突,则以本文提供的术语和定义为准。
ITU-T视频编码专家组(Video Coding Expert Group,VCEG)和ISO/IEC运动图像专家组(Moving Picture Expert Group,MPEG)的联合视频专家组(Joint Video ExpertsTeam,JVET)目前正在开发通用视频编码(VVC/H.266)标准。VVC标准旨在将其前身(即高效视频编码(HEVC/H.265)标准)的压缩效率提高一倍。换句话说,VVC的目标是使用一半的带宽在主观上实现与HEVC/H.265相同的质量。
为了使用一半的带宽在主观上实现与HEVC/H.265相同的质量,联合视频专家组(JVET)一直在使用联合探索模型(joint exploration model,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系列等。在一些应用中,编解码器可以从第一编码标准解压缩视频,并使用第二编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以称为”代码转换器”。
视频编码过程可以识别和保留可用于重建图片的有用信息。如果不能完全重建在视频编码过程中被忽略的信息,则编码过程可以被称为"有损的",否则,可以被称为"无损的"。大多数编码过程是有损的,这是为了减少所需的存储空间和传输带宽而进行的折衷。
在许多情况下,正被编码的图片(称为当前图片)的有用信息可以包括关于参考图片(例如,先前编码或重构的图片)的变化。这样的变化可以包括像素的位置变化、光度(luminosity)变化或颜色(color)变化。表示对象的一组像素的位置变化可以反映对象在参考图片和当前图片之间的运动。
没有参考另一个图片而编码的图片(即,它是其自己的参考图片)被称为”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所示的示例。
通常,由于这些任务的计算复杂性,视频编解码器不一次编码或解码整个图片。相反,它们可以将图片分割为基本片段(basic segment),并逐段对图片进行编码或解码。在本公开中,这些基本片段被称为基本处理单元(basic processing unit,BPU)。例如,图1中的结构110示出了视频序列100的图片(例如,图片102-108中的任何一个)的示例结构。在结构110中,图片被划分为4×4个基本处理单元,其边界被示为虚线。在一些实施例中,基本处理单元可以在一些视频编码标准(例如,MPEG系列、H.261、H.263、或H.264/AVC)中被称为“宏块(macroblock)”,或者在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为”编码树单元(coding tree unit,CTU)”。基本处理单元可以在图片中具有可变的大小,例如128×128、64×64、32×32、16×16、4×8、16×32、或任何像素的任意形状和大小。可以基于编码效率和要保持在基本处理单元中的细节等级的平衡来为图片选择基本处理单元的大小和形状。
基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器中(例如,在视频帧缓冲器中)的一组不同类型的视频数据。例如,彩色图片的基本处理单元可以包括表示消色差的亮度信息(achromatic brightness information)的亮度分量(luma component,Y)、表示颜色信息的一个或多个色度分量(chroma component,例如,Cb和Cr)、以及相关联的语法元素,其中亮度分量和色度分量可以具有与基本处理单元相同的大小。在一些视频编码标准(例如,H.265/HEVC或H.266/VVC)中,亮度和色度分量可以被称为“编码树块(coding tree block,CTB)”。可以对基本处理单元的亮度和色度分量中的每一个重复执行对该基本处理单元执行的任何操作。
视频编码具有多个操作阶段,其示例示于图2A和图2B以及图3A和图3B。对于每一个阶段,基本处理单元的大小对于处理来说仍然太大,因此在本公开中可以进一步划分基本处理单元的大小为称为“基本处理子单元”的片段。在一些实施例中,基本处理子单元可以在一些视频编码标准(例如,MPEG系列、H.261、H.263、或H.264/AVC)中被称为”块(block)”,或者在一些其他视频编码标准(例如,H.265/HEVC或H.266/VVC)中被称为”编码单元(coding unit,CU)”。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲器中)中的一组不同类型的视频数据(例如,Y、Cb、Cr和相关语法元素)。可以对基本处理子单元的亮度和色度分量中的每一个重复执行对该基本处理子单元执行的任何操作。应当注意,这种划分可以根据处理需要进一步执行。还应注意,不同的阶段可以使用不同的方案来划分基本处理单元。
例如,在模式决定阶段(其示例如图2B所示),编码器可以决定对于基本处理单元使用何种预测模式(例如,图片内预测或图片间预测),基本处理单元可能太大而无法做出这样的决定。因此编码器可以将基本处理单元划分为多个基本处理子单元(例如,如H.265/HEVC或H.266/VVC中的CU),并为每个单独的基本处理子单元确定预测类型。
作为另一示例,在预测阶段(其示例示于图2A和图2B),编码器可以在基本处理子单元(例如,CU)的级别上执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器还可以将基本处理子单元划分为更小的片段(例如,在H.265/HEVC或H.266/VVC中称为“预测块(prediction block)”或“PB”),在其级别上可以执行预测操作。
作为另一示例,在变换阶段(其示例示于图2A和图2B),编码器可以对残差基本处理子单元(例如,CU)执行变换操作。但是,在一些情况下,基本处理子单元仍然可能太大而无法处理。编码器还可以将基本处理子单元划分为更小的片段(例如,在H.265/HEVC或H.266/VVC中称为“变换块(transform block)”或“TB”),在其级别上可以执行变换操作。应当注意,同一基本处理子单元的划分方案在预测阶段和变换阶段可以不同。例如,在H.265/HEVC或H.266/VVC中,同一CU的预测块和变换块可以具有不同的大小和数量。
在图1的结构110中,基本处理单元112进一步划分为3×3个基本处理子单元,其边界用虚线表示。相同图片的不同基本处理单元可以在不同方案中划分为基本处理子单元。
在一些实现中,为了向视频编码和解码提供并行处理和抗误码能力,可以将图片划分为用于处理的区域(region),使得对于图片的一个区域,编码或解码过程可以不依赖于来自图片的任何其他区域的信息。换句话说,可以独立处理图片的每个区域。通过这样做,编解码器可以并行处理图像的不同区域,从而提高编码效率。此外,当一个区域的数据在处理中损坏或在网络传输中丢失时,编解码器可以正确地对同一图片的其他区域进行编码或解码,而不依赖于损坏或丢失的数据,从而提供抗误码能力。在一些视频编码标准中,图片可以划分为不同类型的区域。例如,H.265/HEVC和H.266/VVC提供两种类型的区域:“切片(slices)”和“瓦片(tiles)”。还应注意,视频序列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和预测BPU 208。编码器可以从原始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。编码器可以将重构残差BPU222添加到预测BPU208以生成预测参考224,预测参考224用在过程200A的下一次迭代的预测阶段204中。过程200A的组件218、220、222和224可称为“重构路径”。重构路径可用于确保编码器和解码器都使用相同的参考数据进行预测。
编码器可以迭代地执行过程200A,以(在前向路径中)编码原始图片的每个原始BPU,并(在重建路径中)生成用于编码原始图片的下一个原始BPU的预测参考224。在对原始图片的所有原始BPU进行编码之后,编码器可以继续对视频序列202中的下一个图片进行编码。
参照过程200A,编码器可以接收由视频捕获设备(例如,摄像机)生成的视频序列202。这里使用的术语“接收”可以指接收、输入、获取、提取、获得、读取、访问或以任何方式输入数据的任何动作。
在预测阶段204,在当前迭代中,编码器可以接收原始BPU和预测参考224,并执行预测操作以生成预测数据206和预测BPU 208。可以从过程200A的先前迭代的重构路径生成预测参考224。预测阶段204的目的是通过从预测数据206和预测参考224中提取可用于将原始BPU重构为预测BPU 208的预测数据206,来减少信息冗余。
理想情况下,预测BPU 208可以与原始BPU相同。然而,由于非理想的预测和重构操作,预测BPU208通常与原始BPU略有不同。为了记录这种差异,在生成预测BPU208之后,编码器可以从原始BPU中减去预测BPU 208以生成残差BPU210。例如,编码器可以从原始BPU的对应像素的值中减去预测BPU208的像素的值(例如,灰度值或RGB值)。残差BPU 210的每个像素可以具有作为原始BPU和预测BPU 208的对应像素之间的这种减法的结果的残余值。与原始BPU相比,预测数据206和残差BPU 210可以具有更少的比特,但是它们可以用于重构原始BPU而不会出现显著的质量劣化。因此,原始BPU被压缩。
为了进一步压缩残差BPU210,在变换阶段212,编码器可以通过将残差BPU210分解成一组二维”基模式(base pattern)”来减少空间冗余,每个基模式与”变换系数”相关联。基模式可以具有相同的大小(例如,残差BPU210的大小)。每个基模式可以表示残差BPU210的变化频率(例如,亮度变化的频率)分量。不能从任何其他基模式的任何组合(例如,线性组合)再现基模式中的任何一个。换句话说,分解可以将残差BPU210的变化分解到频域中。这种分解类似于函数的离散傅里叶变换,其中基模式类似于离散傅里叶变换的基函数(例如,三角函数),并且变换系数类似于基函数相关联的系数。
不同的变换算法可以使用不同的基模式。在变换阶段212可以使用各种变换算法,例如,离散余弦变换、离散正弦变换等。变换阶段212的变换是可逆的。即,编码器可以通过该变换的逆操作(称为“逆变换”)恢复残差BPU210。例如,为了恢复残差BPU210的像素,逆变换可以是将基模式的对应像素的值乘以相应的相关系数并将乘积相加以产生加权和。对于一个视频编码标准,编码器和解码器都可以使用相同的变换算法(因此使用相同的基模式)。因此,编码器可以仅记录变换系数,解码器可以从变换系数重构残差BPU210,而不从编码器接收基模式。与残差BPU 210相比,变换系数可以具有更少的比特,但是它们可以用于重构残差BPU 210而不会出现显著的质量恶化。因此,残差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以生成将在过程200A的下一次迭代中使用的预测参考224。
应当注意,过程200A的其他变量可用于对视频序列202进行编码。在一些实施例中,过程200A的阶段可以由编码器以不同的顺序执行。在一些实施例中,过程200A的一个或多个阶段可以组合成单个阶段。在一些实施例中,过程200A的单个阶段可以划分为多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200A可以包括附加阶段。在一些实施例中,过程200A可以省略图2A中的一个或多个阶段。
图2B示出根据本公开实施例的另一示例性的编码过程的示意图。如2B图所示,过程200B可以从过程200A经由修改得到。例如,过程200B可由符合混合视频编码标准(例如,H.26x系列)的编码器使用。与过程200A相比,过程200B的前向路径还包括模式决策阶段230,并将预测阶段204划分为空间预测阶段2042和时间预测阶段2044。过程200B的重构路径还包括环路滤波器阶段232和缓冲器234。
一般来说,预测技术可以分为两类:空间预测和时间预测。空间预测(例如,图片内预测或“帧内预测”)可以使用来自同一图片中的一个或多个已经编码的相邻BPU的像素来预测当前BPU。即,空间预测中的预测参考224可以包括相邻BPU。空间预测可以减少图片的固有空间冗余。时间预测(例如,图片间预测或“帧间预测”)可以使用来自一个或多个已经编码的图片的区域来预测当前BPU。即,时间预测中的预测参考224可以包括编码的图片。时间预测可以减少图片的固有时间冗余。
参照过程200B,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正被编码的图片的原始BPU,预测参考224可以包括在同一图片中已经(在前向路径中)被编码和(在重构路径中)被重构的一个或多个相邻BPU。编码器可以通过外推相邻BPU来生成预测BPU208。外推(extrapolation)技术可以包括,例如,线性外推或内插、多项式外推或内插等。在一些实施例中,编码器可以在像素级别执行外推,例如通过外推预测BPU208的每个像素的对应像素值。用于外推的相邻BPU可以从各种方向相对于原始BPU定位,例如在垂直方向(例如,在原始BPU的顶部)、水平方向(例如,在原始BPU的左侧)、对角线方向(例如,在原始BPU的左下、右下、左上或右上)或在所使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括,例如,所使用的相邻BPU的位置(例如,坐标)、所使用的相邻BPU的大小、外推的参数、所使用的相邻BPU相对于原始BPU的方向等。
作为另一示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图片的原始BPU,预测参考224可以包括已经(在前向路径中)被编码和(在重构路径中)被重构的一个或多个图片(称为“参考图片”)。在一些实施例中,可以一个BPU接一个BPU地对参考图片进行编码和重构。例如,编码器可以将重构残差BPU222添加到预测BPU208以生成重构BPU。当生成同一图片的所有重构BPU时,编码器可以生成作为参考图片的重构图片。编码器可以执行“运动估计”操作,以在参考图片的范围(称为“搜索窗口”)中搜索匹配区域。搜索窗口在参考图片中的位置可以基于原始BPU在当前图片中的位置来确定。例如,搜索窗口可以集中于参考图片中的与当前图片中的原始BPU具有相同坐标的位置,并且可以向外延伸预定距离。当编码器(例如,通过使用像素递归算法(pel-recursive algorithm)、块匹配算法(block-matching algorithm)等)识别出在搜索窗口中类似于原始BPU的区域时,编码器可以确定这样的区域作为匹配区域。匹配区域可以具有与原始BPU不同的尺寸(例如,小于、等于、大于、或以不同的形状)。因为参考图片和当前图片在时间线中时间分离(例如,如图1所示),所以可以认为随着时间的推移,匹配区域“移动”到原始BPU的位置。编码器可以将这样的运动的方向和距离记录为“运动矢量”。当使用多个参考图片(例如,图1中的图片106的)时,编码器可以搜索匹配区域并为每个参考图片确定其相关联的运动矢量。在一些实施例中,编码器可以将权重分配给各个匹配参考图片的匹配区域的像素值。
运动估计可用于识别各种类型的运动,例如平移、旋转、缩放等。对于帧间预测,预测数据206可以包括,例如,匹配区域的位置(例如,坐标)、与匹配区域相关联的运动矢量、参考图片的数量、与参考图片相关联的权重等。
为了生成预测BPU 208,编码器可以执行“运动补偿”操作。运动补偿可以用于基于预测数据206(例如,运动矢量)和预测参考224来重构预测BPU 208。例如,编码器可以根据运动矢量移动参考图片的匹配区域,其中编码器可以预测当前图片的原始BPU。当使用多个参考图片(例如,图1中的图片106的)时,编码器可以根据匹配区域的相应运动矢量和平均像素值来移动参考图片的匹配区域。在一些实施例中,如果编码器已将权重分配给相应匹配参考图片的匹配区域的像素值,则编码器可以将移动的匹配区域的各个像素值的加权和相加。
在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以使用相对于当前图片在相同时间方向上的一个或多个参考图片。例如,图1中的图片104是单向帧间预测图片,其中参考图片(即,图片102)在图片104之前。双向帧间预测可以在相对于当前图片的两个时间方向上使用一个或多个参考图片。例如,图1中的图片106是双向帧间预测图片,其中参考图片(即,图片104和108)在相对于图片106的两个时间方向上。
仍然参考过程200B的前向路径,在空间预测阶段2042和时间预测阶段2044之后,在模式决策阶段230,编码器可以为过程200B的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行速率失真优化技术(rate-distortionoptimization technique,),其中编码器可以选择预测模式以最小化损失函数值,所述损失函数根据候选预测模式的比特速率和在候选预测模式下的重建参考图片的失真度构建。根据所选择的预测模式,编码器可以生成相应的预测BPU208和预测数据206。
在过程200B的重构路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,在当前图片中已经编码和重构的当前BPU)之后,编码器可以直接将预测参考224馈送到空间预测阶段2042以供以后使用(例如,用于当前图片的下一BPU的外推)。如果在前向路径中选择了帧间预测模式,则在生成预测参考224(例如,其中所有BPU都已被编码和重构的当前图片)之后,编码器可以将预测参考224馈送到环路滤波器阶段232,在环路滤波器阶段232,编码器可以将环路滤波器应用到预测参考224以减少或消除由帧间预测引入的失真(例如,块伪影(blocking artifact))。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如,去块、采样自适应偏移、自适应环路滤波器等。循环滤波的参考图片可以存储在缓冲器234(或“解码图片缓冲器”)中以供以后使用(例如,用作视频序列202的未来图片的帧间预测参考图片)。编码器可以将一个或多个参考图片存储在缓冲器234中,以便在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226对环路滤波器的参数(例如,环路滤波器强度)以及量化变换系数216、预测数据206和其他信息进行编码。
图3A示出根据本公开实施例的一示例性的解码过程的示意图。如图3A所示,过程300A可以是对应于图2A中的压缩过程200A的解压缩过程。在一些实施例中,过程300A可以类似于过程200A的重构路径。根据过程300A,解码器可以将视频比特流228解码成视频流304。视频流304可以非常类似于视频序列202。然而,由于压缩和解压缩处理(例如,图2A和图2B中的量化阶段214)中的信息丢失,通常,视频流304与视频序列202不相同。类似于图2A和图2B中的过程200A和200B,解码器可以对编码在视频比特流228中的每个图片执行基本处理单元(BPU)级别的过程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通过网络打包(packet)传输,则解码器可以在将其馈送到二进制解码阶段302之前对视频比特流228进行解包。
图3B示出根据本公开实施例的另一示例性的解码过程的示意图。如图3B所示,过程300B可以从过程300A修改得到。例如,过程300B可由符合混合视频编码标准(例如,H.26x系列)的解码器使用。与过程300A相比,过程300B还将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并且还包括环路滤波器阶段232和缓冲器234。
在过程300B中,对于正在被解码的编码图片(称为“当前图片”)的编码基本处理单元(称为“当前BPU”),由解码器从二进制解码阶段302解码得到的预测数据206可以包括各种类型的数据,具体取决于编码器使用何种预测模式对当前BPU进行编码。例如,如果编码器使用帧内预测对当前BPU进行编码,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值(flag value))、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,作为参考的一个或多个相邻BPU的位置(例如,坐标)、相邻BPU的大小、外推参数、相邻BPU相对于原始BPU的方向等。对于另一示例,如果编码器使用帧间预测来对当前BPU进行编码,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等。帧间预测操作的参数可以包括,例如,与当前BPU相关联的参考图片的数量、分别与多个参考图片相关联的权重、相应参考图片中的一个或多个匹配区域的位置(例如,坐标)、分别与匹配区域相关联的一个或多个运动矢量等。
基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测),还是在时间预测阶段2044执行时间预测(例如,帧间预测)。在图2B描述了执行这种空间预测或时间预测的细节,下文不再重复。在执行这样的空间预测或时间预测之后,解码器可以生成预测BPU208。如图3B所示,解码器可以将预测BPU208和重构残差BPU222相加以生成预测参考224。
在过程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时,预测数据可以进一步包括环路滤波器的参数(例如,环路滤波器强度)。
可以有四种类型的环路滤波器。例如,环路滤波器可以包括去块滤波器(deblocking filter)、样本自适应偏移(sample adaptive offset,SAO)滤波器、亮度映射与色度伸缩(luma mapping with chroma scaling,LMCS)滤波器和自适应环路滤波器(adaptive loop filter,ALF)。应用四种类型的环路滤波器的顺序可以是LMCS滤波器、去块滤波器、SAO滤波器和ALF。LMCS滤波器可以包括两个主要组件。第一组件可以是基于自适应分段线性模型(adaptive piecewise linear model)的亮度分量的环路内映射。第二组件可以是用于色度分量,并且可以应用依赖于亮度的色度残差缩放。
图4示出根据本公开实施例的一示例性的解码过程中的亮度映射与色度伸缩滤波器的示意图。如图4所示,深灰色阴影的组件指示在映射域中相应处理应用的位置。这些组件可以包括逆量化和逆变换413、亮度帧内预测429、以及在重构中将亮度预测与亮度残差相加423。图4中所示的非阴影组件指示在原始(例如,非映射)域中相应处理应用的位置。这些组件可以包括环路滤波器432和433(例如,去块滤波器、ALF滤波器、SAO滤波器等)、色度运动补偿预测442、亮度运动补偿预测443、色度帧内预测428、在重构中将色度预测与色度残差相加422、以及将作为参考图片的解码图片存储在解码图片缓冲器(decoded picturebuffer,DPB)436和DPB437中。在图4中的浅灰色阴影的组件可以是新的LMCS功能块,例如亮度信号的正向映射449、亮度信号的逆向映射425、以及依赖于亮度的色度缩放处理411。
在一些系统(例如,VVC的测试模型7(Test Model 7of VVC,VTM7))中,可以使用序列参数集(sequence parameter set,SPS)标志在序列级别启用或禁用LMCS。去块滤波器可应用于与图片单元(picture unit,PU)或瓦片单元(tile unit,TU)边界相邻的所有样本,除非该边界也是图片边界或禁止跨越片或瓦片的边界去块。可以修改这些系统。例如,在VVC中,可以添加以下特征:依赖于重构样本的平均亮度水平的去块滤波器的滤波器强度;去块参数表扩展到和适应于10比特(bit)视频;用于亮度的4×4网格去块;针对亮度的更强去块滤波器;针对色度的更强去块滤波器;针对子块边界的去块滤波器;以及适应更小的运动差异的去块决策。
SAO滤波器可以是解码过程中的一个处理,该处理基于由编码器发送的查找表中的各个值,通过在去块滤波器之后有条件地向每个样本添加偏移值来修改解码样本。在一些系统(例如,VVC或VTM7)中,SAO滤波器可以包括频带(band)偏移模式和边沿(edge)偏移模式。在频带偏移模式中,可以将整个采样振幅范围均匀地分割为32个称为频带的段,并且通过添加表示为频带偏移的发送值来修改属于这些频带中的四个频带(其在32个频带内是连续的)的采样值。频带偏移可以是正的或负的。使用四个连续频带的原因之一是在平滑区域可能出现频带伪影(banding artifact),CTB中的样本振幅往往只集中在少数几个频带上。在边沿偏移模式中,值从0到3的语法元素sao_eo_class可以指示是水平、垂直、还是两个对角线梯度方向中的一个被用于CTB中的边沿偏移分类。通过将样本值与两个邻居样本进行比较,可以将CTB中的每个样本分为五个类别之一。对于每个类别,可以向解码器发送偏移信号并将其添加到相应的样本中。
ALF滤波器可以应用于网格,如4×4网格。在一些系统(例如,VVC或VTM7)中,基于局部梯度的方向和活动性,亮度滤波器单元可分类到25个类别之一,并可使用7×7的菱形滤波器形状。对于每个类别,在自适应参数组(adaptation parameter set,APS)中发送一组滤波器参数。对于色度分量,可使用5×5的菱形滤波器形状,并可发送八组参数信号。图5示出根据本公开实施例的一示例性的自适应环路滤波器的菱形滤波器形状的示意图。如图5所示,示出了5×5的菱形滤波器的形状,其可用于色度分量。还示出了7×7的菱形滤波器形状,其可用于亮度分量。在对每个4×4的亮度块进行滤波之前,可以根据为块计算的梯度值,将几何变换(诸如旋转、或对角线和垂直翻转)应用于滤波器系数和相应的滤波器裁剪(clipping value)值。这可能等价于将这些变换应用于滤波器支持区域中的样本。
基于卷积神经网络(CNN)的图片/视频压缩已经成为活跃的研究领域。例如,与传统图片压缩方法相比,端到端图片压缩可以获得有竞争力的性能。端到端的基于学习的视频压缩框架(learned video compression framework)可以利用光流(optical flow)获取运动信息并重建当前帧。基于学习的视频压缩(learned video compression)的其他方法可以将神经网络结合到传统视频编码框架中的不同功能块中(例如,帧内预测、帧间预测、变换、熵编码和环路内滤波)。
基于学习的压缩方法或基于CNN的压缩方法可以使用神经网络的充足的可训练参数学习压缩伪影(compression artifact)的广泛特征,并且可以通过将压缩图片与原始图片之间的相关性映射到待学习函数来最小化压缩图片的失真。例如,在编码过程中可以使用四层超分辨率CNN来代替SAO滤波器。与单路径CNN相比,可变滤波器尺寸的CNN能够有助于提取不同空间尺度的特征,网络复杂度更低,训练过程更快。此外,多通道长短期相关性残差网络(multi-channel long-short-term dependency residual network)可用于将失真帧映射到其相关联的原始帧,并可被插入到去块滤波器和SAO滤波器之间。CU和TU边界也可以用作为输入的一部分,以便更容易地捕获伪影(artifacts)。除了局部块外,还可以通过同时考虑参考帧中的当前块和共定位块(co-located block)来联合利用空间和时间信息。HEVC的多帧环路内滤波器可以通过利用其相邻帧来提高每个编码帧的视觉质量。基于注意力(attention)的双尺度(dual-scale)CNN可以减少压缩伪影,其也利用了诸如量化参数(quantization parameter,QP)和分区信息等信息先验。非局部注意力网络可以用于高质量图片的恢复,其捕捉像素之间的长期依赖关系。
图6A示出根据本公开实施例的一示例性的作为环路内滤波的神经网络结构的示意图。如图6A所示,输入可由残差神经网络(ResNet)处理,在生成输出之前,残差神经网络包括卷积层、和一个或多个残差块(ResBlock)。在一些实施例中,卷积处理可以使用全分辨率卷积进行,即步进(stride)为1。图6B示出根据本公开实施例的一示例性的残差块的示意图。图6B中所示的残差块包括两个卷积层。在传统的神经网络中,每一层馈送到下一层。在图6B所示的残差块中,附加连接(例如,标识(identity))可以对一个或多个层馈送输入信号,并允许输入信号跳过一个或多个层。可以理解的是,图6B中所示的残差块可用在图6A所示的神经网络结构中。
虽然基于CNN的压缩方法能够捕获视频信号中的特征(例如,伪影特征)并描述高维映射,但直接采用CNN结构可能存在许多主要缺点。第一,分辨率适应性可能是一个问题。视频分辨率是指原始信号的采样密度。不同分辨率的视频信号可以在固定邻域内具有不同程度的样本相关性。因此,在特定分辨率上训练的CNN可能不适用于其他分辨率的视频信号。第二,在空间精确表示和更大的感受野(receptive field,例如,采样大小)之间可以有一个折衷。视频压缩可能需要精确的信号信息。因此,可以谨慎地使用下采样,以避免丢失视频信号中的精细细节。然而,全分辨率卷积层由于其有限的感受野,在利用上下文信息方面可能不太有效。第三,如果简单地采用不同分辨率的多尺度流,网络的计算复杂度会显著增加,这很难在工业规模的应用中使用。
本公开的实施例提供了一种改进的基于神经网络的环路内滤波,以解决上述讨论的问题。为了提高神经网络(如CNN)的分辨率适应性和学习能力,提出了一种多密度机制(multi-density mechanism)。图7示出根据本公开实施例的一示例性的神经网络环路内滤波的多密度机制的示意图。如图7所示,多密度机制可分为三个分支。对于具有宽度w、高度h和通道数c的特征映射,特征映射可以表示为w×h×c。在一些实施例中,通道数可以包括颜色,例如红色、蓝色和绿色(RBG)。如图7所示,特征映射w×h×c可以流入多个不同分辨率尺度的流(stream)或分支(branch)。每个分支可以包括卷积层。在图7所示的100%分支中,特征映射可以保持全空间分辨率(full spatial resolution)w×h×c。因此,在100%分支中不需要下采样层,并且可以保持全分辨率。在图7所示的50%分支中,首先进行下采样处理,将特征映射的分辨率降低到w/2×h/2×c。然后,特征映射被逐层卷积,可以在较大的感受野中学习输入和输出之间的相关性。在一个或多个卷积层之后,可以进行上采样处理以将分辨率恢复到w×h×c。如图7所示的25%的分支的处理类似于50%分支,除了下采样处理是将分辨率降低到w/4×h/4×c。
从图7中所示的三个分支生成的三个版本的特征映射可以进一步组合成一个特征映射。在一些实施例中,可以使用元素相加(element-wise add)、元素乘积(element-wiseproduct)或串联(concatenation)来组合三个版本。最终的特征映射可以具有保留在100%分辨率分支中的精确空间信息,而在50%和25%分辨率分支中可以实现较大的感受野。可以理解的是,可以在任何分辨率的分支中实现更大的感受野。例如,50%和25%分辨率分支可以被配置为使用其他分辨率,如75%分辨率、12.5%分辨率、或40%分辨率。在一些实施例中,分支的数量不限于3。可以理解的是,分支的数目可以是任意数目,并且对于不同的分支,分辨率可以是不同的。
图7所示的多密度机制可以实现在任何常见的网络中。例如,对于图7中所示的每个分支,可以组合卷积层(和激活函数)、残差块、或其他块。应当理解,在改变不同分支中的通道数方面可能没有任何限制。在一些实施例中,对于上采样和下采样处理,插值/池化和卷积层都可以被考虑。
图8示出根据本公开实施例的一示例性的神经网络环路内滤波中的多密度注意力分支的示意图。可以理解的是,图8中所示的多密度注意力分支(multi-density attentionbranch)可用于图7所示的多密度机制。如图8所示,注意力分支可以被加到任何密度分支中,如100%密度分支和50%密度分支。在一些实施例中,图8所示的100%密度分支8类似于图7中所示的100%分支,以及图8中所示的50%密度分支类似于图7中所示的50%分支。在一些实施例中,图8所示的注意力分支可以帮助学习在较大的感受野中的特征样本之间的空间相关性。例如,在图8所示的注意力分支2中,在特征映射上进行下采样处理。下采样处理可以是注意力分支中的第一层。在下采样处理之后,可以扩大感受野。注意力分支中的下采样处理可以由一个或多个卷积层(例如,残差块等)跟随。在一些实施例中,在注意力分支的最后一层中,可以采用上采样处理来生成全分辨率加权映射,全分辨率加权映射可以应用于在相应密度分支中生成的特征映射。在一些实施例中,加权映射可以通过元素乘积应用于特征映射。在一些实施例中,上采样处理可以进一步包sigmoid激活函数,其可以生成加权映射。在一些实施例中,可以将从每个密度分支生成的加权特征映射组合成一个特征映射(例如,元素相加、元素乘积、或串联)。例如,如图8所示,可以通过元素相加将从50%密度分支和100%密度分支生成的加权特征映射进行组合。
如图8所示,注意力分支可以加在密度分支上,以补充密度分支。例如,密度分支可以通过一个或多个卷积层集中处理特征映射,而注意力分支可以帮助学习在较大感受野中的样本相关性。应当理解,密度分支和注意力分支的数量是灵活的。
图9示出根据本公开实施例的一示例性的改进的神经网络环路内滤波中的多密度注意力分支的示意图。与图8中所示的多密度注意力分支相较,图9所示的改进的多密度注意力分支包括一个注意力分支。这一个注意力分支可以学习样本相关性,生成不同分辨率的加权映射。加权映射可以应用于从密度分支生成的特征映射(例如,元素相乘)。如图9所示,有两个密度分支,即100%密度分支和50%密度分支。100%密度分支可以生成全分辨率的特征映射,50%密度分支可以生成半分辨率的特征映射。就图9中所示的注意力分支来说,下采样处理可以是第一层,下采样处理之后跟着一个或多个卷积层。在一个或多个卷积层之后,注意力分支可进一步包括两个上采样处理。第一上采样处理可以在加权映射被应用到来自50%密度分支的特征映射(例如,元素乘积)之前,使加权映射达到半分辨率。第二上采样处理可以使加权映射达到全分辨率,全分辨率的加权映射可以应用于来自100%密度分支的特征映射。在一些实施例中,如图9所示,两个加权特征映射可以组合(例如,元素相加、元素相乘、或串联)。
与图8中所示的多密度注意力分支相比,图9所示的神经网络具有较少的注意力分支数量,这可以降低整体计算复杂度。可以理解的是,图9所示的改进的多密度注意力分支可以应用于不限数量的密度分支。例如,如图7所示,有三个密度分支,即25%、50%和100%密度分支。类似于图9中所示的注意力分支的一个注意力分支可应用于所有的三个密度分支。在注意力分支的接近末尾处,可以有三个上采样处理来使加权映射的分辨率达到四分之一分辨率、半分辨率和全分辨率。这些不同分辨率的加权映射可以应用于三个密度分支中的每一个(例如,元素相乘)。
图10A示出根据本公开实施例的一示例性的改进的多密度注意力网络的示意图。与图9中所示的神经网络相比,图10A所示的多密度注意力网络包括与图9中所示的注意力分支相对的空间注意力分支。在图9所示的注意力分支中,通道数c可以是不变的。在图10A的空间注意力分支中,通道数可以是减少的。在一些实施例中,通道数减少到1。由于在空间注意力分支中通道数是减少的,因此可以显著降低模型参数和计算复杂度。当加权映射被应用于来自密度分支(例如,50%密度分支和100%密度分支)的特征映射时,元素乘积可以被替换为空间乘积(spatial-wise product)。在一些实施例中,原始通道数是整数,并且通道数是2的幂(例如32、64、128、256等)。
如图10A所示,在多密度分支中获得加权特征映射后,将加权特征映射馈入融合过程。图10B示出根据本公开实施例的一示例性的融合过程的示意图。可以理解的是,图10B所示的融合过程可以应用于从图10A所示的改进的多密度神经网络生成的加权特征映射。如图10B所示,加权特征映射可以组合在一起以形成特征映射(例如,元素相加)。然后,可以在跨空间维度的特征映射上进行全局平均池(global average pooling,GAP),以确定尺寸为1×1×c的通道统计量(channel-wise statistic)。接下来,可以应用通道向下缩放卷积层(channel down-scaling convolutional layer)来生成尺寸为1×1×c/r的小型的特征表示,其中r是超参数。在一些实施例中,可以将超参数r设置为8。然后,特征表示可以通过(pass through)并行的通道向上缩放卷积层(parallel channel up-scalingconvolution layer),每个通道向上缩放卷积层对应于密度分支(例如,图10A所示的50%密度分支或100%密度分支)。然后可以获得最终的通道加权映射。在一些实施例中,可以在soft-max层之后获得最终的通道加权映射。最终的通道加权映射可以通过通道相乘应用于每个密度分支的对应特征映射,以生成最终的加权特征映射。在一些实施例中,通过元素相加生成最终的加权特征映射。
如图10A和图10B所示,通过分离空间注意力和通道注意力来实现元素注意力。因此,可以显著降低模型参数的数量和计算复杂度。
本公开的实施例还提供了用于在视频处理中执行神经网络的训练的方法。图11示出根据本公开实施例的在视频处理中训练神经网络的示例性的方法的流程图。可以理解,图11所示的方法11000可以在图8、图9、图10A和图10B所示的神经网络上执行。
在步骤S11010中,由神经网络接收多个训练用图片。多个训练用图片可用于训练神经网络中的一个或多个卷积层(例如,残差块)。神经网络被配置为减少视频压缩中的块伪影。在一些实施例中,神经网络是多密度神经网络。在一些实施例中,神经网络可以包括一个或多个密度分支。例如,图8、图9和图10A所示的神经网络包括50%密度分支和100%密度分支。在一些实施例中,神经网络可以包括注意力分支。例如,图8、图9和图10A所示的神经网络包括注意力分支。
在步骤S11021中,使用多个训练用图片训练神经网络中的生成第一特征映射的第一密度分支。在一些实施例中,第一密度分支包括一个或多个卷积层。在一些实施例中,第一密度分支包括下采样处理或上采样处理。例如,图8、图9和图10A所示的50%密度分支包括下采样处理、一个或多个卷积层、和上采样处理。
在步骤S11022中,使用多个训练用图片训练神经网络中的生成第二特征映射的第二密度分支。在一些实施例中,第二密度分支包括一个或多个卷积层(例如,残差块)。在一些实施例中,第二密度分支不包括下采样处理或上采样处理。例如,图8、图9和图10A所示的100%密度分支包括一个或多个卷积层,但不包括下采样处理或上采样处理。
步骤S11023中,使用多个训练用图片训练神经网络中的生成加权映射的注意力分支。在一些实施例中,注意力分支包括一个或多个卷积层。在一些实施例中,注意力分支包括下采样处理或上采样处理。例如,图8、图9和图10A所示的注意力分支包括下采样处理、一个或多个卷积层、和上采样处理。在一些实施例中,将加权映射应用于来自第一密度分支的第一特征映射以生成第一加权特征映射。例如,如图8、图9和图10A所示,将从注意力分支生成的加权映射应用于来自50%密度分支的特征映射,以生成加权特征映射。在一些实施例中,通过在加权映射和第一特征映射之间执行元素相乘来生成第一加权特征映射。
在一些实施例中,执行附加步骤S11024。在步骤S11024中,使用多个训练用图片训练神经网络中的生成第二加权映射的第二注意力分支。在一些实施例中,第二注意力分支包括下采样处理、上采样处理和一个或多个卷积层。例如,如图8所示,注意力分支2连接到100%密度分支,并且注意力分支2包括下采样处理、上采样处理和一个或多个卷积层。在一些实施例中,将第二加权映射应用于第二特征映射以生成第二加权特征映射。例如,如图8所示,将从注意力分支2生成的加权映射应用于来自100%密度分支的特征映射(例如,元素乘积)。
在一些实施例中,在来自步骤S11023的注意力分支的加权映射上执行上采样处理,以生成第二加权映射。可以将第二加权映射应用于来自第二密度分支的第二特征映射,以生成第二加权特征映射。例如,如图9所示,注意力分支可以生成应用于从100%密度分支生成的特征映射(例如,元素乘积)的第二加权映射。
在一些实施例中,第一加权特征映射和第二加权特征映射可以组合以形成最终特征映射。例如,如图8或图9所示,两个加权特征映射可以组合(例如,元素相加、元素相乘或串联)。
在一些实施例中,来自步骤S11023的注意力分支是空间注意力分支。空间注意力分支可以减少多个训练用图片中的通道数。例如,如图10A所示,空间分支可以减少通道数。在一些实施例中,通道数减少到1。由于在空间注意力分支中减少了通道数,因此可以显著降低模型参数和计算复杂度。在一些实施例中,可以通过融合过程(例如,图10B所示的融合过程)来组合加权特征映射。
在一些实施例中,步骤S11021中的第一密度分支、步骤S11022中的第二密度分支和步骤S11023中的第三密度分支中的一个或多个卷积层包括残差块(例如,ResBlock)。
本公开的实施例还提供了用于在视频处理中使用神经网络执行图片处理的方法。图12示出根据本公开实施例的在视频处理中使用神经网络的示例性方法的流程图。可以理解,图12所示的方法12000可以在图8、图9、图10A和图10B所示的神经网络上执行。
在步骤S12010中,由神经网络接收来自视频流的多个帧或图片。可以通过神经网络中的一个或多个经训练的卷积层(例如,ResBlock)来处理多个图片。神经网络被配置为减少视频压缩中的块伪影。在一些实施例中,神经网络是多密度神经网络。在一些实施例中,神经网络可以包括一个或多个密度分支。例如,如图8、图9、图10A所示的神经网络包括50%密度分支和100%密度分支。在一些实施例中,神经网络可以包括注意力分支。例如,图8、图9、图10A所示的神经网络包括注意力分支。
在步骤S12021中,使用神经网络中的第一密度分支处理多个帧或图片,以生成第一特征映射。在一些实施例中,第一密度分支包括一个或多个卷积层。在一些实施例中,第一密度分支包括下采样处理或上采样处理。例如,图8、图9、图10A所示的50%密度分支包括下采样处理、一个或多个卷积层、和上采样处理。
在步骤S12022中,使用神经网络中的第二密度分支处理多个帧或图片,以生成第二特征映射。在一些实施例中,第二密度分支包括一个或多个卷积层(例如,ResBlock)。在一些实施例中,第二密度分支不包括下采样处理或上采样处理。例如,图8、图9和图10A所示的100%密度分支包括一个或多个卷积层,而不包括下采样处理或上采样处理。
在步骤S12023中,使用神经网络中的注意力分支处理多个帧或图片,以生成加权映射。在一些实施例中,注意力分支包括一个或多个卷积层。在一些实施例中,注意力分支包括下采样处理或上采样处理。例如,图8、图9和图10A所示的注意力分支包括下采样处理、一个或多个卷积层和上采样处理。
在步骤S12030中,将加权映射应用于来自第一密度分支的第一特征映射,以生成第一加权特征映射。例如,如图8、图9和图10A所示,将从注意力分支生成的加权映射应用于来自50%密度分支的特征映射,以生成加权特征映射。在一些实施例中,通过执行加权映射和第一特征映射之间的元素相乘来生成第一加权特征映射。
在一些实施例中,执行附加步骤S12024。在步骤S12024中,使用神经网络中的第二注意力分支处理多个帧或图片,以生成第二加权映射。在一些实施例中,第二注意力分支包括下采样处理、上采样处理和一个或多个卷积层。例如,如图8所示,注意力分支2连接到100%密度分支,并且注意力分支2包括下采样处理、上采样处理和一个或多个卷积层。在一些实施例中,将第二加权映射应用于第二特征映射以生成第二加权特征映射。例如,如图8所示,将从注意力分支2生成的加权映射应用于来自100%密度分支的特征映射(例如,元素相乘)。
在一些实施例中,在来自步骤S12023中的注意力分支的加权映射上执行上采样处理,以生成第二加权映射。第二加权映射可应用于来自第二密度分支的第二特征映射,以生成第二加权特征映射。例如,如图9所示,注意力分支可以生成应用于从100%密度分支生成的特征映射(例如,元素乘积)的第二加权映射。
在一些实施例中,第一加权特征映射和第二加权特征映射可以组合以形成最终特征映射。例如,如图8或图9所示,两个加权特征映射可以组合(例如,元素相加、元素相乘、或串联)。
在一些实施例中,来自步骤S12023的注意力分支是空间注意力分支。空间注意力分支可以减少多个训练用图片中的通道数。例如,如图10A所示,空间分支可以减少通道数。在一些实施例中,通道数减少到1。由于在空间注意力分支中减少了通道数,因此可以显著降低模型参数和计算复杂度。在一些实施例中,可以通过融合过程(例如,图10B所示的融合过程)来组合加权特征映射。
在一些实施例中,步骤S12021中的第一密度分支、步骤S12022中的第二密度分支和步骤S12023中的第三密度分支中的一个或多个卷积层包括残差块(例如,ResBlock)。
在一些实施例中,可以使用一个或多个神经处理单元(neural processing unit,NPU)来执行图8、图9、图10A和图10B所示的注意力分支以及图11和图12所示的方法。图13示出根据本公开实施例的一示例性的神经处理单元。如图13所示,NPU 1300可以包括至少一个核1302(例如,1302a、1302b、1302c和1302d)、接口1304、命令解析器(command parser,CP)1306、直接存储器访问(direct memory access,DMA)单元1308等。可以理解,NPU1300还可以包括总线1310、全局存储器(未示出)等。可以理解的是,可以使用图13所示的NPU 1300来执行图8、图9、图10A和图10B所示的注意力分支以及图11和图12所示的方法。
接口1304可以提供NPU1300与外部设备之间的通信。例如,接口1304可以包括外围组件互连高速(peripheral component interconnect express,PCI-E)接口,其提供与主机单元(图13中未示出)的连接。接口1304还可以包括通用串行总线(USB)、联合测试动作组(joint test action group,JTAG)接口、TUN/TAP接口等中的至少一个。
CP1306可以在内核模式驱动程序(kernel mode driver,KMD)的监督下与主机单元交互,并将神经网络任务、相关命令或指令以及数据传递给每个NPU核1302。CP 1306可以包括被配置为执行与主机单元的交互以及将神经网络任务、相关命令或指令以及数据传递到每个NPU核1302的电路。在一些实施例中,CP 1306可以从主机单元接收DMA命令,并根据DMA命令将用于神经网络的指令(例如,由主机单元中的编译器生成的用于神经网络的指令序列)、神经网络的权重或缩放/偏置常数加载到NPU核1302。例如,CP 1306可以根据DMA命令将用于神经网络的指令从外部存储器加载到NPU核1302的指令缓冲器,将权重加载到NPU核1302的本地存储器13022,或者将缩放/偏置常数加载到NPU核1302的常数缓冲器。在一些实施例中,CP1306可以与主机单元或KMD一起工作以将神经网络任务(例如,图片的识别,包括图片的数据)分配到NPU核1302。例如,主机单元或KMD可以将神经网络任务发送到分配神经网络任务的NPU核1302的队列,并且CP1306可以将神经网络任务分配给NPU核1302。在一些实施例中,当神经网络任务在NPU核1302上完成时(例如,NPU核1302可以向CP 1306发送“计算完成”消息),CP 1306可以通知主机单元或KMD。新的神经网络任务可以由主机单元或KMD分配给NPU核1302。
DMA单元1308可以协助在NPU1300的组件之间传送数据。DMA单元1308可以包括被配置为执行数据或命令传输的电路。例如,DMA单元1308可以协助在多个NPU核(例如,核1302a-1302d)之间或在每个NPU核内传送数据。DMA单元1308还可以允许片外设备经由接口1304访问片上存储器和片外存储器而不引起中断。例如,DMA单元1308可以将数据或指令加载到NPU核的本地存储器中。因此,DMA单元1308还可以生成存储器地址并启动存储器读或写周期。DMA单元1308还可以包含可由一个或多个处理器写入和读取的若干硬件寄存器,包括存储器地址寄存器、字节计数寄存器、一个或多个控制寄存器和其他类型的寄存器。这些寄存器可以指定源、目的地、传输方向(从输入/输出(I/O)设备读取或向I/O设备写入)、传输单元的大小、和/或在一个突发中要传输的字节数的某种组合。可以理解,每个NPU核(例如,核1302a)可以包括子DMA单元,该子DMA单元可以用于在NPU核内传输数据。
DMA单元1308还可以经由总线1310在NPU核之间移动块数据。虽然单个NPU核能够处理典型的推理任务(例如,ResNet50 v1),但NPU核也可以通过总线一起工作以承担大型和复杂的任务(例如RestNet101、Mask R-CNN等)。
总线1310可以提供高速跨NPU核通信。总线1310还将NPU核与其他单元连接,例如片外存储器或外围设备。
核1302(例如,核1302a)可以包括一个或多个处理单元,处理单元被配置为基于从例如CP1306接收的命令执行一个或多个操作(例如,乘法、加法、乘累加、元素操作等)。例如,核1302可以从CP1306接收神经网络任务、指令和数据(例如,神经网络的权重或缩放/偏置常数),并使用数据执行指令。在一些实施例中,当NPU核1302完成神经网络任务时,它可以通知CP 1306。例如,NPU核1302可以向CP 1306发送“计算完成”消息。如图13所示,核1302a可以包括至少一个运算单元13020、定序器13028、卷积单元13030、池化单元13032和DMA单元1308a,其可以经由数据结构和仲裁子系统(data fabric and arbitration sub-system,也称为HUB单元)连接。在一些实施例中,HUB单元可以包括被配置为分别向卷积单元13030和池化单元13032提供与神经网络任务相关联的卷积数据和池化数据的电路。
运算单元13020可以包括被配置成对接收的数据(例如,矩阵)执行运算的电路。在一些实施例中,每个运算单元13020可进一步包括本地存储器13022、矩阵乘法数据路径(matrix multiplication data path,DP)13024和内嵌式元素操作(in-lined element-wise operation,EWOP)单元13026。本地存储器13022可以提供具有快速读/写速度的存储空间。为了减少与全局存储器的可能交互,本地存储器13022的存储空间可以是180兆字节(MB)及以上。利用海量存储空间,可以在核1302内执行大部分数据访问,减少了数据访问引起的延时。DP 13024可以包括被配置为执行矩阵乘法(例如,点乘)的电路,并且EWOP单元13026可以包括被配置为对接收数据执行元素运算(例如,向量-向量乘法)的电路。可以理解的是,尽管图13示出四个运算单元13020,核1302a可以包括更多或更少的运算单元13020。
定序器13028可与指令缓冲器耦合,并包括被配置成获取指令(或命令)并将指令分配到例如核1302的组件的电路。例如,定序器13028可以包括被配置为将卷积指令分配到卷积单元13030以执行卷积操作或将池化指令分配到池化单元13033以执行池化操作的电路。在一些实施例中,定序器13028可以包括被配置为修改存储在每个NPU核1302的指令缓冲器中的相关指令的电路,使得NPU核1302可以尽可能多地并行工作。定序器13028还可以包括被配置为监视神经网络任务的执行以及并行化神经网络任务的子任务以提高执行效率的电路。
卷积单元13030可与定序器13028以及一个或多个运算单元13020耦合,并包括被配置成指示一个或多个运算单元13020执行卷积操作的电路。在一些实施例中,卷积单元13030可以向本地存储器13022发送命令,以将激活数据和加权数据发送到数据路径13024以执行卷积操作。
池化单元13032可进一步包括内插单元、池化数据路径等,并包括被配置成执行池化操作的电路。例如,内插单元可以包括被配置为内插池化数据的电路。池化数据路径可以包括被配置为对内插池化数据执行池化操作的电路。
DMA单元1308a可以是DMA单元1308的一部分或每个核的独立单元。DMA单元1308a包括被配置为传送数据或命令的电路。还可以将命令分配给DMA单元1308a,以指示DMA单元1308a将来自本地存储器(例如,图13的本地存储器13022)的指令/命令或数据加载到相应的单元中。然后,可将加载的指令/命令或数据分配给分配有相应任务的每个处理单元,并且一个或多个处理单元可处理这些指令/命令。
图14示出根据本公开实施例的一示例性机器学习系统1400。如14图所示,机器学习系统1400可以包括主机CPU 1402、磁盘1404、主机存储器1406和神经网络处理单元(NPU)1300。在一些实施例中,主机存储器1406可以是集成存储器或与主机CPU1402相关联的外部存储器。主机存储器1406可以是局部存储器或全局存储器。在一些实施例中,磁盘1404可以包括配置成为主机CPU1402提供附加存储器的外部存储器。可以理解的是,可以使用图14所示的机器学习系统1400来执行图8、图9、图10A和图10B所示的神经网络以及图11和图12中所示的方法。
主机CPU1402(例如,X86或ARM中央处理单元)可以与主机存储器1406和磁盘1404耦合,被配置成处理常规指令。NPU1300可以通过外围接口(例如,接口1304)连接到主机CPU1402。如本文所述,神经网络处理单元(例如,NPU 1300)可以是用于加速神经网络推理任务的计算设备。在一些实施例中,NPU1300可以被配置用作主机CPU1402的协处理器(co-processor)。
在一些实施例中,编译器可以位于主机单元(例如,图14的主机CPU 1402或主机存储器1406)或NPU 1300,被配置为将一个或多个命令推送到NPU 112。编译器是将用一种编程语言编写的计算机代码转换成用于NPU1300的指令以创建可执行程序的程序或计算机软件。在机器学习应用中,编译器可以执行各种操作,例如,预处理、词法分析、解析、语义分析、输入程序到中间表示的转换、神经网络的初始化、代码优化、代码生成、或其组合。例如,在机器学习系统1400中,编译器可以编译神经网络以生成静态参数,例如,神经元之间的连接和神经元的权重。
如上所述,这些指令或命令可由NPU 1300的CP1306进一步加载,临时存储在NPU1300的指令缓冲器中,并相应地分配(例如,由定序器13028)到NPU 1300的处理单元(例如,卷积单元13030、池化单元13032和DMA单元1308a)。
可以理解,由NPU核接收的前几个指令可以指示NPU核将数据从主机存储器1406加载/存储到NPU核的一个或多个本地存储器(例如,图13的本地存储器13022)中。然后每个NPU核可以启动指令流水线,其包括从指令缓冲器中提取指令(例如,通过序列器)、解码指令(例如,通过DMA单元)以及生成本地存储器地址(例如,对应于操作数)、读取源数据、执行或加载/存储操作,然后写回结果。
在一些实施例中,还提供了包括指令的非瞬时性计算机可读存储介质,并且指令可以由用于执行上述方法的设备(例如所公开的编码器和解码器)执行。非瞬时性介质的常见形式包括,例如,软盘、柔性磁盘、硬盘、固态驱动器、磁带、或任何其他磁性数据存储介质、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。
可以理解,上述实施例可以通过硬件、或软件(程序代码)、或硬件和软件的组合来实现。如果通过软件实现,则可以将其存储在上述计算机可读介质中。当由处理器执行时,软件可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以通过硬件、或软件、或硬件和软件的组合来实现。本领域普通技术人员还将理解,上述模块/单元中的多个模块/单元可组合为一个模块/单元,并且上述模块/单元中的每一个可进一步划分为多个子模块/子单元。
在前述说明书中,已经参考许多具体细节描述了实施例,这些具体细节可以随实施方式而变化。可以对所描述的实施例进行某些适配和修改。通过考虑本文公开的本发明的说明书和实践,其他实施例对本领域技术人员来说是显而易见的。本说明书和实施例仅被认为是示例性的,本发明的真正范围和精神由下面的权利要求书指示。图中所示的步骤序列仅用于说明性目的,而不限于任何特定的步骤序列。因此,本领域技术人员可以理解,在实现相同方法时,可以以不同的顺序执行这些步骤。
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,虽然使用了具体的术语,但它们仅用于一般性和描述性的意义,而不是为了限制的目的。
Claims (12)
1.一种基于神经网络的视频处理方法,包括:
接收包括多个帧的视频流;
使用神经网络中的多个第一密度分支处理所述多个帧以生成多个第一特征映射,所述多个第一密度分支对应于多个不同分辨率尺度,其中所述神经网络应用于环路滤波器阶段,被配置为减少所述视频流的视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;
使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射,其中所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及
将所述加权映射应用于所述多个第一特征映射以生成多个第一加权特征映射;
组合所述多个第一加权特征映射以生成最终特征映射。
2.根据权利要求1所述的方法,其中,所述将所述加权映射应用于所述多个第一特征映射以生成多个第一加权特征映射包括:
在所述加权映射和所述第一特征映射之间执行元素相乘。
3.根据权利要求1所述的方法,还包括:
使用所述神经网络中的第二密度分支处理所述多个帧以生成第二特征映射,其中所述第二密度分支包括一个或多个卷积层;
使用所述神经网络中的第二注意力分支处理所述多个帧以生成第二加权映射,其中,所述第二注意力分支包括第三下采样处理、第三上采样处理和一个或多个卷积层;以及
将所述第二加权映射应用于所述第二特征映射以生成第二加权特征映射。
4.根据权利要求1所述的方法,还包括:
使用所述神经网络中的第二密度分支处理所述多个帧以生成第二特征映射,其中,所述第二密度分支包括一个或多个卷积层;
对所述加权映射执行上采样处理,以生成第二加权映射;以及
将所述第二加权映射应用于所述第二特征映射以生成第二加权特征映射。
5.根据权利要求4所述的方法,还包括:
组合所述第一加权特征映射和所述第二加权特征映射。
6.根据权利要求1所述的方法,其中,使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射进一步包括:
使用空间注意力分支处理所述多个帧,其中,所述空间注意力分支减少所述多个帧中的通道数。
7.一种基于神经网络的视频处理系统,包括:
存储指令集的存储器;以及
处理器,被配置为执行所述指令集以使所述系统执行:
接收包括多个帧的视频流;
使用神经网络中的多个第一密度分支处理所述多个帧以生成多个第一特征映射,所述多个第一密度分支对应于多个不同分辨率尺度,其中,所述神经网络应用于环路滤波器阶段,被配置为减少所述视频流的视频压缩中的块伪影,并且所述第一密度分支包括第一下采样处理、第一上采样处理和一个或多个卷积层;
使用所述神经网络中的注意力分支处理所述多个帧以生成加权映射,其中,所述注意力分支包括第二下采样处理、第二上采样处理和一个或多个卷积层;以及
将所述加权映射应用于所述多个第一特征映射以生成多个第一加权特征映射;
组合所述多个第一加权特征映射以生成最终特征映射。
8.根据权利要求7所述的系统,其中,所述处理器还被配置为执行所述指令集以使所述系统执行:
在所述加权映射和所述第一特征映射之间执行元素相乘。
9.根据权利要求7所述的系统,所述处理器还被配置为执行所述指令集以使所述系统执行:
使用所述神经网络中的第二密度分支处理所述多个帧以生成第二特征映射,其中,所述第二密度分支包括一个或多个卷积层;
使用所述神经网络中的第二注意力分支处理所述多个帧以生成第二加权映射,其中,所述第二注意力分支包括第三下采样处理、第三上采样处理和一个或多个卷积层;以及
将所述第二加权映射应用于所述第二特征映射以生成第二加权特征映射。
10.根据权利要求7所述的系统,所述处理器还被配置为执行所述指令集以使所述系统执行:
使用所述神经网络中的第二密度分支处理所述多个帧以生成第二特征映射,其中,所述第二密度分支包括一个或多个卷积层;
对所述加权映射执行上采样处理,以生成第二加权映射;以及
将所述第二加权映射应用于所述第二特征映射以生成第二加权特征映射。
11.根据权利要求10所述的系统,所述处理器还被配置为执行所述指令集以使所述系统执行:
组合所述第一加权特征映射和所述第二加权特征映射。
12.根据权利要求7所述的系统,其中,所述处理器还被配置为执行所述指令集以使所述系统执行:
使用空间注意力分支处理所述多个帧,其中,所述空间注意力分支减少所述多个帧中的通道数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111247952.XA CN114125449B (zh) | 2021-10-26 | 2021-10-26 | 基于神经网络的视频处理方法、系统和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111247952.XA CN114125449B (zh) | 2021-10-26 | 2021-10-26 | 基于神经网络的视频处理方法、系统和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114125449A CN114125449A (zh) | 2022-03-01 |
CN114125449B true CN114125449B (zh) | 2024-06-11 |
Family
ID=80376798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111247952.XA Active CN114125449B (zh) | 2021-10-26 | 2021-10-26 | 基于神经网络的视频处理方法、系统和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114125449B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024017173A1 (en) * | 2022-07-16 | 2024-01-25 | Douyin Vision (Beijing) Co., Ltd. | Method, apparatus, and medium for visual data processing |
CN115841644B (zh) * | 2022-12-29 | 2023-12-22 | 吕梁市经开区信息化投资建设有限公司 | 基于物联网的城市基础建设工程设备的控制系统及其方法 |
WO2024222745A1 (en) * | 2023-04-25 | 2024-10-31 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for video processing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261414A (zh) * | 2020-09-27 | 2021-01-22 | 电子科技大学 | 一种以注意力机制融合单元划分的视频编码卷积滤波方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3607493A4 (en) * | 2017-04-07 | 2020-12-02 | INTEL Corporation | PROCEDURES AND SYSTEMS FOR BUDGETED AND SIMPLIFIED TRAINING OF DEEP NEURAL NETWORKS |
CN107197260B (zh) * | 2017-06-12 | 2019-09-13 | 清华大学深圳研究生院 | 基于卷积神经网络的视频编码后置滤波方法 |
EP3451670A1 (en) * | 2017-08-28 | 2019-03-06 | Thomson Licensing | Method and apparatus for filtering with mode-aware deep learning |
US10999606B2 (en) * | 2019-01-08 | 2021-05-04 | Intel Corporation | Method and system of neural network loop filtering for video coding |
CN112218097A (zh) * | 2019-07-12 | 2021-01-12 | 富士通株式会社 | 环路滤波装置和图像解码装置 |
US11838541B2 (en) * | 2019-08-30 | 2023-12-05 | Alibaba Group Holding Limited | Matrix weighted intra prediction of video signals |
WO2021061400A1 (en) * | 2019-09-23 | 2021-04-01 | Alibaba Group Holding Limited | Methods and apparatuses for prediction refinement with optical flow in reference picture resampling |
CN111083477B (zh) * | 2019-12-11 | 2020-11-10 | 北京航空航天大学 | 基于视觉显著性的hevc优化算法 |
US12039696B2 (en) * | 2020-03-27 | 2024-07-16 | Alibaba Group Holding Limited | Method and system for video processing based on spatial or temporal importance |
CN111885280B (zh) * | 2020-07-17 | 2021-04-13 | 电子科技大学 | 一种混合卷积神经网络视频编码环路滤波方法 |
CN112235569B (zh) * | 2020-10-12 | 2024-03-29 | 国家计算机网络与信息安全管理中心 | 基于h264压缩域的快速视频分类方法、系统及装置 |
CN113298710B (zh) * | 2021-05-10 | 2024-04-16 | 天津大学 | 基于外部注意力机制的光学相干层析超分辨率成像方法 |
-
2021
- 2021-10-26 CN CN202111247952.XA patent/CN114125449B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261414A (zh) * | 2020-09-27 | 2021-01-22 | 电子科技大学 | 一种以注意力机制融合单元划分的视频编码卷积滤波方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114125449A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210329286A1 (en) | Convolutional-neutral-network based filter for video coding | |
CN114125449B (zh) | 基于神经网络的视频处理方法、系统和计算机可读介质 | |
CN114424543A (zh) | 用于发送视频编解码信息的方法和装置 | |
CN114788264B (zh) | 用于发出虚拟边界和环绕运动补偿的信号的方法 | |
CN114145016A (zh) | 视频信号的矩阵加权帧内预测 | |
EP4256785A1 (en) | Methods and systems for cross-component sample adaptive offset | |
JP2023519216A (ja) | ループフィルタの高レベルシンタックス制御 | |
JP2023514136A (ja) | クロマ信号を処理するための方法 | |
CN114868393A (zh) | 执行环绕运动补偿的方法 | |
CN114788284B (zh) | 用于在调色板模式下对视频数据进行编码的方法和装置 | |
CN116918333A (zh) | 用于跨分量样值偏移补偿的方法、装置和非暂时性计算机可读介质 | |
CN115836525A (zh) | 用于从多个交叉分量进行预测的方法和系统 | |
CN115349228A (zh) | 视频记录的符号数据隐藏 | |
CN114762332A (zh) | 构建合并候选列表的方法 | |
US20240048777A1 (en) | Neural network based in-loop filtering for video coding | |
CN115699744B (zh) | 双向预测校正系统和方法 | |
CN116114246B (zh) | 帧内预测平滑滤波器系统及方法 | |
JP2023534098A (ja) | 映像コンテンツを処理するための方法及び機器 | |
CN115552900A (zh) | 用信号通知最大变换大小和残差编码的方法 | |
CN115428455A (zh) | 调色板预测方法 | |
CN114424528A (zh) | 视频编码的运动补偿方法 | |
WO2024213069A1 (en) | Methods and non-transitory computer readable storage medium for spatial resampling towards machine vision | |
CN115443655A (zh) | 用于处理视频编码中自适应颜色变换和低频不可分离变换的方法 | |
CN117041566A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240313 Address after: # 03-06, Lai Zan Da Building 1, 51 Belarusian Road, Singapore Applicant after: Alibaba Innovation Co. Country or region after: Singapore Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore Applicant before: Alibaba Singapore Holdings Ltd. Country or region before: Singapore |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |