神经图像压缩中的逐块熵编码方法与流程

未命名 09-08 阅读:95 评论:0

神经图像压缩中的逐块熵编码方法
交叉引用
1.本技术要求于2021年6月18日提交的美国临时申请第63/212,469号的优先权,该临时申请的公开内容通过引用整体结合在本技术中。
技术领域
2.本公开的实施例涉及神经图像压缩中的逐块熵编码系统和方法。


背景技术:

3.在基于深度神经网络的视频或图像编码框架中,通过利用大量训练数据集和复杂的加工学习算法,可以从输入到输出联合地优化不同的模块,以改善最终目标(例如,最小化速率失真损失)。相比之下,传统的混合视频编解码器通常专注于优化单个模块,这可能不会导致整体性能的编码增益。因此,端到端(e2e,end-to-end)优化的神经图像压缩(nic,neural image compression)被设计为整体优化以实现更好的编码性能。
4.最近,iso/iec mpeg(jtc 1/sc 29/wg 11)一直在积极地寻找未来视频编码技术标准化的潜在需求。iso/iec jpeg建立了专注于基于ai的端到端神经图像压缩的jpeg-ai组。同时,许多技术公司也资助了nic的专门研究项目。最近的方法的成功使工业界对先进的神经图像和视频压缩方法产生了越来越多的兴趣。
5.nic的一般框架描述为以下步骤。给定输入图像x,nic的目标是使用该图像作为深度神经网络(dnn,deep neural network)编码器的输入,来计算用于存储和传输的紧凑的压缩表示。然后,该压缩表示将被量化用于算术编码以生成码流。该码流将被返回到算术解码,该算数解码将被用作dnn解码器的输入以重建图像。此外,可以使用超先验(hyperprior)和上下文模型来进一步改善压缩性能。
6.在模型训练期间,优化速率失真(r-d,rate-distortion)损失以实现重建图像的失真损失)与具有折衷超参数λ的紧凑表示的比特消耗r之间的折衷,如以下等式1所示:其中x是输入图像,是重建图像,并且是压缩表示。


技术实现要素:

7.本公开的实施例提供了一种在端到端(e2e)框架上,优化图像压缩的速率失真性能的逐块熵编码方法。e2e优化的框架可以是基于dnn的图像或视频编解码框架,该框架对于编码器和解码器都进行了良好的预训练。
8.根据本公开的实施例,提供了一种由视频编码器中的至少一个处理器执行的方法。该方法包括:接收包括图像的码流;将图像分区成多个块;由基于神经网络的编码器压缩多个块中的每一个块;通过获得图像中的多个块中的每个块的压缩特征,来获得压缩特征;由熵编码器处理压缩特征以生成第一压缩码流;通过级联压缩特征获得多个重塑的压缩特征;由熵编码器处理多个重塑的压缩特征以生成第二压缩码流;以及基于第二压缩码
流对包括图像的码流进行编码。
9.根据本公开的实施例,提供了一种系统,该系统包括:至少一个存储器,其被配置为存储计算机程序代码;以及至少一个处理器,其被配置为访问计算机程序代码并如计算机程序代码所指示的进行操作。计算机程序代码包括编码代码,该编码代码被配置为使至少一个处理器:将码流中的图像分区成多个块;由基于神经网络的编码器压缩多个块中的每一个块;通过获得图像中的多个块中的每个块的压缩特征,来获得压缩特征;由熵编码器处理压缩特征以生成第一压缩码流;通过级联压缩特征获得多个重塑的压缩特征;由熵编码器处理多个重塑的压缩特征以生成第二压缩码流;以及基于第二压缩码流对包括图像的码流进行编码。
10.根据本公开的实施例,提供了一种存储计算机代码的非易失性计算机可读介质,该计算机代码被配置为在由至少一个处理器执行时使至少一个处理器实施视频编码器:接收包括图像的码流;将图像分区成多个块;由基于神经网络的编码器压缩多个块中的每一个块;通过获得图像中的多个块中的每个块的压缩特征来获得压缩特征;由熵编码器处理压缩特征以生成第一压缩码流;通过级联压缩特征获得多个重塑的压缩特征;由熵编码器处理多个重塑的压缩特征以生成第二压缩码流;以及基于第二压缩码流对包括图像的码流进行编码。
附图说明
11.根据以下详细描述和附图,所公开的主题的其它特征、性质和各种优点将更加明显,其中:
12.图1是根据实施例的通信系统的简化框图的示意图。
13.图2是根据实施例的通信系统的简化框图的示意图。
14.图3是根据实施例的解码器的简化框图的示意图。
15.图4是根据实施例的编码器的简化框图的示意图。
16.图5图示了根据本公开实施例的可以由编码器执行的nic编码方法。
17.图6图示了根据本公开实施例的可以由解码器执行的nic解码方法600。
18.图7是根据实施例的计算机代码的框图。
19.图8是根据实施例的计算机代码的框图。
20.图9是适合于实施本公开的实施例的计算机系统的图。
具体实施方式
21.图1是根据本技术公开的实施例的通信系统100的简化框图。通信系统100包括至少两个终端(110,120),所述至少两个终端可通过网络150彼此通信。对于单向数据传输,第一终端110可在本地对视频数据进行编码以通过网络150传输到另一终端120。第二终端220可从网络150接收其他终端的已编码视频数据,对已编码视频数据进行解码并显示恢复的视频数据。单向数据传输在媒体服务等应用中是较常见的。
22.图1示出了第二对终端130和140,来支持已编码视频的双向传输,所述双向传输可例如在视频会议期间发生。对于双向数据传输,终端130和终端140中的每个终端可对本地采集的视频数据进行编码以通过网络150传输到终端130和终端140中的另一终端。终端130
和终端140中的每个终端还可接收由终端130和终端140中的另一终端传输的已编码视频数据,且可对所述已编码视频数据进行解码,并在本地显示设备上显示恢复的视频数据。
23.在图1的实施例中,终端110-140可为服务器、个人计算机和智能电话,和/或任意其他类型的终端。例如,终端110-140可以是膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络150表示在终端110-140之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本论述的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本技术公开的操作来说可能是无关紧要的。
24.作为实施例,图2示出视频编码器和视频解码器在流式传输环境中的放置方式。本技术所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字tv、在包括cd、dvd、存储棒等的数字介质上存储压缩视频等等。
25.如图2所示,流式传输系统200可包括采集子系统213,所述采集子系统可包括视频源201和编码器203。所述视频源可以是,例如数码相机,并用于创建未压缩的视频样本流202。相较于已编码的视频码流,未压缩的视频样本流202可以提供高数据量,未压缩的视频样本流202可由编码器203处理,所述编码器203耦接到相机201。编码器203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频样本流,已编码的视频码流204可以包括较低数据量,其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端206可访问流式传输服务器205以检索视频比特流209,所述视频比特流209为所述已编码的视频码流204的副本。
26.在实施例中,流传输服务器205还可以用作媒体感知网络元件(mane,media-aware network element)。例如,流传输服务器205可以被配置为修剪已编码视频码流204,以便为一个或多个流传输客户端206定制可能不同的码流。在实施例中,mane可以与流传输系统200中的流传输服务器205分开提供。
27.流传输客户端206可以包括视频解码器210和显示器212。视频解码器210可以例如对视频码流209进行解码,所述视频码流209为已编码视频码流204的输入副本,并且视频解码器210创建可以在显示器212或另一渲染设备(未描绘)上渲染的输出视频样本流211。在一些流传输系统中,可以根据某些视频编解码/压缩标准对视频码流204和209进行编码。这种标准的示例包括但不限于itu-t建议h.265。正在开发的视频编解码标准被非正式地称为下一代视频编解码(vvc,versatile video coding)。本公开的实施例可以用于vvc的上下文中。
28.图3示出了根据本公开实施例的附接到显示器212的视频解码器210的示例性功能框图。
29.视频解码器210可以包括信道312、接收器310、缓冲存储器315、熵解码器/解析器320、缩放器/逆变换单元351、帧内图片预测单元352、运动补偿预测单元353、聚合器355、环路滤波器单元356、参考图片存储器357和当前图片存储器358。在至少一个实施例中,视频解码器210可以包括集成电路、一系列集成电路和/或其它电子电路。视频解码器210还可以部分地或全部地体现为软件,所述软件运行在具有相关联的存储器的一个或多个cpu上。
30.在一些实施例和其他实施例中,接收器310可接收将由解码器210解码的一个或多
个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。可从信道312接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置的硬件/软件链路。接收器310可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器310可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器315可耦接在接收器310与熵解码器/解析器320(此后称为“解析器”)之间。当接收器310从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器315,或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,也可能需要缓冲存储器315,所述缓冲存储器可相对较大且可具有自适应性大小。
31.视频解码器210可包括解析器320以根据熵编码的已编码视频序列重建符号321。这些符号的类别包括例如用于管理解码器210的操作的信息,以及用以控制显示装置(例如,显示器212)的潜在信息,所述显示装置可耦接到如图4中所示的解码器。用于显示装置的控制信息可以是辅助增强信息(supplemental enhancement information,sei消息)或视频可用性信息(video usability information,vui)的参数集片段(未标示)。解析器320可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循本领域技术人员熟知的原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器320可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(group of pictures,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等等。解析器320还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。.
32.解析器320可对从缓冲存储器315接收的视频序列执行熵解码/解析操作,从而创建符号321。
33.取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号321的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器320从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器320与下文的多个单元之间的此类子群控制信息流。
34.除已经提及的功能块以外,解码器210可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
35.一单元是缩放器/逆变换单元351。缩放器/逆变换单元351可以从解析器320接收作为符号321的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元351可输出包括样本值的块,所述样本值可输入到聚合器355中。
36.在一些情况下,缩放器/逆变换单元351的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元352提供。在一些情况下,图片内预测单元352
使用从当前图片存储器358的当前(部分重建的)图片获取的周围已经重建的信息,生成与重建中的块具有相同大小和形状的块。在一些情况下,聚合器355基于每个样本,将帧内预测单元352生成的预测信息添加到由缩放器/逆变换单元351提供的输出样本信息中。
37.在其它情况下,缩放器/逆变换单元351的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元353可访问参考图片存储器357以提取用于预测的样本。在根据符号321对提取的样本进行运动补偿之后,这些样本可由聚合器355添加到缩放器/逆变换单元351的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元353从参考图片存储器357内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号321的形式而供运动补偿预测单元353使用,所述符号321例如是包括x、y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器357提取的样本值的内插、运动矢量预测机制等等。
38.聚合器355的输出样本可在环路滤波器单元356中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频码流中的参数,且所述参数作为来自解析器320的符号321可用于环路滤波器单元356。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
39.环路滤波器单元356的输出可以是样本流,所述样本流可输出到显示装置例如显示器212以及存储在参考图片存储器357,以用于后续的帧间图片预测。
40.一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。一旦已编码图片被完全重建,且已编码图片(通过例如解析器320)被识别为参考图片,则当前参考图片缓冲器可变为参考图片存储器357的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片存储器。
41.视频解码器210可根据例如itu-t h.265标准中记录的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法,从某种意义上说,它遵循视频压缩技术或标准的语法,如视频压缩技术文档或标准,特别是其中的配置文件中所指定的。此外,为了符合某些视频压缩技术或标准,已编码视频序列的复杂性可能在视频压缩技术或标准级别所定义的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(hypothetical reference decoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
42.在实施例中,接收器310可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器210用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
43.图4图示了根据本公开实施例的与视频源201相关联的视频编码器203的示例性功能框图。
44.视频编码器203可以包括例如作为源编码器430的编码器、编解码引擎432、(本地)
解码器433、参考图片存储器434、预测器435、发射器440、熵编码器445、控制器450和信道460。
45.编码器203可以从视频源201(不是编码器的一部分)接收视频样本,该视频源201可以采集要由编码器203编码的视频图像。
46.视频源201可提供将由编码器203编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适取样结构(例如y crcb4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源201可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源201可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
47.根据实施例,编码器203可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列443。施行适当的编码速度是控制器450的一个功能。控制器450控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器450设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,gop)布局,最大运动矢量搜索范围等。本领域技术人员可以容易的识别控制器450的其它功能,这些功能涉及针对某一系统设计优化的视频编码器203。
48.一些视频编码器在本领域技术人员容易识别为编码环路中操作。作为简单的描述,编码环路由源编码器430的编码部分组成(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于编码器203中的(本地)解码器433。解码器433重建符号以创建样本数据,当符号和编码视频比特流之间的压缩在某些视频压缩技术中是无损的时,(远程)解码器也将创建该样本数据。可以将重建的样本流输入到参考图片存储器434。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)对于本领域技术人员时熟知的。
[0049]“本地”解码器433的操作可与已在上文结合图3详细描述“远程”解码器210相同。然而,当符号可用且熵编码器445和解析器320能够无损地将符号编码/解码为已编码视频序列时,包括信道312,接收器310,缓冲存储器315和解析器320在内的视频解码器310的熵解码部分,可能无法完全在本地解码器433中实施。
[0050]
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本技术侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
[0051]
作为操作的一部分,源编码器430可执行运动补偿预测编码。参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,所述运动补偿预测编码对输入帧进行预测
性编码。以此方式,编码引擎432对输入帧的像素块与参考帧的像素块之间的差异进行编码,所述参考帧可被选作所述输入图片的预测参考。
[0052]
本地解码器433可基于源编码器430创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎432的操作可为有损过程。当已编码视频数据可在视频解码器(图4中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地解码器433复制解码过程,所述解码过程可由视频解码器对参考帧执行,且可使重建的参考帧存储在参考图片存储器434中。以此方式,编码器203可在本地存储重建的参考帧的副本,所述副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。
[0053]
预测器435可针对编码引擎432执行预测搜索。即,对于将要编码的新图片,预测器435可在参考图片存储器434中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器435可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器435获得的搜索结果,可确定输入图片可具有从参考图片存储器434中存储的多个参考图片取得的预测参考。
[0054]
控制器450可管理视频编码器430的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0055]
可在熵编码器445中对所有上述功能单元的输出进行熵编码。熵编码器445根据例如霍夫曼编码、可变长度编码、算术编码等本领域技术人员所熟知的技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0056]
传输器440可缓冲由熵编码器445创建的已编码视频序列,从而为通过通信信道460进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器440可将来自源编码器430的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
[0057]
控制器450可管理编码器203的操作。在编码期间,控制器450可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配帧内图片(i图片)、预测性图片(p图片)、或者双向预测性图片(b图片)。
[0058]
帧内图片(i图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。所属领域的技术人员了解i图片的变体及其相应的应用和特征。
[0059]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0060]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块.
[0061]
源图片通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,i图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素
块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行非预测编码。
[0062]
视频编码器203可根据例如itu-t h.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器203可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0063]
在实施例中,传输器440可在传输已编码的视频时传输附加数据。源编码器430可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图片和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0064]
根据本公开的实施例,提供了用于提高编解码效率的在nic中逐块熵编码的方法。
[0065]
例如,参考图5至图6,下面描述了本公开的示例方法。
[0066]
图5图示了根据本公开实施例的可以由本公开的编码器执行的nic编码方法。
[0067]
参考图5,对于待压缩的每个输入图像510,可以将输入图像510分区成更小的块520_1、520_2、
……
、520_n。例如,如图5所示,可以将输入图像510划分为八个块520_1、520_2、
……
、520_n。因为硬件可能具有内存限制,所以将高分辨率图像分割成小块进行并行处理是合理的。
[0068]
块520_1、520_2、
……
、520_n中的每一个可以由基于nn的编码器530压缩以获得压缩特征540_1、540_2、
……
、540_n。例如块520_1、520_2、
……
、520_n可以被压缩以分别获得压缩特征540_1、540_2、
……
、540_n。如图5所示,块520_1、520_2、
……
、520_n由基于nn的编码器530处理,使得八个压缩特征540_1、540_2、
……
、540_n分别对应于八个块520_1、520_2、
……
、520_n。根据实施例,压缩特征540_1、540_2、
……
、540_n可以是压缩特征块。
[0069]
每个压缩特征540_1、540_2、
……
、540_n可以由熵编码器560处理以生成压缩码流570。根据本公开的实施例,在熵编码之前,压缩特征540_1、540_2、
……
、540_n中的全部或一些可以被变换(例如,级联在一起)以得到重塑的压缩特征550_1、550_2、
……
、550_m,其中“m”可以小于“n”。换言之,重塑的压缩特征550_1、550_2、
……
、550_m的总数可以小于压缩特征540_1、540_2、
……
、540_n的总数。如图5所示,为了实现熵编码器的更好的压缩性能,八个压缩特征540_1、540_2、
……
、540_n被变换为四个重塑的压缩特征550_1、550_2、
……
、550_m。根据实施例,变换可以是级联、上采样或基于nn的方法。根据实施例,重塑的压缩特征550_1、550_2、
……
、550_m可以是重塑的压缩特征块。根据实施例,重塑的压缩特征块可以具有比从中获得它们的一个或多个压缩特征块更大的尺寸。
[0070]
在变换之后,重塑的压缩特征550_1、550_2、
……
、550_m可以由熵编码器560处理以生成压缩码流570,该压缩码流570可以被发送到例如解码器。
[0071]
图6图示了根据本公开实施例的可以由本公开的解码器执行的nic解码方法600。
[0072]
参考图6,压缩码流570由熵解码器610处理以生成解压缩特征620_1、620_2、
……
、620_m。根据实施例,解压缩特征620_1、620_2、
……
、620_m可以是解压缩特征块。
[0073]
解压缩特征620_1、620_2、
……
、620_m可以被变换(例如,划分)为重塑的解压缩特征630_1、630_2、
……
、630_n,其中“n”大于“m”。换言之,解压缩特征620_1、620_2、
……
、620_m的总数可以小于重塑的解压缩特征630_1、630_2、
……
、630_n的总数。根据实施例,重
塑的解压缩特征630_1、630_2、
……
、630_n可以是重塑的解压缩特征块。根据实施例,重塑的解压缩特征块可以具有比从中获得它们的一个或多个解压缩特征块更小的尺寸。
[0074]
根据实施例,解压缩特征620_1、620_2、
……
、620_m的总数可以与重塑的压缩特征550_1、550_2、
……
、550_m的总数相同,并且重塑的解压缩特征630_1、630_2、
……
、630_n的总数可以与压缩特征540_1、540_2、
……
、540_n的总数相同。然而,实施例不限于此,并且总数可以不同,例如如图5至图6所示。例如,作为非限制性示例实施例,可以有八个压缩特征540_1、540_2、
……
、540_n;四个重塑的压缩特征550_1、550_2、
……
、550_m;八个解压缩特征620_1、620_2、
……
、620_m;16个重塑的解压缩特征630_1、630_2、
……
、630_n。
[0075]
在获得重塑的解压缩特征630_1、630_2、
……
、630_n之后,重塑的解压缩特征630_1、630_2、
……
、630_n可以由基于nn的解码器640解码以获得重建块650。根据实施例,重建块650可以是重建图片。整个重建图片可以由后增强660进一步处理以提高重建图片的视觉质量。例如,后增强660可以包括去块和/或降噪。根据实施例,然后可以在显示器上显示重建图片。
[0076]
在传统的nic框架中,基于nn的熵编码器一次仅对压缩特征的单个块进行编码,并且仅逐块地评估熵模型的尺度和方差。根据本公开的实施例,多个块由基于nn的编码器处理,并且然后被组合在一起用于熵编码。
[0077]
在本公开的一个实施例中,在由本公开的基于nn的编码器和基于nn的解码器所利用的模型的训练期间,编码器和解码器可以被联合地或分开地训练。压缩特征和重塑的特征之间的变换操作也可以被添加到码流中,并且该信息可以被视为执行解码过程的解码器的信号。例如,根据本公开的实施例,执行图5中所示的编码过程的编码器可以在已编码码流中将编码器所使用的变换操作的指示符(例如,语法元素)发送到执行图6中所示的解码过程的解码器。解码器可以获得指示符,并且基于由指示符所发信号通知的变换,将解压缩特征变换为重塑的解压缩特征。例如,解码器可以使用对应于编码器所使用的变换的逆变换。
[0078]
根据实施例,压缩特征块、重塑的压缩特征块、解压缩特征块和/或重塑的解压缩特征块的形状可以是正方形或矩形。来自单一类型的块(例如,压缩特征块或解压缩特征块)中的每个块可以彼此形状和/或尺寸相同,或者可以与来自单一类型的块中的至少一个其它块的形状和/或尺寸不同。根据实施例,可以将单一类型的块(例如,压缩特征块或解压缩特征块)变换(例如,划分或组合)为不同的尺寸。
[0079]
根据实施例,可以提供至少一个处理器和存储计算机程序指令的存储器。计算机程序指令在由至少一个处理器执行时,实施编码器或解码器并且可以执行本公开中所描述的任何数量的功能。例如,参考图7,至少一个处理器可以实施编码器700。编码器700可以是nic编码器。计算机程序指令可以包括例如编码代码710和发送代码760,编码代码710被配置为使至少一个处理器对所接收的至少一个图片进行编码,发送代码760被配置为使至少一个处理器将码流发送到例如解码器,所述码流是从对至少一个图片进行编码而获得的。编码代码710可以包括例如划分代码720、第一获得代码730、第二获得代码740和第三获得代码750。
[0080]
根据本公开的实施例,划分代码720可以被配置为使至少一个处理器将图像划分为多个块。
[0081]
根据本公开的实施例,第一获得代码730可以被配置为使至少一个处理器通过对多个块进行编码来获得压缩特征。根据实施例,获得压缩特征块。根据实施例,通过使用基于nn的编码器,使用神经网络对多个块进行编码。
[0082]
根据本公开的实施例,第二获得代码740可以被配置为使至少一个处理器通过变换压缩特征来获得重塑的压缩特征,重塑的压缩特征的总数小于压缩特征的总数。根据实施例,获得重塑的压缩特征块,并且变换压缩特征包括将压缩特征块变换为重塑的压缩特征块,所述重塑的压缩特征块大于压缩特征块。根据实施例,变换包括级联、上采样或基于nn的方法。
[0083]
根据本公开的实施例,第三获得代码750可以被配置为使至少一个处理器通过对重塑的压缩特征进行熵编码,来获得包括已编码图像的码流。根据实施例,第三获得代码750可以被进一步配置为使至少一个处理器在码流内包含指示符(例如,语法元素),所述指示符指示编码器700所使用的变换操作。
[0084]
根据实施例,压缩特征块或重塑的压缩特征块各自均为正方形或矩形。根据实施例,重塑的压缩特征块彼此形状相同。根据实施例,至少两个重塑的压缩特征块彼此形状不同。根据实施例,重塑的压缩特征块彼此尺寸相同。根据实施例,至少两个重塑的压缩特征块彼此尺寸不同。
[0085]
根据实施例,如本领域普通技术人员基于上述描述所理解的,对应于以上过程的解码器侧过程可以通过解码代码来实现,所述解码代码用于对图片进行解码。
[0086]
例如,参考图8,至少一个处理器可以实施解码器800。解码器800可以是nic解码器。存储在解码器800的存储器中的计算机程序指令可以包括例如接收代码810、解码代码820和显示代码870。
[0087]
接收代码810可以被配置为使至少一个处理器接收包括至少一个已编码图像的码流。
[0088]
解码代码820可以被配置为使至少一个处理器对所接收的至少一个已编码图像进行解码。根据实施例,解码代码820可以包括例如第一获得代码830、第二获得代码840、第三获得代码850和后增强代码860。
[0089]
第一获得代码830可以被配置为使至少一个处理器通过对码流进行熵解码,来获得已编码图像的解压缩特征。根据实施例,获得解压缩特征块。
[0090]
第二获得代码840可以被配置为使至少一个处理器通过变换解压缩特征,来获得重塑的解压缩特征,重塑的解压缩特征的总数大于解压缩特征的总数。根据实施例,获得重塑的解压缩特征块,并且变换解压缩特征包括将解压缩特征块变换为重塑的解压缩特征块,所述重塑的解压缩特征块小于压缩特征块。根据实施例,变换包括将解压缩特征块划分为重塑的解压缩特征块。根据实施例,第二获得代码840可以被进一步配置为使至少一个处理器获得包括在码流中的指示符,并且基于由指示符发信号通知的变换,将解压缩特征变换为重塑的解压缩特征。
[0091]
第三获得代码850可以被配置为使至少一个处理器通过对重塑的解压缩特征进行解码来获得重建图像。根据实施例,通过使用基于nn的解码器,使用神经网络对重塑的解压缩特征进行解码。
[0092]
后增强代码860可以被配置为使至少一个处理器对重建图像执行后增强。后增强
可以包括例如去块和/或降噪。
[0093]
显示代码870可以被配置为使至少一个处理器在执行后增强之后控制显示器来显示重建图像。
[0094]
根据实施例,解压缩特征块或重塑的解压缩特征块各自均为正方形或矩形。根据实施例,重塑的解压缩特征块彼此形状相同。根据实施例,至少两个重塑的解压缩特征块彼此形状不同。根据实施例,重塑的解压缩特征块彼此尺寸相同。根据实施例,至少两个重塑的解压缩特征块彼此尺寸不同。
[0095]
本公开的实施例改进了先前的e2e图像压缩方法。
[0096]
例如,本公开的实施例包括在编码器侧和解码器侧的分割块和变换块的方面,这以合理的压缩性能提高了编码器侧的处理速度,并减轻了解码器侧的内存负担。
[0097]
此外,本公开的实施例提供了适应各种类型的质量衡量指标的、灵活且通用的框架。
[0098]
上面描述的本公开的实施例的技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图9示出了计算机系统900,其适于实现所公开主题的实施例。
[0099]
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由计算机中央处理单元(cpu),图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。
[0100]
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
[0101]
图9所示的用于计算机系统900的组件本质上是示例性的,并不用于对实现本技术实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统900的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
[0102]
计算机系统900可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0103]
人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘901、鼠标902、触控板903、触摸屏910、数据手套、操纵杆905、麦克风906、扫描仪907以及照相机908。
[0104]
计算机系统900还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏910、数据手套或操纵杆905的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)。例如这些设备可以是音频输出设备(例如,扬声器909、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕910,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印
机(未示出)。
[0105]
计算机系统900还可以包括人可访问的存储设备及其相关介质,如包括具有cd/dvd的高密度只读/可重写式光盘(cd/dvd rom/rw)920或类似介质921的光学介质、拇指驱动器922、可移动硬盘驱动器或固体状态驱动器923,诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。
[0106]
本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
[0107]
计算机系统900还可以包括通往一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线949(例如,计算机系统900的usb端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统900的核心(例如,以太网接口集成到pc计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统900可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。这种通信可以包括与云计算环境955的通信。上述的每个网络和网络接口可使用某些协议和协议栈。
[0108]
上述的人机界面设备、人可访问的存储设备以及网络接口954可以连接到计算机系统900的核心940。
[0109]
核心940可包括一个或多个中央处理单元(cpu)941、图形处理单元(gpu)942、以现场可编程门阵列(fpga)943形式的专用可编程处理单元、用于特定任务的硬件加速器944等。这些设备以及只读存储器(rom)945、随机存取存储器946、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)947等可通过系统总线948进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线948,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线948,或通过外围总线949进行连接。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。图形适配器950可以包括在核心940中。
[0110]
cpu 941、gpu 942、fpga 943和加速器944可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在rom 945或ram 946中。过渡数据也可以存储在ram946中,而永久数据可以存储在例如内部大容量存储器947中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个cpu 941、gpu 942、大容量存储器947、rom 945、ram 946等紧密关联。
[0111]
所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本技术的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0112]
作为实施例而非限制,具有体系结构900的计算机系统,特别是核心940,可以作为处理器(包括cpu、gpu、fpga、加速器等)提供执行包含在一个或多个有形的计算机可读介质
中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心940的特定存储器,例如核心内部大容量存储器947或rom945。实现本技术的各种实施例的软件可以存储在这种设备中并且由核心940执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心940特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram946中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器944)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本技术包括任何合适的硬件和软件组合。
[0113]
虽然本技术已对多个非限制性的示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本技术的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本技术的原则,因此属于本技术的精神和范围之内。

