掌桥专利:专业的专利平台
掌桥专利
首页

用于对深度神经网络进行编码/解码的系统和方法

文献发布时间:2023-06-19 19:32:07


用于对深度神经网络进行编码/解码的系统和方法

本公开的一个或多个实施方案的领域技术领域涉及数据处理的技术领域,如数据压缩和/或解压缩。例如,至少一些实施方案涉及关于大量数据的数据压缩/解压缩,如音频和/或视频流的至少一部分的压缩和/或解压缩,或如与深度学习技术有关的数据压缩和/或解压缩,如深度神经网络(DNN)的至少一些参数。

与现有的视频压缩系统诸如HEVC(HEVC是指高效视频编码,也称为H.265和MPEG-H第2部分,其在“ITU-T H.265国际电联电信标准化部门(10/2014),H系列:视听和多媒体系统,视听服务基础设施-移动视频的编码,高效视频编码,ITU-T H.265建议书”中进行描述)相比,或者与开发中的视频压缩系统诸如VVC(通用视频编码,由联合视频专家小组(JVET)开发的新标准)相比,至少一些实施方案涉及改进压缩效率。

为了实现高压缩效率,图像和视频编码方案通常采用预测(包括空间和/或运动向量预测)和变换来利用视频内容中的空间和时间冗余。一般来讲,帧内或帧间预测用于利用帧内或帧间相关性,然后对在原始图像与预测图像之间的差值(通常表示为预测错误或预测残差)进行变换、量化和熵编码。为了重构视频,通过对应于熵编码、量化、变换和预测的逆过程对压缩数据进行解码。

与现有的深度神经网络(DNN)压缩系统相比,至少一些实施方案涉及提高压缩效率,诸如一些压缩标准或草案标准,如目前由国际标准化组织开发的目前即将推出的用于多媒体内容描述和分析的神经网络标准ISO/MPEG7。

通常,在编码过程中,对DNN参数进行量化和熵编码以得到压缩数据。为了重构数据,对压缩数据进行解码,解码过程包括熵解码和逆量化。

发明内容

本发明原理能够通过提出一种用于对至少一个比特流中的数据进行编码或解码的方法和装置来解决一些已知压缩和/或解压缩方法的缺点中的至少一个缺点,数据是至少一个深度神经网络的至少一个层或子层的至少一个张量的一个或多个参数。要指出的是,与层相关联的参数的张量可以包括权重和/或偏差,即使在下文中为了简洁的目的有时简称为“权重”。

根据一个实施方案,提供了一种用于对至少一个深度神经网络的至少一个层的至少一个第一张量进行解码的方法。此类方法包括:响应于确定至少一个第一张量被分解为第二张量和第三张量,该第二张量和第三张量的参数被编码到比特流中,从比特流中解码第二张量和第三张量中的至少一者的大小,以及基于解码大小从比特流中解码第二张量和第三张量中的至少一者。

根据另一实施方案,提供了一种用于对至少一个深度神经网络的至少一个层的至少一个第一张量进行解码的装置。该装置包括一个或多个处理器,该一个或多个处理器被配置为:确定至少一个深度神经网络的至少一个层的至少一个第一张量被分解为第二张量和第三张量,该第二张量和第三张量的参数被编码到比特流中,从比特流中解码第二张量和第三张量中的至少一者的大小,基于解码大小从比特流中解码第二张量和第三张量中的至少一者。

根据另一实施方案,提供了一种方法,该方法包括将表示深度神经网络的至少一个层的至少一个第一张量的数据编码到比特流中。该方法包括:响应于确定至少一个第一张量被分解为第二张量和第三张量,对第二张量和第三张量中的至少一者的大小进行编码,对表示第二张量和第三张量中的至少一者的参数进行编码。

根据另一实施方案,提供了一种用于将表示深度神经网络的至少一个层的至少一个第一张量的数据编码到比特流中的装置,其中该装置包括一个或多个处理器,其中一个或多个处理器被配置用于确定至少一个第一张量被分解为第二张量和第三张量,响应于该确定,对第二张量和第三张量中的至少一者的大小进行编码,对第二张量和第三张量中的至少一者进行编码。

一个或多个实施方案还提供了一种计算机程序,该计算机程序包括指令,该指令在由一个或多个处理器执行时使该一个或多个处理器执行根据上述任一实施方案中的编码方法或解码方法。本发明实施方案中的一个或多个实施方案还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有用于根据上述方法对数据进行编码或解码的指令。一个或多个本发明实施方案还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有根据上述方法生成的码流。一个或多个本发明实施方案还提供了一种用于发送或接收根据上述方法生成的码流的方法和装置。

根据至少一个实施方案的另一个一般方面,提供了一种设备,该设备包括:根据解码实施方案中的任一实施方案的装置;以及以下项中的至少一者:(i)天线,该天线被配置为接收信号,该信号包括输入数据;(ii)频带限制器,该频带限制器被配置为将所接收的信号限制为包括该输入数据的频带;或(iii)显示器,该显示器被配置为显示表示视频块的输出。

虽然未明确描述,但本公开的设备可适于在其实施方案中的任一实施方案中执行本公开的方法。

虽然未明确描述,但与方法或与对应信号、设备和计算机可读存储介质相关的本发明实施方案能够以任何组合或子组合来使用。

附图说明

图1示出了通用的标准编码方案。

图2示出了通用的标准解码方案。

图3示出了可实现所述实施方案的典型处理器布置;

图4示出了使用本公开的编码方法的至少某些实施方案的DNN总体编码架构;

图5示出了使用本公开的编码方法的至少某些实施方案的DNN总体解码架构;

图6示出了根据本公开的一个实施方案的用于对编码到比特流中的DNN的张量进行解码的方法的示例;

图7示出了根据本公开的一个实施方案的用于将DNN的张量编码到比特流中的方法的示例。

图8示出了根据一个实施方案的包括表示深度神经网络的至少一个层的第一张量的数据的比特流的一部分的示例。

应当注意,附图例示了示例性实施方案,并且本公开的实施方案不限于所例示的实施方案。

具体实施方式

许多技术领域可涉及用计算机装置处理大量数据。此类处理可涉及数据压缩和/或数据解压缩,例如出于存储或传输此类数据的至少一部分的目的。包含大量数据的流的压缩和/或解压缩的示例可见于视频处理的技术领域中,或见于涉及深度学习技术的技术领域中。

作为示例性而非限制性目的,在下文中结合深度神经网络(DNN)详细描述本公开的实施方案。然而,很明显,本公开也可以应用于其他大量数据的压缩/解压缩,如在视频处理技术领域中。例如,本公开可以应用于通过深度学习算法从至少一个图像获得的张量的压缩/解压缩。

深度神经网络(DNN)已经在各种领域(诸如多媒体处理、计算机视觉、语音识别、自然语言处理等)中表现出先进的性能。然而,这种性能是以巨大的计算成本为代价的,因为DNN往往有大量的参数,通常达到数百万,有时甚至数十亿。

