关于JCT-VC的A033文档的理解(分块组成)

 

这里和H.264宏块分割的很大区别在于引入了四叉树的结构。在这里叫做CTB(coding tree block)。在hevc中,除了基于帧的环路滤波器之外,其他机制都是基于CTB的。CTB中如果尺寸最大的就叫LCTB,最小的就叫SCTB,中间的就是各个大小的叶节点(leaf-ode)。但是就分割来看,最小不能小于8x8(更小的会在PU内区分).

既然ctb是四叉树,必然由参数Depth,N和split_flag来决定,用一种recursive迭代的方法分成了不同大小的square(注意,在分ctb的时候都是正方形,但是在pu中可以进行几何分割)。

使用这个机制的好处在四点:1、相比于H.264的子宏块机制而言,支持的分割种类更加多,而且在sps中传输的信息量比较少,毕竟是以树的方式。2、编码可以使用于多用途多设备中。小分块精度高,对设备要求高,大分块精度低,对设备要求低。3、使用统一型(消除宏块和子宏块),使得结构更加简洁(对比H.264中子宏块分割的代码实现)。4、语法表示机制独立于CTBsize的大小,而h264中有transform_8x8_mode_flag等图标,这些都是特定于16,8或4。对于编码块的顺序来说,是按照raster scan,在每个CTB中,是以深度优先原则的。

 

另外引入的一个新名词是PU(prediction unit)(之所以我觉得引入两层分割我想是标准推荐大块处理,所以分成两次还是和264里面一次的大小差不多,这个观点有待更正)。PU是专门指对无法再分的CTU(即叶子节点(叶子上是不能再分出来长东西了))产生的。其参数有两个prediction type和PU splitting。PU splitting的分法和prediction type相关的。如果prediction是intra的话,只有两种不同的分法,2Nx2N和NxN。如果是inter的话就有八种,四种对称的(2Nx2N,2NxN,Nx2N,NxN)和四种非对称的(2NxnU,这里U代表UP,指的是上面1/4的部分,同理还有2NxnD,nLx2N,nRx2N)。(这和a30里面的FMP灵活宏块分区有点像

 

另外还有一种分法叫做几何分法,十分灵活,一条线以任意方式任意角度(arbitrary)切割square。分区的记录信息就是斜率m和截距c,分别放在两个32bit的查找表当中(lookup table)。square里面的点只要带到线里面计算,根据>或者<0就可以知道属于哪个分区。特别的,如果使用这种方式的话,那么就要用到OBMC(overlapped block motion compensation)。是因为分割开来的块的边界是相接的,根据常理,边界上总归会受到另外一方的影响,所以使用了带权重的机制(即本块的mv占2/3,临块的mv占1/3,也就是说临边的补偿是于主体分开的)。至于怎么去界定边界呢,这里主要使用如下机制:该像素点四周的四个点只要有一个点落在了邻域中,那么该点就是边界。

所有与预测有关的信息都放在一个PU basis中,包括帧内预测的方向,帧间的mvd和reference index,mvp,mvc等。

一般来说,对于每个帧内预测块,各个运动参数都一个一个用来传输。但是为了提高编码效率,常常采用几个块合并同传(即逻辑上划为一个区域)。具体方法如下:所有的预测块的,按照处理顺序来分的集叫做set fo causal blocks(也就是causal是指因果顺序的),另外一种是允许合集在一起的块集叫set of available blocks(这个事实上是因果集的子集,是从该集中符合条件,挑选出来重新组成的集合)。可见如果有效集为非空,则说明有合并传输的块。

有效集的参数有merge_flag,如果是0的话就常规传输,如果是1的话那么规则如下:有且只有一个块的话,用于合并。或者有两个块,自持如果两者的参数相同,那么这个参数用于当前块。如果不同,merge_left_flag用来标记,=1就是指包括了左边邻样本位置的块被选出来,=0则是top块被选出来(非左即上)。选出来的块就直接用于当前块。

 

另外一个新的概念就是TU(transform unit),主要用来转化和量化,其大小与CTB一样大,从4x4---64x64.

 

 

关键词:CTU,PU,TU,OBMC

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值