VTM简介

JVET于2018年4月10日美国圣地亚哥会议上,为新一代视频编码标准定名为Versatile Video Coding,正式开启了H.266/VVC的标准化进程。

从H.265跟过来的同学们肯定都知道中间存在一个JEM(Joint Exploration Model ),实际就是一个过渡版本,其中的技术在H.266/VVC中并不一定会采纳,要重新评估决定。

在4月的J会议上,发布了测试软件VTM1.0,详见J1002。之前所说的重新洗牌的局面并没有初现,VTM1.0还是沿用了HM的编码框架,换用多类型树(QT+MTT 四叉树+二叉树/三叉树)的编码结构,能做的只是在框架中的各个模块细化、扩展、抠细节。

下载地址:https://jvet.hhi.fraunhofer.de/svn/svn_VVCSoftware_VTM

变化

确定的内容中相对于H.265变化有:

删除:
• Special strong boundary smoothing for 32×32 luma block intra prediction
• Boundary smoothing across edges for intra prediction (a horizontal filter for vertical prediction and vice versa, and the first row and column with DC prediction)
• DST-VII style transform in 4×4 intra blocks
• Mode-dependent scan for intra blocks
• Quantization weighting matrices
• Residual sign bit hiding
• VPS and VPS VUI
• Dependent slices
• Tiles
• Wavefronts (entropy coding sync)

由于上述改动对特定元素的影响,有以下改动:
• Partitioning of a CU into multiple PUs (including asymmetric partitionings)
• Partitioning of a CU into multiple luma blocks for intra prediction (i.e., signalling of multiple luma intra prediction modes for a CU), except for implicit splits when the CU size is too large for the maximum transform size
• The coding unit syntax element part_mode
• Partitioning of a CU into multiple TUs, except for implicit splits when the CU size is too large for the maximum transform size
• Transforms that are applied across prediction block boundaries
• The syntax element split_transform_flag
• Non-aligned luma and chroma transform blocks
• All VPS and VPS VUI syntax
• SPS syntax elements
o log2_min_luma_transform_block_size_minus2 (always use 4x4 luma and corresponding chroma)
o log2_diff_max_min_luma_transform_block_size
o max_transform_hierarchy_depth_inter
o max_transform_hierarchy_depth_intra
o amp_enabled_flag

QT+MTT

VTM1.0基本就是只改动了编码结构,其他部分并没有大的变化。下面来看下现在的QT+MTT结构。

之前有讲过HM的QT、JEM的QT+BT,详见https://blog.csdn.net/lin453701006/article/details/52753724。

QT+MTT四叉树划分与HM相同,二叉树/三叉树划分结构示意图如下,就是在JEM的QT+BT基础上增加了三叉树划分,使得划分变得更加灵活。划分后的CU可以为正方形或矩形。

划分时,不限定父块的形状,也就是说矩形也可以继续划分二叉树或三叉树。当然也会限制一些划分情况,防止出现多余的划分如下图。

下图是QT+MTT划分顺序的示例,首先进行QT划分,当QT划分结束后,会进行MTT(BT+TT)划分。
有两点需要注意:
1.MTT划分得到的CU不会在进行QT。
2.MTT划分中,BT划分得到的CU可以继续进行MTT,MTT得到的CU也可以进行BT。

VTM编码结构中,不再区分CU、PU、TU,也就是说,划分得到的CU直接用于预测和变换,PU和TU不再单独划分。

VTM代码阅读指南

1.如果是看过HM的同学就不用看这部分了。对于没有看过HM的初学者,建议首先确定一个具体功能函数来看,然后一层一层往外跳,直到熟悉整个框架。比如可以从帧间运动估计xMotionEstimation开始,向下学习整体的MV搜索算法,包括整像素、亚像素搜索等。在阅读xMotionEstimation过程中,也是对理论知识深入学习的过程,比看书学到的更多、更深刻。当xMotionEstimation看完,此时基本熟悉了VTM的代码习惯,再跳出来看上层的整体帧间预测其他部分。

2.VTM相比HM变化最大就是CU、PU、TU的类,增加了CodingStructure,详见BMS/VTM代码学习:CodingStructure和CodingUnit。如果之前看过HM代码,需要改下CU的使用习惯,个人感觉VTM中对CU的操作更方便。

3.VTM已经对JEM很多冗长的代码进行了精简,看上去舒服多了。和HM一样,在VTM中,会通过宏定义来标注新增的内容如下,这样看新增技术的时候很方便。

#if JVET_K0357_AMVRif( m_pImvTempCS && !slice.isIntra() ){const unsigned maxMEPart = tempCS->pcv->only2Nx2N ? 1 : NUMBER_OF_PART_SIZES;for( unsigned p = 0; p < maxMEPart; p++ ){tempCS->initSubStructure( *m_pImvTempCS[wIdx][p], partitioner.chType, partitioner.currArea(), false );}}
#endif

