一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于图片编码和解码的方法和设备与流程

2021-10-24 07:23:00 来源:中国专利 TAG:解码 编码 用于 方法 设备

用于图片编码和解码的方法和设备
1.技术领域
1.本发明的至少一个实施方式总体上涉及一种用于图片编码和解码的方法和设备,更具体地,涉及一种用于在视频编码和解码中利用多个神经网络进行滤波的方法和设备。
2.

背景技术:

2.为了实现高压缩效率,图像和视频译码方案通常采用预测和变换以利用视频内容中的空间和时间冗余。通常,帧内或帧间预测用于利用帧内或帧间相关性,然后对通常表示为预测误差、预测残差或预测值的原始图像块与预测的图像块之间的差进行变换、量化和熵译码。在编码期间,通常可能使用四叉树分割将原始图像块分割/分裂成子块。为了重构视频,通过与预测、变换、量化和熵译码对应的逆处理来解码压缩的数据。
3.

技术实现要素:

3.根据至少一个实施例的一般方面,呈现一种用于视频解码的方法,其包括:
4.访问编码视频的图像块的第一重构版本;以及
5.通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
6.通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
7.其中,所述第一神经网络和所述第二神经网络被联合训练。
8.根据至少一个实施例的一般方面,呈现一种用于视频解码的装置,其包括被配置成执行以下操作的一或多个处理器:
9.访问编码视频的图像块的第一重构版本;以及
10.通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本所述第二重构版本将被用作参考,
11.通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
12.其中,所述第一神经网络和所述第二神经网络被联合训练。
13.根据至少一个实施例的一般方面,呈现一种用于编码视频数据的方法,其包括:
14.访问编码视频的图像块的第一重构版本;以及
15.通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
16.通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
17.其中,所述第一神经网络和所述第二神经网络被联合训练。
18.根据至少一个实施例的一般方面,呈现一种用于编码视频数据的设备,其包括被配制成执行以下操作的一或多个处理器:
19.访问编码视频的图像块的第一重构版本;以及
20.通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
21.通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
22.其中,所述第一神经网络和所述第二神经网络被联合训练。
23.根据至少一个实施例的另一个一般方面,比特流被格式化为包括根据上述编码方法生成的信号。
24.本发明实施例中的一者或多者还提供一种计算机可读存储媒体,其上存储有用于根据上述方法中的任一者的至少部分来编码或解码视频数据的指令。一个或多个实施例还提供了一种计算机可读存储介质,其上存储有根据上述编码方法生成的比特流。一个或多个实施例还提供了一种用于发送或接收根据上述编码方法产生的比特流的方法和设备。一个或多个实施例还提供了一种计算机程序产品,其包括用于执行上述任何方法的至少一部分的指令。
4.附图说明
25.‑
图1示出了示例性hevc(高效视频译码)视频编码器的框图
26.图2示出了jem 6.0中使用的四个环内滤波器;
27.‑
图3是出了示例性hevc视频解码器的框图;
28.‑
图4示出了示例性cnn(卷积神经网络);
29.‑
图5a、5b和5c分别示出了使用cnn作为环内滤波器的训练过程、编码过程和解码过程;
30.‑
图6示出了根据实施例的用于对重构图像块进行滤波的示例性方法;
31.‑
图7a示出了使用cnn作为环内滤波器以及cnn作为环外滤波器的训练过程;
32.‑
图7b描述了基于鉴别器的损失函数;
33.‑
图7c和7d分别示出了根据第一实施例的使用cnn作为环内滤波器以及使用cnn作为环外滤波器的编码过程和解码过程;
34.‑
图8a、8b和8c分别示出了根据第二实施例的使用cnn作为环内滤波器以及使用cnn作为环外滤波器的编码过程和解码过程;
35.‑
图9a、9b和9c分别示出了根据第三实施例的使用cnn作为环内滤波器以及使用cnn作为环外滤波器的编码过程和解码过程;以及
36.‑
图10示出了其中可以实现示例性实施例的各个方面的示例性系统的框图。
5.具体实施方式
37.在hevc译码中,图片被分割成正方形形状的ctu,其具有可配置的大小,通常为64
×
64。在其它视频译码标准中,该大小可以是128
×
128或256
×
256。ctu是被分割为4个相等尺寸的正方形译码单元(cu)的四叉树的根,所述尺寸即宽度和高度上父块尺寸的一半。四叉树是其中父节点可以被分成四个子节点的树,每个子节点可以变为另一被分成四个子节点的父节点。在hevc中,译码块(cb)被分割成一个或多个预测块(pb),并且形成四叉树分割
成变换块(tb)的根。对应于译码块、预测块和变换块,译码单元(cu)包括预测单元(pu)和变换单元(tu)的树结构集合,pu包括所有颜色分量的预测信息,并且tu包括每个颜色分量的残差译码语法结构。亮度分量的cb、pb和tb的大小适用于相应的cu、pu和tu。
38.在更近的编码系统中,ctu是分割成译码单元(cu)的译码树的根。译码树是其中父节点(通常对应于块)可以被分割成子节点(例如,分割成2、3或4个子节点)的树,其中的每一个子节点可以成为用于另一分割成子节点的父节点。除了四叉树分割模式之外,还定义了新的分割模式(二叉树对称分割模式、二叉树非对称分割模式和三叉树分割模式),其增加了可能的分割模式的总数。译码树具有唯一的根节点,例如ctu。译码树的叶子是树的终止节点。译码树的每个节点表示可以进一步分割成也称为子块的较小块的块。一旦确定ctu到cu的划分,则编码对应于译码树的叶子的cu。将ctu划分成cu以及用于编码每个cu(对应于译码树的叶)的译码参数可以在编码器侧通过率失真优化过程来确定。
39.在本技术中,术语“块”或“图片块”可以用于指代ctu、cu、pu、tu、cb、pb和tb中的任何一者。另外,术语“块”或“图片块”可用于指代如h.264/avc或其它视频译码标准中指定的宏块、分区和子块,且更一般来说指代具有许多大小的样本阵列。
40.在本技术中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“图片”和“帧”可以互换使用。通常,但不是必须的,术语“重构”在编码器侧使用,而“解码”在解码器侧使用。
41.本技术描述了多个方面,包括工具、特征、实施例、模型、方法等。这些方面中的许多方面被描述为具有特异性,并且至少为了示出个体特性,通常以可能听起来受限的方式来描述。然而,这是为了描述清楚的目的,并且不限制那些方面的应用或范围。实际上,所有不同的方面可以组合和互换以提供另外的方面。此外,这些方面也可以与在较早的文档中描述的方面组合和互换。
42.本技术中描述和预期的方面可以以许多不同的形式实现。以下图1、2和10提供了一些实施例,但是可以设想其他实施例,并且对图1、2和10的讨论不限制实现的广度。至少一个方面一般涉及视频编码和解码,并且至少一个其它方面一般涉及传送所生成或编码的比特流。这些和其它方面可以实现为方法、装置、其上存储有用于根据所描述的任何方法来编码或解码视频数据的指令的计算机可读存储介质、和/或其上存储有根据所描述的任何方法生成的比特流的计算机可读存储介质。
43.在本技术中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“图片”和“帧”可以互换使用。通常,但不是必须的,术语“重构”在编码器侧使用,而“解码”在解码器侧使用。
44.本文描述了各种方法,并且每种方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可修改或组合特定步骤和/或动作的顺序和/或使用。
45.本技术中描述的各种方法和其它方面可用于修改如图1和2所示的视频编码器100和解码器200的模块,例如环内滤波模块和后解码处理(165、265、285)。此外,本发明的方面不限于vvc或hevc,并且可应用于例如无论是预先存在还是将来开发的其它标准和建议,以及任何此类标准和建议(包括vvc和hevc)的扩展。除非另外指出或在技术上排除,本技术中描述的方面可以单独或组合使用。
46.在本技术中使用各种数值,例如,卷积神经网络的层数、每层的卷积数等。具体值是出于示例目的,并且所描述的方面不限于这些具体值。
47.图1示出了编码器100。可以设想该编码器100的变型,但是为了清楚起见,下面描述编码器100,而不描述所有预期的变型。
48.在被编码之前,视频序列可以经历预编码处理(101),例如,对输入颜色图片应用颜色变换(例如,从rgb 4:4:4到ycbcr 4:2:0的转换),或者执行输入图片分量的重新映射,以便获得对压缩更有弹性的信号分布(例如,使用颜色分量之一的直方图均衡)。元数据可以与预处理相关联,并且被附加到比特流。
49.在编码器100中,如下所述,由编码器元件对图片进行编码。以例如cu为单位分割(102)并处理要编码的图片。使用例如帧内或帧间模式来编码每个单元。当以帧内模式对单元进行编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)使用帧内模式或帧间模式中的一者来对单元进行编码,并且通过例如预测模式标志来指示帧内/帧间决定。例如,通过从原始图像块中减去(110)预测块来计算预测残差。
50.然后,对预测残差进行变换(125)和量化(130)。对量化的变换系数以及运动矢量和其它语法元素进行熵译码(145)以输出比特流。编码器可以跳过变换,并直接对未变换的残差信号应用量化。编码器可以绕过变换和量化,即,直接对残差进行译码而不应用变换或量化处理。
51.编码器对编码块进行解码,以提供用于进一步预测的参考。对量化变换系数进行解量化(140)和逆变换(150)以对预测残差进行解码。组合(155)解码的预测残差和预测块,则图像块被重构。环内滤波器(165)被应用于重构的图片,以执行例如dbf(解块)/sao(样本自适应偏移)滤波,从而减少编码伪像。更一般地,对于视频压缩,可以使用其他滤波器进行环内滤波。例如,如图2所示,对于由jvet(联合视频探索组)开发的当前jem 6.0(联合探索模型6.0),相继应用四个滤波器,即双边滤波器(blf)、解块滤波器(dbf)、sao和alf(自适应环内滤波器)。这些不同的滤波器通常基于:(1)样本分析和像素分类以及(2)类相关滤波。将滤波图像存储在参考图片缓冲器(180)中。
52.为了便于表示,我们将编码器的输入图像称为s,将环内滤波的输入称为并且将环内滤波的输出称为环内滤波的输出称为也可以被称为图像的初始重构或初始重构版本。如图2所示,环内滤波的输入是预测样本和解码预测残差的和。对于某些块,当预测残差为零或不存在时(例如,在跳跃模式中),环内滤波的输入直接是预测的样本。
53.在当前jem中,在解块滤波器之前对重构样本应用双边滤波器。blf通过使滤波器权重不仅基于到相邻样本的距离而且基于它们的值来工作。初始重构图片中的每个样本由其自身及其邻居的加权平均值来替换。基于距中心样本的距离以及样本值中的差来计算权重。因为滤波器是小的加号形状(即,滤波器使用四个相邻样本),所以所有距离都是0或1。
54.位于(i,j)的样本将使用其相邻样本来滤波。权重ω(i,j,k,l)是分配给相邻样本(k,l)的用于对当前样本(i,j)进行滤波的权重,并且被定义为:
55.56.其中,i(i,j)和i(k,l)分别是初始重构中的样本(i,j)和(k,l)的强度值,σ
d
是空间参数,并且σ
r
是范围参数。双边滤波器的特性(或强度)由参数σ
d
和σ
r
控制。在jem 6.0中,σ
d
依据变换单元大小和预测模式来设定,且σ
r
基于用于当前块的qp来设定。
57.输出滤波样本值i
f
(i,j)计算为:
[0058][0059]
在编码器和解码器中,如果cu大于16
×
16,则所提出的双边滤波器被应用于每个cu或最大尺寸为16
×
16的块。在jem 6.0中,在编码器侧的rdo(率失真优化)循环内执行双边滤波器。因此,滤波的块也可用于预测后续块(帧内预测)。
[0060]
alf基本上是基于维纳滤波器设计的,其目的在于设计线性滤波器(1d或2d)以最小化l2失真,即,最小化滤波样本和参考样本(通常是原始样本)之间的平方误差。在jem中,应用具有基于块的滤波器自适应的alf。对于亮度分量,基于信号的方向和活动性,为每个2
×
2块选择25个滤波器中的一个滤波器。
[0061]
对于亮度分量支持多达三个圆形对称滤波器形状。在图片层级处用信号发送索引以指示用于图片的亮度分量的滤波器形状。对于图片中的色度分量,总是使用5
×
5菱形滤波器。
[0062]
块分类被应用于每个2
×
2块,其基于局部信号分析(梯度、方向性)被分类为25个类别中的一个类别。对于图片中的两个色度分量,不应用分类方法,即,将alf系数的单个集合应用于每一色度分量。
[0063]
亮度分量的滤波过程可以在cu级被控制。用信号发出标志以指示alf是否应用于cu的亮度分量。对于色度分量,是否应用alf仅在图片级指示。在第一ctu的sao参数之前,alf滤波器参数在第一ctu中被用信号通知。可以用信号发送多达25组亮度滤波器系数。为了减少比特开销,可以合并不同分类的滤波器系数。此外,可将参考图片的alf系数再用作当前图片的alf系数。
[0064]
图3示出了视频解码器200的框图。在解码器200中,如下所述,由解码器元件解码比特流。视频解码器200通常执行与图1中所描述的编码回合互逆的解码回合。编码器100通常还执行视频解码作为编码视频数据的一部分。
[0065]
特别地,解码器的输入包括视频比特流,其可以由视频编码器100生成。比特流首先被熵解码(230)以获得变换系数、运动矢量和其它译码信息。图片分割信息指示图片如何被分割。解码器因此可以根据解码的图片分割信息来划分(235)图片。变换系数被解量化(240)和逆变换(250)以解码预测残差。将解码的预测残差与预测块进行组合(255),重构图像块。预测块可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)。环内滤波器(265)被应用于重构的图像。将滤波图像存储在参考图片缓冲器rpb(280)中,也称为解码图片缓冲器(dpb)。
[0066]
解码的图片可以进一步经过后解码处理(285),例如,用于改进显示器上的图片渲染的后滤波、逆颜色变换(例如,从ycbcr 4:2:0到rgb 4:4:4的转换)或执行在预编码处理(101)中执行的重新映射过程的逆重新映射。后解码处理可以使用在预编码处理中导出并且在比特流中用信号通知的元数据。
[0067]
已知使用深度学习来执行环内滤波。深度学习领域涉及深度神经网络的使用。神
经网络包含由称为层的群组组织的神经元。在神经网络中有输入层、输出层和隐藏层(一个或多个)。深度神经网络具有两个或更多个隐藏层。视频压缩可被认为是与模式识别相链接,因为压缩通常寻找重复模式以便去除冗余。因为视频压缩中的伪像去除或伪像减少可以被认为是识别和恢复原始图像,所以可以使用神经网络作为滤波器来减少伪像。在此,伪像减少也被称为图像恢复,并且用于减少伪像的神经网络也可以被称为恢复滤波器。
[0068]
图4示出了示例性m层卷积神经网络,其中,来自视频编解码器的没有滤波的初始重构通过添加由cnn计算的残差r而被恢复为数学上,网络可以表示为:
[0069][0070]
其中w
i
和b
i
分别是针对层i的权重和偏置参数分别,g()是激活函数(例如s形或整流线性单元(relu)函数),并且*表示卷积运算。来自cnn的输出可以存储在参考图片缓冲器(rpb)中,以用作对后续帧进行编码或解码的预测器。
[0071]
例如,通过最小化基于恢复图像和原始图像之间的误差定义的损失函数,可以从k个训练样本训练包括w
i
和b
i
,i={1,...,m}的参数集θ,如:
[0072][0073]
注意,损失函数还可以包含其它项,以便稳定收敛或避免过拟合。这些正则化项可以简单地添加到误差函数。
[0074]
图5a示出了在大型图像数据库上训练的cnn,其中网络试图通过使误差(即,与原始图像的差)最小化来由编码器恢复重构的图像。图5b示出了在编码器中使用所得到的cnn来恢复重构之后的图像。然后,恢复的图像可以被显示或用作预测序列中的其它帧的参考。对称地,如图5c所示的解码器接收比特流,重构图像并使用相同的cnn恢复图像。
[0075]
cnn的第一层的输入通常是重构图像的y分量,即尺寸为wxhx1的图像,其中w和h是图像的宽度和高度。为了也使用其他信息作为输入,我们将重构图像视为一个通道,并且使用附加通道输入其他信息。在示例中,第一层对输入图像的每个样本应用n个卷积的n
×
n
×
1个滤波器,例如n=3。因此,对于每个样本获得n个值。然后,可以将偏差加到每个值上,随后是诸如relu的非线性函数。如果输入值为负,则relu返回0,如果输入值为正,则relu返回输入值。在第二层中,应用m个卷积3
×
3xn个滤波器,随后添加偏差和relu函数。可以连续地施加几个这样的层。
[0076]
诸如sao或dbf的环内滤波器被应用于视频图像的重构样本,目的在于减少主要由于信号的量化而引起的编码伪像。这些滤波器的输出被存储在编码器(分别为解码器)的rpb(参考图像缓冲器)中。在环内滤波器中,传统上使用客观度量(通常基于l1或l2范数)来优化滤波图像,将其用作预测的参考图像。
[0077]
使用更感性的度量,例如ms

