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

替换式端到端视频编解码的制作方法

2022-06-09 02:46:51 来源:中国专利 TAG:

替换式端到端视频编解码
通过引用合并
1.本公开要求于2021年4月15日提交的美国专利申请第17/231,537号“替代式端到端视频编解码(substitutional end-to-end video coding)”的优先权,该申请要求于2020年5月12日提交的美国临时申请第63/023,687号“替代式端到端图像压缩(substitutional end-to-end image compression)”,以及2020年5月18日提交的美国临时申请第63/026,397号“具有比特率约束的替换式端到端图像压缩(substitutional end-to-end image compression with bitrate constraint)”的优先权。这些在先申请的公开内容通过引用全部并入本文。
技术领域
2.本公开描述了总体上涉及基于人工神经网络的视频编解码的实施例。


背景技术:

3.本文所提供的背景描述旨在整体呈现本技术的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本技术提交时作为现有技术,且从未明示或暗示其被承认为本技术的现有技术。
4.传统的混合视频编解码器难以作为整体进行优化。单个模块的改进可能不会使整体性能提高。相反地,在基于人工神经网络的视频编解码框架中,通过执行机器学习过程,不同模块可以从输入到输出进行联合优化,以改善最终目标(例如,率失真性能),从而得到端到端(e2e)优化的视频编解码框架。


技术实现要素:

5.本公开的各个方面提供了一种在视频编码器处进行视频编码的方法。该方法可包括接收图片,并通过执行优化过程,确定所述图片的替换表示,其中,所述执行优化过程用于调整所述图片的所述替换表示的元素,以基于端到端e2e优化框架对编码所述图片的所述替换表示的率失真性能进行优化。所述e2e优化框架是预训练的基于人工神经网络ann的视频编解码框架。对所述图片的所述替换表示进行编码以生成码流。
6.在一个实施例中,执行所述优化过程来调整所述图片的所述替换表示的所述元素,以相对于所述图片的所述替换表示的所述元素的值来优化损失函数。在一个实施例中,可以基于包括步长和迭代次数的超参数来执行优化过程。步长或迭代次数可以根据输入到视频编码器的图片进行预先确定或调整。在一个实施例中,所述优化过程的当前迭代可包括:执行梯度下降以调整所述图片的所述替换表示的所述元素的当前值,以使所述损失函数最小化,以及使用所述图片的所述替换表示的所述元素的已调整的当前值作为所述优化过程的下一次迭代的输入。
7.在一个实施例中,所述损失函数包括比特率度量和失真度量的加权和,所述加权和用于基于所述e2e优化框架,对所述图片的所述替换表示进行编码。在一个示例中,所述
失真度量包括当基于所述e2e优化框架编码所述图片的所述替换表示时,所述图片与所述图片的所述替换表示的重建图片之间的差异。在一个示例中,基于所述e2e优化框架调整所述加权和中的权衡系数,以调整用于对所述图片进行编码的比特率。
8.在一个实施例中,所述比特率度量包括目标比特率与用于基于所述e2e优化框架对所述图片的所述替换表示进行编码的比特率之间的差异,。调整所述加权和中的所述目标比特率,以调整用于使用所述e2e优化框架对所述图片进行编码的比特率。
9.在一个实施例中,所述失真度量基于目标失真度量类型,该目标失真度量类型可以与用于优化e2e优化框架的失真度量类型不同或相同。在一个实施例中,失真度量基于失真度量类型的目标失真级别,该失真度量类型可以不同于或与用于优化e2e优化框架的相同失真度量类型的失真级别相同。
10.本公开的各方面还提供一种视频编码的装置。该装置包括电路,所述电路被配置为:接收图片,并通过执行优化过程,确定所述图片的替换表示,其中,所述执行优化过程用于调整所述图片的所述替换表示的元素,以基于端到端e2e优化框架对编码所述图片的所述替换表示的率失真性能进行优化。所述e2e优化框架是预训练的基于人工神经网络ann的视频编解码框架。所述电路进一步被配置为对所述图片的所述替换表示进行编码以生成码流。
11.本公开的各方面还提供一种非暂时性计算机可读介质,存储有指令,当由处理器执行时,所述指令使处理器执行视频编码的方法。
附图说明
12.根据以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将进一步明确,其中:
13.图1示出了根据本公开实施例的替换式端到端(e2e)视频编解码系统(100)。
14.图2示出了如何训练e2e框架(101)的示例。
15.图3示出了根据本公开实施例的机器学习过程(300)。
16.图4示出了根据本公开实施例的测试系统(400)。
17.图5示出了第一比特率控制机制(500),该机制基于调整率损失和失真损失之间的权衡系数。
18.图6示出了第二比特率控制机制(600),该机制基于在率失真损失函数中设置比特率约束(目标比特率)。
19.图7示出了一种用于调整失真度量类型的机制(700),其中失真度量类型用于使用预训练的e2e框架(101)对图片进行编码。
20.图8示出了用于调整目标失真水平的机制(800),其中目标失真水平用于使用预训练的e2e框架(101)对图片进行编码。
21.图9示出了根据本公开实施例的基于替换图片的e2e视频编码方法(900)。
22.图10是根据实施例的计算机系统的示意图。
具体实施方式
23.图1示出了根据本公开实施例的替换式端到端(e2e)视频编解码系统(100)。系统
(100)可以包括编码器110和解码器120。编码器110可以包括替换图片生成器(112)、基于人工神经网络(ann)的编码器(ann编码器)(114)、量化器(116)和熵编码器(118)。元件(112、114、116和118)按照图1所示进行连接。解码器(120)可以包括熵解码器(128)和基于ann的解码器(ann解码器)(124)。元件(128和124)彼此连接,如图1所示。元件(114、116、118、128和124)形成e2e优化的视频编解码框架(e2e优化框架或e2e框架)(101)。
24.替换图片生成器(112)被配置为例如从包括图片序列的视频接收图片x(或图像x),并且生成与输入图片x对应的替换图片xs。所述替换图片xs被提供给所述e2e框架(101)。根据本公开,可以基于e2e框架(101)来学习替换图片xs。学习到的替换图片xs可以在视觉上类似于原始的输入图片x,但是比原始的输入图片x具有更优的变化。例如,在一些实施例中,与将原始图片x直接提供给e2e框架(101)相比,通过e2e框架(101)处理替换图片xs可以实现更好的率失真性能。
25.e2e框架(101)处理替换图片xs以生成重建图片x’。具体地,ann编码器(114)将替换图片xs变换为更紧凑的隐表示y。输入图片xs的像素之间的空间相关性可以被去除,并且重要特征信息可以被保留在隐表示y中。在各种示例中,输入图片xs的维数可以被减小或保持。量化器(116)可以通过应用有损量化操作来进一步压缩隐表示y。熵编码器(118)可以对从量化器(116)输出的量化表示y’进行熵编码,以生成码流(131)。在各种实施例中,该熵编码操作可以是有损的或无损的。熵编解码方法的示例可以包括霍夫曼编解码、算术编解码、上下文自适应二进制算术运算等。码流(131)可以被传输到解码器(120)或被存储并且随后由解码器(120)处理。
26.在解码器(120)处,熵解码器(128)从码流(131)接收替换图片xs的已编码比特,并且对已编码比特进行解码以恢复量化表示y’。恢复的量化表示y’可以被提供给ann解码器(124),在ann解码器(124)处,可以进行基于ann的变换以生成重建图片x’。
27.在各种实施例中,ann编码器(114)或ann解码器(124)可以采用各种类型的ann。各种类型的ann具有各种架构,并且利用各种机器学习方法来训练。例如,ann可以是各种类型的深度神经网络(dnn)。e2e框架(101)可以具有各种架构,诸如一次性前馈(one-time feed-forward)架构(例如,广义除数归一化(gdn)变换、超优先级模型、残差自动编码器、深度残差自动编码器或多尺度模型)、多级递归(multistage recurrent)架构(例如,香草式、有状态式、增量式、跳跃连接式或有状态传播式)等。
28.图2示出了如何训练e2e框架(101)的示例。为了训练e2e框架(101),采用图2所示的e2e训练框架(201)。在该特定示例中,e2e训练框架(201)包括ann编码器(114)和ann解码器(124),而没有熵编码器(118)和熵解码器(128)。另外,为了训练的目的,量化器(116)被噪声注入器(216)取代,以用噪声添加操作代替不可微分量化操作。
29.可以如下建立指示e2e训练框架(201)的率失真性能的损失函数。在图2中,可以在ann编码器(114)处接收输入图片x。ann编码器(114)可以包括ann,该ann具有作为要被优化的变量的神经网络(nn)参数(表示为pe)。基于nn参数pe,可以获得隐表示y。噪声注入器(216)可以将均匀噪声添加到隐表示y的元素,以生成量化表示y’。虽然出于使e2e训练框架(201)可端到端训练的目的,在图2示例中使用加性均匀噪声代替真实量化,但是在各种实施例中可以使用其他技术通过可微分过程来近似不可微分量化。例如,直接取整可以用于梯度的前向传播和反向传播;软到硬矢量量化可以用于代替直接标量量化;或者,可以通过
训练过程来学习量化参数。
30.ann解码器(124)还可以包括ann网络,该ann网络具有作为要被优化的变量的nn参数(表示为pd)。ann解码器(124)可以接收量化表示y’,并且基于nn参数pd将量化y’变换为重建图片x’。失真损失生成器(212)可以基于输入图片x与重建图片x’之间的差异来确定失真损失d(x,x’)。失真损失d(x,x’)可以是关于参数pe和pd的函数。在各种实施例中,可以采用各种失真度量(或质量度量)来确定失真损失。失真度量的示例可以包括峰值信噪比(psnr)、高动态范围视觉差异预测器(hdr-vdp)、结构指数相似性(ssim)、多尺度结构相似性(ms-ssim)等。
31.另外,可以采用率损失估计器(218)来根据熵模型估计量化表示y’的每个元素的熵。由率损失估计器(218)使用的熵模型可以包括作为要被优化的变量的熵模型参数(表示为pr)。基于所估计的熵,用于对量化表示y’进行编解码的比特数量可以相应地由率损失估计器(218)来确定。因此,可以确定比特率(例如,每像素比特(bpp)或每秒比特(bps)),并且将比特率用作对输入图片x进行编解码的率损失r(x)的估计。率损失r(x)可以是关于nn参数pe和熵模型参数pr的函数。
32.在各种实施例中可以采用用于估计熵和率损失的各种技术。熵估计的示例可以包括使用元素独立的熵模型来估计隐表示的概率分布,利用超先验、预测模型或其它学习的参数模型显示地估计熵,等等。率损失估计方法的示例由j.balle等人在2017年的学习表示国际会议(iclr)中的“端到端优化图像压缩”中进行了描述,其内容通过引用全部并入本文。
33.然后,可以将关于nn参数pe和pd,以及熵模型参数pr的损失函数建立为率损失r(x)和失真损失d(x,x’)的加权和,l(pe,pd,pr)=r(x) λd(x,x’),
ꢀꢀꢀꢀꢀꢀ
(等式1)其中,λ是权衡系数。
34.在训练过程期间,e2e训练框架(210)和率损失估计器(218)作为整体可以从x的输入端到x’的输出端进行优化。参数pe、pd和pr可以在目标的引导下进行更新(或优化),以最小化nn参数pe和pd,以及熵模型参数pr上的损失函数l(pe,pd,pr)。例如,使用一定量的图片作为训练样本,可以基于损失函数l(pe,pd,pr)执行梯度下降,以逐渐调整nn参数pd和pe以及熵模式参数pr,直到达到一定的率失真性能。梯度下降算法的示例可以包括批量梯度下降、随机梯度下降或小批量梯度下降等。
35.然后可以在e2e框架(101)中使用由训练过程产生的已优化的参数pe、pd和pr来实现视频编解码系统(100)。对于熵编解码,可以在熵编码器(118)和熵解码器(128)中使用熵模型(具有从训练过程获得的已优化的熵模型参数pr),以对图1示例中的量化表示y’进行熵编码或熵解码。
36.图3示出了根据本公开的实施例的机器学习过程(或称为优化过程)(300)。学习过程(300)可以在图1示例中的替换图片生成器(112)处执行,以确定作为输出的替换图片xs,该学习过程(300)以原始的图片x作为输入。
37.如上所述,在一些实施例中,可以使用一定量的图片作为训练样本来训练e2e优化框架(101)。所得到的框架(101)可以对大量输入图片具有平均优化的性能。然而,在被训练之后,e2e优化框架(101)可能缺乏对处理具有可变概率特征的图片的适应性。例如,对于与
训练样本的平均特征有一定偏差的图片,图片的率失真性能可能低于预期阈值。找到替换原始的输入图片的替换表示可以认为是用于改进e2e视频编码系统(100)的适应性的方法,其中输入图片适应e2e优化框架(101),而不是e2e优化框架(101)适应输入图片。
38.可以基于图3中所示的已训练的e2e框架(301)来学习图1中的替换图片xs。已训练的e2e框架(301)可以包括来自e2e优化框架(101)的ann编码器(114)和ann解码器(124)。ann编码器(114)和ann解码器(124)已经分别利用优化参数pe和pd进行训练和配置。已训练的e2e框架(301)还可以包括用于训练e2e框架(101)的量化器(例如,噪声注入器)(216)。另外,学习过程(300)可以采用被用于训练e2e框架(101)的率损失估计器(218)和失真损失生成器(212)。率损失估计器(218)已经利用优化参数pr进行训练和配置。
39.学习过程(300)可以包括多次迭代。在学习过程(300)期间,逐步调整替换图片xs。在每次迭代中,替换图片xs(表示为ps)的元素的当前值(像素值)是要更新的变量。因此,用于引导学习过程(300)的损失函数可以表示为l(ps)。以与图2示例中类似的方式,可以建立损失函数l(ps)并且采取以下形式,l(ps)=r(xs) λd(x,xs’)。
ꢀꢀꢀꢀ
(等式2)与损失函数l(pe,pd,pr)(等式1)相比较,在损失函数l(ps)中,r(xs)表示率损失,该率损失是元素值ps的函数,具有作为常数的已优化的参数pe和pr;并且d(x,xs’)表示失真损失,该失真损失也是元件值ps的函数,具有作为常数的已优化的参数pe和pd。另外,对于图3中的失真损失生成器(212)处的操作而言,被确定的差异是重建图片xs

