【论文阅读】Comprehensive Review of End-to-End Video Compression

摘要:

近年来,端到端视频压缩作为一种新兴且有前景的解决方案开始在视频压缩领域受到关注。本文对端到端视频编码和解码技术的发展与现状进行了全面的综述,详细介绍了传统混合编码器端到端编码器的基本原理。本研究深入探讨了从传统视频压缩算法到基于深度学习的创新方法的演变,包括深度神经网络(Deep Neural Networks, DNN)在优化策略和关键技术中的应用进展。

本文特别关注端到端视频压缩框架(如DVC、DCVC以及基于Transformer的模型)的发展,这些框架显著提升了视频压缩的效率和质量。此外,本文总结了该领域的最新研究成果,并对未来研究方向进行了简要展望。

paper: https://ieeexplore.ieee.org/abstract/document/10592556
code:

引言:

A.背景

在数字媒体和通信行业中,视频压缩技术的重要性不容忽视。它显著提升了存储和传输效率,使得处理大规模数字视频内容成为可能。通过视频压缩技术,可以减少视频文件的体积,在有限的存储空间内容纳更多内容,并实现更高效的网络传输。此外,视频压缩技术还提高了在不同设备和平台上访问视频内容的能力,特别是在移动设备和低带宽环境中。

技术进步推动视频压缩技术从最基本的编码方法演变到多个标准化阶段,包括 MPEG-1、H.264/AVC、H.265/HEVC 和 H.266/VVC,这些标准在压缩效率和视频质量方面取得了显著提升。近年来,深度学习技术的兴起为视频压缩领域带来了新的机遇。通过深度学习技术,可以更智能地处理视频数据,从而显著提高压缩效率和质量。这种将深度学习融入视频压缩的方式不仅对传统方法提出了挑战,还为该领域的未来发展开辟了无限可能。

B. 当前状态

在过去的几十年中,传统视频压缩算法(如 H.264 和 H.265)实现了高效的压缩性能。然而,由于这些算法是手动设计的,它们缺乏端到端的联合优化能力。近年来,深度神经网络(DNN)带来了新的可能性,优化了传统视频压缩算法中的多个模块(如帧内预测、残差编码、模式决策、熵编码和后处理)。

尽管如此,大多数基于 DNN 的方法仍依赖于传统的基于块的运动估计,未能实现运动估计和压缩的联合优化。2019 年,Lu 等人提出了第一个端到端视频压缩模型(DVC),用网络替代了传统混合编解码器的所有模块。2020 年,Lin 等人将这一概念扩展到了多参考帧。同年,Yang 等人引入了一种基于循环神经网络(RNN)的残差编码器和解码器,用以有效利用累积的时间信息。

与传统的残差编码方法不同,Li 等人在 2021 年提出的 DCVC 模型通过上下文编码解决了残差编码的不足。2022 年,Mentzer 等人提出了一种简化的“手工设计”视频压缩网络,去除了显式的运动估计、变形和残差编码等常见组件,采用了基于 Transformer 的时间模型。同年,Li 等人提出了 DCVC-HEM,设计了一种强大的并行友好型熵模型,用于改进概率分布预测,并引入了一种多粒度量化机制,实现了在单一模型中平滑调整码率的能力。2023 年,Li 等人进一步提出了 DCVC-DC 模型,在 RGB 和 YUV420 色彩空间中超越了最佳传统编解码器 ECM。

相关工作:视频压缩技术与其神经网络应用

在这里插入图片描述

A. 传统视频压缩方法

传统视频压缩框架的目标是将输入帧生成一个码流,而解码器则从码流中重建视频帧。经典框架(如图 1(a) 所示)遵循“预测-变换”架构,具体步骤如下:

给定输入帧 x t x_t xt,首先将其划分为相等大小的块(如 8 × 8 8 \times 8 8×8)。通过运动估计步骤,计算当前帧 x t x_t xt 和上一重构帧 x ^ t − 1 \hat{x}_{t-1} x^t1 之间的运动,获得运动向量 v t v_t vt。在运动补偿阶段,使用运动向量生成预测帧 x ˉ t \bar{x}_t xˉt,并计算原始帧和预测帧之间的残差 r t r_t rt。之后,在变换和量化步骤中,残差 r t r_t rt 被压缩为更小的表示:
y ^ t = Quantize ( DCT ( r t ) ) \hat{y}_t = \text{Quantize}(\text{DCT}(r_t)) y^t=Quantize(DCT(rt))

在解码阶段,通过逆量化和逆变换重建残差 r ^ t \hat{r}_t r^t
r ^ t = IDCT ( InverseQuantize ( y ^ t ) ) \hat{r}_t = \text{IDCT}(\text{InverseQuantize}(\hat{y}_t)) r^t=IDCT(InverseQuantize(y^t))

最后,通过将预测帧 x ˉ t \bar{x}_t xˉt 和重构的残差 r ^ t \hat{r}_t r^t 相加,得到重构帧 x ^ t \hat{x}_t x^t
x ^ t = x ˉ t + r ^ t \hat{x}_t = \bar{x}_t + \hat{r}_t x^t=xˉt+r^t

B、神经网络在视频压缩中的应用

  1. 卷积神经网络(CNN) CNN 通过学习复杂的运动模式和捕获空间特征,改进了帧间预测,提升了视频压缩的效率。CNN
    能够提取帧的高级特征,从而减少对传统运动估计方法的依赖。
  2. 循环神经网络(RNN)和长短期记忆网络(LSTM) RNN 和 LSTM
    时间序列数据处理方面表现优异,能够理解帧间的相关性,从而更准确地预测潜在码的概率分布。这显著提高了视频内容的保真度和压缩效率。
  3. 生成对抗网络(GAN) GAN 的应用日益广泛。利用生成器和判别器之间的竞争机制,GAN
    能够生成高质量的视频内容,尤其在重建压缩失真的视频时表现出色,从而有效减少压缩引起的伪影。
  4. Transformer 模型 Transformer
    利用自注意力机制,能够建模视频帧间的长距离依赖关系,为视频压缩提供了全新的技术视角。

C、端到端视频压缩框架

端到端视频压缩框架通过深度学习优化整个压缩过程,其核心思想是利用神经网络替代传统方法中的所有模块。典型端到端框架的流程如下:

  • 运动估计与编码

利用卷积神经网络(CNN)估计光流,即运动信息 v t v_t vt。为进一步压缩光流值,设计了运动向量(MV)编码器和解码器,分别将运动向量编码为压缩表示 m t m_t mt,再解码为重构运动信息 v ^ t \hat{v}_t v^t
m t = MVEncoder ( v t ) , v ^ t = MVDecoder ( Quantize ( m t ) ) m_t = \text{MVEncoder}(v_t), \quad \hat{v}_t = \text{MVDecoder}(\text{Quantize}(m_t)) mt=MVEncoder(vt),v^t=MVDecoder(Quantize(mt))

  1. 运动补偿
    结合上一帧的重构帧 x ^ t − 1 \hat{x}_{t-1} x^t1 和重构运动信息 v ^ t \hat{v}_t v^t,通过运动补偿生成当前帧的预测帧 x ˉ t \bar{x}_t xˉt
    x ˉ t = MC ( x ^ t − 1 , v ^ t ) \bar{x}_t = \text{MC}(\hat{x}_{t-1}, \hat{v}_t) xˉt=MC(x^t1,v^t)
  2. 残差编码与解码
    通过残差编码器,计算当前帧 x t x_t xt 和预测帧 x ˉ t \bar{x}_t xˉt 之间的残差 r t r_t rt,并将其映射到潜在表示 y t y_t yt,随后量化为 y ^ t \hat{y}_t y^t r t = x t − x ˉ t , y t = Encoder ( r t ) , y ^ t = Quantize ( y t ) r_t = x_t - \bar{x}_t, \quad y_t = \text{Encoder}(r_t), \quad \hat{y}_t = \text{Quantize}(y_t) rt=xtxˉt,yt=Encoder(rt),y^t=Quantize(yt)
    在解码阶段,通过解码器将 y ^ t \hat{y}_t y^t 映射回残差 r ^ t \hat{r}_t r^t r ^ t = Decoder ( y ^ t ) \hat{r}_t = \text{Decoder}(\hat{y}_t) r^t=Decoder(y^t)
  3. 重构帧生成

