ICCV 2023 | 基于模型的深度视频压缩

2023-10-24 10:44:48 浏览数 (1)

简介

传统的混合视频编码框架和现有的基于深度学习的视频压缩(DLVC)方法都遵循相同的视频压缩方法,通过设计各种模块来减少空间和时间冗余。它们使用同一帧或相邻帧中的相邻像素作为参考来导出帧内或帧间预测值。由于视频序列是以高帧率(例如30fps或60fps)捕获的,因此同一场景可能出现在时域中高度相关的数百个帧中。然而,现有的压缩策略并不能很好地去除块级或帧级预测中的场景冗余。

为了克服视频压缩中的性能瓶颈,本文提出了一种创新的视频编码范式,旨在为同一场景的视频序列找到一个紧凑的子空间,而不是通过块级或帧级预测方法来减少时空冗余。该范式用整个场景的隐式紧凑子空间建模取代了通过局部预测的冗余减少。因此,找到一个合适的建模工具来表示场景对这种范式至关重要,而隐式神经表示(INR)因其通过深度网络对各种信号建模的强大能力而广受欢迎。一些研究人员已经将INR应用于图像压缩任务,并取得了可喜的结果,这给将INR运用到MVC任务上提供了可能。

在MVC中,序列建模是一个非常重要的因素,这是视频压缩面临的主要挑战。然而,原始的视频INR方法的表示能力是有限的,得到一个视频需要遍历每一帧图像的每一个像素点。而舍弃逐像素遍历,以视频帧索引为对象的INR方法性能却十分有限,比如之前的NeRV甚至不如H.265。这反而说明将视频INR应用于视频压缩任务的进一步发展潜力。因此,在本文中,作者进一步提高了视频INR在空间上下文增强和时间相关性捕获中的序列建模能力。

图1 不同视频INR方法和传统视频压缩方法的性能比较

在空间上下文捕获中,本文提出了一种与上下文相关的空间位置嵌入(CRSPE)方法。同时引入了一种频域监督(FDS)模块,该模块可以在不需要额外比特率的情况下捕获高频细节,提高重建质量。时间相关性是INR方法提高不同帧表示效率的关键因素。现有的视频INR方法主要依赖于不同的时间位置编码来区分帧,并期望网络隐含地学习时间相关性。但对于长视频序列,它们很难探索复杂的长程时间相关性。为了解决这一问题,本文引入了用于短期时间相关性的场景光流约束机制(SFCM)和用于长期时间相关性的时间对比损失(TCL)。这些机制不会增加网络参数,并且非常适合MVC任务。这个新的MVC框架已经显著优于H.266,这表明了MVC方法的潜力。

总之,这篇文章的核心贡献为:

  • 提出了一种MVC,旨在为视频序列识别更紧凑的子空间。与现有的依赖于通过块或帧级别的预测来显式减少时空冗余的方法不同,MVC同时使用视频场景中所有帧之间的相关性。
  • 为了解决现有视频INR方法在应用于视频压缩时的局限性,作者在空间上下文增强中引入了CRSPE和FDS,它们可以处理不同帧的空间变化并捕捉高频细节。作者进一步设计了用于时间相关性建模的SFCM和TCL。
  • 在不同的数据库上进行了广泛的实验,并对设计的模块进行了详细的分析。实验结果表明,提出的方法可以优于H.266(VTM12.0)。这证明了提出的算法的优越性,并可以激励研究人员从新的角度探索视频压缩。

提出的方法

图2 所提出的MVC的框架

之前的工作

图1中灰色框图部分沿用了之前的工作,采用时间空间信息分离的视频INR方法。具体来讲,网络需要当前时刻的帧索引

t

和空间坐标系

S

S

的大小是

2times9times16

,代表低分辨率下的空间特征。帧索引

t

和空间坐标系

S

首先进行归一化操作,然后输入位置编码

gamma

进行维度扩展,位置编码

gamma

可以表示为:

gamma(t)=(sin(b^0 pi t),cos(b^0 pi t),...,sin(b^{l-1} pi t),cos(b^{l-1} pi t))quad(1)

其中

b=1.25,l=80

