深度学习
文章平均质量分 76
Dillon2015
从事视频编码的相关研究。
邮箱:13141211944@163.com
展开
-
基于深度学习的环路滤波的消融实验
移除前的BD-Rate为-7.57%(表1第3行),这表明同时去掉划分信息和BS信息对帧内亮度模型有影响,可以判断划分信息和BS信息在模型中可能起到相似的作用,模型中至少保留两者之一。去掉前7个残差单元中的attention计算,不带attention的残差单元结构如下图,第8个残差单元保持不变,经过378轮次的训练BD-Rate为-7.56%,表1第10行,对帧内亮度模型的效果几乎没有影响。移除前的BD-Rate也为-7.57%(表1第3行),这表明去掉划分信息对帧内亮度模型的效果没有影响。原创 2022-09-13 22:13:44 · 14755 阅读 · 0 评论 -
基于深度学习的环路滤波和残差缩放
本文来自提案JVET-X0066和JVET-Y0143,在JVET-W次会议中提出了基于深度学习的环路滤波的提案,包括自适应参数选择和注意力机制的深度模型(EE1-1.2),以及残差缩放的深度模型(EE1-1.4)。每个slice或块都可以选择是否进行基于CNN的滤波,如果slice/block决定要使用基于CNN的滤波,则需要从候选列表{q,q-5,q-10}中选择条件参数,其中q是序列的QP。滤波粒度决策和参数选择由分辨率和QP决定,对于更大的分辨率和QP决策和选择在更大的区域上进行。...原创 2022-08-30 22:20:04 · 13560 阅读 · 0 评论 -
端到端图像编码和VVC的结合
提案提出了一种混合编码方法,对视频I帧使用端到端的图像编码器编码,P和B帧使用VVC编码,如Fig.1,其中P和B帧内的intra块还是使用VVC编码。基于神经网络的端到端图像编码器的效率已经超越传统的图像编码器,例如JPEG-AI的编码效率比VVC编码I帧高20-30%,但是视频比图像更复杂因此该提案只对I帧使用神经网络处理,P和B帧还是使用VVC。VTM14RA配置的结果如表1,其中QP={32,37,42,47},选择这些QP是为了使VVC的I帧码率和JPEGAI对齐。绿色框内是熵编码网络。.....原创 2022-08-03 00:09:22 · 14082 阅读 · 0 评论 -
基于神经网络的帧内预测和变换核选择
在VTM-8.0上,allintra配置下YUV的BD-Rate分别为-3.36%,-2.95%,-2.97%,编解码时间分别是395%和3575%,randomaccess配置下YUV的BD-Rate分别为-1.52%,-1.00%,-1.26%,编解码时间分别是159%和723%。如果min(h,w)>8,上一步的结果被分为两个矩形部分,Y上方的参考像素X0和左侧的X1,这是因为网络对于min(h,w)>8的块采用卷积处理。对于16x16的块使用卷积网络,且该网络由3个子网络构成,如Fig.3,....原创 2022-07-26 22:57:16 · 14173 阅读 · 0 评论 -
基于神经网络的时域处理
本文来自提案JVET-V0090 《Neural network based temporal processing》,提出使用神经网络进行时域处理以增强输出图像的细节和预测图像的质量。简介在上篇文章中介绍了通过生成虚拟参考帧来提升运动预测质量的方法,但是参考帧的增加会提高计算复杂度。文中提出的时域处理模型不需要增加参考帧,通过对重建图像的处理既能提升输出图像的细节又能提高预测精度。它包含两个模型,第一个模型在输出前对解码图像进行处理,第二个模型对参考图像进行处理。整体架构Fig.1是整个架构,灰色格子里是原创 2022-07-12 22:42:32 · 14341 阅读 · 0 评论 -
基于深度学习的参考帧生成
本文来自提案JVET-T0058和JVET-U0087,该方法通过插帧的方法生成虚拟参考帧用于帧间预测。整个模型由几个子模型组成,分别进行光流估计、补偿和细节增强。整体架构整体架构如Fig.1所示,在视频编码过程中DPB中存着用于运动估计的参考帧,根据GOP结构当前帧有一个或多个前向、后向参考帧。提案中默认使用POC距离当前帧最近的两个参考帧生成虚拟参考帧,如Fig.1中当前帧POC是5,则使用POC为4和6的帧生成参考帧。生成的虚拟参考帧会被放入DPB用于参考,虚拟参考帧的POC设置为和当前帧相同。为了防原创 2022-07-06 00:10:53 · 14708 阅读 · 0 评论 -
基于Unet的环路滤波
本文来自大华在JVET工作组的提案JVET-Y0086《A Unet-Based Deep In-Loop Filter》简介由于DNN在图像去噪和细节还原上效果显著,如果用于视频编码的环路滤波环节则能更好的重建图像提高编码效率。提案提出了基于HDRUnet的环路滤波技术,其中HDRUnet是一种基于Unet的网络。网络结构 图1 网络结构图1是网络结构,对于亮度分量网络输入尺寸是160x160,在CTU尺寸128x128基础上每个方向往外填充16个像素,同时对应的色度块上采样到160x160作为输入。处理原创 2022-06-28 23:00:08 · 14932 阅读 · 5 评论 -
视频压缩数据集TVD
基于学习的视频压缩和视频分析任务在学术界和工业界蓬勃发展,对于相关研究工作和标准制定工作急需高质量的训练和测试数据,例如对于JPEG AI、JVET NNVC、MPEG VCM等。因此,腾讯多媒体实验室构建了TVD(Tencent Video Dataset)数据集。TVD可以用于多种任务,例如基于神经网络的视频编码、目标检测、目标追踪等。TVD包含86个视频序列,涵盖了不同内容。每个序列分辨率为3840x2160,有65帧。这些视频序列已经用于JVET NNVC相关提案的训练。对于目标检测任务,TVD提供原创 2022-06-10 21:49:05 · 16173 阅读 · 0 评论 -
ICIP2021:基于CNN的环路滤波
本文来自ICIP2021论文《CNN Based In-loop Filter For VVC Intra Coding》VVC提供了三种环路滤波器:SAO、Deblocking、ALF来减少压缩失真,但是手工设计的滤波器难以处理复杂的压缩失真。论文提出基于CNN的环路滤波技术来提升VVC中I帧的质量。网络输入包括从重建像素中提取的特征以及划分、预测信息,对于色度分量的输入还包括亮度像素。Input整个网络结构如Fig.1所示,其中输入部分在图的左侧。输入包括重建信息、划分信息以及预原创 2022-05-24 20:25:16 · 16570 阅读 · 0 评论 -
深度上下文编码:DCVC
本文来自NeurIPS 2021论文《Deep Contextual Video Compression》传统的视频编码方法和最近的基于深度学习的视频编码框架都是采用预测编码的方式,生成预测帧然后和当前帧相减得到残差帧再对残差进行编码。给定预测帧求残差帧是很好的去除时域冗余的方法,但是却不是最优的,因为求残差的操作是一种简单的手工设计的相减的操作,并不能完全去除整个帧的冗余。残差帧的熵大于给定预测帧时当前帧的条件熵,其中H(.)是香农熵,是当前帧,是预测帧。论文提出基于上下文条件的编...原创 2022-04-12 23:24:10 · 20790 阅读 · 0 评论 -
端到端视频编码:DVC
本文来自CVPR 2019论文《DVC: An End-to-end Deep Video Compression Framework》官方开源代码地址:https://github.com/GuoLusjtu/DVCDVC是一个端到端的视频编码模型,之前也有过一些基于DNN的视频编码方法,但是通常是使用DNN模型替换视频编码的某个模块,整体的训练流程不是端到端的。DVC将传统的基于块的编码框架的所有模块都使用神经网络替换,图1(a)是传统的视频编码框架,图1(b)是DVC框架。图1原创 2022-03-29 21:06:22 · 21722 阅读 · 0 评论 -
JVET-X基于神经网络视频编码实验总结
本文来自JVET-X0023《EE1: Summary of Exploration Experiments onNeural Network-based Video Coding》本提案是JVET-X EE1的实验总结,EE1是基于神经网络的视频编码的实验。包含了在W次会议到X次会议间完成了11个NNVC的技术实验,及它们的性能和复杂度分析。基于NN的环路滤波的几种变种技术在RA配置下码率节省2~10%,复杂度30~800kMAC/pxl(每个像素的平均累加乘法操作数)。几种基于NN的超分辨技术对4K原创 2021-11-30 23:44:51 · 24838 阅读 · 0 评论 -
MPEG VCM
传统是视频编码是针对人眼视觉进行优化的,目的是在保持人的主观失真不增加的情况下降低码率。而现在越来越多的视频需要进行机器分析,而人只需要看机器分析的结果。因此MPEG成立VCM(Video Coding for Machines)工作组探索新的标准,在不降低机器处理性能的情况下降低码率。这里的机器处理任务包含多种计算机视觉任务,包括目标检测、目标跟踪、实例分割、姿态估计等。(公众号后台回复“VCM”获取相关资料)简介MPEG于2019年7月成立VCM工作组,专门研究针对机器处理的视频编码。VCM工作原创 2021-11-23 23:37:06 · 25762 阅读 · 3 评论 -
基于神经网络视频编码的通用测试规范
JVET第20次会议为基于神经网络的编码成立了EE1,这个EE专门用于探索深度学习在视频编码方面的潜能。为了规范和统一测试条件,JVET专门制定了相应的通用测试条件(Common Test Conditions ,CTC),最新版CTC为JVET-X2016(公众号后台回复“JVET-X2016”获取)。CTC规定了配置、测试序列、训练序列、参考软件、训练方法、评价指标等。所有基于神经网络的提案都需要按照CTC进行测试才能提交。配置CTC提供了四种配置,包括ntra-only,random-a原创 2021-11-09 23:28:06 · 26811 阅读 · 0 评论 -
VCIP2020:不同尺寸块基于神经网络的帧内预测
本文来自VCIP2020论文《Fully Neural Network Mode Based Intra Prediction of Variable Block Size》论文提出使用神经网络模型( neural network modes,NM)完全取代传统的帧内预测方法,不再需要通过邻域像素插值得到预测值,而是直接将相邻块作为网络输入得到预测块。(1)针对不同尺寸块使用不同模型,对于较小的块如4x4和8x8块使用全连接神经网络FNN,对于较大的块如16x16和32x32块使用CNN。(2...原创 2021-06-01 23:08:21 · 35830 阅读 · 3 评论 -
VCIP2020:基于深度学习的HEVC帧内预测的非线性变换
本文来自VCIP2020文章《Deep Learning-Based Nonlinear Transform for HEVC Intra Coding》文章针对帧内编码块提出了基于深度学习的非线性变换方法,可以达到1.79%的BD-rate增益。在帧内编码过程中,信号间的线性依赖可以通过线性预测和线性变换来消除。但是由于预测往往不够完美,导致一些依赖信息不能完全消除,结果在帧内预测后的残差中依然存在方向信息,传统的线性变换很难去除这些方向信息。进一步,线性变换更难去除信号中的非线性依赖。...原创 2021-04-21 00:19:19 · 38533 阅读 · 2 评论 -
VCIP2020:基于深度学习合成参考帧
本文来自VCIP 2020论文《Deep Inter Coding with Interpolated Reference Frame for Hierarchical Coding Structure》在混合编码框架中,帧间预测用于去除时域冗余。帧间预测的效果取决于参考帧的内容,当参考帧和待编码帧的内容越相似时编码效率越高,因此本文提出利用DNN合成参考帧然后插入参考帧列表用于后续的预测。本文算法在HM16.20上RA配置下,相当于HEVC有4.6%的BD-rate增益。本文算法流程图如...原创 2021-04-07 22:09:27 · 40342 阅读 · 0 评论 -
AV1基于机器学习的快速变换模式选择
AV1基于机器学习的快速变换模式选择1)变换块分区:AV1无需像VP9中那样强制固定变换单元大小,而是允许亮度间编码块划分为多种大小的变换单元,这些递归分区最多可递减2级。为了合并AV的扩展编码块分区,我们支持从4×4到64×64的正方形,2:1/1:2和4:1/1:4比例也都可以。此外,色度转换单元总是要尽可能地大。所以支持的变化尺寸如下:static const TX_SIZE txsize_sqr_map[TX_SIZES_ALL] = { TX_4X4, // TX_4X4原创 2020-07-24 09:18:09 · 49969 阅读 · 0 评论 -
基于学习的编码(七):基于CNN的intra frame的lambda域码率控制
基于学习的编码(七):基于CNN的intra frame的lambda域码率控制本文介绍的算法来自JVET-M0215提案。基于SATD的intra frame码率控制构建了lambda和码率的模型如下:C表示内容复杂度,可由元素像素的SATD估计得到。对于第1个I帧alpha和beta设为常数,后面的I帧逐步更新。提案中提出了一个CNN模型可以直接预测每个CTU的alpha和beta。网络结构该CNN的网络结构如下图:CTU编码前提取出其亮度和色度分量输入进两个..原创 2020-07-09 09:53:14 · 50573 阅读 · 0 评论 -
基于学习的编码(六):DRNLF
基于学习的编码(六):DRNLF本文算法来自JVET-L0242,dense residual convolutional network based in-loop filter (DRNLF)用于VTM的环路滤波中,用在DBF之后,SAO和ALF之前,如下图所示。由RDO决定是否使用DRNLF。网络结构DRNLF的结构如下图:N代表DRU(dense residual unit)数量,M代表卷积核数量。本文算法是JVET-K0391的改进,K0391中DRU的..原创 2020-07-06 09:17:41 · 50441 阅读 · 0 评论 -
基于学习的编码(五):MCNN
基于学习的编码(五):MCNN本文介绍的算法来自JVET-P0489,是对基于学习的编码(三):ACNNLF的改进。ACNNLF是在线(online)训练,而MCNN是离线(offline)训练。网络结构MCNN(Multiple CNN)是离线(offline)训练,可以使用更深的网络结构。上图是亮度分量的网络结构,可以看出该网络很深,有9个卷积层。 Inception layer都是3x3和5x5的32通道卷积。 Convolutional layer都是3x3.原创 2020-07-02 09:06:10 · 52537 阅读 · 0 评论 -
基于学习的编码(四):WSE-CNNLF
基于学习的编码(四):WSE-CNNLF本文算法来自JVET-N0133,提出了一个CNN模型WSE-CNNLF(Wide-activated Squeeze-and-Excitation Convolutional Neural Network Loop Filter)来进行环路滤波。与前面几篇算法不同的是,WSE-CNNLF并不是在VVC环路滤波中增加一个阶段或替换某个阶段,而是完全取代VVC的环路滤波(包括DBF、SAO、ALF)。网络的输入和输出WSE-CNNLF包括6个输入,其中三原创 2020-06-29 08:25:46 · 50889 阅读 · 0 评论 -
基于学习的编码(三):ACNNLF
基于学习的编码(三):ACNNLF本文算法来自JVET-M0566提案,介绍了一种adaptive convolution neural network loop filter(ACNNLF)网络进行环路滤波。介绍ACNNLF方法会为YUV每个分量分别训练一个CNN,每个CNN只包含2层,共692个参数。编码器在编码CTB时会选择对应的CNN进行处理。ACNNLFs的网络参数会在I帧的slice header中传输,每个CTB只需传输使用的ACNNLF的索引。ACNNLF的设计思想主要是减少原创 2020-06-26 09:32:36 · 51012 阅读 · 0 评论 -
tensorflow使用RNN分析mnist手写体数字数据集
import tensorflow as tfimport numpy as npimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/原创 2018-01-15 20:57:01 · 790 阅读 · 0 评论 -
win8安装tensorflow
根据tensorflow官网,目前在windows上tensorflow只支持64位python3.5所以如果版本不满足先更换版本windows上安装python请参考(注意版本选择)如果直接通过pip install tensorflow命令安装tensorflow会报错,提示少什么文件。通过查官网发现原创 2018-01-06 19:32:00 · 1783 阅读 · 0 评论 -
'modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/all' failed
在编译安装opencv时可能会报错modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:290: recipe for target ‘modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o’ failed make[2]: *** [m原创 2018-02-03 22:56:20 · 2966 阅读 · 0 评论 -
caffe编译报错lib/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.2.9'
编译caffe报错://home/ubuntu/anaconda3/lib/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.2.9'问题可能是python是通过anaconda安装的而不是直接安装解决办法:在Makefile.config中加入下列信息:LINKFLAGS := -Wl,-rpath,/hom原创 2018-04-08 21:05:02 · 4545 阅读 · 4 评论 -
cannot find -lopencv_imgcodecs
在编译caffe时出现错误:/usr/bin/ld: cannot find -lopencv_imgcodecs为了改正错误尝试修改Makefile.config文件:LIBRARIES+= glog gflags protobuf leveldb snappy lmdbboost_system hdf5_hl hdf5 m opencv_coreopencv_highgui原创 2018-04-08 21:29:17 · 9952 阅读 · 5 评论 -
ubuntu中opencv2和opencv3多个版本切换使用
在ubuntu中有时需要安装多个版本的opencv,在默认安装方式中opencv会被直接安装到/usr/local目录,如果在想安装其他版本的opencv应该换到其他目录。在我的机器在opencv2.4被安装到/usr/local目录下,opencv3.1安装到/usr/local/opencv3目录下(编译时设置参数CMAKE_INSTALL_PREFIX=/usr/local/open原创 2018-04-09 00:21:32 · 2063 阅读 · 0 评论 -
Ubuntu编译caffe时配置opencv的注意事项
在编译caffe时,我们往往会在caffe里配置opencv,网上opencv的安装教程里通常都是将opencv默认安装到/usr/local目录,而很多caffe也是据此在caffe里配置opencv,如果你的opencv安装到其他目录那么在配置caffe时就必须修改相应配置否则会编译失败。假设你的opencv安装在/home/opencv3dll目录下。在配置caffe时很多教程会提...原创 2019-06-02 11:05:58 · 1485 阅读 · 0 评论 -
tensorflow使用CNN分析mnist手写体数字数据集
import tensorflow as tfimport numpy as npimport osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data/原创 2018-01-15 20:53:57 · 2879 阅读 · 1 评论