视频编解码中变换系数的编解码

文档序号:108591 发布日期:2021-10-15 浏览:27次 >En<

阅读说明:本技术 视频编解码中变换系数的编解码 (Coding and decoding of transform coefficients in video coding and decoding ) 是由 陈漪纹 修晓宇 马宗全 王祥林 于 2020-03-10 设计创作,主要内容包括:一种用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法包括:利用第一上下文模型对Cr色度(Cr)变换单元的第一CBF(tu-cbf-cr)进行编解码。利用第二上下文模型对Cb色度(Cb)变换单元的第二CBF(tu-cbf-cb)进行编解码。利用两种上下文模式对亮度变换单元的第三CBF(tu-cbf-luma)进行编解码。(A method for coding a Coded Block Flag (CBF) using Context Adaptive Binary Arithmetic Coding (CABAC) includes: a first CBF (tu _ CBF _ Cr) of a Cr chrominance (Cr) transform unit is coded using a first context model. The second CBF (tu _ CBF _ Cb) of the Cb chrominance (Cb) transform unit is codec by using a second context model. The third CBF (tu _ CBF _ luma) of the luma transform unit is coded using two context modes.)

视频编解码中变换系数的编解码

相关申请的交叉引用

本申请主张2019年3月11日提交的美国临时申请No. 62/816,898的利益。前述申请的全部公开内容通过引用整体并入本文。

技术领域

本公开总体上涉及对视频数据进行编解码(coding)(例如,编码和解码)和压缩。更具体地,本公开涉及用于改进和/或简化对视频编解码中的变换系数进行编解码的方法和装置。

背景技术

本节提供与本公开有关的背景信息。本节包含的信息不应当必然被解释为现有技术。

各种不同的视频编解码技术可以用来压缩视频数据。视频编解码是依照一种或多种视频编解码标准来执行的。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型编解码(JEM)、高效视频编解码(H.265/HEVC)、高级视频编解码(H.264/AVC)、运动图片专家组编解码(MPEG)等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用视频图像或序列中存在的冗余。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。

HEVC标准的第一版于2013年10月最终确定,其与上一代视频编解码标准H.264/MPEG AVC相比,提供大约50%的比特率节省或者同等的感知质量。尽管HEVC标准相对于其前身提供了显著的编解码改进,但是有证据表明,利用附加的编解码工具可以实现相对于HEVC更优越的编解码效率。基于此,VCEG和MPEG两者都启动了用于未来视频编解码标准化的新编解码技术的探索工作。一个联合视频探索团队(JVET)于2015年10月由ITU-T VECG和ISO/IEC MPEG成立,以开始对能够实现编解码效率的大幅提高的先进技术进行重大研究。JVET通过在HEVC测试模型(HM)之上集成若干个额外的编解码工具而开发出称为联合探索模型(JEM)的参考软件。

在2017年10月,ITU-T和ISO/IEC发布了具有超越HEVC的能力的视频压缩的联合提案征集(CfP)。2018年4月,在第10届JVET会议上,收到并评估了23份CfP响应,其展现出比HEVC高约40%的压缩效率增益。基于这样的评估结果,JVET启动了一个新项目来开发新一代视频编解码标准,该标准被命名为通用视频编解码(VVC)。同月,建立了一个称为VVC测试模型(VTM)的参考软件代码库,用于演示VVC标准的参考实施方式。

发明内容

本节提供了本公开的总体概要,并非其完整范围或者其全部特征的全面公开。

依照本公开的第一方面,一种用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法包括:利用第一上下文模型对Cr色度(Cr)变换单元(tu_cbf_cr)的第一CBF进行编解码;利用第二上下文模型对Cb色度(Cb)变换单元(tu_cbf_cb)的第二CBF进行编解码;以及利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码。

依照本公开的第二方面,一种用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法包括:利用第一上下文模型对亮度变换单元(tu_cbf_luma)的第一CBF进行编解码;利用第二上下文模型对Cb变换单元(tu_cbf_cb)的第二CBF进行编解码;以及利用两种上下文模式对Cr变换单元的第三CBF进行编解码,其中对于当前编解码单元(CU),基于Cb变换单元的第二CBF的值选择两种上下文模式。

附图说明

下文中,将结合附图描述本公开的多组说明性的、非限制性的实施例。相关领域普通技术人员基于本文呈现的示例可以实施结构、方法或功能的变化形式,并且这样的变化形式全部包含在本公开的范围之内。在不存在冲突的情况下,不同实施例的教导可以但不是必需彼此结合。

图1示出了依照示例实施例的示例的基于块的混合视频编码系统,其包括适合与诸如通用视频编解码(VCC)方法之类的各种不同视频编解码和解码技术一起使用的示例编码器;

图2示出了依照示例实施例的示例解码器,其适合与诸如通用视频编解码(VCC)方法之类的各种不同视频编解码和解码技术一起使用;

图3A-图3E示出了依照示例实施例的示例分割类型,即四叉划分(图3A)、水平二叉划分(图3B)、垂直二叉划分(图3C)、水平三叉划分(图3D)和垂直三叉划分(图3E);

图4示出了VCC中的示例帧内模式;

图5示出了VCC中用于帧内预测的多个参考行;

图6A-图6C示出了用于如图6A所示的扁平矩形块(W/H=2)、如图6B所示的高矩形块(W/H=1/2)以及如图6C所示的方形块(W=H)的帧内预测的参考样本和角度方向;

图7示出了用于一个编解码块的依赖于位置的帧内预测组合(PDPC)的相邻重建样本的位置;

图8A-图8C示出了如图8A所示的8 x 4块、如图8B所示的4 x 8块以及如图8C所示的其他块的短距离帧内预测(SDIP)划分;

图9示出了子块变换模式——子块变换(SBT)-V和SBT-H;以及

图10A-图10F为依照示例实施例的用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法的流程图。

具体实施方式

本公开中使用的术语旨在说明特定的示例,而不是限制本公开。如本公开以及所附权利要求书中所使用的单数形式“一种”、“一个”和“该”也指代复数形式,除非在上下文中明确地包含了其他含义。应当领会的是,如本文中使用的术语“和/或”指的是一个或多个关联的所列项目的任意或全部可能的组合。

应当理解,尽管术语“第一”、“第二”、“第三”等可以在本文中用来描述各种信息,但是信息不应受这些术语的限制。这些术语仅仅用来区分一类信息和另一类信息。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;以及类似地,第二信息也可以被称为第一信息。如本文所使用的,术语“如果”可以根据上下文而被理解成表示“当……时”或“一经……”或“响应于……”。

贯穿本说明书,以单数或复数对“一个实施例”、“一种实施例”、“另一个实施例”等的引用表示结合实施例描述的一个或多个特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在贯穿本说明书的不同地方,单数或复数的短语“在一个实施例中”、“在一种实施例中”、“在另一个实施例中”的出现不一定都指的是同一个实施例。此外,一个或多个实施例中的特定特征、结构或特性可以按照任何适当的方式进行组合。