。位置编码能有效的拓展输入信号的维度,而之前的研究表明,直接输入空间坐标或者时间索引,INR的拟合能力较差,而高维拓展能提高INR的表示能力。接下来是提取当前帧的空间和时间特征,时间特征是通过MLP得到的,而空间特征是通过transformer嵌入得到的,这些网络用参数

theta_{t1}

theta_s

来表示。具体的,提取到的特征可以写为:

hat{F}_s=mathcal{G}_{theta_s}(hat{S}) hat{S}, hat{S} = gamma(S)quad(2)
hat{F}_{t1}=mathcal{G}_{theta_{t1}}(gamma(t))quad(3)

这之后,需要将提取到的时间和空间特征做融合。

hat{F}_{t1}

是一个

d

维的向量,而

hat{F}_s in mathbb{R}^{d times 9 times 16}

,因此直接按通道相乘再通过一个参数为

theta_f

的网络生成融合的时空特征,而这个

mathcal{G}_{theta_f}

网络采用了和

mathcal{G}_{theta_s}

相同的transformer结构。这个过程可以具体表述为:

hat{F}_f=mathcal{G}_{theta_f}(hat{F}_s odot hat{F}_{t1})quad(4)

有了融合的时空特征,就可以考虑生成当前帧索引

t

时刻的视频帧了。网络

mathcal{G}_{theta_r}

采用卷积和pixelshuffle操作对特征图进行上采样,这是一个渐进的过程。网络

mathcal{G}_{theta_r}

包含了五个相同的上采样结构,每个结构设计了不同的上采样因子。在上采样的过程中,为了进一步融合时间上下文,会额外生成一个时间特征用来指导对中间特征图的分布进行位移,这个过程能有效提高性能。因此,视频帧的生成过程可以概括的表示为:

hat{F}_{t2} = mathcal{G}_{theta_{t2}}(gamma(t))quad(5)
hat{mathrm{v}}_t=mathcal{G}_{theta_r}(hat{F}_f ,hat{F}_{t2})quad(6)

空间上下文增强

上下文相关的空间位置嵌入(Context-related Spatial Positional Embedding)

上面提到的工作通过固定的网格坐标

S

隐式地表示空间上下文,这是上下文无关的空间位置嵌入。然而不同视频帧之间的空间内容会变化,这将导致更大的网络模型参数和更长的训练时间,才能得到一个相对较好的结果。为了解决这个问题,作者提出了CRSPE。从图2中可以看到,在训练之前,会通过网络

psi

对每一个视频帧提取一个空间特征

F_e in mathbb{R}^{3times9times16}

,然后将空间特征

F_e

和维度拓展后的空间坐标

hat{S}

进行级联。对于720P的视频,网络

psi

是一个

80times80

卷积层,而对于1080P的视频,网络

psi

是一个

120times120

卷积层。尽管传输

F_e

需要额外的比特,但这可以使模型获得更好的重建质量,这将有利于RD性能。测试的结果表明,对一个720P的视频,在额外花费

10%

Bpp的开销下,获得了约

0.9

dB的PSNR提升。

频域监督(Frequency Domain Supervision)

在之前的INR研究中,大家普遍发现网络很难学到高频信息。一些工作在其网络中使用了频率感知操作,可以捕捉图像的高频细节。然而,这些操作很难直接应用于视频压缩任务,因为这些操作需要额外复杂的模块,并且会引入更多的编码比特。为了保持视频帧中的高频细节,提出了不添加网络参数的频率感知感知损失。具体而言,使用快速傅立叶变换(FFT)将

hat{mathrm{v}}_t

mathrm{v}_t

变换到频域中,然后计算

mathcal{L}1

损失:

mathcal{L}_{freq} = mathcal{L}_1(FFT(hat{mathrm{v}}_t),FFT(mathrm{v}_t))quad(7)

时间相关性捕获

之前的INR方法仅使用当前时刻的帧索引

t

来区分不同帧,在面对复杂的时间变化方面,尤其是在具有长期时间相关性的情况下,模型将面临性能退化。因此,作者提出了SFCM来捕捉短期时间相关性。除此之外,还设计了TCL,以提高模型对长期时间相关性的建模。

