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

用于基于神经网络的视频编码的剪枝方法和装置与流程

2022-07-23 03:52:44 来源:中国专利 TAG:

用于基于神经网络的视频编码的剪枝方法和装置
1.相关申请的交叉引用
2.本技术要求于2020年10月8日提交给美国专利商标局的美国临时专利申请第63/089,481号和于2021年6月29日提交给美国专利商标局的美国专利申请第17/362,184号的优先权,上述美国专利申请的全部内容通过引用并入本文。
技术领域
3.与实施方式一致的方法和装置涉及视频编码,更具体地,涉及用于基于神经网络的视频编码的剪枝方法和装置。


背景技术:

4.itu-t vceg(q6/16)和iso/iec mpeg(jtc 1/sc 29/wg 11)在2013(版本1)、2014(版本2)、2015(版本3)和2016(版本4)中公布了h.265/hevc(high efficiency video coding,高效视频编码)标准。此后,itu一直在研究未来视频编码技术标准化的潜在需求,其具有大大超过hevc标准(包括其扩展)的压缩能力的压缩能力。2017年10月,这两个标准组织发布了关于具有超越hevc的能力的视频压缩的联合建议书(call for proposal,cfp)。到2018年2月15日,分别提交了关于标准动态范围(standard dynamic range,sdr)的22个cfp响应、关于高动态范围(high dynamic range,hdr)的12个cfp响应以及关于360个视频类别的12个cfp响应。在2018年4月,在122mpeg/第10次jvet(joint video exploration team-joint video expert team,联合视频探索组-联合视频专家组)会议中评估所有接收到的cfp响应。通过仔细的评估,jvet正式地发起了hevc之外的下一代视频编码的标准化,即所谓的通用视频编码(versatile video coding,vvc)。同时,中国的音频视频编码标准(audio video coding standard,avs)也在进行中。


技术实现要素:

