以下链接是视频编码的浅析,原理解释的很详细(像素计算过程错了,但原理没错),小白必看。

视频编码技术详解_tiankong19999的博客-CSDN博客_视频编码1、引言  如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从快播到抖音,从“三生三世”到“延禧攻略”,我们的生活,被越来越多的视频元素所影响。    而这一切,离不开视频拍摄技术的不断升级,还有视频制作产业的日益强大。    此外,也离不开通信技术的飞速进步。试想一下,如果还是当年的56K Modem拨号,或者是2G手机,你还能享受到现在动辄10...https://blog.csdn.net/guoyunfei123/article/details/105597859?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164734297916780255289258%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164734297916780255289258&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-105597859.142%5Ev2%5Epc_search_result_control_group,143%5Ev4%5Eregister&utm_term=%E8%A7%86%E9%A2%91%E7%BC%96%E7%A0%81&spm=1018.2226.3001.4187

以下是HM编码器原理介绍,由HM项目里面的software-manual.pdf说明书翻译而来http://t.csdn.cn/POkfd

1.1        近三年帧间的一些具体方向

对于改进帧间预测,一类是预测块划分的改进,一类是运动矢量精度的提高,一类是在运动补偿上增加一些新技术,提高帧间预测的准确度。H.266之于H.265在帧间预测工具作了很多扩展和新增:扩展Merge模式、改进运动估计、运动参数精细化、联合预测方法。其应用范畴包括HDR视频、360全景视频、计算机屏幕视频等。今后主要是以下几个研究方向值得关注:基于AI的视频压缩算法、更多的基于各种视频感知度量的最佳视频压缩方法、设计专门用于机器的视频压缩方法。以下是阅读一些论文的笔记:

1.1.1        GAN+帧间

总的来说就是通过RNN学习在相邻视图之间进行多个局部视图间预测,视图预测的目的是模拟人类对视依赖模式的感知。也就是说,根据相邻视图之间的变化,人们可以很容易地想象出中间的中心视图,同时也可以根据中心反向想象出邻居视图。最终达到优化全局特征的提取的目的。

1.1.2        数据挖掘+帧间

利用数据挖掘有选择地预测需要CRFPM的块的方法。该方法可以被视为一个二元分类任务,应用于每个块,以决定是使用SRFPM (Class 0)预测,还是使用CRFPM或SRFPM (Class 1)预测。该方法的中心思想就是训练一个决策树。

1.1.3        帧间的3D扩展

(1)利用自动阈值技术将深度图分为背景、中间地带和前景三个部分;然后,根据CTU的分类调整搜索范围。

(2)遮挡情况下的三维帧间运动估计:首先估计可见区域的运动,并结合时间信息,通过一个涉及lstm的图神经网络来推断被遮挡区域的运动。此外,通过用概率模型建模网络输出来计算估计运动的置信度,从而减少不可信的运动,实现鲁棒跟踪。随着运动误差的减小,该技术可以处理长且具有挑战性的运动序列。

(3)3D-MOT是自动驾驶中应用的一项重要的感知技术,以连续帧序列作为特定类别目标的输入和输出轨迹。在连续的帧中,目标的轨迹用带有跟踪id的三维方框表示。同一目标在不同帧中用对应的唯一ID标识。

1.1.4        帧间和帧内的编码权衡问题

现有的工作只关注于减少每两个相邻帧之间的变化,而忽略了帧内和帧间的编码权衡问题。由于预测编码机制问题,帧内的失真可以传播到帧间。因此,需要更好地分析帧内编码和帧间编码之间的相关性,以便改进。通过改进帧内和帧间编码权衡来改善QC,而不是追求每帧的最优解。

1.1.5         注意力+帧间

其实就是关键帧提取,我觉得跟帧间有一点关联,我的想法是:快视频浏览其实并不需要很多帧,只需要浏览一些关键的信息,中间帧人脑会自动补足,就可以直接省去中间帧。这里我看的论文用的就是注意力机制的方法。

1.1.6        遮挡问题

视频全景分割 (VPS) 需要生成一致的全景分割并跟踪视频帧中所有像素的身份。现有的方法主要是基于经过训练的实例嵌入来保持一致的全景分割。然而,它们不可避免地难以应对小物体、外观相似但身份不一致、遮挡和强烈的实例轮廓变形等挑战。为了解决这些问题,我们提出了 HybridTracker,这是一种轻量级的联合跟踪模型,试图消除单个跟踪器的限制。 HybridTracker 并行执行像素跟踪器和实例跟踪器以获得关联矩阵,将关联矩阵融合成匹配矩阵。在实例跟踪器中,我们设计了一个可微匹配层,保证了帧间匹配的稳定性。在像素跟踪器中,给定估计的光流,我们计算不同帧的同一实例的骰子系数,形成联合交集(IoU)矩阵。我们还在推理过程中提出了相互检查和时间一致性约束,以解决遮挡和轮廓变形挑战。大量实验表明,HybridTracker 在 Cityscapes-VPS 和 VIPER 数据集上优于最先进的方法。

