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

图像编解码的制作方法

2022-12-13 23:10:45 来源:中国专利 TAG:

图像编解码


背景技术:

1.图像压缩是信号处理与计算机视觉领域中最为重要和基础的主题。随着高质量多媒体内容越来越多地被使用,人们期望能够提高图像的压缩效率,从而降低传输的带宽或者存储的开销。
2.近年来,基于机器学习的图像压缩方法获得了越来越多的关注,并且获得了与传统的压缩方法接近的压缩性能。然而,与传统的编解码方案不同,对于基于机器学习的图像压缩方法而言,目前缺乏通用的优化方法来实现不同图像的高效编解码。


技术实现要素:

3.根据本公开的实现,提供了一种图像编解码的方案。在该编码方案中,获取目标图像的编码表示,并进一步基于该编码表示来确定与解码器相关联的目标函数。进一步地,基于目标函数随一组参数的变化程度与阈值程度的比较,来确定该组参数的一组调整量,并基于该组调整量来来调整编码表示中的该组参数,从而获得经调整的编码表示。进一步地,基于该经调整的编码表示来获得目标图像的目标码流。由此,可以获得实现更为高效的图像编码。
4.提供发明内容部分是为了简化的形式来介绍对概念的标识,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
5.图1示出了能够在其中实施本公开的多个实现的计算环境的框图;
6.图2示出了根据本公开的一些实现的图像编码的过程的流程图;
7.图3示出了根据本公开的一些实现的图像编码的示意图;以及
8.图4示出了根据本公开的一些实现的熵模型的示意图;
9.图5示出了根据本公开的一些实现的编码方案的性能与其他方案的对比示意图;
10.图6示出了根据本公开的一些实现的图像解码的过程的流程图;以及
11.图7示出了根据本公开的一些实现的示例计算设备的框图。
12.这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
13.现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。
14.如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
15.如以上讨论的,随着高质量多媒体内容广泛地被应用于人们生活中的各个方面,人们期望能够提高图像编解码的效率,从而降低网络传输以及存储的成本。
16.随着人工智能技术的发展,基于机器学习的图像编解码技术受到了越来越多的关注。人们能够通过训练编码器和解码器来实现图像的编码和解码。目前,许多的研究关注于如何设计网络的架构以实现高效的图像压缩。然而,通过这样的优化所获得的编码器通常难以针对不同的图片均执行高效的压缩,这将极大地影响模型的性能以及模型的通用性。
17.根据本公开的实现,提供了一种图像编解码的方案。在编码方案中,获取目标图像的编码表示,这样的编码表示可以包括与所述目标图像相对应的一组参数的值。例如,可以通过训练好的基于机器学习的编码器来处理目标图像,以获得这样的编码表示。
18.进一步地,可以基于该编码表示来确定与解码器相关联的目标函数,该解码器用于解码与该编码表示相对应的码流。例如,这样的解码器可以是基于机器学习的编解码器中的解码部分。
19.该目标函数进一步用于调整编码表示。具体地,可以基于该目标函数随该组参数的一组变化程度与阈值程度的比较,来确定该组参数的一组调整量。这样的变化程度也被称为参数的梯度。通过将不同参数的梯度与阈值梯度进行比较,本公开的实施例能够实现自适应的参数调整。
20.进一步地,基于该组调整量来调整该组参数,从而获得经调整的编码表示,并进一步可以获得目标图像的目标码流。
21.由此,本公开的实施例可以利用目标函数实现对编码表示的直接优化,从而实现针对不同图像的自适应优化。此外,通过基于阈值梯度来确定每个参数被调整的调整量,本公开的实施例还能够考虑到编码表示将被执行的量化操作的特性,从而提高压缩效率。
22.以下参考附图来说明本公开的基本原理和若干示例实现。
23.示例环境
24.图1示出了能够在其中实施本公开的多个实现的环境100的框图。应当理解,图1所示出的环境100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。
25.如图1所示,编码器110能够获取目标图像105,并将目标图像105转换对应的码流(bitstream)115。在一些实现中,目标图像105可以是包括或可以为由任意类型的用于捕获现实世界图像等的图像捕获设备所捕获的图像。或者,目标图像105也可以是由任意类型的图像生成设备所生成的图像。
26.应当理解,在图像编码领域,术语“图像(picture)”、“帧(frame)”或“图片(image)”可以用作同义词。图像编码(或通常称为编码)包括图像编码和图像解码两部分。图像编码在源侧执行,通常包括处理(例如,压缩)原始视频图像以减少表示该视频图像所需的数据量(从而更高效存储和/或传输)。图像解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建图像。编码部分和解码部分也合称为编解码(编码和解码,codec)。
27.如图1所示,解码设备120可以接收码流115,并通过解码来获得解码图像125。在一些实现中,编码设备110与解码设备120可以是不同的设备,码流115例如可以例如通过通信传输而从编码设备110发送至解码设备120。这样的码流115例如可以被封装为报文等合适
的格式,和/或使用任意类型的传输编码或处理,以便在通信链路或通信网络上进行传输。
28.尽管图1示出了编码设备110和解码设备120作为独立的设备,但设备实施例也可以同时包括编码设备110和解码设备120或对应功能。在这些实施例中,编码设备110或对应功能和解码设备120或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
29.关于图像编码和图像解码的过程将在下文详细描述。
30.编码过程
31.图2示出了根据本公开一些实现的图像编码的过程200的流程图。过程200例如可以由图1中的编码设备110来实现。
32.如图2所示,在202,编码设备110获取目标图像110的编码表示,该编码表示包括与目标图像110相对应的一组参数的值。
33.在一些实现中,编码表示可以是通过适当的编码技术所获得的初始编码表示。例如,编码表示可以是利用任何适当训练的基于机器学习的编码器所获得的隐藏表示(latent representation)。作为另一示例,该编码表示也可以是通过其他方式所生成的,例如,这样的编码表示还可以是一组随机的编码表示。
34.图3示出了根据本公开的一些实现的图像编码的示意图300。如图3所示,目标图像105(表示为x)可以被提供至基于机器学习的编码器302,编码器302可以将目标图像105转换为第一编码表示y。
35.示例性地,第一编码表示y可以表示为:
36.g=ga(x|φg)
ꢀꢀ
(1)
37.其中ga(
·
)表示编码器302的分析变换过程,φg表示编码器302的参数。
38.在一些实现中,第一编码表示y可以包括目标图像105中的不同区域所对应的数据。例如,目标图像105可以被输入到编码器302以获得对应的一组参数的值。例如,目标图像105可以是1024*768像素大小,编码器302可以基于目标图像105产生64*48*128个参数的值,其中128表示数据的维度。基于这样的方式,每一组128维的数据可以对应于目标图像105中一个16*16像素大小的图像块。应当理解,以上参数的数目仅是作为示例,不旨在作为对本公开的限定。
39.如图3所示,在一些实现中,第一编码表示y可以进一步被提供至超编码器(hyper encoder)314,并获得第二编码表示z。第二编码表示z能够用于指示第一编码表示y的分布特性。这样的分布特性例如可以用于指示第一编码表示y的不同元素之间的空间依赖性。
40.示例性地,第二编码表示z可以表示为:
41.z=ha(y|φh)
ꢀꢀ
(2)
42.其中,ha(
·
)表示超编码器314的变换过程,φh表示超编码器314的参数。
43.关于超编码器314以及下文将介绍的超解码器(hyper decoder)326的具体实现可以参见文章“variational image compression with a scale hyperprior”(johannes balle,d.minnen,s.singh,s.j.hwang,n.johnston,“variational image compression with a scale hyperprior”,intl.conf.on learning representations(iclr),pp.1-23,2018.),在此不再详叙。
44.在204,编码设备110基于该编码表示来确定与解码器相关联的目标函数,该解码
器用于解码与该编码表示相对应的码流。在一些实现中,解码器可以与上文所讨论的基于机器学习的编码器相对应,以实现与该编码器对应的解码过程。
45.以图3作为示例,在编码过程中,第一编码表示y被提供至量化单元304以执行量化并获得量化结果yq,并通过算术编码器306编码为码流308。相应地,在解码过程中,码流308可以经过算术解码器310解码为并通过反量化单元312变换为解码器330可以基于反量化后的结果来获得解码图像332(表示为),从而实现解码。
46.在一些实现中,当编码表示中还包括第二编码表示z时,在编码过程中,第二编码表示z类似地可以通过量化单元316和算术编码器318而被转换为码流320。相应地,在解码过程中,码流320可以通过算术解码器322和反量化过程324获得反量化后的结果并经由超解码器326处理后输入值上模型328,以用于确定用于算术编码器306和算术解码器310的熵编码参数。在一些示例中,这样的熵编码参数可以包括用于指示均值的参数和用于指示方差的参数。
47.在一些实现中,与解码器相关联的目标函数(也称为损失函数)可以基于以下中的至少一项来确定:基于编码表示所生成的码流的预期大小和基于码流生成的解码图像与目标图像之间的差异。具体地,在图3的示例中,与解码器相关联的目标函数可以被确定为:
48.其中用于指示第一编码表示y对应的编码率,也即与码流308的大小相关联;用于指示第二编码表示z的编码率,也即与码流320的大小相关联;表示目标图像305与通过码流308和码流320所生成的解码图像332之间的差异,和分别表示对编码y和z所需的比特数的估计;λ表示权重系数。
49.应当理解,该目标函数(3)旨在减少解码图像失真的情况下,提高编码的压缩率。此外,还可以通过调整λ的值来实现减少图像失真与提高编码压缩率两者之间的平衡。
50.继续参考图2,在206,编码设备110基于目标函数随该组参数的一组变化程度与阈值程度的比较来确定一组参数的一组调整量。
51.在一些实现中,编码设备110可以通过梯度回传来计算目标函数关于一组参数中每个参数的梯度值,也即目标函数随每个参数的变化程度。
52.在前向传递过程中,由量化单元304所执行的量化过程是通过公式(4)所示的舍入(rounding)过程实现的:
53.yq=q(y)=[y-μ],
ꢀꢀ
(4)
[0054]
其中[
·
]表示舍入运算。为了实现梯度回传,在梯度反向传递过程中,公式(4)被替换为恒等式以用于计算梯度,具体公式如(5)所示:
[0055][0056]
以第一编码表示y作为示例,基于梯度回传的方式,可以计算得到目标函数关于第
一编码表示y中的每个参数的梯度。
[0057]
由于量化过程采用了如公式(4)所描述的舍入运算,一方面,这使得如果使用小的步长来调整某个参数可能不会影响到编码结果。例如,如果某个参数的值从1.11调整为1.12,那么其在舍入后总是等于1,因此步长为0.01的调整将不会带来变化。
[0058]
另一方面,一些较小的调整也可能会对编码结果造成较大影响。例如,如果某个参数的值从1.49被调整至1.50,那么其在调整前会被量化为1,而在调整后会被量化为2,这将导致编码效率可能降低。
[0059]
为了避免统一的步长可能带来的以上问题,在一些实现中,编码设备110可以进一步将每个参数的梯度与阈值梯度来进行比较,仅进一步根据比较的结果来确定每个参数在迭代中的调整量。
[0060]
在一些实现中,如果一组参数中的第一参数的梯度小于等于阈值梯度,也即,目标函数随第一参数的第一变化程度小于阈值程度,则编码设备110可以在本次迭代中将该第一参数的调整量确定为零。
[0061]
通过这样的方式,对于具有较小梯度的参数,编码设备110可以在迭代中不再对该参数的值进行调整,以免发生因为较小调整而导致编码效率降低的问题。
[0062]
在一些实现中,如果一组参数中的第二参数的梯度大于阈值梯度,也即,目标函数随第二参数的第二变化程度大于等于阈值程度,则编码设备110可以基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0063]
通过这样的方式,对于具有较大梯度的参数,编码设备110可以在迭代中根据梯度的大小来自适应地确定参数调整的步长,从而能够加速迭代收敛的过程。
[0064]
在一些实现中,编码设备110可以确定一组变化程度中的最大变化程度,并基于第二变化程度与最大变化程度的比来确定调整量,以使得调整量正比于第二变化程度与最大变化程度的比。
[0065]
示例性地,编码设备110可以确定一组参数的梯度中的最大梯度,并将每次迭代过程中最大梯度所对应的参数的调整量设置为预定步长。随后,编程设备110可以确定其他参数的梯度与最大梯度的比与该预定步长的乘积,并将该乘积的结果确定为其他参数被调整的步长。
[0066]
在一些实现中,用于比较的阈值梯度可以是基于与该组参数相关联的该组梯度中的最大梯度与预定系数的乘积所确定的。备选地,阈值梯度也可以是预定的梯度值。
[0067]
应当理解,以上所讨论的变化程度的大小旨在表示变化程度的绝对值的大小,也即梯度的绝对值的大小,而不考虑其符号。
[0068]
示例性地,以第一编码表示y作为示例,其在迭代调整过程可以表示公式(6):
[0069][0070]
其中y