5.根据实施方式,一种对视频序列的图片的当前块进行基于神经网络的视频编码的剪枝方法由至少一个处理器执行,并且包括:将神经网络的参数分类成组;设置指示组中的第一组要被剪枝的第一索引和指示组中的第二组不被剪枝的第二索引;以及将所设置的第一索引和所设置的第二索引传输到解码器。基于所传输的第一索引和所传输的第二索引,使用剪枝组中的第一组的参数来处理当前块。
6.根据实施方式,一种用于对视频序列的图片的当前块进行基于神经网络的视频编码的剪枝装置包括:至少一个存储器,其被配置成存储计算机程序代码;以及至少一个处理器,其被配置成访问至少一个存储器并且根据计算机程序代码进行操作。该计算机程序代码包括:分类代码,其被配置成使至少一个处理器将神经网络的参数分类成组;第一设置代码,其被配置成使至少一个处理器设置指示组中的第一组要被剪枝的第一索引和指示组中的第二组不被剪枝的第二索引;以及第一传输代码,其被配置成使至少一个处理器将所设置的第一索引和所设置的第二索引传输到解码器。基于所传输的第一索引和所传输的第二
索引,使用剪枝组中的第一组的参数来处理当前块。
7.根据实施方式,一种存储指令的非暂态计算机可读存储介质,所述指令在由至少一个处理器执行用于对视频序列的图片的当前块进行基于神经网络的视频编码的剪枝时,使至少一个处理器:将神经网络的参数分类成组;设置指示组中的第一组要被剪枝的第一索引和指示组中的第二组不被剪枝的第二索引;以及将所设置的第一索引和所设置的第二索引传输到解码器。基于所传输的第一索引和所传输的第二索引,使用剪枝组中的第一组的参数来处理当前块。
附图说明
8.图1a是基于神经网络的滤波器的框图。
9.图1b是基于密集残差卷积神经网络的环路内滤波器(dense residual convolutional neural network based in-loop filter,drnnlf)的框图。
10.图1c是图1b的drnnlf的密集残差单元(dense residual unit,dru)的框图。
11.图1d是说明二维(two-dimensional,2d)阵列的剪枝的图。
12.图2是根据实施方式的通信系统的简化框图。
13.图3是根据实施方式的在流式传输环境中视频编码器和视频解码器的放置的图。
14.图4是根据实施方式的视频解码器的功能框图。
15.图5是根据实施方式的视频编码器的功能框图。
16.图6是示出了根据实施方式的基于神经网络的视频编码的剪枝方法的流程图。
17.图7是示出了根据实施方式的基于神经网络的视频编码的剪枝方法的流程图。
18.图8是根据实施方式的用于基于神经网络的视频编码的剪枝装置的简化框图。
19.图9是适用于实现各实施方式的计算机系统的图。
具体实施方式
20.本公开内容描述hevc以外的视频编码技术,例如vvc或avs。更具体地,几种补充增强信息用于基于神经网络的图像和视频编码。
21.在vvc和avs3中,提出了基于神经网络的方法和装置,尤其是基于神经网络的滤波器。下面是基于神经网络的滤波器的结构的示例之一。
22.图1a是基于神经网络的滤波器(100a)的框图。
23.基于神经网络的滤波器(100a)包括卷积层(convolutional layers,conv)。作为示例,核的大小可以是3*3*m,这意味着对于每个信道,卷积核的大小可以是3*3,并且输出层数可以是m。
24.卷积层和非线性激活函数(relus)的组合使得整个过程可以被视为用于重构的非线性滤波器。在滤波过程之后,可以提高质量。
25.图1b是drnnlf(100b)的框图。
26.来自jvet-o0101的drnnlf(100b)是去块滤波器和采样自适应偏移(sample-adaptive offset,sao)之间的附加滤波器。它与去块滤波器、sao、自适应环路滤波器(adaptive loop filter,alf)和交叉分量alf(cross-component adaptive loop filter,ccalf)一起工作,以提高编码效率。
27.图1b示出了drnnlf(100b)的网络结构,其中n和m分别表示密集残差单元(dense residual unit,dru)和卷积核的数量。例如,为了计算效率和性能之间的折衷,n可以被设置成4,m可以被设置成32。归一化量化参数(quantization parameter,qp)图与作为drnnlf(100b)的输入的重构帧连接。
28.drnnlf的主体包括一系列dru。图1c示出了dru的结构。
29.图1c是图1b的drnnlf(100b)的dru(100c)的框图。
30.dru(100c)通过捷径(shortcut)将其输入直接传播到后续单元。为了进一步降低计算成本,在dru(100c)中应用3
×
3深度可分离卷积(depth-wise separable convolutional,dsc)层。
31.最后,神经网络的输出具有3个信道,分别对应于颜色y、cb、cr。drnnlf(100b)被应用于帧内图片和帧间图片两者。用信号通知附加标志以指示drnnlf(100b)在图片级和编码树单元(coding tree unit,ctu)级的开/关。
32.使用drnnlf(100b)作为示例,卷积神经网络的计算与神经网络的每个卷积层中的四维(fourth-dimensional,4d)权重张量w[n][m][h][w]的大小有关,其中n是输出滤波器(filter)的数目,m是输入信道(channel)的数目,并且h
×
w是2d卷积核的大小。可以通过将w中一些系数归零来减少卷积层的计算,从而减少乘加运算的数量。这种将w中的系数归零的方法被称为神经网络压缩中的剪枝(pruning)。以前,神经网络参数诸如drnnlf(100b)中的输出滤波器的数量可以被剪除(设置成0)。
[0033]
图1d是说明二维阵列的剪枝的图。
[0034]
如图1d的(a)部分所示,4d权重张量w可以展开为2d阵列,其中每个元素是包括h
×
w2d卷积核的序列化滤波器系数的1d阵列。在图1d的(a)部分中,2d阵列的列对应于输入信道,而2d阵列的行对应于输出滤波器。
[0035]
如图1d的(b)部分中所示,w中的系数通过滤波器剪枝(110)或将某些行作为阴影清零来剪枝。因此,可以减少乘加的数量和神经网络参数的大小。在其他方法中,可以按行、按列、按1d阵列中的位置来进行类似的剪枝,以减少多重相加的数量,或者可以做出将哪些参数设置成零的任何其他适当指示。例如,如图1d的(b)部分所示,滤波器形状剪枝(120)可以包括剪枝1d或2d阵列的列,并且信道剪枝(130)包括剪枝1d或2d阵列的信道。越多的参数被剪枝,需要越少的计算。
[0036]
图2是根据实施方式的通信系统(200)的简化框图。通信系统(200)可以包括经由网络(250)互连的至少两个终端(210至220)。对于单向数据传输,第一终端(210)可以对本地位置处的视频数据进行编码,以经由网络(250)传输到另一终端(220)。第二终端(220)可以从网络(250)接收其他终端的已编码视频数据,对已编码数据进行解码,并且显示恢复的视频数据。单向数据传输可能在媒体服务应用等中是常见的。
[0037]
图2示出了第二对终端(230、240),其被设置成支持例如在视频会议期间可能发生的已编码视频的双向传输。对于数据的双向传输,每个终端(230、240)可以对在本地位置处捕获的视频数据进行编码,以经由网络(250)传输到其他终端。每个终端(230、240)还可以接收由其他终端传输的已编码视频数据,可以对已编码数据进行解码并且可以在本地显示设备处显示恢复的视频数据。
[0038]
在图2中,终端(210至240)可以被示为服务器、个人计算机和智能电话,但是实施
方式的原理不限于此。实施方式适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(250)表示在终端(210至240)之间传送已编码视频数据的任何数目的网络,包括例如有线通信网络和/或无线通信网络。通信网络(250)可以在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本公开内容的目的,除非在下文中有所说明,否则网络(250)的架构和拓扑对于实施方式的操作来说可以是不重要的。
[0039]
图3是根据实施方式的在流式传输环境中视频编码器和视频解码器的放置方式的图。所公开的主题可以同等地适用于其他视频使能的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
[0040]
流式传输系统可以包括捕获子系统(313),该捕获子系统可以包括视频源(301)(例如数码相机)以创建例如未压缩的视频样本流(302)。与已编码的视频比特流相比,被描绘为粗线以强调高数据量的样本流(302)可以由耦接至摄像装置(301)的编码器(303)处理。编码器(303)可以包括硬件、软件或软件硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。与样本流相比,被描绘为细线以强调较低数据量的已编码视频比特流(304)可以存储在流式传输服务器(305)上以供将来使用。一个或更多个流式传输客户端(306、308)可以访问流式传输服务器(305)以检索已编码的视频比特流(304)的副本(307、309)。客户端(306)可以包括视频解码器(310),该视频解码器对已编码的视频比特流的传入副本(307)进行解码,并且创建可以在显示器(312)或其他呈现设备(未描绘)上呈现的传出视频样本流(311)。在一些流式传输系统中,视频比特流(304、307、309)可以根据某些视频编解码/压缩标准进行编码。该些标准的实施例包括itu-t h.265建议书。正在开发的是被非正式地称为vvc的视频编码标准。所公开的主题可以在vvc的上下文中使用。
[0041]
图4是根据实施方式的视频解码器(310)的功能框图。
[0042]
接收器(410)可以接收要由解码器(310)解码的一个或更多个编解码器视频序列;在同一实施方式或另一实施方式中,一次接收一个已编码视频序列(coded video sequence,cvs),其中每个已编码视频序列的解码独立于其他已编码视频序列。可以从信道(412)接收已编码视频序列,该信道可以是至存储已编码视频数据的存储设备的硬件/软件链路。接收器(410)可以接收已编码视频数据以及其他数据,例如,可以转发到它们各自的使用实体(未描绘)的已编码音频数据和/或辅助数据流。接收器(410)可以将已编码视频序列与其他数据分开。为了防止网络抖动,缓冲存储器(415)可以耦接在接收器(410)与熵解码器/解析器(420)(此后称为“解析器”)之间。当接收器(410)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收到数据时,可能不需要缓冲存储器(415),或该缓冲存储器(415)可以较小。为了尽可能地使用分组网络诸如因特网,可能需要缓冲器(415),该缓冲器(415)可以相对较大并且可以有利地具有自适应大小。
[0043]
视频解码器(310)可以包括解析器(420),该解析器(420)根据经熵编码的视频序列来重构符号(421)。这些符号的类别包括用于管理解码器(310)的操作的信息,以及潜在地包括用于控制呈现设备诸如显示器(312)的信息,该呈现设备不是解码器的组成部分,而是可以耦接至解码器,如图4所示。用于呈现装置的控制信息可以是辅助增强信息(supplemental enhancement information,sei)消息或视频可用性信息(video usability information,vui)参数集片段(未描绘)。解析器(420)可以对接收到的编码视
频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准进行,并且可以遵循本领域技术人员公知的各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(420)可以基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等等。熵解码器/解析器还可以从编码的视频序列提取信息,诸如变换系数、量化器参数(quantizer parameter,qp)值、运动矢量等。
[0044]
解析器(420)可以对从缓冲器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。解析器(420)可以接收经编码的数据,并且选择性地对特定符号(421)进行解码。此外,解析器(420)可以确定特定符号(421)是否将被提供给运动补偿预测单元(453)、缩放器/逆变换单元(451)、帧内预测单元(452)或环路滤波器(454)。
[0045]
取决于已编码视频图片或已编码视频图片的一部分(诸如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素,符号(421)的重构可以涉及多个不同单元。涉及哪些单元以及涉及方式可以由解析器(420)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描绘解析器(420)与下文的多个单元之间的此类子群控制信息流。
[0046]
除了已经提及的功能块之外,解码器(310)可以在概念上细分为如下所述的多个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。
[0047]
第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括要使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(551)可以输出包括可以输入至聚合器(455)中的样本值的块。
[0048]
在一些情况下,缩放器/逆变换(451)的输出样本可以属于帧内编码块;即:不使用来自先前重构的图片的预测性信息,但可以使用来自当前图片的先前重构部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)使用从当前(部分重构)图片(456)获取的周围已经重构的信息来生成与正在重构的块的大小和形状相同的块。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。
[0049]
在其他情况下,缩放器/逆变换单元(451)的输出样本可以属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以获取用于预测的样本。在根据与块相关的符号(421)对获取的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿单元从其获取预测样本的参考图片存储器内的地址可以由运动矢量控制,运动矢量能够以符号(421)的形式用于运动补偿单元,符号(421)可以具有例如x分量、y分量和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时,从参考图片存储器获取的样本值的插值、运动矢量预测机制等。
[0050]
聚合器(455)的输出样本可以在环路滤波器单元(454)中经受各种环路滤波技术。
视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术由被包括在已编码视频比特流中并且作为来自解析器(420)的符号(421)可以用于环路滤波器单元(454)的参数进行控制,然而视频压缩技术还可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重构并经环路滤波的样本值。
[0051]
环路滤波器单元(454)的输出可以是样本流,样本流可以被输出至呈现设备(312)以及被存储在参考图片存储器(457)中以供在将来的帧间图片预测中使用。
[0052]
一旦完全重构,某些已编码图片就可以用作参考图片以用于将来预测。一旦编码图片被完全重构并且编码图片已被标识为参考图片(例如,通过解析器(420)),当前参考图片(456)就可以成为参考图片缓冲器(457)的一部分,并且可以在开始重构随后的编码图片之前重新分配新的当前图片存储器。
[0053]
视频解码器(310)可以根据可以记录在诸如itu-t h.265建议书的标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法的意义上,如在视频压缩技术文档或标准中且具体地在其中的简档文档中指定的,已编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法。对于合规性,还需要已编码视频序列的复杂度处于视频压缩技术或标准的层级(level)所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重构采样率(以例如每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号通知的hrd缓冲器管理的元数据来进一步限定。
[0054]
在实施方式中,接收器(410)可以连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为已编码视频序列的一部分。该附加数据可以由视频解码器(310)用以对数据进行适当解码和/或较准确地重构原始视频数据。附加数据可以呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
[0055]
图5是根据实施方式的视频编码器(303)的功能框图。
[0056]
编码器(303)可以从视频源(301)(其不是编码器的一部分)接收视频样本,该视频源可以捕获要由编码器(303)进行编码的视频图像。
[0057]
视频源(301)可以提供将由编码器(303)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适采样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(301)可以是存储先前准备的视频的存储装置。在视频会议系统中,视频源(301)可以是采集本地图像信息作为视频序列的摄像装置。可以将视频数据提供为当按顺序观看时被赋予运动的多个单独的图片。图片自身可以被组织为像素的空间阵列,其中取决于所使用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以很容易地理解像素与样本之间的关系。下文侧重于描述样本。
[0058]
根据实施方式,视频编码器(303)可以实时或在由应用所要求的任何其他时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。执行适当的编码速度是控制器(550)的一个功能。控制器控制如下所述的其他功能单元并且在功能上耦接至这些单元。为了清楚起见,未描绘耦接。由控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures gop)布
局,最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器(550)的其他功能,因为这些功能可能属于针对特定系统设计而优化的视频编码器(303)。
[0059]
一些视频编码器以本领域技术人员所容易了解的“编码环路”进行操作。作为过于简化的描述,编码环路可以包括:编码器(530)(此后称为“源编码器”)的编码部分(负责基于要编码的输入图片和参考图片创建符号),以及嵌入编码器(303)中的(本地)解码器(533),解码器(533)重构符号以创建(远程)解码器也将创建的样本数据(因为在所公开的主题中考虑的视频压缩技术中,符号与已编码视频比特流之间的任何压缩是无损的)。该重构的样本流被输入至参考图片存储器(534)。由于对符号流的解码导致独立于解码器位置(本地或远程)的位精确结果,因此参考图片缓冲器内容在本地编码器与远程编码器之间也是位精确的。换言之,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性的基本原理(以及如果例如由于信道错误而不能保持同步性,则导致漂移)是本领域技术人员公知的。
[0060]“本地”解码器(533)的操作可以与已经在上面结合图4详细描述的“远程”解码器(310)的操作相同。然而,还简要地参照图4,由于符号可用并且熵编码器(545)和解析器(420)对已编码视频序列的符号进行编码/解码可以是无损的,可能无法在解码器(533)中完全实现包括信道(412)、接收器(410)、缓冲器(415)和解析器(420)的解码器(310)的熵解码部分。
[0061]
此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术也必然需要以基本上相同的功能形式存在于对应的编码器中。由于编码器技术与全面地描述的解码器技术互逆,因此可以简化对编码器技术的描述。仅在某些区域中需要更详细的描述,并且在下文提供。
[0062]
作为其操作的一部分,源编码器(530)可以执行运动补偿的预测性编码,其参考来自视频序列的被指定为“参考帧”的一个或更多个先前编码的帧来对输入帧进行预测性地编码。以此方式,编码引擎(532)对输入帧的像素块与可以被选择为输入帧的预测参考的参考帧的像素块之间的差进行编码。
[0063]
本地视频解码器(533)可以基于由源编码器(530)创建的符号对可以被指定为参考帧的帧的已编码视频数据进行解码。编码引擎(532)的操作可以优选地为有损过程。当编码视频数据可以在视频解码器(图4中未示出)处被解码时,重构的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,该解码过程可以由视频解码器对参考帧执行,且可以使重构的参考帧存储在参考图片高速缓存(534)中。以此方式,视频编码器(303)可以在本地存储重构的参考帧的副本,这些副本与将由远端视频解码器获得的重构的参考帧具有共同内容(不存在传输误差)。
[0064]
预测器(535)可以针对编码引擎(532)执行预测搜索。即,对于将要编码的新帧,预测器(535)可以在参考图片存储器(534)中搜索可以用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,诸如参考图片运动矢量、块形状等。预测器(535)可以基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如通过预测器(535)获得的搜索结果确定的,输入图片可以具有从参考图片存储器(534)中存储的多个参考图片汲取的预测参考。
[0065]
控制器(550)可以管理视频编码器(530)的编码操作,包括例如设置用于对视频数
据进行编码的参数和子群参数。
[0066]
可以在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器通过根据本领域技术人员已知的技术(例如霍夫曼编码、可变长度编码、算术编码等)对符号进行无损压缩来将由各种功能单元生成的符号转换成已编码的视频序列。
[0067]
传输器(540)可以缓冲由熵编码器(545)创建的(一个或更多个)已编码的视频序列,以将其准备用于经由通信信道(560)进行传输,该通信信道可以是至可以存储已编码的视频数据的存储设备的硬件/软件链路。传输器(540)可以将来自视频编码器(530)的已编码的视频数据与要传输的其他数据合并,其他数据例如是已编码的音频数据和/或辅助数据流(未示出来源)。
[0068]
控制器(550)可以管理编码器(303)的操作。在编码期间,控制器(550)可以针对每个已编码图片分配某一已编码图片类型,但这可能影响可以应用于相应的图片的编码技术。例如,通常可以将图片分配为以下帧类型之一:
[0069]
帧内图片(i图片),其可以是无需将序列中的任何其他帧用作预测源就可以被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新图片。所属领域的技术人员了解i图片的变体及其相应的应用和特征。
[0070]
预测性图片(p图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0071]
双向预测性图片(b图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多预测性图片可以使用多于两个参考图片和相关联的元数据来进行单个块的重构。
[0072]
源图片通常可以在空间上细分为多个样本块(例如,每个4
×
4、8
×
8、4
×
8或16
×
16样本的块)并且在逐块的基础上进行编码。这些块可以参考其他(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定其他块。举例来说,i图片的块可以进行非预测性编码,或i图片的块可以参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素块可以参考一个先前编码的参考图片经由空间预测或经由时间预测进行非预测性编码。b图片的块可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测进行预测性编码。
[0073]
视频编码器(303)可以根据预定的视频编码技术或标准诸如itu-th.265建议书或者vvc h.266执行编码操作。在其操作中,视频编码器(303)可以执行各种压缩操作,包括利用输入视频序列中的时间冗余和空间冗余的预测编码操作。因此,已编码的视频数据可以符合所使用的视频编码技术或标准指定的语法。
[0074]
在实施方式中,传输器(540)可以与已编码的视频一起传输附加数据。视频编码器(530)可以包括这样的数据作为已编码视频序列的一部分。附加数据可以包括时间/空间和/或snr增强层、其他形式的冗余数据诸如冗余图片和切片、sei消息、视觉可用性信息(visual usability information,vui)参数集片段等。
[0075]
本文所描述的实施方式包括用于在基于神经网络的视频编码系统中进行剪枝的方法和装置。潜在的“要被剪枝的”参数被称为神经网络(neural network,nn)参数集。
[0076]
在实施方式中,二进制掩码可以用于指示nn参数集的哪个部分要被剪枝。作为0或
1二进制指示符,掩码中的每个元素表示是否将一组滤波器系数中的特定行、列或位置,或一组参数中的另一预定义的一个单独的参数设置成0。该掩码被用信号发送到解码器端。
[0077]
在实施方式中,编码器和解码器两者都可以同意分组机制。整个nn参数集可以被分类成组,诸如在1d系数集中的每行、每列和每个位置(见图1d的(b)部分)等。剪枝的最小操作基于现有的组。即,如果剪枝,则整个组的参数将被设置成0。在编码器端,发送所选择组的索引以指示该组中的参数被剪枝。在一个实施方式中,该索引可以是一个单一索引,其范围在所有可能的组中。在另一实施方式中,假设nn参数集具有多个维度,可以以几个索引的组合的形式用信号通知该索引。每个索引可以用于用信号通知一维中的位置。在另一个实施方式中,编码器/解码器具有简化的选择:是否要对其nn参数集使用剪枝。如果选择剪枝,则nn参数的默认子集要被剪枝,而不使用索引作为指示。
[0078]
与上述实施方式类似,整个nn参数集可以被分类成组,诸如在1d系数集中的每行、每列和每个位置(参见图1d的(b)部分)等。对nn参数集中要剪枝的组的重要性进行优先级排序,例如从最不重要的组到最重要的组。当需要剪枝时,将向解码器发送指示,诸如要被剪枝的参数的百分比。通过获取这样的信息,解码器可以从解码器已知的最不重要的组执行剪枝,直到满足百分比。在一个实施方式中,所发送的指示可以取决于图片类型或切片类型。例如,在对i切片/图片进行编码时,与在对b或p切片/图像进行编码时相比,参数的某一部分可能更重要。在另一示例中,在对b或p切片/图片进行编码时,与在对i切片/图片进行编码时相比,较大百分比的参数可以被剪枝。
[0079]
在实施方式中,如果视频编码系统中存在多于一个nn参数集,诸如具有用于不同模块的多个参数集,则跨不同参数集的剪枝可能需要剪枝操作的适当信号。在一个实施方式中,首先用信号通知多个nn参数集。对于每个nn参数集,稍后用信号通知特定nn参数集内的组的一个或更多个剪枝索引。
[0080]
在实施方式中,可以在视频编码系统中的各个层级操作剪枝选择,例如,在序列层级(序列参数集(sequence parameter set,sps)标志)、图片层级(图片参数集(picture parameter set,pps)标志或图片标头)、切片层级(切片层级集标志)等。在一个实施方式中,序列层级标志被设置成指示在编码比特流中可以使用剪枝。当该sps标志为真时,对于每个图片,图片层级标志被设置成指示当前图片中的nn参数集是否需要被剪枝。如果是,则可以应用上述方法。在另一个实施方式中,序列层级标志被设置成指示在编码比特流中可以使用剪枝。当该sps标志为真时,对于每个图片,图片层级信息被设置成指示当前图片中的nn参数集需要被剪枝的百分比。如果该值为非零,则可以应用上述方法。
[0081]
在实施方式中,上述剪枝选项和控制参数(诸如操作点(哪个图片等)、选择索引、要被剪枝的百分比)通过sei消息发送以指示nn参数集的可选剪枝部分。这尤其对于图像编码是可行的,并且nn参数集适用于图像编码系统中的后重构阶段。在这种情况下,解码器可以选择剪枝的程度或者是否剪枝自己的选择。sei消息可以用作优化解码图像质量和复杂度的可选信息。
[0082]
图6是示出了根据实施方式的基于神经网络的视频编码的剪枝方法(600)的流程图。在一些实施方式中,图6的一个或更多个处理块可以由解码器(310)执行。在一些实施方式中,图6的一个或更多个处理块可以由与解码器(310)分开或包括解码器(310)的另一设备或设备组诸如编码器(303)来执行。
[0083]
参照图6,在第一块(610)中,方法(600)包括:将神经网络的参数分类成组。
[0084]
在第二块(620)中,方法(600)包括:设置指示组中的第一组要被剪枝的第一索引和指示组中的第二组不被剪枝的第二索引。
[0085]
在第三块(630)中,方法(600)包括:将所设置的第一索引和所设置的第二索引传输到解码器。基于所传输的第一索引和所传输的第二索引,使用剪枝组中的第一组的参数来处理当前块。例如,可以使用剪枝组中的第一组的参数对当前块执行滤波操作。
[0086]
方法(600)还可以包括:设置序列参数集(sequence parameter set,sps)标志,序列参数集标志指示是否在编码比特流中执行剪枝,并且基于sps标志被设置成指示在编码比特流中执行剪枝,设置图片参数集(picture parameter set,pps)标志和/或图片层级信息,图片参数集标志指示神经网络的一个或更多个参数是否要被剪枝,图片层级信息指示神经网络的要被剪枝的参数的百分比。
[0087]
方法(600)还可以包括:将所设置的pps标志和所设置的图片层级信息传输到解码器。基于所传输的pps标志指示参数中的一个或更多个参数要被剪枝以及所传输的图片层级信息,可以使用下述参数来对当前块进行滤波,其中所述参数的百分比被剪枝,直至达到所述百分比。
[0088]
可以经由补充增强信息(sei)消息将所设置的第一索引和所设置的第二索引传输到解码器。
[0089]
神经网络的参数可以被布置在二维(2d)阵列中,神经网络的参数被分类到的组可以包括2d阵列的行、列和位置中的任何一个或任何组合,并且第一索引和第二索引可以是包括在二进制掩码中的二进制指示符。
[0090]
图7是示出了根据实施方式的基于神经网络的视频编码的剪枝方法(700)的流程图。在一些实施方式中,图7的一个或更多个处理块可以由解码器(310)执行。在一些实施方式中,图7的一个或更多个处理块可以由与解码器(310)分开或包括解码器(310)的另一设备或设备组诸如编码器(303)来执行。
[0091]
参照图7,在第一块(710)中,方法(700)包括:将神经网络的参数分类成组。
[0092]
在第二块(720)中,方法(700)包括:设置组中的第一组的第一优先级和组中的第二组的第二优先级,第二优先级小于第一优先级。
[0093]
在第三块(730)中,方法(700)包括:将所设置的第一优先级、所设置的第二优先级以及神经网络的要被剪枝的参数的百分比传输到解码器。使用下述参数来处理当前块:所述参数的百分比被剪枝,从组中具有第二优先级的第二组开始,接着是组中具有第一优先级的第一组,直至达到所述百分比。
[0094]
基于图片是b或p切片或图片,神经网络的要被剪枝的参数的百分比可以较大,并且基于图片是i切片或图片,神经网络的要被剪枝的参数的百分比可以较小。
[0095]
尽管图7示出了方法(700)的示例块,但是在一些实施方式中,与图7中所描绘的这些块相比,方法(700)可以包括附加的块、更少的块、不同的块或不同地布置的块。附加地或替选地,方法(700)的两个或更多个块可以并行执行。
[0096]
图8是根据实施方式的用于基于神经网络的视频编码的剪枝装置(800)的简化框图。
[0097]
参照图8,装置(800)包括分类代码(810)、第一设置代码(820)、第一传输代码
(830)、第二设置代码(840)、第二传输代码(850)。
[0098]
分类代码(810)被配置成使至少一个处理器将神经网络的参数分类成组。
[0099]
第一设置代码(820)被配置成使至少一个处理器设置指示组中的第一组要被剪枝的第一索引和指示组中的第二组不被剪枝的第二索引。
[0100]
第一传输代码(830)被配置成使至少一个处理器将所设置的第一索引和所设置的第二索引传输到解码器。基于所传输的第一索引和所传输的第二索引,使用剪枝组中的第一组的参数来处理当前块。
[0101]
第二设置代码(840)可以被配置成使至少一个处理器设置组中的第一组的第一优先级和组中的第二组的第二优先级,第二优先级小于第一优先级。第二传输代码(850)可以被配置成使至少一个处理器将所设置的第一优先级、所设置的第二优先级以及神经网络的要被剪枝的参数的百分比传输到解码器。可以使用下述参数对当前块进行滤波,其中所述参数的百分比被剪枝,从组中具有第二优先级的第二组开始,接着是组中具有第一优先级的第一组,直至达到所述百分比。
[0102]
基于图片是b或p切片或图片,神经网络的要被剪枝的参数的百分比可以较大,并且基于图片是i切片或图片,神经网络的要被剪枝的参数的百分比可以较小。
[0103]
第二设置代码(840)可以被配置成使至少一个处理器设置序列参数集(sps)标志,序列参数集标志指示是否在编码比特流中执行剪枝,并且基于sps标志被设置成指示在编码比特流中执行剪枝,设置图片参数集(pps)标志和/或图片层级信息,图片参数集标志指示神经网络的一个或更多个参数是否要被剪枝,图片层级信息指示神经网络的要被剪枝的参数百分比。
[0104]
第二传输代码(850)可以被配置成使至少一个处理器将所设置的pps标志和所设置的图片层级信息传输到解码器。基于所传输的pps标志指示参数中的一个或更多个参数要被剪枝以及所传输的图片层级信息,可以使用下述参数来对当前块进行处理和/或滤波,其中所述参数的百分比被剪枝,直至达到所述百分比。
[0105]
可以经由补充增强信息(sei)消息将所设置的第一索引和所设置的第二索引传输到解码器。
[0106]
神经网络的参数可以被布置在二维(2d)阵列中,神经网络的参数被分类到的组包括2d阵列的行、列和位置中的任何一个或任何组合,并且第一索引和第二索引是包括在二进制掩码中的二进制指示符。
[0107]
图9是适于实现实施方式的计算机系统(900)的图。
[0108]
可以使用任何合适的机器代码或者计算机语言来对计算机软件进行编码,其可能经受汇编、编译、链接或者类似机制,以创建包括可以由计算机中央处理单元(central processing units,cpu)、图形处理单元(graphics processing units,gpu)等直接执行或者通过解释、微代码执行等执行的指令的代码。
[0109]
该指令可以在各种类型的计算机或者其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
[0110]
图9中示出的用于计算机系统(900)的部件本质上是示例性的,并且不旨在对实现实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(900)的实施方式中示出的部件中的任何一个部件或部件的组合有关的任
何依赖性或要求。
[0111]
计算机系统(900)可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(诸如:击键、滑动、数据手套移动)、音频输入(诸如:语音、拍打)、视觉输入(诸如:姿势)、嗅觉输入(未描绘)实现的输入作出响应。人机接口设备还可以用于捕获不一定与人的意识输入直接有关的某些介质,诸如,音频(诸如:语音、音乐、环境声音)、图像(诸如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(诸如二维视频、包括立体视频的三维视频)。
[0112]
输入人机接口设备可以包括以下中的一个或更多个(描绘的每个中的仅一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套、操纵杆(905)、麦克风(906)、扫描仪(907)、摄像装置(908)。
[0113]
计算机系统(900)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括:触觉输出设备(例如,通过触摸屏(910)、数据手套或操纵杆(905)的触觉反馈,但是也可以存在不充当输入设备的触觉反馈设备)、音频输出设备(诸如:扬声器(909)、头戴式耳机(未描绘)、视觉输出设备(诸如屏幕(910),包括阴极射线管(crt)屏幕、液晶显示器(lcd)屏幕、等离子屏幕、有机发光二极管(oled)屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力——其中一些屏幕可以能够输出二维视觉输出或通过诸如立体图形输出的方式输出多于三维输出;虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘))、以及打印机(未描绘)。图形适配器(950)生成图像并将图像输出至触摸屏(910)。
[0114]
计算机系统(900)还可以包括人类可访问的存储设备及其相关联的介质,诸如包括具有cd/dvd等介质(921)的cd/dvdrom/rw(920)的光学介质、拇指驱动器(922)、可移动硬盘驱动器或固态驱动器(923)、诸如磁带和软盘的传统磁介质(未描绘)、基于专用rom/asic/pld的设备诸如安全软件狗(未描绘)等。
[0115]
本领域技术人员还应当理解,结合当前公开内容的主题使用的术语“计算机可读介质”不包括传输介质、载波或者其他暂态信号。
[0116]
计算机系统(900)还可以包括至一个或更多个通信网络(955)的接口。网络(955)可以例如是无线的、有线的、光的。网络(955)还可以是局域的、广域的、城域的、车载的和工业的、实时的、延时容忍的等。网络(955)的示例包括局域网,诸如以太网、无线lan、蜂窝网络(包括全球移动通信系统(gsm)、第三代(3g)、第四代(4g)、第五代(5g)、长期演进(lte)等)、电视有线或无线广域数字网络(包括有线电视、卫星电视和地面广播电视)、车载的和工业的(包括canbus)等。某些网络(955)通常需要附接至某些通用数据端口或外围总线(949)(诸如,例如计算机系统(900)的通用串行总线(usb)端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线而集成到计算机系统(900)的核中(例如,集成到pc计算机系统的以太网接口或集成到智能电话计算机系统的蜂窝网络接口(954))。计算机系统(900)可以使用这些网络(955)中的任何网络与其他实体进行通信。这样的通信可以是单向仅接收(例如广播电视)、单向仅发送(例如至某些canbus装置的canbus)或者是双向的,例如至使用局域数字网络或广域数字网络的其他计算机系统。可以在如上所述的这些网络(955)和网络接口(954)中的每一个上使用某些协议和协议栈。
[0117]
以上提及的人机接口设备、人类可访问存储设备和网络接口(954)可以附接至计算机系统(900)的核(940)。
[0118]
核(940)可以包括一个或更多个中央处理单元(cpu)(941)、图形处理单元(gpu)(942)、现场可编程门阵列(field programmable gate areas,fpga)(943)形式的专用可编程处理单元、用于某些任务的硬件加速器(944)等。这些设备,连同只读存储器(rom)(945)、随机存取存储器(ram)(946)、内部大容量存储装置诸如内部非用户可访问硬盘驱动器、固态驱动器(ssd)等(947),可以通过系统总线(948)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(948),以通过另外的cpu、gpu等实现扩展。外围设备可以直接地或通过外围总线(949)附接至核的系统总线(948)。外围总线的架构包括外围部件互连(pci)、usb等。
[0119]
cpu(941)、gpu(942)、fpga(943)和加速器(944)可以执行某些指令,这些指令可以组合构成前述的计算机代码。该计算机代码可以被存储在rom(945)或ram(946)中。过渡数据也可以存储在ram(946)中,而永久数据可以存储在例如内部大容量存储装置(947)中。可以通过使用缓存存储器来实现针对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个cpu(941)、gpu(942)、大容量存储装置(947)、rom(945)、ram(946)等紧密关联。
[0120]
计算机可读介质上可以具有计算机代码,该计算机代码用于执行各种由计算机实现的操作。介质和计算机代码可以是针对实施方式的目的而专门设计和构造的介质和计算机代码,或者它们可以是计算机软件领域的技术人员公知且可获得的类型。
[0121]
作为示例而非限制的方式,具有架构(900)特别是核(940)的计算机系统可以通过处理器(包括cpu、gpu、fpga、加速器等)执行包含在一个或更多个有形计算机可读介质中的软件来提供功能。这样的计算机可读介质可以是与如以上介绍的用户可访问大容量存储装置以及作为非暂态本质的核(940)的某些存储装置诸如内核内部大容量存储装置(947)或rom(945)相关联的介质。可以将实现各种实施方式的软件存储在这样的设备中并且由核(940)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储设备或芯片。软件可以使核(940)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在ram(946)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或可替选地,计算机系统可以通过逻辑硬连线或以其他方式体现在电路(例如,加速器(944))中来提供功能,其可以代替软件或与软件一起操作,以执行本文描述的特定处理或特定处理的特定部分。在适当的情况下,对软件的提及可以包含逻辑,反之对逻辑的提及也可以包含软件。在适当的情况下,对计算机可读介质的提及可以包含存储用于执行的软件的电路(例如,集成电路(integrated circuit,ic))、体现用于执行的逻辑的电路或上述两者。实施方式包含硬件和软件的任何合适的组合。
[0122]
尽管本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替换等效物。因此能够理解,本领域技术人员能够设想出多种系统和方法,这些系统和方法虽然在本文中没有明确示出或描述,但体现公开内容的原理并且因此落入其精神和范围内。
再多了解一些

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

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

相关文献