本公开总体上涉及对视频数据进行编解码(例如,编码和解码)。更具体地,本公开涉及用于改进编解码的块标志(CBF)的上下文自适应二进制算术编解码(CABAC)的方法和装置。在各个不同的实施例中,示例方法和装置可以独立地应用或者与一个或多个其他示例方法和/或装置联合地应用。在常规的方法中,用于CBF标志的CABAC编解码的上下文选择在VVC中可能不是高效的。例如,CBF值概率分布可能不依赖于给定变换块的变换深度。而且,CBF值概率分布可能不依赖于块是规则帧内块或者SDIP子块。根据这些条件使用不同的上下文可能增加实现成本并且潜在地累及对应的概率自适应。

图1示出了依照示例实施例的示例的基于块的混合视频编码系统,其包括适合与诸如通用视频编解码(VCC)方法之类的各种不同视频编解码技术一起使用的示例编码器100。参照图1,在编码器100中,视频帧被划分成多个视频块以供处理。对于每个给定的视频块,基于帧间预测法或者帧内预测法形成预测。在帧间预测中,基于来自先前重建的帧的像素,通过运动估计和运动补偿形成一个或多个预测值。在帧内预测中,基于当前帧中的重建的像素形成预测值。通过模式决策,可以选取最佳预测值以预测当前块。

表示当前视频块与其预测值之差的预测残差被发送至变换电路系统102。如本文中使用的术语“电路系统”包括硬件和操作该硬件的软件。变换电路系统102对残差块应用变换,诸如离散余弦变换(DCT)或者概念上类似的变换,产生包括变换系数值的视频块。代替DCT,可以使用小波变换、整数变换、子带变换、离散正弦变换(DST)或者其他类型的变换。变换电路系统102对残差块应用该变换,产生变换系数块。该变换可以将残差信息从像素域转换到诸如频域之类的变换域。

所得到的变换系数然后从变换电路系统102被发送至用于熵减少的量化电路系统104。量化电路系统104对变换系数进行量化以进一步降低比特率。该量化过程可以降低与系数中的一些或全部相关联的位深度。量化的程度可以通过调节量化参数进行修改。量化的系数然后被馈送至熵编解码电路系统106以生成压缩的视频比特流。熵编解码电路系统106对量化的变换系数进行熵编解码。例如,熵编解码电路系统106可以执行上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率区间划分熵(PIPE)编解码或者另一种熵编解码技术。在基于上下文的熵编解码的情况下,上下文可以基于相邻块。在熵编解码电路系统106的熵编解码之后,编码的比特流可以被传输至另一个设备(例如视频解码器),或者被存档以便以后传输或取回。如图1所示,诸如视频块划分信息、运动矢量、参考图片索引和帧内预测模式之类的、来自帧间预测电路系统和/或帧内预测电路系统112的预测相关信息110也通过熵编解码电路系统106馈送并且保存到压缩的视频比特流114中。

在编码器100中,也需要解码器相关电路系统以便为了预测的目的而重建像素。首先,通过逆量化电路系统116和逆变换电路系统118重建预测残差。该重建的预测残差与块预测值120组合以生成用于当前视频块的未滤波的重建像素。逆量化块116和逆变换电路系统118分别应用逆量化和逆变换,以便在像素域重建残差块。在某些实施例中,求和器将重建的残差块加到早先由运动补偿电路系统122或者帧内预测电路系统112产生的经过运动补偿的预测块,以产生重建的视频块以便存储在参考图片存储器111中。重建的视频块可以由运动估计电路系统124和运动补偿电路系统122用作参考块,以便在后续的视频帧中对块进行帧间编解码。

为了改进编解码效率和视觉质量,使用了环路内滤波器115。例如,去块滤波器在AVC和HEVC以及VVC的当前版本中可用。在HEVC中,定义了额外的称为SAO(样本自适应偏移)的环路内滤波器以进一步改进编解码效率。在VVC标准的现今版本中,称为ALF(自适应环路滤波器)的又一种环路内滤波器正就纳入最终标准中而被积极地调研。这些环路内滤波器操作是可选的。执行这些操作有助于改进编解码效率和视觉质量。作为编码器100作出的决定,也可以关闭这些操作以便节省计算复杂度。应当指出,帧内预测通常基于未滤波的重建像素,而帧间预测基于经滤波的重建像素,如果这些滤波器选项被编码器100打开的话。

图2示出了依照示例实施例的示例解码器200,其适合与诸如通用视频编解码(VCC)方法之类的各种不同视频编解码技术一起使用。在示例实施例中,解码器200类似于驻留在图1的编码器100中的重建相关部分。参照图2,在解码器200中,首先通过熵解码电路系统202对传入的视频比特流201解码以便导出量化的系数水平和预测相关信息。接着,通过逆量化电路系统204和逆变换电路系统206处理量化的系数水平以获得重建的预测残差。逆量化电路系统204对比特流中提供的且由熵解码电路系统202解码的量化变换系数进行逆量化,即去量化。该逆量化过程可以包括使用由解码器200为视频条带中的每个视频块计算的量化参数QPy以确定量化程度,以及类似确定应当被应用的逆量化程度。逆变换电路系统206对变换系数应用逆变换,例如逆DCT、逆整数变换或者概念上相似的逆变换过程,以便产生像素域中的残差块。

可以在帧内/帧间模式选择器电路系统208中实现的块预测值机构包括帧内预测电路系统210和/或运动补偿电路系统212,帧内预测电路系统210被配置为执行帧内预测过程,运动补偿电路系统212被配置为基于解码的预测信息执行运动补偿过程。未滤波的重建像素集合通过以下方式获得:使用求和器214对来自逆变换电路系统206的重建的预测残差以及由块预测值机构生成的预测输出求和。在环路内滤波器216打开的情形下,对这些重建的像素执行滤波操作以便导出最终的重建视频以供输出。

当视频条带被编解码为帧内编解码的(I)条带时,帧内预测电路系统210可以基于来自当前帧或图片的先前解码的块的数据和用信号发送的帧内预测模式,生成用于当前视频条带的视频块的预测数据。当视频帧被编解码为帧间编解码的(即B、P或GPB)条带时,运动补偿电路系统212基于接收自熵解码电路系统202的运动矢量和其他语法元素,产生用于当前视频条带的视频块的预测块。这些预测块可以从参考图片列表之一内的参考图片之一产生。解码器200可以使用默认构建技术基于存储在参考图片存储器中的参考图片构建参考帧列表,例如列表0和列表1。

运动补偿电路系统212通过解析运动矢量和其他语法元素确定用于当前视频条带的视频块的预测信息,并且使用该预测信息产生用于正被解码的当前视频块的预测块。例如,运动补偿电路系统212使用接收的语法元素中的一些确定用来对视频条带的视频块进行编解码的预测模式(例如帧内预测或帧间预测),帧间预测条带类型(例如B条带、P条带或GPB条带),用于该条带的参考图片列表中的一个或多个参考图片列表的构建信息,用于该条带的每个帧间编码的视频块的运动矢量,用于该条带的每个帧间编码的视频块的帧间预测状态,以及对当前视频条带中的视频块进行解码的其他信息。

