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

使用帧内预测残差的多尺度神经图像压缩方法和装置与流程

2022-07-10 10:05:15 来源:中国专利 TAG:

使用帧内预测残差的多尺度神经图像压缩方法和装置
相关申请的交叉引用本技术基于在美国专利和商标局于2020年9月3日提交的、申请号为63/074,405的美国临时专利申请和于2021年5月28日提交的、申请号为17/333,319的美国专利申请,并要求它们的优先权,这两个申请的公开内容通过引用整体并入本技术中。


背景技术:

iso/iec mpeg(国际标准化组织/国际电工委员会运动图像专家组)(jtc 1/sc 29/wg 11)(联合技术委员会1/第29分委员会/第11工作组)一直在积极地寻找未来视频编解码技术标准化的潜在需要。iso/iec jpeg(联合图像专家组)建立了聚焦于使用深度神经网络(dnn)的基于人工智能(ai)的端到端神经图像压缩的jpeg-ai小组。最近方法的成功为先进的神经图像和视频压缩方法带来了越来越多的工业利益。给定输入图像x,神经图像压缩(nic)的目标是使用图像x作为dnn编码器的输入来计算已压缩表示,已压缩表示对于存储和传输是紧凑的,然后,使用作为dnn解码器的输入来重建图像先前的nic方法采用变分自编码器(variational autoencoder,vae)结构,其中dnn编码器直接使用整个图像x作为其输入,该输入通过像黑盒子一样工作的一组网络层来计算输出表示对应地,dnn解码器将整个表示作为其输入,该输入通过像另一个黑盒子一样工作的另一组网络层来计算已重建已经证明,不是直接对原始的整个图像进行编码,而是基于块的帧内预测和残差编解码机制,在诸如高效视频编解码(hevc)和通用视频编解码(vvc)的现代视频编解码标准中,对于压缩图像帧非常有效。整个图像被分割为各种尺寸的块,通过沿各种不同角度方向复制先前已压缩块的边界像素,生成预测块。然后,对原始块和预测块之间的残差进行压缩。残差可以比原始像素更有效地被编码,并且可以实现更好的编码性能。多尺度(multi-scale)处理是提高像nic那样的图像重建任务的学习图像表示效率的另一种有效机制。通过以不同的尺度使用不同的编解码策略,可以实现更好的编码性能。


技术实现要素:

根据实施例,一种使用帧内预测残差的多尺度神经图像压缩方法,由至少一个处理器执行,并且包括:对输入图像进行下采样,基于先前恢复的预测图像,生成当前预测图像,以及基于下采样的输入图像与生成的当前预测图像之差,生成预测残差。该方法进一步包括:对生成的预测残差进行编码,对已编码预测残差进行解码,以及基于当前预测图像和已解码预测残差的相加,生成当前恢复的预测图像。该方法进一步包括:对当前恢复的预测图像进行上采样,基于输入图像与上采样的当前恢复的预测图像之差,生成尺度残差,以及对尺度残差进行编码。根据实施例,一种用于使用帧内预测残差的多尺度神经图像压缩的装置包括:至少一个存储器,其被配置为存储程序代码;以及至少一个处理器,其被配置为读取程序代码
并按照该程序代码的指令进行操作。程序代码包括:下采样代码,其被配置为使至少一个处理器对输入图像进行下采样;第一生成代码,其被配置为使至少一个处理器基于先前恢复的预测图像,生成当前预测图像;以及第二生成代码,其被配置为使至少一个处理器基于下采样的输入图像与生成的当前预测图像之差,生成预测残差。程序代码进一步包括:第一编码代码,其被配置为使至少一个处理器对生成的预测残差进行编码;第一解码代码,其被配置为使至少一个处理器对已编码预测残差进行解码;以及第三生成代码,其被配置为使至少一个处理器基于当前预测图像和已解码预测残差的相加,生成当前恢复的预测图像。程序代码进一步包括:上采样代码,其被配置为使至少一个处理器对当前恢复的预测图像进行上采样;第四生成代码,其被配置为使至少一个处理器基于输入图像与上采样的当前恢复的预测图像之差,生成尺度残差;以及第二编码代码,其被配置为使至少一个处理器对尺度残差进行编码。根据实施例,一种存储指令的非易失性计算机可读介质,该指令在由用于使用内部预测残差的多尺度神经图像压缩的至少一个处理器执行时,使该至少一个处理器:对输入图像进行下采样,基于先前恢复的预测图像,生成当前预测图像,以及基于下采样的输入图像与生成的当前预测图像之差,生成预测残差。当由至少一个处理器执行时,该指令进一步使该至少一个处理器:对生成的预测残差进行编码,对已编码预测残差进行解码,以及基于当前预测图像和已解码预测残差的相加,生成当前恢复的预测图像。当由至少一个处理器执行时,该指令进一步使该至少一个处理器:对当前恢复的预测图像进行上采样,基于输入图像与上采样的当前恢复的预测图像之差,生成尺度残差,以及对尺度残差进行编码。
附图说明
图1是根据实施例的其中可以实施本文描述的方法、装置和系统的环境的示意图。图2是图1的一个或多个设备的示例组件的框图。图3是根据实施例的用于使用帧内预测残差的多尺度神经图像压缩的编码器的框图。图4是根据实施例的用于基于块的帧内预测的装置的框图。图5是根据实施例的用于使用帧内预测残差的多尺度神经图像压缩的解码器的框图。图6是根据实施例的分解的尺度残差编码dnn和分解的预测残差编码dnn的框图。图7是根据实施例的分解的尺度残差解码dnn和分解的预测残差解码dnn的框图。图8是根据实施例的使用帧内预测残差的多尺度神经图像压缩方法的流程图。图9是根据实施例的用于使用帧内预测残差的多尺度神经图像压缩装置的框图。
具体实施方式
本公开描述了一种使用来自基于块的帧内预测的多尺度残差,通过dnn对输入图像进行压缩的nic框架。图1是根据实施例的,可以实施本文所描述的方法、装置和系统的环境100的示意图。如图1所示,环境100可以包括用户设备110、平台120和网络130。环境100的设备可
以通过有线连接、无线连接或有线和无线连接的组合进行互连。用户设备110包括一个或多个设备,该一个或多个设备能够接收、生成、存储、处理和/或提供与平台120相关的信息。例如,用户设备110可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,智能眼镜或智能手表)或相似设备。在一些实施方式中,用户设备110可以从平台120接收信息和/或向平台120发送信息。平台120包括如本文中其它地方所描述的一个或多个设备。在一些实施方式中,平台120可以包括云服务器或云服务器组。在一些实施方式中,平台120可以被设计成模块化,使得软件组件可以根据特定需要被换入或换出。这样,可以容易地和/或快速地重新配置平台120以具有不同的用途。在一些实施方式中,如图所示,平台120可以被托管(hosted)在云计算环境122中。值得注意的是,虽然本文所述的实施方式将平台120描述为托管在云计算环境122中,但是在一些实施方式中,平台120不是基于云的(即,可以在云计算环境外部实现)或者可以是部分基于云的。云计算环境122包括托管平台120的环境。云计算环境122可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备110)了解托管平台120的系统和/或设备的物理位置和配置。如图所示,云计算环境122可以包括一组计算资源124(统称为“计算资源(computing resources)124”并分别称为“计算资源(computing resource)124”)。计算资源124包括一个或多个个人计算机、工作站计算机、服务器设备或其它类型的计算和/或通信设备。在一些实施方式中,计算资源124可以托管平台120。云资源可以包括在计算资源124中执行的计算实例、在计算资源124中提供的存储设备、由计算资源124提供的数据传输设备等。在一些实施方式中,计算资源124可以通过有线连接、无线连接或有线和无线连接的组合与其它计算资源124通信。进一步如图1所示,计算资源124包括一组云资源,例如一个或多个应用程序(“app”)124-1、一个或多个虚拟机(“vm”)124-2、虚拟化存储(“vs”)124-3、一个或多个管理程序(“hyp”)124-4等。应用程序124-1包括一个或多个软件应用程序,其可以提供给用户设备110和/或平台120,或由用户设备110和/或平台120访问。应用程序124-1无需在用户设备110上安装和执行软件应用程序。例如,应用程序124-1可以包括与平台120相关的软件,和/或,能够通过云计算环境122提供的任何其它软件。在一些实施方式中,一个应用程序124-1可以通过虚拟机124-2向或从一个或多个其它应用程序124-1发送/接收信息。虚拟机124-2包括机器(例如,计算机)的软件实现,该机器执行程序,类似于物理机。虚拟机124-2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机124-2对任何真实机的使用和对应程度。系统虚拟机可以提供完整系统平台,其支持完整操作系统(“os”)的执行。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实施方式中,虚拟机124-2可以代表用户(例如,用户设备110)执行,并且可以管理云计算环境122的基础架构,例如数据管理、同步或长期数据传输。虚拟化存储124-3包括一个或多个存储系统和/或一个或多个设备,该一个或多个
设备在计算资源124的存储系统或设备内使用虚拟化技术。在一些实施方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指逻辑存储从物理存储的抽象(或分离),以便可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员灵活地管理终端用户的存储。文件虚拟化可以消除在文件级别存取的数据与物理存储文件的位置之间的依赖性。这可以优化存储使用、服务器整合和/或无中断文件迁移的性能。管理程序(hypervisor)124-4可以提供硬件虚拟化技术,其允许多个操作系统(例如,“客户操作系统”)在诸如计算资源124的主计算机上同时执行。管理程序124-4可以向客户操作系统提供虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。网络130包括一个或多个有线和/或无线网络。例如,网络130可以包括蜂窝网络(例如,第五代(fifth generation,5g)网络、长期演进(long-term evolution,lte)网络、第三代(third generation,3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(public land mobile network,plmn)、局域网(local area network,lan)、广域网(wide area network,wan)、城域网(metropolitan area network,man)、电话网络(例如,公共交换电话网络(public switched telephone network,pstn))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等,和/或这些或其它类型的网络的组合。图1所示的设备和网络的数量和排列被作为示例来提供。实际上,与图1所示的设备和/或网络相比,可以有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或排列不同的设备和/或网络。此外,图1所示的两个或更多个设备可以在单个设备内实现,或者图1所示的单个设备可以实现为多个分布式设备。另外或可替代地,环境100的一组设备(例如,一个或多个设备)可以执行被描述为由环境100的另一组设备执行的一个或多个功能。图2是图1中一个或多个设备的示例组件的框图。设备200可以对应于用户设备110和/或平台120。如图2所示,设备200可以包括总线210、处理器220、存储器230、存储组件240、输入接口250、输出接口260和通信接口270。总线210包括允许设备200的组件之间进行通信的组件。处理器220以硬件、固件或硬件和软件的组合来实现。处理器220是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理组件。在一些实施方式中,处理器220包括一个或多个能够被编程以执行功能的处理器。存储器230包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器和/或光存储器),其存储供处理器220使用的信息和/或指令。存储组件240存储与设备200的操作和使用相关的信息和/或软件。例如,存储组件240可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、光盘(cd)、数字通用盘(dvd)、软盘、盒式磁带、磁带和/或另一类型的非易失性计算机可读介质,以及相应的驱动器。输入接口250包括允许设备200例如通过用户输入接收信息的组件,例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风。另外或可替代地,输入接口250可以包括用于感测信息的传感器(例如,全球定位系统(gps)组件、加速计、陀螺仪和/或致动器)。
输出接口260包括提供来自设备200的输出信息的组件,例如,显示器、扬声器和/或一个或多个发光二极管(led)。通信接口270包括类似收发器的组件(例如,收发器和/或单独的接收器和发送器),该组件使设备200能够例如通过有线连接、无线连接或有线和无线连接的组合与其它设备通信。通信接口270可以允许设备200从另一设备接收信息和/或向另一设备提供信息。例如,通信接口270可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、wi-fi接口、蜂窝网络接口等。设备200可以执行本文中所描述的一个或多个过程。设备200可以响应于处理器220执行由非易失性计算机可读介质(例如存储器230和/或存储组件240)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非易失性存储器设备。存储器设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。软件指令可以通过通信接口270从另一计算机可读介质或从另一设备读入存储器230和/或存储组件240。当被执行时,存储在存储器230和/或存储组件240中的软件指令可以使处理器220执行本文中所描述的一个或多个过程。另外或可替代地,可以使用硬件连线电路来代替软件指令或与软件指令结合以执行本文中所描述的一个或多个过程。因此,本文中所描述的实施方式不限于硬件电路和软件的任何特定组合。图2所示的组件的数量和排列被作为示例来提供。实际上,与图2所示的组件相比,设备200可能包括更多的组件、更少的组件、不同的组件或排列不同的组件。另外或可替代地,设备200的一组组件(例如,一个或多个组件)可以执行被描述为由设备200的另一组组件执行的一个或多个功能。现在将详细描述用于使用帧内预测残差的多尺度神经图像压缩的方法和装置。本文描述的实施例包括用于nic的多尺度基于块的帧内预测和残差编解码框架。使用了两种机制:对预测块与原始块之间的残差进行编码,而不是对原始像素进行编码;采用不同尺度的编解码策略,以大大提高nic的编解码效率。图3是根据实施例的用于使用帧内预测残差进行多尺度神经图像压缩的编码器300的框图。图4是根据实施例的用于基于块的帧内预测的装置400的框图。图5是根据实施例的用于使用帧内预测残差进行多尺度神经图像压缩的解码器500的框图。如图3所示,编码器300包括下采样器310、帧内预测部分320、减法器330、dnn预测残差编码器340、dnn预测残差解码器350、加法器360、上采样器370、减法器380和dnn尺度残差编码器390。在编码器侧,下采样器310对输入图像x进行下采样,以生成下采样图像x

。先前恢复的预测图像通过帧内预测部分320,生成预测图像减法器330生成预测残差r

,该预测残差是下采样图像x

与预测图像之差。dnn预测残差编码器340对预测残差r

进行编码,以生成已编码预测残差已编码预测残差通过dnn预测残差解码器350,生成已解码预测残差加法器360将已解码预测残差加回预测图像以生成新恢复或当前恢复的预测图像上采样器370对恢复的预测图像进行上采样,以生成上采样图像减法器380生成尺度残差r,该尺度残差r是原始输入图像x与上采样图像之差。dnn尺度残差编码器390
对尺度残差r进行编码,以生成已编码尺度残差在实施例中,下采样器310使用包括卷积层和池化层两者的下采样dnn,由输入图像x生成下采样图像x

。上采样器370使用上采样dnn,由输入的较低尺度信号生成输出的较高尺度信号。上采样dnn可以包括几个去卷积层。在实施例中,任何更复杂的dnn(诸如用于图像超分辨率的dnn)也可以用作上采样dnn。在实施例中,帧内预测部分320使用逐块帧内预测机制。下采样图像x

(和对应的预测残差r

)被分割成多个块,dnn预测残差编码器340基于预定义的扫描顺序对这些块逐个进行处理。如图4所示,用于基于块的帧内预测的装置400包括帧内预测部分410、减法器420、dnn预测残差编码器430和dnn预测残差解码器440。
1.给定先前已重建的或先前恢复的预测块集合帧内预测部分410(预测dnn)生成预测图像的当前预测块减法器420从下采样的输入图像x

的真实图像块b

x
中减去当前预测块以生成预测残差r

的对应预测残差块b
′r。预测dnn可以包括几个卷积层和去卷积层。例如,由图像超分辨率所使用的dnn可以用于这里,例如通过将输出尺寸改变为与输入尺寸相同。残差块b
′r通过dnn预测残差编码器430,生成已编码预测残差的已编码预测残差块已编码预测残差块通过dnn预测残差解码器440,生成已解码预测残差的已解码预测残差块已解码预测残差块可以被加回预测块以生成先前恢复的预测图像的新恢复的或新重建的块然后,将该新重建的块添加到先前已重建块集合中,并且帧内预测部分410对下一块进行处理。如图5所示,解码器500包括dnn尺度残差解码器510、dnn预测残差解码器520、帧内预测部分530、加法器540、上采样器550和加法器560。在解码器侧,如图3所述,dnn尺度残差解码器510基于已编码尺度残差生成已解码尺度残差dnn预测残差解码器520基于已编码预测残差生成已解码预测残差帧内预测部分530生成预测图像加法器540将预测图像与已解码预测残差相加,以生成恢复的预测图像上采样器550使用上采样dnn对恢复的预测图像进行上采样,以生成上采样图像加法器560将上采样图像加回已解码尺度残差以生成最终的已重建图像在实施例中,解码器侧的帧内预测部分530使用与编码器侧相同的逐块帧内预测机制。给定先前已重建的块集合预测dnn(与编码器侧相同)用于生成当前预测块该当前预测块被加回已解码预测残差的已解码残差块以生成已重建块然后,已重建块被添加到先前已重建的块集合中,并且帧内预测部分530对下一块进行处理。在实施例中,dnn尺度残差编码器390使用尺度残差编码dnn对残差r进行编码。dnn预测残差编码器340使用预测残差编码dnn对预测残差r

进行编码。dnn尺度残差解码器510
使用尺度残差解码dnn对已编码尺度残差进行解码。dnn预测残差解码器350或520使用预测残差解码dnn对已编码预测残差进行解码。尺度残差编码dnn和尺度残差解码dnn采用vae结构,预测残差编码dnn和预测残差解码dnn也采用vae结构。尺度残差编码/解码dnn和预测残差编码/解码dnn的结构可以不同或相同。本公开不对下采样dnn、上采样dnn、预测dnn、尺度残差编码/解码dnn和预测残差编码/解码dnn的网络结构施加任何限制。训练过程的目标是学习下采样dnn、预测dnn、尺度残差编码dnn、预测残差编码dnn、上采样dnn、尺度残差解码dnn和预测残差解码dnn。在训练过程中,例如使用对应的预训练dnn模型来初始化待学习的上述dnn的权重系数,或者通过将它们设置为随机数来初始化。然后,输入训练图像x通过图3中描述的编码过程,生成已编码残差和然后已编码残差r^和将通过图5中描述的解码过程,生成已解码残差和和已重建图像对于nic,存在两个竞争的目标:更好的重建质量与更少的比特消耗。质量损失函数用于测量重建质量,重建质量可以被称为失真损失,诸如峰值信噪比(psnr)、多尺度结构相似性(ms-ssim)或两者的加权组合。计算速率损失以测量已压缩表示的比特消耗。因此,使用折衷超参数λ来优化联合速率-失真(r-d)损失:其中,测量已解码残差与编码之前的原始残差相比的失真,该失真用作尺度残差编码dnn/尺度残差解码dnn和预测残差编码dnn/预测残差解码dnn的正则化损失。β是用于平衡正则化损失的重要性的超参数。图6是根据实施例的分解的尺度残差编码dnn和分解的预测残差编码dnn的框图。图7是根据实施例的分解的尺度残差解码dnn和分解的预测残差解码dnn的框图。使用较大的超参数λ进行训练,得到的压缩模型的失真较小但比特消耗较多,反之亦然。为了学习dnn的权重系数,将尺度残差编码dnn和预测残差编码dnn分解成两个部分,如图6所示。类似地,将尺度残差解码dnn和预测残差解码dnn分解成两个部分,如图7所示。如图6所示,尺度残差编码dnn被分解成神经尺度残差编码器610,接着是尺度残差编码器620。对应的处理模块也被分解为神经尺度残差编码模块,接着是尺度残差编码模块。类似地,预测残差编码dnn被分解为神经预测残差编码器630,接着是预测残差编码器640。对应的处理模块也被分解为神经预测残差编码模块,接着是预测残差编码模块。在实施例中,神经尺度残差编码器610或神经预测残差编码器630是dnn,其在训练过程期间被学习并在测试阶段被部署。另一方面,尺度残差编码器620或预测残差编码器640对于训练和测试是不同的。在测试阶段,尺度残差编码器620或预测残差编码器640是实际编码器,包括量化器,接着是熵编码器。而在训练阶段,尺度残差编码器620或预测残差编码器640使用统计数据采样器来近似实际量化器的效果,跳过熵编码器的训练。类似地,如图7所示,尺度残差解码dnn被分解为尺度残差解码器710,接着是神经尺度残差解码器720。对应的处理模块也被分解为尺度残差解码模块,接着是神经尺度残差解码模块。预测残差解码dnn被分解为预测残差解码器730,接着是神经预测残差解码器740。对应的处理模块也被分解为预测残差解码模块,接着是神经预测残差解码模块。
在实施例中,神经尺度残差解码器720或神经预测残差解码器740是dnn,其在训练过程期间被学习并在测试阶段被部署。另一方面,尺度残差解码器710或预测残差解码器730对于训练和测试是不同的。在测试阶段,尺度残差解码器710或预测残差解码器730是实际解码器,包括熵解码器,接着是逆量化器。而在训练阶段,跳过尺度残差解码器710或预测残差解码器730。本公开不对用于神经尺度残差编码器610、尺度残差编码器620、尺度残差解码器710、神经尺度残差解码器720、神经预测残差编码器630、预测残差编码器640、预测残差解码器730或神经预测残差解码器740的方法施加任何限制。换句话说,本公开的nic框架可以容纳不同类型的尺度残差编码dnn、尺度残差解码dnn、预测残差编码dnn和预测残差解码dnn。在实施例中,速率损失被进一步分解为:其中,每个和是分别与已压缩表示和的比特率相关的速率损失。超参数ρ平衡不同损失项的贡献。在实施例中,使用熵估计方法来计算这些速率损失和其中使用dnn速率损失估计器(在训练阶段中学习并在测试阶段部署的)。而且,正则化损失被进一步分解为:其中,每个或测量恢复的残差或与dnn尺度残差编码之前或预测残差编码之前的残差或相比的重建误差(例如,均方误差(mse)损失)。超参数γ平衡不同损失项的贡献。基于等式(2)和等式(3)两者,对于每个训练图像x,可以计算等式(1)的总损失。然后可以计算等式(1)的总损失的梯度,基于该梯度,通过反向传播来更新可学习dnn的权重系数。在学习过程的实施例中,下采样dnn、预测dnn、尺度残差编码dnn、预测残差编码dnn、上采样dnn、尺度残差解码dnn和预测残差解码dnn可以基于上述反向传播梯度,以端到端(e2e)方式一起更新。而且,这些dnn中的任何一个都可以单独学习。例如,下采样dnn和上采样dnn可以使用某个数据集(与上述训练过程中使用的数据集相同或不同)单独进行训练,并且它们可以在仅更新其余dnn的权重系数的上述训练过程中是固定的。图8是根据实施例的使用帧内预测残差的多速率神经图像压缩方法800的流程图。在一些实施方式中,图8的一个或多个处理框可由平台120执行。在一些实施方式中,图8的一个或多个处理框可由与平台120分开或包括平台120的另一设备或设备群组(诸如用户设备110)来执行。如图8所示,在操作810中,方法800包括对输入图像进行下采样。在操作820中,方法800包括基于先前恢复的预测图像,生成当前预测图像。在操作830中,方法800包括基于下采样的输入图像与生成的当前预测图像之差,生成预测残差。在操作840中,方法800包括对生成的预测残差进行编码。在操作850中,方法800包括对已编码预测残差进行解码。
在操作860中,方法800包括基于当前预测图像和已解码预测残差的相加,生成当前恢复的预测图像。在操作870中,方法800包括对当前恢复的预测图像进行上采样。在操作880中,方法800包括基于输入图像与上采样的当前恢复的预测图像之差,生成尺度残差。在操作890中,方法800包括对尺度残差进行编码。方法800可以进一步包括对已编码的尺度残差进行解码,并基于上采样的当前恢复的预测图像和已解码尺度残差的相加,生成已重建图像。所述对输入图像进行下采样、生成当前预测图像、对生成的预测残差进行编码、对已编码预测残差进行解码、对当前恢复的预测图像进行上采样、对尺度残差进行编码以及对已编码尺度残差进行解码可以分别使用神经网络。神经网络可以通过以下操作进行训练:基于已解码尺度残差与已编码尺度残差之间的重建误差以及已解码预测残差与已编码预测残差之间的重建误差来确定正则化损失,并且更新神经网络的权重系数以最小化所确定的正则化损失。神经网络可以进一步通过以下操作进行训练:基于输入图像和已重建图像确定失真损失,以及基于已编码尺度残差和已编码预测残差的比特率来确定速率损失。更新权重系数可以包括更新神经网络的权重系数,以最小化所确定的失真损失、所确定的速率损失和所确定的正则化损失。生成当前预测图像可以包括基于先前恢复的预测图像的先前恢复的预测块集合来生成当前预测块。生成预测残差可以包括基于所生成的当前预测块与下采样的输入图像的真实图像块之差来生成预测残差块。对所生成的预测残差进行编码可以包括对所生成的预测残差块进行编码,并且对已编码预测残差进行解码可以包括对已编码预测残差块进行解码。虽然图8示出了方法800的示例框,但是在一些实施方式中,方法800可以包括图8中描绘的那些框之外的框、比其更少的框、与其不同的框或与其布置不同的框。附加地或可选地,方法800的框中的两个或更多个框可以并行地执行。图9是根据实施例的使用帧内预测残差的多速率神经图像压缩装置900的框图。如图9所示,装置900包括下采样代码910、第一生成代码920、第二生成代码930、第一编码代码940、第一解码代码950、第三生成代码960、上采样代码970、第四生成代码980和第二编码代码990。下采样代码910被配置为使至少一个处理器对输入图像进行下采样。第一生成代码920被配置为使至少一个处理器基于先前恢复的预测图像生成当前预测图像。第二生成代码930被配置为使至少一个处理器基于下采样的输入图像与生成的当前预测图像之差来生成预测残差。第一编码代码940被配置为使至少一个处理器对所生成的预测残差进行编码。第一解码代码950被配置为使至少一个处理器对已编码预测残差进行解码。第三生成代码960被配置为使至少一个处理器基于当前预测图像和已解码预测残差的相加来生成当前恢复的预测图像。
上采样代码970被配置为使至少一个处理器对当前恢复的预测图像进行上采样。第四生成代码980被配置为使至少一个处理器基于输入图像与上采样的当前恢复的预测图像之差来生成尺度残差。第二编码代码990被配置为使至少一个处理器对尺度残差进行编码。该程序代码可以进一步包括:第二解码代码,被配置为使至少一个处理器对已编码尺度残差进行解码;以及第五生成代码,被配置为使至少一个处理器基于上采样的当前恢复的预测图像和已解码尺度残差的相加来生成已重建图像。下采样代码910、第一生成代码920、第一编码代码940、第一解码代码950、上采样代码970、第二编码代码990和第二解码代码可以分别使用神经网络。可以通过以下操作来对神经网络进行训练:基于已解码尺度残差与已编码尺度残差之间的重建误差以及已解码预测残差与已编码预测残差之间的重建误差来确定正则化损失,并且更新神经网络的权重系数以最小化所确定的正则化损失。可以进一步通过以下操作来对神经网络进行训练:基于输入图像和已重建图像确定失真损失,以及基于已编码尺度残差和已编码预测残差的比特率来确定速率损失。更新权重系数可以包括更新神经网络的权重系数,以最小化所确定的失真损失、所确定的速率损失和所确定的正则化损失。第一生成代码920可以进一步被配置为使至少一个处理器基于先前恢复的预测图像的先前恢复的预测块集合来生成当前预测块,并且第二生成代码930可以进一步被配置为使至少一个处理器基于所生成的当前预测块与下取样的输入图像的真实图像块之差来生成预测残差块。第一编码代码940可以进一步被配置为使至少一个处理器对所生成的预测残差块进行编码,并且第一解码代码950可以进一步被配置为使至少一个处理器对已编码预测残差块进行解码。与先前的e2e图像压缩方法相比,本文描述的实施例具有以下优点。实施例利用两种机制来提高nic编解码效率:对预测块与原始块之间的残差进行编码,而不是对原始像素进行编码;并且在不同尺度上使用不同的编解码策略。这些实施例包括灵活的框架,其适应用于来自缩放过程的残差和来自帧内预测过程的残差的不同的帧内预测方法和不同的神经编解码方法。实施例进一步包括适应各种类型的质量度量的灵活框架。这些方法可以单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。上述公开提供了说明和描述,但并不旨在穷举实现方式或将实现方式限制为所公开的精确形式。根据上述公开,修改和变化是可能的,或者可以从实现方式的实践中获取修改和变化。如本文所使用的,术语组件旨在被广泛地解释为硬件、固件或硬件和软件的组合。显而易见的,本文描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现方式的限制。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码—应当理解,软件和硬件可以被设计成基于本文的描述来实现系统和/或方法。
即使特征的组合在权利要求中被列举和/或在说明书中被公开,但这些组合并不旨在限制可能实现方式的公开。实际上,这些特征中的很多特征可以以未在权利要求中具体列举和/或在说明书中公开的方式进行组合。虽然下面列出的每个从属权利要求可以直接依赖于仅一个权利要求,但是可能实现方式的公开包括与权利要求集合中的所有其它权利要求组合的每个从属权利要求。本文使用的元素、动作或指令不可以被解释为关键的或必要的,除非明确地这样描述。而且,如本文所用,冠词“一个(a)”和“一种(an)”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本文所使用,术语“集合”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关和不相关项目的组合等),并且可与“一个或多个”互换使用。在仅意指一个项目的情况下,使用术语“一个”或类似语言。而且,如在本文使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。此外,短语“基于”旨在表示“至少部分地基于”,除非另有明确说明。
再多了解一些

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

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

相关文献