• 1、LIC技术 (Local illumimation compensation)
  • 2、 Non-adjacent spatial candidate
  • 3、TM (Template matching)
  • 4、Multi-pass decoder-side motion vector refinement
  • 5、OBMC
  • 6、Sample-based BDOF
  • 7、Interpolation
  • 8、MHP(Multi-hypothesis prediction)——JVET-M0425
  • 9、ARMC-TM(Adaptive reordering of merge candidates with template matching)
  • 10、GPM-MMVD
  • 11、GPM-TM

1、LIC技术 (Local illumimation compensation)

主要思想:认为当前块和参考块之间存在局部照明变化,引入线性函数a * p[x]+b来补偿变化。p[x]为x处MV所指向的参考帧当中的像素值。a,b通过参考块和当前块模板推导。LIC应用于16 * 16的处理单元时,推导使用当前CU中左上角16 * 16的单元,并且用于CU内其他部分。
标志位:AMVP模式下需要LIC flag标识是否开启,并且该标志位没有时域继承性
限制条件:
亮度块大小小于32则无法使用
对于非子块和affine模式,参数推导基于当前CU相关的模板块样本,而不是左上角16 * 16块相关的模板块样本
参考块的模板样本是由MV经过MC得到的,并且不需要近似到整像素精度
仅用于帧间单向预测,只应用于regular merge,regular inter,mmvd和affine模式,ciip和ibc模式下不可使用
亮度、色度分量均使用

2、 Non-adjacent spatial candidate

主要思想:在构建merge候选列表的时候,TMVP后面加入非相邻的空余merge候选,如图中6-20

3、TM (Template matching)

解码端推导MV
主要思想:以当前块的上方/左边作为模版,在参考帧中搜索(搜索范围[-8,8])找到与模板最接近的块,以此修正MV。
搜索步长基于AMVR确定。
在merge模式下,TM可以与双边匹配BM级联

4、Multi-pass decoder-side motion vector refinement

解码端进行

主要思想:多次对MV进行细化,并且将细化的MV保存下来用于后续预测的时域和空域MV。

  • 第一轮细化
    针对整个CU,使用BM。执行局部搜索获得整精度精度的intDeltaMV,基于L0和L1中最小双边匹配误差,在初始MV周围进行细化。以3 * 3的块为单位进行搜索,分别在水平和垂直方向上搜索,搜索范围分别为[-sHor,sHor]和[-sVer,sVer],其中sHor和sVer最大值为8,最终得到MV0_pass1和MV1_pass1。
    双边匹配误差计算为 bilCost = mvDistanceCost + sadCost。当CU面积大于64,则用MRSAD代价函数来消除参考块间代价的DC效应。若bilCost在中心点最小,则搜索终止,否则以当前最小代价的点作为3 * 3模版的中心点继续搜索,直至到达搜索边缘。
  • 第二轮细化
    针对16 * 16的子块,使用BM。执行全搜索获得整像素精度的intDeltaMV,基于L0和L1中最小双边匹配误差,在MV0_pass1和MV1_pass1周围进行细化。分别在水平和垂直方向上搜索,搜索范围分别为[-sHor,sHor]和[-sVer,sVer],其中sHor和sVer最大值为8,最终得到MV0_pass2和MV1_pass2。
    双边匹配误差计算为 bilCost = satdCost * costFactor,satdCost为两个参考子块的satd。costFactor由搜索点和起始MV的距离决定,下图,每个区域都有一个costFactor。每个菱形区域按搜索区域中心开始的顺序处理,每个区域中,搜索点按栅格顺序扫描,从左上角一直到右下角。当当前搜索区域中最小bilCost小于Th(W*H),那么终止搜索,否则继续搜下一个区域,直到搜索完全部点。
  • 第三轮细化
    针对8*8的子块,使用BDOF得到修正值Vx,Vy,将推导出的bioMv(Vx,Vy)四舍五入到1/16精读,并且范围在-32~32,得到MV0_pass3和MV1_pass3。
  • 总结

5、OBMC

主要思想:CU上边界和左边界的像素用相邻块的运动信息进行加权。子块OBMC同理
目的:减小方块效应。
OBMC禁用情况

  • sps层禁用OBMC
  • 当前CU是帧内或者IBC模式
  • 当前CU使用了LIC
  • 当前亮度块面积小于等于32

子块OBMC使用条件

  • Affine AMVP模式
  • Affine Merge模式和SbTMVP模式
  • 基于子块的BM

6、Sample-based BDOF

主要思想:将CU分成8 * 8子块,每个子块根据两个参考子块之间的SAD与阈值的关系决定是否进行BDOF。若开启BDOF,则在每个子块内,针对每个样本都有一个5 * 5的滑动窗口,根据滑动窗口推导出Vx和Vy。推导出的修正值用于调整每个窗口的中心样本。

7、Interpolation

思想:原用的8抽头滤波器由12抽头滤波器所替代。插值滤波器由sinc函数导出。

8、MHP(Multi-hypothesis prediction)——JVET-M0425

主要思想:除了原有的双向预测,额外添加了多个预测器。总的预测信号为各个预测器的累加和。
限制条件:帧间AMVP模式,MHP只在双向预测中BCW不为等权重时使用

9、ARMC-TM(Adaptive reordering of merge candidates with template matching)

主要思想:对候选进行重新排序。在候选列表建立好之后,将被分为多个子组,每组大小为5(regular merge/TM)/3(affine merge)。每个子组内根据模式匹配的代价(当前块的模版样本和他们的参考样本的SAD)排序。对于最后一个子组的候选不进行重排序。
应用的模式:regular merge、TM merge(在细化过程之前重排序)、affine merge
对于SbTMVP模式,当前CU的子块大小为Wsub*Hsub,则子块的模板大小为Wsub * 1或1 * Hsub

10、GPM-MMVD

主要思想:在GPM候选确定后,进一步细化。该MVD由9种精度(1/4、1/2、1、2、3、4、6、8、16)和8个方向。若pic_fpel_mmvd_enabled_flag为1,MVD需要左移两位。

11、GPM-TM

主要思想:使用TM优化每个分区的运动信息。根据不同的划分,确定使用的模板,如表所示。通过最小化当前模板和参考图片中模板的差异从而优化运动信息。

GPM列表构建:

  1. 交叉选用List0和List1中的MV,此时List0中的MV优先级更高。同时通过与自适应阈值(与当前CU大小有关)比较,删除冗余项
  2. 交叉选用List1和List0中的MV,此时List1中的MV优先级更高。同时通过与自适应阈值(与当前CU大小有关)比较,删除冗余项
  3. 零MV

注意:GPM-MMVD和GPM-TM都应用于同一个模式中。只有在两个分区的GPM-MMVD都为false,才可以开启GPM-TM。

【ECM技术】ECM(Enhanced Compression Model)帧间技术总结相关推荐

  1. ECM(Enhanced Compression Model )新技术

    Enhanced Compression Model 是 继VVC的另一个高级标准. 1.帧内预测: Multi-model LM(MMLM): JVET-D0110,VVC中包含的CCLM通过增加三 ...

  2. H.266/VVC相关技术学习笔记20:帧间预测技术中的MMVD技术(Merge mode with MVD)

    今天介绍一下帧间预测技术中的MMVD技术(Merge mode with MVD),也称带有运动矢量差的融合技术,MMVD也属于基于Merge的技术中的一种,在解码端的语法元素中也属于Merge分支. ...

  3. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式

    今天主要详细讲一下帧间预测中五种Merge模式的熵编码方式,以及对应的VTM的代码中的编码方式的实现.现阶段VTM6.0中Merge模式大致上分为五种,分别是Subblock_Merge.MMVD_M ...

  4. H.266/VVC相关技术学习笔记18:帧间预测中的AMVR技术(自适应运动适量精度)

    AMVR技术也称为自适应运动适量精度技术,就是在以前的HEVC中,MVD的精度只有一个默认的1/4像素精度,但是由于要适应不同分辨率的图像,仅仅使用一个精度去表示MVD是远远不够的,因此在VTM6.0 ...

  5. HEVC帧间预测原理

    一.帧间预测基本原理 主要原理是为当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计( Motion Estimation,ME).其中用于预测的图像称为参考图(Refere ...

  6. H.266/VVC帧间预测总结

    一.帧间预测基本原理 帧间预测是利用视频帧与帧之间的相关性,去除视频帧间的时间冗余信息.统计表明,帧间差绝对值超过3的像素平均不到一帧像素的4%,因此,采用高效的帧间编码方式,可以很大程度上提高视频压 ...

  7. ECM技术学习:解码端帧内模式推导(Decoder-side Intra Mode Derivation )

    解码端帧内模式推导(DIMD)技术是之前在VVC标准化的过程中提出的技术,因为其在解码端引入的复杂度较高,因此没有被VVC采纳.为了探索下一代压缩标准,JVET最近设立了最新的ECM参考平台,将DIM ...

  8. H.266/VVC帧间预测技术学习:CU级双向加权预测(Bi-prediction with CU-level weight)

    CU级双向加权预测(Bi-prediction with CU-level weight ,BCW) 在HEVC中,通过对从两个不同参考图片获得的两个预测信号求平均和/或使用两个不同运动矢量来生成双向 ...

  9. SVAC1.0帧间预测技术分析

    ###Date:2017/10/21 ###Content:SVAC1.0帧间预测技术分析 1.参考帧选择 P条带或B条带最多可有两个参考帧或四个参考场.,它们应为最临近当前解码图像的参考帧或参考场. ...

最新文章

  1. MySQLMySql免安装版安装配置
  2. HBase Cassandra比较
  3. 考研数学一历年真题小题(选择填空)整理
  4. android获取毫秒,Android 日期转为为毫秒,毫秒转化为日期,获取当期日期年、月、日...
  5. Notepad++ 更换主题
  6. shiro框架@RequiresPermissions 解释
  7. Mybatis多条件直接查询Param注解版
  8. 洛谷P1099 树网的核
  9. javascript 代码可读性
  10. 029 Android WebView的使用(用来显示网页)
  11. 对Redis单线程的一些看法
  12. 第一阶段 PHP基础.函数
  13. Dynamsoft SourceAnywhere for VSS 5.4安装配置指南
  14. 存储系列篇之IDE、SATA、SCSI、SAS、FC、SSD等概念介绍
  15. c语言的sin cos是弧度,C++中cos,sin,asin,acos這些三角函數操作的是弧度,而非角度(轉)...
  16. 三角函数π/2转化_1道真题,串讲三角函数图像与恒等变换,兼谈选择题的构思原则 | 真题精讲22...
  17. proposal中文翻译_proposal是什么意思_ proposal的翻译_音标_读音_用法_例句_爱词霸在线词典...
  18. Excel如何利用时间差操作,求得员工的工龄
  19. php7安装fileinfo扩展
  20. 智能手机平台:TI,Intel,Moto

热门文章

  1. CAN诊断浅谈 如何用CAN工具进行诊断
  2. Scikit-Learn&More,用于机器学习的综合数据集生成
  3. memory check error at 0x03D70F16 = 0x00, should be 0xFD.
  4. S11、反射系数、回损、VSWR之间的换算
  5. 郭忆:网易数据库高可用架构最新进展!
  6. Nginx 学习日记2
  7. STM32F10X SPI操作flash MX25L64读写数据
  8. 白侠机器人_白侠微信多群直播机器人,直播机器人首选
  9. IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/中后台/体验管理等)之详细攻略
  10. ubuntu 18.04 IKFAST 运动学插件生成