与输入图片x之间的,而不是重建图片xs

与替换图片xs之间的。
40.作为示例,可以如下执行图3中的学习过程(300)。对于第t次迭代,替换图片xs表示为xt,并且被输入到ann编码器(114)。在学习过程(300)开始时,可以将替换图片xs初始化为x0。在一个实施例中,图1中的输入图片x被用作x0。在一个实施例中,与图1中的输入图片x不同的图片被用作x0。在一个实施例中,具有随机元素值的图片被用作x0。
41.在第t次迭代期间,对应于输入xs=xt并且通过前向推理计算,可以确定隐表示ys、量化表示ys

、重建表示xs

,如图3中所示。可以确定失真损失d(x,xs’)和率损失r(xs)。相应地,例如在反向传播和数据更新模块(310)处,确定训练损失r(xs) λd(x,xs’)。在示例中,验证训练损失是否小于率失真阈值。当训练损失不小于率失真损失时,模块(310)可以基于损失函数l(xs)执行反向传播,以计算与输入xt的元素值相对应的梯度。基于梯度,可以调整输入xt的元素值,从而得到下一输入xt 1。在t次迭代之后,当训练损失小于率失真损失时,优化的x
t
可以用作学习过程(300)的输出。
42.在其它实施例中,其它终止条件可以单独使用或与率失真阈值条件组合使用。例如,在实施例中,当迭代次数达到阈值时,可以终止学习过程(300)的迭代。以这种方式,可以控制用于生成替换图片xs的时间预算,并且e2e视频编解码系统(100)可以实时操作。
43.在一些实施例中,学习过程(300)可以基于两个超参数:步长(或学习率)和迭代次数。与目标损失函数一起,超参数用于学习过程(300)。例如,步长可以用于在学习过程中执行的梯度下降算法或反向传播计算。迭代次数可以用作最大迭代次数的阈值,以控制学习过程(300)何时可以终止。
44.在一些实施例中,根据输入到学习过程(300)或编码器(110)的图片,步长和/或迭代次数可以被预先确定。例如,对应于编码器(110),包括步长和迭代次数的超参数集,可以
被预定义或被预配置。例如,如果编码器(110)具有更高的计算能力,则可以配置更高的迭代次数值,从而产生具有更高质量的替换图片。或者,对应于视频序列,包括步长和迭代次数的一组超参数可以被预定义或被预配置。例如,对应于不同视频序列的不同统计特征,可以为每个视频序列定义/配置不同的超参数集。
45.在一些实施例中,根据输入到学习过程(300)或编码器(110)的图片,步长和/或迭代次数可以基于每个图片的统计特性进行调整。例如,对于包括高度动态内容的图片,可以采用较小的步长来避免不必要的波动并且加速收敛。在一些实施例中,在学习过程中使用的超参数从编码端被用信号通知到解码端。
46.在图3的示例中,与图2的示例中相同的元件(114、216、124、212和218)用于调整替换图片xs。然而,在其它实施例中,在学习过程(300)中用于调整替换图片xs的那些元件的一部分或全部可以不同于图2或图3的示例中的那些元件。这些变化可能存在各种原因。
47.例如,这些元件的不同配置可以用于在较快的学习过程、较低的计算成本、较好的率失真结果或其它优点方面实现较好的性能。例如,这些元件可以被简化以实现相同水平或可接受水平的率失真性能,但计算成本降低。或者,在一些实施例中,这些元件的变化可以提供用于在先前训练的e2e框架上控制或操纵某些视频编解码参数的工具,同时保持一定水平的率失真性能。视频编码参数的示例可以包括目标比特率、目标失真、图像质量度量等。
48.虽然在一些实施例中基于率失真的损失函数(例如,等式1和等式2)用于训练e2e框架或查找替换图片,而在基于替换图片的e2e视频编解码的其它实施例中采用其它类型的损失函数。例如,为了不同的优化目标,损失函数可以包括除去比特率损失和失真损失之外的一个或多个损失项。或者,除了比特率损失和/或失真损失之外,损失函数还可以包括一个或多个损失项。
49.在一些实施例中,给定已有的e2e优化编解码系统(例如,图1中的框架(101)),可以基于已有系统来确定或导出用于确定替换图片的已训练的e2e框架,然后将其附加到已有系统。以这种方式,本文中公开的替换e2e视频编解码技术可以与已有的e2e优化编解码系统结合。
50.图4示出了根据本公开的实施例的测试系统(400)。测试系统(400)可以用于验证基于替换图片的e2e优化框架的视频编码性能。如图所示,系统(400)可以包括替换图片生成器(112)、ann编码器(114)、量化器(116或216)和ann解码器(124)。替换图片生成器(112)可以被配置为执行学习过程(300)。ann编码器(114)和ann解码器(124)可以配置有已学习的参数pe和pd。在实施例中,量化器(116)可以采用一般的均匀量化方法。量化器(216)可以是近似量化器(116)的效果的均匀采样器,其避免了在学习过程(300)中使用离散数的梯度反向传播的困难。
51.在测试期间,可以通过测试系统(400)馈送输入图片x。对应于输入图片x,可以学习输入图片x的替换图片xs。随后,可以通过前向推理计算来确定变换表示y、压缩表示y’和重建表示x’。可以为重建图片计算率度量(例如,bpp)和失真度量(例如,psnr或ssim)。可以将结果与在测试系统(400)中通过元件(114、116或216、124)馈送图片x同时跳过元件(112)的那些结果进行比较。各种数据集中的不同样本可以用于测试系统(400)上的测试。
52.通常,e2e优化的视频编解码框架(例如,框架(101)和(201))可能具有两个主要问
题。首先,难以实现比特率控制。例如,可以利用目标比特率来训练e2e优化框架中的ann模型。在训练之后,如果将ann模型应用于以其它比特率压缩图片,则ann模型通常不能很好地工作。其次,ann模型可以被训练成(联合地)对利用诸如psnr或ssim的某种类型的失真度量制定的失真损失进行优化,或者在给定某种类型的失真度量的情况下将某种水平的失真作为目标。训练后的ann模型通常不能很好地用于其它类型的失真度量或其它水平的失真。
53.由于这些问题,为了提供对具有不同比特率、不同类型的失真度量或特定失真度量的不同失真水平的输入图片进行压缩的灵活性,需要训练、存储和部署ann模型的多个实例。另外,e2e视频编解码系统中的编码端和解码端需要在不同的ann编码器与解码器之间切换,以实现比特率变化或失真度量变化。进一步地,变化的控制精度取决于ann模型实例的数目。以上方法对于实际的e2e视频编码系统来说成本过高。
54.灵活的比特率控制或失真度量/水平控制是基于ann的视频编解码系统的高度期望的特征。例如,取决于可用的存储和特定的应用场景,同一输入图片可以优先使用不同的目标比特率来压缩。本文中公开的替换式e2e视频编解码方法提供了用于有效解决以上问题的机制。
55.图5示出了基于调整率损失与失真损失之间的权衡系数的第一比特率控制机制(500)。例如,可以将目标权衡参数λ
target
提供给e2e视频编解码系统(100)中的替换图片生成器(112),以调整在该替换图片学习过程(300)中使用的率失真损失函数(等式2)。调整后的率失真函数如下所示,l(ps)=r(xs) λ
target
d(x,xs’)。
ꢀꢀꢀꢀꢀ
(等式3)目标权衡参数λtarget可以对应于目标比特率(其可以通过试验获知)。通过设置权衡参数λtarget,可以实现目标比特率。例如,通过将权衡参数λtarget设置为更高的值,可以实现更高的比特率和更低的失真。
56.例如,在替换图片学习过程(300)中,根据损失函数(等式3),可以将替换图片xs调整为具有与目标权衡参数λ
target
相对应的目标比特率(在被编码之后)。然后可以将替换图片xs输入到e2e视频编解码系统(100),该e2e视频编解码系统(100)可以预先以不同于当前目标比特率的比特率为目标进行训练。可以获得与目标比特率相对应的码流(131)。相应地,实现比特率控制而无需在ann模型的不同实例之间切换e2e框架(101)。
57.在其它实施例中,作为率损失和失真损失的加权和的率失真损失可以采取不同于(等式2)或(等式3)的形式。相应地,可以使用除λ之外的参数来调整各个率损失与各个失真损失之间的权衡。
58.图6示出了基于在率失真损失函数中设置比特率约束(目标比特率)的第二比特率控制机制(600)。例如,可以将目标比特率r
target
提供给e2e视频编解码系统(100)中的替换图片生成器(112),以修改在替换图片学习过程(300)中使用的率失真损失函数(等式2)。修改后的率失真函数如下所示。l(ps)=ηl(r(xs),r
target
) d(x,xs’),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(等式4)其中,l(r(xs),r
target
)测量r(xs)与r
target
之间的差异的损失,并且η是平衡不同损失项l(r(xs),r
target
)和d(x,xs’)的贡献的超参数(权衡参数)。在实施例中,可以将η设置为较大的数,以确保得到的比特率尽可能接近目标比特率r
target
。在替换学习过程(300)期间,由损失函数(等式4)引导,可以确定在被编码之后具有目标比特率的替换图片xs。然后,可
以由e2e视频编解码系统(100)(其可以预先以不同于当前目标比特率的比特率为目标进行训练)处理替换图片xs,以实现目标比特率,而无需在不同ann模型实例之间进行切换。
59.在实施例中,用于测量r(xs)与r
target
之间的差异的损失l(r(xs),r
target
)可以设置如下,l(r(xs),r
target
)=max(r(xs)-r
target,∈
),
ꢀꢀꢀꢀꢀꢀꢀ
(等式5)其中,∈是超参数。在实施例中,可以将∈设置为小的数,以确保r(xs)与r
target
之间的差异在由∈指示的特定范围内。
60.图7示出了用于利用预训练的e2e框架(101)来调整编码图片的失真度量类型的机制(700)。例如,e2e视频编解码系统(100)中的e2e框架(101)可以被训练以针对第一失真度量,例如psnr。表示以下再现的率失真损失函数中的失真损失d(x,x’),这是可以通过使用psnr度量来实现的,l(pe,pd,pr)=r(x) λd(x,x’)。
ꢀꢀꢀꢀꢀꢀꢀꢀ
(等式1)为了使用预训练的e2e框架(101)以不同于第一失真度量的第二失真度量(例如,ssim)为目标来编码图片,可以如下执行调整。
61.可以将目标失真度量(ssim)提供给e2e视频编解码系统(100)中的替换图片生成器(112),以在替换图片学习过程(300)中使用的率失真损失函数(等式2)中表示失真损失d(x,xs’)。以下再现了率失真函数(等式2),l(ps)=r(xs) λd(x,xs’)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(等式2)根据利用目标失真度量类型指定的损失函数(等式2),可以确定替换图片。将替换图片输入到e2e框架(101)可以产生重建图片x’,该重建图片x’满足目标失真度量的期望率失真性能而无需切换ann模型实例。
62.图8示出了用于调整目标失真水平的机制(800)。其中,目标失真水平用于利用预训练的e2e框架(101)对图片进行编码。例如,基于率失真损失函数(等式1),e2e视频编解码系统(100)中的e2e框架(101)可以被训练成,针对给定失真度量(例如,psnr)的第一失真水平。
63.为了以给定失真的第二失真水平为目标进行图片编码,可以将目标失真水平d
target
提供给e2e视频编解码系统(100)中的替换图片生成器(112),以修改在替换图片学习过程(300)中使用的率失真损失函数(等式2)。修改后的率失真函数如下所示,l(ps)=r(xs) ηl(d(x,xs’),d
target
),
ꢀꢀꢀꢀꢀꢀꢀꢀ
(等式6)其中,l(d(x,xs’),d
target
)测量d(x,xs’)与d
target
之间的差异的损失,并且η是平衡不同损失项r(xs)和l(d(x,xs’),d目标)的贡献的超参数(权衡参数)。在实施例中,η可以被设置为大的数,以确保得到的失真水平尽可能接近目标失真水平d
target
。在替换学习过程(300)期间,根据损失函数(等式6),可以确定在被编码之后具有目标失真水平的替换图片xs。然后,可以由e2e视频编解码系统(100)处理替换图片xs,以实现目标失真水平,而无需在不同ann模型实例之间切换。
64.在实施例中,用于测量d(x,xs’)与d
target
之间的差异的损失l(d(x,xs’),d
target
)可以设置如下,l(d(x,xs’),d
target
)=max(d(x,xs’)-d
target,∈
),
ꢀꢀꢀꢀꢀꢀꢀ
(等式7)其中,∈是超参数。在实施例中,可以将∈设置为小的数,以确保d(x,xs’)与d
target
之间的差异在由∈指示的特定范围内。
65.虽然在以上说明中分别解释了比特率控制和失真度量/失真水平控制机制,但是在其它实施例中,可以组合以上比特率控制和失真度量/失真水平控制机制中的一些来一起调整比特率和失真度量。例如,调整权衡参数λ和改变目标失真度量类型可以通过调整损失函数(等式2)来一起执行。调整目标比特率r目标和改变目标失真度量类型可以通过调整损失函数(等式2)来一起执行。
66.另外,本文中公开的比特率或失真度量/水平控制机制可以与具有不同于以上描述的基于率失真的损失函数的形式的损失函数结合使用。例如,对于除了比特率损失和/或失真损失之外,还包括一个或多个项的损失函数,仍然可以应用比特率或失真度量/失真水平控制机制。
67.图9示出了根据本公开的实施例的基于替换图片的e2e视频编码方法(900)。方法(900)可以从(s901)开始并且进行到(s910)。
68.在(s910)处,例如可以从视频序列接收图片。图片可以包括指示颜色强度的元素(像素)。
69.在(s920)处,确定图片的替换表示。例如,可以执行机器学习过程(也被称为优化过程)来调整图片的替换表示的元素的值,以基于端到端(e2e)优化框架来优化对图片的替换表示进行编码的率失真性能。在示例中,可以执行调整图片的替换表示的元素的值的机器学习过程,以相对于图片的替换表示的元素的值来优化损失函数。e2e优化框架的示例可以包括图3示例中的已训练的e2e框架(301)。
70.机器学习过程可以包括多次迭代。在机器学习过程的当前迭代期间,可以执行梯度下降以调整图片的替换表示的元素的当前值,从而使基于率失真的损失函数最小化。此后,图片的替换表示的元素的调整后的当前值可以用作机器学习过程的下一次迭代的输入。
71.在示例中,损失函数包括比特率度量和失真度量的加权和,所述加权和用于基于所述e2e优化框架对所述图片的所述替换表示进行编码。损失函数的示例包括由等式1-4和等式6表示的损失函数。在示例中,失真量度包括当基于e2e优化框架编码时图片的替换表示的图片与重建图片之间的差异。
72.在(s930)处,可以对图片的替换表示进行编码以生成码流。例如,在图1的示例中的编码器(110)处,在从替换图片生成器(112)生成之后,图片的替换表示可以被输入到ann编码器(114)中并且被编码成码流(131),该码流(131)随后被存储在存储介质中或被传输到解码器(120)。过程(900)然后可以进行到(s999)并在(s999)处终止。
73.本文中所公开的技术(例如,各种实施例或示例中的功能、模块、元件、方法、过程、操作)可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,技术可以实现为使用计算机可读指令的计算机软件并且物理地存储在一个或多个计算机可读介质中。
74.所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(cpu),图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。
75.所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板
电脑、服务器、智能手机、游戏设备、物联网设备等。
76.例如,图10示出了计算机系统(1000),其适于实施本公开主题的某些实施例。图10所示的用于计算机系统(1000)的组件本质上是示例性的,并不用于对实现本技术实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统(1000)的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。
77.计算机系统(1000)可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
78.人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘(1001)、鼠标(1002)、触控板(1003)、触摸屏(1010)、数据手套(未示出)、操纵杆(1005)、麦克风(1006)、扫描仪(1007)、照相机(1008)。
79.计算机系统(1000)还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏(1010)、数据手套(未示出)或操纵杆(1005)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(1009)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(1010),其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
80.计算机系统(1000)还可以包括人可访问的存储设备及其相关介质,如包括具有cd/dvd的高密度只读/可重写式光盘(cd/dvd rom/rw)(1020)或类似介质(1021)的光学介质、拇指驱动器(1022)、可移动硬盘驱动器或固体状态驱动器(1023),诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。
81.本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
82.计算机系统(1000)还可以包括通往一个或多个通信网络(1055)的接口(1054)。例如,一个或多个通信网络(1055)可以是无线的、有线的、光学的。一个或多个通信网络(1055)还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。一个或多个通信网络(1055)的示例还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线(1049)(例如,计算机系统(1000)的usb端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统(1000)的核心(例如,以太网接口集成到pc计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络
中的任何一个,计算机系统(1000)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
83.上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统(1000)的核心(1040)。
84.核心(1040)可包括一个或多个中央处理单元(cpu)(1041)、图形处理单元(gpu)(1042)、以现场可编程门阵列(fpga)(1043)形式的专用可编程处理单元、用于特定任务的硬件加速器(1044)和图形适配器(1050)等。这些设备以及只读存储器(rom)(1045)、随机存取存储器(1046)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)(1047)等可通过系统总线(1048)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1048),以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(1048),或通过外围总线(1049)进行连接。在一个示例中,屏幕(1010)可以连接到图形适配器(1050)。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。
85.cpu(1041)、gpu(1042)、fpga(1043)和加速器(1044)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在rom(1045)或ram(1046)中。过渡数据也可以存储在ram(1046)中,而永久数据可以存储在例如内部大容量存储器(1047)中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个cpu(1041)、gpu(1042)、大容量存储器(1047)、rom(1045)、ram(1046)等紧密关联。
86.所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本技术的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
87.作为实施例而非限制,具有体系结构(1000)的计算机系统,特别是核心(1040),可以作为处理器(包括cpu、gpu、fpga、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心(1040)的特定存储器,例如核心内部大容量存储器(1047)或rom(1045)。实现本技术的各种实施例的软件可以存储在这种设备中并且由核心(1040)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(1040)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram(1046)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器(1044))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本技术包括任何合适的硬件和软件组合。
88.虽然本技术已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各
种等同替换均属于本技术的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本技术的原则,因此属于本技术的精神和范围之内。
再多了解一些

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

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

相关文献