这可能导致例如非常高的推理复杂性。简而言之,推理是对DNN进行部署,而该DNN一旦经过训练,就用于对输入数据例如鉴于其分类进行处理。推理复杂性可定义为将经训练的DNN应用于输入数据以进行推理的计算成本。推理复杂性可定义为将经训练的DNN应用于测试数据以进行推理的计算成本。

因此,对于在涉及具有有限硬件和/或软件资源的电子设备的环境中使用DNN来说,这种高推理复杂性可能是重要的挑战,这些电子设备例如是具有如电池尺寸、有限计算能力和存储器容量等资源限制的移动设备或嵌入式设备。

深度神经网络由若干个层组成。层与例如可以在DNN的训练期间获得参数集相关联。这些参数(如权重和/或偏差)被存储为多维数组(本文中也称为“张量”)。在下文中,为了简单起见,术语“矩阵”有时可用来表示参数集(例如,给定层的参数)。然而,应当理解,本公开的方法的一些实施方案也可应用于具有多于二维的参数张量,诸如通常包含参数的4D张量的2D卷积层。DNN的大量参数可能需要用于在分布式环境中部署DNN(或包括DNN的解决方案)的大带宽。

本公开的至少一些实施方案适用于至少一个DNN(例如,预先训练的DNN)的至少一些参数的压缩和/或解压缩(解码)。实际上,压缩可促进至少一个DNN的参数的传输和/或存储。更准确地说,本公开的至少一些实施方案应用于与至少一个深度神经网络的至少一个层相关联的至少一个张量的参数的压缩。

根据本公开的实施方案,层(或子层)可以是不同类型。例如,在一些实施方案中,所有至少一个层可以是卷积层或全连接层,或者至少一个层可以包括至少一个卷积层和/或至少一个全连接层。

本公开的一些实施方案更具体地涉及包括或至少可以包括分解至少一个张量以便例如提高压缩效率的压缩解决方案,和/或涉及包括或至少可以包括重构至少一个张量的解码解决方案。经分解的至少一个张量可以是例如一个或多个DNN的待压缩的一个或多个层的至少一个张量。重构的至少一个张量可以是例如与一个或多个DNN的待压缩的一个或多个层的已被分解的至少一个张量形状相同的至少一个张量。

根据本公开的一些实施方案,可以通过使用低秩(LR)技术和/或低位移秩(LDR)技术来获得张量的分解。

当张量分解用于压缩权重的大张量时,产生至少两个较小的张量,并将其进一步压缩、量化和熵编码以在比特流内存储或传输。

作为非限制性示例,虽然一些实施方案可应用于非标准化技术中,但一些实施方案可用于DNN压缩/解压缩标准的上下文中,如即将推出的用于多媒体内容描述和分析的与神经网络的压缩表示有关的标准ISO/MPEG7,其在下文更简单地表示为MPEG NNR。

本公开的至少一些实施方案提出了语法结构以及用于分解张量并从多个解码张量重构张量的机制。

更准确地说,根据一些实施方案,当张量分解用于压缩权重的大张量时,可以产生至少两个较小的张量(并且输入到量化,例如量化的输出中的至少一些输出随后被编码)。

例如,在分解基于低秩(LR)的示例性实施方案中,低秩近似可以将权重的原始矩阵表示为以下乘积:

其中G

在解码器处,当使用这种压缩技术时可以设想两个选项:

-解码模型的推理的设备/具体实施支持此类分解。在这种情况下,解码器可以原样输出张量G和H。

-或者,推理引擎需要具有原始张量形状的原始图。在这种情况下,

需要执行重构(例如通过解码器)。

本公开的至少一些实施方案提供了用于使此类条件生效的语法以及用于以其原始形状重构张量的机制。实际上,发明人已经巧妙地注意到,还没有提出用于例如在解码模型时在解码器处从通过该张量的分解获得的张量重构张量的原始形状的解决方案。

例如,在MPEG NNR的当前规范草案中,当前假设是由分解原始张量产生的张量由解码器输出。

当如上所述推理引擎需要原始张量形状时,这可能是一个问题。

本公开发明的至少一些实施方案有助于解决该问题。要指出的是,本文详细描述的本公开的方法的实施方案可以在许多压缩解决方案中实现,并且不限于特定标准,即使至少一些实施方案可例如应用于一些压缩标准的上下文中,如由ISO/MPEG7开发的一些草案标准。

如上述等式(1)中所示,在张量W是2D矩阵的示例性实施方案中,在对G和H

在上述示例性实施方案中,LR分解可用于原始张量。然而,取决于实施方案或者取决于一个或多个DNN的张量,可以执行不同的分解。例如,在卷积或深度卷积层的张量的情况下,张量可以被重新整形为二维矩阵,从而实现LR/LDR方法。

本公开描述了用于允许重构张量的必要语法和过程。

值得注意的是,例如适于从一个或多个张量单元重构原始张量的本公开的一些实施方案提出一种机制,该机制涉及张量的缓冲器以保存先前解码的张量以便执行重构,例如(在以上结合等式(1)介绍的示例性使用情况中)先前解码的G和/或H矩阵以便执行W的重构。

在下文中,引入解码张量缓冲器(DTB),其可以在存储器中包含多个已经解码的张量。例如,在上述示例性实施方案中,当解码的张量G和H是针对给定层待解码的两个张量(G和H)中的第一个时,将解码的张量G和H添加到缓冲器。更准确地说,对于给定层,当张量H(相应地,张量G)还没有被解码时,将解码张量G(相应地,解码张量H)添加到缓冲器。

然后,当对相同层中的对应张量进行解码时,可以触发具有原始张量形状的张量的重构,并且可以释放DTB中所保存的张量所占用的存储器。

在本公开的至少一些实施方案中,一旦原始张量已经被分解为若干张量,则若干所得张量可以被单独地(换句话说独立地)编码和解码。

图4和图5分别概括地示出可在本公开的至少一些实施方案中使用的用于对至少一个DNN的至少一个层的至少一个张量的参数进行编码/解码的一般过程。图4的方法例如可以在编码设备(或编码器)中执行,并且图5的方法例如可以在解码设备(或解码器)中执行。

如图4所示,在编码器处,该方法可以包括获得(或获取)401与待被压缩的层相关联的张量(本文中也称为“原始张量”)的参数。例如可以通过从存储单元检索至少一个张量的参数或者通过经由通信接口从数据源接收参数来执行该获得。

在一些实施方案中,每个获得的张量可以被分解。

在其他实施方案中,如在图4的实施方案中,可以有条件地执行分解。实际上,作为示例,分解有时可能不适用。不能对例如一维数组的偏差执行张量分解。此外,在一些实施方案中,还可以考虑其他因素(如原始张量的编码成本)来确定是否将分解应用于张量。例如,可以将模式与张量和/或与张量的层或与包括张量的层的一个或多个层相关联(403)。如果适用的话,该模式的至少一个第一值可以表示要对张量执行的分解,和/或该模式的至少一个第二值可以表示在没有应用分解的情况下被处理的张量。

