VTM5中的Implicit MTS和Explicit MTS

引言:

在调试VTM5.0和阅读变换相关JVET提案时,常出现Implicit MTS和Explicit MTS,之前对于Implicit MTS这个概念一直很困惑,他与MTS(Explicit MTS)有何异同??经过一段时间学习,总算有点明白Implicit MTS,现将自己的理解写出来,如有理解错误的地方,希望能提出来,一起学习进步。

背景:

VTM5中变换类型包括DCT2、MTS的四种模式以及TS模式(变换跳过模式)。默认行列变换类型为DCT2,MTS仅适用于帧内帧间的亮度分量,变换核的类型有两种:DCT8、DST7,变换对的类型(MTS的模式)有4种。

tu_mts_idx transform type binarization
horizontal vertical MTS & TS enabled MTS enabled TS enabled
0 SKIP SKIP 0 - 0
1 DCT2 DCT2 10 0 1
2 DST7 DST7 110 10 -
3 DCT8 DST7 1110 110 -
4 DST7 DCT8 11110 1110 -
5 DCT8 DCT8 11111 1111 -

最佳变换类型的选择通过遍历各种变换模式,取代价最小的变换类型。

内容:

Implicit MTS仅适用于帧内,是MTS的精简版,Implicit MTS和Explicit MTS不能同时存在,通过开关控制是否进行Implicit MTS。VTM5.0中Implicit MTS是默认关闭的。当Implicit MTS开关打开时,残差块的行列变换类型根据宽高的长度进行选择:

trTypeHor = (nTbW>=4 && nTbW<=16 )?DST7 :DCT2

trTypeVor = (nTbH>=4 && nTbH<=16 )?DST7 :DCT2

由此我们可以看出,当进行Implicit MTS,变换核的类型只有DCT2和DST7两种,且残差块的尺寸确定了变换核的类型,不需要对多种变换类型对进行遍历选择最佳变换类型。

总结:

Implicit MTS的变换核类型只有DCT2和DST7,变换类型的选择只与块的尺寸有关。

 

你可能感兴趣的:(视频编码,视频编码标准)