CN116569548A - 用于视频编解码的基于网络的图像滤波 - Google Patents
用于视频编解码的基于网络的图像滤波 Download PDFInfo
- Publication number
- CN116569548A CN116569548A CN202180080446.8A CN202180080446A CN116569548A CN 116569548 A CN116569548 A CN 116569548A CN 202180080446 A CN202180080446 A CN 202180080446A CN 116569548 A CN116569548 A CN 116569548A
- Authority
- CN
- China
- Prior art keywords
- input
- resolution
- output
- block
- blocks
- 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
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 52
- 238000013528 artificial neural network Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 12
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 85
- 230000015654 memory Effects 0.000 claims description 19
- 230000002829 reductive effect Effects 0.000 claims description 14
- 230000002123 temporal effect Effects 0.000 claims description 12
- 238000013139 quantization Methods 0.000 claims description 11
- 230000011664 signaling Effects 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 230000008521 reorganization Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000005192 partition Methods 0.000 description 12
- 238000013527 convolutional neural network Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000003062 neural network model Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 4
- 230000006798 recombination Effects 0.000 description 4
- 238000005215 recombination Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 208000018934 joint symptom Diseases 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013598 vector Substances 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/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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural 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/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
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种使用神经网络在视频编解码中进行图像滤波的方法和装置。该方法包括:加载与待编解码的当前图像关联的多个输入块,其中,所述多个输入块包括具有第一分辨率的第一输入块、具有第二分辨率的第二输入块和具有第三分辨率的第三输入块;以及响应于确定所述第一、第二和第三分辨率中的一个分辨率不同于其他两个分辨率,在所述神经网络之前或之中的多个区域的一个区域调整所述第一分辨率、所述第二分辨率和所述第三分辨率。
Description
相关申请的交叉引用
本申请要求于2020年12月4日提交的标题为“Neural Network Based ImageFiltering for Video Coding”的第63/121,822号美国临时申请的优先权,该临时申请的全部内容通过引用完整地并入本文。
技术领域
本申请涉及视频编解码和压缩。更具体地,本申请涉及但并不仅限于使用基于神经网络的模型滤波的视频编解码方法和装置。
背景技术
可使用各种视频编解码技术来压缩视频数据。根据一种或多种视频编解码标准执行视频编解码。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)和运动图片专家组(MPEG)编解码等。视频编解码通常使用利用视频图像或序列中存在的冗余的预测方法(如帧间预测、帧内预测等)。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。
HEVC标准的第一个版本于2013年10月完成,与上一代视频编码标准H.264/MPEGAVC相比,该HEVC标准的第一个版本提供了大约50%的比特率节省或等效的感知质量。尽管HEVC标准比之前的标准在编解码方面有了显著的改进,但有证据表明,与HEVC相比,使用额外的编解码工具可以实现更高的编解码效率。在此基础上,VCEG和MPEG都开始了对未来视频编解码标准化新编解码技术的探索工作。ITU-TVECG和ISO/IECMPEG于2015年10月成立了一个联合视频探索小组(JVET),开始对能够显著提高编解码效率的先进技术进行重大研究。JVET通过在HEVC测试模型(HEVC test model,HM)之上集成若干额外的编解码工具来维护一种称为联合探索模型(JEM)的参考软件。
ITU-T和ISO/IEC发布了关于具有超越HEVC能力的视频压缩的联合征集提案(joint call for proposals,CfP)。在第10次JVET会议上收到并评估了23份CfP回复,表明压缩效率比HEVC提高了约40%。基于这样的评估结果,JVET启动了一个新项目来开发新一代视频编解码标准,称为多功能视频编解码(VVC)。建立了一个名为VVC测试模型(VVC testmodel,VTM)的参考软件代码库,用于演示VVC标准的参考实施。
发明内容
本公开提供了与使用基于神经网络的模型滤波来提高视频编解码效率相关的技术的示例。
根据本公开的第一方面,提供一种使用神经网络在视频编解码中的图像滤波方法。该方法包括:加载与待编解码的当前图像关联的多个输入块,其中,所述多个输入块包括具有第一分辨率的第一输入块、具有第二分辨率的第二输入块和具有第三分辨率的第三输入块;以及响应于确定所述第一、第二和第三分辨率中的一个分辨率不同于其他两个分辨率,在所述神经网络之前或之中的多个区域的一个区域调整所述第一分辨率、所述第二分辨率和所述第三分辨率。
根据本公开的第二方面,提供了一种使用神经网络在视频编解码中进行图像滤波的装置。所述装置包括一个或多个处理器和存储器,所述存储器被配置为存储可由所述一个或多个处理器执行的指令。此外,在执行所述指令时,所述一个或多个处理器被配置为:加载与待编码的当前图像关联的多个输入块,其中,所述多个输入块包括具有第一分辨率的第一输入块、具有第二分辨率的第二输入块和具有第三分辨率的第三输入块;以及响应于确定所述第一、第二和第三分辨率中的一个分辨率不同于所述其他两个分辨率,在所述神经网络中的多个区域的一个区域调整所述第一分辨率、所述第二分辨率和所述第三分辨率。
根据本公开的第三方面,提供了一种存储计算机可执行指令的非暂时性计算机可读存储介质,当由一个或多个计算机处理器执行时,所述计算机可执行指令使所述一个或多个计算机处理器执行根据第一方面的方法。
附图说明
将通过参考附图中所示的具体示例来呈现对本公开的示例的更具体的描述。鉴于这些附图仅描绘了一些示例并且因此不被认为是限制范围,将通过使用附图以附加的特异性和细节来描述和解释这些示例。
图1是示出了根据本公开的一些实施方式的基于块的视频编码器的框图。
图2是示出了根据本公开的一些实施方式的基于块的视频解码器的框图。
图3A是示出了根据本公开的一些实施方式的四叉分区树分割模式的示意图。
图3B是示出了根据本公开的一些实施方式的垂直二叉分区树分割模式的示意图。
图3C是示出了根据本公开的一些实施方式的水平二叉分区树分割模式的示意图。
图3D是示出了根据本公开的一些实施方式的垂直三叉分区树分割模式的示意图。
图3E是示出了根据本公开的一些实施方式的水平三叉分区树分割模式的示意图。
图4示出了根据本公开的一些实施方式的由输入层、输出层和多个隐藏层组成的简单FC-NN。
图5A示出了根据本公开的一些实施方式的具有两个隐藏层的FC-NN。
图5B示出了根据本公开的一些实施方式的CNN的示例,其中第二隐藏层的维度是[W,H,Depth]。
图6示出了根据本公开的一些实施方式的应用具有输入图像的空间滤波器的示例。
图7A示出了根据本公开的一些实施方式的单一图像超分辨率(ResNet),其包括作为ResNet的元素的残差块,该残差块通过直连(identity connection)与其输入逐元素相加。
图7B示出了根据本公开的一些实施方式的通过对残差模块进行堆叠的ResNet的示例。
图8A示出了根据本公开的一些实施方式的包括具有全局直连的多个残差块的ResNet的示例。
图8B示出了根据本公开的一些实施方式的ResNet堆叠多个残差块以进一步提高视频编解码效率的另一示例。
图8C示出了根据本公开的一些实施方式的ResNet通过汇聚残差块的输出来处理单一图像超分辨率(single-image super-resolution,SISR)的另一示例。
图9示出了根据本公开的一些实施方式的用于视频编解码的图像滤波的典型的基于神经网络的模型。
图10示出了根据本公开的一些实施方式的用于计算复杂度控制中调整特征图分辨率的三个区域。
图11示出了根据本公开的一些实施方式的典型的与量化参数(quantizationparameter,QP)无关的神经网络模型。
图12示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的装置。
图13是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的过程的流程图。
图14是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的示例性过程的流程图。
图15是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的示例性过程的流程图。
图16是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的示例性过程的流程图。
具体实施方式
现在将详细参照具体实施方式,在附图中示出了具体实施方式的示例。在以下详细描述中,阐述了大量非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子装置上实现。
贯穿本说明书对“一个实施例”、“实施例”、“示例”、“一些实施例”、“一些示例”或类似语言的引用表示所描述的特定特征、结构或特性被包括在至少一个实施例或示例中。除非另有明确说明,否则结合一个或一些实施例描述的特征、结构、元素或特性也适用于其它实施例。
在整个公开内容中,除非另有明确说明,否则术语“第一”、“第二”、“第三”等都用作仅用于提及相关元件(例如,设备、组件、组合物、步骤等)的命名,而不指示任何空间或时间顺序。例如,“第一设备”和“第二设备”可指两个单独形成的设备,或者同一设备的两个部分、组件或操作状态,并且可被任意命名。
术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可包括存储可由一个或多个处理器执行的代码或指令的存储器(共享、专用或组合)。模块可包括具有或不具有存储的代码或指令的一个或多个电路。模块或电路可包括直接或间接连接的一个或多个组件。这些组件可以或可不物理地附接到彼此或位于彼此相邻的位置。
如本文所使用的,取决于上下文,术语“如果”或“当……时”可被理解为表示“在……时”或“响应于……”。这些术语如果出现在权利要求中,则可不指示相关限制或特征是有条件的或可选的。例如,一种方法可以包括以下步骤:i)当或如果条件X存在时,执行功能或动作X’,以及ii)当或条件Y存在时,进行功能或动作Y’。该方法可以用执行功能或动作X’的能力和执行功能或行动Y’的能力来实现。因此,功能X’和Y’都可以在不同的时间在多次执行该方法时执行。
单元或模块可仅通过软件、仅通过硬件或通过硬件和软件的组合来实现。在纯软件实施方式中,例如,单元或模块可包括直接或间接链接在一起的功能上相关的代码块或软件组件,以便执行特定功能。
与HEVC一样,VVC建立在基于块的混合视频编解码框架之上。图1是示出了根据本公开的一些实施方式的基于块的视频编码器的框图。在视频编码器100中,输入视频信号被逐块处理(称为编码单元(CU))。在VTM-1.0中,一个CU可达128x128像素。然而,与仅基于四叉树划分块的HEVC不同,在VVC中,将一个编码树单元(CTU)拆分为多个CU,以适应基于四叉树/二叉树/三叉树的不同局部特征。此外,去除了HEVC中多分区单元类型的概念,即VVC中不再存在CU、预测单元(PU)和变换单元(TU)的分离;相反,每个CU始终用作预测和变换的基本单元,而无需进一步分区。在多类型树结构中,一个CTU首先被四叉树结构划分。然后,每个四叉树的叶子节点可以通过二叉树和三叉树结构被进一步划分。
图3A-3E是示出了根据本公开的一些实施方式的多类型树分割模式的示意图。图3A-3E分别示出了五种分割类型,包括四叉分区(图3A)、垂直二叉分区(图3B)、水平二叉分区(图3C)、垂直三叉分区(图3D)和水平三叉分区(图3E)。
对于每个给定视频块,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自同一视频图片/条带中已编码的相邻块的样点(称为参考样点)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已编码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。给定CU的时间预测信号通常由一个或多个运动向量(MV)通过信号发送,这些运动向量指示当前CU与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则另外发送一个参考图片索引,该索引用于识别时间预测信号来自参考图片存储器中的哪个参考图片。
在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策电路121基于如率失真优化方法选择最佳预测模式。然后从当前视频块中减去块预测器120,并且使用变换电路102和量化电路104将得到的预测残差去相关。得到的量化残差系数由反量化电路116反量化并由逆变换电路118逆变换以形成该重建的残差,然后将该重建的残差添加回该预测块以形成该CU的重建信号。可在该重建的CU被放入图片缓冲器117的参考图片存储器并用于对未来的视频块进行编码之前将环路滤波115(如去块滤波器、样点自适应偏移(SAO),和/或自适应环路滤波器(ALF))进一步应用于该重建的CU。为了形成输出视频比特流114,编解码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编码单元106以被进一步压缩和打包以形成该比特流。
例如,去块滤波器可用在AVC、HEVC以及VVC的当前版本中。在HEVC中,定义了一个额外的环路滤波器,称为样点自适应偏移(sample adaptive offset,SAO),以进一步提高编解码效率。在VVC标准的最新版本中,正在积极研究另一种称为自适应环路滤波器(adaptive loop filter,ALF)的环路滤波器,并可能将其包含在最终标准中。
这些环路滤波器操作是可选的。执行这些操作有助于提高编解码效率和视觉质量。它们也可以由编码器100做出的决定而被关闭以节省计算复杂度。
应当注意,帧内预测通常基于未滤波的重建像素,而如果这些滤波器选项被编码器100打开,则帧间预测基于滤波的重建像素。
图2是示出了可与多种视频编解码标准结合使用的基于块的视频解码器200的框图。该解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码202对输入视频比特流201进行解码,以导出量化系数水平和预测相关信息。然后通过反量化204和逆变换206处理量化的系数级别,以获得重建的预测残差。在帧内/帧间模式选择器212中实现的块预测器机制被配置为基于解码的预测信息执行帧内预测208或运动补偿210。通过使用加法器214将来自逆变换206的重建预测残差和由块预测器机制生成的预测输出相加,获得未滤波的重建像素的集合。
在将重建块存储在用作参考图片存储的图片缓冲器213中之前,重建块可以进一步经过环路滤波器209。图片缓冲器213中的重建视频可以被发送以驱动显示设备,以及用于预测未来的视频块。在环路滤波器209打开的情况下,对这些重建像素执行滤波操作以导出最终重建视频输出222。
本公开旨在改进上述视频编解码标准或技术的图像滤波设计。本公开中提出的滤波方法是基于神经网络的,其可以作为环路滤波的一部分被应用,例如,在去块滤波器与样点自适应偏移(SAO)之间,或者作为环后滤波的一部分,以改进当前的视频编解码技术,或者作为当前视频编解码技术之后的后处理滤波的一部分。
神经网络技术,如全连接神经网络(fully connected neural network,FC-NN)、卷积神经网络(convoNtional neural network,CNN)和长短期记忆网络(long short-termmemory network,LSTM),已经在许多研究领域取得了重大成功,包括计算机视觉和视频理解。
全连接神经网络(FC-NN)
图4示出了根据本公开的一些实施方式的由输入层、输出层和多个隐藏层组成的简单FC-NN。在第k层,由以下下式生成输出fk(xk-1,Wk,Bk):
fk(xk-1,Wk,Bk)=δ(xk-1*Wk+Bk) (1)
其中,xk-1∈RM是第k-1层的输出,Wk∈RM*N和Bk∈RN是第k层的权重和偏差。
δ(·)是激活函数,例如等式(3)中定义的修正线性单元(ReLU)函数。
因此,K层FC-NN的一般形式写为:
FCNN(x)=fK(…fk(fk-1(…f1(x,W1,B1)…),Wk,Bk)…,WK,BK),for 1≤k≤K (4)。
根据通用近似假设(universal approximation hypothesizes)和等式(4),给定任何连续函数g(x)和一些ε>0,存在具有非线性合理选择的神经网络f(x),例如ReLU,以使|g(x)-f(x)|<ε。因此,许多经验研究曾将神经网络应用为逼近器(approximator)来模拟具有隐藏变量的模型,以提取表面下的可解释特征。例如,应用于图像识别,FC-NN帮助研究人员构建一个系统,该系统不仅可以理解单个像素,而且可以理解越来越深和复杂的子结构,例如边缘、纹理、几何形状和对象。
卷积神经网络(CNN)
图5A示出了根据本公开的一些实施方式的具有两个隐藏层的FC-NN。CNN是用于图像或视频应用的流行神经网络架构,与图5A所示的FC-NN非常相似,其包括权重和偏差度量。CNN可以被视为神经网络的三维版本。图5B示出了根据本公开的一些实施方式的CNN的示例,其中第二隐藏层的维度为[W,H,Depth]。在图5B中,神经元以三维结构(宽度、高度和深度)布置以形成CNN,并且第二隐藏层被可视化。在此示例中,输入层保持输入图像或视频帧,因此其宽度和高度与输入数据相同。为了应用于图像或视频应用,CNN中的每个神经元是具有与其输入一致的扩展深度的空间滤波器元件,例如,如果输入图像中有3个颜色分量,则深度为3。
图6示出了根据本公开的一些实施方式的应用具有输入图像的空间滤波器的示例。如图6所示,在该示例中,CNN中的基本元素的维度被定义为[Filterwidth,Filterheight,Inputdepth,Outputdepth]并设置为[5,5,3,4]。每个空间滤波器对输入图像执行具有5*5*3权重的二维空间卷积。输入图像可以是64×64×3图像。然后,输出4个卷积结果。因此,如果用额外的2个像素填充边界,则滤波结果的维度为[64+4,64+4,4]。
残差网络(ResNet)
在图像分类中,随着神经网络深度的增加,分类精度趋于饱和并迅速下降。更具体地说,在深度神经网络上添加更多的层会导致更高的训练误差,因为梯度沿着深度网络逐渐消失,并最终趋于零梯度。然后,由残差块组成的ResNet通过引入直连(identityconnection)来解决退化问题。
图7A示出了根据本公开的一些实施方式的ResNet,其包括作为ResNet的元素的残差块,该残差块通过直连与其输入逐元素相加。如图7A所示,ResNet的基本模块由残差块和直连组成。根据通用近似假设,给定输入x,残差块中具有激活函数的加权层近似于隐藏函数F(x)而不是输出H(x)=F(x)+x。
通过堆叠非线性多层神经网络,残差块探索表示输入图像的局部特征的特征。在既不引入额外参数也不引入计算复杂性的情况下,直连被证明可以通过跳过一个或多个非线性加权层来使深度学习网络可训练,如图7A所示。跳过加权层,残差层的差分输出可以写成:
因此,即使微分项逐渐向零减小,恒等项仍然可以继续并将输入传递到下一层,而不是停留在零梯度上,并阻止信息传播。如果一个神经元不能将信息传播给下一个神经元,它就被视为死亡神经元,这是神经网络中不可训练的元素。在添加之后,还可以应用另一个非线性激活函数。图7B示出了根据本公开的一些实施方式的通过对残差模块进行堆叠的ResNet的示例。如图7B所示,在传播到下一模块之前,将残差特征与身份特征融合。
ResNet的变化
在图8A-8B中,提出了ResNet的几个变型,以改善单一图像超分辨率(SISR)的恢复图像质量,并提高图像分类的精度。图8A示出了根据本公开的一些实施方式的包括具有全局直连的多个残差块的ResNet的示例。在图8A中,提出了ResNet的变型以增强上采样图像的视觉质量。具体地,从第一残差块的输入到最后残差块的输出应用全局直连,以便于训练过程的收敛。
图8B示出了根据本公开的一些实施方式的ResNet堆叠多个残差块以进一步提高视频编解码效率的另一示例。每个残差块通过级联操作将其自身的输入直接传播到随后单元。换言之,每个中间块可以从其先前单元接收多层次信息,因为多级信息可以流过相同的连接。由于级联操作,图8B中的每个残差块的参数随着层数线性增加。
在图8A-8B中,在残差信息可被传播到之后的模块之前,残差特征必须经过一个或多个模块。由于直连,这些残差特征可以在特定层与身份特征快速耦合,并停止传播到后续模块。因此,前两种变型中的残差特征受到局部限制并导致性能下降。
图8C示出了根据本公开的一些实施方式的ResNet通过汇聚残差块的输出来处理单图像超分辨率(SISR)的另一示例。在图8C中,最后一个残差块的输出与前三个模块的所有输出级联。在与第一残差块的输入应用逐元素相加之前,通过卷积运算融合级联的分层特征。与前两种变型不同,聚合ResNet使非局部特征适用于最后一个残差模块,从而可以将分层信息传播到后续块,以更具区别性的方式实现特征表示。
在本公开中,提出了与基于神经网络的图像滤波相关的方法和设备,以进一步提高当前混合视频编解码的编解码效率。所提出的方法和装置可以作为环路滤波的一部分来应用,例如,如图2所示,在去块滤波器与样点自适应偏移(SAO)之间,或者作为后环滤波来改进当前视频编解码技术,或者作为当前视频编解码技术之后的后处理滤波来应用。
图9示出了根据本公开的一些实施方式的用于执行视频编解码的图像滤波的典型的基于神经网络的模型。YUV分量可以并行地提供给神经网络模型。YUV分量的这种并行输入不仅有利于减少处理延迟,而且有利于神经网络模型学习同位YUV信息之间的相关性,例如交叉分量滤波和/或亮度引导色度滤波。该基于神经网络模型的滤波器的开/关控制可以以CTU级别执行,以在控制粒度与信令开销之间进行合理的权衡。
特征图分辨率一致(alignment)
当CTU级别的YUV信息被提供给如图9所示的神经网络模型滤波器时,这些YUV CTU块的分辨率可以相同,也可以不同。例如,如果编码的视频内容是YUV420,则三个同位的YUV块的分辨率可能不相同。在这种情况下,需要分辨率一致。为了便于说明,本公开中所有提出的方法和设备都假设视频内容是YUV420。对于不同的内容格式,如YUV422、YUV444,可以容易地扩展所提出的方法。
在一些示例中,可以在YUV块进入所述神经网络之前使分辨率一致。
在一些示例中,一个128×128的Y块可以被下采样为一个64×64的块或四个64×64的块。当生成四个64×64的块时,原始128×128的块的所有信息可以保留并分布在这四个块中。用于原始128×128的块的信息分发的方法可以是基于分区的,例如,一个64×64的块可以来自原始128×128的块的左上角,而另一个64×64的块可以来自原128×128的块的右上角。可选地,用于原始128×128的块的信息分发的方法可以是基于交错的,例如,原始128×128的块的每四个相邻样点均匀分布在四个64×64的块中。
在一些示例中,一个64×64的U或V块可以被上采样为一个128×128的块。
在一些示例中,可以在这些YUV块进入所述神经网络之后使分辨率一致。在一个示例中,可以降低Y输入分辨率以匹配UV输入。实现这一点的一种方法是使用与UV输入相比具有双倍步长的卷积层。在此示例中,在所述神经网络的末端,需要分辨率增加层来放大Y内容,以使该模型的输出具有与输入相同的分辨率。实现这一点的一种方法是使用像素重组层来放大Y分辨率。在另一示例中,可以提高UV输入分辨率以匹配Y输入。一种实现方法是在所述神经网络开始时使用像素重组层放大UV,然后在所述神经网络结束时缩小。
特征图分辨率控制
特征图分辨率成比例地影响神经网络处理开销,但可能不会成比例地改变神经网络的性能。为了控制模型滤波的计算复杂度,可使用不同的解决方案,例如,残差块的数量、每个残差块处卷积层的输入和输出信道的数量。卷积层中特征图的分辨率控制是控制计算复杂度的另一个有效选项。
图10示出了根据本公开的一些实施方式的调整用于计算复杂度控制的特征图分辨率的三个区域。如图10所示,在区域1中,确定输入YUV块的分辨率,并执行相应的放大/缩小操作,如在“特征图分辨率一致”中介绍的上/下采样方法。
在区域2中,确定输入YUV块的分辨率,并在YUV级联之前执行相应的放大/缩小操作。由于该区域位于所述神经网络的开始处,所以如果执行缩小操作,则输入信息可能会显著丢失,并且模型训练后的整体性能可能会受到影响。
在区域3中,可以在较早的残差块之一处放大/缩小输入YUV块的分辨率,并且可以在较晚的残差块处执行逆操作,如缩小/放大。由于该区域位于YUV级联之后,所以如果执行缩小操作,则输入信息可能比区域2丢失得更少,因为大多数输入信息已经在具有足够深度用于信息学习的早期卷积层中被捕获或学习。例如,在区域2之后,生成YUV内容的三个信道,其UV放大到128×128。在级联之前可能已经在较早的卷积层中学习/提取和分布/复制了Y输入信息。可替代地,可以在第一残差块之后执行缩小操作,因为第一残差块可具有足够的信道来学习/提取Y输入信息特征。
与QP无关的神经网络模型
为了便于更容易地部署所提出的神经网络模型滤波,期望从神经网络模型中去除输入量化参数(quantization parameter,QP)相关性。因此,单个神经网络模型可用于图像滤波,而与用于视频编解码的输入QP无关。
图11示出了根据本公开的一些实施方式的典型的与QP无关的神经网络模型。对于典型的视频编解码系统,QP值用于计算预测残差量化/去量化的量化步长。因此,不同的QP值表示不同的视频质量水平。为了处理具有不同输入QP和质量的不同视频帧,将QpMap提供给神经网络。QpMap为神经网络添加了另一维度的信息,以学习和自适应地滤波所提供的YUV输入。
QpMap值的动态范围控制
图11示出了根据本公开的一些实施方式的用于执行视频编解码的图像滤波的典型的基于与QP无关的神经网络的模型。QpMap与YUV输入信道级联。每个QpMap信道可包含在不同坐标的相同的值。并且每个QpMap信道可具有与关联的输入信道相同的分辨率。也就是说,用于Y输入的QpMap信道与Y输入信道具有相同的分辨率,并且QpMap的每个值指示Y输入信道内的所有样点具有相同的Qp值。
可以直接使用每个视频帧/图像的输入QP值来生成QpMap值。可替代地,可以首先将每个视频帧/图像的输入QP值转换成QP步长,例如,Qstep=2(QP-4)/6,以生成QpMap值。
当从输入QP或Qp步长生成QpMap值时,希望QpMap值动态范围在以下三个方面是合理的。
首先,该范围应该足够大,以使可以容易地使用不同的QpMap值来表示/区分不同的输入Qp或Qp步长。换言之,给定两个输入Qp值,相应的QpMap值不应彼此接近。
其次,该范围应足够平衡,以使不同的QpMap值可以均匀分布在该范围的不同位置。
第三,该范围应与所关联的YUV采样值的动态范围相匹配。例如,如果通过除以Pmax将YUV样点值归一化为[0,1],其中,Pmax=2bitdepth-1,则假设QpMap值也在类似范围内归一化。
因此,当QpMap被映射到动态范围时,提出了不将最大或最小输入Qp或Qp步长用作分割因子,否则分割将生成的QpMap值推向动态范围的一侧,这就等于减小QpMap的动态范围。
例如,如果使用最大Qp步长912(对应于最大输入Qp 63),则理论动态范围是(0,1),但如果输入Qp步长通常小于45(对应于输入Qp 37),则有效动态范围仅为(0,0.05),这就意味着在大多数情况下QpMap值接近于0。
相反,提出了使用位于中间或中位数的输入Qp或Qp步长来进行归一化,以使生成的QpMap值可以分布在动态范围的任一侧,如[0.5,1.5]。一个示例性选择的位于中间或中位数的输入Qp值是Qp 32,然后根据Qp到Qstep(Qp步长)方程(例如,Qstep=2(QP-4)/6)转换成Qp步长大约为25.5。因此,任何输入Qp值首先被转换成相应的Qp步长,然后被除以所选Qp步长25.5。
基于预测的QpMap值调整
对于帧间预测的视频帧/图像,帧/图像中的大多数块/CTU可以用值较小的残差或无残差进行帧间预测,例如跳过模式。在这种情况下,有效输入Qp值应由相应的参考帧/图像确定。
在一些示例中,当在运动补偿过程期间重建当前图像时,可以保存并获得相应参考帧/图像的输入Qp值。每个当前帧的输入QP值是已知的。但是当该帧不是当前帧并且该帧是另一帧的参考帧时,该帧的输入Qp值变得未知。因此,必须保存Qp值,以在将来获取。
在一些实施例中,可以通过从经帧间编解码的当前帧的Qp值中减去特定值来导出对应参考帧/图像的输入Qp值,其中,可以通过检查经帧间编解码的当前帧的时间层索引来获得该特定值。
在一些其它实施例中,如果参考帧/图像是参考图像链(参考帧/图像的参考帧/图像),则可从信令中继承或携带该信息。
在一个简单的解决方案中,对于帧间预测的视频帧/图像,有效Qp步长可以通过诸如0.5的恒定缩放因子从当前帧的Qp步长导出,其对应于值为6的输入Qp差。该缩放操作是参考帧/图像输入Qp或Qp步长的近似操作。
在一个或多个实施例中,Qp步长的缩放也可以应用于帧内预测帧/图像,以补偿用于后续帧间预测帧的恒定缩放因子的不精确性。
基于QpMap值的样点值缩放
与QP无关的神经网络模型可不显式地包含网络中的QpMap信道。例如,如图11所示,为每个YUV信道生成的QpMap值与YUV信道级联。可替代地,馈送到网络中的QpMap值可用于直接缩放每个YUV信道中的样点值。通过这种方式,QpMap信道不与YUV信道级联,这表示在网络中隐式地使用QpMap。
在隐式使用QpMap的一些示例中,QpMap数据可能不会被馈送到网络中,在神经网络之前进行每个YUV信道中的样点值的缩放。
基于神经网络的模型滤波与其它环路滤波器之间的交互
当基于神经网络的模型滤波被通过信号发送为以CTU级别或帧级别打开时,可以跳过去块滤波以避免不必要的计算或过度平滑。可替代地,仍然可以出于视觉质量目的进行去块滤波。
当基于神经网络的模型滤波被通过信号发送为以CTU级别或帧级别打开时,可关闭其他一些环路滤波器,如ALF、CCALF和SAO。
当基于神经网络的模型滤波被通过信号发送为以CTU级别或帧级别打开时,可以在CTU级别或帧级别选择性开启或关闭其他环路滤波器。例如,如果帧内或帧内CTU被启用以用于基于神经网络的模型滤波,则禁用用于当前帧内或当前帧内CTU的其他环路滤波器,如去块滤波,或/和ALF、或/和CCALF,或/和SAO。
图12是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的装置的框图。设备1200可以是终端,例如移动电话、平板电脑、数字广播终端、平板设备或个人数字助理。
如图12所示,设备1200可包括以下组件中的一个或多个:处理组件1202、存储器1204、电源组件1206、多媒体组件1208、音频组件1210、输入/输出(I/O)接口1212、传感器组件1214以及通信组件1216。
处理组件1202通常控制装置1200的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和录音操作相关的操作。处理组件1202可包括一个或多个处理器1220,以用于执行指令从而完成上述方法的全部或部分步骤。进一步地,处理组件1202可包括一个或多个模块,以促进处理组件1202与其它组件之间的交互。例如,处理组件1202可包括多媒体模块,以促进多媒体组件1208与处理组件1202之间的交互。
存储器1204被配置为存储不同类型的数据以支持装置1200的操作。这些数据的示例包括用于在装置1200上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或其组合来实施,并且存储器1204可以是静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪速存储器、磁盘或光盘。
电源组件1206为装置1200的不同组件供电。电源组件1306可包括电源管理系统、一个或多个电源以及与为装置1200生成、管理和分配电力相关联的其它组件。
多媒体组件1208包括提供装置1200与用户之间的输出接口的屏幕。在一些示例中,屏幕可包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,则屏幕可以被实施为从用户接收输入信号的触摸屏。触摸面板可包括用于感测触摸面板上的触摸、滑动和手势的一个或多个触摸传感器。触摸传感器不仅可以感测触摸动作或滑动动作的边界,还可以检测与触摸或滑动操作相关的持续时间和压力。在一些示例中,多媒体组件1208可包括前置相机和/或后置相机。当装置1200处于操作模式(诸如拍摄模式或视频模式)时,前置相机和/或后置相机可以接收外部多媒体数据。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括麦克风(MIC)。当装置1200处于操作模式(诸如呼叫模式、录音模式和语音识别模式)时,麦克风被配置为接收外部音频信号。接收到的音频信号可以进一步存储在存储器1204中或经由通信组件1216发送。在一些示例中,音频组件1210进一步包括用于输出音频信号的扬声器。
I/O接口1212提供处理组件1202与外围接口模块之间的接口。上述外围接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于主页按钮、音量按钮、开始按钮和锁定按钮。
传感器组件1214包括用于为装置1200提供不同方面的状态评估的一个或多个传感器。例如,传感器组件1214可以检测装置1200的开/关状态和组件的相对位置。例如,这些组件是装置1200的显示器和键盘。传感器组件1214还可以检测装置1200或装置1200的组件的位置变化、用户对装置1200的接触的存在或不存在、装置1200的取向或加速度/减速度、以及装置1200的温度变化。传感器组件1214可包括接近度传感器,接近度传感器被配置为在没有任何物理接触的情况下检测附近物体的存在。传感器组件1214可以进一步包括光学传感器,诸如在成像应用中使用的CMOS或CCD图像传感器。在一些示例中,传感器组件1214可以进一步包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器、或温度传感器。
通信组件1216被配置为促进装置1200与其它设备之间的有线或无线通信。装置1200可以接入基于诸如WiFi、4G、或其组合等通信标准的无线网络。在一种示例中,通信组件1216经由广播信道从外部广播管理系统接收广播信号或广播相关信息。在一种示例中,通信组件1216可以进一步包括用于促进短距离通信的近场通信(NFC)模块。例如,NFC模块可以基于射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术以及其它技术来实施。
在一个示例中,装置1200可以由以下各项中的一项或多项来实施以执行上述方法:专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其它电子元件。非暂态计算机可读存储介质可以是例如硬盘驱动器(HDD)、固态驱动器(SSD)、闪速存储器、混合驱动器或固态混合驱动器(SSHD)、只读存储器(ROM)、致密盘只读存储器(CD-ROM)、磁带、软盘等。
图13是示出了根据本公开的一些实施方式的一种使用神经网络在视频编解码中进行图像滤波的过程的流程图。
在步骤1301中,处理器1220加载与待编解码的当前图像关联的多个输入块,其中,所述多个输入块包括具有第一分辨率的第一输入块、具有第二分辨率的第二输入块和具有第三分辨率的第三输入块。
在一些示例中,第一输入块可以是输入到神经网络的区域1中的Y块,如图10和11所示。第二输入块可以是输入到神经网络的区域1中的U块,如图10和图11所示。第三输入块可以是输入到神经网络的区域1中的V块,如图10和图11所示。
在步骤1302中,处理器1220在神经网络之前或神经网络中的多个区域中的一个区域调整第一分辨率、第二分辨率和第三分辨率。
在一些示例中,多个区域包括第一区域、第二区域和第三区域。例如,如图10所示,第一区域可以是区域1,第二区域可以是区域2,第三区域可以是区域3。
在一些示例中,第一区域可包括接收多个输入块的多个输入层和输出多个输出块的多个输出层。例如,如图10所示,第一区域可包括位于神经网络之前的多个层和位于神经网络之后的多个层。在一些示例中,多个输入层在接收神经网络输入的多个卷积层之前。多个输出层在神经网络中的逐元素相加层之后的多个卷积层之后,如图10所示。
在一些示例中,第二区域可以包括多个输入卷积层和多个输出卷积层,并且多个输入卷积层跟随在多个输入层之后,并对多个输入块进行卷积。在一些示例中,第三区域可包括多个残差块,并且多个输出卷积层跟随在所述多个残差块之后。
在一些示例中,响应于确定第一、第二和第三分辨率中的一个分辨率不同于其他两个分辨率,处理器1220可使用第一区域中的多个输入层来使第一分辨率、第二分辨率和第三分辨率一致。
在一些示例中,如步骤1402所述,处理器1220可使用第一区域中的多个输入层将第一输入块下采样为与第二或第三块具有相同分辨率的多个第一输入子块。例如,多个第一输入子块可以是从一个128×128的Y块向下采样的四个64×64的Y块。
在一些示例中,如步骤1403所述,处理器1220可将多个第一输入子块与第二和第三输入块组合起来。此外,如在步骤1404中那样,处理器1220可生成与多个输入块对应的多个输出块,其中多个输出块包括多个第一输出子块、第二输出块和第三输出块,并且使用第一区域中的多个输出层对多个第一输入子块进行上采样。
在一些示例中,如步骤1405所述,处理器1220可使用第一区域中的多个输入层对第二输出块或第三输出块进行上采样,并使用第一区域中的多个输出层对第二输出块或第三输出块进行下采样。
在一些示例中,处理器1220可将第一输入块加载到第二区域中的第一输入卷积层中,并通过第一输入卷积层调整第一分辨率以与第二或第三分辨率一致。例如,第一输入卷积层可以是接收Y块的卷积层(convolution layer,CL)CL1。
在一些示例中,处理器1220可以将第二输入块加载到第二区域中的第二输入卷积层中,并通过第二输入卷积层调整第二分辨率以与第一或第三分辨率一致。例如,第二输入卷积层可以是接收U块的卷积层CL2。
在一些示例中,处理器1220可以将第三输入块加载到第二区域中的第三卷积层中,并通过第三输入卷积层调整第三分辨率以与第一或第二分辨率一致。例如,第三输入卷积层可以是接收V块的卷积层CL3。
在一些示例中,步长大于第二输入卷积层或第三输入卷积层的第一输入卷积层可以缩小第一分辨率以与第二或第三分辨率一致。
在一些示例中,第二区域中的像素重组层可以放大第二分辨率以与第一或第三分辨率一致。
在一些示例中,第二区域中的像素重组层可以放大第三分辨率以与第一或第二分辨率一致。
在一些示例中,第二区域中的像素重组层可以放大对应于第一输入块的第一输出块的分辨率,以使第一输出块具有与第一输入块相同的分辨率。
在一些示例中,第二区域中的分辨率增加层可以缩小与第二输入块相对应的第二输出块的分辨率,使得第二输出块与第二输入块具有相同的分辨率。
在一些示例中,第二区域中的分辨率增加层可以缩小与第三输入块相对应的第三输出块的分辨率,使得第三输出块与第三输入块具有相同的分辨率。
在一些示例中,处理器1220可以:在步骤1501中,将第一输入块加载到第二区域中的第一输入卷积层中,调整第一分辨率,并生成第一卷积输出;在步骤1502中,将第二输入块加载到第二区域中的第二输入卷积层中,调整第二分辨率,生成第二卷积输出;在步骤1503中,将第三输入块加载到第二区域中的第三输入卷积层中,调整第三分辨率,并生成第三卷积输出;在步骤1504中,通过级联第一卷积输出、第二卷积输出和第三卷积输出来生成级联输出;在步骤1505中,将级联输出加载到所述多个残差块中的第一残差块中,并通过所述多个残差块中的最后一个残差块生成残差输出;在步骤1506中,分别将残差输出加载到多个输出卷积层中;在步骤1507中,通过第一输出卷积层调整加载到第一输出卷积层的残差输出的分辨率,以与加载到第一输入卷积层的第一输入块的第一分辨率一致;在步骤1508中,通过第二输出卷积层调整加载到第二输出卷积层的残差输出的分辨率,以与加载到第二输入卷积层的第二输入块的第二分辨率一致;并且在步骤1509中,通过第三输出卷积层调整加载到第三输出卷积层的残差输出的分辨率,以与加载到第三输入卷积层的第三输入块的第三分辨率一致。例如,第一、第二和第三输出卷积层分别是图10中的卷积层CL4、CL5和CL6。
在一些示例中,神经网络可进一步包括级联层1020。此外,所述多个残差块可包括一个或多个前残差块、一个或多个中间残差块和一个或多个后残差块,所述一个或多个前残差块之后是一个或多个中间残差块,所述一个或多个中间残差块之后是所述一个或多个后残差块。
在一些示例中,处理器1220可以:在步骤1601中,将第一输入块加载到第一输入卷积层中,并生成第一卷积输出;在步骤1602中,将第二输入块加载到第二输入卷积层中并生成第二卷积输出;在步骤1603中,将第三输入块加载到第三输入卷积层中并生成第三卷积输出;在步骤1604中,级联第一卷积输出、第二卷积输出和第三卷积输出,并生成级联输出;并且在步骤1605中,将级联输出加载到第一前残差块。此外,在步骤1606中,第三区域中的第一分辨率缩小残差块可以缩小第一分辨率,其中第一分辨率缩小残差块是一个或多个前残差块中的一个前残差块。在缩小之后,在步骤1607中,第三区域中的第一分辨率放大残差块可以放大第一分辨率,其中第一分辨率放大残差块是一个或多个后残差块中的一个残差块。第一分辨率缩小残差块可以是后续前残差块中的第一个或第二个或任何一个。在一些示例中,该分辨率缩小残差块可以在或不在第一前残差块之后。
在一些示例中,第三区域中的第二分辨率缩小残差块可以缩小第二分辨率或第三分辨率,其中第二分辨率减小残差块是一个或多个前残差块中的一个前残差块。在缩小之后,第三区域中的第二分辨率放大残差块可以放大第二分辨率或第三分辨率,其中第二分辨率放大残差块是一个或多个后残差块中的一个残差块。
在本公开中,如果YUV分辨率不同,则在不同区域执行缩小/放大操作是为了在YUV之间使分辨率一致,并降低复杂度或提高性能。在一些示例中,当YUV分辨率不同时,应在区域1或2中执行使YUV之间的分辨率一致的操作,如图10所示。为了使YUV之间分辨率一致,可以增加UV分辨率以与Y一致,或者可以减小Y分辨率以与UV一致。为了降低复杂度,可以首先执行缩小,然后可以在区域1、2或3中执行逆放大。
在一些示例中,处理器1220可以在多个QpMap通道处加载多个QpMap值,其中,多个QPMap值可包括第一QPMap信道处的第一QPMap值、第二QPMap信道处的第二QpMap值以及第三QPMap信道处的第三QpMap。此外,处理器1220可以调整第一、第二和第三QpMap值,以使第一、第二和第三QPMap值在动态范围内。
例如,因为YUV可具有不同的QP值,所以QpMap可具有分别用于YUV的三个信道:QP-Y、QP-U、QP-V。
在一些示例中,第一、第二和第三QpMap值均匀分布在该动态范围的不同位置。
在一些示例中,通过分割因子将第一、第二和第三QpMap值归一化为动态范围,该动态范围与第一、第二和第三输入块关联的QP值范围匹配,并且通过分割因子归一化第一、第二和第三输入块的输入QP值来获得QP值范围。
在一些示例中,在运动补偿期间,在重建当前图像时保存并获得这些输入QP值。
在一些示例中,通过从帧间编解码的当前图像的输入QP值中减去第一值来获得输入QP值,其中,基于帧间编解码的当前图像的时间层索引来确定该第一值。
在一些示例中,通过参考信令获得这些输入QP值。
在一些示例中,根据当前图像的输入QP值或与输入QP值对应的QP步长来确定多个映射值。此外,处理器1220可以使用恒定的缩放因子来缩放QP步长。
在一些示例中,处理器1220可根据当前图像的输入信道的QP值,在分别对应于输入通道的多个QpMap通道处生成多个QPMap值,并通过分别将多个QPMap通道与输入信道级联来缩放输入通道处的多个输入块。
可通过使用YUV信道的Qp值显式地生成QpMap。在这种情况下,QpMap信道与YUV信道级联。例如,如果有3个YUV信道,则会有分别用于YUV的3个QpMap信道,并且在级联后将有6个信道。
在某些示例中,可不生成QpMap。YUV信道的等效QpMap值可直接用于缩放每个样点位置处的YUV信道。在这种情况下,YUC信道的每个样点已经包含Qp信息。在级联之后,只有3个信道。当未生成QpMap时,YUV的样点值直接通过等效QpMap值缩放。有两个地方进行缩放:网络内的缩放和网络外的缩放。如果在网络外进行缩放,则Qp值(称为QpMap数据)不会被馈送到网络中。
在一些示例中,处理器1220可以在将多个输入块加载到神经网络之前,基于缩放因子分别在输入信道处缩放多个输入块。在一些示例中,处理器1220可以在将多个输入块加载到神经网络之后,基于缩放因子分别在输入通道处缩放多个输入块。在一些示例中,响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在CTU级别或帧级别上被开启,处理器1220可跳过视频编解码中的去块滤波。
在一些示例中,响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在CTU级别或帧级别上被开启,处理器1220可以关闭视频编解码中的环路滤波器。
在一些示例中,响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在CTU级别或帧级别上被开启,处理器1220可以选择性地关闭视频编解码中的环路滤波器。
在一些其它示例中,提供了一种非暂时性计算机可读存储介质1204,该计算机可读存储介质存储指令。当这些指令由一个或多个处理器1220执行时,这些指令使该处理器执行图13和前面所描述的任何方法。
本公开的描述已经出于说明目的被呈现,并且不旨在是穷举的或限于本公开。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是显而易见的。
示例被选择并描述以便解释本公开的原理,并且使本领域其它技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围将不受限于所公开的实施方式的具体示例,并且修改和其它实施方式旨在被包括在本公开的范围内。
Claims (33)
1.一种使用神经网络在视频编解码中进行图像滤波的方法,包括:
加载与待编解码的当前图像关联的多个输入块,其中,所述多个输入块包括具有第一分辨率的第一输入块、具有第二分辨率的第二输入块和具有第三分辨率的第三输入块;以及
响应于确定所述第一、第二和第三分辨率中的一个分辨率不同于其他两个分辨率,在所述神经网络之前或之中的多个区域的一个区域调整所述第一分辨率、所述第二分辨率和所述第三分辨率。
2.根据权利要求1所述的方法,其中,所述多个区域包括第一区域、第二区域和第三区域;
其中,所述第一区域包括接收所述多个输入块的多个输入层和输出多个输出块的多个输出层;
其中,所述第二区域包括多个输入卷积层和多个输出卷积层,并且所述多个输入卷积层跟随在所述多个输入层之后,并且对所述多个输入块执行卷积;以及
其中,所述第三区域包括多个残差块,并且所述多个输出卷积层跟随在所述多个残差块之后。
3.根据权利要求2所述的方法,还包括:
响应于确定所述第一、第二和第三分辨率中的一个分辨率不同于所述其他两个分辨率,使用所述第一区域中的所述多个输入层来使所述第一分辨率、所述第二分辨率和所述第三分辨率一致。
4.根据权利要求3所述的方法,其中使所述第一分辨率、所述第二分辨率和所述第三分辨率一致包括:
使用所述第一区域中的所述多个输入层将所述第一输入块下采样为与所述第二或第三块具有相同分辨率的多个第一输入子块;
并且所述方法还包括:
将所述多个第一输入子块与所述第二和第三输入块组合;
生成对应于所述多个输入块的多个输出块,其中,所述多个输出块包括多个第一输出子块、第二输出块和第三输出块;以及
使用所述第一区域中的所述多个输出层对所述多个第一输出子块进行上采样。
5.根据权利要求3所述的方法,还包括:
使用所述第一区域中的所述多个输入层对所述第二输出块或所述第三输出块进行上采样;以及
使用所述第一区域中的多个输出层对所述第二输出块或所述第三输出块进行下采样。
6.根据权利要求2所述的方法,还包括:
将所述第一输入块加载到所述第二区域中的第一输入卷积层中,并通过所述第一输入卷积层调整所述第一分辨率以与所述第二或第三分辨率一致。
7.根据权利要求2所述的方法,还包括:
将所述第二输入块加载到所述第二区域中的第二输入卷积层中,并通过所述第二输入卷积层调整所述第二分辨率以与所述第一或第三分辨率一致。
8.根据权利要求2所述的方法,还包括:
将所述第三输入块加载到所述第二区域中的第三卷积层中,并通过所述第三输入卷积层调整所述第三分辨率以与所述第一或第二分辨率一致。
9.根据权利要求6所述的方法,其中,调整所述第一分辨率以与所述第二或第三分辨率一致包括:
通过步长大于第二输入卷积层或第三输入卷积层的所述第一输入卷积层缩小所述第一分辨率以与所述第二或第三分辨率一致。
10.根据权利要求7所述的方法,其中,调整所述第二分辨率以与所述第一或第三分辨率一致包括:
通过所述第二区域中的像素重组层放大所述第二分辨率以与第一或第三分辨率一致。
11.根据权利要求8所述的方法,其中,调整所述第三分辨率以与所述第一或第二分辨率一致包括:
通过所述第二区域中的像素重组层放大所述第三分辨率以与所述第一或第二分辨率一致。
12.根据权利要求9所述的方法,还包括:通过所述第二区域中的像素重组层放大与所述第一输入块相对应的第一输出块的分辨率,使得所述第一输出块与所述第一输入块具有相同的分辨率。
13.根据权利要求10所述的方法,还包括:
通过所述第二区域中的分辨率增加层,缩小与所述第二输入块相对应的第二输出块的分辨率,使得所述第二输出块与所述第二输入块具有相同的分辨率。
14.根据权利要求11所述的方法,还包括:
通过所述第二区域中的分辨率增加层,缩小与所述第三输入块相对应的第三输出块的分辨率,使得所述第三输出块与所述第三输入块具有相同的分辨率。
15.根据权利要求2所述的方法,还包括:
将所述第一输入块加载到所述第二区域中的第一输入卷积层中,调整所述第一分辨率,并生成第一卷积输出;
将所述第二输入块加载到所述第二区域中的第二输入卷积层中,调整所述第二分辨率,并生成第二卷积输出;
将所述第三输入块加载到所述第二区域中的第三输入卷积层中,调整所述第三分辨率,并生成第三卷积输出;
通过级联所述第一卷积输出、所述第二卷积输出和第三卷积输出生成级联输出;
将所述级联输出加载到所述多个残差块中的第一残差块中,并通过所述多个残差块中的最后的残差块生成残差输出;
将所述残差输出分别加载到所述多个输出卷积层中;
通过第一输出卷积层调整加载到所述第一输出卷积层的所述残差输出的分辨率,以与加载到所述第一输入卷积层的所述第一输入块的所述第一分辨率一致;
通过第二输出卷积层调整加载到所述第二输出卷积层的所述残差输出的分辨率,以与加载到所述第二输入卷积层的所述第二输入块的所述第二分辨率一致;以及
通过第三输出卷积层调整加载到所述第三输出卷积层的所述残差输出的分辨率,以与加载到所述第三输入卷积层的所述第三输入块的所述第三分辨率一致。
16.根据权利要求2所述的方法,其中,所述神经网络包括所述第二区域中的第一输入卷积层、第二卷积层和第三卷积层以及级联层;
其中,所述多个残差块包括一个或多个前残差块、一个或多个中间残差块和一个或多个后残差块,所述一个或多个前残差块之后是所述一个或多个中间残差块,所述一个或多个中间残差块之后是所述一个或多个后残差块;以及
所述方法还包括:
将所述第一输入块加载到第一输入卷积层中并生成第一卷积输出;
将所述第二输入块加载到第二输入卷积层中并生成第二卷积输出;
将所述第三输入块加载到第三输入卷积层中并生成第三卷积输出;
级联所述第一卷积输出、所述第二卷积输出和所述第三卷积输出,并生成级联输出;
将所述级联输出加载到第一前残差块;
通过所述第三区域中的第一分辨率缩小残差块来缩小所述第一分辨率,其中,所述第一分辨率缩小残差块是所述一个或多个前残差块中的一个前残差块;以及
通过所述第三区域中的第一分辨率放大残差块来放大所述第一分辨率,其中,所述第一分辨率放大残差块是所述一个或多个后残差块中的一个残差块。
17.根据权利要求16所述的方法,其中,所述分辨率缩小残差块在所述第一前残差块之后。
18.根据权利要求16所述的方法,还包括:
通过所述第三区域中的第二分辨率缩小残差块来缩小所述第二分辨率或所述第三分辨率,其中,所述第二分辨率缩小残差块是所述一个或多个前残差块中的一个前残差块;以及
通过所述第三区域中的第二分辨率放大残差块来放大所述第二分辨率或所述第三分辨率,其中,所述第二分辨率放大残差块是所述一个或多个后残差块中的一个残差块。
19.根据权利要求2所述的方法,还包括:
在多个量化参数映射QpMap信道处加载多个QpMap值,其中,所述多个QPMap值包括在第一QpMap信道的第一QpMap值、在第二QpMap信道的第二Qp Map值以及在第三Qp Map信道的第三QpMap值;以及
调整所述第一、第二和第三QpMap值,以使所述第一、第二和第三QpMap的值处于动态范围内。
20.根据权利要求19所述的方法,其中所述第一、第二和第三QpMap值均匀地分布在所述动态范围的不同位置。
21.根据权利要求19所述的方法,其中,所述第一、第二和第三QpMap值通过分割因子被归一化为与所述第一、第二和第三输入块关联的量化参数QP值范围匹配的动态范围,并且通过由所述分割因子归一化所述第一、第二和第三输入块的输入QP值来获得所述QP值范围。
22.根据权利要求21所述的方法,其中,在运动补偿期间在重建所述当前图像时保存和获得所述输入QP值。
23.根据权利要求19所述的方法,其中,通过从帧间编解码的所述当前图像的所述输入QP值减去第一值获得所述输入QP值,其中,基于帧间编解码的所述当前图像的时间层索引来确定所述第一值。
24.根据权利要求19所述的方法,其中,通过参考信令获得所述输入QP值。
25.根据权利要求19所述的方法,其中,根据所述当前图像的输入QP值或对应所述输入QP值的QP步长来确定所述多个映射值;以及
所述方法还包括:
使用恒定缩放因子缩放所述QP步长。
26.根据权利要求19所述的方法,还包括:
根据所述当前图像的输入信道的QP值,在分别对应于所述输入信道的多个QpMap信道生成多个QPMap值;以及
通过分别将所述多个QpMap信道与所述输入信道级联来缩放所述输入信道处的所述多个输入块。
27.根据权利要求19所述的方法,还包括:
在将所述多个输入块加载到所述神经网络之前,基于缩放因子分别在所述输入信道缩放所述多个输入块。
28.根据权利要求19所述的方法,还包括:
在将所述多个输入块加载到所述神经网络之后,基于缩放因子分别在所述输入通道缩放所述多个输入块。
29.根据权利要求1所述的方法,还包括:
响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在以CTU级别或帧级别上被开启,跳过所述视频编解码中的去块滤波。
30.根据权利要求1所述的方法,还包括:
响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在以CTU级别或帧级别上被开启,关闭所述视频编解码中的环路滤波器。
31.根据权利要求1所述的方法,还包括:
响应于确定通过信号发送在视频编解码中使用神经网络的图像滤波在以CTU级别或帧级别上被开启,选择性地关闭所述视频编解码中的环路滤波器。
32.一种使用神经网络在视频编码中进行图像滤波的装置,包括:
一个或多个处理器;以及
存储器,所述存储器被配置为存储可由所述一个或多个处理器执行的指令,
其中,在执行所述指令时,所述一个或多个处理器被配置为执行权利要求1-31中任一项所述的方法。
33.一种存储计算机可执行指令的非暂时性计算机可读存储介质,当由一个或多个计算机处理器执行时,所述指令使所述一个或多个计算机处理器执行权利要求1-31中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063121822P | 2020-12-04 | 2020-12-04 | |
US63/121,822 | 2020-12-04 | ||
PCT/US2021/062061 WO2022120285A1 (en) | 2020-12-04 | 2021-12-06 | Network based image filtering for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569548A true CN116569548A (zh) | 2023-08-08 |
Family
ID=81855030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080446.8A Pending CN116569548A (zh) | 2020-12-04 | 2021-12-06 | 用于视频编解码的基于网络的图像滤波 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230328293A1 (zh) |
EP (1) | EP4256788A1 (zh) |
CN (1) | CN116569548A (zh) |
WO (1) | WO2022120285A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220337853A1 (en) * | 2021-04-07 | 2022-10-20 | Lemon Inc. | On Neural Network-Based Filtering for Imaging/Video Coding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102459853B1 (ko) * | 2017-11-23 | 2022-10-27 | 삼성전자주식회사 | 디스패리티 추정 장치 및 방법 |
WO2019162230A1 (en) * | 2018-02-20 | 2019-08-29 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Picture/video coding supporting varying resolution and/or efficiently handling region-wise packing |
CN108833923B (zh) * | 2018-06-20 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法、装置、存储介质和计算机设备 |
US10547823B2 (en) * | 2018-09-25 | 2020-01-28 | Intel Corporation | View interpolation of multi-camera array images with flow estimation and image super resolution using deep learning |
KR102127846B1 (ko) * | 2018-11-28 | 2020-06-29 | 주식회사 카이 | 영상을 처리하는 방법, 영상을 재생하는 방법 및 그 장치들 |
-
2021
- 2021-12-06 CN CN202180080446.8A patent/CN116569548A/zh active Pending
- 2021-12-06 EP EP21901617.7A patent/EP4256788A1/en active Pending
- 2021-12-06 WO PCT/US2021/062061 patent/WO2022120285A1/en active Application Filing
-
2023
- 2023-06-02 US US18/205,475 patent/US20230328293A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230328293A1 (en) | 2023-10-12 |
WO2022120285A1 (en) | 2022-06-09 |
EP4256788A1 (en) | 2023-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240064296A1 (en) | Network based image filtering for video coding | |
US20230345003A1 (en) | Network based image filtering for video coding | |
CN112544081B (zh) | 环路滤波的方法与装置 | |
KR20220006113A (ko) | 루프 필터링 방법 및 장치 | |
WO2020264529A1 (en) | Lossless coding modes for video coding | |
CN112514390A (zh) | 视频编码的方法和装置 | |
US20230328293A1 (en) | Network based image filtering for video coding | |
US20230252300A1 (en) | Methods and apparatus for hybrid training of neural networks for video coding | |
CN114128263A (zh) | 用于视频编解码中的自适应运动矢量分辨率的方法和设备 | |
WO2023056364A1 (en) | Method, device, and medium for video processing | |
CN113826403A (zh) | 信息处理方法及装置、设备、存储介质 | |
WO2023198057A1 (en) | Method, apparatus, and medium for video processing | |
WO2024078599A1 (en) | Method, apparatus, and medium for video processing | |
WO2023051653A1 (en) | Method, apparatus, and medium for video processing | |
WO2024078598A1 (en) | Method, apparatus, and medium for video processing | |
WO2023051654A1 (en) | Method, apparatus, and medium for video processing | |
CN117643053A (zh) | 基于网络的视频编解码图像滤波 | |
WO2024081872A1 (en) | Method, apparatus, and medium for video processing | |
CN115699759A (zh) | 采用基于satd的成本计算对视频进行编解码的方法和装置 | |
CN117716389A (zh) | 用于视频编解码的基于网络的图像滤波 | |
Gomez et al. | Learned-based Intra Coding Tools for Video Compression. | |
CN112970252A (zh) | 视频编解码的方法和装置 | |
CN112136329A (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 |