本发明通常涉及数字视频信号处理,特别地,涉及用于对来自卷积神经网络的张量进行编码和解码的方法、设备和系统。本发明还涉及包括记录有用于使用视频压缩技术对来自卷积神经网络的张量进行编码和解码的计算机程序的计算机可读介质的计算机程序产品。
背景技术:
1、视频压缩是用于支持许多应用(包括用于发送和存储视频数据的应用)的普遍存在的技术。已开发了许多视频编码标准并且其他视频编码标准当前正在开发中。视频编码标准化的最新进展已导致形成被称为“联合视频专家组”(jvet)的组。该联合视频专家组(jvet)包括两个标准设置组织(sso)的成员,即:国际电信联盟(itu)的电信标准化部门(itu-t)的研究组16、问题6(sg16/q6),其还已知为“视频编码专家组”(vceg);以及国际标准化组织/国际电工协会联合技术协会1/小组协会29/工作组11(iso/iec jtc1/sc29/wg11),其还已知为“运动图片专家组”(mpeg)。
2、联合视频专家组(jvet)已开发了名为“通用视频编码”(vvc)的视频压缩标准。
3、卷积神经网络(cnn)是用于应对涉及机器视觉的用例等的新兴技术。cnn典型地包括许多层,诸如卷积层(包括全连接层)等,其中数据以“张量”的形式从一个层传递到下一层。在训练阶段中确定各层的权重,其中在训练阶段中,非常大量的训练数据被传递通过cnn,并且将所确定的结果与同训练数据相关联的地面真值(ground truth)进行比较。应用用于更新网络权重的处理(诸如随机梯度下降等),以迭代细化网络权重,直到网络以期望的准确度水平来进行。当卷积阶段具有大于1的“步幅(stride)”时,来自卷积的输出张量具有比相应的输入张量更低的空间分辨率。与输入张量相比,诸如“最大池化”(或“maxpool”)等的操作还减少了输出张量的空间大小。最大池化通过将输入张量分割成数据样本组(例如,数据样本的2×2组),并且从各组中选择最大值作为输出张量中相应值的输出,来产生输出张量。利用输入来执行cnn并且逐步地将输入变换为输出的处理通常被称为“推断”。
4、通常,张量具有四个维度,即:批量、通道、高度和宽度。当对视频数据进行推断时,大小为“一”的第一维度“批量”指示一次一个帧被传递通过cnn。当训练网络时,批量维度的值可以增加,使得根据预定的“批量大小”在更新网络权重之前多个帧被传递通过网络。多帧视频可以作为批量维度的大小根据给定视频的帧的数量而增加的单个张量被传递通过。然而,出于与存储器消耗和访问相关的实际考虑,对视频数据的推断通常基于帧来进行。“通道”维度指示给定张量的并发“特征图”的数量。高度和宽度维度指示cnn特定阶段的特征图的大小。通过cnn的通道计数根据网络架构而变化。取决于特定网络层中发生的子采样,特征图的大小也变化。
5、针对cnn的第一层的输入是图像或视频帧,该图像或视频帧通常被调整大小以与输入到第一层的张量的维度相符合。张量的维度取决于cnn架构,cnn架构通常具有与输入宽度和高度相关的一些维度以及另外的“通道”维度。
6、基于通道维度对张量进行切片会得到“特征图”集,之所以这么说,是因为张量的各切片与相应的输入图像具有某种关系,从而捕获诸如各种边缘类型等的属性。在离网络的输入更远的层,属性可能更抽象。通过将cnn使用特定输入进行任务的结果与所提供的地面真值进行比较来度量cnn的“任务性能”,其中地面真值通常由人类准备且被认为指示“正确”的结果。
7、一旦决定了网络拓扑,随着更多的训练数据变得可用,网络权重可以随时间而更新。也可以重新训练cnn的一部分,从而使网络的(一个或多于一个)其他部分的权重保持不变。在进行相对大量的乘法累加运算并且相对于存储器写入和读取大量的中间张量的情况下,cnn的整体复杂性往往很高。在一些应用中,cnn完全在“云”中被实现,这导致需要高且昂贵的处理能力。在其他应用中,cnn在边缘装置(诸如照相机或移动电话等)中被实现,这导致灵活性更低,但处理负荷更分散。新兴架构涉及将网络拆分成部分,其中一个部分在边缘装置中运行,另一个部分在云中运行。这种分布式网络架构可以称为“协作智能”。协作智能提供了诸如将来自网络的第一部分的部分结果对于若干不同的第二部分重用等的益处,也许各部分针对不同的任务进行了优化。协作智能架构引入了对张量数据的高效压缩的需求,以通过诸如wan等的网络进行发送。张量数据可以以压缩形式存储在云中的服务器上,或者作为部分处理后的数据存储在装置中,以稍后用于各种任务。
8、预料vvc将特别是随着视频格式的能力的增加(例如,具有更高的分辨率和更高的帧频)而解决针对甚至更高的压缩性能的持续需求、以及解决针对通过wan的服务递送(其中,带宽成本相对较高)的日益增长的市场需求。vvc可以在当代硅工艺中实现,并且在所实现的性能与实现成本之间提供可接受的折衷。实现成本可以被认为是例如硅面积、cpu处理器负荷、存储器利用率和带宽方面中的一个或多于一个方面。vvc标准的通用性的一部分在于可用于压缩视频数据的工具的广泛选择、以及vvc适合的应用的广泛范围。
9、视频数据包括图像数据的帧序列,各帧包括一个或多于一个颜色通道。通常,需要一个主颜色通道和两个辅颜色通道。主颜色通道通常被称为“亮度”通道,并且(一个或多于一个)辅颜色通道通常被称为“色度”通道。尽管视频数据通常在rgb(红-绿-蓝)颜色空间中显示,但该rgb颜色空间在三个相应分量之间具有高度相关性。编码器或解码器所看到的视频数据表示通常使用诸如ycbcr等的颜色空间。ycbcr将(根据传递函数映射到“亮度”的)辉度集中在y(主)通道中,并且将色度集中在cb和cr(辅)通道中。由于使用了去相关的ycbcr信号,亮度通道的统计信息与色度通道的统计信息明显不同。主要不同在于,在量化之后,与相应亮度通道块的系数相比,色度通道包含给定块的相对较少的有效系数。此外,可以以与亮度通道相比更低的速率(子采样)(例如,在水平方向上为一半且在垂直方向上为一半(已知为“4:2:0色度格式”))对cb和cr通道进行空间采样。4:2:0色度格式通常在(诸如互联网视频流式传输、广播电视和blu-raytm盘上的存储等的)“消费者”应用中使用。当仅亮度样本存在时,所得到的单色帧被称为使用“4:0:0色度格式”。
10、vvc标准指定“基于块”的架构,在该架构中,帧首先被分割成已知为“编码树单元”(ctu)的正方形区阵列。ctu通常占据相对大的区域,诸如128×128个亮度样本等。在使用vv标准时的其他可能的ctu大小是32×32和64×64。然而,各帧的右侧和下方边缘处的ctu的面积可能较小,其中发生隐式拆分以确保cb保持在帧中。与各ctu相关联的是用于亮度通道和色度通道这两者的“编码树”(“共享树”),或者各自用于亮度通道和色度通道的单独的树。编码树定义ctu的区域向一组块(也被称作“编码块”(cb))的分解。当使用共享树时,单个编码树指定用于亮度通道和色度通道这两者的块,在这种情况下,并置编码块的集合被称为“编码单元”(cu)(即,各cu具有用于各颜色通道的编码块)。以特定顺序处理cb以用于编码或解码。由于使用4:2:0色度格式,具有用于128×128个亮度样本区域的亮度编码树的ctu具有用于(与128×128个亮度样本区域并置的)64×64个色度样本区域的相应色度编码树。当单个编码树用于亮度通道和色度通道时,给定区域的并置块的集合通常被称为“单元”,例如上述cu、以及“预测单元”(pu)和“变换单元”(tu)。具有跨越4:2:0色度格式视频数据的颜色通道的cu的单个树得到相应亮度块的一半宽度和高度的色度块。当针对给定区域使用单独的编码树时,使用上述cb以及“预测块”(pb)和“变换块”(tb)。
11、尽管在“单元”和“块”之间存在上述区别,但是术语“块”可以用作帧的区域(area)或区(region)的通用术语,对于该区域或区,操作被应用于所有颜色通道。
12、对于各cu,生成帧数据的相应区域的内容(样本值)的预测单元(pu)(“预测单元”)。此外,形成了预测与在编码器的输入处看到的区域的内容之间的差(或“空间域”残差)的表示。各颜色通道中的差可以被变换和编码为残差系数序列,从而形成给定cu的一个或多于一个tu。所应用的变换可以是应用于残差值的各块的离散余弦变换(dct)或其他变换。变换被单独地应用(即,分两次进行二维变换)。首先通过对块中的各行样本应用一维变换来变换块。然后,通过对部分结果的各列应用一维变换来变换该部分结果,以产生基本上对残差样本去相关的变换系数的最终块。vvc标准支持各种大小的变换,包括各边的尺寸是2的幂的矩形块的变换。变换系数被量化用于熵编码到位流中。
13、vvc表征为帧内预测和帧间预测。帧内预测涉及使用正使用的帧中先前处理的样本以生成该帧中当前数据样本块的预测。帧间预测涉及使用从先前解码的帧中获得的样本块来生成帧中的当前样本块的预测。从先前解码的帧中获得的样本块根据运动向量而相对于当前块的空间位置偏移,该运动向量通常被应用滤波。帧内预测块可以是:(i)均匀样本值(“dc帧内预测”),(ii)具有偏移以及水平和垂直梯度的平面(“平面帧内预测”),(iii)具有在特定方向上应用的相邻样本的块的总体(“角度帧内预测”),或者(iv)使用相邻样本和所选择的矩阵系数的矩阵乘法的结果。通过将“残差”编码到位流中,可以在一定程度上校正预测块和相应输入样本之间的进一步差异。残差通常从空间域变换到频域,以在“主变换域”中形成残差系数,该残差系数可以通过应用“二次变换(secondary transform)”进一步变换,以在“二次变换域”中产生残差系数。根据量化参数对残差系数进行量化,导致解码器处产生的样本的重建准确度损失,但位流中的位率降低。图片序列可以根据使用帧内预测的图片以及使用帧内或帧间预测的图片的指定结构、以及对编码顺序中的在前图片的指定依赖性进行编码,该编码顺序可以与显示或递送顺序不同。“随机访问”配置得到周期性帧内图片,从而形成解码器开始解码位流的进入点。随机访问配置中的其他图片通常使用帧间预测,以根据指定深度的层级结构从显示或递送顺序中在当前图片之前和之后的图片预测其内容。使用显示顺序中在当前图片之后的图片来预测当前图片需要在给定图片的解码和给定图片的显示(以及从缓冲器的移除)之间进行一定程度的图片缓冲和延迟。
技术实现思路
1、本发明的目的是基本上克服或至少改善现有布置的一个或多于一个缺点。
2、本公开的一方面提供了一种从位流中解码张量的方法,所述方法包括:从所述位流中解码第一信息单元,所述第一信息单元与跨所述张量的通道的平均张量值相对应;从所述位流中解码第二信息单元,所述第二信息单元与所述张量的分解的分量相对应;从所述位流中解码第三信息单元,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;从所述位流中解码第四信息单元,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应;以及通过将针对各个通道的系数与所述平均张量值相乘并将所述张量的分解的分量与同所述张量的分解相关联的系数相乘来逐个通道地产生所述张量,其中,来自所述位流的所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
3、本公开的另一方面提供了一种将张量编码到位流中的方法,所述方法包括:对第一信息单元进行编码,所述第一信息单元与跨所述张量的通道的平均张量值相对应;对第二信息单元进行编码,所述第二信息单元与所述张量的分解的分量相对应;对第三信息单元进行编码,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;以及对第四信息单元进行编码,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
4、本公开的另一方面提供了一种非暂态计算机可读存储介质,其存储用于执行从位流中解码张量的方法的程序,所述方法包括:从所述位流中解码第一信息单元,所述第一信息单元与跨所述张量的通道的平均张量值相对应;从所述位流中解码第二信息单元,所述第二信息单元与所述张量的分解的分量相对应;从所述位流中解码第三信息单元,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;从所述位流中解码第四信息单元,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应;以及通过将针对各个通道的系数与所述平均张量值相乘并将所述张量的分解的分量与同所述张量的分解相关联的系数相乘来逐个通道地产生所述张量,其中,来自所述位流的所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
5、本公开的另一方面提供了一种用于从位流中解码张量的解码器,所述解码器被配置为:从所述位流中解码第一信息单元,所述第一信息单元与跨所述张量的通道的平均张量值相对应;从所述位流中解码第二信息单元,所述第二信息单元与所述张量的分解的分量相对应;从所述位流中解码第三信息单元,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;从所述位流中解码第四信息单元,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应;以及通过将针对各个通道的系数与所述平均张量值相乘并将所述张量的分解的分量与同所述张量的分解相关联的系数相乘来逐个通道地产生所述张量,其中,来自所述位流的所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
6、本公开的另一方面提供了一种非暂态计算机可读存储介质,其存储用于执行将张量编码到位流中的方法的程序,所述方法包括:对第一信息单元进行编码,所述第一信息单元与跨所述张量的通道的平均张量值相对应;对第二信息单元进行编码,所述第二信息单元与所述张量的分解的分量相对应;对第三信息单元进行编码,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;以及对第四信息单元进行编码,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
7、本公开的另一方面提供了一种用于将张量编码到位流中的编码器,所述编码器被配置为:对第一信息单元进行编码,所述第一信息单元与跨所述张量的通道的平均张量值相对应;对第二信息单元进行编码,所述第二信息单元与所述张量的分解的分量相对应;对第三信息单元进行编码,所述第三信息单元与所述张量的同所述第一信息单元相关的系数相对应;以及对第四信息单元进行编码,所述第四信息单元与所述张量的同所述第二信息单元相关的系数相对应,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的至少一个信息单元能够相对于其他信息单元中的至少一个信息单元独立地解码,并且各信息单元布置在多个二维样本阵列中。
8、还公开了其他方面。
1.一种从位流中解码张量的方法,所述方法包括:
2.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的全部信息单元能够相对于彼此独立地解码。
3.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元是水平布置的用于定义图片的宽度的子图片。
4.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元是水平布置的用于定义图片的宽度的子图片,以及所述第四信息单元是位于所述第一信息单元、所述第二信息单元和所述第三信息单元下方的跨越所述图片的宽度并延伸到所述图片的底部的子图片。
5.根据权利要求1所述的方法,其中,所述方法应用于多个张量,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元包含针对所述多个张量中的各张量的相应信息。
6.根据权利要求1所述的方法,其中,所述第三信息单元布置在二维样本阵列中,所述样本阵列的纵横比基于所述信息被调整为1:1或尽可能接近1:1。
7.根据权利要求1所述的方法,其中,所述第三信息单元布置在二维样本阵列中,所述样本阵列的纵横比基于所述信息被调整为2:1或尽可能接近2:1。
8.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码所用的子图片。
9.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码或高效视频编码所用的图块。
10.根据权利要求1所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码或高效视频编码所用的切片。
11.一种将张量编码到位流中的方法,所述方法包括:
12.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的全部信息单元能够相对于彼此独立地解码。
13.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元是水平布置的用于定义图片的宽度的子图片。
14.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元是水平布置的用于定义图片的宽度的子图片,以及所述第四信息单元是位于所述第一信息单元、所述第二信息单元和所述第三信息单元下方的跨越所述图片的宽度并延伸到所述图片的底部的子图片。
15.根据权利要求11所述的方法,其中,所述方法应用于多个张量,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元包含针对所述多个张量中的各张量的相应信息。
16.根据权利要求11所述的方法,其中,所述第三信息单元布置在二维样本阵列中,所述样本阵列的纵横比基于所述信息被调整为1:1或尽可能接近1:1。
17.根据权利要求11所述的方法,其中,所述第三信息单元布置在二维样本阵列中,所述样本阵列的纵横比基于所述信息被调整为2:1或尽可能接近2:1。
18.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码所用的子图片。
19.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码或高效视频编码所用的图块。
20.根据权利要求11所述的方法,其中,所述第一信息单元、所述第二信息单元、所述第三信息单元和所述第四信息单元中的各信息单元被布置为通用视频编码或高效视频编码所用的切片。
21.一种非暂态计算机可读存储介质,其存储用于执行从位流中解码张量的方法的程序,所述方法包括:
22.一种用于从位流中解码张量的解码器,所述解码器被配置为:
23.一种非暂态计算机可读存储介质,其存储用于执行将张量编码到位流中的方法的程序,所述方法包括:
24.一种用于将张量编码到位流中的编码器,所述编码器被配置为:
