VVC之SCC(一):IBC

155 篇文章 135 订阅
66 篇文章 23 订阅

VVC之SCC(一):IBC

Intra block copy(IBC)是屏幕内容编码(Screen Content Coding,SCC)的主要技术之一。IBC是块级的编码模式,在编码端会使用块匹配(Block Matching,BM)技术为每个CU寻找最优匹配块,并计算块向量(block vector)。块向量表明当前块和最优匹配块的位置关系。

当CU使用IBC模式编码,其亮度分量的块向量使用整数精度表示,色度分量的块向量四舍五入到整数精度。当结合AMVR技术时,块向量可以在1像素精度和4像素精度间切换。

IBC模式只用于亮度分量的宽和高都小于等于64的CU。

在编码端,可以对IBC模式使用基于哈希的运动估计技术。编码器会为宽或高不大于16的块进行RD检查。对于non-merge模式,首先使用基于哈希的搜索进行块向量搜索,如果哈希搜索没有返回有效的候选项则使用基于局部搜索的BM。

在基于哈希的搜索中,当前块和参考块间的哈希键值匹配(32-bit CRC)操作对所有允许尺寸的块进行。对当前图像所有位置的哈希键值计算都是基于4x4子块进行的。对于较大的当前块,只有其所有4x4子块的哈希键值与参考块对应位置哈希键值都匹配时,才将其作为匹配块。如果多个块的哈希键值都和当前块匹配,则选择块向量代价最小的一个。

在BM搜索中,搜索范围包括前面的CTU和当前CTU。

在CU级上有一个IBC标志位表示IBC AMVP模式或IBC skip/merge模式:

  • IBC skip/merge模式:一个merge候选项索引用于表示使用哪个相邻IBC块的块向量作为预测值。merge列表由空域、HMVP和pairwise候选项构成。

  • IBC AMVP模式:BVD(block vector difference)和MVD(motion vector difference)编码方式一样。块向量有两个候选预测值分别来自左侧和上侧IBC块。当两个候选项都不可用时,使用一个默认块向量作为预测值。需要传输一个标志位表示使用的块向量预测值的索引。

IBC参考区域

为了减少内存需求和解码复杂度,VTM5中仅允许在当前CTU和左侧CTU的部分重建区域使用IBC。下图表示IBC模式允许的参考区域,每个块都为64x64。

 

根据当前CU在CTU中的位置可分为下面4种情况:

  • 如果当前CU是CTU左上角的64x64的块,除了当前CTU已重建部分,CPR模式下左侧CTU的右下角64x64的块、左下角64x64的块、右上角64x64的块也可以作为参考。

  • 如果当前CU是CTU右上角的64x64的块,除了当前CTU已重建部分,如果相对于当前CTU的(0,64)位置还未重建,当前块也能参考CPR模式下左侧CTU的右下角64x64的块、左下角64x64的块;否则当前块也能参考左侧CTU的右下角64x64的块。

  • 如果当前CU是CTU左下角的64x64的块,除了当前CTU已重建部分,如果相对于当前CTU的(0,64)位置还未重建,当前块也能参考CPR模式下左侧CTU的右上角64x64的块、右下角64x64的块;否则当前块也能参考CPR模式下左侧CTU的右下角64x64的块。

  • 如果当前CU是CTU右下角的64x64的块,它只能参考CPR模式下当前CTU已重建部分。

感兴趣的请关注微信公众号Video Coding

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值