技术特征:
1.一种由视频编码器中的至少一个处理器执行的方法,其特征在于,所述方法包括:接收包括图像的码流;将所述图像分区成多个块;由基于神经网络的编码器压缩所述多个块中的每一个块;通过获得所述图像中的所述多个块中的每个块的压缩特征,来获得压缩特征;由熵编码器处理所述压缩特征以生成第一压缩码流;通过级联所述压缩特征获得多个重塑的压缩特征;由所述熵编码器处理所述多个重塑的压缩特征以生成第二压缩码流;以及基于所述第二压缩码流对包括所述图像的所述码流进行编码。2.根据权利要求1的方法,其特征在于,所述获得压缩特征包括获得压缩特征块;并且所述级联所述压缩特征包括:将所述压缩特征块级联为重塑的压缩特征块,所述重塑的压缩特征块大于所述压缩特征块。3.根据权利要求2所述的方法,其特征在于,所述压缩特征块或所述重塑的压缩特征块各自均为正方形。4.根据权利要求2所述的方法,其特征在于,所述压缩特征块或所述重塑的压缩特征块各自均为矩形。5.根据权利要求2所述的方法,其特征在于,所述重塑的压缩特征块彼此形状相同。6.根据权利要求2所述的方法,其特征在于,至少两个所述重塑的压缩特征块彼此形状不同。7.根据权利要求2所述的方法,其特征在于,所述重塑的压缩特征块彼此尺寸相同。8.根据权利要求2所述的方法,其特征在于,至少两个所述重塑的压缩特征块彼此尺寸不同。9.根据权利要求1所述的方法,其特征在于,所述对所述码流进行编码包括:在已编码码流中包含指示符,所述指示符指示所述压缩特征是被级联。10.根据权利要求1所述的方法,其特征在于,进一步包括将所述已编码码流发送至解码器。11.一种系统,其特征在于,包括:至少一个存储器,被配置为存储计算机程序代码;以及至少一个处理器,被配置为访问所述计算机程序代码,并如所述计算机程序代码所指示的进行操作,所述计算机程序代码包括编码代码,所述编码代码被配置为使所述至少一个处理器:将码流中的图像分区成多个块;由基于神经网络的编码器压缩所述多个块中的每一个块;通过获得所述图像中的所述多个块中的每个块的压缩特征,来获得压缩特征;由熵编码器处理所述压缩特征以生成第一压缩码流;通过级联所述压缩特征获得多个重塑的压缩特征;由所述熵编码器处理所述多个重塑的压缩特征以生成第二压缩码流;以及基于所述第二压缩码流对包括所述图像的所述码流进行编码。
12.根据权利要求11所述的系统,其特征在于,所述压缩特征是压缩特征块;并且所述编码代码被配置为使所述至少一个处理器将所述压缩特征块级联为重塑的压缩特征块,所述重塑的压缩特征块大于所述压缩特征块。13.根据权利要求12所述的系统,其特征在于,所述压缩特征块或所述重塑的压缩特征块各自均为正方形。14.根据权利要求12所述的系统,其特征在于,所述压缩特征块或所述重塑的压缩特征块各自均为矩形。15.根据权利要求12所述的系统,其特征在于,所述重塑的压缩特征块彼此形状相同。16.根据权利要求12所述的系统,其特征在于,至少两个所述重塑的压缩特征块彼此形状不同。17.根据权利要求12所述的系统,其特征在于,所述重塑的压缩特征块彼此尺寸相同。18.根据权利要求12所述的系统,其特征在于,至少两个所述重塑的压缩特征块彼此尺寸不同。19.根据权利要求11所述的系统,其特征在于,所述编码代码被配置为使所述至少一个处理器在已编码码流中包含指示符,所述指示符指示所述压缩特征是被级联的。20.一种存储计算机代码的非易失性计算机可读介质,其特征在于,所述计算机代码被配置为在由至少一个处理器执行时使所述至少一个处理器实施视频编码器:接收包括图像的码流;将所述图像分区成多个块;由基于神经网络的编码器压缩所述多个块中的每一个块;通过获得所述图像中的所述多个块中的每个块的压缩特征来获得压缩特征;由熵编码器处理所述压缩特征以生成第一压缩码流;通过级联所述压缩特征获得多个重塑的压缩特征;由所述熵编码器处理所述多个重塑的压缩特征以生成第二压缩码流;以及基于所述第二压缩码流对包括所述图像的所述码流进行编码。

技术总结
提供了神经图像压缩中的逐块熵编码方法的系统和方法。一种方法包括:接收包括图像的码流;将图像分区成多个块;由基于神经网络的编码器压缩多个块中的每一个块;通过获得图像中的多个块中的每个块的压缩特征,来获得压缩特征;由熵编码器处理压缩特征以生成第一压缩码流;通过级联压缩特征获得多个重塑的压缩特征;由熵编码器处理多个重塑的压缩特征以生成第二压缩码流;以及基于第二压缩码流对包括图像的码流进行编码。像的码流进行编码。


技术研发人员:林晟 蒋薇 刘杉 王炜
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2022.06.16
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