运动补偿电路系统212也可以基于用于亚像素精度的插值滤波器执行插值。运动补偿电路系统212可以使用如编码器100在视频块的编码期间所使用的插值滤波器,来计算用于参考块的亚整数像素的插入的值。在示例实施例中,运动补偿电路系统212从接收的语法元素确定编码器100使用的插值滤波器,并且使用这些插值滤波器产生预测块。运动补偿电路系统212可以被配置为(单独地或者以任意组合地)执行本公开中描述的任何或者全部方法。

再次参照图1,可以执行空间预测和/或时间预测。空间预测(或者“帧内预测”)使用来自相同视频图片或条带中的已经编解码的相邻块的样本(称为参考样本)的像素来预测当前视频块。空间预测降低了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或者“经过运动补偿的预测”)使用来自已经编解码的视频图片的重建的像素预测当前视频块。时间预测降低了视频信号中固有的时间冗余。用于给定CU的时间预测信号通常通过一个或多个运动矢量(MV)用信号通知,运动矢量指示当前CU与当前CU的时间参考之间的运动的量和方向。再者,如果支持多个参考图片,那么附加地发送一个参考图片索引,其用来标识时间预测信号来自参考图片库中的哪个参考图片。在空间和/或时间预测之后,编码器100中的帧内/帧间模式决策块121例如基于率失真优化方法选取最佳的预测模式。接着,从当前视频块中减去预测块,并且使用变换和量化对预测残差去相关。量化的残差系数经逆量化和逆变换以形成重建的残差,重建的残差接着被加回到预测块以形成CU的重建的信号。在将重建的CU置于参考图片缓冲器117中并用于对未来的视频块编解码之前,可以使用诸如例如样本自适应偏移(SAO)和自适应环路内滤波器(ALF)之类的去块滤波器对重建的CU应用进一步的环路内滤波。为了形成输出视频比特流,编解码模式(帧间或帧内)、预测模式信息、运动信息和量化的残差系数都被发送到熵编解码电路系统106,以被进一步压缩和打包以形成比特流。

图3A-图3E示出了五种示例分割类型,即四叉划分(图3A)、水平二叉划分(图3B)、垂直二叉划分(图3C)、水平三叉划分(图3D)和垂直三叉划分(图3E)。

总体上,VVC中应用的基本帧内预测方案保持与HEVC的相同,只是若干模块被进一步扩展和/或改进,例如,帧内子划分(ISP)编解码模式、具有广角帧内方向的扩展的帧内预测、依赖于位置的帧内预测组合(PDPC)以及4抽头帧内插值。图7示出了用于一个编解码块的PDPC的相邻重建样本的位置。如本文所描述的示例方法促进了VVC标准中的ISP设计的改进。下面是VVC中包括的且与本文描述的示例方法密切相关的若干编解码工具(例如,帧内预测和变换编解码中的工具)。

具有广角帧内方向的帧内预测模式

图4图示出如VCC标准中所定义的帧内模式。和HEVC一样,VVC使用与当前CU相邻(即在当前CU上方或者在当前CU左边)的先前解码的样本集合预测该CU的样本。然而,为了捕捉自然视频中存在的更精细的边缘方向(尤其是对于高分辨率,例如4K的视频内容而言),角度帧内模式的数量从HEVC中的33个角度帧内模式扩展到VVC中的93个角度帧内模式。除了角度方向之外,在VVC标准中也应用了HEVC的相同的平面模式(其假定具有从边界导出的水平和垂直斜率的逐渐变化的表面)和DC模式(其假定平坦表面)。

类似于HEVC中的帧内预测,VVC中的所有帧内模式(即平面、DC和角度方向)利用预测的块上方和左边的相邻重建样本集合作为用于帧内预测的参考。然而,与只有重建样本的最近行/列(即图5中的第0行)用作参考的HEVC不同的是,在VVC中引入了多参考行(MRL),其中两个附加的行/列(即图5中的第1行和第3行)用于帧内预测。选择的参考行/列的索引用信号从编码器100被发送至解码器200。当选择非最近的行/列时,平面模式和DC模式被排除在可以用来预测当前块的帧内模式集合之外。

图5图示出VCC中用于帧内预测的多个参考行。与只有重建样本的最近行或列(即图5中的第0行)用作参考的HEVC不同的是,在VVC中引入了多参考行,其中两个附加的行或列(即图5中的第1行和第3行)用于帧内预测。选择的参考行或列的索引用信号从编码器100被发送至解码器200。当选择非最近的行或列时,平面模式和DC模式被排除在可以用来预测当前块的帧内模式集合之外。

图6A-图6C图示出VCC中用来导出一个帧内块的预测样本的参考样本的位置。如图6A-图6C所示,因为应用了四叉/二叉/三叉树划分结构,所以除了方形编解码块之外,对于VVC的帧内预测而言也存在矩形编解码块。由于一个给定块的宽度和高度不相等,因而对于不同的块形状选择各种不同的角度方向集合,这可以称为广角帧内预测。更具体地,对于方形和矩形编解码块二者而言,除了平面模式和DC模式之外,如表1所示,对于每种块形状,也支持93个角度方向中的65个角度方向。这样的设计不仅高效地捕捉了视频中通常存在的方向结构(通过基于块形状自适应地选择角度方向),而且确保了对于每个编解码块启用总共67种帧内模式(即平面、DC和65个角度方向)。结果,在跨不同块尺寸提供一致设计的同时,实现了用信号发送帧内模式的良好效率。

表1示出了VCC中用于不同块形状的帧内预测的所选择的角度方向。

表1

VCC中用于不同块形状的帧内预测的所选择的角度方向

上下文自适应二进制算术编解码(CABAC)

上下文自适应二进制算术编解码(CABAC)是一种用在H.264/MPEG-4 AVC和高效视频编解码(HEVC)标准以及VVC中的熵编码形式。CABAC基于算术编解码,具有一些改进和变化以便使CABAC适应视频编码标准的需要。例如,CABAC编码二进制符号,这保持复杂度为低并且允许对任意符号的更频繁使用的位进行概率建模。概率模型是基于局部上下文自适应地选择的,允许对概率更好地建模,因为编解码模式通常在局部良好地相关。CABAC也通过使用量化的概率范围和概率状态而使用无乘法范围划分。

CABAC具有用于不同上下文的多个概率模式。它首先将所有非二进制符号转换成二进制。接着,对于每个二元位(或者称为位),编解码器选择使用哪个概率模型,然后使用来自附近元素的信息对概率估计进行优化。最终,应用算术编解码来压缩数据。

上下文建模提供了编解码符号的条件概率的估计。利用适当的上下文模型,通过依照要编码的当前符号的邻域中的已经编解码的符号在不同概率模型之间切换,可以利用给定的符号间冗余。

