VTM2.0算法跟进

7月份JVET卢布尔雅那会议上确定了VTM2.0版本,来跟进下采纳的技术:

JVET-K1002采纳的技术有:
• Intra prediction
– 67 intra mode with wide angles mode extension(增加了宽角度模式)
– Position dependent intra prediction combination (PDPC)
– Cross component linear model intra prediction(只采用LM单模型)
• Inter-picture prediction
– Affine motion inter prediction
– Advanced temporal motion vector prediction
– Adaptive motion vector resolution
– 8x8 block based motion compression
– High precision (1/16 pel) motion vector storage and motion compensation
• Multiple primary transform selection with DCT2, DST7 and DCT8(因为复杂度问题砍掉了DCT5和DST1变换核)
• Dependent quantization with increasing max QP from 51 to 63.
• Modified transform coefficient coding with sign data hiding
• Adaptive Loop Filter
• Simple high-level syntax

其中宽角度模式我首次看到,大概看了下,是针对非方形块设计的,原理如下图:
VTM2.0算法跟进_第1张图片
原始帧内预测角度是45°到-135°,而对于非方形块来说,这样预测长边会出现预测范围太小,短边预测范围过大的问题,因此对方形块的预测角度进行调整,保持长短边的预测范围为各自长度的2倍。实际就是调整了预测角度。具体调整的角度吗,模式如下:
VTM2.0算法跟进_第2张图片
没追具体的提案,只是大致看了下,理解可能有问题。

此外,在编码单元部分,VTM2.0的最大CU可以为128x128(VTM1.0中为64x64),而变换块TU最大依然为64x64。实际代码中支持128尺寸变换的,有提供128尺寸的变换核函数,但是并没有启用。那么CU和TU不区分,这里尺寸不统一怎么实现变换的呢?在JVET-K0083中可以看到:

In BMS-1.1 [1], the maximum transform size is 64-point. In case a block width (height) being larger than 64, the block is implicitly split horizontally (or vertically) into multiples of sub-blocks which are smaller than or equal to 64x64. Specifically, for a W×H block, it is split into multiples of min(W, 64)×min(H, 64) sub-blocks.

也就是说,对于大于64的边分成多个子块变换。

另外VTM2.0默认开启色度单独划分,在cfg中由DualITree控制。

你可能感兴趣的:(H.266/VVC,H.266/VVC视频编码技术)