通过将预测帧 x ˉ t \bar{x}_t xˉt 和解码后的残差 r ^ t \hat{r}_t r^t 相加,生成当前帧的重构帧:
x ^ t = x ˉ t + r ^ t \hat{x}_t = \bar{x}_t + \hat{r}_t x^t=xˉt+r^t

端到端视频压缩的关键技术

在这里插入图片描述

A、潜在编码生成与图像重建

在图像和视频压缩的研究中,将数据映射到编码空间是一个关键步骤,其目的是通过减少信息冗余来实现高效的存储和传输。在图像压缩中,这一过程涉及提取图像的核心特征,并将其转换为低维表示,从而显著减少数据量,同时保留图像的主要视觉内容以满足存储需求和数据传输效率。

在视频压缩中,由于涉及时间序列信息,方法通常是对连续帧之间的残差信息进行压缩,而不是直接压缩当前帧。例如,在 Lin 等人的研究中,通过手动的减法操作减少当前帧和通过运动补偿网络得到的预测帧之间的信息冗余,使用运动向量 v ^ t \hat{v}t v^t 和上一重构帧 x ^ t − 1 \hat{x}{t-1} x^t1,具体为:

r t = x t − x ˉ t r_t = x_t - \bar{x}_t rt=xtxˉt

相比之下,Hu 等人的研究在特征级别执行残差操作,以减少像素级操作产生的伪影,同时更高效地压缩视频数据。然而,对于给定的预测帧 x ˉ t \bar{x}_t xˉt,传统的残差编码方法并非最优,因为它仅使用手动的减法操作来消除帧间冗余。从信息论的角度来看:
H ( x t − x ˉ t ) ≥ H ( x t ∣ x ˉ t ) H(x_t - \bar{x}_t) \geq H(x_t|\bar{x}_t) H(xtxˉt)H(xtxˉt)

其中, H H H 表示 Shannon 熵。

因此,在 Li 和 Xiang 等人的工作中,传统的显式残差被转化为隐式残差操作,利用更高维的上下文信息提供更丰富的信息,从而实现更高的压缩率并提高重构帧的质量。

在端到端视频压缩框架的图像恢复阶段,这一过程通常对应于潜在编码生成的逆过程。例如,在 DVC 框架中,解码得到的潜在编码信息与预测帧 x ˉ t \bar{x}_t xˉt 相加,然后通过解码网络生成当前帧的重构帧:
x ^ t = x ˉ t + r ^ t \hat{x}_t = \bar{x}_t + \hat{r}_t x^t=xˉt+r^t

B. 熵编码

在这里插入图片描述

熵编码是一种高效的数据压缩技术,其通过为数据元素分配可变长度的编码来最小化存储空间或传输带宽的需求。在视频压缩中,准确估计概率分布是实现高效编码的关键。

对于数据序列 y t t = 1 T {y_t}_{t=1}^T ytt=1T,算术编码被用来进行传输,其期望比特率由真实概率质量函数(PMF) p ( y t ) p(y_t) p(yt) 和估计 PMF q ( y t ) q(y_t) q(yt) 之间的交叉熵 H ( p , q ) H(p, q) H(p,q) 决定,表示为:
H ( p , q ) = E y t ∼ p [ − log ⁡ 2 q ( y t ∣ c ) ] H(p, q) = \mathbb{E}_{y_t \sim p}[-\log_2 q(y_t|c)] H(p,q)=Eytp[log2q(ytc)]

