用于利用后滤波进行逐块神经图像压缩的方法和装置与流程

文档序号:30757811发布日期:2022-07-13 12:56阅读:469来源:国知局
用于利用后滤波进行逐块神经图像压缩的方法和装置与流程
用于利用后滤波进行逐块神经图像压缩的方法和装置
1.相关申请的交叉引用
2.本技术基于并且要求于2020年9月30日提交于美国专利商标局的美国临时专利申请第63/085,900号、于2020年9月30日提交于美国专利商标局的美国临时专利申请第63/085,908号、于2020年10月7日提交于美国专利商标局的美国临时专利申请第63/088,675号以及于2021年6月29日提交于美国专利商标局的美国专利申请第17/362,003号的优先权,上述美国临时专利申请和美国专利申请的公开内容通过引用整体并入本文。


背景技术:

3.通常,代替对整个原始图像直接进行编码,基于块的帧内预测和残差编码机制已经被证明对于在现代视频编码系统中诸如在高效率视频编码(high efficiency video coding,hevc)标准和多功能视频编码(versatile video coding,vvc)标准中压缩图像帧非常有效。首先,将整个图像划分为编码树单元(coding tree unit,ctu)。对于每个ctu,可以将该ctu划分为各种大小的块,并且通过沿各种角方向复制先前压缩块的边界像素来生成预测块。然后,对原始块与预测块之间的残差进行压缩。残差与原始像素相比较可以被更有效地编码,并且可以实现更好的编码性能。
4.iso(international organization for standardization,iso)/iec(international electrotechnical commission,iec)mpeg(moving picture experts group,mpeg)(jtc 1/sc 29/wg 11)一直在积极寻找对未来视频编码技术标准化的潜在需求。iso/iec jpeg(joint photographic experts group,jpeg)已经成立了jpeg-ai(joint photographic experts group-artificial intelligence,jpeg-ai)小组,专注于使用深度神经网络(deep neural network,dnn)的基于ai的端到端神经图像压缩。中国avs(audio video coding standard,avs)标准还成立了avs-ai(audio video coding standard-artificial intelligence,avs-ai)特别小组,从事于神经图像和视频压缩技术。最新方法的成功带来对先进的神经图像和视频压缩方法的越来越多的工业兴趣。
5.给定输入图像x,神经图像压缩(neural image compression,nic)的目标是使用图像x作为到dnn编码器的输入来计算对于存储和传输而言是紧凑的压缩表示并且然后使用作为到dnn解码器的输入来重建图像先前的nic方法采用变分自编码器(variational autoencoder,vae)结构,在该结构中,dnn编码器直接使用整个图像x作为该dnn编码器的输入,整个图像x通过像黑盒一样工作的一组网络层以计算输出表示相应地,dnn解码器将整个表示作为该dnn解码器的输入,整个表示通过像另一黑盒一样工作的另一组网络层以计算重建的
6.在hevc中,以与解码处理相同的顺序对每个编码单元(coding unit,cu)执行去块滤波处理。首先,对竖直边缘进行滤波(水平滤波),然后对水平边缘进行滤波(竖直滤波)。将滤波应用于确定要滤波的、用于亮度分量和色度分量两者的8
×
8块边界。为了降低复杂度,对4
×
4块边界不进行处理。
7.边界强度(boundary strength,bs)反映了边界可能需要多强的滤波处理。bs的值
为2指示强滤波,为1指示弱滤波,而为0指示不进行去块滤波。
8.p和q被限定为参与滤波的块,其中,p表示位于边界左侧(竖直边缘情况)或上方(水平边缘情况)的块,而q表示位于边界右侧(竖直边缘情况)或下方(水平边缘情况)的块。图1示出了如何基于帧内编码模式、非零变换系数的存在、参考图片、运动矢量的数目和运动矢量差来计算bs值。例如,当mv差低于阈值t时,bs等于0。阈值t被设置为1个像素。在hevc中,mv精度为1/4像素,并且mv差阈值被设置为4。在vtm(versatile video coding and test model,vtm)中,mv精度为1/16,并且mv差被设置为16。
9.以4
×
4块为基础计算bs,但是将bs重新映射到8
×
8网格。选择与由4
×
4网格中的线组成的8个像素对应的bs的两个值中的最大值作为用于8
×
8网格中的边界的bs。
10.在vtm5中,去块滤波处理大部分与hevc中的去块滤波处理相同。然而,添加了以下修改。
11.1)取决于重建样本的平均亮度水平的去块滤波器的滤波强度
12.2)去块tc表扩展
13.3)更强的用于亮度的去块滤波器
14.4)更强的用于色度的去块滤波器
15.5)对4
×
4样本网格的亮度去块以及对8
×
8样本网格的色度去块
16.在hevc中,去块滤波器的滤波强度由从平均量化参数qpl导出的变量β和tc来控制。在vtm5中,去块滤波器通过根据重建样本的亮度水平向qpl添加偏移来控制去块滤波的强度。重建的亮度水平ll被推导如下:
17.ll=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<比特深度)
ꢀꢀ
(式1),
18.其中,在i=0
……
3以及k=0和3情况下的样本值pi,k和qi,k如图2所示推导。
19.变量qpl被推导如下:
20.qpl=((qpq+qpp+1)>>1)+qpoffset
ꢀꢀ
(式2),
21.其中,qpq和qpp分别表示包含样本q0,0和p0,0的编码单元的量化参数。偏移qpoffset取决于传递函数,在sps(sequence parameter set,sps)中用信号通知这些值。
22.在vtm5中,最大qp从51改变到63,并且期望将相应的变化反映到去块表,该去块表基于块qp导出去块参数tc的值。以下是适应qp范围的扩展的更新的tc表。
23.tc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,25,28,31,35,39,44,50,56,63,70,79,88,99]
ꢀꢀ
(式3)。
[0024]
当边界任一侧处的样本属于大块时,使用双线性滤波器(更强的去块滤波器)。属于大块的样本被限定为下述情况:对于竖直边缘,为宽度大于或等于32;而对于水平边缘,为高度大于或等于32。然后,针对i=0至sp-1的块边界样本pi和针对j=0至sq-1的块边界样本qi如下被线性插值替换:
[0025]
pi′
=(fi*middle
s,t
+(64-fi)*ps+32)>>6),被裁剪到p
t
±
tcpi[0026]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式4);和
[0027]
qj′
=(gj*middle
s,t
+(64-gj)*qs+32)>>6),被裁剪到qj±
tcpdj[0028]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式5),
[0029]
其中,tcpdi和tcpdj项是位置相关裁剪,并且下面给出gj、fi、middle
s,t
、ps和qs:
[0030]
表1

更强的用于亮度的去块参数的推导
[0031]
[0032][0033]
上面提及的更强的亮度滤波器仅在条件1、条件2和条件3中的所有条件都为真时才使用。条件1是“大块条件”。该条件检测p侧处的样本和q侧处的样本是否属于大块。条件2和条件3由下式确定:
[0034]
条件2=(d《β)?真:假
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式6);和
[0035]
条件3=强滤波器条件=(dpq小于(β》》2),sp3+sq3小于(3*β》》5),并且abs(p
0-q0)小于(5*tc+1)》》1)?真:假
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式7)。
[0036]
限定了以下强的用于色度的去块滤波器:
[0037]
p2′
=(3*p3+2*p2+p1+p0+q0+4)》》3
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式8)
[0038]
p1′
=(2*p3+p2+2*p1+p0+q0+q1+4)》》3
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式9);和
[0039]
p0′
=(p3+p2+p1+2*p0+q0+q1+q2+4)》》3
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(式10)。
[0040]
上面的色度滤波器对8
×
8色度样本网格执行去块。在块边界的两侧使用强的色度滤波器。此处,当色度边缘的两侧都大于或等于8(以色度样本为单位)时选择该色度滤波器,并且之后进行满足三个条件情况下的判定。第一判定是针对边界强度以及大块的判定。第二判定和第三判定与针对hevc亮度的判定基本上相同,分别是开/关判定和强滤波器判定。在第一判定中,对bs进行修改以用于如表2所示的色度滤波。按顺序对表1中的条件进行检查。如果满足某个条件,则跳过具有较低优先级的其余条件。
[0041]
表2

