没有合适的资源?快使用搜索试试~ 我知道了~
B帧编码器扩展:插值帧作为更好的参考帧节省28.5%比特率
Frame Interpolation�����������������P-Frame Codec�����B-Frame Codec34.535.536.537.538.50.0250.0750.1250.1750.225PSNR (dB)Rate (bits per pixel)P-frame codecB-frame codec66800扩展神经P帧编码器以进行B帧编码0Reza Pourreza和Taco Cohen Qualcomm AIResearch *0{ pourreza,tacos } @qti.qualcomm.com0摘要0虽然大多数神经视频编码器都处理P帧编码(从过去的帧预测每一帧),但本文中我们处理B帧压缩(使用过去和未来的参考帧预测帧)。我们的B帧解决方案基于现有的P帧方法。因此,可以很容易地将B帧编码能力添加到现有的神经编码器中。我们B帧编码方法的基本思想是对两个参考帧进行插值,生成一个单一的参考帧,然后与现有的P帧编码器一起使用来编码输入的B帧。我们的研究结果表明,与通常使用前一帧作为参考帧相比,插值帧对于P帧编码器来说是一个更好的参考帧。我们的结果显示,使用所提出的方法与现有的P帧编码器相结合,与P帧编码器相比,在UVG数据集上可以节省28.5%的比特率,同时生成相同的视频质量。01. 引言0视频编码领域中有两种类型的帧,即帧内帧和帧间帧。帧内帧(I帧)独立于其他帧进行编码/解码。I帧编码相当于图像压缩。帧间帧使用运动补偿后跟残差编码,即通过将一个或多个参考帧的像素或块移动来生成输入帧的预测,然后使用残差进行修正。预测是帧间编码中的一个重要任务,因为它是利用时间冗余的主要方式。在传统的视频编码范式中,运动矢量用于模拟参考帧和输入图像之间的像素块的运动。在神经视频编码领域,通常使用密集光流来模拟单个像素的运动。在这两种情况下,使用运动矢量或光流对参考帧进行变形以生成预测。0* Qualcomm AI Research是高通技术公司的一个倡议。0帧插值0�� ���0P帧编码0�� �0B帧编码 34.50比特率(每像素比特数)0P帧编码B帧编码0图1.(a)本文的一般思路,即通过添加插值块将现有的P帧编码器扩展为B帧编码器,(b)在UVG数据集[38]上的速率-失真改进,其中P帧[2]和B帧编码器在Vimeo-90k数据集[46]上进行相同次数的训练迭代。改进相当于通过BD-rate增益[6]测量的比特率节省28.5%。0帧内编码和帧间编码是视频编码领域中的两种帧类型。帧内编码(I帧)独立于其他帧进行编码/解码。I帧编码相当于图像压缩。帧间编码使用运动补偿和残差编码,即通过将一个或多个参考帧的像素或块移动来生成输入帧的预测,然后使用残差进行修正。预测是帧间编码中的一个重要任务,因为它是利用时间冗余的主要方式。在传统的视频编码范式中,运动矢量用于模拟参考帧和输入图像之间的像素块的运动。在神经视频编码领域,通常使用密集光流来模拟单个像素的运动。在这两种情况下,使用运动矢量或光流对参考帧进行变形以生成预测。Object locationPredictionMotion vectorPrediction errorInterpolationInterpolation guide�����������������������������������������������������(a) (b) (c) (d) (e) ��66810物体位置0预测0运动矢量0预测误差0插值0插值指南0图2. 帧间预测。x t , x t ,和 x ref 分别表示输入帧、对应的预测和参考帧。(a) 实际物体位置。(b)P帧预测,传输一个相对于单个参考帧的运动矢量。(c) 基于双向流/变形的B帧预测,传输两个相对于两个参考帧的运动矢量。(d)基于帧插值的B帧预测,将插值结果视为预测。不传输运动信息。(e)我们的B帧预测方法,使用类似P帧的单向运动矢量对插值结果进行校正。0由于两个参考帧已经可用于接收器,因此预测不需要编码。基于双向流/变形的神经B帧编码方法[13]不使用这些有用的信息,并将光流与两个参考帧相关联(见图2.c)。另一方面,插值结果仅在线性运动假设下准确。因此,在依赖帧插值的神经B帧模型中[11,43],预测很可能与输入帧不完全对齐(见图2.d)。即使使用非线性帧插值器[45],仍可能发生错位。在这些情况下,编解码器仅依靠残差来补偿错位。结果是,与在应用残差编码之前通过某些廉价的辅助信息减轻错位的情况相比,编码效率可能显著降低。在本文中,我们通过引入一种新的神经B帧编码方法来解决这个问题,尽管方法简单,但非常有效。该方法涉及插值两个参考帧以获得单个参考帧,然后由P帧模型用于预测当前帧(见图1和图2.e)。对该预测应用残差。我们的方法利用了接收器可用的丰富运动信息,通过进行帧插值来避免由于错位而导致的残差惩罚。由于我们的B帧编码解决方案基于P帧编解码器,因此可以使用现有的P帧编解码器来编码B帧。事实上,同一个网络可以学习同时进行P帧编码和B帧压缩。换句话说,通过向P帧编解码器添加帧插值器,编解码器能够同时编码P帧和B帧。在实现我们的技术时,可以自由选择现有的插值和P帧方法。在视频编码中,视频被分成一组图片(GoP)进行编码。我们在本文中开发的神经视频编解码器B-EPIC(B-Frame compression throughExtended P-frame & InterpolationCodec)支持所有帧类型。0类型。鉴于不同的帧类型产生不同的编码效率,选择适合GoP中各个帧的正确帧类型至关重要。在本文中,我们仔细研究了GoP结构。我们的主要贡献和发现如下:0• 我们引入了一种基于现有P帧编解码器和帧插值的新型B帧编码方法。0•通过权值共享,使用单个P帧网络同时用于P帧和B帧编码。0• 提供了关于GOP结构对性能影响的彻底分析。0•提出的解决方案在性能上超过了现有的神经视频编解码器,并取得了新的最先进的结果。02. 相关工作0I帧/图像编码:在神经图像编码的发展中取得了巨大的进展。研究集中在神经编码的各个方面,如架构[3, 26, 30,37],量化[1],先验[5, 26]和多速率编码[12, 25,36]。最近,分层超先验模型[4,5]在神经编码领域被广泛采用,有多个变种,包括一些配备自回归模型[27,28]和注意机制[10]。P帧编码:大多数现有的神经视频编解码器属于这个类别,其中单向运动估计/补偿后跟残差校正[21, 22,31]。Lu等人[23]引入了DVC,这是一个基本的P帧编解码器,后来在[24]中进行了升级。虽然运动通常使用空间光流进行建模,但Agustsson等人[2]引入了尺度空间流来通过模糊场解决运动估计中的不确定性,该方法在[47]中得到了进一步的改进。最近的工作引入了更复杂的组件,例如Golinski等人[15]添加了循环性以捕捉更长的帧依赖性,Lin等人在M-LVC中查看多个先前帧以生成预测,Liu等人在特征中执行多尺度变形。������������BidirWarpFlow Interpolation���→�, ���→����→����→���→���→����������������������FlowNetWarpRefineNet3.1. Frame interpolationB-frame coding, xt could be anywhere between �xref0 and�xref1, an important factor in choosing Super-SloMo overother competitors is that Super-SloMo supports an arbitraryt : 0 < t < 1 while many other methods assume t = 0.5.The latter can be still used within our model, though theywill impose restrictions on the GoP size. See section 3.3 formore details.The block diagram of Super-SloMo is depicted inFig. 3.Super-SloMo consists of two trainable compo-nents i.e. FlowNet and RefineNet as well as non-trainableFlowInterpolation, Warp, and BidirWarp blocks. Opticalflow between �xref0 and �xref1 in the forward and backward di-rections, i.e. f0→1 and f1→0 where f0→1 denotes the opticalflow from �xref0 to �xref1, are initially calculated in FlowNetand then interpolated at time t in FlowInterpolation usinglinear interpolation:(1)66820�� ��� � �� ��� �0Warp0�� �� ��0��0�� ��� � �0FlowNet Warp RefineNet0图3. 基于Super-SloMo[17]的帧插值方法。FlowNet和RefineNet是可训练的,而FlowInterpolation、Warp和BidirWarp是不可训练的运算符。详见第3.1节。0NVC中的纹理空间[20],Chen等人[9]通过位移帧差替换了光流和变形。B帧编码:Wu等人[43]通过上下文信息实现了一种先进的神经视频编解码器,通过帧插值来实现。Chang等人[11]通过添加残差校正改进了这个想法。Habibian等人[16]提供了一种基于3D卷积的隐式多帧编码解决方案。Djelouah等人[13]在B帧编码中使用双向光流和变形特征域残差。最近的一项工作[29]提供了一种多参考视频编码器,可以应用于P帧和B帧编码。03. 方法0我们开发了一个神经视频编解码器B-EPIC,它由一个I帧编解码器、一个P帧编解码器和一个帧插值器组成。I帧编解码器(图4.a)独立地对每个帧xt进行编码,产生重建帧xt'。P帧编解码器将参考帧xt'进行变形,产生对xt的预测xt',然后通过残差进行校正,得到重建帧xt(见图4.b)。帧插值器使用两个参考帧xt'0和xt'1,生成一个插值参考帧xt'(见图3)。我们的新型B帧编解码器(图1)通过在参考帧xt'0和xt'1上使用帧插值器生成一个单一的参考帧xt',然后由P帧编解码器用于编码xt。因此,该系统灵活地支持I帧、P帧和B帧。尽管我们的通用方法可以使用任何帧插值器和P帧编解码器来实现,但在本文中,我们开发了一个特定的编解码器,它使用了Super-SloMo [17]帧插值器和Scale-SpaceFlow(SSF)编解码器[2]。SSFP编解码器在我们的视频编解码器中可以独立使用,也可以与Super-SloMo一起在B帧编解码器中使用,两者共享权重。在接下来的小节中,我们将更详细地讨论Super-SloMo和SSF,以及GoP结构和损失函数。0在帧插值块中,目标是将时间索引归一化为 0 和 1 的两个参考帧,即 α x ref 0 和 α x ref 1,插值到时间t,其中 0 < t < 1。由于在B帧编码中,x t 可以位于 α x ref 0 和 α x ref 1之间,选择Super-SloMo而不是其他竞争对手的一个重要因素是Super-SloMo支持任意的 t:0 < t <1,而许多其他方法假设 t =0.5。后者仍然可以在我们的模型中使用,但它们将对GoP大小施加限制。有关更多细节,请参见第3.3节。Super-SloMo的块图如图3所示。Super-SloMo由两个可训练组件FlowNet和RefineNet以及不可训练的FlowInterpolation、Warp和BidirWarp块组成。在FlowNet中,计算了正向和反向的 α x ref 0 和 α x ref 1之间的光流,即 f 0 → 1 和 f 1 → 0,其中 f 0 → 1 表示从 α x ref 0 到 α x ref 1的光流,然后在FlowInterpolation中使用线性插值在时间 t 进行插值:0α f t → 0 = -α 1 - t α t f 0 → 1 + t^2 f 1 → 0 α f t → 1 =α 1 - t α^2 f 0 → 1 - t α 1 - t α f 1 → 00然后使用插值的光流 α f t → 0 和 α f t → 1 对 α x ref 0 和α x ref 1进行变形。将两个变形后的参考帧与原始参考帧和插值的光流一起输入RefineNet,进一步调整双向光流 α f t → 0、αf t → 1,并生成掩码 αm。最终使用双向变形生成插值结果:0α x ref = Warp α x ref 0, α f t →0 ⊙ α0Warp α x ref 1, α f t → 1 ⊙ (1 - α m)(2)0其中 ⊙表示逐元素乘法。在本工作中,FlowNet和RefineNet分别使用PWC-Net [35]和U-Net[32]进行实现。有关RefineNet架构的更详细说明,请参见附录A。03.2. I-P帧编解码器0我们的I帧和P帧编解码器如图4所示。I帧编解码器由一个单独的自编码器Image-AE组成,将 x t 压缩为重构的 α x t,而P帧编解码器首先通过运动估计和运动补偿生成 x t 的预测 αx t,然后通过残差进行修正,通过残差AE重构 α x t。��������Warp�����Flow AEResidual AEP-Frame Codec���-+�����Image AE�����I-Frame Codec(a) (b)ITypeI…B…P…B…P…Ref…(b)GoPTypeRefBBB…………RefOrder12341RefGoPTypeRefBBBBBBBRefOrder143424341Ref(a)(b)66830α α α α0Warp0α α0α α0光流AE0残差AE0P帧编解码器0αα0αα0图像AE0α α0α α0I帧编解码器0(a) (b)0图4. (a) I帧和(b) P帧编解码器的块图,两者都基于SSF[2]。更多细节请参见第3.2节。0α f t = Flow-AE α x t, α x ref, α x t = Warp α x0r t = x t - α x t, α r t = 残差-AE α r t (3) α x t = α x t + α r t0其中 α f t、r t 和 α r t分别表示光流、编码器残差和解码器残差。在SSF中,α f t包含空间和尺度位移图,Warp是对 α x ref的模糊堆栈进行三线性插值操作。而SSF使用高斯滤波器生成模糊堆栈,并使用尺度非线性地指向模糊堆栈,我们使用高斯金字塔生成模糊堆栈,然后将所有金字塔尺度双线性上采样到原始分辨率,并使用尺度线性地指向模糊堆栈。上述所有自编码器,即Image-AE、Flow-AE和Residual-AE,都具有相同的架构(不共享权重),基于均值尺度超先验模型[5],包括一个主自编码器(编码器和解码器)和一个超先验(超编码器、均值超解码器和尺度超解码器),其中所有组件都是通过卷积神经网络参数化的。量化的潜变量 z被分解为一个潜变量和一个超潜变量,其中潜变量具有高斯先验,其概率取决于超潜变量。0GoP 1 GoP 2 …0类型 I … B … I … B … I …0参考 …0GoP 1 GoP 2 …0类型 I … B … P … B … P …0参考 …0(a)0(b)0图5.帧类型选择2,视频的第一个参考帧总是编码为I帧。(a)在IBI配置中,后续的参考帧也被编码为I帧,而(b)在IBP配置中,它们被编码为P帧。箭头表示在互编码中使用的参考帧。0GoP0类型 参考 B B B … … … … 参考0顺序 1 2 3 4 10参考0GoP0类型 参考 B B B B B B B 参考0顺序 1 4 3 4 2 4 3 4 10参考0(a)0(b)0图6.B帧顺序,(a)顺序,(b)分层。0潜变量和超潜变量具有数据无关的分解先验。有关架构的更多细节,请参见附录A。03.3.GoP结构03.3.1 帧类型选择0I帧是编码效率最低的帧类型,其次是P帧,最后是B帧。由于B-EPIC支持所有三种帧类型,因此使用正确的帧类型来提高整体编码效率非常重要。在神经视频编码中,参考帧通常在GoP边界处插入。一种常见的做法是将参考帧编码为帧内,并将它们用作参考来编码其他帧作为帧间。在这项工作中,我们称之为IBI配置,其中GoP边界被编码为I帧,中间帧被编码为B帧。请参见图5.a进行说明。另一方面,鉴于I帧是三种帧类型中效率最低的,我们可以将一些参考帧编码为P帧以提高性能。在这里,我们称之为IBP配置,如图5.b所示,其中第一个参考帧被编码为I帧,后续的参考帧被编码为P帧[33]。03.3.2 B帧顺序0一旦编码了一个B帧,它可以作为下一个B帧的参考。因此,以最佳顺序编码GoP中的B帧非常重要,以i)最大限度地利用可用参考的信息和ii)为下一个B帧提供良好的参考。在GoP中遍历B帧有两种方式,顺序和分层[33],如图6所示。我们假设对于每个给定的GoP,边界帧是已经可用(解码)的参考帧,中间帧是B帧。在顺序顺序中,我们从GoP的一端开始,一次编码一个B帧,直到达到另一端。0在这个图中,我们所展示的GoP与图片结构(SoP)有关,但我们使用GoP是因为它更直观[42]。66840而在分层顺序中,我们总是将两个参考帧的中间帧编码为下一个B帧。普通的分层顺序只支持2的幂次方加1的GoP大小,例如9、17、33。然而,我们设计了一种基于二分法的算法,以分层顺序遍历任意大小的GoP,如算法1所示。03.4.损失函数0我们假设训练是在边界为参考的N帧的GoP上完成的。IBP配置的损失函数定义为速率失真权衡,如下所示:0t =0 D(x_t, x_t_hat) +β(H(z_i_0) + H(z_f_t) +H(z_r_t))0(b)0t =10帧类型选择2,视频的第一个参考帧总是编码为I帧。(a)在IBI配置中,后续的参考帧也被编码为I帧,而(b)在IBP配置中,它们被编码为P帧。箭头表示在互编码中使用的参考帧。0其中H(∙)表示潜变量的熵估计,以每像素的比特数表示,对应于比特流中的期望大小,z_i_0表示I帧编码器的Image-AE的潜变量,z_f_t和z_r_t表示P帧编码器的Flow-AE和Residual-AE的潜变量,D(∙,∙)表示失真,以MSE或MS-SSIM[40]表示,β是控制速率和失真之间平衡的超参数。IBI的损失函数类似。04. 实验与结果04.1. 训练设置0数据集:我们使用 Vimeo-90k 作为训练数据集[46]。它包含了 89,800 个 RGB 格式的 7帧序列。训练模型:我们使用不同的速率-失真权衡(β值)训练模型,同时使用 MSE0算法 1:按层次顺序遍历任意大小的 GoP。0假设:给定大小为 N 的 GoP,假设 � x 0 和 � x N − 1作为参考帧;初始化一个空堆栈;将 ( i min , i max ) =(0 , N − 1) 推入堆栈;当堆栈不为空时执行以下操作0从堆栈中弹出 ( i min , i max ) ;定义新的索引 i =floor(( i min + i max ) / 2) ;将 x i 编码为 B帧以生成参考帧 � x i 。使用 � x i min 和 � x i max作为参考帧;如果 i − i min > 1 则0将 ( i min , i )推入堆栈,如果 i max − i> 1 则0将 ( i, i max ) 推入堆栈;结束0和 MS-SSIM 作为失真损失。MSE 模型 B-EPIC(MSE) 在 β = 2 γ × 10 − 4 : γ ∈ � 0 , 1 ,..., 7 � 上进行训练,而 MS-SSIM 模型 B-EPIC(MS-SSIM) 在 β = 2 γ × 10 − 2 : γ ∈ � 0 ,1 , ..., 7 � 上进行训练,其中 MSE 和 MS-SSIM 都是在 RGB色彩空间中测量的。训练计划:我们按照 SSF [2] 中提供的精确时间表来训练 MSE 和MS-SSIM 模型以便进行比较。具体来说,我们最初在 MSE 上对所有模型进行了1,000,000 次梯度更新的训练,然后在 MS-SSIM 上对模型进行了额外的 200,000次梯度更新的训练,最后对所有模型进行了 50,000次梯度更新的微调。在训练和微调步骤中,我们使用了 Adam 优化器 [18],批量大小为8,并在 4 帧序列上训练网络,因此训练的 GoP 结构为 IBBI 和 IBBP,分别对应 IBI 和IBP 模型。训练步骤在 Nvidia V100 GPU 上大约需要 10天的时间。我们还尝试了其他训练 GoP 长度。尽管较长的 GoP长度会大大减慢训练速度,但并没有显著提高性能。在训练步骤中,我们将学习率设置为10 − 4,并使用随机提取的 256 × 256 补丁。在微调步骤中,我们将学习率降低到 10 −50并将补丁大小增加到 256 ×384。我们从随机权重开始训练网络的所有组件,除了插值块中的 FlowNet,其中使用了具有冻结权重的预训练PWC-Net。为了更稳定的训练,我们阻止了来自 B帧编解码器的梯度传播到 I 帧和 P 帧编解码器 [2]。04.2. 评估设置0我们在广泛使用的神经视频编解码器文献中使用了 UVG[38]、MCL-JCV [39] 和 HEVC [7] 数据集进行了 B-EPIC的评估。所有这些数据集都以 YUV420格式提供。我们使用 FFMPEG [14] 将视频转换为B-EPIC(以及几乎所有其他神经编解码器)可接受的 RGB格式。有关 FFMPEG 命令的详细信息,请参见附录B。如第 4.5 节所示,分层的 B 帧顺序以及 IBP GoP结构生成了我们的最佳结果。我们在本节的其余部分报告的结果都基于这些设置,同时评估 GoP 大小为12,以与其他作品 [24, 43] 保持一致。我们以 PSNR 和MS-SSIM 的形式报告视频质量,其中两者都是在 RGB色彩空间中首先按帧计算,然后对每个视频的所有帧进行平均,最后对数据集的所有视频进行平均。由于网络架构的限制,我们的编解码器接受空间维度是 64的倍数的输入。如果存在尺寸不兼容,我们在输入编码器之前将帧填充到最接近的 64 的倍数,并进行裁剪0.00.10.20.40.50.632333435363738394041UVG - PSNRB-EPIC(MSE)SSF(MSE) retrainedSSF(MSE) [2]M-LVC [19]DVC_Pro(MSE) [24]H.265H.2640.00.10.20.40.50.60.930.940.950.960.970.980.99B-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedSSF(MS-SSIM) [2]M-LVC [19]DVC(MS-SSIM) [24]Habibian et al [16]Golinski et al [15]Wu et al [43]H.265H.2640.00.10.20.40.50.632333435363738394041MCL-JCV - PSNRB-EPIC(MSE)SSF(MSE) retrainedSSF(MSE) [2]H.265H.2640.00.10.20.40.50.60.930.940.950.960.970.980.99MCL-JCV - MS-SSIMB-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedSSF(MS-SSIM) [2]H.265H.26466850比特率(每像素比特数)0PSNR(分贝)0速率(每像素比特数)0MS-SSIM0UVG - MS-SSIM0图7. 在UVG数据集上的速率-失真比较。0速率(每像素比特数)0PSNR(分贝)0速率(每像素比特数)0MS-SSIM0图8. 在MCL-JCV数据集上的速率-失真比较。0解码帧以补偿填充。这个问题可能是可以修复的,取决于需要填充的像素数量,这可能导致编码效率低下。04.3. 比较方法0我们将结果与几种神经视频编解码器进行了比较,包括SSF[2]、DVC [24]、M-LVC[19]、Golinski等[15]、Wu等[43]和Habibian等[16]。我们重新实现和训练了SSF,并提供了原始论文中报告的结果和再现的结果。原始论文中的结果是在无限的GoP大小下获得的,即序列的第一帧是I帧,其余帧都是P帧,而我们报告的性能是在GoP大小为12的情况下。我们进行比较的标准编解码器是H.264 [41]和H.265[34]。我们使用FFMPEG生成了两者的结果,其中GoP大小为12,其他所有默认设置。这与其他论文不同,其他论文通过不允许B帧或将预设更改为“快速”或“超快”来限制FFMPEG的性能。有关FFMPEG命令详细信息,请参见附录B。04.4. 结果与讨论0速率-失真:图7、8、9分别显示了UVG、MCL-JCV和HEVC数据集上的速率-失真比较。0从MS-SSIM的评估结果来看,B-EPIC(MS-SSIM)在所有数据集的所有比特率上优于所有比较方法。从PSNR的评估结果来看,如图7和8所示,B-EPIC(MSE)在UVG和MCL-JCV数据集上在所有比特率上明显优于所有竞争的神经编解码器以及H.264。与H.265相比,B-EPIC(MSE)在平均和高比特率上保持较大的优势,在极低比特率情况下大致相当。在HEVC数据集上,HEVC类别B和类别E的结果同样有利。在类别C上,标准编解码器优于所有神经方法,在类别D上,B-EPIC(MSE)的性能较差。这很可能是因为类别D的视频必须从240×416填充到最接近的64的倍数,即256×448,然后才能输入到我们的编码器中。这意味着我们的方法在当前形式下必须编码更多的像素,所有这些像素都会在解码器端被丢弃。值得注意的是,由于分辨率非常小,HEVC类别D已经在最新的标准视频编解码器H.266[8]的常见测试条件中被移除。B-EPIC可以被视为SSF的B帧等效,从速率-失真比较中可以看出,在所有数据集的所有比特率上,B-EPIC明显优于SSF。这证明了我们B-0.00.10.20.30.40.50.631323334353637B-EPIC(MSE)SSF(MSE) retrainedM-LVC [19]DVC_Pro(MSE) [24]H.264H.2650.00.10.20.30.40.50.6262830323436B-EPIC(MSE)SSF(MSE) retrainedDVC_Pro(MSE) [24]H.264H.2650.00.10.20.30.40.50.624262830323436B-EPIC(MSE)SSF(MSE) retrainedM-LVC [19]DVC_Pro(MSE) [24]H.264H.2650.000.050.100.150.200.250.30323436384042B-EPIC(MSE)SSF(MSE) retrainedDVC_Pro(MSE) [24]H.264H.2650.00.10.50.60.920.930.940.950.960.970.980.99B-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedM-LVC [19]DVC(MS-SSIM) [24]H.264H.2650.00.10.50.60.920.930.940.950.960.970.980.99B-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedDVC(MS-SSIM) [24]H.264H.2650.00.10.50.60.920.930.940.950.960.970.980.99B-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedM-LVC [19]DVC(MS-SSIM) [24]H.264H.2650.000.050.250.300.9700.9750.9800.9850.9900.995B-EPIC(MS-SSIM)SSF(MS-SSIM) retrainedDVC(MS-SSIM) [24]H.264H.265290116211730280807140226222311050409271213101906031518242520050100150292830160106082107171305142304021822092415271219102520050100150(MSE) (MSE)(MS-SSIM) (MS-SSIM)UVG-28.66-25.71-47.89-24.03-41.05-50.79MCL-JCV-20.86-15.90-31.91-18.22-43.25-52.12HEVC-B-25.0-16.28-35.68-19.70-48.23-55.19HEVC-C-19.5147.6911.22-15.80-27.32-41.53HEVC-D-16.2582.8929.05-11.86-20.79-43.98HEVC-E-32.53-24.35-53.87-30.45-47.81-61.32HEVC-Avg-23.3222.49-12.32-19.46-36.04-50.5066860PSNR(分贝)0HEVC-B0HEVC-C0HEVC-D0HEVC-E0速率(每像素比特数)0MS-SSIM0速率(每像素比特数)0速率(每像素比特数)0速率(每像素比特数)0图9. 在HEVC数据集上的速率-失真比较。0文件大小比率(%)0x265 SSF(MSE)[2] B-EPIC(MSE)0视频索引0文件大小比率(%)0x265 SSF(MS-SSIM)[2] B-EPIC(MS-SSIM)0图10.H.265、SSF和B-EPIC相对于H.264在MCL-JCV数据集上生成的文件大小,通过PSNR(顶部)和MS-SSIM(底部)BD-rate增益进行测量。100%的值表示大小相等,没有比特率节省。较小的值更好。0在现有的P帧编解码器上应用B-EPIC时,它采用了逐帧方法。Bjøntegaard deltarate(BD-rate):在本节中,我们报告了与H.264相比的BD-rate[6]增益。表1列出了在UVG、MCL-JCV和HEVC数据集上与H.264相比的平均BD-rate增益,以PSNR和MS-SSIM两种指标衡量。这些数字显示了一种方法在保持相同视频质量的情况下可以节省多少比特率。B-EPIC在MS-SSIMBD-rate增益方面表现最好,并且在PSNRBD-rate增益方面相对较好。此外,在图10中,我们展示了使用B-EPIC、SSF和H.265相对于H.264编码的各个MCL-JCV视频的文件大小,通过BD-rate估计。从这里观察到,B-EPIC在各个方面都比SSF提供更好的结果。与H.265相比,在大多数视频中,它的性能显著更好,特别是在MS-SSIM方面。最后一组的性能不佳。0PSNR BD-rate增益(%) MS-SSIM BD-rate增益(%)0数据集 H.265 SSF B-EPIC H.265 SSF B-EPIC0表1. 在不同数据集上与H.264相比的平均BD-rate增益。0图中序列的差异可能是因为它们是动画电影,而我们的训练数据集Vimeo-90k仅包含自然视频,正如[2]所指出的那样。0定性结果:图11显示了一个样本的定性结果,其中展示了输入序列以及SSF和B-EPIC的解码帧、光流图和残差。B-EPIC依赖于更少详细的内容。���������B-EPIC����, PSNR: 37.28 dB, 39.67 Kb���� , 30.25 Kb������ , ���������, 9.42 Kb����, PSNR: 37.49 dB, 128.46 KbSSF���� , 103.08 Kb������ , ���������, 25.38 Kb1357911GoP Frame Index0.050.100.150.20Rate (bits per pixel)1357911GoP Frame Index36.436.636.837.0PSNR (dB)I-frameP-frameB-frame - HierarchicalB-frame - Sequential0.0.153435363738Full model - IBP - Hier.Full model - IBI - Hier.Full model - IBP - Seq.w/o Flow-AE - IBI - Hier.non-pretrained PWC-Net - IBP - Hier.0.0.1534353637384 skipped frames7 consecutive frame4 consecutive frames4Video produced by Netflix, with CC BY-NC-ND 4.0 license:https://media.xiph.org/video/derf/ElFuente/Netflix_Tango_Copyright.txt66870图11. NetflixTango中的Tango视频第44帧的定性结果。x43,x44和x45是输入序列。在SSF中,x44被编码为P帧,使用x43作为参考。在B-EPIC中,x44被编码为B帧,同时使用x43和x45作为参考。插值块提供了P帧编解码器中用作参考的准确基准帧。因此,流和残差较少详细,并且消耗的比特较少,相对于SSF。0图12.在UVG数据集上使用顺序和分层B帧顺序时,每帧的平均结果。每个序列的第一帧编码为I帧,每个GoP的最后一帧编码为P帧,其余帧编码为B帧。0由于帧插值结果被用作参考,SSF生成的光流和残差较少详细,相对于SSF,SSF在相似的PSNR下产生了更少的比特。每帧性能:图12显示了在UVG数据集上使用顺序和分层B帧顺序时,B-EPIC在12帧GoP上的平均性能。如预期的那样,随着两个参考帧之间的间隔缩小(通过新编码的B帧用作参考),PSNR提高,比特率下降。04.5. 消融研究0我们研究了编解码器不同组成部分的有效性,包括:GoP结构(IBI vs IBP),B帧顺序(顺序 vs分层),预训练的PWC-Net以及去除P帧编解码器中的Flow-AE,仅依赖于Residual-AE。最后一种配置去除了Flow-AE,类似于使用插值后进行残差校正的B帧编解码器[11]。这些消融研究结果如图13.a所示。此外,我们还研究了训练GoP对性能的影响。0比特率(每像素比特数)0峰值信噪比(dB)0比特率(每像素比特数
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功