H.266/VVC相关技术学习笔记6:ISP(Intra Sub-Partitions)技术发展历程和技术细节

目前在VTM5.0中接收的ISP技术的中文名就是帧内子块划分技术

这项技术是HHI最早提出的,经历了三次标准的发展才形成现在的ISP

一、K次会议的LIP

最早是在K次会议上提出的,提案号是K0049,当时的ISP技术被称为LIP( Line-based Intra Prediction)基于线性划分的帧内预测。

基于线的帧内预测(LIP)可以将亮度预测块划分为一维分区或行。因此,可以将W×H(其中H为高,W为宽)的块按如下方式进行划分:
①水平划分:划分为总共H个W维行向量 (W×1)
②垂直划分:划分为总共W个H维列向量 (1×H)。
如下图所示。此模式可应用于当时的VTM/BMS中可用的任何块大小。这时候对所有块都进行LIP的划分,没有限制;
在这里插入图片描述
那么一个块如果划分为这么多的条,怎么进行预测编码呢?
答案就是:
对于每一条划分后的直线,通过对编码器发送的系数进行熵解码,然后进行反量化和反变换,得到残差信号。然后对直线进行帧内预测,最后在预测信号中加入残差信号,得到相应的重构像素值。每一行的重建值将可用来生成下一行的预测,下一行将重复该过程,以此类推。下图显示了该过程的一个示例。
在这里插入图片描述

LIP模式可以与VTM/BMS中可用的任何一种帧内预测模式一起使用。但是,对于块中的所有行,帧内模式都是相同的,也就是说每一个块只用一种帧内模式,下一行用上一行的重建像素值通过和上一行同样的帧内预测模式去预测当前行,以此类推。

后来主席认为不应该对所有块进行划分,因此又加入了以下的限制:
① 如果W>64和H≤64,则只允许垂直分割,因此不需要向解码器发送分割类型语法元素的标志。
② 如果W≤64,H>64,则只允许水平分割,因此不需要向解码器发送分割类型语法元素的标志。
③ 如果W>64和H>64,则该块不允许使用LIP模式,因此不会向解码器发出LIP模式使用的flag或分割类型语法元素的标志。

下图就是当时在VTM1.0上的性能,可以看出性能增益相当高,但是同时带来的复杂度也很高,因此主席建议降低复杂度,不然很难在硬件上实现很高的编解码效率
在这里插入图片描述

二、L次会议的ISP

在K次会议提出的LIP技术中,所有划分的子条都共享相同的帧内模式,因此只能发出一次模式标志 。另一方面,子分区的处理顺序表示子分区是按照帧内模式向下编码还是向右编码(正常处理顺序NPO),向上编码还是向左编码(反向处理顺序RPO)。

此外,还向解码器发送一个标志位,以指示是否必须使用LIP编码模式,如果是LIP模式,则发送第二个标志来指示设置划分类型(水平或垂直)。

不过,在K次会议上就其硬件实现的复杂性提出了许多的担心如下:
①划分子块可能少于16个像素,例如,4×4块可以分成4(4×1)行,这可能会产生吞吐量问题
②如果划分的行很多(例如64),则编码器在RD cost时操作次数就会增加很多,并且存储器访问方面过于麻烦
③对于列子分区(1×N)可能更难实现,因为使用光栅扫描使得存储器访问更耗时

因此L次会议对LIP技术进行了限制和简化:
(1)限制每个块划分子块的数目,并且每个子分区至少要有16个像素
(2)限制每个子分区的各边长至少是4个像素(即宽和高至少有一个为4)

具体根据块大小有不同的划分方式如下:

Block SizeNumber of Sub-Partitions
4×4不进行子块的划分
4×8 and 8×42
All other cases4

在这里插入图片描述
在这里插入图片描述
例如:
一个16×8块可以分为4个子块(16×2)(水平分割)或4个子块(4×8)(垂直分割)。
一个4×8块可以分为2个(4×4)子块(水平分割)或2个(2×8)子块(垂直分割)。
注意,子分区的数量只能是2(在4×8和8×4块的情况下)或4(在所有其他有效的情况下)。

但是后面有新加了一个新的限制:
①除了子块的大小必须大于16 个像素,且各边的长度都必须大于4
②基于第一个限制,在(4×H)的情况下,不再执行垂直划分,因为它将产生宽度为1或2的子分区,这显然不满足①限制。因此,分割类型标志也将被删除,因为这种情况只有水平划分。
③对于8×H的块,仍然可以使用垂直分割,但是子分区的数量将固定为2个(大多数情况下是4个)。因为要确保这种类型的子分区块宽度为4。

这次会议之后,将LIP正式更改为ISP模式

这次会议之后的性能,在VTM2.0上的AI的性能
在这里插入图片描述

三、M次会议的ISP

M次会议上的ISP技术基本和L次的一样,没有大变化,只是对子块的划分情况进行了一些小的修改如下:

1.即如果使用多参考行,则不使用ISP;如果不使用多参考行,则使用ISP。
2.划分的子块的大小仍然不能小于16,但是多了一些特殊处理,不强制让每个子块的宽度都大于4

Block SizeCoefficient group Size
1×N,N≥161×16
N×1,N≥1616×1
2×N,N≥82×8
N×2,N≥88×2
All other possible M×N cases4×4

3.MPM列表的使用

ISP算法将只在MPM列表中的帧内模式下进行测试。因此,如果一个块使用ISP,那么MPM列表只有一种构造方式。此外,如果某个块使用ISP,那么MPM列表将被修改为排除DC模式,并为ISP水平划分块优先选择水平模式,为垂直划分块优先选择垂直帧内模式。

这是M次会议上基于VTM3.0上的性能
在这里插入图片描述

四、最后

有关ISP的代码我还没有看,等看了以后我再更新,希望大家持续关注~,关于ISP技术可以改进的地方还是有很大的空间的,之后我也考虑着手做这块的项目

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值