ssi,来优化这些滤波器,通常降低了压缩的性能,即
预测的性能,因为所得到的图像被用作预测的参考。
[0078]
由于图像被滤波以改善显示器上的图片渲染,因此优选地使用感知度量来优化环外滤波器(例如,在电视机中运行的那些)。
[0079]
例如,在机顶盒或电视机中应用这种附加的后置滤波器,以使图片渲染适应显示特性。由于这些滤波图像不用作预测的参考图像,所以可以执行感知改进。使用客观度量,例如l2范数,通常限制感知改进。
[0080]
这2种类型的滤波在当前系统中独立地优化,并且导致次优滤波和/或更高的复杂度。
[0081]
在至少一个实施例中,通过联合优化重构图像质量以便稍后用作编解码器中的参考和用于显示的图像视觉质量来训练多部分cnn。多部分cnn包含至少两个cnn,例如如图7a、8a和9a中的cnna和cnnb。
[0082]
图6示出了根据实施例的用于对重构图像块进行滤波的示例性方法。图6的方法可以用于编码方法和解码方法。
[0083]
该方法开始于步骤s10。在s12,访问图像块的第一重构版本。在s14,图像块的第一重构版本通过第一神经网络滤波以形成图像块的第二重构版本以用作参考。在s16,通过第二神经网络滤波图像块的第二重构版本,以形成待显示的图像块的第三重构版本。根据该实施例,第一神经网络和第二神经网络被联合训练。该方法在s18结束。
[0084]
图7a示出了根据第一实施例在大型图像数据库上联合训练cnna和cnnb,其中cnna用作环内滤波器,cnnb用作环外滤波器。训练使用s、和作为输入。cnna的输入是重构图像的像素(亮度和/或色度通道)。所使用的深度神经网络cnna是学习要被添加到重构图像以产生恢复图像的残差ra的全卷积神经网络(fcnn)。后者被优化以用作编码视频的其它图像的参考。
[0085]
所使用的深度神经网络cnnb是学习要被添加到以产生要被显示的恢复图像的残差rb的全卷积神经网络(fcnn)。cnna的输出作为cnnb的输入。整个cnn具有2部分:用于环内滤波的cnna和用于环外滤波的cnnb。网络的两个部分被联合训练。用于训练客观滤波的第一损失函数la,即cnna,通常是原始图像s和cnna所滤波的图像之间的l1或l2范数:
[0086]
用于训练感知滤波的第二损耗lb,即cnnb,通常使用高级函数来设计。例如,可以使用诸如生成对抗网络(gan)中的鉴别器。生成对抗性网络(gan)是一类人工智能算法,其用于无监督机器学习,由两个神经网络的系统实现。一个网络,生成模型g捕获数据分布,并且一个网络,判别模型d估计样本来自训练数据而不是g的概率。针对g的训练程序是最大化d产生错误的概率。这个框架对应于极小极大双方博弈。
[0087]
图7b描述了基于鉴别器的损失函数。鉴别器用于确定lb损失。
[0088]
重构图像通过整个网络滤波,从而经过cnna和cnnb滤波,以产生滤波图像
[0089]
被输入到鉴别器中以输出鉴别器得分其中d()表示鉴别器转发函数,以及g()表示发生器转发函数(这里编解码器的输出作为cnna cnnb的输入发送)。
[0090]
原始图像s也输入到鉴别器中。
[0091]
在鉴别器训练期间,最大化以下函数:
[0092][0093]
其中θd是鉴别器的网络参数。
[0094]
在生成器训练期间,以下损失被最小化:
[0095][0096]
其中θg是生成器cnna cnnb的网络参数。
[0097]
另一种方法包括建立鉴别器网络,该鉴别器网络将s和两者作为输入,并且使该网络鉴别原始图像和滤波图像。
[0098]
典型的d()函数是分类函数。鉴别器试图将原始图像分类为正确的(分数=1),并将滤波图像分类为不正确的(分数=0)。典型的分类器使用resnet网络,但是更先进的网络,尤其是基于多尺度分析的网络,可以用作鉴别器。
[0099]
整个网络cnna cnnb训练时的最终损失函数可以表示为:
[0100][0101]
其中,λ和γ是旨在平衡不同项的参数,r是用于改善收敛的典型权重正则化函数,这里设置为cnna cnnb的权重的l2范数。
[0102]
图7c示出了在编码器中使用所得到的cnna来恢复重构之后的图像。对称地,如图7d所示的解码器接收比特流,使用根据第一实施例确定的cnna和cnnb来重构图像并恢复图像。
[0103]
图8a示出了根据第二实施例在大型图像数据库上联合训练cnna和cnnb,其中cnna用作环内滤波器,cnnb用作环外滤波器。cnnb的输入由环内滤波器的重构图像和恢复图像组成。它允许第二网络cnnb利用关于已经由第一网络cnna执行的恢复的信息。cnnb的两个输入和被串接,即,对于每个像素,获得具有两个值的适量(来自的值和来自的值)。两个输入的串接因此产生了大小为wxhx2的张量。因此,cnnb的第一层对每个样本应用n个卷积nxnx2个滤波器,例如,n=3。可以使用与第一实施例中所使用的以及图7a中所描述的相同的损失函数la和lb。特别地,图7b的鉴别器因此可以被用于定义损失函数lb。
[0104]
在一变型中,cnnb不使用cnna恢复的图像(cnna的最终输出),而是使用中间表示,例如,潜在表示(通常,最后一层之前的层的输出,具有大小wxhxn而不是最终输出的wxhx1)。它允许cnnb利用cnna的潜在表示来执行感知滤波。
[0105]
图8b示出了在编码器中使用所得到的cnna来恢复重构之后的图像。编码器在第一(图7c)和第二(图8b)实施例中是相同的。对称地,如图8c所示的解码器接收比特流,使用根据第二实施例确定的cnna和cnnb来重构图像并恢复图像。
[0106]
图9a示出了根据第三实施例在大型图像数据库上联合训练cnna、cnna’和cnnb。
[0107]
该网络包括三个部分:cnna、cnna’和cnnb。cnna的输出s0用作cnna’和cnnb的输入。网络cnna’的目的在于恢复图像。主要思想是具有由客观和感知滤波两者使用的公共部分(cnna)以及专用部分(用于客观滤波的cnna

和用于感知滤波的cnnb)。输出s0不必是图像,而是可以是张量。张量s0通常可以具有尺寸wxhxn,其中wxh是图像尺寸,n是cnna的最后一层上的卷积的数目。可以使用与图7a所示的第一实施例中所使用的相同的损失函数。
[0108]
图9b示出了在编码器中使用所得到的cnna和cnna’来恢复重构之后的图像。对称地,如图9c所示的解码器接收比特流,使用根据第二实施例确定的cnna、cnna’和cnnb来重构图像并恢复图像。
[0109]
在可以应用于三个实施例的一个变型中,在比特流中发送“环外滤波器”的系数,即cnnb的网络参数。在同样适用于三个实施例的第二变型中,通过对大型数据集合进行训练来学习系数,并且后滤波模块知道该系数。
[0110]
这三个实施例使得有可能获得用于显示的最佳图像恢复,同时通过组合联合训练的基于cnn的滤波器来保持高的编解码器性能。它还依赖于cnna和cnnb层的共享,从而减少了对cnnb的计算需要。对于第三实施例,共享甚至更高。
[0111]
图10示出了其中实现了各个方面和实施例的系统的示例的框图。系统1000可以被实现为包括以下描述的各种组件的设备,并且被配置为执行本文中描述的一个或多个方面。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器和服务器。系统1000的元件可以单独地或组合地实现在单个集成电路(ic)、多个ic和/或分立组件中。例如,在至少一个实施例中,系统1000的处理和编码器/解码器元件分布在多个ic和/或分立组件上。在各种实施例中,系统1000经由例如通信总线或通过专用输入和/或输出端口通信地耦合到一个或多个其他系统或其他电子设备。在各种实施例中,系统1000被配置为实现本文中描述的一个或多个方面。
[0112]
系统1000包括至少一个处理器1010,其被配置为执行加载在其中的指令,以用于实现例如本文中描述的各个方面。处理器1010可以包括嵌入式存储器、输入输出接口和本领域已知的各种其它电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备和/或非易失性存储器设备)。系统1000包括存储设备1040,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(eeprom)、只读存储器(rom)、可编程只读存储器(prom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备、附接的存储设备(包括可拆卸的和不可拆卸的存储设备)和/或网络可访问的存储设备。
[0113]
系统1000包括编码器/解码器模块1030,其被配置为例如处理数据以提供编码视频或解码视频,并且编码器/解码器模块1030可以包括其自己的处理器和存储器。编码器/解码器模块1030表示可包括在装置中以执行编码和/或解码功能的模块(一个或多个)。如已知的,设备可以包括编码和解码模块中的一者或两者。另外,编码器/解码器模块1030可实施为系统1000的单独元件或可并入处理器1010内作为如所属领域的技术人员已知的硬件与软件的组合。
[0114]
要加载到处理器1010或编码器/解码器1030上以执行本文档中描述的各个方面的程序代码可以存储在存储设备1040中,并且随后加载到存储器1020上以供处理器1010执行。根据各种实施例,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一者或多者可以在执行本文中描述的过程期间存储各种项中的一者或多者。这些存储的项可以包括但不限于输入视频、解码视频或解码视频的部分、比特流、矩阵、变量以及来自等式、公式、运算和运算逻辑的处理的中间或最终结果。
[0115]
在一些实施例中,处理器1010和/或编码器/解码器模块1030内的存储器用于存储指令,并且提供用于在编码或解码期间需要的处理的工作存储器。然而,在其它实施例中,处理设备外部的存储器(例如,处理装置可为处理器1010或编码器/解码器模块1030)用于这些功能中的一者或一者以上。外部存储器可以是存储器1020和/或存储设备1040,例如,动态易失性存储器和/或非易失性闪存。在几个实施例中,外部非易失性闪存用于存储例如电视的操作系统。在至少一个实施例中,诸如ram的快速外部动态易失性存储器被用作视频编码和解码操作的工作存储器,诸如用于mpeg

2(mpeg是指运动图像专家组,mpeg

2也被称为iso/iec 13818,并且13818

1也被称为h.222,并且13818

2也被称为h.262)、hevc(hevc是指高效视频译码,也被称为h.265和mpeg

h部分2)、或vvc(通用视频译码,由jvet开发的新标准,联合视频团队专家)的工作存储器。
[0116]
如框1130中所示,可以通过各种输入设备来提供对系统1000的元件的输入。这样的输入设备包括但不限于(i)接收例如由广播公司通过空中传输的射频(rf)信号的rf部分,(ii)组件(comp)输入端子(或一组comp输入端子),(iii)通用串行总线(usb)输入端子,和/或(iv)高清晰度多媒体接口(hdmi)输入端子。图10中未示出的其它示例包括合成视频。
[0117]
在各种实施例中,框1130的输入设备具有本领域已知的相关联的相应输入处理元件。例如,rf部分可以与适合于以下的元件相关联:(i)选择期望频率(也称为选择信号,或将信号频带限制到频带),(ii)下变频选择的信号,(iii)再次频带限制到较窄频带,以选择(例如)在某些实施例中可以称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,和(vi)解复用以选择期望的数据分组流。各种实施例的rf部分包括一个或多个元件以执行这些功能,例如,频率选择器、信号选择器、限带器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。rf部分可以包括执行各种这些功能的调谐器,这些功能包括例如将接收信号下变频到较低频率(例如,中频或近基带频率)或基带。在一个机顶盒实施例中,rf部分及其相关的输入处理元件接收通过有线(例如,电缆)介质发送的rf信号,并通过滤波、下变频和再次滤波到期望的频带来执行频率选择。各种实施例重新安排上述(和其它)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同功能的其它元件。添加元件可以包括在现有元件之间插入元件,例如插入放大器和模数转换器。在各种实施例中,rf部分包括天线。
[0118]
另外,usb和/或hdmi终端可以包括用于通过usb和/或hdmi连接将系统1000连接到其它电子设备的相应接口处理器。应当理解,输入处理的各个方面,例如reed

solomon纠错,可以根据需要在例如单独的输入处理ic或处理器1010内实现。类似地,usb或hdmi接口处理的各方面可以根据需要在单独的接口ic内或在处理器1010内实现。解调、纠错和解复用的流被提供给各种处理元件,包括例如处理器1010和编码器/解码器1030,其与存储器和存储元件结合操作以根据需要处理数据流以便在输出设备上呈现。
[0119]
系统1000的各种元件可以设置在集成壳体内。在集成壳体内,各种元件可以使用合适的连接布置1140互连并在其间传输数据,例如,本领域已知的内部总线,包括ic间(i2c)总线、布线和印刷电路板。
[0120]
系统1000包括通信接口1050,其使得能够经由通信信道1060与其他设备通信。通信接口1050可以包括但不限于被配置为通过通信信道1060发送和接收数据的收发器。通信接口1050可以包括但不限于调制解调器或网卡,并且通信信道1060可以例如在有线和/或
无线介质内实现。
[0121]
在各种实施例中,使用无线网络,例如wi

fi网络,例如ieee 802.11(ieee是指电气和电子工程师协会),将数据流式传输或以其他方式提供给系统1000。这些实施例的wi

fi信号通过适用于wi

fi通信的通信信道1060和通信接口1050来接收。这些实施例的通信信道1060通常连接到接入点或路由器,所述接入点或路由器提供对包括因特网的外部网络的接入以允许流式应用和其它过顶通信。其它实施例使用通过输入块1130的hdmi连接传递数据的机顶盒向系统1000提供流数据。还有一些实施例使用输入块1130的rf连接向系统1000提供流数据。如上所述,各种实施例以非流方式提供数据。另外,各种实施例使用除wi

fi之外的无线网络,例如蜂窝网络或蓝牙网络。
[0122]
系统1000可以向各种输出设备提供输出信号,包括显示器1100、扬声器1110和其他外围设备1120。各种实施例的显示器1100包含例如触摸屏显示器、有机发光二极管(oled)显示器、弯曲显示器和/或可折叠显示器中的一者或一者以上。显示器1100可以用于电视、平板电脑、膝上型计算机、蜂窝电话(移动电话)或其他设备。显示器1100还可与其它组件集成(例如,如在智能电话中),或单独(例如,用于膝上型计算机的外部监视器)。在各实施例的各示例中,其它外围设备1120包括独立数字视频盘(或数字多功能盘)(dvr,两项)、盘播放器、立体声系统和/或照明系统中的一个或多个。各种实施例使用一个或多个外围设备1120,其基于系统1000的输出提供功能。例如,盘播放器执行播放系统1000的输出的功能。
[0123]
在各种实施例中,使用诸如av.链路、消费电子控制(cec)、或在有或没有用户干预的情况下实现设备到设备控制的其他通信协议的信令在系统1000和显示器1100、扬声器1110或其它外围设备1120之间传送控制信号。输出设备可以经由通过相应接口1070、1080和1090的专用连接通信地耦合到系统1000。或者,输出设备可以使用通信信道1060经由通信接口1050连接到系统1000。显示器1100和扬声器1110可以与系统1000的其它组件一起集成在电子设备(例如电视机)中的单个单元中。在各种实施例中,显示接口1070包括显示驱动器,例如定时控制器(t con)芯片。
[0124]
例如,如果输入1130的rf部分是单独机顶盒的一部分,则显示器1100和扬声器1110可以备选地与其它组件中的一个或多个分离。在显示器1100和扬声器1110是外部组件的各种实施例中,输出信号可以经由专用输出连接来提供,所述专用输出连接例如包括hdmi端口、usb端口或comp输出。
[0125]
这些实施例可以由处理器1010或硬件和软件的组合实现的计算机软件来实现。作为非限制性示例,实施例可以由一个或多个集成电路实现。存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,作为非限制性示例,诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器1010可以是适合于技术环境的任何类型,并且可以包含作为非限制性示例的微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一者或多者。
[0126]
各种实现方式涉及解码。如本技术中所使用的,“解码”可以包括例如对接收到的编码序列执行的全部或部分处理,以便产生适合于显示的最终输出。在各种实施例中,此类过程包括通常由解码器执行的过程中的一个或多个,例如熵解码、逆量化、逆变换和差分解码。在各种实施例中,这样的过程还或替代地包括由在本技术中描述的各种实现的解码器
执行的过程,例如,利用被联合训练的至少两个神经网络对图像块进行滤波。
[0127]
作为进一步的示例,在一个实施例中,“解码”仅指熵解码,在另一实施例中,“解码”仅指差分解码,并且在另一实施例中,“解码”指熵解码和差分解码的组合。短语“解码过程”是否旨在具体地指代操作的子集或一般地指代更广泛的解码过程基于具体描述的上下文将是清楚的,并且相信是本领域技术人员所充分理解的。
[0128]
各种实现涉及编码。以与以上关于“解码”的讨论类似的方式,如在本技术中使用的“编码”可以包括例如对输入视频序列执行的以便产生编码比特流的过程的全部或部分。在各种实施例中,此类过程包括通常由编码器执行的一个或多个过程,例如,分割、差分编码、变换、量化和熵编码。在各种实施例中,这样的过程还或替代地包括由本技术中描述的各种实现的编码器执行的过程,例如,利用被联合训练的至少两个神经网络对图像块进行滤波。
[0129]
作为进一步的示例,在一个实施例中,“编码”仅指熵编码,在另一实施例中,“编码”仅指差分编码,而在另一实施例中,“编码”指差分编码和熵编码的组合。短语“编码过程”是否旨在具体地指代操作的子集或一般地指代更广泛的编码过程将基于具体描述的上下文而变得清楚,并且相信是本领域技术人员所充分理解的。
[0130]
注意,如本文所使用的语法元素,例如神经网络的系数,是描述性术语。因此,它们不排除使用其它语法元素名称。
[0131]
当附图被呈现为流程图时,应当理解,它还提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应的方法/过程的流程图。
[0132]
各种实施例涉及率失真优化。特别地,在编码过程期间,通常考虑速率和失真之间的平衡或折衷,通常给出计算复杂度的约束。率失真优化通常被公式化为最小化率失真函数,率失真函数是率和失真的加权和。存在不同的方法来解决率失真优化问题。例如,这些方法可以基于对所有编码选项的广泛测试,包括所有考虑的模式或编码参数值,在编码和解码之后对它们的编码成本和重构信号的相关失真进行完整评估。还可以使用更快的方法来节省编码复杂度,特别是基于预测或预测残差信号而不是重构信号来计算近似失真。还可以使用这两种方法的混合,例如通过仅对一些可能的编码选项使用近似失真,而对其他编码选项使用完全失真。其它方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中的任何一种来执行优化,但是优化不一定是对编码成本和相关失真两者的完整评估。
[0133]
本文描述的实现方式和方面可以在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单一形式的实现的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现也可以以其他形式(例如,装置或程序)来实现。例如,可以以适当的硬件、软件和固件来实现装置。所述方法可以在例如处理器中实现,所述处理器通常指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,例如计算机、蜂窝电话、便携式/个人数字助理(“pda”)和便于终端用户之间的信息通信的其他设备。
[0134]
对“一个实施例”或“实施例”或“一个实施方案”或“实施方案”以及其它变化形式的提及意味着结合实施例描述的特定特征、结构、特性等包含于至少一个实施例中。因此,在本技术中的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现中”或“在实现中”以及任何其他变型的出现不一定都指同一实施例。
[0135]
另外,本技术可以涉及“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一者或多者。
[0136]
此外,本技术可以涉及“访问”各种信息。访问信息可以包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一者或多者。
[0137]
另外,本技术可以指“接收”各种信息。如同“访问”一样,接收旨在是广义的术语。接收信息可以包括例如访问信息或(例如从存储器)检索信息中的一个或多个。此外,在诸如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,通常以一种方式或另一种方式涉及“接收”。
[0138]
应当理解,例如在“a/b”、“a和/或b”以及“a和b中的至少一者”的情况下,使用以下“/”、“和/或”以及“中的至少一者”中的任何一者旨在涵盖仅对第一列出的选项(a)的选择、或仅对第二列出的选项(b)的选择、或对两个选项(a和b)的选择。作为进一步的例子,在“a、b和/或c”和“a、b和c中的至少一个”的情况下,这样的措词旨在包括仅选择第一个列出的选项(a),或者仅选择第二个列出的选项(b),或者仅选择第三个列出的选项(c),或者仅选择第一个和第二个列出的选项(a和b),或者仅选择第一个和第三个列出的选项(a和c),或者仅选择第二个和第三个列出的选项(b和c),或者选择所有三个选项(a和b和c)。如本领域和相关领域的普通技术人员所清楚的,这可以扩展到所列的多个项目。
[0139]
此外,如本文所使用的,词语“信号”尤其是指向对应的解码器指示某物。例如,在某些实施例中,编码器用信号通知神经网络的系数中的特定一个。这样,在一个实施例中,在编码器侧和解码器侧使用相同的参数。因此,例如,编码器可以向解码器发送(显式信令)特定参数,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其它参数,则可以使用信令而不进行发送(隐式信令),以简单地允许解码器知道并选择特定参数。通过避免任何实际功能的传输,在各种实施例中实现了比特节省。应当理解,可以以各种方式来实现信令。例如,在各种实施例中,一个或多个语法元素、标志等被用于将信息用信号通知给对应的解码器。虽然前述内容涉及词语“信号”的动词形式,但是词语“信号”在本文中也可以用作名词。
[0140]
如对于本领域普通技术人员将显而易见的,实现可以产生被格式化以携带例如可以被存储或发送的信息的各种信号。该信息可以包括例如用于执行方法的指令,或者由所描述的实现之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流对载波进行调制。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路来传输。该信号可以存储在处理器可读介质上。
[0141]
我们描述了多个实施例。这些实施例的特征可以在各种权利要求类别和类型上单独提供或以任何组合提供。此外,实施例可以包括跨越各种权利要求类别和类型的单独或任意组合的以下特征、设备或方面中的一者或多者:
[0142]
·
利用至少两个神经网络对重构图像块进行滤波,其中,两个神经网络是被联合训练的;
[0143]
·
一种包括所描述的语法元素中的一者或多者或其变型的比特流或信号。
[0144]
·
一种比特流或信号,包括根据所描述的任何实施例生成的语法传达信息。
[0145]
·
在所述信令中插入语法元素,所述语法元素使得所述解码器能够以与编码器所使用的方式相对应的方式来适应环内和/或环外滤波。
[0146]
·
创建和/或传送和/或接收和/或解码包括所描述的语法元素或其变型中的一者或多者的比特流或信号。
[0147]
·
根据所述的任何实施例创建和/或传送和/或接收和/或解码。
[0148]
·
根据所描述的任何实施例的方法、过程、装置、存储指令的介质、存储数据的介质或信号。
[0149]
·
一种tv、机顶盒、蜂窝电话、平板电脑或执行根据所描述的任何实施例的环内和环外滤波处理的其他电子设备。
[0150]
·
一种tv、机顶盒、蜂窝电话、平板电脑或其他电子设备,其根据所描述的任何实施例执行环内和环外滤波过程,并且显示(例如,使用监视器、屏幕或其他类型的显示器)所得图像。
[0151]
·
一种tv、机顶盒、蜂窝电话、平板电脑或其他电子设备,其选择(例如,使用调谐器)信道以接收包括编码图像的信号,并且根据所描述的实施例中的任何一者执行环内和环外滤波处理。
[0152]
·
一种tv、机顶盒、蜂窝电话、平板电脑或其他电子设备,其通过空中接收(例如,使用天线)包括编码图像的信号,并且根据所描述的实施例中的任何一个执行环内和环外滤波处理。
[0153]
根据至少一个实施例的一般方面,呈现一种用于视频解码的方法,其包括:
[0154]
访问编码视频的图像块的第一重构版本;以及
[0155]
通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
[0156]
通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
[0157]
其中,所述第一神经网络和所述第二神经网络被联合训练。
[0158]
根据至少一个实施例的一般方面,呈现一种用于视频解码的设备,其包括被配置执行以下操作的一或多个处理器:
[0159]
访问编码视频的图像块的第一重构版本;以及
[0160]
通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
[0161]
通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
[0162]
其中,所述第一神经网络和所述第二神经网络被联合训练。
[0163]
在一实施例中,所述图像块的第一重构版本被用作附加输入以训练所述第二神经网络。
[0164]
在一实施例中,通过第一神经网络对所述图像块的所述第一重构版本进行滤波以形成将被用作参考的所述图像块的第二重构版本:
[0165]

通过初始神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图
像块的初始重构版本,所述初始重构版本将被用作所述第一神经网络和所述第二神经网络的输入;
[0166]
其中,所述初始神经网络被训练以优化客观和感知滤波。
[0167]
在一实施例中,第一神经网络的输出的中间表示被用作所述第二神经网络的输入以训练所述第二神经网络。
[0168]
根据至少一个实施例的一般方面,呈现一种用于编码视频数据的方法,其包括:
[0169]
访问编码视频的图像块的第一重构版本;以及
[0170]
通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
[0171]
通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
[0172]
其中,所述第一神经网络和所述第二神经网络被联合训练。
[0173]
根据至少一个实施例的一般方面,呈现一种用于编码视频数据的设备,其包括被配置成执行以下操作的一或多个处理器:
[0174]
访问编码视频的图像块的第一重构版本;以及
[0175]
通过第一神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的第二重构版本,所述第二重构版本将被用作参考,
[0176]
通过第二神经网络对所述图像块的所述第二重构版本进行滤波,以形成要被显示的所述图像块的第三重构版本,
[0177]
其中,所述第一神经网络和所述第二神经网络被联合训练。
[0178]
在一实施例中,所述图像块的第一重构版本被用作附加输入以训练所述第二神经网络。
[0179]
在一实施例中,通过第一神经网络对所述图像块的所述第一重构版本进行滤波以形成所述图像块的将被用作参考的第二重构版本包括:
[0180]

通过初始神经网络对所述图像块的所述第一重构版本进行滤波,以形成所述图像块的初始重构版本,所述初始重构版本将被用作所述第一神经网络和所述第二神经网络的输入;
[0181]
其中,所述初始神经网络被训练以优化客观和感知滤波。
[0182]
在一实施例中,使用所述图像块和所述图像块的第二重构版本之间的第一损失函数来训练第一神经网络。
[0183]
在一实施例中,第一损失函数是l1或l2范数。
[0184]
在一实施例中,在所述图像块和所述图像块的第三重构版本之间使用第二损失函数来训练第二神经网络。
[0185]
在一实施例中,使用生成对抗性网络来确定第二损失函数。
[0186]
在一实施例中,第一神经网络的输出的中间表示被用作所述第二神经网络的输入以训练所述第二神经网络。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