一、IBC技术原理

•帧内块拷贝(Intra block copy, IBC)是VVC针对屏幕内容类型的视频序列的编码(Screen content coding)的扩展工具,它显著提高了屏幕内容序列的编码效率。
•IBC 是一种块级的编码模式,和帧间技术类似,编码端执行运动搜索(块匹配,Block Maching, BM)为每个CU找到其最佳的块向量(Block Vector(BV),也可以称为运动向量Motion Vector(MV)),块向量是从当前块指向参考块的向量。和帧间技术不同的地方在于,IBC的最佳块向量是在当前 CU所处帧(即当前编码帧)的重建区域搜索得到的,而帧间的运动向量是通过当前编码帧在时间域上的相邻参考帧搜索得到的。
•块向量用于指示从当前块到参考块的位移,参考块在当前图片内部已经重建。
•编码的 CU 的亮度块向量是整数精度。 色度块向量也四舍五入到整数精度。
•与 AMVR 结合使用时,IBC 模式可以在 1 像素和 4 像素运动矢量精度之间切换。
•IBC 编码的 CU 被视为除帧内或帧间预测模式之外的第三预测模式。
•IBC 模式适用于宽度和高度均小于或等于 64 亮度样本的 CU。

二、IBC预测流程

1、构建IBC的Merge单向候选列表

LO                                    L1

构建常规Merge单向候选列表

构建顺序为:空域候选,HMVP(列表长度为5),0MV

对于Merge模式,最多添加6个候选

对于AMVP模式,添加2个候选作为基础BV

同时,对于IBC AMVP模式,需要通过运动估计来搜索最佳块运动向量。IBC的运动估计方法包括基于哈希的运动估计(hash-based search)和基于块匹配的运动搜索(block matching based local search)。对于AMVP模式,首先使用基于哈希的搜索来执行块向量搜索。 如果哈希搜索没有返回有效的候选者,则执行基于块匹配的本地搜索。在基于哈希(hash-based)的搜索中,当前块和参考块之间的散列键匹配(32 位 CRC)被扩展到所有允许的块大小。 当前图片中每个位置的哈希键计算基于 4x4 子块。 对于更大尺寸的当前块,当所有4×4子块的哈希键与对应参考位置的哈希键匹配时,确定哈希键与参考块的哈希键匹配。 如果发现多个参考块的哈希键与当前块的哈希键匹配,则计算每个匹配参考的块向量成本,并选择成本最小的一个。

2、利用BV推导预测样本

单树划分:对亮度和色度像素均进行预测,色度BV为亮度BV的缩放BV

双树划分:仅对亮度像素进行预测

3、IBC的参考区域

为了减少内存消耗和解码器复杂度,VVC 中的 IBC 只允许预定义区域的重构部分。包括当前 CTU 的区域和左侧 CTU 的某些区域。

下图说明了 IBC 模式的参考区域,CTU大小为128x128,下图指两个CTU,其中每个小块代表 64x64 亮度样本单位。

IBC最大的CU尺寸为64x64

X表示不可参考区域。

三、ECM中IBC的改动

1、参考区域的改动

•对于要编码的CTU(M,N),参考区域包括(m–2,n–2)…(W,n–2),(0,n–1)…(W,n–1),(0,n)…(m,n),其中W表示当前tile、slice或picture内的最大水平索引。

•此设置可确保对于128大小的CTU,IBC在当前ETM平台中不需要额外的内存。

•每个样本块矢量搜索(或称为本地搜索)范围限于水平[–(C << 1), C >> 2] 和垂直[–C, C >> 2],以适应参考领域扩展 ,其中C表示CTU大小。

•对于256大小的CTU

•上面的两行 CTU 可能需要额外的内存。为了防止IBC占用额外内存,CTU大小为256x256时,参考区域修改为右图所示

