本文来自VCIP2021论文《HMVP for GDR of VVC》

为了适应低延迟场景VVC支持GDR图像,GDR图像由clean area和dirty area组成,通过virtual boundary分割。其中clean area中的CU只能使用clean area中的信息来编码。

HMVP是VVC中新增的工具,使得后续MV集更丰富。但是HMVP可能来自dirty area,此时如果clean area中的CU使用这些HMVP则会造成泄露。

HMVP


VVC在帧间预测时支持merge和AMVP,这两种方法对CU都会构建候选MV列表,分别如下:

HMVP列表中包含5个表项,每个表项都来自过去已编码的inter块的MV。每编码完一个inter块就更新一下HMVP表,如果表满了按先进先出顺序移除最早的表项,同时还要去除相同的表项。每个CTU行开始要清空HMVP表。

GDR中的HMVP


如前面所说,GDR图像中使用HMVP可能造成泄露,如Fig.2所示。

由于在每个CTU行HMVP都会重置,使用CTU行中的CTU分为三种:

  • Clean-area CTU:CTU行中的所有CU都在clean area中。

  • Mixed-area CTU:CTU行中的CU一部分在clean area中一部分在dirty area中。

  • Dirty-area CTU:CTU行中的所有CU都在dirty area中。

如Fig.3所示,该CTU行有5个CTU,其中CTU0和CTU1是Clean-area CTU,CTU2是Mixed-area CTU,CTU3和CTU4是Dirty-area CTU。

对于Clean-area CTU(CTU0和CTU1),该CTU行中编码顺序在它前面的inter CU都是在clean area,所以使用HMVP不会造成泄漏。

对于Dirty-area CTU(CTU3和CTU4),编码顺序在它前面的inter CU可能来自clean area也可能来自dirty area,但是dirty area使用clean area的信息不影响编码。

对于Mixed-area CTU(CTU2),编码顺序在它前面的inter CU可能来自clean area也可能来自dirty area,如果clean area中的CU使用了dirty area的信息则会造成错误。

Fig.4是一个Mixed-area CTU示例,绿色CU是当前CU,红色虚线是virtual boundary,当前CU在clean area中。假设编码顺序在当前CU之前的5个CU(CU13、CU12、CU11、CU10、CU9)都是inter cu且mv不同,它们的mv将构成HMVP,其中CU9和CU10在dirty area中,如果当前CU使用了它们的mv则会造成错误。

如Fig.5,编码端和解码端都会维护一个HMVP表,MIa是最老的表项,MIe是最新的表项。橙色的表项来自dirty area中的CU,在解码端不能正确解码。在HMVP表中如果一个表项被dirty area影响则比它更早的表项也会受dirty area影响。

Pairwise average MVP也会被merge模式中的HMVP影响,Pairwise average MVP由merge候选列表的前两项平均值生成,如果前两项中有HMVP则Pairwise average MVP也会被影响。HMVP中表项不能正确解码也会影响其他候选项的索引。

综上,Mixed-area CTU中的CU使用HMVP可能会造成错误。而且VVC中merge和AMVP构建候选列表时是无法关闭HMVP的,因此需要编码器自己规避错误。论文提出对于Mixed-area CTU中的CU在使用merge和AMVP模式时强制不选中HMVP及其后的候选项。

实验结果


实验平台选择VTM14.0,使用LDB配置,第一帧设为IDR帧且每2秒插入一个GDR帧。结果如表1所示。

如Fig.9所示,如果解码器从GDR帧开始(非IDR)解码,使用论文方法后则能避免解码错误。

感兴趣的请关注微信公众号Video Coding

VCIP2021:GDR中使用HMVP相关推荐

  1. GNU Make 使用手册(于凤昌中译版)

    GNU Make 使用手册(中译版) 翻译:于凤昌 GNU make Version 3.79 April 2000 Richard M. Stallman and Roland McGrath 1 ...

  2. AVS3关键技术、性能和复杂度分析

    本文由北京大学的范逵博士在LiveVideoStack线上分享第三季,第七期的内容整理而成,本次分享将主要从AVS3关键技术介绍.AVS3性能测试两个方面介绍AVS3基准档次中新采纳的编码工具,并分析 ...

  3. H.266/VVC帧间预测技术学习:高级运动矢量预测(Advanced Motion Vector Prediction, AMVP)

    高级运动矢量预测模式(Advanced Motion Vector Prediction,AMVP) AMVP模式是H.265/HEVC中提出的新的MV预测技术,H.266/VVC仍采用了该技术,并在 ...

  4. 新一代视频编码标准:VVC、AVS3

    本文来自北京大学信息科学技术学院教授马思伟在LiveVideoStackCon 2018大会上的演讲,详细介绍了最新一代VVC和AVS3视频编码标准进展,包括关键技术特色以及未来的应用展望. 文 / ...

  5. VVC帧间预测(一)扩展的merge模式

    VVC在HEVC的基础上增加了很多新的帧间预测工具,在VTM5里新增的帧间预测工具如下: Extended merge prediction Merge mode with MVD (MMVD) AM ...

  6. 面试:第十二章:所有总结

    Java基础 java基本类型哪些,所占字节 byte :1个字节 short :2个字节 char :2个字节 int :4个字节 long :8个字节 float :4个字节 double :8个 ...

  7. linux内核分析(转自某位大哥网上的笔记)

    启动 当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码.BIOS先进行一系列的系统自检,然后初始化位于地址0的中断 ...

  8. ubuntu16.04中源码安装仅仅支持CPU的TensorFlow

      直接用pip3安装的tensorflow在运行代码时,总是会提醒另一种更加高效率的编译模式,很烦人,再加上据说在CPU上计算速度会加倍,于是就尝试用tensorflow的源码进行安装,主要参考了T ...

  9. SQL Server中关于跟踪(Trace)那点事(转载)

    前言 一提到跟踪俩字,很多人想到警匪片中的场景,同样在我们的SQL Server数据库中"跟踪"也是无处不在的,如果我们利用好了跟踪技巧,就可以针对某些特定的场景做定向分析,找出充 ...

最新文章

  1. 长达1500年之久的争论:意识是连续的还是离散的?心理物理学家给出了新的回答...
  2. hdu5399(模拟)
  3. [objective-c] 08 - 内存管理
  4. [转载].gdb调试器快速入门
  5. 谷歌真是厉害,这次成了公敌!
  6. 前端进阶篇——02、CSS和JS
  7. python win32模块详解_Windows平台Python编程必会模块之pywin32介绍
  8. 思科模拟器路由表怎么看_Cisco路由配置教程 Cisco路由器静态路由与默认路由的配置方法图解...
  9. 滑尺计算——丈量宇宙的直尺
  10. python——基础教程——8
  11. 移动支付App在激增中成长、 安全与创新需并驾齐驱!
  12. RA病人关节残障与软骨破坏而非骨破坏相关
  13. M4A音频格式是如何转成MP3格式的?
  14. 分享一些C++软件开发后台开发复习必备电子书单
  15. 太阳黄经和平黄经的计算方法
  16. 阿里系纯滑块验证码破解思路
  17. 基于SSM框架的校园论坛设计与实现(MySQL、JSP)
  18. ren命令linux,Excel2003使用重命名命令ren步骤
  19. 【小白入门】2019 ICME2019 字节跳动 • 短视频内容理解与推荐竞赛
  20. 【调剂】北京林业大学工学院程朋乐副教授课题组拟招收计算机、自动化等专业调剂生...

热门文章

  1. CodeBlocks的安装及使用
  2. 直升机空气动力学基础---002 桨叶的主要参数
  3. Html5结合flash在所有主流播放器播放视频的方法
  4. Live2D项目,桌面可爱玩偶(可以动的),html桌面化(exe)的实现
  5. Tomcat9的下载与安装
  6. 【web 前端面试笔试题自总结】
  7. 预训练语言模型复现CPT-1Restructure_pretrain
  8. 图解java链表基本操作篇一(头插法和尾插法)
  9. PMP考试都是什么题?
  10. Linux消息队列原理与应用