在图4的示例性实施方案中,该方法可以包括测试(402)分解是否可应用于输入张量,并且如果张量可以被分解(402),则测试(403)分解模式(例如,模式的第一值)是否被选择。

如果编码器(404)选择了分解模式,则该方法可以包括分解张量并且对所得到的张量进行编码(例如对张量G进行编码(405)并且对张量H进行编码(407))。

在图4的示例性使用情况中,在分解未被选择(分解模式未被选择)或不可应用的情况下,可以直接对输入张量进行编码(406)。

编码的输出被用于组成比特流。

可以针对若干输入张量,例如针对模型中的所有张量,迭代该过程以进行量化和/或编码(408)。

在一些实施方案中,该方法可进一步包括,在编码之前,通过利用神经网络中的固有冗余来减少神经网络的参数(或权重或偏差)的数量。例如,可以使DNN的至少一个层的参数的原始张量或由DNN的至少一个层的参数的原始张量的分解产生的张量变得稀疏。该减少是可选的,并且在一些实施方案中和/或对于一些层的一些张量可以被省略

编码可以包括至少一个张量(例如,由神经网络的层的张量的分解输出的张量,或者当不执行分解时的张量本身)的量化参数(如权重和偏差)以及量化信息的无损熵编码,以用较少数量的比特表示它们。

在一些实施方案中,当要编码DNN的若干层时,可以每层迭代地执行该方法,直到待编码的最后一层的参数的编码结束为止。

在一些实施方案中,如在图4的图示实施方案中,同一层的张量不需要被顺序地编码,并且可以被并行地编码或插入在其他层的其他张量之间。实际上,编码可以基于张量级别的单元,相同层的权重和偏差包含在相同或不同张量单元中(例如,如在即将推出的MPEGNRR草案中)。

图5示出了在解码侧对从比特流(例如通过已经根据图4描述的编码方法获得的比特流)解码的张量执行的对应处理。在图5的示例性实施方案中,张量首先被解析和识别(501),例如使用其单元标头和/或层参数集。例如,在下文中更详细地呈现的示例性语法可以使用由单元标头中的lps_layer_parameter_set_id引用的相关联的高级语法,该单元标头将指向正确的层参数集。根据图5,可以对张量有效载荷进行解码(502)。在图5的示例性实施方案中,其中分解是LR或LDR类型,如果解码张量是类型TENSOR_G或TENSOR_H(503)(在图中分别表示为G和H),则可以执行步骤505至508(见下文)。否则,如果它不是最后的解码张量(509),则可以从比特流访问下一个张量。在当前张量是类型TENSOR_G或TENSOR_H的情况下,在解码张量缓冲器中搜索属于相同层的对应张量。这可以通过寻找与指定与当前张量相同的层的标识符(如参考标识符“ref_id”)相关联的张量来完成。利用下面介绍的示例性语法,此类参考标识符(例如,“ref_id”)可以是来自张量单元标头的语法元素,其将张量单元映射到依赖于拓扑存储格式(例如,ONNX或NNEF)的唯一可识别的数据结构。

如果存在对应的张量,则从DTB获取该张量(505),并且使用当前张量和所获取的张量(507)来以原始张量(即,步骤401获得的张量)的形状重构张量(508)。要指出的是,在许多实施方案中,虽然具有与原始张量相同的大小,但是重构张量与原始张量不同。

如果对应张量不存在于DTB中,则方法500可包括将当前张量存储在DTB中以供将来使用(506)。

在任何情况下(换句话说,在已经对当前张量单元解码之后)(步骤509),该方法还可包括检查当前张量是否是比特流中的最后一个张量(509),并且如果是这种情况,则该方法输出模型,否则访问下一个张量单元。

在解码器处,如图5所示,解码可以包括一些逆操作(与编码器侧的操作相比)。例如,解码方法可以包括对输入二进制位进行解析/熵解码510以提取元数据和/或参数的量化形式。然后可以应用逆量化520以导出张量的参数的最终值。

当要解码(例如几个层的)若干张量时,可以执行方法500直到所有若干张量都被解码。

本公开的一些实施方案可以包括在编码器与解码器之间发送/接收信令信息。该信令信息在本公开中结合示例性的、非限制性的语法给出。为了便于解释,该示例性语法主要基于在示例性MPEG NNR草案标准(如用于多媒体内容描述和分析的神经网络压缩的N19225-工作草案4,国际标准化组织ISO/IEC JTC1/SC29/WG11,2020年4月)中使用的语法。

以下语法仅是不限制本公开的示例性语法。例如,用于语法元素的比特数是示例性实施方案。为了易于理解,在示例性语法中,添加了根据本公开的实施方案的以下标识符和子句,其中章节和表格的编号与MPEG-NNR的当前示例性工作草案保持一致。

利用该示例性语法,可以添加以下张量操作:

MatrixProd(array_name_1[],array_name_2[]),其返回array_name_1与array_name_2的矩阵乘积。

TensorReshape(array_name[],tensor_dimension[]),其返回具有指定tensor_dimension[]的经重整形的张量array_name[],而不改变其数据。

此外,提供了以下术语的定义:

二进制位:二进制字符串的一个比特。

二值化:用于语法元素的所有可能值的一组二进制字符串。

二值化过程:将语法元素的所有可能值映射到一组二进制字符串上的唯一映射过程。

二进制字符串:来自语法元素的二值化的语法元素的值的中间二进制表示。

比特流:形成编码单元和关联数据的表示的比特序列,从而形成一个或多个编码神经网络模型。

解码张量缓冲器(DTB):保持解码张量/单元以用于参考的缓冲器。

当对比特流的至少一部分进行解码时(简称为“解码过程”),可以利用示例性详细语法来应用以下条件:

·对NNR比特流的NNR单元进行解码所需的信息可以作为NNR比特流的一部分用信号通知。如果此类信息不是NNR比特流的一部分,则可以通过其他手段将其提供给解码过程(例如,解码所需但未在NNR比特流中用信号通知或携带的带外拓扑信息或参数)

·解码过程可以用类型为NNR_STR(见下表)的NNR单元启动。利用NNR_STR单元的接收,解码器可以重置其内部状态并且准备接收NNR比特流。先前NNR单元的存在和基数可以在一些子条款和/或附录中指定

·在解码处理启动时,缓冲器DTB被设置为空(DTB充溢度被设置为等于0)。

利用本文详细描述的示例性语法,下面的表引用不同的单元类型。上述NNR_STR指定NNR比特流的开始单元。

表NNR单元类型

根据本公开的一些实施方案,提出了在张量分解的情况下指定NNR张量类型。例如,结合示例性MPEG NNR草案标准,可以使用以下示例性语法:

6.2NNR分解标识符

