VCIP2021:GDR中使用HMVP_GDR

为了适应低延迟场景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列表,分别如下:

VCIP2021:GDR中使用HMVP_HMVP_02

VCIP2021:GDR中使用HMVP_VVC_03

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

GDR中的HMVP


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

VCIP2021:GDR中使用HMVP_编码器_04

由于在每个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中。

VCIP2021:GDR中使用HMVP_HMVP_05

如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的信息则会造成错误。

VCIP2021:GDR中使用HMVP_编码器_06 

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则会造成错误。

VCIP2021:GDR中使用HMVP_GDR_07

如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所示。

VCIP2021:GDR中使用HMVP_微信公众号_08

VCIP2021:GDR中使用HMVP_HMVP_09

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

请关注微信公众号Video Coding