端到端视频编码:DVC
本文来自CVPR 2019论文《DVC: An End-to-end Deep Video Compression Framework》
官方开源代码地址:https://github.com/GuoLusjtu/DVC
DVC是一个端到端的视频编码模型,之前也有过一些基于DNN的视频编码方法,但是通常是使用DNN模型替换视频编码的某个模块,整体的训练流程不是端到端的。
DVC将传统的基于块的编码框架的所有模块都使用神经网络替换,图1(a)是传统的视频编码框架,图1(b)是DVC框架。
图1
符号定义
表示视频序列, 是第t帧, 是对应的预测帧, 是重建/解码帧。 表示残差, 是残差的重建/解码值。 是运动向量, 是对应的重建值。由于编码过程中还会进行变换量化, 变换的结果为 , 变换结果是 。
DVC架构
运动估计和压缩
使用CNN进行光流估计,得到的结果作为运动信息 。其中运动信息还会经过MV编解码网络进行压缩。如图1(b)中Optical Flow Net、MV Encoder Net、MV Decoder Net。
运动补偿
运动补偿网络motion compensation network主要根据前面获得的光流计算预测帧 。
变换、量化和反变换
和传统的DCT、DST变换不同,这里使用残差编解码网络进行非线性变换。残差 非线性变换的为 , 量化为 。 通过残差解码网络可以得到重建的残差值 。
熵编码
量化的运动信息 和残差 要编码为比特流,为了估计比特数,使用Bit rate estimation net获取 和 的分布。
帧重建
帧重建过程和传统编码框架一样。
MV编解码网络
图2 MV编解码网络
图2是MV的编解码网络,Conv(3,128,2)表示卷积操作,卷积核为3x3,输出128通道,步长2。GDN/IGDN是非线性变换函数。
如果输入光流 的尺寸是MxNx2,MV编码网络的输出 的尺寸则为M/16 x N/16 x 128, 量化为 。MV解码网络将 解码为 。此外, 还要用于熵编码过程。
运动补偿网络
给定前一帧的重建帧 和 ,运动补偿网络可以生成当前帧的重建帧 ,如图3。
图3 运动补偿网络
这里的运动补偿是像素级的,所以可以提供更精准的时域信息,避免了传统的基于块的运动补偿的块效应等,所以不需要环路滤波。网络详细情况请参考论文。
残差编解码网络
残差信息通过图1中的残差编解码网络进行编码,这个网络是高度非线性的,和传统的DCT等相比可以更充分的挖掘非线性变换的能力。
训练策略
损失函数
训练的目标是减小失真的同时降低码率。其他d(.)计算失真的函数,用MSE计算失真,H(.)表示估计码率。如图1所示,重建帧、原始帧和估计的码率都会输入损失函数。
量化
残差和运动向量都需要量化后才能进行熵编码,但是量化本身是不可微的,所以论文在训练阶段通过加一个均匀噪声来代替量化。
其中alpha是均匀噪声。
在推理阶段直接使用取整操作,
码率估计
为了平衡码率和失真,需要在编码过程中估计残差和运动向量的码率,估计码率需要求得数据的熵,即要获取数据的分布,论文通过一个CNN实现。
缓存历史帧
由于在运动估计和运动补偿中需要用到参考帧,参考帧是网络输出的前一帧的重建帧,即第t帧需要第t-1帧的重建帧,第t-1帧需要第t-2帧的重建帧,以此类推需要在GPU中保存所有帧,当t非常大时这是不可能的。论文提出在线更新策略,每个迭代更新一帧。
实验设置
数据集:
论文使用Vimeo-90K数据集进行训练,它包含89800个视频序列。使用UVG数据集和HEVC标准序列进行验证。
评价指标:
使用PSNR和MS-SSIM评价失真,使用bpp衡量码率。
实现细节:
使用4个lambda(256、512、1024、2048)分别训练了4个模型,每个模型使用Adam优化器训练,初始学习率设为0.0001,beta1设为0.9,β2设为0.999。当loss稳定后学习率除以10,mini-batch设为4。训练图像分辨率是256x256。使用tensorflow框架训练,在两张Titan X GPU上耗时7天完成训练。
实验结果
图4 部分实验结果
图4是部分实验结果,可以看见在大部分数据集上论文方法比H264在PSNR和MS-SSIM上都更优。和H265相比,中MS-SSIM指标上性能相近。论文使用MSE计算失真,如果MS-SSIM则质量会进一步提高。
总结
论文使用DNN模型将传统视频编码框架的每个部分都进行了替换实现了端到端的编码,从而可以整体进行训练。关于各个模型的具体信息可以参考论文和开源实现https://github.com/GuoLusjtu/DVC
感兴趣的请关注微信公众号Video Coding
端到端视频编码:DVC相关推荐
- 端到端神经视频编码=A Better Trade-off ?
归根结底,每一种视频压缩方法都要权衡利弊(trade-off):如果允许更大的文件大小,就可以拥有更好的图像质量:但如果想让文件非常小,那就必须要容忍错误出现的概率.但现在(以及不久的将来),人们希望 ...
- 转:分布式视频编码关键技术及其发展趋势
1引言 当今的视频压缩编码标准,如ISO与ITU-T分别领导制定的视频压缩国际标准MPEG-x系列与H.26x系列,已被广泛应用于图像视频的各个领域,取得了较大的成功.因编码器承担了运动估计.变换.量 ...
- 中南大学张昊:我非常期待基于AI的图像视频编码技术的创新
点击上方"LiveVideoStack"关注我们 策划:包研.Alex 编辑:Alex 张昊 年终访谈 #002# 编者按:本周是2021年的最后一周,在这个迎接新年的日子里,Li ...
- 移动端实时音视频详解(三):编码和封装
移动端实时音视频详解(三):编码和封装 视频编码是本系列一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大 ...
- 浅析即时通讯开发之移动端实时音视频直播技术编码和封装
视频编码是本系列一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本.同样,对 ...
- MPAI正式启动端到端的AI编码标准
点击上方"LiveVideoStack"关注我们 整理 | Alex 近期,MPAI创始人.MPEG前主席Leonardo Chiariglione在他的博客上宣布MPAI正式启动 ...
- QoE驱动的端到端视频直播技术演进
从ROI视频编码.网络自适应,到海量多媒体存储,以及高可用CDN网络架构,这些关键技术决定了视频服务的用户体验.京东云蛰伏多年,在5G和AI时代蓄势待发,剑指视频云价值链上的新领导者. 8月23日·北 ...
- ICCV2021- 牛津大学新的预训练视频文本数据集WebVid-2M,设计用于端到端检索的联合视频和图像编码器!代码已开源!...
关注公众号,发现CV技术之美 ▊ 写在前面 视频文本检索的挑战包括视觉网络结构的设计 和训练数据的性质 ,因为可用的大规模视频文本训练数据集 (例如HowTo100M) 是noisy的,因此只能通过大 ...
- 移动端实时音视频直播技术详解(一):开篇
移动端实时音视频直播技术详解(一):开篇 1.引言 随着互联网用户消费内容和交互方式的升级,支撑这些内容和交互方式的基础设施也正在悄悄发生变革.手机设备拍摄视频能力和网络的升级催生了大家对视频直播领域 ...
最新文章
- Segment Routing — SRv6 — Overview
- debian NO_PUBKEY 8B48AD6246925553 解决方法
- Winform中实现连接Mysql8使用mysqldump实现备份表的数据
- VTK:地形抽取用法实战
- python做一个考试系统_Python在线考试系统防作弊功能的思路和实现
- Mac下安装Flink的local模式(flink-1.2.0)
- 2019.7.27数组api
- 美国政府召开网络安全峰会,与私营行业巨头合力提振软件供应链和开源等安全...
- Halcon 学习总结——仿射变换
- Web2.0:天使投资与VC的竞技场
- 【Matlab免费安装】
- ssm教师教学评价系统(ssm教学评价系统教师ssm学生评教系统)JSP网上评教系统jsp评教系统
- mysql 存储用户头像_微信授权后用户头像保存到服务器实现方法
- YGG 在 Branch.gg 的免费游戏 Castaways 中购买了 Genesis NFT
- 机器学习中文资源合集
- Java解析pmml格式机器学习模型
- PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据
- 使用树莓派打造Apple Mac TimeCapsule
- Docker 思维导图
- HDMI-CEC 在LG电视上的研究