利用本文详述的示例性语法,表可以指定张量分解情况下的NNR张量类型。

表NNR分解张量类型标识

张量输出

在解码器侧,在对单元标头(例如,具有示例性语法的nnr_compressed_data_unit_header)和压缩有效载荷进行解码之后,可以对每个NNR压缩有效载荷执行一次张量处理。

在详述的示例性实施方案中,当前张量的处理的输出可以指定如下:

-如果output_original_graph等于0或者如果lps_tensor_decomposition_flag等于0或者如果nnr_decomposition_tensor_type等于“TENSOR_OTHER”,则输出当前张量

-否则,如果不存在具有指定DTB中的相同层的标识符(例如ref_id)的张量,则将当前张量添加到DTB中。没有张量被输出。

-否则(当前nnr_decomposition_tensor_type指定类型为“TENSOR_G”或“TENSOR_H”的张量,并且存在具有指定DTB中相同层的标识符(例如ref_id)的张量),如上所述,调用以其原始形状进行的张量的重构,从而分别传递类型为“TENSOR_G”或“TENSOR_H”的当前张量,以及分别传递DTB中的类型为“TENSOR_H”或“TENSOR_G”的其对应张量。后者从DTB中删除。返回的张量被输出。

以“原始”形状重构张量

具有原始张量形状的张量的重构可以在对由原始张量的分解产生的所有张量进行解码之后执行。

例如,在原始张量已经被分解为张量G和张量H的实施方案中,如果对应的张量(例如,具有指定相同层的标识符(例如,ref_id)的张量)存在于DTB中,则重构可以在对张量(例如,类型为“TENSOR_G”或“TENSOR_H”的张量)进行解码之后发生,如上所述。

在本文描述的示例性语法中,该重构的输入可以包括

-类型为“TENSOR_H”的张量tensor_h[]

-与tensor_h[]的维度对应的数组tensor_dimensions_h[],如由来自对应的nnr_compressed_data_unit_header的其解码的语法tensor_dimensions所定义

-类型为“TENSOR_G”的张量tensor_g[]。

-与tensor_g[]的维度对应的数组tensor_dimensions_g[],如由其解码的语法tensor_dimensions所定义

-来自刚解码的张量标头的层参数集的值tensor_reconstruction_mode和tensor_reconstruction_additional_info。

在所描述的示例性实施方案中,该重构的输出是具有与原始张量相同形状(这里也称为原始形状)的当前张量array_w。根据本公开的一些实施方案,可以通过考虑张量的重构模式来计算当前张量array_w。在本文详述的示例性语法中,下表可用于指定比特流中张量的重构模式:

表1:重构模式的指定

当前张量array_w可以如下计算:

if(tensor_reconstruction_mode==NNR_FC)

array_w=MatrixProd(tensor_g,tensor_h)