对数据符号编解码涉及以下阶段:

二值化:CABAC使用二进制算术编解码,其意味着只有二进制决策(1或0)被编码。非二进制值的符号(例如变换系数或运动矢量)在算术编解码之前被“二值化”或者转换成二进制代码。这个过程类似于将数据符号转换成可变长度代码的过程,但是二进制代码在传输之前被(算术编解码器)进一步编码;

针对二值化符号的每个二元位(或者“位”)重复各阶段;

上下文模型选择:“上下文模型”是一种用于二值化符号的一个或多个二元位的概率模型。该模型可以根据最近编解码的数据符号的统计信息从可用模型选择中选取。上下文模型存储每个二元位为“1”或“0”的概率;

算术编码:算术编解码器依照选择的概率模型对每个二元位编码。注意,对于每个二元位只有两个子范围(对应于“0”和“1”);以及

概率更新:基于实际编解码的值更新选择的上下文模型(例如,如果二元位值为“1”,则增加“1”的频率计数)。

帧内子划分编解码模式

帧内模式可以仅利用与一个编解码块相邻的重建样本生成该块的帧内预测样本。基于这样的方法,预测的样本与参考样本之间的空间相关性大致和预测的样本与参考样本之间的距离成比例。因此,内部部分的样本(尤其是位于块的右下角的样本)可能具有比靠近块边界的样本更差的预测质量。为了进一步提高帧内预测效率,很久以前就提出了并且在HEVC标准的开发时段期间充分地研究了短距离帧内预测(SDIP)。该方法将一个帧内编解码块水平地或者垂直地分成多个子块以用于预测。通常,将方形块分成四个子块。例如,可以将8x8块分成四个2x8子块或者四个8x2子块。这样的基于子块的帧内预测的一个示例称为基于行的预测,其中将块分成1-D行/列以用于预测。例如,可以将一个W × H(宽度×高度)块拆分成H个尺寸为W × 1的子块或者拆分成W个尺寸为1 × H的子块以用于帧内预测。所得到的行/列中的每一个都以与正常二维(2-D)块相同的方式(如图1所示)进行编解码,即,通过可用帧内模式对它进行预测,并且预测误差基于变换和量化被去相关且被发送至解码器200以用于重建。因此,一个子块(例如,行/列)中的重建样本可以用作参考来预测下一个子块中的样本。重复上面的过程,直到当前块内的所有子块都被预测和编解码。此外,为了降低信令开销,一个编解码块内的所有子块都共享相同的帧内模式。

在SDIP的情况下,不同的子块划分可以提供不同的编解码效率。通常,基于行的预测提供最佳的编解码效率,因为它在不同的划分中提供“最短的预测距离”。另一方面,针对编解码器硬件实现,它也具有最差的编码/解码吞吐量问题。例如,考虑具有4 × 4子块的块对比具有4 × 1或1 × 4子块的相同块,后一情况仅是前一情况的吞吐量的四分之一。在HEVC中,用于亮度的最小帧内预测块尺寸为4 × 4。

一种称为子划分预测(ISP)的视频编解码工具被引入到VVC中。从概念上讲,ISP非常类似于SDIP。更具体地,取决于块尺寸,ISP在水平方向或者垂直方向上将当前编解码块分成2或4个子块,并且每个子块包含至少16个样本。图8A-图8C图示出针对不同编解码块尺寸的可能的划分情况。而且,以下主要方面也包括在当前ISP设计中以便处理它与VVC中的其他编解码工具的交互:

与广角帧内方向的交互:ISP与广角帧内方向结合。在一种示例设计中,用来确定是应当应用正常帧内方向还是其对应的广角帧内方向的块尺寸(即宽/高比)是原始的编解码块,即子块划分之前的块;

与多个参考行的交互:ISP不能与多个参考行联合启用。更具体地,在当前VVC信令设计中,ISP启用/禁用标志在MRL索引之后用信号发送。当一个帧内块具有一个非零MRL索引(即,指代非最近相邻样本)时,ISP启用/禁用标志不用信号发送,而是推断为0,即在这种情况下,对于编解码块自动禁用ISP;

与最可能模式的交互:类似于正常帧内模式,用于一个ISP块的帧内模式通过最可能模式(MPM)机制用信号发送。然而,与正常帧内模式相比较,对用于ISP的MPM方法做出以下修改:(1)每个ISP块仅启用包括在MPM列表中的帧内模式,并且禁用不在MPM列表中的所有其他帧内模式;(2)对于每个ISP块,MPM列表排除DC模式并且针对ISP水平划分和针对ISP垂直划分,分别优先考虑水平帧内模式和垂直模式;

至少一个非零编解码的块标志(CBF):在VVC中,对于每个变换单元(TU)用信号发送CBF标志以便指定变换块包含一个或多个不等于0的变换系数水平。给定使用ISP的某个块,解码器将假定子划分中的至少一个具有非零CBF。出于这个原因,如果n是子划分的数量并且前n-1个子划分已经产生了零CBF,那么第n个子划分的CBF将被推断为1。因此,没有必要对它进行传输和解码;以及

与多变换选择(MTS)的交互:ISP与MTS排斥性地应用,也即,当一个编解码块使用ISP时,它的MTS标志不用信号发送,而是总是被推断为0,即禁用。然而,代替总是使用DCT-II变换的是,固定的核心变换集合(包括DST-VII和DCT-II)基于块尺寸隐式应用到ISP编解码的块。更具体地,假设W是一个ISP子划分的宽度并且H是一个ISP子划分的高度,则依照以下如表2中所描述的规则选择其水平变换和垂直变换。

表2

选择的用于ISP块的水平变换和垂直变换

用于帧间块的子块变换

对于CBF(cu_cbf)等于1的帧间预测的CU,可以用信号发送CU子块变换标志(cu_sbt_flag)以指示是解码整个残余块还是残余块的子部分,并且该编解码模式称为子块变换(SBT)。当SBT用于帧间CU时,从比特流中进一步解码SBT类型和SBT位置信息。

在SBT-H和SBT-V中对亮度变换块应用依赖于位置的变换(色度TB总是使用DCT-2)。SBT-H和SBT-V这两个位置与不同的核心变换关联。更具体地,图9中指定了对于每个SBT位置的水平变换和垂直变换。例如,对于SBT-V位置0的水平变换和垂直变换分别是DCT-8和DST-7。当残余TU的一边大于32时,将对应的变换设为DCT-2。因此,子块变换共同指定了残余块的TU分片(tiling)、CBF以及水平变换和垂直变换,这对于块的主要残差处于该块的一边的情况而言可以被认为是一种语法捷径。

VVC中用于变换块的CBF编解码