修改的边界强度
[0042][0043]
当bs等于2或bs等于1时、在检测到大块边界时执行色度去块。第二条件和第三条件与hevc亮度强滤波器的判定基本上相同。
[0044]
在当前的vvc工作草案中,对4
×
4网格启用用于亮度的去块滤波器,并且对8
×
8网格启用用于色度的去块滤波器。去块滤波处理应用于cu边界以及子块边界。子块边界包括由stmvp(spatial-temporal motion vector prediction,stmvp)和仿射模式引入的预测单元边界以及由sbt(sub-block transform,sbt)模式和isp(intra sub-partition,isp)模式引入的变换单元边界。
[0045]
对于sbt子块和isp子块,应用hevc去块滤波器中的tu中的相同逻辑。当跨边缘的任一子块中存在非零系数时,将去块滤波器应用于tu边界。
[0046]
对于4
×
4网格上的sbtmvp(subblock-based temporal motion vector prediction,sbtmvp)子块和仿射子块,应用hevc去块滤波器中的pu中的相同逻辑。对于pu边界,在考虑到相邻子块的运动矢量与参考图片之间的差异的情况下应用去块滤波器。
[0047]
可能存在对开发可以利用现有网络架构并且实现更高的编码效率的更有效的nic技术的需要。
[0048]
帧内预测是广泛用于诸如hevc和vvc的图像和视频压缩算法的关键机制。预测的目标是根据先前重建的周围像素推断出像素块。通过对计算出的原始像素与预测像素之间
的残差进行编码/解码,压缩方法可以更有效。
[0049]
传统视频编解码器(hevc,vvc)中的帧内预测依赖于要预测的块与其邻域之间的相关性。例如,在vvc中,根据率失真准则,预测方法根据35个固定且简单的预测函数中的一种模式进行选择,并且沿指定方向传播像素值。代替通过与周围像素的因果关系简单地传播像素,先前的建议书引入了用于在图像内找到针对要预测的块的最佳匹配的搜索方法。进一步的工作利用了图像内的被限定为邻域中k个最近图块(patch)的线性组合的自相似性。
[0050]
近年来,循环神经网络已经证明了学习用于预测图像像素的可靠模型的能力。例如,循环神经网络顺序地更新图像的已知区域中像素之间相关性的其内部表示,并且然后在该图像的未知区域中生成下一像素。
[0051]
此外,已经提出了帧内预测的基于全连接(fully connected,fc)层的方法。fc神经网络能够学习从相邻的重建像素到当前块的端到端映射。fc神经网络将像素的多个参考线作为上下文区域(到模型的输入)。然而,这种方法仅能预测数目非常少的像素。在先前的一些工作中,提出了帧内预测的基于卷积层的方法。帧内预测的基于卷积层的方法获取相邻的重建像素并且将其发送至卷积神经网络(convolutional neural network,cnn)网络以进行预测。
[0052]
当前的预测方法是针对视频帧内预测模块设计的,并且不能直接用于基于神经的图像压缩。另外,当前基于神经的预测方法将重建像素(上下文区域)划分为两个单独的区域,这可能导致以下缺点:1)当前基于神经的预测方法无法学习两个单独的上下文区域之间的边界区域;2)为了组合两个上下文区域(或者由这两个上下文区域变换的隐表示),该预测方法可能需要大量的计算资源以及计算时间。


技术实现要素:

[0053]
根据实施方式,一种利用后滤波进行逐块神经图像压缩的方法由编码器的至少一个处理器执行,并且该方法包括:使用第一神经网络对输入图像的块进行编码,其中,已编码的块由解码器使用第二神经网络进行解码以生成重建块;以及使用第三神经网络对重建块执行帧内预测,以生成预测块。该方法还包括:确定输入图像的块与所生成的预测块之间的差异,以生成预测残差;使用第四神经网络对所生成的预测残差进行编码,其中,已编码的预测残差由解码器使用第五神经网络进行解码;以及将已解码的预测残差添加至所生成的预测块,以生成恢复预测块。
[0054]
根据实施方式,一种用于利用后滤波进行逐块神经图像压缩的装置被实现为编码器,并且该装置包括:至少一个存储器,其被配置成存储程序代码;以及至少一个处理器,其被配置成读取程序代码并且按照由程序代码所指示地进行操作。该程序代码包括:第一编码代码,其被配置成使至少一个处理器使用第一神经网络对输入图像的块进行编码,其中,已编码的块由解码器使用第二神经网络进行解码以生成重建块;以及第一执行代码,其被配置成使至少一个处理器使用第三神经网络对重建块执行帧内预测,以生成预测块。该程序代码还包括:确定代码,其被配置成使至少一个处理器确定输入图像的块与所生成的预测块之间的差异,以生成预测残差;第二编码代码,其被配置成使至少一个处理器使用第四神经网络对所生成的预测残差进行编码,其中,已编码的预测残差由解码器使用第五神经
网络进行解码;以及添加代码,其被配置成使至少一个处理器将已解码的预测残差添加至所生成的预测块,以生成恢复预测块。
[0055]
根据实施方式,一种非暂态计算机可读介质存储有指令,所述指令在由编码器的至少一个处理器执行用于利用后滤波进行逐块神经图像压缩时使至少一个处理器:使用第一神经网络对输入图像的块进行编码,其中,已编码的块由解码器使用第二神经网络进行解码以生成重建块;以及使用第三神经网络对重建块执行帧内预测,以生成预测块。所述指令在由至少一个处理器执行时还使至少一个处理器:确定输入图像的块与所生成的预测块之间的差异,以生成预测残差;使用第四神经网络对所生成的预测残差进行编码,其中,已编码的预测残差由解码器使用第五神经网络进行解码;以及将已解码的预测残差添加至所生成的预测块,以生成恢复预测块。
附图说明
[0056]
图1是计算边界强度(bs)的流程图。
[0057]
图2是样本位置的图。
[0058]
图3是根据实施方式的其中可以实现本文描述的方法、装置和系统的环境的图。
[0059]
图4是图3的一个或更多个设备的示例部件的框图。
[0060]
图5a是根据实施方式的用于逐块神经图像压缩的编码器的框图。
[0061]
图5b是根据实施方式的图5a的编码器的帧内预测部件的框图。
[0062]
图6是根据实施方式的用于逐块神经图像压缩的解码器的框图。
[0063]
图7是根据实施方式的后处理部件的框图。
[0064]
图8是图7的后处理部件的去块部件的图。
[0065]
图9是示出根据实施方式的取出边界区域的方法的图。
[0066]
图10是根据实施方式的多模型去块部件的图。
[0067]
图11是图7的后处理部件的后增强部件的图。
[0068]
图12是根据实施方式的多模型后增强部件的图。
[0069]
图13是根据实施方式的后增强部件的图。
[0070]
图14是根据实施方式的利用后增强部件和去块部件的交叠区域的图。
[0071]
图15是根据实施方式的用于dnn编码和dnn预测残差编码的装置的框图。
[0072]
图16是根据实施方式的用于dnn解码和dnn预测残差解码的装置的框图。
[0073]
图17a是预测块和重建像素的图。
[0074]
图17b是示出根据实施方式的两个上下文区域的预测方法的图。
[0075]
图17c是示出根据实施方式的填充预测方法的图。
[0076]
图17d是示出根据实施方式的变换预测方法的图。
[0077]
图18是根据实施方式的利用后滤波进行逐块神经图像压缩的方法的流程图。
[0078]
图19是根据实施方式的用于利用后滤波进行逐块神经图像压缩的装置的框图。
具体实施方式
[0079]
本公开内容描述了用于通过dnn使用来自基于块的帧内预测的残差对输入图像进行压缩的神经图像压缩(nic)框架。
[0080]
图3是根据实施方式的其中可以实现本文描述的方法、装置和系统的环境300的图。
[0081]
如图3所示,环境300可以包括用户设备310、平台320和网络330。环境300中的设备可以经由有线连接、无线连接、或者有线连接和无线连接的组合进行互连。
[0082]
用户设备310包括能够接收、生成、存储、处理和/或提供与平台320相关联的信息的一个或更多个设备。例如,用户设备310可以包括计算设备(例如,台式计算机、膝上型计算机、平板计算机、手持式计算机、智能扬声器、服务器等)、移动电话(例如,智能电话、无线电话等)、可穿戴设备(例如,一副智能眼镜或智能手表)或者类似设备。在一些实现方式中,用户设备310可以从平台320接收信息以及/或者向平台320发送信息。
[0083]
平台320包括如本文其他地方描述的一个或更多个设备。在一些实现方式中,平台320可以包括云服务器或云服务器组。在一些实现方式中,平台320可以被设计成模块化的,使得可以换入或换出软件部件。如此,可以针对不同用途容易地和/或快速地对平台320进行重新配置。
[0084]
在一些实现方式中,如所示出的,平台320可以被托管在云计算环境322中。值得注意的是,虽然本文描述的实现方式将平台320描述为托管在云计算环境322中,但是在一些实现方式中,平台320可以不是基于云的(即,可以在云计算环境的外部实现)或者可以是部分基于云的。
[0085]
云计算环境322包括托管平台320的环境。云计算环境322可以提供计算、软件、数据访问、存储等服务,这些服务不需要终端用户(例如,用户设备310)了解托管平台320的系统和/或设备的物理位置和配置。如所示出的,云计算环境322可以包括一组计算资源324(统称为“计算资源324”以及单独称为“计算资源324”)。
[0086]
计算资源324包括一个或更多个个人计算机、工作站计算机、服务器设备或其他类型的计算和/或通信设备。在一些实现方式中,计算资源324可以托管平台320。云资源可以包括:在计算资源324中执行的计算实例、在计算资源324中提供的存储设备、由计算资源324提供的数据传送设备等。在一些实现方式中,计算资源324可以经由有线连接、无线连接、或者有线连接和无线连接的组合与其他计算资源324通信。
[0087]
如进一步在图3中示出的,计算资源324包括一组云资源,诸如一个或更多个应用(“application,app”)324-1、一个或更多个虚拟机(“virtual machine,vm”)324-2、虚拟化存储装置(“virtualized storage,vs”)324-3、一个或更多个管理程序(“hypervisor,hyp”)324-4等。
[0088]
应用324-1包括可以提供给用户设备310和/或平台320或者由用户设备310和/或平台320访问的一个或更多个软件应用。应用324-1可以消除在用户设备310上安装和执行软件应用的需求。例如,应用324-1可以包括与平台320相关联的软件以及/或者能够经由云计算环境322提供的任何其他软件。在一些实现方式中,一个应用324-1可以经由虚拟机324-2向一个或更多个其他应用324-1发送信息/从一个或更多个其他应用324-1接收信息。
[0089]
虚拟机324-2包括像物理机一样执行程序的机器(例如,计算机)的软件实现方式。虚拟机324-2可以为系统虚拟机或进程虚拟机,这取决于虚拟机324-2对任何真实机的使用和对应程度。系统虚拟机可以提供支持完整操作系统(operating system,“os”)的执行的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实现方式
中,虚拟机324-2可以代表用户(例如,用户设备310)执行,并且可以管理云计算环境322的基础架构,诸如数据管理、同步或长持续时间数据传送。
[0090]
虚拟化存储装置324-3包括在计算资源324的存储系统或设备内使用虚拟化技术的一个或更多个存储系统和/或一个或更多个装置。在一些实现方式中,在存储系统的上下文内,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以是指逻辑存储相对于物理存储的抽取(或分离),使得可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在管理员如何管理针对终端用户的存储方面的灵活性。文件虚拟化可以消除以文件级别访问的数据与物理地存储文件的位置之间的依赖关系。这可以使得能够优化存储使用、服务器整合和/或无中断文件迁移的性能。
[0091]
管理程序324-4可以提供允许多个操作系统(例如,“客户操作系统”)在诸如计算资源324的主计算机上同时执行的硬件虚拟化技术。管理程序324-4可以向客户操作系统呈现虚拟操作平台,并且可以管理客户操作系统的执行。各种操作系统的多个实例可以共享虚拟化硬件资源。
[0092]
网络330包括一个或更多个有线网络和/或无线网络。例如,网络330可以包括蜂窝网络(例如,第五代(fifth generation,5g)网络、长期演进(long-term evolution,lte)网络、第三代(third generation,3g)网络、码分多址(code division multiple access,cdma)网络等)、公共陆地移动网络(public land mobile network,plmn)、局域网(local area network,lan)、广域网(wide area network,wan)、城域网(metropolitan area network,man)、电话网络(例如,公共交换电话网络(public switched telephone network,pstn))、专用网络、自组织网络、内联网、因特网、基于光纤的网络等以及/或者这些或其他类型的网络的组合。
[0093]
图3所示的设备和网络的数目和布置作为示例提供。实际上,与图3所示的设备和/或网络相比较,可以存在另外的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络或者不同布置的设备和/或网络。此外,图3所示的两个或更多个设备可以在单个设备内实现,或者图3所示的单个设备可以实现为多个分布式设备。另外地或可替选地,环境300的一组设备(例如,一个或更多个设备)可以执行被描述为由环境300的另一组设备执行的一个或更多个功能。
[0094]
图4是图3的一个或更多个设备的示例部件的框图。
[0095]
设备400可以对应于用户设备310和/或平台340。如图4所示,设备400可以包括总线410、处理器420、存储器430、存储部件440、输入部件450、输出部件460和通信接口470。
[0096]
总线410包括允许设备400的部件之间的通信的部件。处理器420以硬件、固件、或者硬件和软件的组合来实现。处理器420为中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)、加速处理单元(accelerated processing unit,apu)、微处理器、微控制器、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、专用集成电路(application-specific integrated circuit,asic)或者另一类型的处理部件。在一些实现方式中,处理器420包括能够被编程以执行功能的一个或更多个处理器。存储器430包括随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)以及/或者存储供处理器420使用的信息和/或指令的另一类型的动态或静态存储设备(例
如,闪速存储器、磁存储器和/或光学存储器)。
[0097]
存储部件440存储与设备400的操作和使用有关的信息和/或软件。例如,存储部件440可以包括硬盘(例如,磁盘、光盘、磁光盘和/或固态盘)、致密盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)、软盘、盒式磁带、磁带以及/或者另一类型的非暂态计算机可读介质以及对应的驱动器。
[0098]
输入部件450包括允许设备400诸如经由用户输入接收信息的部件(例如,触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)。另外地或可替选地,输入部件450可以包括用于感测信息的传感器(例如,全球定位系统(global positioning system,gps)部件、加速计、陀螺仪和/或致动器)。输出部件460包括提供来自设备400的输出信息的部件(例如,显示器、扬声器和/或一个或更多个发光二极管(light-emitting diode,led))。
[0099]
通信接口470包括使得设备400能够诸如经由有线连接、无线连接、或者有线连接和无线连接的组合与其他设备通信的类似收发器的部件(例如,收发器以及/或者单独的接收器和发送器)。通信接口470可以允许设备400从另一设备接收信息和/或向另一设备提供信息。例如,通信接口470可以包括以太网接口、光学接口、同轴接口、红外接口、射频(radio frequency,rf)接口、通用串行总线(universal serial bus,usb)接口、wi-fi接口、蜂窝网络接口等。
[0100]
设备400可以执行本文描述的一个或更多个处理。设备400可以响应于处理器420执行由非暂态计算机可读介质诸如存储器430和/或存储部件440存储的软件指令来执行这些处理。计算机可读介质在本文被限定为非暂态存储器设备。存储器设备包括单个物理存储设备内的存储空间或者分布在多个物理存储设备上的存储空间。
[0101]
可以经由通信接口470将软件指令从另一计算机可读介质或从另一设备读取至存储器430和/或存储部件440中。存储在存储器430和/或存储部件440中的软件指令在被执行时可以使处理器420执行本文描述的一个或更多个处理。另外地或可替选地,可以使用硬连线电路系统来代替软件指令或与软件指令组合以执行本文描述的一个或更多个处理。因此,本文描述的实现方式不限于硬件电路和软件的任何特定组合。
[0102]
图4所示的部件的数目和布置作为示例被提供。实际上,与图4所示的部件相比较,设备400可以包括另外的部件、更少的部件、不同的部件或者不同布置的部件。另外地或可替选地,设备400的一组部件(例如,一个或更多个部件)可以执行被描述为由设备400的另一组部件执行的一个或更多个功能。
[0103]
现在将详细描述用于利用后滤波进行逐块神经图像压缩的方法和装置。
[0104]
本公开内容描述了用于nic的基于块的帧内预测和残差编码框架。传统的预测机制被修改为nic以大幅提高nic编码效率。代替对原始像素进行编码,对预测块与原始块之间的残差进行编码。
[0105]
图5a和图6分别描述了用于nic的编码器500和解码器600的实施方式的工作流。在编码器侧,给定输入图像x,首先将该图像x划分为n个块{b0,b1,

,bn}。对于块bi,通过两种压缩方法(即,基于预测的压缩方法或者常规的基于dnn的压缩方法)对其进行压缩,并且选择具有较小损失的重建块至解码器侧。对于常规的基于dnn的压缩方法,dnn编码器510直接对bi进行编码以生成该可以将来由dnn解码器520进行解码以生成重建块对
于基于预测的压缩方法,表示先前重建的块,所述先前重建的块通过帧内预测部件530的dnn(“预测dnn”)以计算所预测的块b
′i。加法器540可以基于bi与b
′i之间的差来计算预测残差dnn预测残差编码器550对该残差进行编码以生成另一已编码的紧凑残差然后,该已编码的残差通过dnn预测残差解码器560以计算已解码的预测残差该已解码的预测残差通过加法器570被添加回到b
′i以计算新的经恢复的预测块块选择部件580选择具有较小损失(与bi相比较)的重建块(根据上面提及的两种方法)。用信号将选择信号si通知到解码器600。注意,对于块bi,将或中的仅一个(包含对重建bi的有用信息)通过比特流发送至解码器。为了便于表示,对于块bi,将表示为比特流中对于存储和传输而言是紧凑的有用信息ui。
[0106]
帧内预测部件530的dnn可以包括几个卷积层和反卷积层。为了支持不同数目的重建块作为上下文区域,在帧内预测部件530的dnn中也可以使用全连接层。例如,此处可以使用图像超分辨率使用的dnn(例如,通过将输出大小改变成与输入大小相同)。
[0107]
如图6中描述的,解码器600根据比特流中的包括块选择信号、已编码的块残差或已编码的块的块级别信息来重建图像。块选择信号指示用于对当前块进行解码的方法。如果块使用常规的基于dnn的压缩方法,则该方法将发送至dnn解码器520以生成对应的重建块然后将该重建块添加至一组先前的重建块。如果块使用基于预测的压缩方法,给定一组先前的重建块使用帧内预测部件530(与编码器侧相同)的dnn来计算所预测的当前块b
′i,所预测的当前块b
′i通过加法器570被添加回到已解码的残差块以生成重建块然后,将该重建块添加至所述一组先前的重建块在实施方式中,解码器侧的帧内预测部件530、dnn解码器520、dnn预测残差解码器560使用与编码器侧相同的逐块对应机制。解码器600还具有去块dnn和后增强dnn。重建块形成该可能包含块之间的伪像。然后,将发送至去块dnn,使用该去块dnn以使这样的伪像最小化。为了将来减少损失,将图像发送至后增强dnn以生成最终重建的去块dnn和后增强dnn可以包括几个卷积层。例如,此处可以使用图像超分辨率使用的dnn(例如,通过将输出大小改变成与输入大小相同)。
[0108]
在实施方式中,dnn编码器510使用dnn编码器对块bi进行编码。dnn预测残差编码器550使用预测残差编码dnn对残差r_bi进行编码。dnn解码器520使用dnn解码器对已编码的残差进行解码。dnn预测残差解码器560使用预测残差解码dnn以对已编码的残差进行解码。dnn编码器和dnn解码器采用vae结构,并且预测残差编码dnn和预测残差解码dnn也采用vae结构。dnn的编码器/解码器以及预测残差编码/解码dnn的结构可以不同或相同。
[0109]
本公开内容不对用于帧内预测部件530的dnn、dnn的编码器/解码器以及预测残差
编码/解码dnn、去块dnn和后增强dnn的特定网络结构施加任何限制。本公开内容不对块大小、如何将图像分割为块以及块的扫描顺序施加任何限制。
[0110]
以下是用于实现上面提及的基于预测的dnn的编码器/解码器架构的一些实施方式。
[0111]
在实施方式中,可以采用常规视频编码系统中诸如hevc和vvc中的块划分。为方形阵列样本的ctu(编码树单元)被认为是基本处理单元。可以将图片分成一系列ctu。潜在的进一步划分是可能的,以使得能够使用ctu下的更小的块。ctu的大小可以为ctu内部的32
×
32、64
×
64、128
×
128等。用于实现上面提及的基于预测的dnn的编码器/解码器的块可以为ctu内部的编码块或预测块。
[0112]
在另一实施方式中,除了采用常规视频编码系统中的那些方法之外,还可以使用简化的块划分方法。例如,可以将图片分成一系列m
×
n块。对于每个块,可以使用四叉树划分将该块进一步分成4个更小的块。是否分割块可以在比特流中用信号通知或者通过基于学习的方法来推断。
[0113]
在实施方式中,上面提及的基于预测的方法用于整个图像(以及将整个图像划分为块)上。在另一实施方式中,可以首先将图像分割成若干图块,并且针对每个图块,将该图块进一步划分为块,并且以图块级别并行地执行图像压缩。
[0114]
在实施方式中,扫描起始块可以位于左上角、右上角、左下角和右下角。扫描顺序可以是高度优先以及宽度优先。
[0115]
在实施方式中,预测dnn将所有重建块作为输入来预测块。在另一实施方式中,预测dnn采用部分重建块(例如,与要预测的块相邻的块)来预测块。
[0116]
在实施方式中,预测dnn包括三个主要组成部分:1)用于将重建块变换为隐空间(latent space)的一组多个卷积层;2)将来自不同重建块的隐空间组合在一起的全连接层、或级联(concatenation)操作、或空间金字塔池化层;以及3)用于从组合的隐空间生成目标块的预测的反卷积网络。
[0117]
在实施方式中,帧内预测部件530包括三个部件,如图5b所示。首先根据重建块的位置将所述重建块分组为一个或更多个组。注意,图5b示出了三个组作为示例。在实施方式中,组的数目范围从1(即,所有重建块在一个组中)到块的数目(即,每个重建块在一个组中)。在变换部件532中,针对每个组,变换532a、532b或532n将块变换为隐空间。变换部件532可以包括几个卷积层。变换部件532还可以包括能够强调重建块中最重要的位置以期望进行正确预测的注意力机制。组合部件534将隐空间组合在一起。此处可以使用具有组合隐空间的能力的任何操作或dnn层。例如,所述任何操作或dnn层可以为全连接层、或级联操作、或空间金字塔池化层。在预测部件536中,预测模块根据由组合部件534生成的经组合的隐空间来预测块通常,预测模块包含一组反卷积层。预测模块还可以包括能够强调重建块中最重要的位置以期望进行正确预测的注意力机制。变换部件532、组合部件534和预测部件536是在训练过程期间学习的dnn。
[0118]
在上面,描述了关于如何通过使用dnn对图片进行编码和解码的一些方法。在样本重建之后,经重建的块形成该可能包含块边界之间的伪像。然后,将发送至去块dnn,使用该去块dnn以使这样的伪像最小化并且生成为了提高已解码图像的质量,将
该图像发送至后增强dnn以生成最终重建的图7示出了后处理部件700的实施方式的工作流。在以下部分中将分别提供去块部件710和后增强部件720的实施方式的细节。
[0119]
在去块部件710和后增强部件720方面,可以交换处理顺序。也就是说,可以首先使用后增强部件720,然后使用去块部件710。
[0120]
可以使用以下去块方法中的一种方法(或组合)来进一步减少块之间的伪像。图8描述了去块部件710的实施方式的工作流。为了便于描述,图8中仅存在四个大小相等的块。注意,在一般情况下,可以将图像划分为大量块,并且每个块的大小可以不同。
[0121]
为了减少块之间(块边界区域中)的伪像,可以使用基于dnn的去块模型。首先可以从块810取出包含由相邻块引起的伪像的区域(这样的区域在下文中被表示为边界区域820)。如图8所示,边界区域包括来自两个相邻块的两个子区域,并且边界区域的大小为2m
×
n或n
×
2m,其中,n是块的长度,并且m是从块取出的区域的高度。m的值可以以整数来变化。例如,m可以为4个像素。将边界区域发送至去块部件710以减少伪像并且生成去块区域830。然后,在图像中对去块区域进行更新840,如图8所示。
[0122]
在图8的情况下,从两个相邻块识别出边界区域。然而,作为示例,如图9所示,边界区域910也可以包括多个块。
[0123]
图8描述了使用单个去块模型来改进边界区域的方法。图10描述了多模型去块部件1040a、1040b和1040n的实施方式的工作流。关键构思是:对于不同类型的边界区域1010,使用对应的去块模型来去除伪像。如图10中描述的,一旦取出边界区域1010,就使用分类部件1020(可以是基于dnn的模型、或者视频编解码器中使用的传统方法)来将边界区域分类为不同的类别。然后,根据边界区域1030的类别将边界区域1030发送至不同的去块部件1040a、1040b和1040n。在实践中,可以使用(但不限于)以下指标来限定边界区域的类型。首先,可以使用边界区域的内容。例如,将具有高频内容的边界区域发送至与被设计用于对低频内容进行去块的模型不同的模型。其次,可以使用伪像的强度。注意,多模型去块部件1040a、1040b和1040n中的边界区域不限于图10中描述的边界区域。图9中描述的去块区域也可以使用多模型去块方法。在上面,可以通过该区域内不同样本的最大差异来测量区域的频率。在一个示例中,可以测量边界一侧的边缘附近的样本的差异;在另一示例中,也可以测量边界另一侧的边缘附近的样本的差异。
[0124]
图8和图10中描述的dnn去块模型的主要目标是去除块之间的伪像。与远离边界的像素相比较,靠近边界的像素可以被更多地去块。去块模型可以包括几个卷积层。可以使用基于cnn的注意力机制(诸如,非局部注意力、senet(squeeze-and-excitation networks,senet))和残差网络(包括一组卷积神经网络(convnet)和激活函数)。例如,此处可以使用图像超分辨率使用的dnn(例如,通过将输出大小改变成与输入大小相同)。
[0125]
在上面,讨论了关于如何在dnn或其他基于学习的方法的帮助下对边界区域执行去块的方法。可替选地,编码器和解码器可以能够在常规去块方法或本文描述的方法之间进行选择。可以在各种级别上诸如以切片/图片级别、针对图片组或在序列级别上做出选择判定。所述选择可以通过发送信令标志来进行或者根据分析内容来推断。
[0126]
在上面,讨论了关于如何在dnn或其他基于学习的方法的帮助下对边界区域执行去块的方法。可替选地,编码器和解码器可以能够在假设dnn导出的对像素的调整处于边界强度的默认水平的情况下在本文描述的方法之上应用各种水平的边界强度。通过分析边界
条件和块编码特征,可以分配不同水平的bs来扩大或减少默认调整。
[0127]
在通过使用去块模块减少伪像之后,将重建图像发送至增强模块以生成最终重建的图像图11描述了后增强部件720的实施方式的工作流。为了便于描述,图11中仅存在四个大小相等的块。注意,在一般情况下,可以将图像划分为大量块,并且每个块的大小可以不同。
[0128]
为了提高图像的质量,可以使用基于dnn的后增强模型作为后增强720部件。首先可以从块1110取出未被发送至去块模型的区域(这样的区域在下文中被表示为剩余块1120)。如图11所示,剩余块1120包括来自一个块的区域,并且边界区域的大小为(n-m)
×
(n-m),其中,n是块的边长,并且m是用于去块的区域的长度。m的值是整数。例如,m可以为4个像素。将剩余块1120发送至后增强部件720以进一步提高该区域的质量并且生成增强块1140。然后,将增强块1140更新1150回到图像。可替选地,剩余块可以部分地或整体地与去块边界区域交叠。在剩余块整体地与去块边界区域交叠的情况下,剩余块可以是整个编码块。
[0129]
上面的实施方式描述了使用单个后增强模型来改进剩余块的方法。图12描述了多模型后增强部件1230a、1230b和1230n的实施方式的工作流。关键构思是:对于不同类型的剩余块1120,使用对应的后增强模型来提高质量。如图12中描述的,一旦剩余块1120被取出,就使用分类部件1210(可以是基于dnn的分类模型、或者视频编解码器中使用的传统方法)来将剩余块分类为不同的类别。因此,根据经分类的剩余块1220的类别将该经分类的剩余块1220发送至不同的后增强部件1230a、1230b和1230n。在实践中,使用(但不限于)以下指标来限定剩余块的类型。例如,可以使用剩余块区域中的内容。在该示例中,将具有高频内容的剩余块区域发送至与被设计用于增强低频内容的模型不同的模型。
[0130]
代替以块级别增强图像,还可以考虑一次增强整个图像的后增强模型。图13描述了用于包括剩余块和边界区域的整个图像1320的后增强部件1310的实施方式的工作流。为了便于描述,图13中仅存在四个大小相等的块。注意,在一般情况下,可以将图像划分为大量块,并且每个块的大小可以不同。通过以这种方式增强图像,伪像边界被进一步减少。
[0131]
图11至图13中描述的dnn增强模型的主要功能是增强图像的质量。后增强部件720可以包括几个卷积层。可以使用基于cnn的注意力机制(诸如,非局部注意力、senet)和残差网络(包括一组卷积神经网络和激活函数)来实现增强目标。例如,此处可以使用图像超分辨率使用的dnn(例如,通过将输出大小改变成与输入大小相同)。
[0132]
在上面的方法中,如果两个模块具有交叠区域,则使相同样本经受来自后增强部件720和去块部件710两者的修改。在发生这种情况时,将来自后增强的经修改的样本表示为p1、p2、
……
;类似地,将来自去块的经修改的样本表示为d1、d2、
……
。使用来自pi样本和di样本(i=0、1、
……
)两者的加权平均值来生成表示为ai的最终输出样本,如图14所示。该处理被称为边界区域处的像素混合。例如,ai(i=0、1、
……
n-1)是后增强区域1410和去块区域1420的交叠区域中的混合之后的两个代表样本。所述两个代表样本可以被推导如下:ai=σ(wi*pi+(1-wi)*di),其中,wi是设计用于该区域中的位置i的权重参数。对于不同的位置,权重可以不同。在一个示例中,wi始终被设置为0.5。在另一示例中,wi值取决于到两个模块的距离。通常,在由同一模块生成的样本上,更靠近一个模块的位置将被分配更多的权重。在图14中的一个示例中,a1=5/8*p1+3/8*d1;a2=3/8*p2+5/8*d2。
[0133]
训练过程的目标是学习预测dnn、编码dnn、解码dnn、预测残差编码dnn、预测残差解码dnn、去块dnn和后增强dnn。
[0134]
在训练过程中,首先对上面要学习的dnn的权重系数进行初始化,例如,仅使用预先训练的对应dnn模型、或者通过将要学习的dnn模型的权重系数设置为随机数来进行初始化。然后,给定输入训练图像x,输入训练图像x通过图5a中描述的编码处理以生成到比特流的编码信息,然后该编码信息通过图6中描述的解码处理以计算和重建图像对于nic,可能存在两个相互竞争的目标:更好的重建质量与更少的比特消耗。使用质量损失函数来测量重建质量,该重建质量通常被称为失真损失,诸如传统的psnr(peak signal-to-noise ratio,psnr)、ms-ssim(multiscale-structural similarity index measure,ssim)或者两者的加权组合。计算速率损失以测量压缩表示的比特消耗。因此,使用权衡超参数λ来优化联合率失真(r-d)损失:
[0135][0136]
其中,e度量已解码的块残差与编码之前的原始块残差相比较的失真,其用作用于残差编码/解码的dnn和编码/解码的dnn的正则化损失。β是用于平衡正则化损失的重要性的超参数。
[0137]
利用大的λ进行训练致使具有较小失真但较多比特消耗的压缩模型,而利用小的λ进行训练致使具有较大失真但较少比特消耗的压缩模型。为了学习dnn的权重系数,将编码dnn和预测残差编码dnn分解为两部分,如图15所示。类似地,将解码dnn和预测残差解码dnn分解为两部分,如图16所示。
[0138]
图15是根据实施方式的用于dnn编码和dnn预测残差编码的装置1500的框图。图16是根据实施方式的用于dnn解码和dnn预测残差解码的装置1600的框图。
[0139]
如图15所示,编码dnn被分解为神经编码器1510,然后是编码器1520。对应的处理模块也被分解为神经编码模块,然后是编码模块。类似地,预测残差编码dnn被分解为神经残差编码器1530,然后是残差编码器1540。对应的处理模块也被分解为神经预测残差编码模块,然后是预测残差编码模块。在实施方式中,神经编码器1510或神经残差编码器1530是在训练过程期间学习并且在测试阶段处部署的dnn。另一方面,编码器1520或残差编码器1540对于训练和测试是不同的。在测试阶段,编码器1520或残差编码器1540是可以包括量化器然后是熵编码器的实际编码器。而在训练阶段,编码器1520或残差编码器1540使用统计数据采样器来近似实际量化器的效果,并且跳过熵编码器进行训练。
[0140]
类似地,如图16所示,解码dnn被分解为解码器1610,然后是神经解码器1620。对应的处理模块也被分解为解码模块,然后是神经解码模块。预测残差解码dnn被分解为残差解码器1630,然后是神经残差解码器1640。对应的处理模块也被分解为预测残差解码模块,然后是神经预测残差解码模块。
[0141]
在实施方式中,神经解码器1620或神经残差解码器1640是在训练过程期间学习并且在测试阶段处部署的dnn。另一方面,解码器1610或残差解码器1630对于训练和测试是不同的。在测试阶段,解码器1610或残差解码器1630是可以包括熵解码器然后是去量化器的实际解码器。而在训练阶段,跳过解码器1610或残差解码器1630。
[0142]
本公开内容不对用于神经编码器1510、编码器1520、解码器1610、神经解码器1620、神经残差编码器1530、残差编码器1540、残差解码器1630或神经残差解码器1640的方法施加任何限制。换言之,本公开内容的nic框架可以适应不同类型的编码dnn、解码dnn、预测残差编码dnn和预测残差解码dnn。
[0143]
在实施方式中,该框架通常可以使用任何基于dnn的图像压缩方法,诸如尺度超先验编码器-解码器框架(或高斯混合似然框架)及其变型、基于rnn的循环压缩方法及其变型。
[0144]
在另一实施方式中,该框架可以与任何现有图像压缩方法诸如jpeg、jepg2000、bpg一起工作。
[0145]
值得一提的是,在学习过程的实施方式中,预测dnn、编码dnn、预测残差编码dnn、编码dnn、预测残差解码dnn、去块dnn和后增强dnn可以基于上面的反向传播的梯度以端到端(end-to-end,e2e)的方式一起更新。此外,这些dnn中的任何一个dnn都可以单独学习。例如,预测dnn可以使用一些数据集(与上面的训练过程中使用的数据集相同或不同)来单独地训练,并且这些dnn在上面提及的训练过程中是固定的,其中,仅更新其余dnn的权重系数。
[0146]
如图17a所示,为了预测块1720(大小为w
×
h),可以使用先前重建的像素1710作为上下文。将上下文像素作为到预测模块的输入,并且生成块的预测样本。在下文中,通过如何根据重建像素1710形成上下文区域来讨论预测方法。
[0147]
注意,在以下所有实施方式中,使用光栅扫描顺序,以从左上块开始为例。在一般情况下,扫描起始块可以位于左上角、右上角、左下角和右下角。扫描顺序可以是高度优先以及宽度优先。
[0148]
根据以往在hevc和vvc中的预测经验,上下文区域在要预测的块周围。实施方式为将重建像素1710视为两个单独的区域(即,预测块上方的上下文区域c
上方
以及预测块左侧的上下文区域c
左侧
,以光栅扫描顺序,并且起点是左上块)。图17b示出了该预测方法的实施方式。如图17b所示,上下文区域的形状为“l”或“7”。为了基于两个上下文区域预测块,预测模型首先将这两个区域(c
上方
和c
左侧
)变换为隐表示,并且然后将两个隐表示组合在一起。该模型基于组合的隐表示来生成最终的块预测。
[0149]
如图17b所示,在实施方式中,左上下文和上方上下文的大小可以为2h
×
w和2w
×
h(两个预测块大小)。在其他实施方式中,左上下文的大小和上方上下文的大小可以变化,并且可以不是预测块大小的整数倍。
[0150]
代替如图17c所示将上下文区域划分为c
左侧
和c
上方
,实施方式为将上下文区域视为矩形区域。为此,可能需要填充操作。图17c示出了其中填充区域在c
上方
下方并且在c
左侧
右侧的示例。在填充之后,填充区域和上下文区域形成新的矩形区域作为到预测模型的输入。注意,在其他实施方式中,填充区域可以与预测块相同,或者填充区域可以包括额外的块(构思是将填充区域和上下文区域进行组合以形成矩形区域,因此填充区域可以变化)。与两个上下文区域的预测方法不同,填充方法中的到预测模型的输入是一个矩形区域。然后,预测模型采用该输入并且将该输入变换为隐表示,并且因此生成针对块的最终预测样本。
[0151]
以下是用于填充所讨论的填充区域的填充方法的几个实施方式。
[0152]
在实施方式中,可以使用零填充来填充上面提及的区域。
[0153]
在实施方式中,可以使用平均值填充来填充上面提及的区域。可以通过对c
上方
和c
左侧
求平均、或者通过对整个图像求平均、或者通过对图像数据集求平均(诸如,imagenet中使用的零均值方法)来计算该值。
[0154]
在实施方式中,可以使用从c
上方
延伸的像素来填充该区域。
[0155]
在实施方式中,可以使用从c
左侧
延伸的像素来填充该区域。
[0156]
在其他实施方式中,可以使用从c
左侧
和c
上方
延伸的像素的组合(例如,求和、求平均)来填充该区域。
[0157]
在实施方式中,可以在假设填充区域是要预测的当前块的情况下使用常规帧内预测方法中的预测块样本生成处理来填充该填充区域。这样的方法的示例包括dc模式、planar模式、不等权重平面模式、pdpc(position dependent prediction combination,位置相关预测组合)等。
[0158]
在填充预测方法中也可以使用本公开内容中未提及的其他填充方法。
[0159]
在上面所有填充方法中,填充区域可以比预测块大,或者可以与预测块相同。在填充区域比预测块大的情况下,c
上方
的宽度将比预测块大;在填充区域与预测块相同的情况下,c
上方
的宽度将与预测块相同。类似地,填充区域的高度也可以与预测块相同或者比预测块大。
[0160]
在与填充不同的分离方法中,可以如下将周围的上下文区域转换为矩形形状。
[0161]
如图17d所示,在变换方法中,将c
左侧
1730变换为水平形状1740(为了便于描述,仅示出3个像素),并且填充变换后的c
左侧
与c
上方
之间的中间区域1750(图17d的部分(a)中的灰色像素1760)以形成矩形上下文区域1770。然后,将上下文区域的形状变换为矩形区域(从

l’到
‘‑’
)。到预测模型的输入是一个矩形区域。然后,预测模型采用该输入并且将该输入变换为隐表示,并且因此生成针对块的最终预测。
[0162]
在实施方式中,将c
上方
变换为竖直形状。在填充之后,获得矩形区域(从

l’到

i’)。
[0163]
在实施方式中,可以使用零填充来填充中间区域。
[0164]
在实施方式中,可以使用平均值填充来填充灰色区域,并且可以使用相同的值来填充整个灰色区域。可以通过对c
上方
和c
左侧
求平均、或者通过对整个图像求平均、或者通过对图像数据集求平均(诸如,imagenet中使用的零均值方法)来计算该值。
[0165]
在实施方式中,可以使用平均值填充来填充中间区域。可以使用不同的值来填充不同的行。可以通过对c
左侧
中的同一行中的像素求平均、或者对c
上方
中的同一行中的像素求平均、或者将c
左侧
和c
上方
两者中的同一行中的像素进行组合(例如,求平均、求和)来计算该值。
[0166]
在实施方式中,可以使用从c
上方
中的同一行延伸的像素来填充中间区域。
[0167]
在实施方式中,可以使用从c
左侧
中的同一行延伸的像素来填充中间区域。
[0168]
在实施方式中,可以使用从c
左侧
中的同一行和c
上方
中的同一行延伸的像素的组合(例如,求平均、求和)来填充中间区域。
[0169]
在实施方式中,可以使用从c
左侧
中的同一行和c
上方
中的同一行延伸的最近像素的组合(例如,求平均、求和)来填充中间区域。也就是说,在变换之后,使用同一行的相邻(左和右)像素来填充灰色区域。
[0170]
可替选地,如图17d的部分(b)所示,对于上下文区域1730的不同行,使用额外数目
的像素以使每行的总数相等。然后,在变换1780和移位1790之后,可以建立矩形区域,而无需填充中间区域。当额外的像素在左上下文区域的右侧或下方时,可以使用上面的任何方法对该左上下文区域进行填充。
[0171]
在填充预测方法中也可以使用本公开内容中未提及的其他填充方法。
[0172]
在c
上方
和c
左侧
的形状相同的情况下(例如,当预测块为方形,并且上方上下文区域的形状为3
×w×
2w,并且左上下文区域的形状为3
×
2w
×
w时,其中,w是块的宽度),可以使用以下方法来组合两个上下文区域。
[0173]
可以将这两个上下文区域变换并且组合为3
×
2w
×
2w的上下文区域并且发送至预测模型以生成最终预测。
[0174]
可以将上方上下文区域变换为3
×
2w
×
w。
[0175]
可以将左上下文区域变换为3
×w×
2w。
[0176]
可以将这两个上下文区域变换并且组合为6
×w×
2w或6
×
2w
×
w的区域(逐通道级联)并且发送至预测模型以生成最终预测。
[0177]
可以将上方上下文区域变换为3
×
2w
×
w。
[0178]
可以将左上下文区域变换为3
×w×
2w。
[0179]
注意,在其他实施方式中,首先可以将c
上方
和c
左侧
变换为隐表示,并且然后使用上面提及的方法来组合该隐表示并且然后生成最终预测。
[0180]
图18是根据实施方式的利用可堆叠嵌套的模型结构进行多率神经图像压缩的方法1800的流程图。
[0181]
在一些实现方式中,图18中的一个或更多个处理框可以由平台320执行。在一些实现方式中,图18中的一个或更多个处理框可以由与平台320分离或者包括平台320的另一设备或一组设备诸如用户设备310执行。
[0182]
如图18所示,在操作1810中,方法1800包括使用第一神经网络对输入图像的块进行编码,其中,已编码的块由解码器使用第二神经网络进行解码以生成重建块。
[0183]
在操作1820中,方法1800包括使用第三神经网络对重建块执行帧内预测,以生成预测块。
[0184]
在操作1830中,方法1800包括确定输入图像的块与所生成的预测块之间的差异,以生成预测残差。
[0185]
在操作1840中,方法1800包括使用第四神经网络对所生成的预测残差进行编码,其中,已编码的预测残差由解码器使用第五神经网络进行解码。
[0186]
在操作1850中,方法1800包括将已解码的预测残差添加至所生成的预测块,以生成恢复预测块。
[0187]
方法1800还可以包括:在重建块和所生成的恢复预测块中选择相对于输入图像的块具有较小损失的一者;以及向解码器发送选择信号,该选择信号指示所选择的重建块和恢复预测块中的一者、以及与所选择的重建块和恢复预测块中的一者对应的已编码块和已编码预测残差中的一者。所发送的已编码块和已编码预测残差中的一者可以由解码器基于所发送的选择信号来进行解码。
[0188]
对重建块执行帧内预测可以包括:基于多个重建块的位置将多个重建块分组为一个或更多个组;对所述一个或更多个组中的每个组执行变换中的相应一个变换,以生成一
个或更多个隐空间;将所生成的一个或更多个隐空间进行组合;以及对经组合的一个或更多个隐空间执行帧内预测,以生成预测块。
[0189]
方法1800还可以包括:从多个重建块中的每个重建块中去除包含伪像的边界区域;使用一个或更多个神经网络对所去除的边界区域执行去块,以生成不具有伪像的去块区域;以及利用所生成的去块区域对多个重建块中的每个重建块进行更新。
[0190]
方法1800还可以包括:从多个重建块中的每个重建块中去除不具有所去除的边界区域的其余块区域;使用至少一个神经网络对所去除的其余块区域执行后增强,以生成增强块区域;以及利用所生成的增强块区域对多个重建块中的每个重建块进行更新。
[0191]
对重建块执行帧内预测可以包括:获得重建像素中的重建块上方的第一上下文区域和重建像素中的重建块左侧的第二上下文区域;对所获得的第一上下文区域和所获得的第二上下文区域中的每个上下文区域执行变换中的相应一个变换,以生成隐表示;将所生成的隐表示进行组合;以及对经组合的隐表示执行帧内预测,以生成预测块。
[0192]
对重建块执行帧内预测可以包括:获得重建像素中的重建块上方的第一上下文区域、重建像素中的重建块左侧的第二上下文区域以及第一上下文区域下方且第二上下文区域右侧的填充区域;将所获得的第一上下文区域、所获得的第二上下文区域以及所获得的填充区域进行组合,以获得矩形区域;对所获得的矩形区域执行变换,以生成隐表示;以及对所生成的隐表示执行帧内预测,以生成预测块。
[0193]
虽然图18示出了方法1800的示例框,但是在一些实现方式中,与图18中描绘的框相比较,方法1800可以包括另外的框、更少的框、不同的框或不同布置的框。另外地或可替选地,方法1800的框中的两个或更多个框可以并行执行。
[0194]
图19是根据实施方式的用于利用可堆叠嵌套的模型结构进行多率神经图像压缩的装置1900的框图。
[0195]
如图19所示,装置1900包括第一编码代码1910、第一执行代码1920、确定代码1930、第二编码代码1940和添加代码1950。
[0196]
第一编码代码1910被配置成使至少一个处理器使用第一神经网络对输入图像的块进行编码,其中,已编码的块由解码器使用第二神经网络进行解码以生成重建块。
[0197]
第一执行代码1920被配置成使至少一个处理器使用第三神经网络对重建块执行帧内预测,以生成预测块。
[0198]
确定代码1930被配置成使至少一个处理器确定输入图像的块与所生成的预测块之间的差异,以生成预测残差。
[0199]
第二编码代码1940被配置成使至少一个处理器使用第四神经网络对所生成的预测残差进行编码,其中,已编码的预测残差由解码器使用第五神经网络进行解码。
[0200]
添加代码1950被配置成使至少一个处理器将已解码的预测残差添加至所生成的预测块,以生成恢复预测块。
[0201]
程序代码还可以包括:选择代码,其被配置成使至少一个处理器在重建块和所生成的恢复预测块中选择相对于输入图像的块具有较小损失的一者;以及发送代码,其被配置成使至少一个处理器向解码器发送选择信号,该选择信号指示所选择的重建块和恢复预测块中的一者、以及与所选择的重建块和恢复预测块中的一者对应的已编码块和已编码预测残差中的一者。所发送的已编码块和已编码预测残差中的一者可以由解码器基于所发送
的选择信号来进行解码。
[0202]
第一执行代码1920还可以被配置成使至少一个处理器:基于多个重建块的位置将多个重建块分组为一个或更多个组;对一个或更多个组中的每个组执行变换中的相应一个变换,以生成一个或更多个隐空间;将所生成的一个或更多个隐空间进行组合;以及对经组合的一个或更多个隐空间执行帧内预测,以生成预测块。
[0203]
程序代码还可以包括:第一去除代码,其被配置成使至少一个处理器从多个重建块中的每个重建块中去除包含伪像的边界区域;第二执行代码,其被配置成使至少一个处理器使用一个或更多个神经网络对所去除的边界区域执行去块,以生成不具有伪像的去块区域;以及第一更新代码,其被配置成使至少一个处理器利用所生成的去块区域对多个重建块中的每个重建块进行更新。
[0204]
程序代码还可以包括:第二去除代码,其被配置成使至少一个处理器从多个重建块中的每个重建块中去除不具有所去除的边界区域的其余块区域;第三执行代码,其被配置成使至少一个处理器使用至少一个神经网络对所去除的其余块区域执行后增强,以生成增强块区域;以及第二更新代码,其被配置成使至少一个处理器利用所生成的增强块区域对多个重建块中的每个重建块进行更新。
[0205]
第一执行代码1920还可以被配置成使至少一个处理器:获得重建像素中的重建块上方的第一上下文区域和重建像素中的重建块左侧的第二上下文区域;对所获得的第一上下文区域和所获得的第二上下文区域的每个上下文区域执行变换中的相应一个变换,以生成隐表示;将所生成的隐表示进行组合;以及对经组合的隐表示执行帧内预测,以生成预测块。
[0206]
第一执行代码1920还可以被配置成使至少一个处理器:获得重建像素中的重建块上方的第一上下文区域、重建像素中的重建块左侧的第二上下文区域以及第一上下文区域下方且第二上下文区域右侧的填充区域;将所获得的第一上下文区域、所获得的第二上下文区域以及所获得的填充区域进行组合,以获得矩形区域;对所获得的矩形区域执行变换,以生成隐表示;以及对所生成的隐表示执行帧内预测,以生成预测块。
[0207]
与先前的e2e图像压缩方法相比较,本公开内容具有以下优点。代替对原始像素进行编码,通过对预测块与原始块之间的残差进行编码,利用预测机制来提高nic编码效率。灵活且通用的框架适应不同的帧内预测方法以及帧内预测处理中针对残差的不同神经编码方法。灵活且通用的框架适应各种类型的质量指标。
[0208]
与先前的预测方法相比较,本公开内容具有以下优点。这些实施方式能够用于基于神经的图像压缩方法。对于填充方法和变换方法,不需要划分上下文区域。对于填充方法、变换方法以及特殊情况下的方法,上下文为矩形区域,并且因此可以减少用于合并两个单独区域的另外的计算。
[0209]
这些方法可以单独使用或者以任何顺序组合使用。此外,方法(或实施方式)、编码器和解码器中的每一个可以通过处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
[0210]
前述公开内容提供了说明和描述,但是并非旨在穷举性的或将实现方式限制为所公开的精确形式。鉴于以上公开内容,可以进行修改和变型,或者可以从实现方式的实践中
获取修改和变型。
[0211]
如本文所使用的,术语“部件”旨在被广义地解释为硬件、固件、或者硬件和软件的组合。
[0212]
将明显的是,本文描述的系统和/或方法可以以不同形式的硬件、固件、或者硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码并不限制实现方式。因此,本文在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为——应当理解,可以基于本文的描述将软件和硬件设计成实现系统和/或方法。
[0213]
即使在权利要求书中记载和/或在说明书中公开了特征的组合,但是这些组合并不旨在限制可能的实现方式的公开内容。事实上,这些特征中的许多特征可以以权利要求书中未具体记载和/或说明书中未公开的方式组合。虽然下面列出的每个从属权利要求可能直接引用仅一个权利要求,但是可能的实现方式的公开内容包括与权利要求组中的每个其他权利要求组合的每个从属权利要求。
[0214]
除非明确地如此描述,否则本文使用的任何元素、动作或指令均不能被解释为关键的或必要的。而且,如本文所使用的,冠词“一种”和“一个”旨在包括一个或更多个项,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,术语“组”旨在包括一个或更多个项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或更多个”互换使用。在意指仅一个项的情况下,使用术语“一个”或类似语言。而且,如本文所使用的,术语“具有”、“有”、“带有”等旨在为开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1