场景光流约束机制(Scene Flow Constrain Mechanism)

SFCM会从上采样网络

mathcal{G}_{theta_r}

中提取生成视频帧图像前的最后一个特征图

hat{Z}_t

,使用

hat{Z}_t

来生成光流。用来约束的光流有两个,前向光流

mathrm{O}^f_t

代表从

t-1

t

的光流图,而后向光流

mathrm{O}^b_t

代表从

t

t-1

的光流图。光流图的生成依赖于预训练的网络

phi

,而作为GT的光流图通过光流估计算法RAFT生成,视频帧

left { mathrm{v}_{t-1},mathrm{v}_t right }

对应的光流图为

left { mathrm{O}^{fgt}_t , mathrm{O}^{bgt}_t right }

。最后,通过

mathcal{L}1

损失进行优化:

mathcal{L}_{vanilla-flow} = mathcal{L}_1(mathrm{O}_t^f,mathrm{O}_t^{fgt}) mathcal{L}_1(mathrm{O}_t^b,mathrm{O}_t^{bgt})quad(8)

作为GT的光流图是通过RAFT算法估计得到,由于算法精度等不同原因,光流图会存在一定的噪声,而含有噪声的光流图会使模型性能劣化。为了解决噪声的问题,引入了正则化操作。具体来说,作者使用

1times1

的卷积加上一个softmax层对

hat{Z}_t

进行处理得到了两通道的正则化权重矩阵

mathrm{W}

。然后选择

mathrm{W}

中的第二个通道对光流图做正则化,正则化后的光流约束条件就变为:

mathcal{L}_{flow}=mathcal{L}_1(mathrm{W}^{(1)} cdot mathrm{O}_t^f , mathrm{W}^{(1)} cdot mathrm{O}_t^{fgt}) mathcal{L}_1(mathrm{W}^{(1)} cdot mathrm{O}_t^b , mathrm{W}^{(1)} cdot mathrm{O}_t^{bgt})quad(9)

作者在这里特意的将权重矩阵

mathrm{W}

设计成了两通道的,一个目的是方便将

mathrm{W}

优化成为在通道维度上是one-hot向量的形式。另外,单通道的

mathrm{W}

类似一个注意力图,只能通过MVC的重建损失来间接的监督,存在无法有效学习的风险。因此,将

mathrm{W}

设计成了两通道的,并使用了一个损失函数来优化

mathrm{W}

,这个函数定义为:

mathcal{L}_{ent} = - (mathrm{W}^{(0)} cdot log(mathrm{W}^{(0)}) mathrm{W}^{(1)} cdot log(mathrm{W}^{(1)}))quad(10)

图3展示了对光流进行正则化处理的结果,可以看到不应该出现的背景噪声消失了,作为运动主体的人的光流被突出了。

图3 正则化前后的光流对比

时间对比度损失(Temporal Contrastive Loss)

尽管SFCM可以捕捉两个相邻帧的短期时间相关性,但长期时间相关性也很重要。因此,作者考虑对当前帧和先前重建帧之间的长期时间相关性进行建模,主要采用对比学习的方式来实现。考虑当前时刻

t

的重建帧

hat{mathbb{v}}_t

和之前时刻

t-1

t-L

重建帧的集合

hat{mathrm{V}}_t^p = left { hat{mathbb{v}}_{t-1},hat{mathbb{v}}_{t-2},...,hat{mathbb{v}}_{t-L} right }

。使用预训练的特征提取网络和 global pooling 来将重建帧

left { hat{mathbb{v}}_t,hat{mathrm{V}}_t^p right }

嵌入到特征向量

left { mathbb{h}_t,mathrm{H}_t^p right }

上去。由于时间上相邻的帧比那些遥远的帧具有更高的相关性,因此假设

mathbb{h}_t

mathrm{H}_t^p

之间的相似性应该遵循时间距离的先验高斯分布,而特征向量的相似性通过余弦相似性计算。最后,基于以上假设,使用KL散度来对特征相似性和先验高斯分布进行优化,流程框图如图4所示,这个过程可以表示为:

sim(mathcal{u},mathcal{v}) = mathcal{u}^{top}mathcal{v} / left | mathcal{u} right | left | mathcal{v} right |quad(11)
Gau(x) = frac{1}{sigma sqrt{2pi}}exp(-frac{x^2}{2 sigma^2})quad(12)
mathcal{L}_{cont} = - {textstyle sum_{j=t-L}^{t-1}w_{tj}}log frac{exp(sim(mathbb{h}_t,mathbb{h}_j)/tau)}{{textstyle sum_{k=t-L}^{t-1}}exp(sim(mathbb{h}_t,mathbb{h}_k)/tau)}quad(13)
w_{tj} = frac{Gau(t-j)}{{textstyle sum_{k=t-L}^{t-1}}Gau(t-k)}quad(14)

图4 TCL计算流程

具体的,公式中的相关参数取值为:

sigma^2=10, tau=0.1, L=80

。基于以上所有的设计,充分考虑所有时空信息后的总的损失函数设计为:

mathcal{L}_{total} = mathcal{L}_1(hat{mathrm{v}}_t,mathrm{v}_t) mathcal{L}_{freq} mathcal{L}_{flow} mathcal{L}_{ent} mathcal{L}_{cont}quad(15)

视频压缩流程与模型压缩

本文采用的视频压缩流程如图5所示。在训练(编码)阶段,首先在整个视频上训练所提出的网络。然后将网络参数

theta

和空间特征

F_e

量化为比特流用于存储和传输。网络的参数是单精度浮点数,每个权重需要32位比特表示。为了减少内存需求,使用AIMET(AI Model Efficiency Toolkit)对模型进行量化。因为每个权重张量的值范围都不相同,所以需要对每个权重张量采用不同的量化策略来实现均匀量化。经验表明,7或8比特的量化能保证最好的率失真性能。最后,使用量化后的网络参数和空间特征进行解码。除了量化之外,还有很多的模型压缩方法能够进一步提高率失真表现,作者为了保证公平性没有进一步的讨论。为了和现有的视频压缩方法做比较,作者定义了MVC的Bpp:

(NP FE)/(FNtimes Htimes W)

。简单来说就是模型和特征的全部比特数除以视频的全部像素数。

图5 MVC方法的视频压缩流程图

实验

实验配置

本文使用PSNR和Bpp作为衡量压缩性能的标准,MVC网络的特性决定了在现阶段它只能运用在非实时的视频压缩任务上。 评价使用的数据集有三个,分别是来自HEVC ClassE的三个720P视频,来自IEEE1857标准下的三个1080P监控视频,以及其他论文中使用的两个1080P监控视频。作者将MVC方法与传统编解码器、基于INR的方法和DLVC方法进行比较。传统方法比较的对象有H.265(HM16.21)和H.266(VTM12.0),基于INR的方法是E-NeRV,DLVC的方法有HSTE(或者称为DCVC-HEM)和CANFVC。

实验结果

表1展示了不同方法的BDBR结果,作为对比的基线方法是H.266。在监控视频下,MVC能够实现在相近Bpp时相对于H.266约1dB的PSNR提升,这是很可观的收益。而MVC在所有测试数据集上都达到了最优。

表1 不同视频序列下不同模型和H.266对比的BDBR表现

表2展示了作者进行的不同消融实验。可以看到,所提出的全部模块都能提高网络性能。一系列实验验证了本文提出的模块的有效性。对SFCM,还分别讨论了提出的正则化方法和两通道权重矩阵的有效性。可以看到,没有正则化时,模型的性能甚至出现了一定的劣化。而对TCL,则分别讨论了高斯先验的有效性以及参考序列长度的影响。

表2 消融实验结果

总结

本文提出了一种新的视频压缩任务的MVC框架。这个框架利用INR作为骨干网络,并讨论了现有视频INR方法在应用于视频编码任务时的局限性。为了解决这些限制,作者提出了与上下文相关的空间位置嵌入和频域监督,以增强现有INR方法提取空间上下文能力。此外,还设计了场景光流约束机制和时间对比度损失,以提高时间建模能力。在实验中,本文提出的MVC方法在所有测试序列中都优于H.266,这激励我们从新的角度探索视频压缩任务。

0 人点赞