在VVC中,对于每个变换块(例如,亮度变换块或者色度变换块)用信号发送编解码的块标志(CBF),以指示在该变换块中是否存在系数。CBF标志也可以用于被编解码为变换跳过模式的块。对于变换跳过编解码的块,CBF标志用来指示块是否包含非零残差。更具体地,等于1的用于亮度变换块的CBF(tu_cbf_luma)指定该亮度变换块包含一个或多个不等于0的变换系数水平。要指出的是,在当前CU中不存在tu_cbf_luma时,它的值如下推断:如果帧内预测子划分分割类型(IntraSubPartitionSplitType)等于ISP_NO_SPLIT(表示它为非ISP模式),那么推断tu_cbf_luma等于0;否则,推断tu_cbf_luma等于1。

等于1的用于Cb色度(Cb)变换块的CBF(tu_cbf_cb)指定该Cb变换块包含一个或多个不等于0的变换系数水平。在当前CU中不存在tu_cbf_cb时,将它的值推断为等于0。

等于1的用于Cr色度(Cr)变换块的CBF(tu_cbf_cr)指定该Cr变换块包含一个或多个不等于0的变换系数水平。在当前CU中不存在tu_cbf_cr时,将它的值推断为等于0。

用于语法元素tu_cbf_luma的ctxInc的导出过程

存在四个可以用来对亮度变换单元的CBF(tu_cbf_luma)进行编解码的CABAC上下文。下文中说明了确定上下文索引(ctxInc)的过程。变换块深度(trDepth)变量指定当前变换块是否小于当前CU。

如果IntraSubPartitionSplitType等于ISP_NO_SPLIT或者当前块不是亮度块,则以下适用:

ctxInc = (trDepth = = 0) 1 : 0

否则(IntraSubPartitionSplitType不等于ISP_NO_SPLIT并且当前变换块是亮度块),以下适用:

如下导出前一个亮度变换单元的CBF(prevTuCbfY)变量:

如果当前变换单元是要在编解码单元中解析的第一个变换单元,则设置prevTuCbfY等于0;否则,设置prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的tu_cbf_luma的值。

如下导出亮度变换单元的上下文索引(ctxInc)变量:

ctxInc = 2 + prevTuCbfY。

用于语法元素tu_cbf_cb的ctxInc的导出过程

存在两个可以用来对Cb色度(Cb)变换单元的CBF(tu_cbf_cb)进行编解码的CABAC上下文。确定tu_cbf_cb的上下文索引(ctxInc)的过程为:

ctxInc = (trDepth = = 0) 0 : 1。

用于语法元素tu_cbf_cr的ctxInc的导出过程

存在两个可以用来对Cr色度(Cr)变换单元的CBF(tu_cbf_cr)进行编解码的CABAC上下文。确定tu_cbf_cr的上下文索引(ctxInc)的过程为:

ctxInc =当前编解码单元中的对应Cb变换单元的tu_cbf_cb的值。

独立于trDepth的上下文模型

在VVC中,trDepth只能取值0和1。因为最大变换尺寸等于64x64并且最大CTU尺寸为128x128,所以由隐式分割产生的深度不能超过1。而且,对于ISP编解码的块或者当子块变换(SBT)启用时,将trDepth设置为1。在示例实施例中,针对CBF标志的CABAC编解码的上下文选择不取决于trDepth。在其他示例实施例中,只有一个上下文用于对用于Cb分量的CBF标志(例如tu_cbf_cb)进行CABAC编解码。

在另一个示例实施例中,只有两个上下文用于对用于亮度分量的CBF标志(例如tu_cbf_luma)进行CABAC编解码,并且选择取决于变量prevTuCbfY。上下文索引(ctxInc)如下导出:

如果IntraSubpartitionSplitType等于ISP_NO_SPLIT(即非ISP模式)或者当前块不是亮度块,则将ctxInc设置为1;否则(IntraSubpartitionSplitType不等于ISP_NO_SPLIT(即ISP模式)并且当前变换块是亮度块),以下适用:

如下导出变量prevTuCbfY:

如果当前变换单元是要在编解码单元中解析的第一个变换单元,则设置prevTuCbfY等于0;否则,设置prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的tu_cbf_luma的值。如下导出tu_cbf_luma的变量ctxInc:

ctxInc = prevTuCbfY。

在另一个示例中,只有两个上下文用于对用于亮度分量的CBF标志(例如tu_cbf_luma)进行CABAC编解码,并且选择取决于变量prevTuCbfY。变量prevTuCbfY如下导出:

如果IntraSubpartitionSplitType等于ISP_NO_SPLIT(即非ISP模式)或者当前块不是亮度块,则以下适用:

如下导出变量prevTuCbfY:

如果对应色度变换块的tu_cbf_cr和tu_cbf_cb两者均等于1,则

prevTuCbfY = 1,

否则(对应色度变换块的tu_cbf_cr或者tu_cbf_cb等于0),

prevTuCbfY = 0。

tu_cbf_luma的变量ctxInc如下导出:

ctxInc = prevTuCbfY

否则(IntraSubpartitionSplitType不等于ISP_NO_SPLIT(即ISP模式)并且当前变换块是亮度块),以下适用:

如下导出变量prevTuCbfY:

如果当前变换单元是要在编解码单元中解析的第一个变换单元,则设置prevTuCbfY等于0;否则,设置prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的tu_cbf_luma的值。

如下导出tu_cbf_luma的变量ctxInc:

ctxInc = prevTuCbfY。

独立于ISP模式的上下文模型

在VVC中,当在ISP模式下对当前块进行编解码并且如前一节所描述的上下文选择基于变量prevTuCbfY时,索引等于3和4的上下文模式用于对tu_cbf_luma进行编解码。然而,附加的上下文可能不是高效的,并且因此可以被移除。在另一个示例实施例中,只有两个上下文用于对用于亮度分量的CBF标志(即tu_cbf_luma)进行CABAC编解码,并且选择取决于变量trDepth。变量trDepth如下导出:

如果IntraSubpartitionSplitType不等于ISP_NO_SPLIT,则

trDepth = 1

否则,如果变换块的尺寸小于当前CU的尺寸(例如,使用了SBT或者四个64x64变换块隐式用于128x128 CU),

trDepth = 1,

否则,

trDepth = 0

tu_cbf_luma的变量ctxInc如下导出:

ctxInc = trDepth。

用于CBF编解码的取决于变换尺寸的上下文模型

依照另一个示例实施例,变换块的尺寸用来确定用于CBF标志的CABAC编解码的上下文模型。例如,在当前变换块大于或等于预定义尺寸时,选择一种上下文模型;否则,选择另一种上下文模型。

用于CBF编解码的取决于预测模式的上下文模型

依照另一个示例实施例,编解码的预测模式的信息用来确定用于CBF标志的CABAC编解码的上下文模型。例如,在当前变换块属于帧间编解码的CU时,选择一种上下文模型;否则,选择另一种上下文模型。在特定的示例实施例中,模式信息可以进一步包括例如仿射模式或者AMVP模式。

用于CBF编解码的显著简化的上下文模型设计