1.1.7        小波在视频帧间压缩中的应用

由于小波变换为信号处理带来的额外优势,将小波应用于视频压缩的想法已经获得了动力。本文探讨了一种视频压缩去噪算法,该算法可以消除帧内和帧间噪声。此外,还探讨了视频压缩的必要性以及我们如何使用各种指标来确定视频压缩质量。他们考虑了视频压缩中的各种标准,因为它们有助于降低编解码器的成本,同时引发产品开发和产业增长,并实现不同制造商的产品之间的兼容性。

1.1.8        点云压缩的分数运动估计

受视频编码中分数像素运动的成功启发,我们探索了具有分数体素分辨率的运动估计设计,用于压缩动态 3D 点云的颜色属性。我们提出的基于块的分数体素运动估计方案考虑了点云和视频之间的根本差异,即帧内和帧间体素分布的不规则性。我们表明,运动补偿可以受益于分数精度提供的更高分辨率参考和更准确的位移。我们提出的方案明显优于仅使用整数运动的可比方法。所提出的方案可以与使用诸如区域自适应图傅里叶变换和区域自适应哈尔变换等变换的最先进系统相结合并增加相当大的增益

1.2        帧间+深度学习的一些具体方向和优缺点

        随着数字视频技术的出现和视频采集设备的普遍使用,视频及其压缩变得越来越突出。传统的视频压缩需要借助人工智能、机器学习、神经网络和深度学习进行升级。除了正常的信号处理之外,深度学习技术还具有优势,因为它们可以处理内容分析,而不是仅处理相邻像素。视频压缩的初始步骤、帧内/帧间预测在整体压缩中提供了更好的百分比。现有帧内预测方法的计算复杂度较高。

1.2.1        使用 CNN 的基于深度学习的帧内预测方法
        这种深度深度预测算法训练网络以减少计算量和时间来提供 CTU 的深度。

1.2.2        具有帧间预测和线性变换的压缩神经网络
        由于资源受限的环境,网络压缩已成为深度神经网络研究的重要组成部分。在本文中,我们发现内核权重之间的相互关系称为层间内核相关(ILKC)。两个不同卷积层之间的核权重在形状和值上具有很大的相似性。基于这种关系,我们提出了一种新的压缩方法,层间内核预测(ILKP),它通过卷积神经网络中内核权重之间的相似性来表示位数较少的卷积内核。此外,为了有效地适应视频编码技术的帧间预测方案,我们将线性变换集成到了预测方案中,从而显着提高了压缩效率。所提方法达到了93.77%的top-1精度, 压缩率与CIFAR10上的ResNet110基线模型相比。这意味着通过使用更少的内存占用空间,可实现0.04%的top-1精度提高。此外,结合量化,所提出的方法与CIFAR10和CIFAR100上训练的ResNets基线模型相比,压缩率几乎没有性能下降。

1.2.3        用于帧间预测的具有多域分层约束的深度参考生成
        帧间预测是视频编码中用于去除时间冗余的重要模块,其中从先前编码的帧中搜索相似的参考块并用于预测要编码的块。尽管现有的视频编解码器可以估计和补偿块级运动,但它们的帧间预测性能仍然受到由不规则旋转和变形引起的剩余不一致像素级位移的严重影响。在本文中,通过提出一个深度帧插值网络来在编码场景中生成额外的参考帧来解决这个问题。首先,总结了以前用于帧插值的自适应卷积,并提出了一个分解核卷积网络,以提高建模能力并同时保持其紧凑的形式。其次,为了更好地训练这个网络,引入了多域分层约束来规范我们的分解核卷积网络的训练。对于空间域,使用逐渐下采样和上采样的自动编码器来为不同尺度的帧插值生成分解内核。对于质量域,考虑到输入帧的质量不一致,分解的内核卷积用质量相关的特征进行调制,以学习从高质量帧中利用更多信息。对于频域,利用进行频率变换的绝对变换差值损失之和,从编码性能的角度便于网络优化。

1.2.4        基于合成候选参考(SCR)的帧间预测

不是对 LF 视频中的所有视图进行编码,而是仅压缩部分视图,而使用 LF-CNN 从编码视图重建剩余视图。所选视图的预测结构能够适应视图之间的相似性。受视图合成算法有效性的启发,合成结果被用作额外的候选参考,以进一步减少帧间冗余。

1.2.5        混合运动补偿 (HMC) 方法

近年来,学习视频编码取得了快速进展。大多数算法仅依靠基于矢量的运动表示和重采样(例如,基于光流的双线性采样)来利用帧间冗余。尽管基于自适应内核的重采样(例如自适应卷积和可变形卷积)在未压缩视频的视频预测中取得了巨大成功,但将这些方法与帧间编码的速率失真优化相结合却不太成功。认识到每种重采样解决方案在具有不同运动和纹理特征的区域中都具有独特的优势,提出了一种混合运动补偿 (HMC) 方法,该方法自适应地结合了这两种方法生成的预测。具体来说,使用来自当前帧和多个过去帧的信息,通过循环信息聚合 (RIA) 模块生成复合时空表示 (CSTR)。进一步设计一个一对多的解码器管道,以从 CSTR 生成多个预测,包括基于矢量的重采样、基于自适应内核的重采样、补偿模式选择图和纹理增强,并将它们自适应地组合以实现更准确的帧间预测。实验表明,他们提出的帧间编码系统可以提供更好的运动补偿预测,并且对遮挡和复杂运动具有更强的鲁棒性。与联合训练的帧内编码器和残差编码器一起,与传统的 H.264/AVC 和 H.265/HEVC 相比,整体学习的混合编码器在低延迟场景中产生了最先进的编码效率正如最近发布的基于学习的方法,在 PSNR 和 MS-SSIM 指标方面。

1.3        5个帧间研究方向具体详解和优劣

通过3.20号的组会,总结了几个预备深入学习的研究方向。

1.3.1        遮挡情况下的三维帧间运动估计

        三维动态的目标是重建被记录对象的形状、运动和外观,从而使用户能够记录、编辑、动画,并与真实的3D目标进行游戏,应用场景包括3D设计、视频游戏、电信、虚拟现实和增强现实。

在给定一幅输入RGB-D图像和当前重构模型的节点图的情况下,首先用该方法估计前一幅图像到当前输入图像的二维光流,然后,利用二维光流图像和深度图像,计算出可见节点的三维运动。将可见节点的三维运动和完整的节点图都输入到图神经网络中。同时引入LSTM模块来整合节点的历史运动,将时间信息传递到图神经网络中。最后,图神经网络以每个节点的置信度预测全节点运动。利用预测的节点运动和置信度,进一步优化图节点的变形参数。

优缺点:虽然这个方法通过引入基于图的全运动预测网络提高了运动跟踪的质量,但仍然存在一些失败的情况。首先,这个方法不能处理拓扑变化,对于基于节点图的重构系统来说这是一个开放的问题。变形图中的错误连接可能导致跟踪失败。可能的解决方案可以利用无跟踪重建方法的优势,如reference[24],或使用神经网络来预测图节点的位置和连接,如reference的[4]。另外,如果物体的某一部分被长期遮挡,并且有较大的非刚体运动,那么当物体重新可见时,这个方法也很难对其进行重新跟踪。

1.3.2        帧间和帧内的编码权衡问题

        首先,考虑到帧内的重要性,提出了一种新的面向帧质量一致性的IQP(intraframes quantization parameter)预测框架,然后利用所提出的惩罚项去除不合格的IQP候选项;其次,广泛地评估可能的特征,并为所有剩余帧选择每像素的目标位,帧QPs的平均与标准方差,其中给出了QP特征的等效捕获方法。第三,根据带宽和先前的信息有效地裁剪预测的IQPs,以获得更好的比特率精度。

现有的IQP工作大多是隐式或显式的R-D gains,而不是QC。评价帧质量波动的指标主要有两种:相邻帧之间的平均绝对质量差、帧质量的标准方差。R-D 指的是research-development。

机器学习算法有足够的数据和模型调整,选择以学习为基础的方法解决intracoding和intercoding的问题。第一步,不同的帧内QP attempts使用不同的TBRs去限制编码带宽,最好的QP代表最流畅的质量,被标记为每个序列和每个目标比特率的真实值,选择哪个标准对实现视频编码的性能起了很大作用。第二步,视频编码模型在实际的编码器实现,实际上对精度和复杂度有自己独特的要求,因此要求学习算法在允许计算复杂度增加的情况下能够获得更好的视频编码性能,而不仅仅是预测精度。此外,还需要对特征进行有效的提取。第三步,将训练后的模型应用到实际编码过程中,利用预测的帧内QP对帧内和帧间编码进行优化,在固定的编码配置下,既能获得编码折衷,又能获得一致的编码质量。

1.3.3        点云

属于VR、3D方面应用广泛的技术,对3D物体进行处理时,只关注点,不关注边。

首先在相邻的被占用的integer voxels之间创建fractional voxels。Neighboring voxels用于与物体表面保持一致性,不需要对表面进行明确的估计。然后,通过插值每个fractional voxels的属性,从附近的integer voxels获得更高分辨率的点云。fractional-voxel motion estimation (FvME)是通过integer-voxel MVs (IvMVs) 给出的位置周围搜索fractional-voxel MVs (FvMVs),选择运动补偿预测误差最小的分数位移来实现的。运动补偿预测是通过直接复制参考帧中匹配块中最近体素的属性作为当前帧中块体素的属性来实现的。FvME方案与基于变换的方法相比,在没有内部或内部预测的情况下,性能得到了改善,也明显优于基于IvMV的时间预测方法。

(a)描述了所有可能的候选整数和1/2体素位置。(b)显示了3个被占用的整数体素位置的例子,这些整数体素对应的分数体素是从相邻的整数体素中获得的。

1.3.4       使用 CNN 的基于深度学习的帧内预测方法

如何兼具噪声平衡?

1.3.5        待定

视频编码帧间学习笔记(个人向初学小结)相关推荐

  1. ADPCM编码与解码学习笔记·

    ADPCM编码与解码学习笔记 一.前言 之前许多次说过,有空的时候写写博客,可是一直没有好好落实.由于工作的原因,经常会接触到一些音视频的编解码技术,而ADPCM就是我第一接触的音频编码技术.所以,本 ...

  2. 视频数据处理方法!关于开源软件FFmpeg视频抽帧的学习

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 视频文件是多媒体数据中比较常见的一种,也是入门门槛比较高的一个领域.视频数据相关的领域 ...

  3. 视频三帧间简单阈值差分法

    今天研究了下视频的处理 然后做了视频的三帧间差分法的仿真 希望多给建议! clc clear videoObj = VideoReader('3.avi');%读视频文件 nframes = get( ...

  4. Qt学习笔记之 字符串类型小结

    1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见<Qt学 ...

  5. 返回txt格式的文本使用编码 js_Node.js学习笔记第一天

    01-导入node模块使用流程 // node.js中将不同功能的代码放在不同的js文件中,也叫模块化,核心模块会随着安装node.js时一并安装// 1. 导包 (本质就是得到一个全局对象,存储很多 ...

  6. postfilter中文什么意思_Filterpost请求中文字符编码的过滤器 --学习笔记

    java代码:import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;i ...

  7. 指数哥伦布编码 java_H.264学习笔记6——指数哥伦布编码

    一.哥伦布码 哥伦布码就是将编码对象分能成等间隔的若干区间(Group),每个Group有一个索引值:Group Id. >对于Group Id采用二元码编码: >对于Group内的编码对 ...

  8. 视频传输SDI接口学习笔记

    文档链接: 链接:https://pan.baidu.com/s/1donGy2zOkRew_WLDWJNZZA 提取码:gtlv 链接中包含文档: (1). smpte-sdi-a7-gtp.pdf ...

  9. transformer引入位置信息--Sinusoidal位置编码《个人学习笔记》

    transformer引入位置信息--Sinusoidal位置编码 为什么transformer需要位置编码 Sinusoidal绝对位置编码 首先,所有技术都是个人理解,并感谢技术各位分享,由此根据 ...

最新文章

  1. SharePoint中的列表(List) 与Content Type 之五
  2. 微软DevWow博客达人征文大赛
  3. SQL 修改排序规则的问题 sql_latin1_general_cp1_ci_as
  4. 5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...
  5. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现
  6. mac上使用终端生成RSA公钥和密钥
  7. symantec病毒服务器的部署及配置
  8. javascript 下载和打印文件流
  9. delphi7+firebird+dbexpress
  10. 时区转换问题java编码,Java UTC ZonedDateTime转换成指定时区时间方法及使用示例代码...
  11. JAVA 使用aspose.cad将dwg文件转PDF(每个布局转为一页)
  12. [数据库]MySQL表分区
  13. 尚学堂Struts视频总结之一
  14. 苞米豆mybatis-plus generator代码生成器3.5.1版本 Freemarker引擎
  15. [转载]神奇的数据挖掘
  16. openwrt使用port-mirroring
  17. c语言实验程序,C语言实验程序
  18. Linux fing cd 查找文件/文件夹并进入目录命令
  19. java下载pdf_java – 下载时空白PDF
  20. java B2B2C 多级分销多租户电子商城系统-消息队列之 RabbitMQ

热门文章

  1. 【ubuntu】vue项目部署 + 谷歌浏览器开机自启 + 项目自启 + 不允许退出全屏
  2. 频率域滤波之带阻滤波器matlab代码
  3. ARM 看门狗定时器
  4. STC89c52实现万年历
  5. 电脑和手机软件同屏操作软件“手机管理助手“开源
  6. 自动售卖机系统_为什么看好自动咖啡售货机的前景呢?福能达希望咖啡爱好者随时来一杯...
  7. 2018年区域赛总结
  8. ChainNode测评:WOOKONG BioSolo硬件钱包 全体验
  9. 图像变形算法之meitu瘦脸及放大眼睛(文末含代码)
  10. IT、CS、IS, 计算专业傻傻分不清楚? 这有何难