最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • H.266/VVC 标准之面向屏幕应用的编解码技术

    正文概述 掘金(字节跳动视频云技术团队)   2021-04-14   1175

    作者:许继征

    概述:

    屏幕内容编码是从H.265/HEVC起引入的面向屏幕应用的编解码技术。H.265/HEVC包含了Hash-based Motion Estimation、Intra Block Copy、Transform Skip、Block-based Differential Pulse-Code Modulation、Adaptive Motion Vector Resolution、Palette Mode和Adaptive Colour Transform。除了删除了在序列级别的Adaptive Motion Vector Resolution(在序列级别规定了是否需要开启帧级别的控制,在H.266/VVC里面被应用更广泛的工具取代),其它的工具在H.266/VVC里面有一系列调整。本文将介绍这一系列调整。

    1. 介绍

    针对屏幕内容的应用,最早先在标准里提出了Screen Content Coding的概念 [1] 。并在H.265/HEVC、AV1 [2] 和H.266/VVC里引入了众多的编解码工具。本文将介绍H.266/VVC中的主要屏幕编解码工具。

    2. Hash-based Motion Estimation

    在涉及屏幕内容时,通常下一帧的一部分会是上一帧的精确拷贝。利用这个特点我们可以将屏幕内容分开处理,来快速判断是否有精确匹配 [3]。在参考帧的原始信号上,计算出对每个位置的4x4~64x64的循环校验码即CRC值,再在当前帧分块的位置算出对应块的原始值的CRC值。通过比较这两个CRC值可以得到是否精确匹配。这部分工具是非标准的,但对应用非常重要。

    3. Intra Block Copy

    Intra Block Copy简称为IBC,针对的是本帧的非相邻块的预测。IBC的预测单元是Coding Unit,但只对64x64及以下的Coding Unit用。H.266/VVC里面新增加的是VPDU(Virtual Pipeline Data Units)内存的重利用和Virtual buffer的概念。VPDU是片上内存的基本单元,和CTU的对应关系如下表:

    表1. CTU和VPDU的对应关系:

    CTU = 128x128VPDU = 64x64CTU = 64x64VPDU = 64x64CTU = 32x32VPDU = 32x32

    H.266/VVC 标准之面向屏幕应用的编解码技术

    图1. CTU=128x128的时候的Virtual buffer view和Picture view

    图1所示的是CTU=128x128的时候的Virtual buffer view和Picture view的对应,其中每个方块对应的是64x64的luma块。灰色的块是invalid区域(有任何一个sample落入该区域就算是invalid的)、蓝色是当前VPDU、绿色是可以参考的VPDU[4]。 下图显示的是CTU=64x64的时候的Virtual buffer view和Picture view的对应。

    H.266/VVC 标准之面向屏幕应用的编解码技术

    图2. CTU=64x64的时候的Virtual buffer view和Picture view

    所以VPDU(64x64)的内存只需要维持4个。另外,对于I帧亮度和色度用不同的分块树的情况禁止了色度的IBC的,相对应的色度块就只能选其它的帧内模式。还有,对Local dual tree(P或B帧里对应的防止块过小的限制)也不能用色度的IBC。

    4. Transform Skip

    Transform Skip在Screen Content Coding里面应用很广。在H.266/VVC里,作为一个变换单元的工具,Transform Skip做了额外的设计。在解码端Transform Skip先是从左往右、从上往下扫描每个子块,再在子块内部做对角线扫描 [5]。对每个非0系数至多会对应扫描5遍,分别对比了小系数的幅度编码。相应地设置一个跟面积为1.75倍的限额,超过了这个限额就全部转为无上下文的编码。

    5. Block-based Differential Pulse-Code Modulation

    Block-based Differential Pulse-Code Modulation,简写为BDPCM,是应用在帧内预测的模式。应用时,都会推断成Transform Skip,并且有横向的或者是纵向的区别。纵向模式时候,解码过程中残差r(i,j)会减去上一行的重构值

    r(i,j)=r(i,j)+r'(i-1,j),i>0                                                   (1)
    

    横向也类似。

    6. Adaptive Colour Transform

    Adaptive Colour Transform应用于4:4:4的GBR格式(其它格式也能用,但好处不大)。在解码端Adaptive Colour Transform是应用于解码残差和重构JCCR、以及反变换之间的步骤。当Coding Unit的相应标志位为1时(此时只可能是三个分量都是一个解码树),解码器在残差域进行如下操作:

    tmp = Y – (Cg >> 1)
    G  = Cg + tmp
    B  = tmp – (Co >> 1)
    R  = B + Co                                  
    (2)             
    

    其中Y、Cg、Co分别代表三个分量的残差值,R、G、B分别代表恢复的三个分量的残差值。为了平衡能量,反量化的时候QP分别加上了-5、1和3。

    7. Palette Mode

    Palette Mode是针对4:4:4 Profile(包括4:4:4 Profile下的4:2:0和4:2:2)设计的,与H.265/HEVC下的Palette mode类似。在Palette Mode里面,可以有1个(只是Luma)、2个(只是Chroma)和3个(Luma和Chroma的联合编码)。对于3个预测平面(定义为一个三元组列表,每一帧的初始为空)的设置,相对应的最大预测长度为63,相对应的最大的每个块的索引值是31;对于1或者2这两个值分别为31和15。跟HEVC一样,不管是几个预测平面,块里面都是分横向或者纵向的蛇形扫描。最后,Palette Mode会对Coding Unit进行不大于16个样本的分割,然后去扫描 [6]

    8. 性能

    针对4:2:0格式,H.266/VVC Main 10档次有如上述2、3、4、5小节中介绍的编码工具可以用,而H.265/HEVC的Version 1相对应的只有4x4的Transform Skip可以用。性能对比如下表。

    表2: VTM-9.0 [7] 对比HM-16.21 [8], 4:2:0格式 [9]H.266/VVC 标准之面向屏幕应用的编解码技术

    而对于4:4:4格式,H.266/VVC Main 10 4:4:4档次能用上述2、3、4、5、6、7小节中介绍的编码工具。性能对比如下表。

    表3: VTM-9.0对比HM-16.21+SCM-8.8 [8], 4:4:4格式 [9]H.266/VVC 标准之面向屏幕应用的编解码技术


    下载网 » H.266/VVC 标准之面向屏幕应用的编解码技术

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元