H.266/VVC测试软件VTM相关推荐

  1. 【Codecs系列】H.266/VVC视频编码标准 技术系列汇总

    DATE: 2020.9.30 文章目录 1.H.266/VCC标准专栏 2.H.266/VCC视频编码标准 技术汇总 1.H.266/VCC标准专栏       视音频技术之H.266/VVC 2. ...

  2. 字节跳动:基于H.266/VVC的移动平台8K超高清实时解码实践 | QCon

    网络视听服务的发展已经度过野蛮生长期,业界对音视频技术的探索也逐渐进入深水区. 目前来看,视频化及高清视频化的大趋势已势不可挡,在成本.体验.计算.传输等多个层面上给业界提出了日益增长的巨大挑战. 最 ...

  3. H.266/VVC代码学习:帧内预测之角度预测函数(predIntraAng、xPredIntraAng)

    predIntraAng函数 VTM中,帧内预测的角度预测的入口函数为predIntraAng函数,该函数主要是用于进行传统的帧内预测(Planar.DC.角度预测),然后对Planar和DC模式使用 ...

  4. H.266/VVC技术学习:算术编码

    算术编码是一种常用的变长编码方法,和Huffman编码类似,也是对出现概率大的符号赋予短码,出现概率小的符号赋予长码,但算术编码不是简单的将每个信源符号映射成一个码字,而是对整个输入序列分配一个码字, ...

  5. H.266/VVC帧间预测技术学习:高级运动矢量预测(Advanced Motion Vector Prediction, AMVP)

    高级运动矢量预测模式(Advanced Motion Vector Prediction,AMVP) AMVP模式是H.265/HEVC中提出的新的MV预测技术,H.266/VVC仍采用了该技术,并在 ...

  6. H.266/VVC代码学习20:角度预测入口 / 特殊模式的PDPC技术(predIntraAng)

    1.predIntraAng函数 predIntraAng是帧内0~66这67种预测的入口.其中可细分为: 模式0:PLANAR模式 模式1:DC模式 模式2~66:角度模式 此函数在亮度预测和色度预 ...

  7. H.266/VVC视频编解码标准

    H.266多功能视频编码编解码器标准,新的H.266 /VCC编解码器在保持清晰度不变的情况下,数据压缩效率获得极大提高,数据量减少了50%. 新标准的公告中指出,由于改进了压缩技术,H.266将减少 ...

  8. H.266/VVC帧间预测总结

    一.帧间预测基本原理 帧间预测是利用视频帧与帧之间的相关性,去除视频帧间的时间冗余信息.统计表明,帧间差绝对值超过3的像素平均不到一帧像素的4%,因此,采用高效的帧间编码方式,可以很大程度上提高视频压 ...

  9. H.266/VVC变换量化部分内容总结

    变换 一.基础内容 VVC中使用了DCT-2变换.DST-7变换和DCT-8变换作为主变换:同时为了进一步提高变换的性能,VVC针对帧内预测残差的低频分量引入了不可分变换作为二次变换(低频不可分二次变 ...

最新文章

  1. anaconda安装及环境变量配置
  2. 常用的Net Command
  3. 图解MySQL索引:B-树(B+树)
  4. Html5-Canvas实现简易的抽奖转盘
  5. 禁用浏览器缓存Ajax请求
  6. Web前端要学什么框架呢?推荐这几款
  7. App设计灵感之十二组精美的汽车远程管理App设计案例
  8. .NET 深度指南:Colors
  9. 单径Rayleigh信道下基带模型的多用户BPSK直接序列扩频系统MATLAB仿真(m序列、Gold序列和正交Gold序列)
  10. 研究生导师一般希望招什么样的研究生?
  11. juc原子类之五:AtomicLongFieldUpdater原子类
  12. 简易留言板HTML+JS代码
  13. 使用网络协议分析仪Wireshark
  14. PIE-Engine教程—中国降水分布可视化加载以2018年为例(含图例添加)
  15. SiT1602:SiTime低功耗单端有源晶振
  16. 论OSPF中ASBR和ABR
  17. java集成极光推送实现Android的消息推送
  18. 语音唤醒真香警告,轻松开启与Siri、小度和小爱的畅聊
  19. 炽热如初 向新而生|ISC2022 HackingClub白帽峰会圆满举办
  20. 【目标】新学期计划与目标

热门文章

  1. java——Random种子
  2. poi-tl导出word;自定义列表序号和表格宽度,表格合并,自定义标题,更新目录
  3. ps画画模糊笔刷_用ps污点画笔修复工具讲图片变成朦胧效果
  4. 用关键词搜索店铺列表详情
  5. 贪心算法求解:王者荣耀购买点券最优策略
  6. emwin模拟器编译环境搭建及helloworld例程
  7. 应用分发平台之苹果超级签名流程分析及API错误
  8. 骨传导耳机会伤害耳朵吗?骨传导耳机优点是什么
  9. crm系统价格多少?
  10. 电商平台订单号生成策略