依照另一个示例实施例,亮度块的CBF标志全部使用一个CABAC上下文进行编解码。Cb块的CBF标志也全部使用另一个CABAC上下文进行编解码。Cr块的CBF标志使用两个上下文进行编解码,其上下文根据针对给定CU的Cb块的对应CBF的值加以选择。更具体地,下文说明了用于亮度变换块、Cb变换块和Cr变换块的CBF标志的CABAC编解码的上下文模型的选择。

用于语法元素tu_cbf_luma的ctxInc的导出过程

只有一个CABAC上下文被用于对tu_cbf_luma进行编解码,并且因此不需要用于上下文模型选择的过程。

用于语法元素tu_cbf_cb的ctxInc的导出过程

只有一个CABAC上下文被用于对tu_cbf_cb进行编解码,并且因此不需要用于上下文模型选择的过程。

用于语法元素tu_cbf_cr的ctxInc的导出过程

存在两个可以被用于对tu_cbf_cr进行编解码的CABAC上下文,并且确定tu_cbf_luma的上下文索引(ctxInc)的过程如下表示:

ctxInc =当前编解码单元中的对应Cb变换单元的tu_cbf_cb的值。

用于VVC的CBF编解码的可替换上下文模型设计

在VVC中,trDepth只能取值0和1;因此,有可能使用trDepth的值直接选择上下文而无需任何比较操作。如上面的“VVC中用于变换块的CBF编解码”一节中所解释的,VVC中CBF编解码的一些上下文选择需要比较操作。例如,在确定用于亮度CBF的上下文模型索引中,定义了以下操作:

ctxInc = (trDepth = = 0) 1 : 0。

对CBF上下文模型设计稍加修改,就可以避免这样的比较操作。更具体地,初始亮度CBF CABAC上下文模型索引0和索引1可以简单地与对应的初始化概率设置一起切换。

总之,在该示例实施例中,当只有一个CABAC上下文时,用于CBF标志的CABAC编解码的上下文模型的选择可能不是必要的。在存在两个CABAC上下文的情况下,仍然可以无需任何比较操作而做出选择,因为trDepth只能取值0和1,并且trDepth的值可以直接用来选择上下文。

依照另一个示例,基于以下条件和过程确定CABAC上下文选择。

用于语法元素tu_cbf_luma的ctxInc的导出过程

存在四个可以用于对tu_cbf_luma进行编解码的CABAC上下文。如果IntraSubpartitionSplitType等于ISP_NO_SPLIT或者当前块不是亮度块,则以下适用:

ctxInc = trDepth,

否则(即IntraSubpartitionSplitType不等于ISP_NO_SPLIT并且当前变换块是亮度块),以下适用:

如下导出变量prevTuCbfY:

如果当前变换单元是要在编解码单元中解析的第一个变换单元,则设置prevTuCbfY等于0;否则,设置prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的tu_cbf_luma的值。

如下导出tu_cbf_luma的变量ctxInc:

ctxInc = 2 + prevTuCbfY。

用于语法元素tu_cbf_cb的ctxInc的导出过程

存在两个可以用于对tu_cbf_cb进行编解码的CABAC上下文。确定tu_cbf_cb的上下文索引(ctxInc)的过程为:

ctxInc = trDepth。

用于语法元素tu_cbf_cr的ctxInc的导出过程

存在两个可以用来对tu_cbf_cr进行编解码的CABAC上下文。确定tu_cbf_cr的上下文索引(ctxInc)的过程为:

ctxInc =当前编解码单元中的对应Cb变换单元的tu_cbf_cb的值。

图10A-图10E为依照示例实施例的用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法300的流程图。图10A-图10F中示出的方法300关于图1的编码器100和/或图2的解码器200进行解释。然而,在其他示例中,其他设备可以被配置为执行图10A-图10E中示出的方法300。

在示例实施例中,第一上下文模型被利用302来对第一色度变换单元,例如Cr色度(Cr)变换单元的第一CBF(tu_cbf_cr)进行编解码。第二上下文模型被利用304来对第二色度变换单元,例如Cb色度(Cb)变换单元的第二CBF(tu_cbf_cb)进行编解码。两种上下文模式也被利用306来对亮度变换单元的第三CBF(tu_cbf_luma)进行编解码。例如,两个上下文可以用于tu_cbf_cb,并且这些上下文的选择通过BDPCM模式标志:intra_bdpcm_chroma_flag 1 : 0导出。三个上下文用于tu_cbf_cr,并且这些上下文的选择通过BDPCM模式标志和tu_cbf_cb的值:intra_bdpcm_chroma_flag 2 : tu_cbf_cb[ ][ ]导出。四个上下文用于tu_cbf_luma,并且这些上下文的选择通过BDPCM模式标志、ISP标志和变量prevTuCbfY导出。用于tu_cbf_luma的上下文索引ctxInc如下导出:

1)如果BdpcmFlag[ x0 ][ y0 ][ 0 ]等于1,则设置ctxInc等于1。

2)否则,如果IntraSubpartitionsSplitType等于ISP_NO_SPLIT,则设置ctxInc等于0。

3)否则(BdpcmFlag[ x0 ][ y0 ][ 0 ]等于0,并且IntraSubpartitionsSplitType不等于ISP_NO_SPLIT),以下适用:

- 如下导出变量prevTuCbfY:

- 如果当前变换单元是要在编解码单元中解析的第一个变换单元,则设置prevTuCbfY等于0。

- 否则,设置prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的tu_cbf_luma的值。

- 如下导出变量ctxInc:

- ctxInc = 2 + prevTuCbfY

进一步参照图10A,在特定的示例实施例中,上下文模型独立于变换深度(trDepth)。例如,利用306两种上下文模式对亮度变换单元的第三CBF进行编解码可以取决于用于前一个亮度变换单元的CBF的变量(prevTuCbfY)。在该特定实施例中,方法300进一步包括:导出308用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc)。当IntraSubpartitionSplitType等于ISP_NO_SPLIT(意味着它处于非ISP模式下)时,将该上下文索引设置310为两种上下文模式中的第一上下文模式的第一上下文索引。在某些示例实施例中,该上下文索引被设置310等于1。当IntraSubpartitionSplitType不等于ISP_NO_SPLIT时,利用306两种上下文模式对亮度变换单元的第三CBF进行编解码包括:导出312变量prevTuCbfY。在示例实施例中,导出312变量prevTuCbfY包括:在当前变换单元是要在当前编解码单元中解析的第一个变换单元时将prevTuCbfY设置314为等于0,或者将prevTuCbfY设置316为等于当前编解码单元中的前一个亮度变换单元的亮度变换单元的CBF(tu_cbf_luma)的值。在该特定实施例中,用于亮度变换单元的上下文索引(ctxInc)通过以下方式导出:将用于亮度变换单元的上下文索引(ctxInc)设置318为等于两种上下文模式中的第二上下文模式的第二上下文索引,其中第二上下文索引通过prevTuCbfY导出。在某些示例实施例中,将该上下文索引设置318为等于prevTuCbfY。

进一步参照图10B,在另一个示例实施例中,利用306两种上下文模式对亮度变换单元的第三CBF进行编解码取决于prevTuCbfY变量。在该特定实施例中,方法300包括:导出320 prevTuCbfY变量。当IntraSubpartitionSplitType等于ISP_NO_SPLIT,并且对应色度变换单元的Cr变换单元的第一CBF(tu_cbf_cr)和Cb变换单元的第二CBF(tu_cbf_cb)两者都等于1时,将prevTuCbfY变量设置322为等于1。可替换地,当对应色度变换单元的Cr变换单元的第一CBF(tu_cbf_cr)或者Cb变换单元的第二CBF(tu_cbf_cb)中的至少一个等于0时,将prevTuCbfY变量设置324为等于0。在该实施例中,导出用于亮度变换单元的上下文索引(ctxInc)包括:将用于亮度变换单元的上下文索引(ctxInc)设置326为等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过prevTuCbfY导出。

如图10C所示,在另一个示例实施例中,利用306两种上下文模式对亮度变换单元的第三CBF进行编解码取决于prevTuCbfY变量。在该特定实施例中,方法300包括:根据一个或多个条件导出330 prevTuCbfY变量,一个或多个条件包括IntraSubpartitionSplitType是否不等于ISP_NO_SPLIT。一个或多个条件可以包括331当前变换单元是否为要在当前编解码单元中解析的第一个变换单元。当IntraSubpartitionSplitType不等于ISP_NO_SPLIT时,并且在当前变换单元是要在当前编解码单元中解析的第一个变换单元时,将prevTuCbfY变量设置332为等于0。可替换地,将prevTuCbfY变量设置334为等于当前编解码单元中的前一个亮度变换单元的亮度变换单元的第三CBF(tu_cbf_luma)的值。在该特定实施例中,用于亮度变换单元的上下文索引(ctxInc)通过以下方式导出:将用于亮度变换单元的上下文索引(ctxInc)设置336为等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过prevTuCbfY导出。

进一步参照图10D,在另一个示例实施例中,上下文模型独立于ISP模式。在该特定实施例中,方法300包括:利用306两种上下文模式对亮度变换单元的第三CBF进行编解码取决于trDepth变量。方法300包括:根据一个或多个条件导出340 trDepth变量,一个或多个条件包括IntraSubpartitionSplitType是否等于ISP_NO_SPLIT。当IntraSubpartitionSplitType不等于ISP_NO_SPLIT时,将trDepth设置342为等于1。可替换地,当IntraSubpartitionSplitType等于ISP_NO_SPLIT时,根据341变换单元的尺寸是否小于当前编解码单元的尺寸来设置trDepth。例如,当变换单元的尺寸小于当前编解码单元的尺寸时,将trDepth设置342为等于1,或者将trDepth设置344为等于0。在该特定实施例中,用于亮度变换单元的上下文索引(ctxInc)通过以下方式导出:将用于亮度变换单元的上下文索引(ctxInc)设置346为等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过trDepth导出。

在另一个示例实施例中,上下文模型取决于用于CBF编解码的变换尺寸。在特定的实施例中,在当前变换单元等于或大于预定义尺寸时,从多种上下文模型中选择第一上下文模型,并且在当前变换单元小于预定义尺寸时,从多种上下文模型中选择另一种上下文模型。

在又一个示例实施例中,上下文模型取决于用于CBF编解码的预测模式。在特定的实施例中,在当前变换单元属于帧间编解码的编解码单元(CU)时,从多种上下文模型中选择第一上下文模型,并且在当前变换单元不属于帧间编解码的CU时,从多种上下文模型中选择另一种上下文模型。

在可替换的示例实施例中,如图10E所示,提供了一种可替换的上下文模型设计以用于VVC的CBF编解码。在该实施例中,利用306两种上下文模式对亮度变换单元的第三CBF进行编解码包括:响应于一个或多个条件导出350用于亮度变换单元(tu_cbf_luma)的第一上下文索引(ctxInc),一个或多个条件包括IntraSubpartitionSplitType是否等于ISP_NO_SPLIT。当IntraSubpartitionSplitType等于ISP_NO_SPLIT时,导出350用于亮度变换单元(tu_cbf_luma)的第一上下文索引(ctxInc)包括:将用于亮度变换单元的第一ctxInc设置352为等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过trDepth导出。

可替换地,当IntraSubpartitionSplitType不等于ISP_NO_SPLIT时,导出354prevTuCbfY变量,其中在当前变换单元是要在当前编解码单元中解析的第一个变换单元时,将prevTuCbfY变量设置356为等于0,或者将prevTuCbfY变量设置358为等于当前编解码单元中的前一个亮度变换单元的亮度变换单元的第三CBF(tu_cbf_luma)的值。在该特定实施例中,导出360用于亮度变换单元的第一ctxInc,其中用于亮度变换单元的第一ctxInc等于2+prevTuCbfY变量。接着,导出362用于Cb变换单元(tu_cbf_cb)的第二上下文索引(ctxInc)。用于Cb变换单元的第二ctxInc等于trDepth。接着,导出364用于Cr变换单元(tu_cbf_cr)的第三上下文索引(ctxInc),其中用于Cr变换单元的第三ctxInc等于当前编解码单元中的对应Cb变换单元的Cb变换单元的第二CBF(tu_cbf_cb)的值。

进一步参照图10F,在另一个示例实施例中,提供了一种显著简化的用于CBF编解码的上下文模型设计。在该实施例中,用于对编解码的块标志(CBF)进行编解码的方法400使用了上下文自适应二进制算术编解码(CABAC)。方法400包括:利用402第一上下文模型对亮度变换单元的第一CBF(tu_cbf_luma)进行编解码。利用404第二上下文模型对Cb变换单元的第二CBF(tu_cbf_cb)进行编解码。利用406两种上下文模式对Cr变换单元的第三CBF进行编解码,其中对于当前编解码单元(CU),基于Cb变换单元的第二CBF的值选择两种上下文模式。导出408用于亮度变换单元的上下文索引(ctxInc)。在该实施例中,将用于亮度变换单元的上下文索引(ctxInc)设置为等于当前编解码单元中的对应Cb变换单元的Cb变换单元的第二CBF(tu_cbf_cb)的值。

图10A-图10F中示出的示例方法表示依照示例实施例的用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的示例方法。

本公开的示例实施例可以根据以下条款进行描述:

条款1. 一种用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法,该方法包括:利用第一上下文模型对Cr色度(Cr)变换单元(tu_cbf_cr)的第一CBF进行编解码;利用第二上下文模型对Cb色度(Cb)变换单元(tu_cbf_cb)的第二CBF进行编解码;以及利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码。

条款2. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码取决于prevTuCbfY变量,该方法进一步包括导出用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc),其中当IntraSubPartitionSplitType等于ISP_NO_SPLIT时,将该上下文索引设置为两种上下文模式中的第一上下文模式的第一上下文索引。

条款3. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码进一步包括,当IntraSubPartitionSplitType不等于ISP_NO_SPLIT时,导出变量prevTuCbfY包括在当前变换单元是要在当前编解码单元中解析的第一个变换单元时将prevTuCbfY设置为等于0;或者将prevTuCbfY设置为等于当前编解码单元中的前一个亮度变换单元的亮度变换单元(tu_cbf_luma)的CBF的值。

条款4. 条款3的方法,进一步包括导出用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc)等于两种上下文模式中的第二上下文模式的第二上下文索引,其中第二上下文索引通过prevTuCbfY导出。

条款5. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码取决于prevTuCbfY变量,该方法进一步包括导出prevTuCbfY变量,其中当IntraSubPartitionSplitType等于ISP_NO_SPLIT并且对应色度变换单元的Cr变换单元(tu_cbf_cr)的第一CBF和Cb变换单元(tu_cbf_cb)的第二CBF都等于1时,prevTuCbfY变量等于1,或者当对应色度变换单元的Cr变换单元(tu_cbf_cr)的第一CBF或者Cb变换单元(tu_cbf_cb)的第二CBF中的至少一个等于0时, prevTuCbfY变量等于0。

条款6. 条款5的方法,进一步包括导出用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc)等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过prevTuCbfY导出。

条款7. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码取决于prevTuCbfY变量,该方法进一步包括导出prevTuCbfY变量,其中当IntraSubPartitionSplitType不等于ISP_NO_SPLIT时,并且在当前变换单元是要在当前编解码单元中解析的第一个变换单元时,prevTuCbfY变量等于0,或者prevTuCbfY变量等于当前编解码单元中的前一个亮度变换单元的亮度变换单元(tu_cbf_luma)的第三CBF的值。

条款8. 条款7的方法,进一步包括导出用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc)等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过prevTuCbfY导出。

条款9. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码取决于trDepth变量,该方法进一步包括:导出trDepth变量,其中当IntraSubPartitionSplitType不等于ISP_NO_SPLIT时,trDepth等于1,或者当变换单元的尺寸小于当前编解码单元的尺寸时,trDepth等于1,或者trDepth等于0;以及导出用于亮度变换单元(tu_cbf_luma)的上下文索引(ctxInc)等于两种上下文模式中的第一上下文模式的第一上下文索引,其中第一上下文索引通过trDepth导出。

条款10. 条款1的方法,其中在当前变换单元等于或大于预定义尺寸时,从多种上下文模型中选择第一上下文模型,并且在当前变换单元小于预定义尺寸时,从多种上下文模型中选择另一种上下文模型。

条款11. 条款1的方法,其中在当前变换单元属于帧间编解码的编解码单元(CU)时,从多种上下文模型中选择第一上下文模型,并且在当前变换单元不属于帧间编解码的CU时,从多种上下文模型中选择另一种上下文模型。

条款12. 条款1的方法,其中利用两种上下文模式对亮度变换单元(tu_cbf_luma)的第三CBF进行编解码包括:当IntraSubPartitionSplitType等于ISP_NO_SPLIT时,导出用于亮度变换单元(tu_cbf_luma)的第一上下文索引(ctxInc),其中用于亮度变换单元的第一ctxInc通过trDepth导出;或者当IntraSubPartitionSplitType不等于ISP_NO_SPLIT时,导出prevTuCbfY变量,其中在当前变换单元是要在当前编解码单元中解析的第一个变换单元时,prevTuCbfY变量等于0,或者prevTuCbfY等于当前编解码单元中的前一个亮度变换单元的亮度变换单元(tu_cbf_luma)的第三CBF的值,以及导出用于亮度变换单元的第一ctxInc,其中用于亮度变换单元的第一ctxInc等于2+prevTuCbfY变量。

条款13. 条款12的方法,进一步包括:导出用于Cb变换单元(tu_cbf_cb)的第二上下文索引(ctxInc),其中用于Cb变换单元的第二ctxInc等于trDepth;以及导出用于Cr变换单元(tu_cbf_cr)的第三上下文索引(ctxInc),其中用于Cr变换单元的第三ctxInc等于当前编解码单元中的对应Cb变换单元的Cb变换单元(tu_cbf_cb)的第二CBF的值。

条款14. 一种用于使用上下文自适应二进制算术编解码(CABAC)对编解码的块标志(CBF)进行编解码的方法,该方法包括:利用第一上下文模型对亮度变换单元(tu_cbf_luma)的第一CBF进行编解码;利用第二上下文模型对Cb变换单元(tu_cbf_cb)的第二CBF进行编解码;以及利用两种上下文模式对Cr变换单元的第三CBF进行编解码,其中对于当前编解码单元(CU)基于Cb变换单元的第二CBF的值选择两种上下文模式。

条款15. 条款14的方法,进一步包括:导出用于亮度变换单元的上下文索引(ctxInc)等于当前编解码单元中的对应Cb变换单元的Cb变换单元(tu_cbf_cb)的第二CBF的值。

条款16. 一种计算设备,包括:一个或多个处理器;耦合到一个或多个处理器的非暂时性存储装置;以及存储在非暂时性存储装置中的多个程序,程序在由一个或多个处理器执行时使得计算设备执行如条款1-15中的动作。

条款17. 一种非暂时性计算机可读存储介质,存储了供具有一个或多个处理器的计算设备执行的多个程序,其中多个程序在由一个或多个处理器执行时使得该计算设备执行如条款1-15中的动作。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或者其任意组合实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质之上或者通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质或者通信介质,计算机可读存储介质对应于诸如数据存储介质之类的有形介质,通信介质包括例如依照通信协议促进计算机程序从一个地方传送到另一个地方的任意介质。以此方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是任何可用的介质,其可以被一个或多个计算机或者一个或多个处理器访问以取回用于实现本申请中描述的实现方式的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。

进一步地,上面的方法可以使用包括一个或多个电路系统的装置实现,电路系统包括专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或者其他电子组件。装置可以结合其他硬件或软件组件使用这些电路系统以执行上面描述的方法。上面公开的每个模块、子模块、单元或者子单元都可以至少部分地使用一个或多个电路系统实现。

考虑到本文公开的本发明的说明书和实践,本发明的其他实施例对于本领域技术人员将是清楚明白的。本申请意图覆盖本发明的任何变动、使用或者适配,这些变动、使用或者适配遵循本发明的一般原理并且包括落入本领域已知的或者习惯性的做法内的对于本公开的这样的偏离。所意图的是,说明书和示例被认为仅仅是示例性的,本发明的真实范围和精神通过下面的权利要求书表明。

将领会到,本发明并不限于上面描述并在附图中图示出的确切示例,并且在不脱离其范围的情况下,可以做出各种不同的修改和变化。所意图的是,本发明的范围仅仅受所附权利要求书的限制。

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:在视频编译系统中使用残差信息的视频解码方法及其设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类