else if(tensor_reconstruction_mode==NNR_CONV){

rank=tensor_dimensions_g[3]

wShape=[tensor_dimensions_g[0],tensor_dimensions_g[1],tensor_dimensions_g[2],tensor_dimensions_h[3]]

prod=MatrixProd(TensorReshape(g,[-1,rank]),TensorReshape(h,[rank,-1])

array_w=TensorReshape(prod,wShape)

}

else if(tensor_reconstruction_mode==NNR_DWCONV){

kernel=tensor_reconstruction_additional_info[0]

wShape=[kernel,kernel,-1,1]

array_w=TensorReshape(MatrixProd(g,h),wShape)

}

对于高级语法,利用示例性草案标准MPEG-NNR,可如下将一些元素添加到示例性草案标准的一些表中:

8.2.4.6NNR压缩数据单元标头语法

/>

其中

·nnr_layer_parameter_set_id指定例如用于使用中的压缩单元的lps_layer_parameter_set_id的值。unit_layer_parameter_set_id的值可在0至63的范围内,例如包括端值在内。

·nnr_decomposition_tensor_type指定在张量分解的情况下的张量类型,例如,如以上所定义。

8.2.5.2NNR模型参数集有效载荷语法

/>

其中

·mps_model_parameter_set_id提供MPS的标识符以供其他语法元素引用。mps_model_parameter_set_id的值可设置在0至15的范围内,包括端值。

·decomposition_flag等于1指定张量分解被应用于模型的至少一个层的至少一个张量。

·output_original_graph等于1指定当使用张量分解时解码器将权重的张量以其原始形状输出。

·mps_max_dec_tensor_buffering_minus1 plus 1以张量存储缓冲器为单位指定NNR模型的解码张量缓冲器的最大所需大小。mps_max_dec_tensor_buffering_minus1的值可设置在0至63的范围内。

8.2.5.3NNR层参数集单元有效载荷语法

/>

其中

·lps_model_parameter_set_id指定活动LPS的mps_model_parameter_set_id的值。lps_model_parameter_set_id的值可设置在0至15的范围内,包括端值。

·lps_layer_parameter_set_id提供LPS的标识符以供其他语法元素引用。lps_layer_parameter_set_id的值可设置在0至63的范围内,包括端值。

·lps_tensor_decomposition_flag等于1指定张量分解用于该层。

·tensor_reconstruction_mode指定用于从如上定义的分解解码张量以当前张量的原始形状重构当前张量的模式。

·tensor_reconstruction_additional_info_counts指定执行分解张量的重构所需要的参数的数量

·tensor_reconstruction_additional_info[i]指定重构分解张量可能需要的参数数组。(例如,在深度卷积层的情况下,tensor_reconstruction_additional_info_counts可以被设置为1,并且tensor_reconstruction_additional_info[0]指定卷积的内核大小)。

变型

上面已经详细描述了一些示例性实施方案。本公开还包括上述实施方案的许多变型。

例如,本公开的一些实施方案可以涉及以下变型

第一变型:不具有output original graph的型式

根据第一变型,可以省略变量output_original_graph(上面介绍的)。在该变型中,重构取决于topology_storage_format变量。关于以上介绍的示例性NNR表,表“NNR模型参数集有效载荷语法”可因此被修改(因为不需要变量output_original_graph)。

结合MPEG NNR标准,利用本文详细描述的示例性语法,从而产生下表

8.2.5.2NNR模型参数集有效载荷语法

对于重构方法,以下适用:

张量输出

在对单元标头nnr_compressed_data_unit_header和压缩有效载荷进行解码之后,每个NNR压缩有效载荷可以调用一次该过程。

当前张量的输出可以被指定如下:

-如果lps_tensor_decomposition_flag等于0或nnr_decomposition_tensor_type等于“TENSOR_OTHER”,或者topology_storage_format指定支持使用分解矩阵进行推理的拓扑,则输出当前张量

-否则,如果在DTB中没有具有相同“ref_id”的张量,则将当前张量与其“ref_id”一起添加到DTB中。没有张量被输出。

-否则(当前nnr_decomposition_tensor_type指定类型为“TENSOR_G”或“TENSOR_H”的张量,并且存在具有相同“ref_id”的张量),如上所述,调用以其原始形状进行的张量的重构,从而分别传递类型为“TENSOR_G”或“TENSOR_H”的当前张量,以及分别传递DTB中的类型为“TENSOR_H”或“TENSOR_G”的其对应张量。后者从DTB中删除。返回的张量被输出。

利用本文详细描述的示例性语法,可以如下所示(例如在章节8.3.2.3.4中)定义topology_storage_format变量:

8.3.2.3.4NNR拓扑单元标头语义

topology_storage_format指定所存储的神经网络拓扑信息的格式,如下所述:

第二变型:分解性能图

在第二变型中,可以在信令中提供关于分解过程的性能的信息。例如,此类信息可以表示在分解张量与其原始版本之间的不同均方误差(MSE)值与所得神经网络(NN)推理精度之间的映射。

可以针对NN的输出的不同方面或特性分别提供所得的精度。对于分类器NN,除了考虑所有类的总体精度之外,每个MSE值(例如,阈值)可以被映射到每个类的单独精度。在一些实施方案中,可以基于神经网络输出顺序(即,在训练期间指定的顺序)来对类进行排序。

结合MPEG NNR标准,利用本文详细描述的示例性语法,可以使用下表

8.2.5.2NNR模型参数集有效载荷语法

/>

其中Decomposition_performance_map()可例如定义如下:

其中:

·decomposition_performance_map()指定在分解张量与其原始版本之间的不同均方误差(MSE)阈值与所得NN推理精度之间的映射。针对NN的输出的不同方面或特性分别提供所得的精度。对于分类器NN,除了考虑所有类的总体精度之外,每个MSE阈值被映射到每个类的单独精度。基于神经网络输出顺序(即,在训练期间指定的顺序)来对类进行排序。

·count_thresholds指定分解MSE阈值的数量。

·Decomposition_threshold指定MSE阈值数组,其被应用于导出权重的不同张量的秩。

·nn_accuracy指定NN的总体精度(例如,通过考虑所有类的分类精度)。

·nn_reduction_ratio[i]指定在整个模型的张量分解之后的参数总数与原始模型中的参数数数量之间的比率

·count_classes指定为每个分解阈值提供单独精度的类的数量。

·nn_class_accuracy指定当应用特定分解阈值时用于特定类的精度数组。

第三变型:在类型为NNR_PT_BLOCK的单元的情况下进行重构

为了便于解释,使用与示例性MPEG NNR草案标准(如用于多媒体内容描述和分析的神经网络压缩的N19225-工作草案4国际标准化组织ISO/IEC JTC1/SC29/WG11,2020年4月)兼容的示例性语法来详细描述该第三变型,示例性语法包括类型为NNR_PT_BLOCK的单元。利用此类示例性语法,单元内可以存在多个参数,例如可以可选地被分解的权重张量、偏差、批标准化参数等。在NNR_PT_BLOCK单元的上下文中,权重的输出张量必须遵循原始形状,该原始形状可以通过例如外部拓扑信息被传输或被解码器知道。如果在编码器处应用张量分解,则在解码器处执行张量的重构。

在该变型中,提出简化重构过程和用于指定分解张量G和H(有时也在解码器处被分别称为RecWeightG和RecWeightH)的大小的所需语法。

例如当层是卷积(CONV)或深度卷积(DWCONV)类型时,解码器需要导出G和H张量的大小。因此,本公开的一些实施方案提出传输与G和/或H张量的大小相关的信息。G和/或H张量的大小是指G和/或H张量的维度的大小,诸如张量的行数或列数。

根据示例性语法,此类信息可以被添加到高级语法(HLS),例如在压缩数据单元标头中。例如,在示例性语法(如与MPEG NNR的一些草案兼容的示例性语法)中,与G和/或H的张量大小以及秩decomposition_rank有关的信息可以在NNR压缩数据单元标头中被传输到解码器,如下:

/>

其中g_number_of_rows指定在类型为NNR_PT_BLOCK的NNR单元中对分解张量执行重构的情况下矩阵g的行数。

该信息可以使得解码器能够在如下的NNR_PT_BLOCK的情况下执行重构(其中(block_parameter_types&0x01)!=0指定存在低秩分解权重)。

如果(block_parameter_types&0x01)!=0,则以下适用:

可以利用设置为[g_number_of_rows,decomposition_rank]的输入变量TensorDims来调用用于整数权重张量的解码过程。变量

在类型为NNR_PT_BLOCK的NNR单元中对分解张量执行重构的情况下的矩阵h的列数h_number_of_columns可以通过下式获得

然后可以利用设置为[decomposition_rank,

变量RecWeight可以如下导出:

RecWeight=TensorReshape(RecWeightG*RecWeightHtensor_dimensions)

利用上述示例性语法,现在可以从单元标头获得变量g_number_of_rows。然后,可以导出变量h_number_of_columns,因为输出张量维度(tensor_dimensions)的维度是已知的。因此,此类实施方案可以使得例如解码器能够分别对张量G和H进行解码,然后对它们的乘积进行重整形以获得重构的张量RecWeight。

在其他变型中,可以传输变量h_number_of_columns(例如类似于上面详细描述的第三变型中的g_number_of_rows,用于从单元标头获得),g_number_of_rows在解码器侧导出。

在其他变型中,变量g_number_of_rows和h_number_of_columns都可以被传输(例如类似于上面详细描述的第三变型中的g_number_of_rows,两者均可从单元标头获得),从而例如避免了解码器侧的相应计算。

图6示出了根据如上所述的一个实施方案的用于对张量分解产生的张量进行解码的方法600的示例。包括表示神经网络的编码数据的比特流被输入到解码器。在601处,确定原始张量是否已经被分解为第一张量和第二张量,例如第一张量和第二张量分别是由低秩分解产生的G张量和H张量。在602处,如果要解码的当前单元包括对从张量分解产生的张量进行加权,则从比特流中解码第一张量的大小。例如,在G张量的情况下,第一张量的大小是G张量的行数。

在603处,基于解码的大小对第一张量进行解码。在604处,从解码的大小导出第二张量的大小。例如,当第二张量是H张量时,第二张量的大小是H张量的列数。在605处,基于导出的大小对第二张量进行解码。在606处,解码器可以从解码的第一张量和第二张量重构分解的张量。

在一些实施方案中,比特流包含第二张量的大小而不是第一张量的大小,或者包含这两种大小。

图7示出了根据上述实施方案的用于将DNN的张量编码到比特流中的方法700的示例。在701处,将第一张量分解为第二张量和第三张量。在702处,将第二张量的大小编码到比特流中。在703处,将第二张量的参数编码到比特流中。在704处,将第三张量的参数编码到比特流中。在变型中,第三张量的大小也可以被编码到比特流中。

图8示出了包括表示根据上述方法中的任一方法生成的深度神经网络的至少一个层的第一张量的数据的比特流800的一部分的示例。在一些实施方案中,数据包括指示第一张量被分解为第二张量和第三张量的信息801、第二张量和第三张量中的至少一者的大小802以及第二张量和第三张量中的至少一者的参数803。在变型中,数据还包括第二张量和第三张量中的至少一者中的另一张量的参数804。

另外的实施方案和信息

本申请描述了各个方面,包括工具、特征、实施方案、模型、方法等。具体描述了这些方面中的许多方面,并且至少示出个体特性,通常以可能听起来有限的方式描述。然而,这是为了描述清楚,并不限制这些方面的应用或范围。实际上,所有不同的方面可组合和互换以提供进一步的方面。此外,这些方面也可与先前提交中描述的方面组合和互换。

本专利申请中描述和设想的方面可以许多不同的形式实现。下面的图1、图2和图3提供了一些实施方案,但是设想了其他实施方案,并且图1、图2和图3的讨论不限制具体实施的广度。这些方面的至少一个方面通常涉及编码和解码(例如,视频编码和解码,和/或DNN的至少一些层的至少一些权重的编码和解码),并且至少一个其他方面通常涉及传输生成或编码的比特流。这些和其他方面可实现为方法、装置、其上存储有用于根据该方法中任一种对数据编码或解码的指令的计算机可读存储介质,和/或其上存储有根据该方法中任一种生成的比特流的计算机可读存储介质。

在本申请中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“图片”和“帧”可以互换使用。通常,但不必然,术语“重构”在编码端使用,而“解码”在解码端使用。

本专利申请中所述的各种方法和其他方面可用于修改编码器100和解码器200的模块,例如,帧内预测模块、熵编码模块和/或解码模块(160,260,145,230),如图1和图2所示出的。此外,本发明方面不限于VVC或HEVC,并且可应用于例如其他标准和推荐(无论是预先存在的还是未来开发的)以及任何此类标准和推荐的扩展(包括VVC和HEVC)。

此外,本发明方面不限于VVC或HEVC,或甚至不限于视频数据,并且可应用于适于对神经网络的至少一个层的至少一个张量进行编码、分别解码的编码器或解码器,这可用于除视频之外的许多技术领域(当然,在此类实施方案中,如帧内预测模块160这样的一些模块可以是任选的)。

除非另外指明或技术上排除在外,否则本申请中所述的方面可单独或组合使用。

本申请中使用了各种数值(例如张量重构模式)。具体值是为了示例目的,并且所述方面不限于这些具体值。

图1示出了编码器100。设想了这一编码器100的变型,但是为了清楚起见,下文描述了编码器100而不描述所有预期的变型。

在编码之前,序列可经过预编码处理(101),例如,在视频序列的情况下,将颜色变换应用于输入彩色图片(例如,从RGB 4:4:4到YCbCr 4:2:0的转换),或执行输入图片分量的重新映射,以便获得对压缩更具弹性的信号分布(例如,使用颜色分量中的一个颜色分量的直方图均衡化)。而且,预编码处理可包括二进制化,如以上结合CABAC详细描述的示例性二进制化。

元数据可与预处理相关联并且附接到比特流。

在编码器100中,在视频序列的情况下,图片由编码器元件编码,如下所述。在例如CU的单元中对要编码的图像进行分区(102)和处理。例如,使用帧内模式或帧间模式对每个单元进行编码。当以帧内模式对单元进行编码时,该单元执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)使用帧内模式或帧间模式中的哪一者对单元进行编码,以及通过例如预测模式标志来指示帧内/帧间决策。例如,通过从原始图像块减去(110)预测块来计算预测残差。

然后,对预测残差进行变换(125)和量化(130)。

对经量化变换系数以及运动向量和其他语法元素进行熵译码(145)以输出比特流。

该编码器可跳过变换,并对未变换的残差信号直接应用量化。该编码器可绕过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。

该编码器对编码块进行解码以提供进一步预测的参考。对经量化变换系数进行解量化(140)和逆变换(150)以对预测残差进行解码。例如,在视频序列的情况下,组合(155)经解码的预测残差和预测块,重构图像块。将环路滤波器(165)应用于重构图片以执行例如去块/SAO(样本自适应偏移)滤波,从而减少编码伪影。经滤波的图像存储在参考图片缓冲器(180)中。

图2示出了解码器200的框图。在解码器200中,如下所述,比特流由解码器元件进行解码。解码器200通常执行与如图1所述的编码过程相反的解码过程。编码器100通常还执行解码作为对数据编码的一部分。

具体地,解码器200的输入包括比特流,该比特流可由编码器100生成。首先,对比特流进行熵解码(230)以获取变换系数、运动向量和其他经译码信息。

在视频比特流的情况下,图片分区信息指示如何对图片进行分区。因此,解码器可以根据已解码图片分区信息划分(235)图像。对变换系数进行解量化(240)和逆变换(250)以对预测残差进行解码。组合(255)经解码的预测残差和预测块,重构图像块。可通过帧内预测(260)或运动补偿预测(即帧间预测)(275)获取(270)该预测块。将环路滤波器(265)应用于重构图像。经滤波的图像存储在参考图片缓冲器(280)中。

经解码的元素(如图片或层权重)还可经过解码后处理(285),例如,在经解码的图像的情况下,逆颜色变换(例如,从YCbCr 4:2:0到RGB 4:4:4的变换)或执行在预编码处理(101)中执行的重新映射过程的逆重新映射。解码后处理可使用在预编码处理中导出并且在比特流中有信号通知的元数据。

图3示出了在其中实施各个方面和实施方案的系统的示例的框图。系统1000可体现为包括下文所述的各种部件的设备,并且被配置为执行本文档中所述的一个或多个方面。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视机接收器、个人视频录制系统、连接的家用电器和服务器。系统1000的元件可单独地或组合地体现在单个集成电路(IC)、多个IC和/或分立部件中。例如,在至少一个实施方案中,系统1000的处理和编码器/解码器元件分布在多个IC和/或分立部件上。在各种实施方案中,系统1000经由例如通信总线或通过专用输入端口和/或输出端口通信地耦接到一个或多个其他系统或其他电子设备。在各种实施方案中,系统1000被配置为实现本文档中所述的一个或多个方面。

系统1000包括至少一个处理器1010,该至少一个处理器被配置为执行加载到其中的指令以用于实现例如本文档中所述的各个方面。处理器1010可包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备和/或非易失性存储器设备)。系统1000包括存储设备1040,该存储设备可包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可包括内部存储设备、附接的存储设备(包括可拆卸和不可拆卸的存储设备)和/或网络可访问的存储设备。

系统1000包括编码器/解码器模块1030,该编码器/解码器模块被配置为例如处理数据以提供经编码或经解码的数据流(此类视频流和/或表示至少一个DNN的至少一个层的至少一个权重的流),并且编码器/解码器模块1030可包括其自身的处理器和存储器。编码器/解码器模块1030表示可包括在设备中以执行编码和/或解码功能的模块。众所周知,设备可包括编码模块和解码模块中的一者或两者。另外,编码器/解码器模块1030可被实现为系统1000的独立元件,或者可被结合在处理器1010内作为本领域技术人员已知的硬件和软件的组合。

要加载到处理器1010或编码器/解码器1030上以执行本文档中所述的各个方面的程序代码可被存储在存储设备1040中,并且随后被加载到存储器1020上以供处理器1010执行。根据各种实施方案,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一者或多者可在本文档中所述的过程的执行期间存储各种项目中的一个或多个项目。此类存储项目可包括但不限于输入视频、解码视频或解码视频的部分、表示至少一个DNN的至少一个层的至少一个张量的至少一个权重的数据、比特流、矩阵、变量以及由处理等式、公式、运算和运算逻辑所得的中间结果或最终结果。

在一些实施方案中,处理器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)开发的新标准)。

可通过如框1130中所示的各种输入设备来提供对系统1000的元件的输入。此类输入设备包括但不限于:(i)射频(RF)部分,其接收例如由广播器通过空中发射的RF信号;(ii)分量(COMP)输入端子(或一组COMP输入端子);(iii)通用串行总线(USB)输入端子;和/或(iv)高清晰度多媒体接口(HDMI)输入端子。图3中未示出的其他示例包括复合视频。

在各种实施方案中,框1130的输入设备具有本领域已知的相关联的相应输入处理元件。例如,RF部分可与适于以下项的元件相关联:(i)选择期望的频率(也称为选择信号,或将信号频带限制到一个频带),(ii)下变频选择的信号,(iii)再次频带限制到更窄频带以选择(例如)在某些实施方案中可称为信道的信号频带,(iv)解调经下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据包流。各种实施方案的RF部分包括用于执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。RF部分可包括执行这些功能中的各种功能的调谐器,这些功能包含例如下变频接收信号至更低频率(例如,中频或近基带频率)或至基带。在一个机顶盒实施方案中,RF部分及其相关联的输入处理元件接收通过有线(例如,电缆)介质发射的RF信号,并且通过滤波、下变频和再次滤波至期望的频带来执行频率选择。各种实施方案重新布置上述(和其他)元件的顺序,移除这些元件中的一些元件,和/或添加执行类似或不同功能的其他元件。添加元件可包括在现有元件之间插入元件,例如,插入放大器和模数变换器。在各种实施方案中,RF部分包括天线。

另外,USB和/或HDMI端子可包括用于跨USB和/或HDMI连接将系统1000连接到其他电子设备的相应接口处理器。应当理解,输入处理的各个方面(例如Reed-Solomon纠错)可根据需要例如在单独的输入处理IC内或在处理器1010内实现。类似地,USB或HDMI接口处理的各个方面可根据需要在单独的接口IC内或在处理器1010内实现。将经解调、纠错和解复用的流提供给各种处理元件,包括例如处理器1010以及编码器/解码器1030,该处理元件与存储器和存储元件结合操作以根据需要处理数据流以呈现在输出设备上。

系统1000的各种元件可设置在集成外壳内,在集成外壳内,各种元件可使用合适的连接布置1140互连并在其间传输数据,例如,如本领域已知的内部总线,包括IC间(I2C)总线、接线和印刷电路板。

系统1000包括能够经由通信信道1060与其他设备通信的通信接口1050。通信接口1050可包括但不限于被配置为通过通信信道1060传输和接收数据的收发器。通信接口1050可包括但不限于调制解调器或网卡,并且通信信道1060可例如在有线和/或无线介质内实现。

在各种实施方案中,使用无线网络诸如Wi-Fi网络例如IEEE 802.11(IEEE是指电气和电子工程师协会)将数据流式发射或以其他方式提供给系统1000。这些实施方案中的Wi-Fi信号通过适用于Wi-Fi通信的通信信道1060和通信接口1050接收。这些实施方案的通信信道1060通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以用于允许流传输应用和其他越过运营商的通信。其他实施方案使用机顶盒向系统1000提供流传输数据,该机顶盒通过输入框1130的HDMI连接来递送数据。其他实施方案使用输入框1130的RF连接向系统1000提供流传输数据。如上所述,各种实施方案以非流式的方式提供数据。另外,各种实施方案使用除了Wi-Fi以外的无线网络,例如蜂窝网络或蓝牙网络。

系统1000可向各种输出设备,包括显示器1100、扬声器1110和其他外围设备1120提供输出信号。各种实施方案的显示器1100包括例如触摸屏显示器、有机发光二极管(OLED)显示器、曲面显示器和/或可折叠显示器中的一者或多者。显示器1100可用于电视机、平板电脑、笔记本电脑、蜂窝电话(移动电话)或另外的设备。显示器1100还可与其他部件集成(例如,如在智能电话中),或可为独立的(例如,膝上型计算机的外部监视器)。在实施方案的各种示例中,其他外围设备1120包括独立数字视频光盘(或数字通用光盘)(DVR,其可表示这两个术语)、碟片播放器、立体声系统和/或照明系统中的一者或多者。各种实施方案使用基于系统1000的输出提供功能的一个或多个外围设备1120。例如,碟片播放器执行播放系统1000的输出的功能。

在各种实施方案中,使用诸如AV等信令在系统1000与显示器1100、扬声器1110或其他外围设备1120之间传送控制信号。链路(Link)、消费电子控制(CEC)或其他能够在有或没有用户干涉的情况下实现设备到设备控制的通信协议。输出设备可通过相应接口1070、1080和1090经由专用连接通信地耦接到系统1000。另选地,输出设备可使用通信信道1060经由通信接口1050连接到系统1000。显示器1100和扬声器1110可与电子设备(诸如例如电视机)中的系统1000的其他部件集成在单个单元中。在各种实施方案中,显示接口1070包括显示驱动器,诸如例如定时控制器(T Con)芯片。

如果输入1130的RF部分是独立机顶盒的一部分,则显示器1100和扬声器1110可另选地与其他部件中的一个或多个部件分开。在显示器1100和扬声器1110为外部部件的各种实施方案中,可经由专用输出连接(包括例如HDMI端口、USB端口或COMP输出)来提供输出信号。

这些实施方案可由处理器1010实现的计算机软件、或由硬件、或由硬件和软件的组合来执行。作为非限制性示例,这些实施方案可由一个或多个集成电路实现。存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,作为非限制性示例,诸如光学存储器设备、磁性存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器1010可以是适合于技术环境的任何类型,并且作为非限制性示例,可涵盖微处理器、通用计算机、专用计算机和基于多核心架构的处理器中的一者或多者。

各种具体实施参与解码。如本申请中所用,“解码”可涵盖例如对所接收的编码序列执行的过程的全部或部分,以便产生适于显示的最终输出。在各种实施方案中,此类过程包括通常由解码器执行的一个或多个过程,例如熵解码、逆量化、逆变换和差分解码。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的解码器执行的过程。

作为进一步的示例,在实施方案中,“解码”仅是指熵解码,在另一个实施方案中,“解码”仅是指差分解码,并且在又一个实施方案中,“解码”是指熵解码和差分解码的组合。短语“解码过程”是具体地指代操作的子集还是广义地指代更广泛的解码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。

各种具体实施参与编码。以与上面关于“解码”的讨论类似的方式,如在本申请中使用的“编码”可涵盖例如对输入序列执行以便产生编码比特流的全部或部分过程。在各种实施方案中,此类过程包括通常由编码器执行的一个或多个过程,例如,分区、差分编码、变换、量化和熵编码。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的编码器执行的过程。

作为进一步的示例,在实施方案中,“编码”仅是指熵编码,在另一个实施方案中,“编码”仅是指差分编码,并且在又一个实施方案中,“编码”是指差分编码和熵编码的组合。短语“编码过程”是具体地指代操作的子集还是广义地指代更广泛的编码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。

注意,本文所使用的语法元素是描述性术语。因此,它们不排除使用其他语法元素名称。

当附图呈现为流程图时,应当理解,其还提供了对应装置的框图。类似地,当附图呈现为框图时,应当理解,其还提供了对应的方法/过程的流程图。

各种实施方案是指参数模型或速率失真优化。具体地,在编码过程期间,通常考虑速率和失真之间的平衡或权衡,这常常考虑到计算复杂性的约束。可以通过速率失真优化(RDO)度量或通过最小均方(LMS)、绝对误差平均值(MAE)或其他此类测量值来测量。速率失真优化通常表述为最小化速率失真函数,该速率失真函数是速率和失真的加权和。存在不同的方法解决速率失真优化问题。例如,这些方法可基于对所有编码选项(包括所有考虑的模式或编码参数值)的广泛测试,并且完整评估其编码成本以及重构信号在编码和解码之后的相关失真。更快的方法还可用于降低编码复杂性,特别是对基于预测或预测残差信号而不是重构的残差信号的近似失真的计算。也可使用这两种方法的混合,诸如通过针对可能的编码选项中的仅一些编码选项使用近似失真,而针对其他编码选项使用完全失真。其他方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中任一种来执行优化,但是优化不一定是对编码成本和相关失真两者的完整评估。

本文所述的具体实施和方面可在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法讨论),讨论的特征的具体实施也可以其他形式(例如,装置或程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的处理器中实现,该处理设备包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“PDA”)以及便于最终用户之间信息通信的其他设备。

提及“一个实施方案”或“实施方案”或“一个具体实施”或“具体实施”以及它们的其他变型,意味着结合实施方案描述的特定的特征、结构、特性等包括在至少一个实施方案中。因此,短语“在一个实施方案中”或“在实施方案中”或“在一个具体实施中”或“在具体实施中”的出现以及出现在本申请通篇的各个地方的任何其他变型不一定都是指相同的实施方案。

另外,本申请可涉及“确定”各种信息。确定信息可包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一者或多者。

此外,本申请可涉及“访问”各种信息。访问信息可包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一者或多者。

另外,本申请可涉及“接收”各种信息。与“访问”一样,接收旨在为广义的术语。接收信息可包括例如访问信息或检索信息(例如,从存储器)中的一者或多者。此外,在诸如例如存储信息、处理信息、发射信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,“接收”通常以一种方式或另一种方式参与。

应当理解,例如,在“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)。如对于本领域和相关领域的普通技术人员显而易见的是,这可扩展到所列出的尽可能多的项目。

而且,如本文所用,词语“发信号通知”是指(除了别的以外)向对应解码器指示某物。例如,在某些实施方案中,编码器向多个变换、编码模式或标记中的至少一者发信号通知。这样,在一个实施方案中,在编码器侧和解码器侧两者均使用相同的参数。因此,例如,编码器可将特定参数发射(显式信令)到解码器,使得解码器可使用相同的特定参数。相反,如果解码器已具有特定参数以及其他,则可在不发射(隐式信令)的情况下使用信令,以简单允许解码器知道和选择特定参数。通过避免发射任何实际功能,在各种实施方案中实现了比特节省。应当理解,信令可以各种方式实现。例如,在各种实施方案中,使用一个或多个语法元素、标志等将信息发信号通知至对应解码器。虽然前面涉及词语“signal(发信号通知)”的动词形式,但是词语“signal(信号)”在本文也可用作名词。

对于本领域的普通技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,可格式化信号以携带所述实施方案的比特流。可格式化此类信号例如为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对数据流编码并且用编码的数据流调制载体。信号携带的信息可以是例如模拟或数字信息。已知的是,信号可通过各种不同的有线或无线链路发射。信号可存储在处理器可读介质上。

我们描述了多个实施方案。这些实施方案的特征可在各种权利要求类别和类型中单独地或以任何组合提供。此外,实施方案可包括以下特征、设备或方面中的一个或多个,单独地或以任何组合,跨各种权利要求类别和类型:

·利用预训练的深度神经网络的深度神经网络压缩来执行编码和解码的过程或设备。

·执行预先训练的深度神经网络的至少一个层的编码和解码以实现深度神经网络压缩的过程或设备。

·用于利用表示参数的比特流中的插入信息来执行编码和解码以实现包括一个或多个层的预训练深度神经网络的深度神经网络压缩的过程或设备。

·用于利用表示参数的比特流中的插入信息来执行编码和解码以实现深度神经网络的深度神经网络压缩。

·包包括所描述的语法元素中的一个或多个语法元素或其变型的比特流或信号。

·包括根据所描述的实施方案中的任一实施方案生成的语法传达信息的比特流或信号。

·根据所描述的实施方案中的任一实施方案创建和/或传输和/或接收和/或解码。

·根据所描述的实施方案中的任一实施方案的方法、过程、装置、存储指令的介质、存储数据的介质或信号。

·在信令中插入语法元素,该语法元素使得解码器能够以与编码器所使用的编码方式相对应的方式确定编码模式。

·创建和/或传输和/或接收和/或解码包括所描述的语法元素中的一个或多个语法元素或其变型的比特流或信号。

·根据所描述的实施方案中的任一实施方案执行变换方法的电视机、机顶盒、蜂窝电话、平板电脑或其他电子设备。

·根据所描述的实施方案中的任一实施方案执行变换方法确定并且(例如,使用监视器、屏幕或其他类型的显示器)显示所得图像的电视机、机顶盒、蜂窝电话、平板电脑或其他电子设备。

·根据所描述的实施方案中的任一实施方案选择、频带限制或(例如,使用调谐器)调谐信道以接收包括编码图像的信号并且执行变换方法的电视机、机顶盒、蜂窝电话、平板电脑或其他电子设备。

·(例如,使用天线)通过空中接收包括编码图像的信号并且执行变换方法的电视机、机顶盒、蜂窝电话、平板电脑或其他电子设备。

技术分类

06120115939222