CN113316934B - 带有变换块级别约束的变换系数编码的方法和设备 - Google Patents

带有变换块级别约束的变换系数编码的方法和设备 Download PDF

Info

Publication number
CN113316934B
CN113316934B CN202080009138.1A CN202080009138A CN113316934B CN 113316934 B CN113316934 B CN 113316934B CN 202080009138 A CN202080009138 A CN 202080009138A CN 113316934 B CN113316934 B CN 113316934B
Authority
CN
China
Prior art keywords
context
encoded
block
sub
binary bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080009138.1A
Other languages
English (en)
Other versions
CN113316934A (zh
Inventor
庄子德
陈庆晔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN113316934A publication Critical patent/CN113316934A/zh
Application granted granted Critical
Publication of CN113316934B publication Critical patent/CN113316934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公开了用于在视频编解码系统中对变换系数进行编码或解码的方法和设备。根据该方法,确定清零之后的区域。基于清零之后的区域的大小来针对当前TB确定经上下文编码的二进制位的剩余数量。使用具有基于经上下文编码的二进制位的剩余数量的约束的基于上下文的编码来对当前TB进行编码或解码。根据另一方法,基于最后有效CG索引来针对当前TB确定经上下文编码的二进制位的剩余数量。

Description

带有变换块级别约束的变换系数编码的方法和设备
交叉引用
本发明要求于2019年1月25日提交的序号为62/796,611的美国临时专利申请、于2019年2月6日提交的序号为62/802,139的美国临时专利申请、于2019年3月4日提交的序号为62/813,208的美国临时专利申请、于2019年3月22日提交的序号为62/822,771的美国临时专利申请以及于2019年3月27日提交的序号为62/824,467的美国临时专利申请的优先权。这些美国临时专利申请的全部内容通过引用并入本文。
技术领域
本发明涉及视频编码器或解码器中的预测残差的变换编码。尤其是,本发明公开了使用具有旁路模式(bypass mode)的基于上下文的熵编码来降低变换系数的语法编码的复杂度的方法。
背景技术
高效视频编码(HEVC)(Rec.ITU-T H.265|ISO/IEC 23008-2version3:Highefficiency video coding,April,2015)标准是在ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)标准化组织(并且特别是与被称为视频编码联合协作小组(JCT-VC)的合作伙伴)的联合视频项目下开发的。在HEVC中,一个切片(slice)被划分成由编码树单元(CTU)表示的不交迭的方形块区域。经编码的图片可以由切片的集合表示,各个切片包括整数个CTU。按光栅扫描连续处理切片中的单个CTU。可以使用最多两个运动向量和参考索引利用帧内预测或帧间预测来对双预测(B)切片进行解码,以预测各个块的样本值。使用最多一个运动向量和参考索引利用帧内预测或帧间预测来对预测(P)切片进行解码,以预测各个块的样本值。仅使用帧内预测来对帧内(I)切片进行解码。
图1A例示了结合了环路处理的示例性自我调整帧间/帧内视频编解码系统。帧间/帧内预测块110使用针对各个编码块(例如,CU)自我调整的帧间或帧内预测来生成预测信号。帧间预测信号可以使用来自输入视频的当前块和来自帧缓冲器134的一个或更多个参考图片来得出运动估计。另一方面,帧内预测信号使用来自输入视频的当前块和来自重构块(REC)128的当前经重构的图片的相邻块来得出帧内预测信号。使用减法器116从原始信号中减去预测信号以生成残差信号。然后,残差信号由变换块(T)118和量化块(Q)120处理,以生成经量化变换的残差(即,经量化的系数),该经量化变换的残差由熵编码器122进一步处理以被包括在输出比特流中。在编码器侧,当使用帧间预测模式时,也必须在编码器端重构一个或多个参考图片。当使用帧内模式时,将使用经重构的相邻块。因此,需要重构帧内编码块,以供稍后被以帧内模式编码的后续块使用。因此,通过逆量化(IQ)124和逆变换(IT)126处理经变换和经量化的残差以恢复该残差。然后,通过REC 128将经重构的残差加回到预测信号,以重构视频资料。经重构的视频数据可以被存储在帧缓冲器134中并用于其它帧的预测。
如图1A所示,进入的视频数据在编解码系统中经过一系列处理。由于一系列处理,来自REC 128的经重构的视频数据可能受到各种损害。因此,在将经重构的视频数据存储在帧缓冲器134中之前,经常将去块滤波器(DF)130应用于经重构的视频数据,以改善视频质量。除了去块滤波器之外,可以使用诸如采样自我调整偏移(SAO)的其它环路滤波器(被称为非去块滤波器,NDF)132。图1A中的系统旨在例示典型的视频编码器的示例性结构。
图1B例示了对应的解码器结构,其中,已经在编码器中使用了大多数的块。然而,在解码器侧,使用熵解码器140代替熵编码器122。此外,用于解码器侧的帧间/帧内预测块150不同于在编码器侧的帧间/帧内预测块,因为在解码器侧执行了运动补偿。
可以使用递归四叉树(QT)结构将CTU划分成多个不交迭的编码单元(CU),以适应各种局部运动和纹理特征。为各个CU指定一个或更多个预测单元(PU)。预测单元与关联的CU语法一起用作用于用信号通知预测器信息的基本单元。采用指定的预测处理来预测PU内部的关联像素样本的值。可以使用残差四叉树(RQT)结构进一步划分CU,以表示关联预测残差信号。RQT的叶节点与变换单元(TU)相对应。变换单元由大小为8×8、16×16或32×32的亮度样本的变换块(TB)或大小为4×4的亮度样本的四个变换块以及4:2:0颜色格式的图片的色度样本的两个对应变换块组成。将整数变换应用于变换块,并且将经量化的系数的级别值(level value)与其它边信息一起熵编码在比特流中。图2例示了块划分210及其对应的QT表示220的示例。实线指示CU边界,而虚线指示TU边界。
术语编码树块(CTB)、编码块(CB)、预测块(PB)和变换块(TB)被定义成指定分别与CTU、CU、PU和TU相关联的一个颜色分量的2D样本数组。CTU由一个亮度CTB、两个色度CTB和关联语法元素组成。类似的关系对于CU、PU和TU是有效的。树划分通常被同时应用于亮度和色度二者,但是当达到色度的某些最小大小时应用例外。
ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11的联合视频专家组(JVET)目前正处在建立下一代视频编码标准的过程。已在通用视频编码(VVC)工作草案(WD)2(B.Brossey等人的“Versatile Video Coding(Draft 2),”Joint Video Expert Team(JVET)of ITU-TVCEG(Q6/16)and ISO/IEC MPEG(JTC 1/SC 29/WG 11),Doc.JVET-K1001,11th Meeting:Ljubljana,SI,10–18July 2018)中采用了一些很有希望的新编码工具。在VVC WD 2(即,JVET-K1001)中,可以通过使用二叉和三叉分割的嵌套多类型树的四叉树来将各个编码树单元(CTU)划分成一个或更多个较小大小的编码单元(CU)。所得的CU划分可以是正方形或矩形形状。
在HEVC(Rec.ITU-T H.265|ISO/IEC 23008-2version 3:High efficiency videocoding,April,2015)和如JVET-K1001(B.Bross,J.Chen,S.Liu,“Versatile Video Coding(Draft 2),”Joint Video Expert Team(JVET)of ITU-T VCEG(Q6/16)and ISO/IEC MPEG(JTC 1/SC 29/WG 11),Doc.JVET-K1001,11th Meeting:Ljubljana,SI,10–18July 2018)中指定的VCC WD 2中,编码块标志(CBF)用于用信号通知变换块中是否存在任何非零变换系数。当CBF等于0时,不对关联变换块进行进一步编码,并且推断当前变换块中的所有系数都等于0。否则,关联变换块包含至少一个非零变换系数。非零变换块被进一步分成不交迭子块。可以用信号通知语法元素coded_sub_block_flag以指示当前子块是否包含任何非零系数。当coded_sub_block_flag等于0时,不对关联变换子块进行进一步编码,并且推断当前变换子块中的所有系数都等于0。否则,关联变换块包含至少一个非零变换系数。使用多个子块编码回合(coding pass)来对关联子块中的变换系数级别的值进行熵编码。在各个编码回合中,根据预定的扫描顺序对单个变换系数进行一次访问。
在HEVC中,在第一子块编码回合中用信号通知语法元素sig_coeff_flag,以指示当前变换系数级别的绝对值是否大于0。对于sig_coeff_flag等于1的当前系数,在第二编码回合中进一步用信号通知语法元素coeff_abs_level_greater1_flag,以指示关联变换系数级别的绝对值是否大于1。对于coeff_abs_level_greater1_flag等于1的当前系数,在第三编码回合中进一步用信号通知语法元素coeff_abs_level_greater2_flag,以指示关联变换系数级别的绝对值大于2。分别在第四编码回合和第五子块编码回合中通过语法元素coeff_sign_flag和coeff_abs_level_remaining来进一步用信号通知记号(sign)信息和剩余级别值。
在如JVET-K1001中指定的VCC WD 2中,可以通过相关标量量化来量化变换系数。由具有四种状态的状态机来指定两个量化器中的一个量化器的选择。当前变换系数的状态由按扫描顺序的前一变换系数的状态和绝对级别值的奇偶来确定。在第一子块编码回合中用信号通知语法元素sig_coeff_flag、par_level_flag和rem_abs_gt1_flag。变换系数级别的从第一回合部分重构的绝对值由下式给出:
AbsLevelPass1=sig_coeff_flag+par_level_flag+2*rem_abs_gt1_flag。
用于熵编码的上下文选择sig_coeff_flag取决于当前系数的状态。因此在第一编码回合中用信号通知语法par_level_flag,以得出下一系数的状态。分别在第二、第三和第四编码回合中进一步用信号通知语法元素rem_abs_gt2_flag、abs_remainder和coeff_sign_flag。变换系数级别的完全重构的绝对值由下式给出:
AbsLevel=AbsLevelPass1+2*(rem_abs_gt2_flag+abs_remainder)。
变换系数级别由下式给出:
TransCoeffLevel=(2*AbsLevel-(QState>1?1:0))*(1-2*coeff_sign_flag),
其中,QState指示当前变换系数的状态。
为了实现高压缩效率,采用基于上下文的自适应二进制算术编码(CABAC)模式(或称为常规模式),以对HEVC和VCC WD 2中的语法元素的值进行熵编码。图3例示了CABAC处理的示例性框图。由于CABAC引擎中的算术编码器只能对二进制符号值进行编码,所以CABAC处理需要使用二值化器(binarizer)(310)来将语法元素的值转换成二进制字符串。转换处理通常称为二值化。在编码处理期间,根据针对不同上下文的经编码的符号逐步地建立概率模型。上下文建模器(320)用于建模目的。在普通基于上下文的编码期间,使用与二进制算术编码器相对应的常规编码引擎(330)。可以通过经编码的信息来确定用于对下一二进制符号进行编码的建模上下文的选择。符号也可以在没有上下文建模阶段的情况下被编码,并假设相等的概率分布(通常称为旁路模式)以降低复杂度。对于旁路的符号,可以使用旁路编码引擎(340)。如图3所示,开关(S1、S2和S3)用于在常规CABAC模式与旁路模式之间引导数据流。当选择常规CABAC模式时,开关被翻转到上触点。当选择旁路模式时,开关被翻转到如图3所示的下触点。
在HEVC中,变换子块中的语法元素coded_sub_block_flag、sig_coeff_flag、coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag的值以常规模式被编码。变换子块中的语法元素coeff_sign_flag和coeff_abs_level_remaining的值以旁路模式被编码。为了在最坏情况下限制子块中的用于对变换系数级别进行熵编码的常规二进制位(bin)(或者说,经上下文编码的bin)的总数,各个子块只能允许编码最多八个coeff_abs_level_greater1_flag值和一个coeff_abs_level_greater2_flag值。这样,各个子块中的常规bin的最大数量可以限制为26。
在称为VVC(通用视频编码)的新兴视频编码标准的发展中,各个TU中的常规二进制位的最大数量相对于HEVC增大。为了降低复杂度,开发了通过限制最大允许上下文二进制位来减少变换系数编码的方法和设备。
发明内容
公开了用于在视频编解码系统中对预测残差进行编码或解码的方法和设备。根据该方法,接收对应于与当前变换块(TB)相关联的变换系数的输入数据。基于之后的区域的大小来针对所述当前TB初步确定经上下文编码的二进制位的剩余数量的最大值。在编码器侧,使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述当前TB的变换系数进行编码,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,应用旁路模式编码而不应用常规的基于上下文的编码模式。然后经编码的当前TB被提供为输出。在解码器侧,使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述当前TB的变换系数进行解码,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,应用旁路模式编码而不应用常规的基于上下文的编码模式。然后经重构的当前TB被提供为输出。
在所述编码器侧,所述当前TB的在所述清零之后的区域之外的目标变换系数不被编码。在所述解码器侧,所述当前TB的在所述清零之后的区域之外的目标变换系数不被解析。
在一个实施方式中,在所述初步确定针对所述当前TB的经上下文编码的二进制位的所述剩余数量的所述最大值之前,将所述清零之后的区域的宽度或高度截取成预定值。例如,所述预定值可以对应于32。在另一示例中,如果针对所述当前TB允许MTS(多重变换集,multiple transform set),则所述预定值对应于16。在又一示例中,如果针对包含所述当前TB的当前块允许MTS和子块变换,则所述预定值对应于16。
在一个实施方式中,确定针对所述当前TB的经上下文编码的二进制位的所述剩余数量的所述最大值的依赖性包括所述清零之后的区域的面积。例如,所述确定针对所述当前TB的经上下文编码的二进制位的所述剩余数量的所述最大值的所述依赖性包括所述清零之后的区域的所述面积乘以等于1.75的因子。
还公开了另一种用于在视频编解码系统中对预测残差进行解码的方法。根据该方法,确定与当前TB相关联的变换系数的最后有效CG(系数组)索引。基于所述最后有效CG索引来针对所述当前TB确定经上下文编码的二进制位的剩余数量的最大值。使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对经编码的当前TB进行解码,以生成经重构的当前TB,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,所述基于上下文的编码被迫应用旁路模式而不应用常规的基于上下文的编码模式。在一个实施方式中,针对所述当前TB的经上下文编码的二进制位的所述剩余数量的所述最大值与所述最后有效CG索引乘以因子以及系数组的面积相对应,并且其中,所述因子等于1.75。
附图说明
图1A例示了结合了环路处理的示例性自我调整帧间/帧内视频编解码系统。
图1B例示了结合了环路处理的示例性自我调整帧间/帧内视频解码系统。
图2例示了使用四叉树结构将编码树单元(CTU)划分成编码单元(CU)的块划分的示例。
图3例示了CABAC处理的示例性框图。
图4例示了根据本发明实施方式的示例性解码系统的流程图,该示例性解码系统结合了使用具有对经上下文编码的二进制位的剩余数量的约束的基于上下文的编码的变换系数编码,其中,基于清零之后的区域的大小得出经上下文编码的二进制位的剩余数量的最大值。
图5例示了根据本发明实施方式的示例性解码系统的流程图,该示例性解码系统结合了使用具有对经上下文编码的二进制位的剩余数量的约束的基于上下文的编码的变换系数编码,其中,基于最后有效CG索引得出经上下文编码的二进制位的剩余数量的最大值。
具体实施方式
以下描述是执行本发明的最佳构想模式。进行该描述是出于例示本发明的一般原理的目的,而不应被认为是限制性意义。本发明的范围最好通过参照所附的权利要求书来确定。
本发明的一个方面涉及通过减少用于对变换块或子块进行熵编码的编码回合数量来降低复杂度。在一个示例中,可以在与rem_abs_gt1_flag相同的编码回合中对JVET-K1001中的语法元素rem_abs_gt2_flag进行编码。在另一示例中,经常在旁路模式下使用CABAC对与变换系数的记号和剩余值有关的信息进行熵编码,并且可以在一个编码回合中用信号通知该信息。在一个实施方式中,在一个编码回合中用信号通知在常规模式下使用CABAC熵编码的所有语法元素。在另一编码回合中用信号通知在旁路模式下使用CABAC熵编码的所有语法元素。
本发明的另一方面涉及对用于编码变换子块的CABAC常规二进制位的最大允许数量(或者说,经上下文编码的二进制位的最大允许数量)的约束。在最坏的情况下,控制每子块比特流解析吞吐速率非常重要,因为在常规模式下使用CABAC进行熵编码比在旁路模式下复杂度高得多。根据本发明的一个方面,视频编码器可以具有对一个子块或一个子块编码回合中的常规二进制位的最大允许数量的约束,但是对于所述子块或所述子块编码回合中存在的单个语法元素的常规二进制位的最大允许数量没有特定约束。视频编码器可以跟踪当前子块或当前编码回合中的消耗的常规二进制位的累积数量。当达到常规二进制位的指定的最大允许数量或常规二进制位的剩余允许数量小于阈值时,针对当前子块中的剩余编码回合,视频编码器可以使CABAC引擎切换至旁路模式。另选地,视频编码器可以在常规CABAC模式下终止编码回合。变换系数级别的剩余绝对值全部通过旁路模式下的子块编码回合而被编码。在另一实施方式中,视频编码器可以具有对一个子块或一个子块编码回合中的常规二进制位的最大允许数量的约束,并且还具有对所述子块或所述子块编码回合中存在的单个语法元素的常规二进制位的最大允许数量的特定约束。
在一个示例中,视频编码器可以对前导子块编码回合中的常规二进制位的最大允许数量具有约束,该前导子块编码回合用于对由JVET-K1001中指定的通过相关标量量化生成的变换系数级别进行熵编码。视频编码器可以跟踪当前前导编码回合中的已消耗的常规二进制位的累积数量,以使用JVET-K1001中的语法来用信号通知sig_coeff_flag、par_level_flag和rem_abs_gt1_flag或者使用表1中的语法用信号通知sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag和coeff_abs_level_rs1_gt1_flag。当常规二进制位的累积数量大于指定的阈值(或者说,常规二进制位的剩余数量小于指定的阈值)时,视频编码器可以使CABAC引擎切换至旁路模式,以对剩余回合进行编码。或者视频编码器可以终止当前的前导编码回合。变换系数级别的剩余绝对值全部通过旁路模式下的子块编码回合而被编码,以使用JVET-K1001中的语法来用信号通知abs_remainder或者使用表1中的语法来用信号通知coeff_abs_level_rs1_remainder。在表1中,如灰色背景所示,省略用信号通知coeff_abs_level_rs1_gt1_flag[n]。
表1:根据本发明的一个实施方式的经修改的残差编码语法
注意,在编码回合中,如果剩余的可用常规二进制位数量不大于该编码回合中的系数的所需常规二进制位数量,则视频编码器可以使CABAC引擎切换至旁路模式,以对剩余回合进行编码。另选地,视频编码器可以终止当前前导编码回合。变换系数级别的剩余绝对值全部在旁路模式下通过子块编码回合而被编码。例如,如果回合对sig_coeff_flag、par_level_flag、rem_abs_gt1_flag进行编码,则终止阈值为3。如果回合对sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag进行编码,则终止阈值为4。
在一个实施方式中,定义第二终止阈值。第二终止阈值小于如上所述的第一终止阈值。当剩余的可用常规二进制位数量小于第一终止阈值时,仍可以在经上下文编码的二进制位中对后续系数(例如,下一个系数)的某些语法进行编码。语法可以是有效标志、大于1的标志、奇偶位标志、大于2的标志或以上的任何组合。例如,语法可以是{有效标志}、{有效标志和大于1的标志}、{有效标志和奇偶位标志}或{有效标志,奇偶位标志和大于1的标志}。在解析了这些语法后,如果剩余的可用常规二进制位数量不大于第二终止阈值,则视频编码器可以使CABAC引擎切换至旁路模式,以对剩余回合进行编码。可以在同一概念中添加多余一个的终止阈值(例如,第三终止阈值)。
本发明的其它方面涉及适应对用于编码变换子块的常规二进制位的最大允许数量的约束。例如,可以使用一个或更多个高级语法集(诸如,序列参数集(SPS)、图片参数集(PPS)或切片头)在比特流中预定或明确地用信号通知指定的约束。指定的约束可以取决于配置文件和编码比特流中指示的级别。对于不同的颜色分量可以采用不同的约束。对于不同的变换子块大小,可以采用不同的约束。在一个实施方式中,根据JVET-K1001的视频编码器可以将针对2×2子块的常规二进制位的最大允许数量限制为等针对于4×4子块的常规二进制位的最大允许数量的四分之一。在一个实施方式中,视频编码器可以将针对4×4色度子块的常规二进制位的最大允许数量限制为等于针对4×4亮度子块的常规二进制位的最大允许数量的一半。可以在SPS中用信号通知针对4×4变换子块的指定约束。在一个示例中,可以在SPS中用信号通知针对4×4亮度子块、4×4色度子块、2×2色度子块的指定约束。在一个实施方式中,针对4×4色度子块的常规二进制位的最大允许数量等于或小于针对4×4亮度子块的常规二进制位的最大允许数量。在另一实施方式中,针对2×2色度子块的常规二进制位的最大允许数量等于或小于针对2×2色度子块的常规二进制位的最大允许数量。
在一个实施方式中,4×4亮度子块的最大常规二进制位可以是25、30或32;4×4色度子块的最大常规二进制位可以是25、16或15;并且2×2色度子块的最大常规二进制位可以是2、3、4、5、6、7或8。例如,{4×4亮度子块,4×4色度子块,2×2色度子块}的最大常规二进制位可以是{25,25,8}、{25,25,6}、{25,25,7}、{32,16,4}、{32,32,8}、{30,16,4}、{30,15,4}或{30,15,3}。
在另一实施方式中,还可以指定编码coeff_abs_level_rs1_gt2_flag的最大常规二进制位。例如,4×4亮度子块中的coeff_abs_level_rs1_gt2_flag的最大常规二进制位可以是2、3、4或5;4×4色度子块中的coeff_abs_level_rs1_gt2_flag的最大常规二进制位可以是0、1、2、3或4;并且2×2色度子块中的coeff_abs_level_rs1_gt2_flag的最大常规二进制位可以是0、1或2。例如,{4×4亮度子块,4×4亮度子块中的coeff_abs_level_rs1_gt2_flag,4×4色度子块,4×4色度子块中的coeff_abs_level_rs1_gt2_flag,2×2色度子块,2×2色度子块中的coeff_abs_level_rs1_gt2_flag}的最大常规二进制位可以是{25,4,25,4,8,2}、{25,4,25,4,6,2}、{25,4,25,4,6,1}、{25,3,25,3,6,2}、{25,3,25,3,6,1}、{25,2,25,2,6,1}、{25,2,25,2,6,0}、{25,1,25,1,6,1}、{25,1,25,1,6,0}、{25,3,25,3,7,2}、{32,4,16,2,4,1}、{32,4,16,2,4,0}、{32,4,16,4,4,1}、{32,4,16,4,4,0}、{32,3,16,2,4,1}、{32,3,16,2,4,0}、{30,4,16,2,4,1}、{30,4,16,2,4,0}、{30,3,16,2,4,1}、{30,3,16,2,4,0}、{30,4,15,2,4,1}、{30,4,15,2,4,0}、{30,3,15,2,4,1}、{30,3,15,2,4,0}、{30,4,15,2,3,1}、{30,4,15,2,3,0}、{30,3,15,2,3,1}、{30,3,15,2,3,0}、{32,4,32,4,8,1}。在一个实施方式中,2×2色度子块中大于2的标志的阈值可以是0,这意味着没有针对大于2的标志的编码回合。
在一个实施方式中,不同语法的约束值可以不同。对于一种语法,约束值在不同的颜色分量和/或不同的子块大小方面也可以不同。例如,在亮度4×4子块中,有效标志的约束值可以是8、10、12、14、15或16。大于1的标志的约束值可以是4、5、6、7、8,9、10、11或12。大于2的标志的约束值可以是0、1、2、3、4、5或6。奇偶位标志的约束值可以是4、5、6、7、8、9、10、11或12。在色度4×4子块中,有效标志的约束值可以是2、3、4、5、6、7、8、9或10。大于1的标志的约束值可以是4、5、6、7、8、9、10、11或12。大于2的标志的约束值可以是0、1、2、3、4、5或6。奇偶位标志的约束值可以是2、3、4、5、6、7、8、9或10。对于色度2×2子块,有效标志的约束值可以是0、1、2、3或4。大于1的标志的约束值可以是0、1、2、3或4。大于2的标志的约束值可以是0、1、2、3或4。奇偶位标志的约束值可以是0、1、2、3或4。在一个实施方式中,对于亮度4×4子块,有效标志、大于1的标志和大于2的标志的约束值可以是{16,10,2}或{16,8,1}。在色度4×4子块中,有效标志、大于1的标志和大于2的标志的约束值可以是{16,10,2}、{12,6,1}、{12,6,0}或{16,8,1}。在色度2×2子块中,有效标志、大于1的标志和大于2的标志的约束值可以是{4,2,1}、{4,2,0}、{3,2,0}、{3,2,1}或{3,1,0}。
视频编码器可以另选地具有对指定用于对变换单元或变换块的一些大小进行熵编码的常规二进制位的最大允许数量的约束。可以根据针对相关的变换单元或变换块指定的约束来得出对针对当前子块的常规二进制位的最大允许数量的约束。例如,在根据JVET-K1001的视频编码器中,可以分别根据对针对4×4变换块和2×2变换块的常规二进制位的最大允许数量的约束来得出对针对4×4变换子块和2×2变换子块的常规二进制位的最大允许数量的约束。
当rem_abs_gt2_flag被包括在前导编码回合中并且单独指定rem_abs_gt2_flag的常规二进制位数量约束值(根据sig_coeff_flag、par_level_flag、rem_abs_gt1_flag的常规二进制位数量约束值)并且用信号通知了rem_abs_gt2_flag时,如果在rem_abs_gt1_flag之前用信号通知奇偶位,则在系数的部分和(例如,(sig_flag+gt1_flat+par_flag+(gt2_flag<<1))或(sig_flag+par_flag+(gt1_flat<<1)+(gt2_flag<<1)))等于或大于5时对剩余系数级别进行编码;并且如果在rem_abs_gt1_flag之后用信号通知奇偶位,则在系数的该部分和大于或等于4时对剩余系数级别进行编码。否则,不对剩余系数级别进行编码。如果由于rem_abs_gt2_flag的常规二进制位的可用数量为零而未用信号通知rem_abs_gt2_flag,则如果在rem_abs_gt1_flag之前用信号通知奇偶位,则在系数的部分和等于或大于4时,对剩余系数级别进行编码,并且如果在rem_abs_gt1_flag之后用信号通知奇偶位,则在系数的部分和等于或大于2时,对剩余系数级别进行编码。否则,不对剩余系数级别进行编码。然而,在一个实施方式中,如果常规二进制位的可用数量小于阈值,则终止前导编码回合,如果未通过前导回合对系数进行编码,则直接利用Golomb-Rice码对级别进行编码。当前导编码回合被终止时,执行剩余级别编码回合。剩余级别编码回合从当前子块的最后位置开始到子块的第一位置。
在一个实施方式中,提出了使用一个编码回合来对子块中的系数的所有经上下文编码的二进制位进行编码。在该编码回合中,按顺序(诸如,有效标志→大于1的标志→大于2的标志,或有效标志→大于1的标志→奇偶位标志→大于2的标志,或有效标志→奇偶位标志→大于1的标志→大于2的标志)对一个系数的经上下文编码的二进制位进行编码。解析经上下文编码的二进制位后,通过使用旁路二进制位来解析剩余级别和记号位。
当rem_abs_gt2_flag被包括在前导编码回合中并且未单独指定rem_abs_gt2_flag的常规二进制位数量约束值时,如果在rem_abs_gt1_flag之前用信号通知奇偶位,则在系数的部分和(例如(sig_flag+gt1_flat+par_flag+(gt2_flag<<1))或(sig_flag+par_flag+(gt1_flat<<1)+(gt2_flag<<1)))等于或大于5时对剩余系数级别进行编码;并且如果在rem_abs_gt1_flag之后用信号通知奇偶位,则在系数的该部分和大于或等于4时对剩余系数级别进行编码。否则,不对剩余系数级别进行编码。然而,在一个实施方式中,如果常规二进制位的可用数量小于阈值,则终止前导编码回合,如果未通过前导回合对系数进行编码,则直接利用Golomb-Rice码对级别进行编码。当前导编码回合被终止时,执行剩余级别编码回合。剩余级别编码回合从当前子块的最后位置开始到子块的第一位置。
在另一实施方式中,针对变换块(TB)或变换单元(TU)指定常规二进制位的最大允许数量(或者说,经上下文编码的二进制位的最大允许数量)。可以根据4×4子块的阈值得出TU的阈值。注意,对于特定的颜色分量(即,亮度或色度),这里提到的TU实际上称为TB。因此,在任何适当时候,TU可以在以下公开中称为TB。例如,如果TU是亮度8×8块且亮度4×4块的阈值是32,则该8×8亮度TU的阈值是32×4=128。这里,TU与亮度块相关联,因此,这里的TU是指TB。对于不同的颜色分量或不同的TU大小,阈值可以不同。为了对TU的系数子块进行编码,可以在子块之间共享常规二进制位的允许数量值。例如,在第一子块中,允许值是128。当对第一子块进行编码时,当使用常规二进制位来对系数进行编码时,允许值会减小。剩余的允许值用于下一子块。在另一实施方式中,可以在对最后的有效系数位置/索引或最后的有效子块(即,最后的系数组)位置/索引进行编码/解码之后,得出所需编码子块的数量。所需编码子块的数量、最后有效系数位置/索引或最后有效子块位置/索引可以用于得出子块的常规二进制位的最大允许数量或TU的常规二进制位的最大允许数量。例如,对于16×16TU,它具有16个4×4子块。允许的常规二进制位总数可以是32×16=512。在对最后有效系数位置进行解码后,如果所需编码子块的数量是8,则各个子块可以使用64个常规二进制位。在另一示例中,根据最后有效子块位置/索引,TU的常规二进制位的最大允许数量可以被得出为所需编码子块的数量乘以阈值。阈值可以针对不同的颜色分量或不同的子块大小而不同。在另一实施方式中,针对变换子块或变换块指定了对常规二进制位的最大允许数量的约束,然而该约束数量可以取决于当前TU大小、TU类型、TU宽度、TU高度、当前TU中的子块总数、子块大小、子块宽度、子块高度、颜色分量、最后有效系数位置、最后有效子块位置或以上项的任何组合。
在一个示例中,约束数量可以取决于当前TU中的子块总数、颜色分量、子块大小以及最后有效子块位置。当确定最后有效子块位置时,可以确定要编码的子块数量。如果要编码的子块数量小于当前TU中的子块总数,则意味着在熵编码中跳过了一些子块,并且可以增大对每子块的常规二进制位的最大允许数量的约束。在一个示例中,子块的默认约束值可以乘以一个因子。该因子可以与(当前TU中的子块总数/(要编码的子块数量)或向下取整(floor)((当前TU中的子块总数)/(要编码的子块数量))相关,其中,向下取整(x)意味着查找小于或等于x的最大整数值。在另一示例中,可以指定一些预定的因子。该因子可以是{4,2,1.5,1.25,1}。
当前TU中的子块总数可以定义为A,要编码的子块数量可以定义为B。在一个示例中,如果B*4<=A,则因子可以是4。否则,如果B*2<=A,则因子可以是2。否则,如果B*3<=A*2,则因子可以是1.5。否则,如果B*5<=A*4,则因子可以是1.25。否则,因子可以是1。在另一示例中,如果B*4<=A,则因子可以是4。否则,如果B*3<=A,则因子可以是3。否则,如果B*2<=A,则因子可以是2。否则,如果B*3<=A*2,则因子可以是1.5。否则,如果B*5<=A*4,则因子可以是1.25。否则,因子可以是1。对于不同的语法类型或不同的子块大小或不同的颜色分量,因子可以不同。
在另一实施方式中,可以根据当前系数子块的索引/位置和/或最后有效系数子块的索引/位置来增大最大允许的经上下文编码的二进制位的阈值。例如,对于较接近DC的系数子块,应用最大允许的经上下文编码的二进制位的较高阈值。对于距DC较远的系数子块,应用最大允许的经上下文编码的二进制位的较低阈值。在一个示例中,DC子块的系数子块的索引为0,并且最后有效系数子块的索引为K,则将第一阈值用于(子块索引*2)大于K的子块。第二阈值用于(子块索引*2)等于K的子块。第三阈值用于子块索引*2小于K的子块。在一个示例中,第一阈值小于或等于第二阈值,第二阈值小于或等于第三阈值。第一阈值可以是(原始阈值*A),第二阈值可以是原始阈值,并且第三阈值可以是(原始阈值/A)或(2*原始阈值-A)。A可以是1.25、1.5和2。在另一示例中,第一阈值大于或等于第二阈值,第二阈值大于或等于第三阈值。
在JEVT-M0305中,提出了一种联合色度残差系数编码。用信号通知chroma_joint_coding_flag,以指示Cb和Cr是否被联合编码。如果Cb和Cr被联合编码,则仅对Cb系数残差进行编码。Cr系数残差被重构为(Cb残差*(-1))。
在一个实施方式中,色度联合编码被应用于未变换跳过TU。当应用变换跳过时,将chroma_joint_coding_flag推断为0。在另一实施方式中,仅针对特定TU大小应用色度联合编码。例如,当TU的大小/宽度/高度小于阈值时,不应用色度联合编码。在一个示例中,当TU的宽度或高度小于8或面积小于64或32时,不应用色度联合编码。在另一示例中,当TU的大小/宽度/高度大于阈值时,不应用色度联合编码。在另一实施方式中,当应用双树编码时,色度联合编码不应用于亮度编码树。在另一实施方式中,色度联合编码不应用于某些编码模式。例如,色度联合编码不适用于帧内块复制模式(或帧内模式或帧间模式)。在另一实施方式中,色度联合编码不应用于某个QP范围。在一个实施方式中,当应用色度联合编码时,可以扩大(例如,加倍或乘以N)色度块的最大允许的经上下文编码的二进制位的阈值。例如,对于4×4色度块,如果最大允许的经上下文编码的二进制位为16,并且应用了色度联合编码,则可以将最大允许的经上下文编码的二进制位扩展为32。
在另一实施方式中,对于残差子块中的前N个系数,可以使用经上下文编码的二进制位。例如,对于前N个系数,可以利用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。对于其余系数,只能使用旁路二进制位。在另一实施方式中,对于残差子块中的后N个系数,可以利用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。对于其余系数,只能使用旁路二进制位。对于不同的颜色分量或不同的子块大小,N可以不同。在一个实施方式中,针对各个子块对经上下文编码的二进制位的数量进行计数。还指定了阈值。如果所使用的经上下文编码的二进制位不超过阈值,则对于下一系数子块来说,N可以更大。可以针对各个TU而重设N。
在VVC中,公开了系数清零技术。清零技术将一区域中的系数设置为零。例如,与高频度系数相对应的区域可以被设置为零而不被编码。因此,当应用清零时,仅需要对清零之后的区域进行编码。
在另一实施方式中,对经上下文编码的二进制位的数量的约束可以被应用于TU/TB级别或CU级别而不是系数子块级别。经上下文编码的二进制位的剩余数量的最大值可以取决于TU或CU的大小/面积或颜色分量或最后有效系数位置/索引或最后有效子块位置/索引或清零之后的区域。例如,针对4×4亮度系数子块的经上下文编码的二进制位的剩余数量的最大值可以是30,并且针对4×4色度系数子块的值可以是16。因此,大小等于16×16的亮度TB的经上下文编码的二进制位的剩余数量的最大值可以等于480(30*(16*16)/(4*4))。大小等于16×16的色度TB的经上下文编码的二进制位的剩余数量的最大值可以等于256(16*(16*16)/(4*4))。在开始对TB、TU或CU进行编码/解码的处理时,经上下文编码的二进制位的剩余数量的变量被设置为等于经上下文编码的二进制位的剩余数量的最大值。在对经上下文编码的二进制位进行编码时,经上下文编码的二进制位的剩余数量的配额将减少1。当配额为0或小于第二阈值(例如1、2、3或4)时,以旁路二进制位(例如,使用剩余级别编码方法)对其余系数进行编码。可以使用简单的左移来得出用于TB或CU的经上下文编码的二进制位的数量。例如,对于亮度TB,经上下文编码的二进制位的剩余数量的最大值可以是K<<(log2TbWidth+log2TbHeight–4),其中K可以是28、30、32或正整数。
在另一示例中,经上下文编码的二进制位的剩余数量的最大值可以是TB_width*TB_height*M,其中,M可以是2、1.5、30/16、28/16、1.875、1.75或正值。对于色度TB,经上下文编码的二进制位的剩余数量的最大值可以是L<<(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、28、30、32或正整数。在另一示例中,经上下文编码的二进制位的剩余数量的最大值可以是TB_width*TB_height*N,其中,N可以是2、1.5、1、1.25、30/16、28/16、1.875、1.75或正数值。在另一示例中,对于亮度TB,经上下文编码的二进制位的剩余数量的最大值可以是K<<(log2TbWidth+log2TbHeight–2),或者可以等于((1<<(log2TbWidth+log2TbHeight))*K)>>2,其中,K可以是4、5、7、7.5、8、16、20、28、30、32或正整数或正数。对于色度TB,经上下文编码的二进制位的剩余数量的最大值可以是L<<(log2TbWidth+log2TbHeight–2),或者可以等于((1<<(log2TbWidth+log2TbHeight))*L)>>2,其中,L可以是4、5、7、7.5、8、16、20、28、30、32或正整数。
在一个示例中,TbWidth和/或TbHeight可以是系数清零之前或之后的TB的宽度或高度。例如,为了减少经上下文编码的二进制位的平均情况,清零之后的TB的面积用于得出经上下文编码的二进制位的剩余数量的最大值。对于64×N或N×64TB(例如,亮度TB),左上方32×32区域之外的系数被设置为零,并且未被编码或未被解析。应用清零时,TB的宽度和高度限制为32。经截取的TbWidth和TbHeight可以用于得出经上下文编码的二进制位约束的剩余数量的TU/TB/CU/PU级别的最大值。当TB的宽度或高度大于32时,清零之后的区域的宽度或高度将被截取为32。经截取的清零之后的区域的宽度或高度用于得出经上下文编码的二进制位的剩余数量的TB级别的最大值。在另一示例中,当应用多重变换集(multipletransform set)(MTS)时,左上方16×16区域之外的系数也被设置为零并且不被编码。当应用清零和MTS时,TB的宽度和高度最多限制为16。经截取的TbWidth和TbHeight可以用于得出经上下文编码的二进制位的剩余数量的TU/TB/CU/PU级别的最大值。在另一示例中,当启用了MTS和子块变换(SBT)并且将SBT应用于CU时,使用推断的MTS。选择DST7或DCT8变换进行垂直或水平变换。左上方16×16区域之外的系数也设置为零并且不被编码。当应用SBT和MTS时,TB的宽度和高度最多限制为16。经截取的TbWidth和TbHeight可以用于得出经上下文编码的二进制位的剩余数量的TU/TB/CU/PU级别的最大值。
在又一示例中,所需编码子块的数量、最后有效系数位置/索引或最后有效子块位置/索引可以用于得出TB的经上下文编码的二进制位的剩余数量的最大值。例如,经上下文编码的二进制位的剩余数量的最大值可以是所需编码子块的数量或最后有效子块索引加1再乘以第三阈值。对于不同的颜色分量或不同的子块大小,第三阈值可以不同。例如,对于(4×4子块的)亮度分量,第三阈值可以是28、30、32或正整数。对于(4×4子块的)色度分量,第三阈值可以是12、16、20、28、30、32或正整数。对于2×2子块的色度分量,第三阈值可以是4、5、6、7、8或正整数。在另一示例中,可以通过将所需编码子块的样本数量乘以第四阈值来得出TB的经上下文编码的二进制位的剩余数量的最大值。所需编码子块的样本数量可以是所需编码子块的数量或最后有效子块索引加1再乘以子块的样本数量。针对亮度分量,第四阈值可以是1.75(或1、1.25、1.5、2或正数)。针对色度分量,第四阈值可以是1.25(或1、1.5、1.75、2或正数)。
当对系数子块有效标志、有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码时,所使用的经上下文编码的二进制位的数量增加1(即,经上下文编码的二进制位的允许/剩余数量减少1)。也可以对子块有效组标志进行计数。在一个实施方式中,如果系数子块全为零(诸如,子块有效组标志等于0),则可以将所使用的经上下文编码的二进制位的数量减少第三阈值或减少子块大小乘以第三阈值。对于清零区域(即,没有系数的系数子块),可以将所使用的经上下文编码的二进制位的数量减少第三阈值或减少子块大小乘以第三阈值。如果经上下文编码的二进制位的允许/剩余数量小于阈值,则系数编码将切换至旁路二进制位模式。
在另一实施方式中,对经上下文编码的二进制位的数量的约束可以被应用于CU级别。对于CU,可以以与上述TU/TB级别阈值相同的方式来计算用于亮度分量和色度分量的经上下文编码的二进制位的剩余数量的最大值。对于CU级别约束,可以跨颜色分量共享可用的经上下文编码的二进制位。在一个示例中,计算经上下文编码的二进制位的剩余数量的CU级别最大值。具有不同颜色分量的所有TU可以共享经上下文编码的二进制位的该CU级别剩余数量。例如,如果亮度TU在色度TU之前被编码,则在对亮度TU进行编码之后,经上下文编码的二进制位的可用数量用于色度分量。在另一示例中,分别计算经上下文编码的二进制位的剩余数量的CU级别亮度最大值和经上下文编码的二进制位的剩余数量的CU级别色度最大值。如果亮度TU在色度分量之前被编码,则该亮度TU仅使用经上下文编码的二进制位的CU级别亮度剩余数量。如果没有使用所有用于亮度的经上下文编码的二进制位,则其余经上下文编码的二进制位可以用于色度分量。经上下文编码的二进制位的剩余数量的色度最大值可以通过加上来自亮度分量的剩余的允许的经上下文编码的二进制位来增加。在另一示例中,分别计算用于亮度、cb和cr分量的经上下文编码的二进制位的剩余数量的CU级别最大值。根据编码顺序,一个颜色分量中的剩余的允许的经上下文编码的二进制位可以用于后续颜色分量。在一个示例中,可以将剩余的允许的经上下文编码的二进制位全部添加到下一颜色分量。在另一示例中,可以将剩余的允许的经上下文编码的二进制位相等地或不同地添加到后续颜色分量。
所提出的方法也可以应用于推断的TU分割。例如,如果CU大小大于最大TU大小,则当前CU将被分成超过一个TU。可以计算经上下文编码的二进制位的剩余数量的CU级别最大值。在一个实施方式中,所有子TU共享经上下文编码的二进制位的CU级别剩余数量。在另一实施方式中,各个TU具有其经上下文编码的二进制位的剩余数量的最大值。在对子TU进行编码之后,如果存在剩余的允许的经上下文编码的二进制位,则该剩余的允许的经上下文编码的二进制位可以由后续子TU使用。可以增加后续子TU的允许的经上下文编码的二进制位的配额。
在另一实施方式中,对于各个TB或TU或CU,得出经上下文编码的二进制位的剩余数量的最大值(例如,maxNumCtxBin)。无论使用联合色度残差编码还是以上的任何组合,maxNumCtxBin都可以取决于CU/TU/TB的大小/宽度/高度、颜色分量、系数子块大小。例如,对于亮度TB,阈值可以是K<<(log2TbWidth+log2TbHeight–4),其中,K可以是28、30、32或正整数。对于色度TB,阈值可以是L<<(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、30、28、32或正整数。在另一示例中,对于亮度TB,经上下文编码的二进制位的剩余数量的最大值可以是K<<(log2TbWidth+log2TbHeight–2),其中,K可以是7、7.5、8、28、30、32、正整数或正数。对于色度TB,经上下文编码的二进制位的剩余数量的最大值可以是L<<(log2TbWidth+log2TbHeight–2),其中,L可以是4、8、20、16、28、32或正整数。当对系数子块进行编码时,记录经上下文编码的二进制位的使用数量。例如,当对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码时,所使用的经上下文编码的二进制位的数量增加1(或者说,经上下文编码的二进制位的剩余数量减少1)。也可以对子块有效组标志进行计数。
当经上下文编码的二进制位的数量的配额(或者说经上下文编码的二进制位的剩余数量)大于或等于阈值T时,子块中的每个系数可以使用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。无需使用旁路二进制位对整个系数进行编码。当经上下文编码的二进制位的数量的配额小于T时,在一个示例中,子块中的每个系数都使用旁路二进制位来对系数进行编码。在另一示例中,用信号通知一个标志或语法以指示是否可以将经上下文编码的二进制位用于子块。如果是,则子块中的每个系数可以使用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。否则,子块中的每个系数都使用旁路二进制位对系数进行编码。在一个实施方式中,如果标志或语法指示子块中的每个系数都使用旁路二进制位来对系数进行编码,则推断后续的子块使用旁路二进制位来对系数进行编码。
阈值T可以取决于颜色分量或/和子块大小或/和使用联合色度残差编码。例如,对于4×4子块,T可以是64;或者对于2×2子块,T可以是16。在另一示例中,对于4×4亮度子块,T可以是30或32,对于4×4色度子块,T可以是16,以及对于2×2色度子块,T可以是4。当应用联合色度残差编码时,色度阈值可以加倍。可以将所提出的约束应用于某些TU大小,诸如,TU面积大于32或64。对于其它大小TU,旁路二进制位用于对系数进行编码。在另一实施方式中,当经上下文编码的二进制位的数量的配额小于T时,仅N个系数可以使用经上下文编码的二进制位来对子块中的系数级别进行编码。N个系数可以是子块/TU中的从最后有效系数开始的后N个系数、子块/TU中的后N个系数或子块/TU中的前N个系数。对于其余系数,只能使用旁路二进制位(例如,通过直接使用exp-Golomb代码对级别进行编码)。可以从经上下文编码的二进制位的数量的配额(例如,经上下文编码的二进制位的数量的配额>>2或1)中得出N。
对于后续子块,仅旁路二进制位可以用于对系数级别进行编码。在一个实施方式中,所提出的方法可以应用于某种子块/CU/TU/TB(例如,用于面积/宽度/高度大于阈值(例如,面积大于16、32或64)的TU)。对于不满足条件的CU/TU/TB,应用原始编码方法或不应用上下文二进制位约束(例如,利用经上下文编码的二进制位来对所有语法进行编码)。在一个示例中,将编码器约束应用于这些不满足条件的CU/TU/TB。针对子块/CU/TU/TB得出maxNumCtxBin。比特流一致性要求是针对子块/CU/TU/TB,经上下文编码的二进制位的使用数量不能超过maxNumCtxBin。
在另一实施方式中,对于各个CU/TU,得出经上下文编码的二进制位的剩余数量的最大值(诸如,maxNumCtxBin)。maxNumCtxBin可以取决于CU/TU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码、最后有效系数位置/索引或以上的任何组合。根据最后有效子块的位置或索引和/或maxNumCtxBin和/或子块大小,可以得出用于对允许用于系数子块的系数级别进行编码的经上下文编码的二进制位的数量。对于这些系数子块,子块中的每个系数可以使用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。对于其余系数子块,子块中的每个系数都使用旁路二进制位对系数级别进行编码。可以使用经上下文编码的二进制位的系数子块的数量可以等于maxNumCtxBin>>3、maxNumCtxBin>>4、maxNumCtxBin>>5、maxNumCtxBin>>6或maxNumCtxBin>>K,其中,K可以取决于TU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码或以上的任何组合。
在另一实施方式中,代替可以使用经上下文编码的二进制位的系数子块的数量,而是得出可以使用经上下文编码的二进制位的系数的数量。仅N个系数可以使用经上下文编码的二进制位来对TU中的系数级别进行编码。N个系数可以是TU中的从最后有效系数开始的后N个系数、TU中的后N个系数或TU中的前N个系数。在一个实施方式中,还可以应用编码器约束。比特流一致性要求是TU、CU或PU中的经上下文编码的二进制位的使用数量应该小于或等于maxNumCtxBin。
在另一实施方式中,对于TU,可以用信号通知可以使用经上下文编码的二进制位来对系数级别进行编码的最后子块。一个或更多个语法(例如,位置x和y或子块索引)可以用于指示可以使用经上下文编码的二进制位来对系数级别进行编码的最后子块的位置。在该子块之前或之后,子块中的每个系数都可以使用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。在该子块之后或之前,子块中的每个系数都使用旁路二进制位对系数级别进行编码。语法可以取决于maxNumCtxBin、最后有效子块位置/索引、TU的大小/宽度/高度、颜色分量、子块大小、是否使用联合色度残差编码或以上的任何组合。
在另一实施方式中,对于4×4系数子块或4×4TU,仅N个系数可以使用经上下文编码的二进制位来对系数级别进行编码。N个系数可以是从最后有效系数开始的后N个系数、子块/TU中的后N个系数或子块/TU中的前N个系数。对于其余系数,其只能使用旁路二进制位(例如,通过直接使用exp-Golomb代码来对级别进行编码)。N可以取决于TU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码或以上的任何组合。对于4×4TU,N可以是8。
在另一实施方式中,除了TU级别阈值之外,还可以应用子块级别阈值。如果达到了子块级别阈值的配额,则将旁路模式用于子块。如果未达到TU级别配额,则可以将经上下文编码的二进制位用于下一子块。如果达到了TU级别配额,则只能使用旁路二进制位来对当前TU中的所有系数进行编码。针对各个子块重设子块级别阈值/配额。
在又一实施方式中,系数TU可以被分成一个或多个段。可以将不同的阈值/配额应用于不同的段。例如,系数TU可以被分成2或3段。对于高频度段,可以应用较高(或较小)的阈值。当达到配额时,该段只能使用旁路模式。可以使用上述分段方法。例如,DC子块的系数子块的索引是0,并且最后有效系数子块的索引是K,则第一段是针对子块索引*2大于K的子块。第二段是针对子块索引*2等于K的子块。第三段是针对子块索引*2小于K的子块。分段可以取决于TU中的位置或TU中的扫描顺序(例如,子块扫描顺序)。
在另一实施方式中,经上下文编码的二进制位约束的数量可以是编码器约束。对于各个TU,得出经上下文编码的二进制位的剩余数量的最大值(例如,maxNumCtxBin)。maxNumCtxBin可以取决于TU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码、最后有效系数位置/索引或最后有效子块位置/索引或以上的任何组合。例如,对于亮度TU,阈值可以是K<<(log2TbWidth+log2TbHeight–4),其中,K可以是28、30、32或正整数。在另一示例中,阈值可以是TU_width*TU_height*M,其中,M可以是2、1.5、30/16、28/16、1.875、1.75或正值。对于色度TU,阈值可以是L<<(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、30、32或正整数。在另一示例中,阈值可以是TU_width*TU_height*N,其中,N可以是2、1.5、1、1.25、30/16、28/16、1.875、1.75或正值。在另一示例中,对于亮度TU,阈值可以是K<<(log2TbWidth+log2TbHeight–2),其中,K可以是7.5、8、28、30、32或正整数或正数。对于色度TU,阈值可以是L<<(log2TbWidth+log2TbHeight–2),其中,L可以是4、8、16、20、28、32或正整数。
对于各个TU/CU,经上下文编码的二进制位的使用数量不能超过得出的maxNumCtxBin。在CU级别约束中,所有颜色分量共享一个经上下文编码的二进制位约束。比特流一致性要求是TU/CU/PU中的经上下文编码的二进制位的使用数量应该小于或等于maxNumCtxBin。在一个示例中,当对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码时,所使用的经上下文编码的二进制位的数量增加1。也可以对子块有效组标志进行计数。所提出的约束可以应用于某些TU/CU大小。例如,所提出的约束可以应用于大于32或64的TU面积。对于其它大小的TU,使用旁路二进制位来对系数进行编码。在另一实施方式中,对于其它大小的TU,TU中的每个系数可以使用经上下文编码的二进制位来对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码。还可以应用经上下文编码的二进制位约束的另一图块/图块组/CTU/CTU行/切片/图片/序列级别数量。对于各个图块/图块组/CTU/CTU行/切片/图片/序列,得出经上下文编码的二进制位的最大数量(例如,totalMaxNumCtxBin)。比特流一致性要求是图块/图块组/CTU/CTU行/切片/图片/序列中的经上下文编码的二进制位的使用数量应该小于或等于maxNumCtxBin。在一个实施方式中,当对系数进行编码时,记录经上下文编码的二进制位的使用数量。例如,当对有效标志、大于1的标志、奇偶位标志和/或大于2的标志进行编码时,所使用的经上下文编码的二进制位的数量增加1。当经上下文编码的二进制位的数量的配额小于阈值时,子块/TU/CU/PU/CTU/CTU行/图块/图块组/切片/图片/序列中的所有系数只能使用旁路二进制位来对系数级别进行编码。
在一个实施方式中,用信号通知指示当前子块/CU/TU/变换块/图块/图块组/CTU/CTU行/CTU组/切片/图片/序列/区域是否使用全部旁路二进制位编码的一个或更多个语法。如果语法指示使用了旁路模式,则利用旁路二进制位对当前子块/CU/TU/变换块/图块/图块组/CTU/CTU行/CTU组/切片/图片/序列/区域块中的所有系数进行编码。例如,可以使用Golomb-Rice码来对系数进行编码。如果语法指示可以使用经上下文编码的二进制位,则无需对已经使用的经上下文编码的二进制位的数量进行计数,并且无需在解码器或编码器中从上下文编码模式切换至旁路模式。例如,有效标志、大于1的标志、奇偶标志、大于2(或3)的标志都可以使用经上下文编码的二进制位。
在一个实施方式中,一种编码器约束可以被应用于上下文编码模式。针对子块/CU/TU/变换块/图块/图块组/CTU/CTU行/CTU组/切片/图片/序列/区域,可以得出maxNumCtxBin。如果将上下文编码模式用于该子块/CU/TU/变换块/图块/图块组/CTU/CTU行/CTU组/切片/图片/序列/区域,则比特流一致性要求是经上下文编码的二进制位的使用数量不能超过maxNumCtxBin。在编码器中,对于编码模式,如果已经使用的经上下文编码的二进制位的数量未超过maxNumCtxBin,则不应该选择该模式。在一个示例中,可以总是推断语法,或者可以在满足一些条件时推断语法。编码信息可以用作条件或用于得出语法值。该区域可以被定义为编码树划分中的编码节点,其中,对应面积大于或等于阈值。区域定义类似于共享合并列表(shared Merge list)中的量化参数组或根CU。例如,区域可以是具有大于或等于阈值的对应面积的叶编码节点,或者具有大于或等于阈值的对应面积的编码节点以及具有小于阈值的对应面积的子节点中的一个子节点。在另一示例中,区域可以是具有小于或等于阈值的对应面积的编码节点,并且区域的父节点具有大于阈值的对应面积。
在一个示例中,对于面积/宽度/高度小于阈值的CU/TU/TB,在不用信号通知语法的情况下,应用上下文编码模式或旁路模式。对于这些类CU/TU/TB,比特流一致性要求是已经使用的经上下文编码二进制位的数量不能超过maxNumCtxBin。在一个示例中,利用经上下文编码的二进制位来对语法进行编码。一个或更多个上下文可以用于该经上下文编码的二进制位。在一个实施方式中,所提出的方法可以与子块变换(SBT)一起应用。在SBT中,用信号通知一个或更多个语法,以指示是否已对CU/TU的所有系数或CU/TU的一半系数或CU/TU的四分之一系数进行了编码。当应用SBT时,可以增大经上下文编码的二进制位的剩余数量的最大值。例如,如果仅对CU/TU的一半系数进行了编码,则可以使所得出的经上下文编码的二进制位的剩余数量的最大值加倍。如果仅对CU/TU的四分之一系数进行了编码,则可以将所得出的经上下文编码的二进制位的剩余数量的最大值乘以4。在另一示例中,当应用了SBT时,从原始TU而不是应用SBT后的分割TU中得出经上下文编码的二进制位的剩余数量的最大值。
为了降低复杂度,可以将高频度系数清零应用于较大大小的CU。例如,对于64×N或N×64TU,仅对左上方32×32或32×N或N×32块进行编码。其余系数用零代替。当得出经上下文编码的二进制位的剩余数量的最大值时,使用清零之前或之后的TU大小。例如,可以使用64×N或N×64TU(清零之前的TU大小)来得出经上下文编码的二进制位的剩余数量的最大值,或者可以使用32×N或N×32TU(清零之后的TU大小)来得出经上下文编码的二进制位的剩余数量的最大值。当TB的宽度或高度大于32时,清零之后的区域的宽度或高度被截取为32。经截取的清零之后的区域的宽度或高度用于得出经上下文编码的二进制位的剩余数量的TB级别最大值。在一个示例中,当不使用MTS或SBT时,用于得出经上下文编码的二进制位的剩余数量的TU/TB/CU/PU级别最大值的TbWidth和/或TbHeight可以被截取为32,并且当应用了MTS和SBT时被截取为16。在一个示例中,当不使用MTS或SBT时,用于得出经上下文编码的二进制位的剩余数量的TU/TB/CU/PU级别最大值的TbWidth和/或TbHeight可以被截取为32,并且当应用了MTS时被截取为16。在一个实施方式中,在TbWidth/TbHeight截取之后,得出经上下文编码的二进制位的剩余数量的TU/TB/CU/PU级别最大值。
为了提高编码效率,可以应用帧内子块划分(ISP)。当应用了帧内子块划分时,亮度CU/TU被分成四个子TU。在一个实施方式中,当应用了ISP时,计算分割之前的整个CU或整个TU的经上下文编码的二进制位的剩余数量的最大值。所有ISP子TU共享所计算出的经上下文编码的二进制位的剩余数量的最大值。在另一实施方式中,当应用了ISP时,计算各个ISP子TU的经上下文编码的二进制位的剩余数量的最大值。对于各个子TU,如果未使用所有的经上下文编码的二进制位,则剩余的经上下文编码的二进制位可以用于其余子TU。
在一个实施方式中,可以根据CU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码或以上的任何组合来计算经上下文编码的二进制位的剩余数量的最大值。然而,如果CU的宽度或高度大于K(例如,64或最大的TU大小/宽度/高度),则K用于计算经上下文编码的二进制位的剩余数量的最大值。
在一个实施方式中,可以根据TU/CU的大小/宽度/高度、颜色分量、系数子块大小、是否使用联合色度残差编码或以上的任何组合来应用不同的残差编码方法。例如,如果CU/TU的大小大于4×4或8×8,或者面积/样本数量大于16、32或64,则可以应用上述方法。否则,应用不同的残差编码方法。例如,仅经上下文编码的二进制位被用于对语法的一部分(例如,仅有效标志、仅有效标志和大于1的标志、或仅有效标志和奇偶标志)进行编码。利用旁路二进制位对所有其它语法进行编码。
在一个实施方式中,上面提出的方法可以应用于某些类子块/CU/TU/TB/区域,例如,应用于面积/宽度/高度大于阈值(例如,面积大于16、32或64)的TU。对于不满足条件的CU/TU/TB/区域,应用原始编码方法或不应用上下文二进制位约束(例如,利用经上下文编码的二进制位来对所有语法进行编码)。在一个示例中,将编码器约束应用于这些不满足条件的CU/TU/TB。针对子块/CU/TU/TB/区域得出maxNumCtxBin。比特流一致性要求是针对子块/CU/TU/TB/区域,已经使用的经上下文编码的二进制位的数量不能超过maxNumCtxBin。
上面提出的方法的全部或部分可以一起应用。上面提出的方法的全部或部分可以应用于某一TU大小/宽度/高度,可以在图片/图块/图块组/切片/CTU/CTU行/序列级别中指定某一QP或某一配置文件。
对于色度残差联合编码,可以修改已被编码的块标志编码以获得更好的效率。例如,在TU编码中,用信号通知tu_cbf_luma、tu_cbf_cb和/或tu_cbf_cr。如果颜色分量的cbf是1,则对颜色分量的系数进行编码。当应用了色度残差联合编码时,可以如下修改针对cb和cr的cbf编码。
方法1:
在tu_cbf_cb和tu_cbf_cr之前对色度残差联合编码标志(tu_cb_cr_joint_residual)进行编码。如果tu_cb_cr_joint_residual是0,则用信号通知tu_cbf_cb和tu_cbf_cr。如果tu_cb_cr_joint_residual是1,则无需用信号通知tu_cbf_cb和tu_cbf_cr,并且tu_cbf_cb和tu_cbf_cr可以分别被推断为1和0。然而,cr分量的残差系数编码被跳过。
在另一示例中,如果tu_cb_cr_joint_residual是1,则用信号通知tu_cbf_cb。如果tu_cbf_cb是1,则跳过tu_cbf_cr并将该tu_cbf_cr推断为1或0。跳过cr分量的残差系数编码。如果tu_cbf_cb是0,则跳过tu_cbf_cr并将该tu_cbf_cr推断为0。cr分量的残差系数编码也被跳过。
方法2:
在tu_cbf_cb之后并且在tu_cbf_cr之前用信号通知tu_cb_cr_joint_residual。如果tu_cbf_cb是1,则用信号通知tu_cb_cr_joint_residual。如果tu_cb_cr_joint_residual是1,则跳过tu_cbf_cr。cr分量的残差系数编码也被跳过。如果tu_cb_cr_joint_residual是0,则用信号通知tu_cbf_cr。如果tu_cbf_cb是0,则不用信号通知tu_cb_cr_joint_residual并且用信号通知tu_cbf_cr。
方法3:
在tu_cbf_cb和tu_cbf_cr之后用信号通知tu_cb_cr_joint_residual。如果tu_cbf_cb是1并且tu_cbf_cr是1,则用信号通知tu_cb_cr_joint_residual。否则(例如,如果tu_cbf_cb和tu_cbf_cr中的一者是0),则不用信号通知tu_cb_cr_joint_residual。如果tu_cb_cr_joint_residual是1,则也跳过cr分量的残差系数编码。
上面提到的cr分量可以用另一颜色分量(例如,B或R或V)来代替。上面的cr分量可以用另一颜色分量(例如,R或B或U)来代替。
上面提出的方法的全部或部分可以一起应用。
可以在编码器和/或解码器中实现前面提出的方法中的任何方法。例如,可以在编码器的熵编码模块和/或解码器的熵编码模块中实现所提出的方法中的任何方法。另选地,所提出的方法中的任何方法可以被实现为集成到编码器的熵编码模块和/或解码器的熵编码模块的电路。
前面提出的方法可以应用于使用传统标量量化(即,非状态相关的标量量化)状态相关的标量量化的系统。
图4例示了根据本发明实施方式的示例性解码系统的流程图,其中,该系统结合了对基于清零之后的区域的大小而确定的针对当前TB的经上下文编码的二进制位的剩余数量的约束。该流程图以及本公开中的其它后续流程图中所示的步骤可以被实现为可在编码器侧和/或解码器侧的一个或更多个处理器(例如,一个或更多个CPU)上执行的程序代码。流程图中所示的步骤也可以基于硬件(诸如,被布置成执行流程图中的步骤的一个或更多个电子装置或处理器)来实现。根据该方法,在步骤410中,接收与经编码的变换系数相对应的经编码的当前TB(变换块),所述经编码的变换系数与要在解码器侧解码的当前TB相关联。在步骤420中,基于清零之后的区域的大小,针对当前TB初步确定经上下文编码的二进制位的剩余数量的最大值。在步骤430中,使用具有基于经上下文编码的二进制位的剩余数量的约束的基于上下文的编码来对当前TB的变换系数进行解码,以生成经重构的当前TB,其中,当经上下文编码的二进制位的剩余数量小于第一阈值时,应用旁路模式而不应用常规的基于上下文的编码模式。然后在步骤440中,提供经重构的当前TB。
图5例示了根据本发明实施方式的另一示例性解码系统的流程图,其中,该系统结合了对基于最后有效CG索引而确定的针对于当前TB的经上下文编码的二进制位的最大数量的约束。根据该方法,在步骤510中,接收与经编码的变换系数相对应的经编码的当前TB(变换块),所述经编码的变换系数与要在解码器侧解码的当前TB相关联。在步骤520中,针对与当前TB相关联的变换系数确定最后有效CG(系数组)索引。在步骤530中,基于最后有效CG索引,针对当前TB初步确定经上下文编码的二进制位的剩余数量的最大值。在步骤540中,使用具有基于经上下文编码的二进制位的剩余数量的约束的基于上下文的编码来对经编码的当前TB进行解码,以生成经重构的当前TB,其中,当经上下文编码的二进制位的剩余数量小于第一阈值时,基于上下文的编码使用旁路模式而不使用常规的基于上下文的编码模式。在步骤550中,提供经重构的当前TB。
所示的流程图旨在例示根据本发明的视频编码的示例。本领域技术人员可以在不脱离本发明的精神的情况下修改各个步骤、重新布置步骤、拆分步骤或组合步骤以实践本发明。在本公开中,已经使用特定的语法和语义来例示实现本发明的实施方式的示例。技术人员可以在不脱离本发明的精神的情况下通过利用等效的语法和语义替换所述语法和语义来实践本发明。
呈现以上描述是为了使得本领域普通技术人员能够如在特定应用及其要求的背景下所提供的来实践本发明。对所描述的实施方式的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的一般原理可以应用于其它实施方式。因此,本发明并不旨在限于所示出和所描述的特定实施方式,而是被赋予与本文所公开的原理和新颖特征相一致的最广范围。在以上详细描述中,例示了各种具体细节以便提供对本发明的透彻理解。然而,本领域技术人员将理解本发明是可以实践的。
如上所述的本发明的实施方式可以以各种硬件、软件代码或两者的组合来实现。例如,本发明的实施方式可以是集成到视频压缩芯片中的一个或更多个电路或集成到视频压缩软件中的程序代码,以执行本文描述的处理。本发明的实施方式还可以是要在数字信号处理器(DSP)上执行以执行本文描述的处理的程序代码。本发明还可涉及由计算机处理器、数字信号处理器、微处理器或现场可程序设计门阵列(FPGA)执行的多个功能。这些处理器可以被配置成通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码来执行根据本发明的具体任务。可以以不同的程序设计语言和不同的格式或样式来开发软件代码或固件代码。也可以针对不同的目标平台编译软件代码。然而,不同的代码格式、软件代码的样式和语言以及配置代码以执行根据本发明的任务的其它手段将不脱离本发明的精神和范围。
在不脱离本发明的精神或基本特征的情况下,本发明可以以其它特定形式实施。所描述的示例在所有方面仅应被认为是例示性的而非限制性的。因此,本发明的范围由所附权利要求而不是前述描述来指示。落入权利要求等同含义和范围内的所有改变均应包含在其范围内。

Claims (21)

1.一种用于在视频编解码系统中对预测残差进行编码的方法,所述方法包括以下步骤:
接收对应于与要在编码器侧编码的当前变换块相关联的变换系数的输入数据;
基于清零之后的区域的大小来确定针对所述当前变换块的经上下文编码的二进制位的剩余数量的最大值;
使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述当前变换块的变换系数进行编码,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,应用旁路模式而不应用常规的基于上下文的编码模式;以及
提供经编码的当前变换块。
2.根据权利要求1所述的方法,其特征在于,所述当前变换块的在所述清零之后的区域之外的目标变换系数不被编码。
3.根据权利要求1所述的方法,其特征在于,在所述确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值之前,将所述清零之后的区域的宽度或高度截取成预定值。
4.根据权利要求3所述的方法,其特征在于,所述预定值对应于32。
5.根据权利要求3所述的方法,其特征在于,如果针对所述当前变换块允许多重变换集,则所述预定值对应于16。
6.根据权利要求3所述的方法,其特征在于,如果针对包含所述当前变换块的当前块允许多重变换集和子块变换,则所述预定值对应于16。
7.根据权利要求1所述的方法,其特征在于,确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值的步骤依赖于所述清零之后的区域的面积。
8.根据权利要求7所述的方法,其特征在于,所述确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值的步骤依赖于所述清零之后的区域的面积乘以等于1.75的因子。
9.一种用于在视频编解码系统中对预测残差进行解码的方法,所述方法包括以下步骤:
接收对应于与要在解码器侧解码的当前变换块相关联的经编码的变换系数的经编码的当前变换块;
基于清零之后的区域的大小来确定针对所述当前变换块的经上下文编码的二进制位的剩余数量的最大值;
使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述当前变换块的变换系数进行解码,以生成经重构的当前变换块,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,应用旁路模式而不应用常规的基于上下文的编码模式;以及
提供所述经重构的当前变换块。
10.根据权利要求9所述的方法,其特征在于,所述当前变换块的在所述清零之后的区域之外的目标变换系数不被解析。
11.根据权利要求9所述的方法,其特征在于,在所述确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量之前,将所述清零之后的区域的宽度或高度截取成预定值。
12.根据权利要求11所述的方法,其特征在于,所述预定值对应于32。
13.根据权利要求11所述的方法,其特征在于,如果针对所述当前变换块允许多重变换集,则所述预定值对应于16。
14.根据权利要求11所述的方法,其特征在于,如果针对包含所述当前变换块的当前块允许多重变换集和子块变换,则所述预定值对应于16。
15.根据权利要求9所述的方法,其特征在于,确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的最大值的步骤依赖于所述清零之后的区域的面积。
16.根据权利要求15所述的方法,其特征在于,所述确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值的步骤依赖于所述清零之后的区域的面积乘以等于1.75的因子。
17.根据权利要求15所述的方法,其特征在于,所述确定针对所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值的步骤依赖于所述清零之后的区域的面积乘以7并且然后右移2。
18.根据权利要求17所述的方法,其特征在于,对于亮度变换块和色度变换块,因子是不同的。
19.一种用于在视频编解码系统中对预测残差进行解码的设备,所述设备包括一个或更多个电子电路或处理器,所述一个或更多个电子电路或处理器被布置成:
接收对应于与要在解码器侧解码的当前变换块相关联的经编码的变换系数的经编码的当前变换块;
基于清零之后的区域的大小来确定针对所述当前变换块的经上下文编码的二进制位的剩余数量的最大值;
使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述当前变换块的变换系数进行解码,以生成经重构的当前变换块,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,所述基于上下文的编码使用旁路模式而不使用常规的基于上下文的编码模式;以及
提供所述经重构的当前变换块。
20.一种用于在视频编解码系统中对预测残差进行解码的方法,所述方法包括以下步骤:
接收对应于与要在解码器侧解码的当前变换块相关联的经编码的变换系数的经编码的当前变换块;
确定与所述当前变换块相关联的变换系数的最后有效系数组索引;
基于所述最后有效系数组索引,确定针对所述当前变换块的经上下文编码的二进制位的剩余数量的最大值;
使用具有基于经上下文编码的二进制位的所述剩余数量的约束的基于上下文的编码来对所述经编码的当前变换块进行解码,以生成经重构的当前变换块,其中,当经上下文编码的二进制位的所述剩余数量小于第一阈值时,所述基于上下文的编码使用旁路模式而不使用常规的基于上下文的编码模式;以及
提供所述经重构的当前变换块。
21.根据权利要求20所述的方法,其特征在于,用于所述当前变换块的经上下文编码的二进制位的所述剩余数量的所述最大值与所述最后有效系数组索引乘以因子以及系数组的面积相对应,并且其中,所述因子等于1.75。
CN202080009138.1A 2019-01-25 2020-01-22 带有变换块级别约束的变换系数编码的方法和设备 Active CN113316934B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201962796611P 2019-01-25 2019-01-25
US62/796,611 2019-01-25
US201962802139P 2019-02-06 2019-02-06
US62/802,139 2019-02-06
US201962813208P 2019-03-04 2019-03-04
US62/813,208 2019-03-04
US201962822771P 2019-03-22 2019-03-22
US62/822,771 2019-03-22
US201962824467P 2019-03-27 2019-03-27
US62/824,467 2019-03-27
PCT/CN2020/073877 WO2020151753A1 (en) 2019-01-25 2020-01-22 Method and apparatus of transform coefficient coding with tb-level constraint

Publications (2)

Publication Number Publication Date
CN113316934A CN113316934A (zh) 2021-08-27
CN113316934B true CN113316934B (zh) 2024-03-08

Family

ID=71735849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080009138.1A Active CN113316934B (zh) 2019-01-25 2020-01-22 带有变换块级别约束的变换系数编码的方法和设备

Country Status (4)

Country Link
US (1) US11595656B2 (zh)
CN (1) CN113316934B (zh)
TW (1) TWI737143B (zh)
WO (1) WO2020151753A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
EP3984231A4 (en) * 2019-06-13 2023-06-21 Beijing Dajia Internet Information Technology Co., Ltd. SUB-BLOCK TRANSFORM METHOD AND SYSTEM FOR VIDEO CODING
JP2022538968A (ja) * 2019-06-24 2022-09-07 アリババ グループ ホウルディング リミテッド ビデオデータの変換スキップ残差符号化
US11792824B2 (en) * 2020-03-30 2023-10-17 Qualcomm Incorporated Multicast feedback and retransmission for transport block grouping
CN112396016B (zh) * 2020-11-26 2021-07-23 武汉宏数信息技术有限责任公司 一种基于大数据技术的人脸识别系统
US20220329810A1 (en) * 2021-04-12 2022-10-13 Tencent America LLC Method and apparatus for intra string copy

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2592832A2 (en) * 2010-07-09 2013-05-15 Samsung Electronics Co., Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
CN103636206A (zh) * 2011-03-31 2014-03-12 汤姆逊许可公司 上下文自适应二进制数据算术编码(cabac)解码技术
CN109076226A (zh) * 2016-05-13 2018-12-21 索尼公司 图像处理装置和方法
CN109076230A (zh) * 2016-05-03 2018-12-21 高通股份有限公司 二值化二次变换指数

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003153228A (ja) 2001-11-15 2003-05-23 Sony Corp 画像符号化装置及び画像復号化装置
EP1487113B1 (de) * 2002-05-02 2006-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
US9106913B2 (en) * 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
US9462275B2 (en) * 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
US9264706B2 (en) * 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
AU2018204786A1 (en) * 2018-06-29 2020-01-16 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
WO2020054713A1 (en) * 2018-09-11 2020-03-19 Sharp Kabushiki Kaisha Systems and methods for coding transform coefficient level values
JP7222997B2 (ja) * 2018-09-20 2023-02-15 エルジー エレクトロニクス インコーポレイティド 変換係数レベルコーディング方法およびその装置
EP3852374A4 (en) * 2018-09-23 2021-12-08 Lg Electronics Inc. PROCESS FOR ENCODING / DECODING VIDEO SIGNALS AND ASSOCIATED EQUIPMENT
KR102657902B1 (ko) * 2018-10-05 2024-04-17 로즈데일 다이나믹스 엘엘씨 변환 계수 코딩 방법 및 그 장치
KR102634645B1 (ko) * 2018-10-05 2024-02-06 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
WO2020101321A1 (ko) * 2018-11-12 2020-05-22 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수를 코딩하는 방법 및 그 장치
US11470329B2 (en) * 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
US10798397B2 (en) * 2019-01-02 2020-10-06 Tencent America LLC Method and apparatus for video coding
US11477486B2 (en) * 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
KR20210107118A (ko) * 2019-01-02 2021-08-31 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 통합된 변환 타입 시그널링 및 변환 타입 종속 변환 계수 레벨 코딩
KR102640142B1 (ko) * 2019-01-12 2024-02-22 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2592832A2 (en) * 2010-07-09 2013-05-15 Samsung Electronics Co., Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
CN103636206A (zh) * 2011-03-31 2014-03-12 汤姆逊许可公司 上下文自适应二进制数据算术编码(cabac)解码技术
CN109076230A (zh) * 2016-05-03 2018-12-21 高通股份有限公司 二值化二次变换指数
CN109076226A (zh) * 2016-05-13 2018-12-21 索尼公司 图像处理装置和方法

Also Published As

Publication number Publication date
CN113316934A (zh) 2021-08-27
TWI737143B (zh) 2021-08-21
US20220094939A1 (en) 2022-03-24
WO2020151753A1 (en) 2020-07-30
TW202038615A (zh) 2020-10-16
US11595656B2 (en) 2023-02-28

Similar Documents

Publication Publication Date Title
CN113316934B (zh) 带有变换块级别约束的变换系数编码的方法和设备
CN112640448B (zh) 编码转换系数的熵编解码方法与装置
US11750841B2 (en) Methods and apparatuses for coding transform blocks
US10419763B2 (en) Method and apparatus of context modelling for syntax elements in image and video coding
TWI751633B (zh) 在視訊編解碼系統中對與預測殘差相對應的變換係數進行編/解碼的方法及裝置
US10506234B2 (en) Method of run-length coding for palette predictor
JP2005229632A (ja) 画像および/またはビデオ符号器と復号器における変換係数を符号化するための方法と装置および対応するコンピュータプログラムと対応するコンピュータによる読み出し可能な記憶媒体
CN112567754B (zh) 转换系数编码或解码的方法与装置
JP2024502109A (ja) ビデオコーディング用の残差および係数のコーディング
KR100936208B1 (ko) 무손실 문맥적응적이진산술부호화를 위한 h.264/avc 부호화기, 상기 부호화기의 문맥적응적이진산술부호화방법
Marpe et al. Improved video compression technology and the emerging high efficiency video coding standard
TW202143738A (zh) 視訊編解碼中施加位元流約束的方法和裝置
TWI830482B (zh) 視訊編碼方法、裝置以及視訊解碼方法、裝置
Karwowski Improved adaptive arithmetic coding for HEVC video compression technology
TW202325020A (zh) 視訊編碼方法、裝置以及視訊解碼方法、裝置
TW202139717A (zh) 圖像和視訊編解碼中發信切片分割資訊之方法和裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20220422

Address after: Hsinchu County, Taiwan, China

Applicant after: MEDIATEK Inc.

Address before: Hsinchu Science Park Road, Taiwan city of Hsinchu China Dusing 1

Applicant before: MEDIATEK Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant