VCIP2021:GDR中使用HMVP
Posted Dillon2015
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VCIP2021:GDR中使用HMVP相关的知识,希望对你有一定的参考价值。
本文来自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的主要内容,如果未能解决你的问题,请参考以下文章
VCIP2021:基于神经网络的双向预测blending过程