VTM4.0变换编码加入了5项新技术:
•JVET-M0140 Sub-block Transform (SBT) for inter blocks
•JVET-M0297: skipping high frequency coefficients in wide/high blocks
•JVET-M0303: implicit MTS
•JVET-M0464: UniMTS
•JVET-M0497: Fast DST-7/DCT-8 with dual implementation support
下面来具体看下这三个技术,没跟代码,就大概看了下介绍。
JVET-M0140 Sub-block Transform (SBT) for inter blocks
之前VTM3.0变换编码跟进已经提过这个技术,这次果然采纳了。这里大致介绍下,有时间具体看下在具体说吧。
华为针对帧间残差分布的特性,设计了位置相关的变换核。具体的变换核方案包括水平垂直两种方向、1/2和1/4两种划分、左/上还是右/下两种位置,一共是8种方案。具体使用时,会根据尺寸有对应限制,而且有快速算法,减少RDO次数。
JVET-M0297: skipping high frequency coefficients in wide/high blocks
修改了高频调零门限,MTS下门限改为16,DCT2为32。对于被强制调零的系数区域,残差编码可以被跳过,并调整最后系数位置的截断一元二值化。
JVET-M0303: implicit MTS
一种隐含的变换核选择,依赖于块形状和尺寸。对于矩形帧内预测块,短边使用DST7而长边用DCT2,对亮度色度都可用。当色度使用CCLM时,不可用。当亮度大于16点或色度大于8点时,不可用。
实际采纳的是亮度小于等于16的情况下,短边使用DST7。
JVET-M0464: UniMTS
在MTS之前传输TS标识,transform skip对32x32块可用。
JVET-M0497: Fast DST-7/DCT-8 with dual implementation support
使用了其他一到两个基矢量,其中只包括1到2个数字。