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

基于长范围端对端深度学习的视频压缩的制作方法

2022-05-08 10:02:20 来源:中国专利 TAG:


1.本实施方案中的至少一个实施方案总体上涉及一种用于视频编码或解码的方法或装置,并且更具体地,涉及一种用于基于长范围端对端深度学习或深度神经网络高效地提供视频压缩和/或解压缩的方法或装置。


背景技术:

2.为了实现高压缩效率,图像和视频编码方案通常采用预测(包括运动向量预测)和变换以利用视频内容中的空间和时间冗余。一般来讲,帧内或帧间预测用于利用帧内或帧间相关性,然后对原始图像与预测图像之间的差异(通常表示为预测误差或预测残差)进行变换、量化和熵编码。为了重建视频,通过对应于熵编码、量化、变换和预测的逆过程对压缩数据进行解码。
3.对视频压缩技术的最近添加包括各种行业标准、参考软件的版本和/或文档,诸如由jvet(联合视频探索团队)组开发的联合探索模型(jem)和后续的vtm(多功能视频编码(vvc)测试模型)。其目的是进一步改进现有hevc(高效视频编码)标准。


技术实现要素:

4.通过本文所述的一般方面解决和处理现有技术的缺点和不足。
5.根据第一方面,提供了一种方法。该方法包括通过以下操作进行视频编码:将待编码区和一个或多个重建区域提供至运动估计器,以产生包括该待编码区的估计的双向运动场的输出;将估计的双向运动场提供至自动编码器,以产生包括表示编码区的比特流和重建的双向运动场的输出;将重建的双向运动场和一个或多个重建区域提供至深度神经网络,以产生包括待编码区的细化的双向运动场的输出;将细化的双向运动场和一个或多个重建区域提供至运动补偿器,以产生包括待编码区的重建版本的输出。
6.根据另一方面,提供了第二方法。该方法包括通过以下操作进行视频解码:将表示编码区的比特流提供至自动解码器,以产生包括重建的双向运动场的输出;将重建的双向运动场和一个或多个重建区域提供至深度神经网络,以产生包括细化的重建的双向运动场的输出;将细化的双向运动场和一个或多个重建区域提供至运动补偿器,以产生包括编码区的重建版本的输出,该输出对应于解码区。
7.根据另一方面,提供了一种装置。该装置包括一个或多个处理器,其中该一个或多个处理器被配置为根据其变体中的任一个变体实施用于视频编码的方法。根据另一方面,用于视频编码的装置包括:用于将待编码区和一个或多个重建区域提供至运动估计器以产生包括该待编码区的估计的双向运动场的输出的工具;用于将估计的双向运动场提供至自动编码器以产生包括表示编码区的比特流和重建的双向运动场的输出的工具;用于将重建的双向运动场和一个或多个重建区域提供至深度神经网络以产生包括待编码区的细化的双向运动场的输出的工具;以及用于将细化的双向运动场和一个或多个重建区域提供至运动补偿器以产生包括待编码区的重建版本的输出的工具。
8.根据另一方面,提供了另一种装置。该装置包括一个或多个处理器,其中该一个或多个处理器被配置为根据其变体中的任一个变体实施用于视频解码的方法。根据另一方面,用于视频解码的装置包括用于将表示编码区的比特流提供至自动解码器以产生包括重建的双向运动场的输出的工具;用于将重建的双向运动场和一个或多个重建区域提供至深度神经网络以产生包括细化的重建的双向运动场的输出的工具;以及用于将细化的双向运动场和一个或多个重建区域提供至运动补偿器以产生包括编码区的重建版本的输出的工具,该输出对应于解码区。
9.根据至少一个实施方案的另一个一般方面,运动补偿器基于细化的双向运动场和一个或多个重建区域执行可微分运动补偿。
10.根据至少一个实施方案的另一个一般方面,双向运动场包括两个单向运动场。
11.根据至少一个实施方案的另一个一般方面,运动校正由深度神经网络确定,该运动校正对称地应用于重建的双向运动场的两个单向运动场以产生细化的双向运动场。
12.根据至少一个实施方案的另一个一般方面,两个运动校正由深度神经网络确定,这两个运动校正分别应用于重建的双向运动场的两个单向运动场中的每个单向运动场以产生细化的双向运动场。
13.根据至少一个实施方案的另一个一般方面,两个细化的单向运动场分别基于1)第一参考帧的区域与后续帧的待编码区或待解码区之间的单向运动场,和2)后续帧中的待编码区或待解码区与下一后续帧的区之间的单向运动场。因此,双预测是双向预测(来自过去和未来)。
14.根据至少一个实施方案的另一个一般方面,多个帧在视频序列中形成图像组(gop)。
15.根据至少一个实施方案的另一个一般方面,通过在深度神经网络的输入处扩大一个或多个重建区域来执行将一个或多个重建区域提供给深度神经网络。
16.根据至少一个实施方案的另一个一般方面,残差被进一步提供给自动编码器或自动解码器。
17.根据至少一个实施方案的另一个一般方面,使用至少一对重建区域为深度神经网络提供训练过程。
18.根据至少一个实施方案的另一个一般方面,区域是块或帧中的一个。
19.根据至少一个实施方案的另一个一般方面,向自动编码器或自动解码器进一步提供用于对运动补偿预测区域进行加权的掩码。因此,该方法与高级预测兼容。
20.根据至少一个实施方案的另一个一般方面,通过dnn进一步细化用于对运动补偿预测区域进行加权的掩码。
21.根据至少一个实施方案的另一个一般方面,提供了一种设备,该设备包括根据解码实施方案中的任一个实施方案所述的装置;以及以下项中的至少一者:(i)天线,该天线被配置为接收信号,该信号包括视频块;(ii)频带限制器,该频带限制器被配置为将所接收到的信号限制为包括该视频块的频带;或(iii)显示器,该显示器被配置为显示表示视频块的输出。
22.根据至少一个实施方案的另一个一般方面,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包含根据所述编码实施方案或变体中的任一个实施方案或变体
生成的数据内容。
23.根据至少一个实施方案的另一个一般方面,提供了一种信号,该信号包括根据所述编码实施方案或变体中的任一个实施方案或变体生成的视频数据。
24.根据至少一个实施方案的另一个一般方面,将比特流格式化以包括根据所述编码实施方案或变体中的任一个实施方案或变体生成的数据内容。
25.根据至少一个实施方案的另一个一般方面,提供了一种计算机程序产品,该计算机程序产品包括指令,当由计算机执行程序时,该指令使计算机执行所述编码/解码实施方案或变体中的任一个实施方案或变体。
26.通过将结合附图阅读的示例性实施方案的以下详细描述,一般方面的这些和其他方面、特征和优点将变得显而易见。
附图说明
27.图1示出了视频编码器的实施方案的框图。
28.图2示出了视频解码器的实施方案的框图。
29.图3示出了显示编码树单元和编码树概念以表示压缩hevc图片的图示示例。
30.图4示出了显示编码树单元分成编码单元、预测单位和变换单元的图示示例。
31.图5示出了使用图像组(gop)的层次化编码的示例。
32.图6示出了根据实施方案的编码器或编码过程的示例。
33.图7示出了根据实施方案的用于运动场细化的解码器侧dnn的注释。
34.图8示出了根据实施方案的双向运动场细化的示例。
35.图9示出了根据实施方案的扩大运动补偿输入块的示例。
36.图10示出了根据实施方案的双向运动场细化的另一示例。
37.图11示出了根据实施方案的双向运动场细化的另一示例。
38.图12示出了根据实施方案的解码器或解码过程的示例。
39.图13示出了根据实施方案的整体训练过程的示例。
40.图14示出了根据实施方案的运动细化训练过程的示例。
41.图15示出了根据实施方案的具有高级预测的编码器或编码过程的示例。
42.图16示出了根据实施方案的具有高级预测的解码器或解码过程的示例。
43.图17示出了根据实施方案的具有高级预测和掩码细化的编码器或编码过程的示例。
44.图18示出了根据实施方案的具有高级预测并且考虑残差的编码器或编码过程的示例。
45.图19示出了根据实施方案的具有高级预测的考虑残差的解码器或解码过程的示例。
46.图20示出了根据实施方案的考虑残差的运动细化训练过程的示例。
47.图21示出了系统的框图,本实施方案的各方面可在该系统中实施。
具体实施方式
48.图1示出了示例性视频编码器100,诸如高效视频编码(hevc)编码器。图1还可以示
出其中对hevc标准进行改进的编码器或采用类似于hevc的技术的编码器,诸如通过jvet(联合视频探索团队)开发的vvc(多功能视频编码)编码器。
49.在本技术中,术语“重建”和“解码”可以互换使用,术语“编码”或“代码化(coded)”可以互换使用,并且术语“图像”、“图片”和“帧”可以互换使用。
50.在编码之前,视频序列可经过预编码处理(101),例如,将颜色变换应用于输入彩色图片(例如,从rgb 4:4:4到ycbcr 4:2:0的转换),或执行输入图片分量的重新映射,以便获得对压缩更具弹性的信号分布(例如,使用颜色分量中的一个颜色分量的直方图均衡化)。元数据可与预处理相关联,并且附加到比特流。
51.在hevc中,为了对一个或多个图片的视频序列进行编码,图片被分区(102)为一个或多个切片,其中每个切片可以包括一个或多个切片片断。将切片片断组织成编码单元、预测单位和变换单元。hevc规范区分“块”和“单元”,其中“块”处理样本阵列中的特定区域(例如,亮度、y),并且“单元”包括与块相关联的所有编码的颜色分量(例如,y、cb、cr或单色)、语法元素和预测数据的并置块(例如,运动向量)。
52.对于编码,将画面分区为具有可配置大小的正方形形状的编码树块(ctb),并且将连续的一组编码树块分组为切片。编码树单元(ctu)包含编码的颜色分量的ctb。ctb是分区为编码块(cb)的四叉树的根,并且编码块可被分区为一个或多个预测块(pb)并且形成分区为变换块(tb)的四叉树的根。对应于编码块、预测块和变换块,编码单元(cu)包括预测单元(pu)和树形结构集合的变换单元(tu),pu包括所有颜色分量的预测信息,并且tu包括每个颜色分量的残差编码语法结构。亮度分量的cb、pb和tb的大小适用于对应的cu、pu和tu。在本技术中,术语“块”可以用于指代ctu、cu、pu、tu、cb、pb和tb中的任一者。另外,“块”还可以用于指代h.264/avc或其他视频编码标准中所指定的宏块和分区,并且更一般地指代各种大小的数据阵列。
53.在示例性编码器100中,图片由编码器元件进行编码,如下所述。以cu为单位对待编码的图片进行处理。使用帧内模式或帧间模式对每个cu进行编码。当cu以帧内模式编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)帧内模式或帧间模式中的哪一者用于对cu进行编码,并且通过预测模式标志来指示帧内/帧间决定。通过从原始图像块减去(110)预测块来计算预测残差。
54.然后对预测残差进行变换(125)和量化(130)。对经量化的变换系数以及运动向量和其他语法元素进行熵编码(145),以输出比特流。编码器也可跳过变换,并基于4x4 tu对未变换的残余信号直接应用量化。编码器也可绕过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。在直接pcm编码中,不应用预测并且将编码单元样本直接编码到比特流中。
55.编码器对编码块进行解码以提供用于进一步预测的参考。对量化的变换系数进行去量化(140)和逆变换(150)以解码预测残差。组合(155)经解码的预测残差和预测块,重建图像块。向重建画面应用环路滤波器(165)以执行例如解块/sao(取样自适应偏移)滤波以减少编码伪影。经滤波的图像存储在参考图片缓冲器(180)中。
56.图2示出了示例性视频解码器200(诸如hevc解码器)的框图。在解码器200中,比特流由解码器元件进行解码,如下所述。视频解码器200通常执行与如图1所描述的编码道次互逆的解码道次,解码道次执行视频解码作为编码视频数据的一部分。图2还可以示出其中
对hevc标准进行改进的解码器或采用类似于hevc的技术的解码器,诸如vvc解码器。
57.具体地,解码器的输入包括视频比特流,该视频比特流可由视频编码器100生成。首先对比特流进行熵解码(230)以获得变换系数、运动向量、图片分区信息和其他编码的信息。图片分区信息指示ctu的大小以及将ctu划分成cu(在适用时可能划分成pu)的方式。因此,解码器可以根据解码的图片分区信息将图片划分(235)为ctu,并且将每个ctu划分为cu。对变换系数进行去量化(240)和逆变换(250)以对预测残差进行解码。
58.组合(255)经解码的预测残差和预测块,重建图像块。可从帧内预测(260)或运动补偿预测(即帧间预测)(275)获得(270)预测块。在双预测的情况下,两个运动补偿预测可以与加权和组合。向重建图像应用环路滤波器(265)。经滤波的图像存储在参考图片缓冲器(280)中。
59.经解码的图片还可经过解码后处理(285),例如,逆颜色变换(例如,从ycbcr 4:2:0到rgb 4:4:4的变换)或执行在预编码过程(101)中执行的逆重新映射过程的逆重新映射。解码后处理可使用在预编码处理中导出并且在比特流中发信号通知的元数据。
60.在hevc视频压缩标准中,图片被划分为所谓的编码树单元(ctu),编码树单元的大小通常为64
×
64、128
×
128或256
×
256像素。每个ctu由压缩域中的编码树表示。如图3所示,这是ctu的四叉树划分,其中每个叶称为编码单元(cu)。然后,每个cu被给出一些帧内或帧间预测参数(例如,预测信息)。为此,在空间上将其分区为一个或多个预测单元(pu),每个pu被分配一些预测信息。如图4所示,在cu水平上分配帧内或帧间编码模式。
61.本公开的应用领域为图像和视频压缩/解压缩和深度神经网络(dnn)。与现有的图像/视频压缩系统相比,其目的在于提高压缩效率。
62.更具体地说,该域是视频序列的编码/解码,使用时间层次化的gop(图像组)结构,类似于传统的视频编解码(典型的随机访问gop结构,参见例如“高效视频编码(hevc)标准”,itu-t h.265,2014年10月)。将视频序列划分为若干gop,其中可以使用已经解码的图片来预测gop内的每个图像(要编码的当前帧的过去和未来)。
63.本发明提出在该编码方案内引入使用深度学习或dnn(深度神经网络)以提高编码效率。例如,对网络进行端对端训练,但使用编码器侧信息。
64.深度神经网络(dnn)已经在各种领域(诸如计算机视觉、语音识别、自然语言处理等)中表现出先进的性能。然而,这种性能是以巨大的计算成本为代价的,因为dnn往往有大量的参数,通常达到数百万,有时甚至数十亿。这导致了非常高的推理复杂性(将训练的dnn用于测试数据以进行推理的计算成本)。这种高推理复杂性的主要挑战是将dnn的性能带到有资源限制(例如,在电池大小、计算能力和存储器容量方面)的移动或嵌入式设备上。
65.基于深度学习的压缩系统采用机器学习技术,诸如经过训练的卷积网络,以便自动发现输入视频的输入图像或视频帧的内部结构或表征。与硬编码技术相反,机器学习技术使得能够自动发现结构,这使得能够更有效地表征输入图像。即,与常规技术相比,通过深度学习技术编码的输入图像实现了改善的重建质量和改善的压缩率。例如,一个或多个模型可以基于机器学习技术训练一次,但经训练的模型可以应用于输入图像,而不考虑输入图像的尺寸和所需的目标比特率,并且响应于可用于压缩的比特的增加,该一个或多个经训练的模型的图像重建质量逐步提高。在基于压缩方案的深度学习中,自动编码器定义为具有两个部分的网络:第一部分(称为编码器)采用输入,并对其进行处理以便产生表征
(与输入相比通常具有较低的尺寸或熵)。第二部分使用该潜在表征并旨在恢复原始输入。
66.本发明解决的问题是能够在视频编码方案中使用dnn用于长范围运动估计,从而允许时间层次化编码。在常规视频编解码器中,利用长范围(例如,使用大小为16或32帧的gop)运动补偿改善压缩性能。实际上,图片范围越长(假设良好的预测质量),可以较少的比特率压缩并处理更多的视频序列。
67.在先前和现有的压缩系统中,基于dnn的运动估计(或插帧)仅应用于短运动范围。例如,在“学习视频压缩”(oren rippel,sanjay nair,carissa lew,steve branson,alexander g.anderson,lubomir bourdev,https://arxiv.org/pdf/1811.06981.pdf)中,提出了基于端对端dnn的压缩方案,但仅使用短范围运动估计(即,当前帧与前一帧之间的运动)。在相同的制品中,使用先前可用信息(图像重建、运动场或甚至潜在变量),联合优化运动场和残差并发送到解码器,但是所提出的方案仍然仅依赖于短范围运动,因为其基于dnn的方法不处理大运动。此外,所提出的相同系统不允许使用双向帧,以便减少延迟。
68.在最近的视频编解码器(例如,vvc/h266)中,已经引入解码器侧运动细化(参见例如“多功能视频编码(草案5)”(jvet-n1001,第14次会议:日内瓦,瑞士,19-27 2019年3月)中解码器侧运动向量细化(dmvr)或甚至双向光流(bdof)过程)。该技术允许在编码器发送的双向运动场的解码器侧自动细化。然而,在这种情况下,对运动场的编码和细化是分别完成的。
69.端对端方法的另一个潜在问题是:结果完全依赖于输入(输入图像),并且很难控制输出(例如,运动场)。
70.因此,本实施方案通过以下方式解决现有压缩系统的上述问题和缺陷:
[0071]-通过考虑编码器侧运动场编码中的解码器侧细化,在过程中并入信号运动场(编码器侧信息);
[0072]-基于插帧和已知运动训练运动场编码网络;
[0073]-使用解码器侧运动细化和自动编码的运动场训练完整的帧间预测;以及/或者
[0074]-在方案中添加残差编码以允许完整的端对端优化。
[0075]
在下文中,我们假设使用时间层次化方法对视频序列进行编码,类似于hevc中的随机接入结构。作为一般示例,图5示出了正在编码的5帧的gop(图像组)。首先,对帧0(i0)进行编码,然后使用来自帧0(i0)的数据对帧4(i4)进行编码,然后使用来自过去(帧0)和未来(帧4)的数据对帧2(i2)进行编码,以此类推。
[0076]
在以下示例中,我们假设gop的大小为3,包括帧0(i0)、帧1(i1)和帧2(i2),但原理是适用于任何大小的gop。在此示例中,对帧0(i0)进行编码,然后使用来自帧0(i0)的数据对帧2(i2)进行编码,然后使用来自过去(帧0)和未来(下一后续帧2)的数据对后续帧1(i1)进行编码。本领域技术人员将容易地将这个示例延伸到图5的gop或任何大小的gop,其中使用先前解码的帧0和帧4对帧、帧3进行编码也将遵循相同的过程和/或架构。
[0077]
在下文中,将使用以下符号:
[0078]-x:原始数据
[0079]-重建数据(完全解码过程后),通常是预测 残差
[0080]-预测数据(使用已解码数据)
[0081]-细化数据(使用已解码数据)
[0082]-ik:时间k的图像
[0083]-mvi→j:从时间i到时间j的运动场(使用mvi→j和ii进行运动补偿,给出预测ij)
[0084]
本公开的一个主要想法是使用与解码器侧dnn(深度神经网络)联合的编码/解码的编码器侧计算的运动场,预测2帧或多帧。整个过程表示为dnn:
[0085]-具有瓶颈熵的自动编码器(旨在压缩输入)以对运动场进行编码(参见例如“端对端优化的图像压缩”,johannes ball
é
,valero laparra,eero p.simoncelli,https://arxiv.org/abs/1611.01704,用于压缩目的的自动编码器的示例)。
[0086]-用于运动场细化的dnn。
[0087]-可微分运动补偿(参见例如“空间变换网络”,max jaderberg,karen simonyan,andrew zisserman,koray kavukcuoglu,https://arxiv.org/abs/1506.02025)。
[0088]
可以无监督(给出三联体的连续图像)并联合地训练整个链。主要优点是运动场编码考虑了进一步的解码器侧细化(如下文在训练部分中所述),并且运动场细化不受图像中的大运动限制。
[0089]
我们首先提出简单的框架,然后本文对该框架进行额外的改进。
[0090]
相关联的编码过程/编码器
[0091]
图6示出了根据实施方案的用于对帧i1进行编码600的整体过程/框图。首先,在步骤601中,2个重建帧(因此在解码器侧可用)和以及待编码的原始帧i1被输入到编码器侧运动估计器mf。根据变体,估计器mf是双向块匹配估计器。估计器mf的输出是表示重建帧和原始帧i1之间的运动和重建帧和原始帧i1之间的运动的运动信息。因此,估计器mf的输出称为估计的双向运动场。通常,在gop示例中,重建帧是原始帧i1的前一帧,重建帧是原始帧i1的后续帧,因此,运动信息是双向运动信息(来自过去和未来的运动)。根据实施方案,双向运动场包括两个单向运动场mv0→1以及mv2→1。然而,本原理不限于字面的双向预测,而且更普遍地与双预测兼容。例如,根据通常用于低延迟压缩的另一示例,重建帧和重建帧两者是原始帧i1的前一帧。估计器mf的输出是表示基于块的运动(包括自适应块大小)的运动信息,因此在帧级称为运动场。然而,本原理更普遍地与任何运动表示兼容,诸如由块级运动向量表示的基于块的运动、由块级运动场表示的子块运动信息、上至逐像素(up-to-pixel wise)运动信息。
[0092]
估计器输出双向运动场(mv0→1,mv2→1),并且然后使用自动编码器在步骤602中自动编码该运动场,例如,就像上文提及的“端对端优化的图像压缩”中描述的那样。生成的比特流将该运动场传输到解码器上。自动编码器的解码器部分生成重建的运动场在步骤603中,然后重建的运动场与已经重建的帧和一起使用,用dnn以产生细化的双向运动场(标注为)(参见下面的详细信息)。
[0093]
在步骤604中,使用重建和细化的运动场以及已经重建的帧执行运动补偿以产生
当前帧(i1)的预测。在这个简单示例中,没有添加附加残差,使得预测变为重建(i1)(参见下文对于包括残差的示例性过程)。在与训练阶段更具体相关的实施方案中,使用可微分运动补偿,例如类似于上文已经提到的“空间变换网络”中描述的那样。通过可微分运动补偿,本领域技术人员可理解其存在导数函数的运动补偿函数。为简单起见,我们在此假设预测是2个预测的平均值(参见下面的另选实施方案)。重建帧(i1)然后可用作重建帧以及用于对gop的后续帧进行编码。如先前所解释的,dnn运动细化和自动编码器的联合训练允许在帧中执行长范围运动估计。此外,基于dnn的双向运动场细化在压缩方案的解码器侧中实施,并且以相同方式有利地在编码过程/编码器或对应的解码过程/解码器中实施(将在下文描述)。
[0094]
在变体中,我们假设待编码的图像逐区(通常为块)提供给整个dnn。例如,每个块被独立地发送至同一网络。在另一变体中,将包括多个块的整个图像提供给dnn。根据变体的实施方案,区域是块或帧中的一个。
[0095]
双向运动细化的示例
[0096]
我们还提出可能的基于解码器侧dnn的双向运动场细化变体。图7示出了该过程的注释和输入/输出:输入是2个图像,2个单向运动场(从第一图像到中间图像;最后图像到中间图像)。输出是细化的单向运动场。
[0097]
示例1
[0098]
如图8所示,在此变体中,为简单起见我们假设dnn是逐块应用的。使用每个输入块和相关联的运动场(在基于块的方法的情况下,运动场仅仅是单一运动向量),每个输入块被运动补偿。
[0099]
考虑到输入运动向量的不精确性,输入块被放大n个像素。例如,如果输入块是64
×
64块,则块被放大到96
×
96(16像素边界)以创建运动补偿块(关于输入和输出块大小的详情,请参见下面的示范性训练过程)。
[0100]
在图9中,我们示出了正在处理的当前块b。与每个输入块相关联的运动向量用于对块进行运动补偿,同时放大块大小:(resp.)是使用mv0→1和图像i0放大并进行运动补偿的块b。然后将这2个块提供给上述dnn。
[0101]
dnn输出是运动校正δmv0→2(在已经运动补偿的块上),以对称方式施加在每个单向运动场上。根据实施方案,运动校正δmv0→2是按1/2和-1/2缩放的偏移,所得运动校正δmv0→1和δmv2→1分别添加至输入运动场mv0→1和mv2→1(实际上重建的运动场)以产生细化的双向运动场注意,虽然输入运动场是单一向量(即,对于块的每个像素的均匀运动场),但是输出是基于像素的运动场。
[0102]
根据实施方案,输入运动场具有像素精度,以便避免在运动补偿过程期间输入运动补偿块的图像插帧。
[0103]
示例2
[0104]
图10示出了另一变体。在此变体中,dnn还获得编码器侧运动场mv0→1和mv2→1作为输入,允许处理子块运动场作为输入。使用每个输入块和相关联的运动场(在基于块的方法的情况下,运动场仅仅是单一运动向量),每个输入块被运动补偿。
[0105]
示例3
[0106]
图11示出了另一变体。在此变体中,双向运动场通过单独计算每个单向运动场获得:对于每个输入图像和相关联的运动场mv0→1、mv2→1,分别计算两个运动校正δmv0→1和δmv2→1。在这两种情况下,网络都是相同的,仅是输入的顺序不同(参见下文的示例性训练阶段)。然后所得的运动校正δmv0→1和δmv2→1分别添加到输入单向运动场mv0→1和mv2→1(实际上重建的单向运动场以产生细化的双向运动场根据该变体,每个单向运动获得一个运动校正。
[0107]
相关联的解码过程/解码器
[0108]
在图12中,我们示出了与先前描述的过程相关联的示例性解码过程/解码器1200。解码过程/解码器根据其变体中的任一个变体实施编码过程/编码器的解码器侧的步骤/模块。将比特流发送至自动解码器1202,该自动解码器是图6的自动编码器602的解码器部分,自动解码器产生重建的双向运动场如前所述,术语双向和双预测可以互换使用,并且术语运动场、运动向量和运动信息可以互换使用。在步骤1203中,使用dnn 1203(参见根据不同变体对解码器侧dnn 1203或603的上述描述),然后将重建的运动场与已经解码(或重建)的帧和一起使用,以产生细化的双向运动场(标注为使用重建和细化的运动场和已经解码的帧,执行运动补偿1204以产生当前帧的预测。在变体中,运动补偿1204是可微分运动补偿。在变体中,其中没有残余信息从编码器发送到解码器,预测帧是重建帧下文描述解码过程/解码器的变体实施方案。
[0109]
相关联的训练过程

整个网络
[0110]
整个dnn的训练过程的示例在图13中示出并在下文描述。对于一对重建图像(另选地,在训练期间可以使用原始图像)和给定初始运动场,损失l=||i
1-(i1)||1 λr被最小化,其中i1是待编码的原始帧。l1准则||.||1比l2准则更优选,因为需要最小化残余成本(见下文)。r参数由运动场自动编码器的速率的近似值给出,如上文已经提及的“端对端优化的图像压缩”中所述。对于给定的速率-失真权衡,λ参数是固定的。注意,在训练期间也需要选择其他参数(如自动编码器中的量化步骤)。根据变体实施方案,单独训练网络的每个部分(自动编码器和运动场细化)。运动场自动编码器通过使用直接针对输出运动场误差和运动场编码成本的损失来训练;使用给定运动输入和图像对来训练运动场细化,使当前帧的重建损失最小,并且然后两个网络一起进行微调。
[0111]
根据其他实施方案,可将任选的正则化项添加到该过程中(权重规范等)。
[0112]
如上所述,该过程由块执行,其中块具有均匀的初始运动场。另选地,可以根据运动场细化dnn类型使用非均匀初始运动场。网络的输出是基于像素的双向预测
[0113]
运动细化训练过程
[0114]
图14示出了上述运动细化网络的所有变体的示例性整体训练过程。根据实施方
案,对于每对输入图像和相关联的初始运动场,输出双向运动场用于创建双向预测该双向预测在最终损失中与原始图像一起使用i1。根据另一实施方案,通过直接使用地面真实运动双向场来训练监督网络。根据其他实施方案,在训练期间可以使用任选的正则化项。
[0115]
高级双向预测
[0116]
在以下示例中,主要过程与上述相同,仅描述了差异。
[0117]
相关联的编码过程/编码器
[0118]
图15示出了用于双向预测的示例性编码过程/编码器。在图15中,我们示出了更高级的过程,其中运动场不仅由2个单向运动场mv0→1、mv2→1构成,而且具有掩码(这里用m
02
表示),指示来自i0和来自i2的预测的相对权重:
[0119][0120]
掩码的值为二元的(0或1)或连续的(在0与1之间或在其他范围内,诸如[-0.25到1.25])。在当前示例中,在细化之前由运动估计器mf计算掩码(编码器侧计算)并且使用自动编码器发送至解码器。因此,向自动编码器进一步提供用于对运动补偿预测进行加权的掩码。
[0121]
在变体中,掩码值由块编码(即,掩码值在每个块上是均匀的)。在另一变体中,值是基于像素的。
[0122]
然后在细化过程中,使用掩码(编码或解码过程中的任一过程的解码器侧计算)。
[0123]
相关联的解码过程/解码器
[0124]
图16示出了用于双向预测的示例性解码过程/解码器。如图16所示,解码或解码器与前面提出的类似,只是解码掩码用于形成双向预测。
[0125]
附加示例
[0126]
图17示出了上述过程的变体,其中不仅运动场,而且掩码也在解码器侧被细化。假设基于块的掩码输入,则输出是基于像素细化的掩码。相关联的训练与上述的训练相似,因为最终损失没有改变(只有预测计算被掩码信息修改)。
[0127]
在下文中,主要过程与上文相同,仅详细描述了差异。
[0128]
相关联的编码过程/编码器
[0129]
图18示出了更高级的过程,在该过程中,整个网络还包括残差编码。将残差计算为预测和原始图像i1之间的差。然后将该残差自动编码并且与运动场一起在比特流中传输。
[0130]
在变体中,同一自动编码器用于将运动场和残差一起进行编码。
[0131]
相关联的解码过程/解码器
[0132]
图19示出了用于基于残差的重建的示例性解码过程/解码器。如图19所示,解码器与前面提出的类似,只是将解码的错误残差添加到预测。
[0133]
图20示出了根据实施方案的考虑残差的运动细化训练过程的示例。该训练过程与已经描述的过程类似,只是在损失中出现了新项,与残差的编码成本有关。然后损失表达
为:
[0134][0135]
其中rm是运动场的编码成本并且rr为残差之一。与每个网络相关联的量化步骤可以是独立固定,也可以是联合固定。
[0136]
对于训练过程,其他实施方案也是可能的。根据变体实施方案,单独训练网络的每个部分(自动编码器和运动场细化):运动场自动编码器通过使用直接针对输出运动场误差和运动场编码成本的损失来训练;使用给定运动输入和图像对来训练运动场细化,使当前帧的重建损失最小;残差自动编码器通过使用直接针对输入图像误差和图像编码成本的损失来训练;然后将所有网络一起进行微调。
[0137]
根据其他实施方案,将任选的正则化项添加到该过程中(权重规范等)。
[0138]
如上所述,该过程由块执行,其中块具有均匀的初始运动场。另选地,根据运动场细化dnn类型使用非均匀初始运动场。网络的输出是基于像素的双向预测
[0139]
基于上述过程,附加的其他变体也是可行的,例如,使用多于两个先前重建的帧作为输入。
[0140]
图21示出了在其中实现各种方面和实施方案的系统2000的示例的框图。系统2000可体现为包括下文所述的各个部件的设备,并且被配置为执行本文档中所述的一个或多个方面。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板电脑、数字多媒体机顶盒、数字电视机接收器、个人视频录制系统、连接的家用电器和服务器。系统2000的元件可单独地或组合地体现在单个集成电路(ic)、多个ic和/或分立部件中。例如,在至少一个实施方案中,系统2000的处理元件和编码器/解码器元件分布在多个ic和/或分立部件上。在各种实施方案中,系统2000经由例如通信总线或通过专用输入和/或输出端口通信地耦接到其他类似系统或其他电子设备。在各种实施方案中,系统2000被配置为实现本文档中所述的一个或多个方面。
[0141]
系统2000包括至少一个处理器2010,该处理器被配置为执行加载到其中的指令,以用于实现例如本文档中所述的各个方面。处理器2010可包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统2000包括至少一个存储器2020(例如,易失性存储器设备和/或非易失性存储器设备)。系统2000包括存储设备2040,该存储设备可以包括非易失性存储器和/或易失性存储器,包括但不限于eeprom、rom、prom、ram、dram、sram、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备2040可包括内部存储设备、附接存储设备和/或网络可访问的存储设备。
[0142]
系统2000包括编码器/解码器模块2030,该编码器/解码器模块被配置为例如处理数据以提供编码视频或解码视频,并且编码器/解码器模块2030可包括其自身的处理器和存储器。编码器/解码器模块2030表示可被包括在设备中以执行编码和/或解码功能的模块。众所周知,设备可包括编码模块和解码模块中的一者或两者。此外,编码器/解码器模块2030可实现为系统2000的独立元件,或者可结合在处理器2010内作为本领域技术人员已知的硬件和软件的组合。
[0143]
要加载到处理器2010或编码器/解码器2030上以执行本文档中所述的各个方面的程序代码可存储在存储设备2040中,并且随后被加载到存储器2020上以供处理器2010执
行。根据各种实施方案,处理器2010、存储器2020、存储设备2040和编码器/解码器模块2030中的一者或多者可在本文档中所述过程的执行期间存储各个项目中的一个或多个项目。此类存储项目可包括但不限于输入视频、解码的视频或部分解码的视频、比特流、矩阵、变量以及处理等式、公式、运算和运算逻辑的中间或最终结果。
[0144]
在若干实施方案中,处理器2010和/或编码器/解码器模块2030内部的存储器用于存储指令和提供工作存储器以用于在编码或解码期间需要的处理。然而,在其他实施方案中,处理设备外部的存储器(例如,处理设备可以是处理器2010或编码器/解码器模块2030)用于这些功能中的一个或多个功能。外部存储器可以是存储器2020和/或存储设备2040,例如动态易失性存储器和/或非易失性闪存存储器。在若干实施方案中,外部非易失性闪存存储器用于存储电视机的操作系统。在至少一个实施方案中,诸如ram的快速外部动态易失性存储器被用作用于视频编码和解码操作的工作存储器,诸如用于mpeg-2、hevc或vvc(多功能视频编码)。
[0145]
对系统2000的元件的输入可通过如框2005中所示的各种输入设备提供。此类输入设备包括但不限于:(i)接收例如由广播器通过空中
[0146]
发射的rf信号的rf部分,(ii)复合输入端子,(iii)usb输入端子,和/或(iv)hdmi输入端子。
[0147]
在各种实施方案中,框2005的输入设备具有如本领域已知的相关联的相应输入处理元件。例如,rf部分可与用于以下各项所需的元件相关联:(i)选择所需的频率(也称为选择信号,或将信号频带限制到一个频带),(ii)将所选择的信号下变频,(iii)再次频带限制到更窄频带以选择(例如)在某些实施方案中可称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择所需的数据包流。各种实施方案的rf部分包括用于执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。rf部分可包括执行这些功能中的各种功能的调谐器,这些功能包括例如下变频接收信号至更低频率(例如,中频或近基带频率)或至基带。在一个机顶盒实施方案中,rf部分及其相关联的输入处理元件接收通过有线(例如,电缆)介质发射的rf信号,并且通过滤波、下变频和再次滤波至所需的频带来执行频率选择。各种实施方案重新布置上述(和其他)元件的顺序,移除这些元件中的一些元件,和/或添加执行类似或不同功能的其他元件。添加元件可包括在现有元件之间插入元件,例如,插入放大器和模数变换器。在各种实施方案中,rf部分包括天线。
[0148]
此外,usb和/或hdmi端子可包括用于跨usb和/或hdmi连接将系统2000连接到其他电子设备的相应接口处理器。应当理解,输入处理(例如reed-solomon纠错)的各个方面可根据需要例如在单独的输入处理ic内或在处理器2010内实现。类似地,usb或hdmi接口处理的方面可根据需要在单独的接口ic内或在处理器2010内实现。将解调流、纠错流和解复用流提供给各种处理元件,包括例如处理器2010以及编码器/解码器2030,该处理元件与存储器和存储元件结合操作以根据需要处理数据流以呈现在输出设备上。
[0149]
系统2000的各种元件可设置在集成壳体内。在集成壳体内,各种元件可使用合适的连接布置1140(例如,本领域已知的内部总线,包括i2c总线、布线和印刷电路板)互连并且在这些元件之间传输数据。
[0150]
系统2000包括能够经由通信信道2090与其他设备通信的通信接口2050。通信接口
2050可包括但不限于被配置为通过通信信道2090发射和接收数据的收发器。通信接口2050可包括但不限于调制解调器或网卡,并且通信信道2090可例如在有线和/或无线介质内实现。
[0151]
在各种实施方案中,使用诸如ieee 802.11等wi-fi网络将数据流式传输到系统2000。这些实施方案的wi-fi信号通过适用于wi-fi通信的通信信道2090和通信接口2050接收。这些实施方案的通信信道2090通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以用于允许流式应用和其他云上通信。其他实施方案使用机顶盒向系统2000提供流式数据,该机顶盒通过输入块2005的hdmi连接递送数据。还有其他实施方案使用输入块2005的rf连接向系统2000提供流式数据。
[0152]
系统2000可将输出信号提供到各种输出设备,包括显示器2065、扬声器2075和其他外围设备2085。在实施方案的各个示例中,其他外围设备2085包括独立dvr、磁盘播放器、立体系统、照明系统和基于系统2000的输出提供功能的其他设备中的一个或多个。在各种实施方案中,控制信号使用诸如av.link、cec或其他通信协议的信令在系统2000与显示器2065、扬声器2075或其他外围设备2085之间传送,该其他通信协议使得能够在有或没有用户干预的情况下进行设备到设备控制。输出设备可通过相应接口2060、2070和2080经由专用连接通信地耦接到系统2000。另选地,输出设备可使用通信信道2090经由通信接口2050连接到系统2000。显示器2065和扬声器2075可与电子设备(例如,电视机)中的系统2000的其他部件集成在单个单元中。在各种实施方案中,显示接口2060包括显示驱动器,例如,定时控制器(t con)芯片。
[0153]
另选地,如果输入2005的rf部分是独立机顶盒的一部分,则显示器2065和扬声器2075可与其他部件中的一个或多个部件分开。在显示器2065和扬声器2075为外部部件的各种实施方案中,输出信号可经由专用输出连接(包括例如hdmi端口、usb端口或comp输出)提供。
[0154]
这些实施方案可通过由处理器2010或由硬件或由硬件和软件的组合实现的计算机软件执行。作为非限制性示例,这些实施方案可由一个或多个集成电路实现。作为非限制性示例,存储器2020可以是适合于技术环境的任意类型,并且可使用任何适当的数据存储技术实现,诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。作为非限制性示例,处理器2010可以是适合于技术环境的任意类型,并且可涵盖微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一者或多者。
[0155]
各种具体实施参与解码。如本技术中所用,“解码”可涵盖例如对所接收的编码序列执行的过程的全部或部分,以便产生适于显示的最终输出。在各种实施方案中,此类过程包括通常由解码器执行的一个或多个过程,例如熵解码、逆量化、逆变换和差分解码。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的解码器执行的过程。
[0156]
作为进一步的示例,在一个实施方案中,“解码”仅是指熵解码,在另一个实施方案中,“解码”仅是指差分解码,并且在又一个实施方案中,“解码”是指熵解码和差分解码的组合。短语“解码过程”是具体地指代操作的子集还是广义地指代更广泛的解码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。
[0157]
各种具体实施参与编码。以与上面关于“解码”的讨论类似的方式,如在本技术中
使用的“编码”可涵盖例如对输入视频序列执行以便产生编码比特流的全部或部分过程。在各种实施方案中,此类过程包括通常由编码器执行的一个或多个过程,例如,分区、差分编码、变换、量化和熵编码。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的编码器执行的过程。
[0158]
作为进一步的示例,在一个实施方案中,“编码”仅是指熵编码,在另一个实施方案中,“编码”仅是指差分编码,并且在又一个实施方案中,“编码”是指差分编码和熵编码的组合。短语“编码过程”是具体地指代操作的子集还是广义地指代更广泛的编码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。
[0159]
注意,本文所用的语法元素是描述性术语。因此,它们不排除使用其他语法元素名称。
[0160]
当附图呈现为流程图时,应当理解,其还提供了对应装置的框图。类似地,当附图呈现为框图时,应当理解,其还提供了对应的方法/过程的流程图。
[0161]
各种实施方案是指速率失真优化。具体地,在编码过程期间,通常考虑速率和失真之间的平衡或权衡,这常常考虑到计算复杂性的约束。速率失真优化通常表述为最小化速率失真函数,该速率失真函数是速率和失真的加权和。存在不同的方法解决速率失真优化问题。例如,这些方法可基于对所有编码选项(包括所有考虑的模式或编码参数值)的广泛测试,并且完整评估其编码成本以及重构信号在编码和解码之后的相关失真。更快的方法还可用于降低编码复杂性,特别是对基于预测或预测残差信号而不是重构的残差信号的近似失真的计算。也可使用这两种方法的混合,诸如通过针对可能的编码选项中的仅一些编码选项使用近似失真,而针对其他编码选项使用完全失真。其他方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中任一种来执行优化,但是优化不一定是对编码成本和相关失真两者的完整评估。
[0162]
本文所述的具体实施和方面可在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法讨论),讨论的特征的具体实施也可以其他形式(例如,装置或程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的处理器中实现,
[0163]
该处理设备包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“pda”)以及便于最终用户之间信息通信的其他设备。
[0164]
提及“一个实施方案”或“实施方案”或“一个具体实施”或“具体实施”以及它们的其他变型,意味着结合实施方案描述的特定的特征、结构、特性等包括在至少一个实施方案中。因此,短语“在一个实施方案中”或“在实施方案中”或“在一个具体实施中”或“在具体实施中”的出现以及出现在本文献通篇的各个地方的任何其他变型不一定都是指相同的实施方案。
[0165]
此外,本文档可提及“确定”各条信息。确定信息可包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一者或多者。
[0166]
此外,本文献可指“访问”各条信息。访问信息可包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一者或多者。
[0167]
此外,本文献可指“接收”各条信息。与“访问”一样,接收旨在为广义的术语。接收信息可包括例如访问信息或检索信息(例如,从存储器)中的一者或多者。此外,在诸如例如存储信息、处理信息、发射信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,“接收”通常以一种方式或另一种方式参与。
[0168]
应当理解,例如,在“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)。如对于本领域和相关领域的普通技术人员显而易见的是,这可扩展到所列出的尽可能多的项目。
[0169]
而且,如本文所用,词语“发信号通知”是指(除了别的以外)向对应解码器指示某物。例如,在某些实施方案中,编码器将多个参数中的特定一个参数发出。这样,在一个实施方案中,在编码器侧和解码器侧两者均使用相同的参数。因此,例如,编码器可将特定参数发射(显式信令)到解码器,使得解码器可使用相同的特定参数。相反,如果解码器已具有特定参数以及其他,则可在不发射(隐式信令)的情况下使用信令,以简单允许解码器知道和选择特定参数。通过避免发射任何实际功能,在各种实施方案中实现了位节省。应当理解,信令可以各种方式实现。例如,在各种实施方案中,使用一个或多个语法元素、标志等将信息发信号通知至对应解码器。虽然前面涉及词语“signal(发信号通知)”的动词形式,但是词语“signal(信号)”在本文也可用作名词。
[0170]
对于本领域的普通技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,可格式化信号以携带所述实施方案的比特流。可格式化此类信号例如为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对数据流编码并且用编码的数据流调制载体。信号携带的信息可以是例如模拟或数字信息。已知的是,信号可通过各种不同的有线或无线链路发射。信号可存储在处理器可读介质上。
[0171]
我们描述了多个实施方案。这些实施方案的特征可以单独提供或以任何组合形式提供。此外,实施方案可跨各种权利要求类别和类型单独地或以任何组合包括上述示例性特征、设备或方面中的一个或多个。
[0172]
在整个本公开中,还支持并考虑到各种其他广义以及特定的方面、实施方案和权利要求。例如,本技术中描述的各种方法和其他方面可用于修改视频编码器100和解码器200的模块(例如,运动补偿和估计模块(170、175和275)),如图1和图2中分别所示。此外,本发明方面不限于vvc或hevc,并且可应用于例如其他标准和推荐(无论是预先存在的还是未来开发的)以及任何此类标准和推荐的扩展(包括vvc和hevc)。除非另外指明或技术上排除在外,否则本技术中所述的方面可单独或组合使用。
再多了解一些

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

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

相关文献