1、AMVR
HEVC中使用四分之一精度来传输运动矢量残存MVD,VVC在CU级自适应地选择MVD精度(adaptive motion vector resolution,AMVR)。对于normal AMVP mode和affine AVMP mode,分别有以下精度可以选择:
– Normal AMVP mode: quarter-luma-sample, half-luma-sample, integer-luma-sample or four-luma-sample(共4种,亮度上的四分一精度、二分一精度、整数精度、四像素精度)。
– Affine AMVP mode: quarter-luma-sample, integer-luma-sample or 1/16 luma-sample(共3种,亮度上的四分一精度、整像素精度、十六分之一像素精度)。
2、模式编码
对于全0 MVD,默认使用quarter-luma-sample。
否则,在普通模式下,第1位为0表示quarter-luma-sample,第1位为1则看第2位,第2位为0表示half-luma-sample,以此类推,用最多三个比特分别表示是否使用quarter-luma-sample, half-luma-sample, integer-luma-sample,都不使用的话(全为1)就是four-luma-sample。
在affine模式下类似,用两个比特即可。
3、模式决策
在编码端使用RD check决定使用哪种精度。为了加快计算,可以跳过一部分RD check。
对于普通AMVP模式,先计算四分之一和整数精度的RD cost,如果四分之一精度RD cost远小于整数精度,那么就跳过四像素精度的RD check。如果整数精度RD cost远大于之前的最佳RD cost,跳过半像素精度。
对于affine AMVP模式,如果在经过affine merge/skip
模式、普通merge/skip模式、quarter-luma-sample MVD precision normal AMVP模式和quarter-luma-sample MVD precision affine AMVP模式的RD check后,affine inter模式(affine AMVP模式)未被选中,跳过1/16精度和整数精度的affine inter模式的RD cost计算。