其中, c c c 表示 y t y_t yt 的条件信息,包含了超先验信息、时间上下文以及空间自回归上下文。
Ballé 等人首次提出了超先验模型(建模潜在特征的概率分布),用于估计高斯尺度混合模型(GSM)中潜在特征的参数。Hu 等人进一步优化了多尺度表示中的熵模型,通过层级超先验来提升模型性能。此外,自回归网络(根据解码的信息进一步预测当前解码特征从而更加精准预测概率被应用于学习空间信息,这些方法已成为深度图像压缩中的常见先验形式。

然而,在视频数据压缩中,潜在编码还包含时间相关性。通过整合空间上下文和时间上下文信息,可以显著提高压缩效率。例如:

DCVC:使用先前帧的重构信息和运动流信息作为时间上下文。
VCTA:利用最近两帧的量化潜在编码信息。
MIMT:使用卷积 LSTM(ConvLSTM)处理除当前帧以外的所有前序帧潜在编码。
如图 3 所示,熵编码的框架在演进过程中经历了显著的优化。例如,传统的自回归模型有效地提升了率失真(Rate-Distortion, RD)性能,其通过已解码的数据来预测当前解码元素的概率。然而,自回归模型的严格顺序解码限制了并行处理能力。因此,DCVC-HEM 引入了一种并行高效的双棋盘模型,大大提升了操作速度。此外,VCTA 采用基于 Transformer 的熵模型,通过将潜在空间划分为非重叠的 n × n n \times n n×n 块,在每个块上执行自回归,以平衡预测精度和并行处理能力。

在 2023 年,Li 等人进一步在 DCVC-DC 框架中实现了基于四叉树划分的熵编码方法,从而更加精确地估计概率分布。Xiang 等人在探索空间上下文信息方面也取得了重大进展,提出了一种新方法,该方法利用已解码区域的信息来辅助预测未解码区域,同时优先处理置信度较高的区域。

最终,通过将这些上下文信息整合为初始概率分布,并结合部分解码信息,来优化剩余潜在编码的概率分布,从而实现更高效的视频数据压缩。

实验:性能实验与评估

A、评价指标

视频压缩的目标是以最低的比特率实现最佳的重构质量。在训练阶段,损失函数通常包括两项指标:
λ D + R = λ d ( x t , x ^ t ) + ( H ( m ^ t ) + H ( y ^ t ) ) \lambda D + R = \lambda d(x_t, \hat{x}_t) + (H(\hat{m}_t) + H(\hat{y}_t)) λD+R=λd(xt,x^t)+(H(m^t)+H(y^t))

其中:

d ( x t , x ^ t ) d(x_t, \hat{x}_t) d(xt,x^t) 表示失真,衡量当前帧 x t x_t xt 与其重构帧 x ^ t \hat{x}_t x^t 之间的差异。
H ( . ) H(.) H(.) 表示编码所需的比特数。
λ \lambda λ 是拉格朗日乘子,用于平衡视频压缩中的比特数和失真。
常用的失真测量指标包括:

峰值信噪比(PSNR):衡量重构帧与原始帧的像素级差异。
结构相似性(SSIM):结合人类视觉特性,衡量视频帧的感知质量。
此外,为了优化不同目标,还可以使用多种损失函数。例如,Ren 等人采用了循环条件生成对抗网络(cGAN),通过训练生成更真实的空间效果和更流畅的时间连续性,以确保帧间过渡的平滑。具体而言,该方法除了包含上述损失项外,还引入了一项新的函数,用于区分真实视频和重构视频,以提升重构视频的感知真实性和时间一致性

B. 实验结果

在这里插入图片描述

本节介绍了端到端视频压缩技术在标准化测试集上的最新性能,并对 VTM-17.0 进行了基准测试。利用 BD-Rate、PSNR 和 SSIM 等指标,我们比较了各种先进的压缩方法。在本测试方案中,我们遵循参考文献中概述的方法,严格评估每个视频的 96 帧,将帧内周期设置为 32。BD-Rate 被用作衡量压缩比的主要指标,负值表示比特率节省,正值表示比特率增加。

我们对不同视频内容的效率和视觉质量保持的深入探索,揭示了端到端视频压缩在复杂性和动态场景处理方面的最新进展。从表 1 和表 2 可以看出,基于端到端方式的视频编码和解码正在迅速发展。具体来说,DCVC-DC 不仅在端到端视频编码和解码领域遥遥领先,而且在 PSNR 和 SSIM 指标方面也超过了最好的传统编解码器 ECM。这是 NVC(神经网络视频压缩)发展的一个重要里程碑。

结论:

本文深入探讨了传统混合编码的基本原理和局限性,并对基于神经网络的端到端视频编解码技术进行了全面的研究。具体来说,它详尽地讨论了端到端技术的关键方面,如潜在代码生成和熵模型中的各种先验,总结了该领域的最新研究。展望未来,本文建议充分挖掘端到端技术和传统方法的潜力,增强单个模块的性能,从而提高整体编码性能。考虑到端到端视频压缩的高复杂性给高能效移动平台带来的挑战,本文主张在降低复杂度的同时平衡模型效率。

总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942482.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

系统架构师考试 常错题记录 01

1.按照《中华人民共和国著作权法》的权利保护期( )受到永久保护。 A.发表权 B.修改权 C.复制权 D.发行权 正确答案:B 解析:本题考查知识产权法中的《中华人民共和著作权法》保护期限知识点。 《中华人民共和著作权法》中约定署名权…

Redis-十大数据类型

Reids数据类型指的是value的类型,key都是字符串 redis-server:启动redis服务 redis-cli:进入redis交互式终端 常用的key的操作 redis的命令和参数不区分大小写 ,key和value区分 1、查看当前库所有的key keys * 2、判断某个key是否存在 exists key 3、查…

IIC驱动EEPROM

代码参考正点原子 i2c_dri:主要是三段式状态机的编写 module iic_dri#(parameter SLAVE_ADDR 7b1010000 , //EEPROM从机地址parameter CLK_FREQ 26d50_000_000, //模块输入的时钟频率parameter I2C_FREQ 18d250_000 //IIC_SCL的时钟频率)( …

webrtc获取IceCandidate流程

在WebRTC(Web Real-Time Communication)中,ICECandidate是一个关键概念,它用于描述在建立点对点(P2P)连接时可以考虑的潜在通信端点。以下是关于WebRTC中ICECandidate的详细解释: 一、ICECandidate的定义 ICECandidate对象通常包含以下关键属性: foundation:用于唯一…

一文彻底拿捏DevEco Studio的使用小技巧

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 0.安装DevEco Studio DevEco Studio面向HarmonyOS应用及元服务开发者提供的集成开…

基于openEuler22.09部署OpenStack Yoga云平台(一)

OpenStack Yoga部署 安装OpenStack 一、基础准备 基于OpenStack经典的三节点环境进行部署,三个节点分别是控制节点(controller)、计算节点(compute)、存储节点(storage),其中存储…

新服务器ubuntu系统相关操作

1、查看驱动:驱动版本535.216.01能够支持cuda12.2,下面直接使用默认安装的cuda。 2、赋予用户管理员权限。 首先有超级用户(root)权限来编辑 /etc/sudoers 文件,visudo 是一个命令,用于安全地编辑 /etc/sudoers 文件。运行: sudo visudo 在 visudo 编辑器中,找到类似…

微机接口课设——基于Proteus和8086的打地鼠设计(8255、8253、8259)

原理图设计 汇编代码 ; I/O 端口地址定义 IOY0 EQU 0600H IOY1 EQU 0640H IOY2 EQU 0680HMY8255_A EQU IOY000H*2 ; 8255 A 口端口地址 MY8255_B EQU IOY001H*2 ; 8255 B 口端口地址 MY8255_C EQU IOY002H*2 ; 8255 C 口端口地址 MY8255_MODE EQU IOY003H*2 ; …

【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】

目录😋 任务描述 相关知识 1. 二叉树的基本概念与结构定义 2. 建立二叉树 3. 先序遍历 4. 中序遍历 5. 后序遍历 6. 层次遍历 测试说明 通关代码 测试结果 任务描述 本关任务:实现二叉树的遍历 相关知识 为了完成本关任务,你需要掌…

简单园区网拓扑实验

1.实验拓扑 2.实验要求 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、AR1为企业出口路由器 6、要求全网可…

USB接口实现CDC(usb转串口功能)

主控:stm32f429 PHY芯片:usb3320 Cubemx System Core-RCC connectivity-USB_OTG_HS Middleware and Software Packs-USB_DEVICE 时钟配置:根据自己使用的MCU工作频率设置 Generate Code Keil5 打开工程 usbd_cdc_if.c这个文件&…

C++---------动态内存管理

以下是对 C 中相关概念的详细说明及代码示例&#xff1a; 一、动态分配和堆 new 操作符&#xff1a; new 操作符用于在堆上动态分配内存。它会调用对象的构造函数&#xff08;如果是类对象&#xff09;并返回指向分配内存的指针。示例&#xff1a; #include <iostream&g…

企业该如何进行合格文件外发管理

随着信息技术的迅猛发展&#xff0c;企业间的文件交换变得越来越频繁。但是&#xff0c;如何确保文件传输的安全性与效率&#xff0c;成为企业管理者面临的一个重大挑战。镭速&#xff08;Raysync&#xff09;文件外发管理方案以其独特的优势&#xff0c;成为众多企业的首选。本…

Modbus数据网关在制造企业的应用与效果

Modbus是一种广泛应用于工业通信的协议&#xff0c;支持多种设备间的数据交换&#xff0c;如传感器、仪器仪表、PLC、工业机器人、数控机床等。Modbus数据网关则是一种网络通信转换设备&#xff0c;它能够将Modbus协议的数据转换为其他主流协议&#xff08;如MQTT、OPC UA、HTT…

解决集群Elasticsearch 未授权访问漏洞

1、ES集群配置 首先至少是三个节点 2、生成证书&#xff08;后面要用&#xff09; cd /home/elasticsearch-7.4.2/bin ./elasticsearch-certutil cert 回车&#xff0c;空密码&#xff08;可以输入密码&#xff09;&#xff0c;回车 3、将elastic-certificates.p12 复制到三…

mac启ssh服务用于快速文件传输

x.1 在mac上启SSH服务 方法一&#xff1a;图形交互界面启ssh&#xff08;推荐&#xff09; 通过sharing - advanced - remote login来启动ssh&#xff1b;&#xff08;中文版mac应该是 “系统设置 → 通用 → 共享”里打开“远程登录”来启动&#xff09; 查看自己的用户名和…

Jenkins 任意文件读取(CVE-2024-23897)修复及复现

Jenkins任意文件读取漏洞CVE-2024-23897修复及复现 漏洞详情影响范围漏洞复现修复建议 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行…

C语言数组查找

数组概念 就是一堆数的一个集合&#xff0c;包含于指针&#xff0c;但是与指针不同的是数组是开辟了空间的 char a[20] //开辟了20个空间 char *p //一个指针&#xff0c;并没有开辟空间 数组名作为指针&#xff1a; 在C语言中&#xff0c;数组名通常可以被看作是一…

HarmonyOS NEXT 实战之元服务:静态案例效果---最近播放音乐

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; Index import { authentica…

CVPR2024 | DiffAM:基于扩散模型的对抗性化妆迁移用于面部隐私保护

DiffAM: Diffusion-based Adversarial Makeup Transfer for Facial Privacy Protection 摘要-Abstract引言-Introduction相关工作-Related Works人脸识别中的对抗攻击化妆迁移扩散模型和风格迁移 方法-Method问题表述DiffAM文本引导的化妆去除图像引导的对抗性化妆转移 实验-Ex…