beyond VVC SCC技术学习:相关推荐

  1. H.266/VVC SCC技术学习:帧内块拷贝(Intra block copy, IBC)

    帧内块拷贝 (Intra block copy, IBC) 是 HEVC 针对屏幕内容编码(Screen content coding)序列的扩展工具,它显着提高了屏幕内容序列的编码效率. IBC 是 ...

  2. H.266/VVC相关技术学习笔记18:帧间预测中的AMVR技术(自适应运动适量精度)

    AMVR技术也称为自适应运动适量精度技术,就是在以前的HEVC中,MVD的精度只有一个默认的1/4像素精度,但是由于要适应不同分辨率的图像,仅仅使用一个精度去表示MVD是远远不够的,因此在VTM6.0 ...

  3. H.266/VVC相关技术学习笔记20:帧间预测技术中的MMVD技术(Merge mode with MVD)

    今天介绍一下帧间预测技术中的MMVD技术(Merge mode with MVD),也称带有运动矢量差的融合技术,MMVD也属于基于Merge的技术中的一种,在解码端的语法元素中也属于Merge分支. ...

  4. H.266/VVC相关技术学习笔记16:VTM6.0中的CIIP技术(帧内帧间联合预测)

    今天讲一下目前VTM6.0版本中的CIIP技术,CIIP即为帧内帧间联合预测技术,这属于Merge系列的一个分支. 该技术需要先计算当前预测块的帧内预测值,即用Planar.DC.角度预测等传统的帧内 ...

  5. H.266/VVC相关技术学习笔记4:HEVC和VVC中块划分的差别

    关于H.265/HEVC和H.266/VVC中的块划分的区别: 一.HEVC中首先需要将一个图像固定划分为多个CTU. ① CTU的尺寸固定划分为64×64,一个CTU由一个亮度CTB和两个色度CTB ...

  6. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式

    今天主要详细讲一下帧间预测中五种Merge模式的熵编码方式,以及对应的VTM的代码中的编码方式的实现.现阶段VTM6.0中Merge模式大致上分为五种,分别是Subblock_Merge.MMVD_M ...

  7. Maya 2022中的硬表面建模技术学习视频教程

    Maya 2022中的硬表面建模 信息: 使用正确的拓扑和边流在Maya中建模硬曲面对象. 你会学到什么 硬质表面工具和技术 细分工作流程 边缘流动控制 正确拓扑 材料设置 Studio Lightn ...

  8. Maya阿诺德室外环境灯光照明和渲染技术学习视频教程

    Maya阿诺德室外环境灯光照明和渲染技术学习视频教程 Maya and Arnold_ Exterior Lighting and Rendering 教程时长 1小时47分 大小 1.1G 1280 ...

  9. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

最新文章

  1. 人的一生有三件事不能等
  2. 万字长文:详解 Spring Boot 中操作 ElasticSearch
  3. 艾伟_转载:.NET内存管理、垃圾回收
  4. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路
  5. idea全局搜索快捷鍵ctrl+shift+F失效
  6. node js fork php,Node.js中execFile,spawn,exec和fork简介
  7. 均分纸牌(信息学奥赛一本通-T1320)
  8. 【BZOJ2226】LCM SUM,数论之一维LCM(莫比乌斯反演)
  9. BZOJ 3555 [CTSC2014] 企鹅QQ Hash
  10. 在Windows环境下为Python 2.5安装SSL模块
  11. 【转】Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android)...
  12. ortoiseGit--小乌龟git项目
  13. JLink驱动设备管理器中显示黄色感叹号
  14. fw150r虚拟服务器设置,迅捷 FW150R 无线路由器端口映射设置指南
  15. chrome浏览器糟糕WEBGL遇到了问题,如何解决
  16. 极限-反函数极限问题
  17. 洛谷-P3975 弦论(后缀自动机板子题)
  18. 字符串(字符串的拼接及一些常用方法)
  19. 向量点乘相关公式推导及 几何解释
  20. CVPR2017论文

热门文章

  1. TDog的科研(求毕业)之路——多任务图像超分辨率(一)
  2. 中文信息处理——纵览与建议
  3. leetcode 514. Freedom Trail(自由之路)
  4. Google浏览器搜索页自定义图片
  5. GeoTools实战指南: 坐标转换工具
  6. 自动洗车APP开发需要满足用户哪些需求
  7. 【软件构造】面向正确性和健壮性的软件构造小记
  8. 【静态时序分析】如何寻找时序分析的起点与终点
  9. 筛选英语高于计算机成,计算机应用基础--excel操作题2
  10. java 实例变量是类的成员变量吗_JAVA中成员变量,局部变量,实例变量,类变量,有什么关系,,?...