t
表示y
t
的梯度,t表示迭代的次数,α表示预定的调整步长,β表示用于确定阈值梯度的预定系数,|y

t
|
max
表示y
t
的梯度的绝对值中的最大值。
[0071]
基于公式(6),对于梯度的绝对值与最大梯度绝对值的比值大于β的参数,其调整的步长为该比值与预定步长α的乘积;对于梯度的绝对值与最大梯度绝对值的比值小于等
于β的参数,其在本次迭代中将不被调整,也即,调整量为零。
[0072]
在208,编码设备110基于一组调整量来调整一组参数,以获得经调整的编码表示。以图3作为示例,编码设备110例如可以根据上文所讨论的公式(6)来调整第一编码表示y,以获得经调整的第一编码表示。
[0073]
在一些实现中,对于第二编码表示z,编码设备110可以利用超编码器来处理调整后的第一编码表示,以重新生成新的第二编码表示。
[0074]
在又一些实现中,第二编码表示z还可以与第一编码表示y一起协同优化。也即,编码设备110可以将第一编码表示y和第二编码表示z作为待优化的参数,并基于目标函数(3)来协同地优化二者。
[0075]
在协同优化的过程中,编码设备110例如可以根据参考步骤206所讨论的过程来确定第二编码表示z中的参数在每次迭代中被调整的步长,而不再使用超编码器来重新生成新的第二编码表示。
[0076]
在另一些实现中,考虑到第二编码表示z对应的码流320的比特相对较少,第二编码表示z例如也可以不被调整。
[0077]
在一些实现中,编码设备110可以根据上文所讨论的过程来迭代地调整第一编码表示y和/或第二编码表示z,直至收敛条件被满足。这样的收敛条件例如可以是目标函数在预定次迭代后的变化值小于预定阈值。
[0078]
继续参考图2,在框210,编码设备110基于经调整的编码表示,获得目标图像的目标码流。
[0079]
在一些实现中,在完成编码表示的优化调整后,编码设备110例如可以利用量化单元和算术编码器来获得目标图像的目标码流。
[0080]
以图3作为示例,编码设备110可以利用量化单元304和算术编码器306来将经调整后的第一编码表示y转换为码流;此外,编码设备110还可以利用量化单元316和算术编码器318来将调整后的第二编码表示z转换为码流。
[0081]
如上文所讨论的,熵模型328需要确定与均值μ相关的熵编码参数和与方差σ相关的熵编码参数,以用于指导算术编码器306的编码过程以及算术解码器310的解码过程。
[0082]
在一些传统的方案中,熵模型328需要利用上下文参数来确定均值和方差两者,然而这将增加模型的复杂程度,并且会破坏编码侧的并行性。
[0083]
图4示出了根据本公开的一些实现的熵模型的示意图400。如图4所示,熵模型328包括方差估计器420和均值估计器430。与传统的熵模型不同,均值估计器430在确定均值μ时无需依赖于上下文模型410的输出结果。
[0084]
具体地,图4所示的熵模型的计算过程可以表示为:
[0085]
z=ha(y|φh)
[0086][0087][0088][0089]
[0090]
其中ha(
·
)和hs(
·
)分别表示超编码器314和超解码器326的处理过程,φh和θh分别表示超编码器314和超解码器326的模型参数;f(
·
)表示上下文模型410的处理过程,i1到in表示与当前需要生成码流的给定位置相关联的一组关联位置的索引;e
μ
(
·
)和e
σ
(
·
)分别表示均值估计器430和方差估计器320的处理过程,和分别表示均值估计器430和方差估计器320的模型参数。应当理解,i1到in所表示的一组关联位置是指基于解码顺序在当前位置之前的其他位置。
[0091]
根据公式能够看到,均值估计器430在计算均值时将不再依赖于上下文模型410的结果。基于这样的方式,本公开的实施例为不同位置的编码过程的并行化提供支持。
[0092]
在一些实现中,为了优化编解码过程,还可以在目标码流中编码辅助信息。如图3所示,辅助信息选择单元336可以用于确定待编码码流338中的辅助信息。
[0093]
在一些实现中,辅助信息可以包括第一辅助信息,以指示对编码表示进行量化的量化参数。如图3所示,辅助信息选择单元可以确定量化步长q,并将其提供至量化单元304和反量化单元312以执行相应的量化和反量化。
[0094]
通常,在基于机器学习的编解码模型中,量化的步长总被固定地设置为1,这将对压缩率造成影响。通过在码流中包括量化步长q,量化单元304所执行的量化步骤可以表示为:
[0095][0096]
通过这样的方式,可以进一步提高压缩率。
[0097]
相应地,在梯度回传过程中,对应的梯度计算过程(5)可以更新为:
[0098][0099]
在一些实现中,编码设备110可以通过搜索量化步长q的候选集合来确定适用于目标图像105的最优量化步长。备选地,量化步长q例如也可以作为编码器的配置参数而被人工配置。
[0100]
在一些实现中,辅助信息还可以包括第二辅助信息,以指示对指示从目标码流生成的解码图像执行后处理的后处理参数m。如图3所示,辅助信息选择单元还可以确定后处理参数m,并将后处理参数m提供至后处理单元334,以执行对应的后处理过程。后处理单元334的处理过程例如可以表示为:
[0101]
其中表示后处理单元334所执行的过程。
[0102]
与量化步长q的确定过程类似,编码设备110可以通过后处理参数的候选集合来确定适用于目标图像105的后处理参数m。备选地,考虑到在基于机器学习的编解码方案中,编码侧能够同时执行编码和解码操作,因此编码设备110也可以根据输入图像105与解码图像332的差异来计算后处理参数m。
[0103]
作为一个示例,后处理参数m例如可以指示解码图像332的噪音水平,后处理单元
334执行的后处理过程例如可以是去噪过程。当噪音水平较高时,后处理单元334例如可以执行较高力度的去噪过程;相反,当噪音水平较低时,后处理单元334可以执行较低力度的去噪过程。应当理解,其他适当的后处理参数也可以被编码作为辅助信息。
[0104]
基于这样的方式,本公开的实施例还能够在码流中编码辅助信息,从而帮助解码侧执行对应的优化,从而帮助提高编解码的效率并优化解码图像的质量。
[0105]
图5进一步示出了根据本公开的一些实现的编码方案的性能与其他方案的对比示意图500。如图5所示,示意图500的横轴表示bpp(bit per pixel,每像素比特),纵轴为psnr(peak signal to noise ratio,峰值信噪比)。从图5中能够看到,本公开的方案从压缩率明显优于vvc方案以及文章“learned image compression with discretized gaussian mixture likelihoods and attention modules”中提出的方案。
[0106]
解码过程
[0107]
图6示出了根据本公开一些实现的图像解码过程600的流程图。过程600例如可以由图1中的解码设备120来实现。
[0108]
如图6所示,在框602,解码设备120接收与目标图像对应的目标码流。关于目标码流的具体生成过程已经在上文详细介绍,在此不再详叙。在框604,解码设备120从目标码流中解码图像。
[0109]
在一些实现中,解码设备120还从目标码流中解码辅助信息。在一些实现中,辅助信息包括如上文所讨论的第一辅助信息,以指示用于对编码表示进行量化的量化参数。
[0110]
在一些实现中,在从目标码流中解码得到量化参数后,解码设备120可以将该量化参数发送至反量化单元,以执行对应的反量化操作。
[0111]
在一些实现中,辅助信息包括如上文所讨论的第二辅助信息,以指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0112]
在一些实现中,在从目标码流中解码得到后处理参数后,解码设备120可以将该后处理参数发送至后处理单元,以执行针对解码得到的图像的后处理操作。
[0113]
示例设备
[0114]
图7示出了可以用来实施本公开的实施例的示例设备700的示意性框图。设备700可以用于实现图1的编码设备110和/或解码设备120。应当理解,图7所示出的设备700仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,设备700的组件可以包括但不限于一个或多个处理器或处理单元710、存储器720、存储设备730、一个或多个通信单元740、一个或多个输入设备750以及一个或多个输出设备760。
[0115]
在一些实现中,设备700可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任何类型的移动终端、固定终端或便携式终端,包括移动手机、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,设备700能够支持任何类型的针对用户的接口(诸如“可佩戴”电路等)。
[0116]
处理单元710可以是实际或虚拟处理器并且能够根据存储器720中存储的程序来
执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高设备700的并行处理能力。处理单元710也可以被称为中央处理单元(cpu)、微处理器、控制器、微控制器。
[0117]
设备700通常包括多个计算机存储介质。这样的介质可以是设备700可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器720可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或其某种组合。存储器720可以包括一个或多个编码/解码模块725,这些程序模块被配置为执行本文所描述的各种实现的编码功能/解码功能。编码/解码模块725可以由处理单元710访问和运行,以实现相应功能。存储设备730可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在设备700内被访问。
[0118]
设备700的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,设备700可以使用与一个或多个其他服务器、个人计算机(pc)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。设备700还可以根据需要通过通信单元740与一个或多个外部设备(未示出)进行通信,外部设备诸如数据库770、其他存储设备、服务器、显示设备等,与一个或多个使得用户与设备700交互的设备进行通信,或者与使得设备700与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
[0119]
输入设备750可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备、相机等。输出设备760可以是一个或多个输出设备,例如显示器、扬声器、打印机等。
[0120]
示例实现方式
[0121]
以下列出了本公开的一些示例实现方式。
[0122]
在第一方面,本公开提供了一种图像编码的方法。该方法包括:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0123]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0124]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0125]
在一些实现中,基于第二变化程度来确定调整量包括:
[0126]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0127]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0128]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处
理目标图像所生成的。
[0129]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0130]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0131]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0132]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0133]
在一些实现中,基于一组调整量来调整一组参数包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0134]
在第二方面,本公开提供了一种图像解码的方法。该方法包括:包括:接收与目标图像对应的目标码流;以及从目标码流中解码图像,其中目标码流是基于以下过程而被生成的:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0135]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0136]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0137]
在一些实现中,基于第二变化程度来确定调整量包括:
[0138]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0139]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0140]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处理目标图像所生成的。
[0141]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0142]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指
示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0143]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0144]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0145]
在一些实现中,基于一组调整量来调整一组参数包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0146]
在第三方面,本公开提供了一种设备。该设备包括处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时使设备执行以下动作:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0147]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0148]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0149]
在一些实现中,基于第二变化程度来确定调整量包括:
[0150]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0151]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0152]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处理目标图像所生成的。
[0153]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0154]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0155]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基
于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0156]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0157]
在一些实现中,基于一组调整量来调整一组参数包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0158]
在第四方面,本公开提供了一种设备。该设备包括处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时使设备执行以下动作:接收与目标图像对应的目标码流;以及从目标码流中解码图像,其中目标码流是基于以下过程而被生成的:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0159]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0160]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0161]
在一些实现中,基于第二变化程度来确定调整量包括:
[0162]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0163]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0164]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处理目标图像所生成的。
[0165]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0166]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0167]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0168]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0169]
在一些实现中,基于一组调整量来调整一组参数包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0170]
在第五方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行以下动作:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0171]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0172]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0173]
在一些实现中,基于第二变化程度来确定调整量包括:
[0174]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0175]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0176]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处理目标图像所生成的。
[0177]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0178]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0179]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0180]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0181]
在一些实现中,基于一组调整量来调整一组参数包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0182]
在第六方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行以下动作:接收与目标图像对应的目标码流;以及从目标码流中解码图像,其中目标码
流是基于以下过程而被生成的:获取目标图像的编码表示,编码表示包括与目标图像相对应的一组参数的值;基于编码表示,确定与解码器相关联的目标函数,解码器用于解码与编码表示相对应的码流;基于目标函数随一组参数的一组变化程度与阈值程度的比较,确定一组参数的一组调整量;基于一组调整量来调整一组参数,以获得经调整的编码表示;以及基于经调整的编码表示,获得目标图像的目标码流。
[0183]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第一参数的第一变化程度小于等于阈值程度,将第一参数的调整量确定为零。
[0184]
在一些实现中,确定参数的调整量包括:响应于确定目标函数随第二参数的第二变化程度大于阈值程度,基于第二变化程度来确定第二参数的调整量,使得调整量正比于第二变化程度。
[0185]
在一些实现中,基于第二变化程度来确定调整量包括:
[0186]
确定一组变化程度中的最大变化程度;以及基于第二变化程度与最大变化程度的比,确定调整量,使得调整量正比于比。
[0187]
在一些实现中,阈值程度是基于一组变化程度中的最大变化程度与预定系数的乘积所确定的。
[0188]
在一些实现中,编码表示包括第一编码表示,第一编码表示是通过利用编码器处理目标图像所生成的。
[0189]
在一些实现中,编码表示还包括第二编码表示,第二编码表示是基于第一编码表示所生成的,以指示第一编码表示的分布特性。
[0190]
在一些实现中,编码表示包括与目标图像中的多个位置对应的多个部分编码表示,并且生成目标码流包括:针对多个位置中的给定位置,基于第二编码表示,确定用于指示均值的第一熵编码参数,第一熵编码参数同上下文参数无关,上下文参数用于指示多个位置中与给定位置相关联的一组关联位置的编码表示;以及至少基于第一熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0191]
在一些实现中,至少基于第一熵编码参数生成目标码流中与给定位置对应的部分码流包括:基于第二编码表示和上下文参数,确定用于指示方差的第二熵编码参数;以及基于第一熵编码参数和第二熵编码参数,生成目标码流中与给定位置对应的部分码流。
[0192]
在一些实现中,目标码流中编码有以下中的至少一项:第一辅助信息,指示用于对编码表示进行量化的量化参数,或第二辅助信息,指示对从目标码流生成的解码图像进行后处理的后处理参数。
[0193]
在一些实现中,基于一组调整量来调整一组参数表示包括:迭代地调整编码表示,直至与目标函数相关联的收敛条件被满足。
[0194]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0195]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0196]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0197]
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
[0198]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献