CN112640448B - 编码转换系数的熵编解码方法与装置 - Google Patents

编码转换系数的熵编解码方法与装置 Download PDF

Info

Publication number
CN112640448B
CN112640448B CN201980055934.6A CN201980055934A CN112640448B CN 112640448 B CN112640448 B CN 112640448B CN 201980055934 A CN201980055934 A CN 201980055934A CN 112640448 B CN112640448 B CN 112640448B
Authority
CN
China
Prior art keywords
flag
binary bits
block
constraint
sub
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
CN201980055934.6A
Other languages
English (en)
Other versions
CN112640448A (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 CN112640448A publication Critical patent/CN112640448A/zh
Application granted granted Critical
Publication of CN112640448B publication Critical patent/CN112640448B/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/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
    • 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/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/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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

提供了一种视频编解码器,所述视频编解码器限制了用于对当前块的语法元素进行熵编解码的常规二进制位的总数。视频编解码器选择性地将语法元素熵编码或解码为使用上下文建模的常规二进制位,或者为没有上下文建模的旁路二进制位。指定一个约束以限制用于对当前块的语法元素进行熵编解码的常规二进制位的总数。可能没有限制特定于当前块的单个语法元素的常规二进制位数量的约束。

Description

编码转换系数的熵编解码方法与装置
相关引用
本发明要求以下申请的优先权:在2018年8月24日递交的申请号为62/722,237的美国临时专利申请,在2018年9月21日递交的申请号为62/734,277的美国临时专利申请,在2018年9月22日递交的申请号为62/735,100的美国临时专利申请,在2018年9月25日递交的申请号为62/735,927的美国临时专利申请以及在2019年8月22日递交的申请号为16/548,340的美国专利申请,其全部内容以引用方式并入本公开。
技术领域
本公开总体上涉及视频处理。特别地,本公开涉及编解码变换系数的方法。
背景技术
除非本文另外指出,否则本节中描述的方法不是后面列出的权利要求的现有技术,并且不被包括在本节中而被承认为现有技术。
高效视频编解码(high-efficiency video coding,简称HEVC)是由视频编解码联合协作团队(Joint Collaboraive Team on Video Coding,简称JCT-VC)开发的最新国际视频编解码标准。从重构信号预测输入视频信号,该重构信号是从编解码图片区域得出的。预测残差信号通过线性变换进行处理。量化变换系数,并与比特流中的其他辅助信息(sideinformation)一起进行熵编解码。在对去量化的变换系数进行逆变换之后,从预测信号和重构残差信号生成重构信号。通过环路滤波进一步处理重构的信号以去除编解码伪像。解码的图像存储在帧缓冲器中,以预测输入视频信号中的未来图像。
在HEVC中,编解码图片被划分为由相关联的编解码树单元(coding tree unit,简写为CTU)表示的非重叠正方形块区域。编解码图片可以由切片的集合表示,每个切片包括整数个CTU。切片中的各个CTU按光栅扫描顺序进行处理。可以使用至多两个运动矢量和参考索引来使用帧内预测或帧间预测来解码双预测(bi-predictive,简写为B)切片,以预测每个块的采样值。使用帧内预测或帧间预测使用最多一个运动矢量和参考索引对预测(predictive,简称P)切片进行解码,以预测每个块的采样值。仅使用帧内预测来对帧内(intra,简称I)切片进行解码。
可使用递归四叉树(quadtree,简称QT)结构将CTU划分为多个非重叠编解码单元(coding unit,简称CU),以适应各种局部运动和纹理特征。CTU也可以使用带有二进制和三进位拆分的带有嵌套多类型树(nested multi-type tree)的四叉树划分为一个或多个较小尺寸的CU。所得的CU划分可以为正方形或矩形。
为每个CU指定一个或多个预测单元(prediction unit,简称PU)。预测单元与关联的CU语法一起,作为用于发送预测子信息的基本单元。使用指定的预测过程来预测PU内部相关像素采样的值。可以使用残差四叉树(residual quadtree,简称RQT)结构来进一步划分CU,以用于表示相关联的预测残差信号。RQT的叶节点对应于变换单元(transform unit,简称TU)。对4:2:0颜色格式的图片,变换单元由大小为8x8、16x16或32x32的一个亮度采样的变换块(transform block,简写为TB)或大小为4x4的四个亮度采样的变换块和两个相应的色度采样变换块组成。将整数变换应用于变换块,并且将量化系数的水平值(levelvalue)与其他辅助信息一起在比特流中进行熵编解码。
术语编解码树块(coding tree block,简称CTB)、编解码块(coding block,简称CB)、预测块(prediction block,简称PB)和变换块(transform block,简称TB)被定义为分别指定与CTU、CU、PU和TU相关联的一种颜色分量的2-D采样数组。因此,CTU由一个亮度CTB、两个色度CTB和相关的语法元素组成。类似的关系对于CU、PU和TU也有效。树划分通常同时应用于亮度和色度,但是当达到色度的一些最小大小时会例外。
编解码块标志(coded block flag,简称CBF)用于发信变换块中是否存在任一非零变换系数。当CBF等于0时,不对相关的变换块进行进一步编解码,并且推断当前变换块中的所有系数都等于0。否则,相关的变换块包含至少一个非零变换系数。非零变换块被进一步划分为非重叠子块。可以发信语法元素coded_sub_block_flag以指示当前子块是否包含任一非零系数。当coded_sub_block_flag等于0时,不对关联的变换子块进行进一步编解码,并且推断当前变换子块中的所有系数等于0。否则,关联的变换块包含至少一个非零变换系数。使用多个子块编解码过程(subblock coding pass)对相关联的子块中的变换系数水平的值进行熵编解码。在每个编解码过程中,根据预定义的扫描顺序对各个变换系数进行一次存取与处理。
在HEVC中,在第一子块编解码过程中发信语法元素sig_coeff_flag以指示当前变换系数水平的绝对值是否大于0。进一步在第二编解码过程中发信语法元素coeff_abs_level_greater1_flag用于sig_coeff_flag等于1的当前系数以指示相关变换系数水平的绝对值是否大于1。对于coeff_abs_level_greater1_flag等于1的当前系数,进一步在第三编解码过程中发信语法元素coeff_abs_level_greater2_flag以指示关联的变换系数水平的绝对值是否大于2。在第四编解码和第五子块编解码过程中,分别通过语法元素coeff_sign_flag和coeff_abs_level_remaining来发信正负号信息(sign information)和剩余水平值。
发明内容
以下发明内容仅是说明性的,而无意于以任何方式进行限制。即,提供以下概述以介绍本文描述的新颖和非显而易见的技术的概念、重点、益处和优点。在下面的详细描述中将进一步描述选择而非全部实现。因此,以下概述并非旨在标识所要求保护的主题的必要特征,也不旨在用于确定所要求保护的主题的范围。
本公开的一些实施例提供了一种视频编解码器(例如,视频编码器或视频解码器),该视频编解码器(例如,视频编解码器或视频解码器)限制了用于熵编解码当前块的语法元素的常规二进制位(regular bins)的总数。视频编解码器将语法元素选择性地熵编码或解码为使用上下文建模的常规二进制位或者是没有上下文建模的旁路二进制位(bypassbins)。指定一个约束以限制用于对语法元素进行熵编解码的常规二进制位的总数。可能没有限制特定于单个语法元素的常规二进制位数量的约束。
在一些实施例中,在多个编解码过程中对多个语法元素进行编解码。该约束限制了用于在第一编解码过程中对语法元素进行熵编解码的常规二进制位的总数。多个语法元素指定多个变换系数,其中变换系数的绝对值由在第一编解码过程中被熵编解码的至少第一标志、第二标志和第三标志指示。
在一些实施例中,限制常规二进制位的数量的约束对于较大的第一块大于对于较小的第二块。在一些实施例中,限制常规二进制位的数量的约束对于第一颜色分量与对于第二颜色分量是不同的。在一些实施例中,通过将默认约束与预定义因子相乘来计算限制常规二进制位的数量的约束,该预定义因子是从当前块中的编解码子块的数量与当前块中的所有子块的数量之比得出的。
附图说明
包括附图以提供对本公开的进一步理解,并且附图被并入并构成本公开的一部分。附图示出了本公开的实施方式,并且与文字描述一起用于解释本公开的原理。可以理解的是,附图不一定按比例绘制,因为为了清楚地说明本公开的概念,一些组件可能被显示为与实际实现中的尺寸不成比例。
图1概念性地示出了视频编解码器,其基于对用于子块的常规二进制位的数量的约束,以常规模式或旁路模式选择性地熵编解码块的子块的语法元素。
图2示出了编解码过程,该过程包括当熵编解码变换块的子块时指示变换系数水平的绝对值的标志。
图3示出了在当前块的子块之间共享允许数量的常规二进制位。
图4示出了视频编码器的范例。
图5示出了视频编解码器的部分,其基于限制用于子块的常规二进制位的数目的约束而以常规模式或旁通模式选择性地熵编解码块的子块的语法元素。
图6概念性地示出了基于限制用于子块的常规二进制位的数量的约束,以常规模式或旁路模式选择性地熵编码块的子块的语法元素的过程。
图7示出了视频解码器的范例。
图8说明视频解码器的部分,其基于限制用于子块的常规二进制位的数目的约束而选择性地以常规模式或旁路模式熵解码块的子块的语法元素。
图9概念性地示出了基于限制用于子块的常规二进制位的数量的约束,以常规模式或旁路模式选择性地熵解码块的子块的语法元素的过程。
图10概念性地示出了用于实现本公开的一些实施例的电子系统。
具体实施方式
在以下详细描述中,通过示例的方式阐述了许多具体细节,以提供对相关教导的透彻理解。基于本文描述的教导的任何变化、派生和/或扩展都在本公开的保护范围内。在一些情况下,与本文公开的一个或多个示例实现有关的公知的方法、过程、组件和/或电路可以在没有详细描述的情况下以相对较高的水平进行描述,以避免不必要地混淆本公开的教导的各个方面。
ITU-T SG16 WP3的联合视频专家组(JVET)和ISO/IEC JTC1/SC29/WG11目前正在建立下一代视频编解码标准。ITU-T VCEG(Q6/16和ISO/IEC MPEG(JTC 1/SC 29/WG 11)联合视频专家组(JVET)在多功能视频编解码(VVC)工作草案(WD)2(B.Brossey等人,“Versatile Video Coding(Draft 2)”中指定了一些工作(JVE061001号文件,第11次会议:卢布尔雅那,SI,2018年7月10日至18日)。
VVC WD2指定可以通过从属纯量量化(dependent scalar quantization)来量化编解码块的变换系数。由具有四个状态的状态机指定两个量化器之一的选择。当前变换系数的状态由扫描顺序的前一变换系数的绝对水平值的状态和奇偶性决定。在第一个子块编解码过程中发信语法元素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指示当前变换系数的状态。
I.编解码变换系数
本公开的一些实施例提供了一种视频编解码器,其使用多个编解码过程来发信或解析变换系数水平的绝对值。在一些实施例中,变换系数水平的完全重构的绝对值可以由下式表示:
AbsLevel=(AbsLevelRS1<<1)+ParityBit,
其中,ParityBit表示变换系数水平的绝对值的奇偶性,而AbsLevelRS1表示向下移动1的变换系数等级的绝对值。语法元素sig_coeff_flag、coeff_abs_level_greater1_flag和par_level_flag可以在第一编解码过程中发信。当sig_coeff_flag等于0时,关联的变换系数水平等于0。否则,进一步发信coeff_abs_level_greater1_flag,以指示关联的变换系数水平的绝对值是否大于1。当coeff_abs_level_greater1_flag等于0时,将设置AbsLevelRS1等于0,且ParityBit设置为sig_coeff_flag用于相关变换系数。否则,进一步发信par_level_flag以指示用于相关联的变换系数水平的ParityBit的值。可以使用一个或多个编解码过程进一步发送有关AbsLevelRS1的更多信息以及相关变换系数水平的正负号(sign)的信息。
当对于当前系数,coeff_abs_level_greater1_flag大于1时,视频编解码器可进一步发信语法元素coeff_abs_level_rs1_gt1_flag以指示AbsLevelRS1是否大于1。当coeff_abs_level_rs1_gt1_flag等于0时,将AbsLevelRS1设置为等于1用于相关的变换系数水平。否则,推断AbsLevelRS1大于1,并进一步发信AbsLevelRS1的剩余值(remainingvalue)。在一些实施例中,在与coeff_abs_level_greater1_flag相同的编解码过程中发信语法元素coeff_abs_level_rs1_gt1_flag。在一些实施例中,在用于发信coeff_abs_level_greater1_flag的编解码过程之后,在单独的编解码过程中发信coeff_abs_level_rs1_gt1_flag。
当对于当前系数,coeff_abs_level_rs1_gt1_flag大于1时,视频编解码器可进一步发信语法元素coeff_abs_level_rs1_gt2_flag以指示AbsLevelRS1是否大于2。当coeff_abs_level_rs1_gt2_flag等于0时,将AbsLevelRS1设置为等于2用于与之相关联的系数水平。否则,推断AbsLevelRS1大于2,并进一步发信AbsLevelRS1的剩余值。可以在与coeff_abs_level_rs1_gt1_flag相同的编解码过程中发信coeff_abs_level_rs1_gt2_flag,或者在发信coeff_abs_level_rs1_gt1_flag的编解码过程之后在单独的编解码过程中发信coeff_abs_level_rs1_gt2_flag。在一些实施例中,语法元素coeff_abs_level_greater1_flag,coeff_abs_level_rs1_gt1_flag和coeff_abs_level_rs1_gt2_flag都在一个编解码过程中被发信。
在一些实施例中,视频编解码器对通过使用从属纯量量化而量化的残差块执行熵编解码。视频编解码器利用语法元素sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag、coeff_abs_levelsrs1_gt1_flag、coeff_abs_level_rs1_gt2_flag和coeff_abs_level_rs1_remainder来编解码变换系数水平的绝对值。下表1提供了用于解码残差变换块的语法表。当coeff_abs_level_rs1_gt2_flag等于1时,采用语法元素coeff_abs_level_rs1_remainder,以发信相关联的系数水平的剩余绝对值。当未被编解码的时候,语法元素sig_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_rs1_gt1_flag、coeff_abs_level_rs1_gt2_flag和coeff_abs_level_rs1_remainder被推断为等于0。
表1:残差编解码语法
/>
/>
/>
本公开的一些实施例涉及通过减少用于对变换块或子块进行熵编解码的编解码过程数来减少复杂度。例如,在一些实施例中,可以在与语法元素rem_abs_gt1_flag相同的编解码过程中对语法元素rem_abs_gt2_flag进行编解码。在一些实施例中,关于变换系数的符号和剩余值的信息在旁路模式下使用CABAC进行熵编解码,并且可以在一个编解码过程中发信。在一个实施例中,在一个编解码过程中发信在常规模式下使用CABAC熵编解码的所有语法元素。在另一个编解码过程中发信在旁路模式下使用CABAC编解码的所有语法元素熵。
II.限制子块或编解码过程的常规二进制位
为了实现高压缩效率,采用基于上下文的自适应二进制算术编解码(CABAC)模式或称为常规模式来对HEVC中的语法元素的值进行熵编解码。由于CABAC引擎中的算术编解码器仅对二进制符号值进行编码,因此CABAC操作首先需要将语法元素的值转换为二进制位字符串(binary string),该过程通常称为二进制化。在编解码过程中,根据不同上下文的编解码符号(coded symbol)逐渐建立概率模型。可以通过编解码信息来确定用于编解码下一个二进制符号的建模上下文的选择。在常规模式下处理的语法元素的值称为“常规二进制位”,并使用上下文建模(context modeling)对其进行熵编解码。符号也可以在没有上下文建模阶段的情况下进行编解码,并假定相等的概率分布(通常称为旁路模式),以提高比特流解析吞吐率。将在旁路模式下处理的语法元素的值称为“旁路二进制位”,并在没有上下文建模的情况下进行熵编解码。在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的值在旁路模式下被编解码为旁路二进制位。为了在最坏的情况下限制子块中熵编解码变换系数水平的常规二进制位的总数,每个子块最多只能编解码八个coeff_abs_level_greater1_flag值和一个coeff_abs_level_greater2_flag值。这样,每个子块中的常规二进制位的最大数量限制为26。
本公开的一些实施例涉及对用于编解码变换子块的CABAC常规二进制位的最大允许数量的约束。具有对子块的常规二进制位的约束有利于控制每个子块的比特流解析吞吐速率(例如,在最坏情况下),因为在常规模式下使用CABAC的熵编解码比在旁路模式下涉及更高的复杂度。在一些实施例中,视频编解码器可将约束施加于一个子块或一个子块编解码过程中的常规二进制位的最大允许数目,但是对于存在于所述子块或所述子块编解码过程中的各个语法元素的常规二进制位的最大允许数目没有特定限制。视频编解码器可跟踪当前子块或当前编解码过程中的消耗的常规二进制位的累积数量。当达到指定的常规二进制位的最大允许数量时,对于当前子块中的其余编解码过程,视频编解码器可能会将CABAC引擎切换到旁路模式。或者视频编解码器可以在常规CABAC模式下终止编解码过程。变换系数水平的剩余绝对值通过旁路模式下的子块编解码过程来编解码。
图1概念性地示出了视频编解码器,其基于对用于子块的常规二进制位的数量的约束,以常规模式或旁路模式选择性地熵编解码块的子块的语法元素。该图示出了正在被编解码(编码或解码)的当前块100。当前块100可以是诸如编解码单元(CU)的像素块的变换块或TU。当前块100包括4x4=16个子块,包括子块110。
子块110包括多个语法元素(syntax element)。这些语法元素(syntax element,简称SE)可以表示当前块的几个变换系数(例如Coef1-Coef5)。每个变换系数可以由几个语法元素(例如,SE1-SE6)表示。变换系数的语法元素可以包括指示变换系数的绝对值和奇偶性的标志。
这些语法元素使用CABAC进行熵编解码,作为常规二进制位(通过上下文建模以常规模式进行编解码)或旁路二进制位(在没有上下文建模的情况下以旁路模式进行编解码)。视频编解码器施加约束115。在一些实施例中,约束限制用于变换块100的CABAC常规二进制位的最大允许数量,例如,用于对子块110进行编解码的CABAC常规二进制位的最大允许数量。该约束提供了常规二进制位的预算(budget),该预算由块或子块的语法元素共享。将每个语法元素熵编解码为常规二进制位会消耗预算,直到没有剩余预算为止。
在图1的示例中,子块110的约束115是32。一些语法元素通过使用常规模式进行编解码(语法元素被示出为阴影)。这些语法元素包括Coef1:SE1、Coef1:SE2、Ceof1:SE3、Coef1:SE4、Coef2:SE1、Coef2:SE2、Ceof2:SE3、Coef2:SE4和Coef3:SE1。对这些语法元素进行熵编码会消耗30个常规二进制位。要将更多语法元素编码为常规二进制位,将超过32的子块约束。因此,所有其他语法元素都被编解码为旁路二进制位(图标为未阴影)。
图1的示例还示出了几个编解码过程121、122和123。在第一编解码过程121中,视频编解码器熵对每个系数的SE1-SE4进行熵编码,特别是按Coef1:SE1、Coef1:SE2、Ceof1:SE3、Coef1:SE4、Coef2:SE1、Coef2:SE2、Ceof2:SE3等的顺序进行编解码。在第二编解码过程122中,视频编解码器对每个系数的SE5进行熵编码,特别是按Coef1:SE5、Coef2:SE5、Coef3:SE5、Coef4:SE5等的顺序。在第三编解码过程123中,视频编解码器对每个系数的SE6进行熵编码,特别是按Coef1:SE6、Coef2:SE6、Coef3:SE6、Coef4:SE6等的顺序进行熵编解码。
在一些实施例中,约束115限制子块所有语法元素所使用的常规二进制位的总数,而不管它们被编解码在哪个编解码过程中。在一些实施例中,约束115限制在第一编解码过程121(或前导编解码过程(leading coding pass))期间编解码的语法元素所使用的常规二进制位的总数,但不限制在其他编解码过程期间使用的常规二进制位的数量。
在一些实施例中,不管约束115是适用于子块110的所有语法元素还是仅适用于在第一编解码过程121中编解码的语法元素,视频编解码器对于子块110或第一编解码过程121中存在的各个语法元素的常规二进制位的最大允许数量的都没有特定的约束。在一些实施例中,视频编解码器可以将约束应用于一个子块或一个子块编解码过程(例如,(第一编解码过程121)中的常规二进制位的最大允许数量,而且还对存在于子块或子块编解码过程中的各个语法元素的常规二进制位的最大允许数量施加特定约束。
在一些实施例中,去除了HEVC对语法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag的常规二进制位的指定最大允许数量的限制。具体来说,语法元素语法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag在前导子块编解码过程中编解码。一旦当前子块中常规二进制位的累积数量达到指定的最大允许数量25或26,就可以终止常规CABAC模式下的前导子块编解码过程。语法元素coeff_abs_level_remaining处于旁路模式对其余变换系数水平的剩余绝对值进行编解码。以此方式,视频编解码器仍可在每个子块的常规二进制位的数量上满足最坏情况的约束,同时能够使用比最初为语法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag指定的最大数目更多的常规二进制位。
在一些实施例中,视频编解码器可对第一子块编解码过程中的最大允许数目的常规二进制位施加约束,以对由从属纯量量化产生的变换系数水平进行熵编解码。视频编解码器可以跟踪当前前导编解码过程中消耗的常规二进制位的累积数量,以发信sig_coeff_flag、par_level_flag和rem_abs_gt1_flag,或发信sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag和coeff_abs_levelsrs_gt1_flag。
当常规二进制位的累积数量大于指定的阈值时,视频编解码器可以将其CABAC引擎切换到旁路模式,以对旁路二进制位中的剩余过程进行编解码。或者视频编解码器可以终止当前的前导编解码过程。变换系数水平的剩余绝对值在旁通模式下由子块编解码过程进行编解码,用于发信abs_remainder或发信coeff_abs_level_rs1_remainder。
在一些实施例中,视频编解码器可对常规二进制位的最大允许数目施加约束以用于熵编解码因从属纯量量化而产生的变换子块。视频编解码器可以跟踪用于发信sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag或用于发信signaling sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag、coeff_abs_level_rs1_gt1_flag和coeff_abs_level_rs1_gt2_flag的已消耗常规二进制位的累积数量。当常规二进制位的累积数量大于指定的阈值时,变换系数水平的剩余绝对值全部通过旁路模式下的子块编解码过程进行编解码,以用于发信abs_remainder或用于发信coeff_abs_level_rs1_remainder。
在一些实施例中,coeff_abs_level_rs1_gt1_flag可以被集成到第一编解码过程中。具体地说,在发信par_flag(奇偶性位,par_level_flag)之前,已发信gt1_flag(coeff_abs_level_greater1_flag或rem_abs_gt1_flag),而gt2_flag(coeff_abs_level_rs1_gt1_flag或rem_abs_gt2_flag)的发信被移至第一编解码过程。表2列出了不同水平的代码字的一些示例。
表2:不同水平的代码字示例
由于sig_flag(sig_coeff_flag)的上下文建模与由先前系数的奇偶性位确定的从属量化状态有关,并且状态转换取决于该水平的奇偶性比特,因此将修改后的解析过程描述如下。在sig_flag的解析阶段,将准备偶数水平的上下文模型并将其存储在本地缓冲区中。如果sig_flag为0,则存储的偶数水平上下文模型将应用于下一个sig_flag。如果sig_flag为1,则解析gt1_flag。在gt1_flag的解析阶段,奇数水平的上下文模型被加载,然后存储在本地缓冲区中。如果gt1_flag为0,则可以将存储的奇数水平上下文模型应用于下一个sig_flag。如果gt1_flag为1,则par_flag和gt2_flag都被解析。将按顺序解析这两个二进制位(bin),即,将par_flag的二进制位解析为gt2_flag的二进制位。如果par_flag为0,则在gt2_flag的解析阶段将加载偶数水平的上下文模型。如果par_flag为1,则存储的奇数水平上下文模型可用于下一个sig_flag。在一个实施例中,总是在第一编解码过程中的奇偶性位之后解析一个二进制位。将gt2_flag移动到第一编解码过程后,可以相应地修改上下文建模。
在一些实施例中,变量sumAbs1的值在第一次编解码过程之后变为部分重构的绝对水平的总和,其等于coeff_partial的总和(=sig_flag+gt1_flag+par_flag+(gt2_flag<<1))或在五个相邻位置中的min(4+(x&1),x),其中x是系数的绝对水平。在一些实施例中,sumAbs1的值仅考虑sig_flag、par_flag和gt1_flag。具体而言,sumAbs1等于五个相邻位置中的min(coeff_partial,3)或(sig_flag+gt1_flag+par_flag)或min(2+(x&1),x)之和。在一些实施例中,视频编解码器在同一过程中解析par_flag之后的至少一个二进制位。因此,在解析其他二进制位上花费的时间段可以用于为下一个sig_flag准备上下文模型。
图2示出了编解码过程,该过程包括当熵编解码变换块的子块时指示变换系数水平的绝对值的标志。该图示出了用于对变换块的子块的变换系数进行熵编解码的编解码过程。每个变换系数包括指示绝对值(sig_flag,gt1_flag,gt2_flag)、奇偶性(par_flag)、剩余部分(remainder)(absr)和变换系数的正负号的语法元素。
sig_flag可以参考sig_coeff_flag,或者指示相应的变换系数水平的绝对值(例如,AbsLevelRS1的值)的绝对值是否大于0的任一其他标志。gt1_flag可以参考coeff_abs_level_greater1_flag或用于指示相应变换系数的绝对值是否大于1的任一其他标志。gt2_flag可以参考coeff_abs_level_rs1_gt1_flag或用于指示相应变换系数的绝对值是否大于3的任一其他标志。par_flag可以参考par_level_flag或指示变换系数水平的绝对值的奇偶性(例如,ParityBit的值)的任一其他标志。剩余部分可以由诸如abs_remainder或coeff_abs_level_remaining的标志指示。正负号可以由诸如coeff_sign_flag的标志指示。
图2示出了编解码过程的两种方案210和220。在编解码过程的第一方案210中,每个变换系数的sig_flag、gt1_flag和par_flag在第一编解码过程中被编解码,而gt2_flag在第二编解码过程中被编解码,剩余部分在第三编解码过程中被编解码,并且在第四编解码过程中对正负号进行编解码。换句话说,并非变换系数的绝对值的所有指示符都在同一编解码过程中。在编解码过程第二方案220中,每个变换系数的sig_flag、gt1_flag、par_flag和gt2_flag在相同的第一编解码中被编解码。其余部分和正负号分别在第二和第三编解码过程中编解码。换句话说,变换系数的绝对值的至少三个或全部指示符在同一编解码过程中。不管在第一编解码过程还是随后的编解码过程中对gt2_flag进行编解码,在一些实施例中,用于对第一编解码过程或变换块的子块的语法元素进行熵编解码的常规二进制位的总数受到如以上图1所述的约束或预算。
在一些实施例中,可以进一步指定一些语法元素的最大常规二进制位数或一些编解码过程的最大常规二进制位数。例如,视频编解码器可以指定coeff_abs_level_rs1_gt2_flag的最大常规二进制位数或编解码过程中用于编解码coeff_abs_level_rs1_gt2_flag的最大常规二进制位数。当在编解码过程中对这些语法元素进行编解码时,当常规二进制位的累积数量大于指定阈值时,视频编解码器可以将其CABAC引擎切换为旁路模式,以将编解码过程的剩余二进制位编解码为旁路二进制位或终止当前(领先)的编解码过程。变换系数水平的剩余绝对值在旁路模式下通过子块编解码过程进行编解码。在一些实施例中,即使没有允许的常规二进制位配额或没有用于常规二进制位的预算,一些语法元素也不为常规二进制位数约束计数或始终可以在常规二进制位中编解码。例如,在一些实施例中,sig_coeff_flag在常规二进制位中被编解码,而不管其编解码过程的任一常规二进制位约束。对于另一个示例,在一些实施例中,sig_coeff_flag和par_level_flag在常规二进制位中被编解码(不管其编解码过程的任一常规二进制位约束)。在一些实施例中,如果在编解码过程中没有配额或没有预算用于使用常规二进制位来编解码par_level_flag和rem_abs_gt1_flag,则在编解码过程中仅将sig_coeff_flag编解码为常规二进制位。sig_coeff_flag的上下文建模状态可以与sig_coeff_flag的解析结果相同或转换。
在一些实施例中,在编解码过程中,如果剩余的可用常规二进制位数不大于该编解码过程中的系数的所需常规二进制位数,即,如果该编解码过程的常规二进制位的剩余预算为不足以满足编解码该系数所需的常规二进制位数量,则视频编解码器可能会将其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。
在一些实施例中,可以例如在比特流中使用诸如序列集(sequence parameterset,简称SPS)、图片参数集(picture parameter set,简称PPS)或切片报头之类的一个或多个高级语法集来预定义或显式地发信对用于编解码变换子块的常规二进制位的最大允许数量的指定约束。指定的约束条件可能取决于配置文件和编解码比特流中指示的水平。对于不同的颜色分量可以采用不同的约束。对于不同的变换子块大小,可以采用不同的约束。在一些实施例中,视频编解码器可将2×2子块的常规二进制位的最大允许数量限制为等于4×4子块的常规二进制位的最大允许数量的四分之一。在一些实施例中,视频编解码器可将4×4色度子块的常规二进制位的最大允许数量限制为等于4×4亮度子块的常规二进制位的最大允许数量的一半。可以在SPS中发信针对4x4变换子块的指定约束。在一个示例中,可以在SPS中发信针对4x4亮度子块、4x4色度子块、2x2色度子块的指定约束。在一个实施例中,用于4×4色度子块的常规二进制位的最大允许数量等于或小于用于4×4亮度子块的常规二进制位的最大允许数量。在另一个实施例中,用于2×2色度子块的常规二进制位的最大允许数量等于或小于用于2×2色度子块的常规二进制位的最大允许数量。
在一些实施例中,4x4亮度子块的最大常规二进制位可以是25、30或32,4x4色度子块的最大常规二进制位可以是25、16或15,2x2色度子块的最大常规二进制位可以是2、3、4、5、6、7或8。例如,{4x4亮度子块,一个4x4色度子块,一个2x2色度子块}的最大常规二进制位可以是{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_gt1_flag的最大常规二进制位。例如,在4x4亮度子块中coeff_abs_level_rs1_gt1_flag的最大常规二进制位可以为2、3、4或5,在4x4色度子块中coeff_abs_level_rs1_gt1_flag的最大常规二进制位可以为0、1、2、3或4,则2x2色度子块中coeff_abs_level_rs1_gt1_flag的最大常规二进制位可以为0、1或2。例如,{4x4亮度子块,4x4亮度子块中的coeff_abs_level_rs1_gt1_flag,4x4色度子块,4x4色度子块中的coeff_abs_level_rs1_gt1_flag,2x2色度子块,2x2色度子块中的coeff_abs_level_rs1_gt1_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}.
在一些实施例中,视频编解码器可具有对规定用于对变换单元或变换块的一些大小进行熵编解码的常规二进制位的最大允许数目的约束。可以从为相关的变换单元或变换块指定的约束中得出对当前子块的常规二进制位的最大允许数量的约束。例如,可以分别从视频编解码器中对4x4变换块和2x2变换块的常规二进制位的最大允许数目的约束中得出4x4变换子块和2x2变换块的常规二进制位的最大允许数目约束。
在一些实施例中,当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_flag+par_flag+(gt2_flag<<1)or=sig_flag+par_flag+(gt1_flag<<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码对水平进行编解码。当前导编解码过程被终止时,执行剩余水平的编解码过程。剩余水平编解码过程从当前子块的最后位置开始到子块的第一位置。
在一些实施例中,为TU指定了常规二进制位的最大允许数量。可以从用于终止4x4子块的常规二进制位编解码的阈值导出用于终止TU的常规二进制位编解码的阈值(或常规二进制位的预算)。例如,如果TU是亮度8x8块,而亮度4x4块的阈值为32,则此8x8亮度TU的阈值为32x4=128。对于不同的颜色分量或不同的TU大小,阈值可以不同。
在一些实施例中,为变换子块指定了对常规二进制位的最大允许数目的约束,但是,对于常规二进制位的允许数目的约束数目可以取决于当前的TU大小、TU类型、TU宽度、TU高度、当前TU中的子块总数、子块大小、子块宽度、子块高度、颜色分量、最后一个非零系数(significant coefficient)位置、最后一个非零子块(significant subblock)位置或以上任意组合。例如,约束数量可以取决于当前TU中的子块的总数、颜色分量、子块大小以及最后一个非零子块位置。
为了对TU的子块的系数进行编解码,可以在子块之间共享的常规二进制位允许数量值。例如,在TU的第一子块中,常规二进制位的允许数量是128。当编解码第一子块时,当使用常规二进制位用于编解码系数时,常规二进制位的允许数量减少。剩余的允许值用于TU的下一个子块。在一些实施例中,可以在(或基于)编码/解码的最后的非零系数位置或最后的非零子块位置之后得出所需的编解码子块的数量。例如,一个16x16 TU具有16个4x4子块。TU允许的常规二进制位的总数可以为32x16=512。在解码最后一个非零系数位置后,如果所需编解码子块的数量为8,则每个子块可以使用64个常规二进制位(64x8=512)。
在一些实施例中,当确定最后的非零子块位置时,可以确定要编解码的子块的数量。如果要编解码的子块的数量小于当前TU中的子块的总数,即,在熵编解码中跳过了一些子块,则可以增加对每个子块的常规二进制位最大允许数的限制。
图3示出了在当前块的子块之间共享允许数量的常规二进制位。该图示出了第一块310和第二块320,它们是变换块或TU。第一块310和第二块320中的每一个具有4×4=16个子块。第一块310和第二块320中的每一个对于该块具有512的常规二进制位的总约束或预算。
对第一块310的所有子块进行编解码(图标为阴影),使得最后编解码的子块的位置是子块319,其是第一块310中的第16个子块。第一块310的每个子块被给出了512÷16=32的常规二进制位的约束或预算。
另一方面,第二块320的仅8个子块被编解码,使得最后编解码的子块的位置是子块325,其是第二块320中的第8个子块。第一块320的每个编解码子块被给出了512÷8=64的常规二进制位的约束或预算。
在一些实施例中,通过将默认约束值乘以因子来计算对子块的常规二进制位的约束。(图3的示例中的默认约束是32。)该因子与计算为(当前TU中的子块的总数/(要编解码的子块的数目)或floor((当前TU中的子块总数)/(要编解码的子块数))的比例相关,其中floor(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。对于不同的语法类型或不同的子块大小或不同的颜色分量,因子可以不同。
III.示例的视频编码器
图4示出示例的视频编码器400。如图所示,视频编码器400从视频源405接收输入视频信号,并将该信号编码为比特流495。视频编码器400具有若干组件或模块,用于对来自视频源405的信号进行编码,至少包括选自以下的一些组件:变换模块410、量化模块411、逆量化模块414、逆变换模块415、图片内估计模块420、帧内预测模块425、运动补偿模块430、运动估计模块435、环路滤波器445、重构图片缓冲器450、MV缓冲器465和MV预测模块475以及熵编解码器490。运动补偿模块430和运动估计模块435是帧间预测模块440的一部分。
在一些实施例中,模块410至490是由计算设备或电子装置的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块410-490是由电子装置的一个或多个集体电路(integrated circuit,简称IC)实现的硬件电路的模块。尽管将模块410–490图示为单独的模块,但是一些模块可以组合为单个模块。
视频源405提供原始视频信号,该原始视频信号无需压缩即可呈现每个视频帧的像素数据。减法器408计算视频源405的原始视频像素数据与来自运动补偿模块430或帧内预测模块425的预测像素数据413之间的差。变换模块410将该差(或剩余像素数据或残差信号409)转换成变换系数(例如,通过执行离散余弦变换(DCT))。量化模块411将变换系数量化为量化数据(或量化系数)412,其由熵编解码器490编码为比特流495。
逆量化模块414对量化数据(或量化系数)412进行逆量化以获得变换系数,并且逆变换模块415对变换系数执行逆变换以产生重构残差419。重构残差419与预测像素数据413相加产生重构像素数据417。在一些实施例中,重构像素数据417被临时存储在行缓冲器(未示出)中,用于图片内预测和空间MV预测。重构像素由环路滤波器445滤波,并存储在重构图片缓冲器450中。在一些实施例中,重构图片缓冲器450是视频编码器400外部的内存。在一些实施例中,重构图片缓冲器450是视频编码器400内部的内存。
图片内估计模块420基于重构的像素数据417执行帧内预测以产生帧内预测数据。帧内预测数据被提供给熵编解码器490,以被编码为比特流495。帧内预测数据还被帧内预测模块425用来产生预测像素数据413。
运动估计模块435通过产生MV来执行帧间预测,其中,MV针对存储在重构图片缓冲器450中的先前解码的帧的参考像素数据。这些MV被提供给运动补偿模块430以产生预测像素数据。
代替对比特流中的完整的实际MV进行编码,视频编码器400使用MV预测来生成预测的MV,并且将用于运动补偿的MV与预测的MV之间的差编码为残差运动数据并存储在比特流495。
MV预测模块475基于为对先前的视频帧进行编码而生成的参考MV(即,用于执行运动补偿的运动补偿MV)来生成预测MV。MV预测模块475从MV缓冲器465中的先前视频帧中撷取参考MV。视频编码器400将为当前视频帧生成的MV存储在MV缓冲器465中,作为用于生成预测MV的参考MV。
MV预测模块475使用参考MV来创建预测的MV。可以通过空间MV预测或时间MV预测来计算预测的MV。熵编解码器490将当前帧的预测MV和运动补偿MV(motion compensationmotion vector MC MV)之间的差(残差运动数据)编码到比特流495中。
熵编解码器490通过使用诸如上下文自适应二进制算术编码(context-adaptivebinary arithmetic coding,简称CABAC)或霍夫曼编码的熵编解码技术将各种参数和数据编码到比特流495中。熵编解码器490将各种报头元素、标志以及量化的变换系数412以及残差运动数据作为语法元素编码到比特流495中。比特流495又被存储在存储设备中或者通过通信介质,例如网络,被发送到解码器。
环路滤波器445对重构的像素数据417执行滤波或平滑操作,以减少编码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括采样自适应偏移(sampleadaptive offset,简称SAO)。在一些实施例中,滤波操作包括自适应环路滤波器(adaptiveloop filter,简称ALF)。
图5示出视频编码器400的部分,其基于限制用于子块的常规二进制位的数目的约束而以常规模式或旁路模式选择性地熵编码块的子块的语法元素。该图示出了熵编码器模块490的组件。
语法元素产生器502产生待熵编解码的语法元素,包括表示基于量化系数412的当前子块的变换系数的语法元素。语法元素根据预定的编码通过产生(例如,第一编码信道中的sig_flag、gt1_flag、gt2_flag和par_flag)。
所选择的语法元素被二进制化器(binarizer)506转换为二进制位字符串(binstring)510(用于非二进制值语法元素)或直接用作二进制位字符串(用于二进制值语法元素)。常规/旁路模式开关508确定语法元素二进制位字符串510是被熵编解码为常规二进制位还是旁路二进制位。上下文建模器(context modeler)512和常规编码引擎514使用上下文建模将常规二进制位处理为编码比特(code bit)518。旁路二进制位由旁路编码引擎516处理为编码比特518,而无需使用上下文建模。编码比特518被存储为比特流495的一部分。
常规/旁路模式开关508由常规/旁路模式选择模块520控制。常规/旁路模式选择模块通过使用常规二进制位计数器522来决定是选择常规模式还是旁路模式。常规二进制位计数器522对为当前子块编码的常规二进制位的数量进行计数,并且常规/旁路模式开关508允许将二进制位字符串编码为常规二进制位,只要常规二进制位计数器不大于或等于约束524即可。因此,约束524限制了当前子块或当前子块的当前编解码过程的常规二进制位的数量。可以基于子块的大小、当前块中的编码子块的数量、当前块中的子块的总数、当前子块的颜色分量或当前块或子块的其他属性来确定约束524。
图6概念性地示出了过程600,其基于限制用于变换块的常规二进制位的数量的约束,以常规模式或旁路模式选择性地熵编码当前块的语法元素。在一些实施例中,实现视频编码器400的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算器可读介质中的指令来执行过程600。在一些实施例中,实现视频编码器400的电子装置执行过程600。
视频编码器接收(在步骤610处)与表示当前块的变换系数的语法元素相关联的输入数据。变换系数可以是当前块的变换块的变换系数,或者是变换块的子块的变换系数。在一些实施例中,将在多个编解码过程中对语法元素进行熵编码。对于每个变换系数,将在第一编解码过程中对表示变换系数的绝对值的至少第一标志、第二标志和第三标志进行熵编码。第一标志可以指示变换系数水平的绝对值是否大于0(例如,sig_flag)。第二标志可以指示变换系数水平的绝对值是否大于1(例如,gt1_flag)。第三标志可以指示变换系数水平的绝对值是否大于2或3(例如,gt2_flag)。在一些实施例中,变换系数的绝对值的奇偶性(例如,par_flag)也在第一编解码过程中被熵编解码,而变换系数的其余部分在第二编解码过程中被熵编解码,并且在第三编解码过程中对变换系数的正负号进行熵编解码。使用基于上下文的模型在第一编解码过程中对变换系数的常规二进制位进行熵编解码,该上下文模型基于第一标志、第二标志、第三标志和变换系数的绝对值的奇偶性确定。
视频编码器识别(在步骤620处)约束,该约束限制用于对语法元素进行熵编解码的常规二进制位的总数。在一些实施例中,对于第一颜色分量的约束与对于第二颜色分量的约束是不同的。在一些实施例中,基于变换块的大小来确定约束。在一些实施例中,通过将默认约束与预定义因子相乘来计算该约束,该预定义因子从当前块中的编码子块的数量与当前块中的所有子块的数量之比得出。在一些实施例中,用于对第一编解码过程中的语法元素进行熵编解码的常规二进制位的总数受到约束的限制。在一些实施例中,不存在限制特定于单个语法元素的常规二进制位的数量的约束。
视频编码器选择或接收(在步骤625处)语法元素作为要被熵编码的当前语法元素。语法元素的选择可以由当前编解码过程确定。视频编码器然后确定(在步骤630处)是使用旁路模式还是常规模式来对当前语法元素进行编码。在一些实施例中,视频解码器跟踪已经用于编码语法元素的常规二进制位的数量或计数。将常规二进制位的数量与在步骤620中识别的约束进行比较,该约束限制了变换块的CABAC常规二进制位的最大允许数量,例如,用于编码子块的CABAC常规二进制位的最大允许数量。如果将当前语法元素编码为常规二进制位将超出约束,则过程进行到650。如果将当前语法元素编码为常规二进制位将不超过约束,则过程进行到640。在一些实施例中,视频编解码器可将特定语法元素编码为常规二进制位,不受约束。
在步骤640,视频编码器使用上下文建模将当前语法元素熵编解码为常规二进制位。视频编码器还更新(在步骤645处)用于对语法元素进行熵编解码的常规二进制位的总数或计数。然后,过程600进行到660。
在步骤650中,视频编码器将当前语法元素熵编码为旁路二进制位,而无需使用上下文建模。然后该过程进行到660。
在步骤660中,视频编码器确定是否有更多的语法元素要进行熵编码用于对当前变换块、当前子块或当前编解码过程。如果是,则处理返回到步骤625以对更多语法元素进行熵编码。否则,处理进行到670以将熵编码的语法元素存储为比特流中的编码比特。
IV.示例的视频解码器
图7示出示例的视频解码器700。如图所示,视频解码器700是图片解码或视频解码电路,其接收比特流795并将比特流的内容解码为视频帧的像素数据以供显示。视频解码器700具有用于解码比特流795的若干组件或模块,包括选自逆量化模块705、逆变换模块710、帧内预测模块725、运动补偿模块730、环路滤波器745、解码图片缓冲器750、MV缓冲器765、MV预测模块775和解析器790中的一些组件。运动补偿模块730是帧间预测模块740的一部分。
在一些实施例中,模块710-790是由计算设备的一个或多个处理单元(例如,处理器)执行的软件指令的模块。在一些实施例中,模块710-790是由电子装置的一个或多个IC实现的硬件电路的模块。尽管模块710-790被图示为单独的模块,但是一些模块可以组合为单个模块。
解析器790(或熵解码器)接收比特流795,并根据由视频编码或图片编码标准定义的语法来执行初始解析。解析的语法元素包括各种报头元素、标志以及量化的数据(或量化系数)712。解析器790通过使用诸如上下文自适应二进制算术编码(CABAC)或霍夫曼编码的熵编码技术解析各种语法元素。
逆量化模块705对量化数据(或量化系数)712进行去量化以获得变换系数,并且逆变换模块710对变换系数716执行逆变换以产生重构残差信号719。将来自帧内预测模块725或运动补偿模块730的预测像素数据713添加到重构残差信号719,以产生解码像素数据717。解码像素数据由环路滤波器745滤波,并存储在解码图片缓冲器750中。在一些实施例中,解码图片缓冲器750是视频解码器700外部的内存。在一些实施例中,解码图片缓冲器750是视频解码器700内部的内存。
帧内预测模块725从比特流795接收帧内预测数据,并据此从存储在解码图片缓冲器750中的解码像素数据717产生预测像素数据713。在一些实施例中,解码像素数据717也存储在用于图片内预测和空间MV预测的行缓冲器(未示出)中。
在一些实施例中,解码图片缓冲器750的内容用于显示。显示设备755或者撷取解码图片缓冲器750的内容以直接显示,或者将解码图片缓冲器的内容撷取到显示缓冲器。在一些实施例中,显示设备通过像素传输从解码图片缓冲器750接收像素值。
运动补偿模块730根据运动补偿MV(MC MV)从存储在解码图片缓冲器750中的解码像素数据717产生预测像素数据713。通过将从比特流795接收到的残差运动数据与从MV预测模块775接收到的预测MV相加,对这些运动补偿MV进行解码。
MV预测模块775基于为解码先前的视频帧而生成的参考MV(例如,用于执行运动补偿的运动补偿MV)生成预测的MV。MV预测模块775从MV缓冲器765中撷取先前视频帧的参考MV。视频解码器700将为解码当前视频帧而生成的运动补偿MV存储在MV缓冲器765中,作为用于产生预测MV的参考MV。
环路滤波器745对解码的像素数据717执行滤波或平滑操作以减少编码的伪像,特别是在像素块的边界处。在一些实施例中,执行的滤波操作包括采样自适应偏移(sampleadaptive offset,简称SAO)。在一些实施例中,滤波操作包括自适应环路滤波(adaptiveloop filter,简称ALF)。
图8示出视频解码器700的部分,其基于限制用于子块的常规二进制位的数目的约束而以常规模式或旁路模式选择性地熵解码块的子块的语法元素。该图示出了熵解码器模块790的组件。
熵解码器790从比特流795接收编码比特818。常规/旁路模式开关808确定编码比特将被解码为常规二进制位还是旁路二进制位。上下文建模器812和常规解码引擎814使用上下文建模将要被解码为常规二进制位的编码比特处理为二进制位字符串810。将被解码为旁路二进制位的编码比特由旁路编码引擎816在不使用上下文建模的情况下处理为二进制位字符串810。
二进制位字符串810被去二进制化器806转换为语法元素(对于非二进制值的语法元素),或直接用作语法元素(对于二进制值的语法元素)。语法元素转换器802将语法元素转换为视频解码器700的各个部分要使用的信号或值,包括将变换系数的语法元素(例如,sig_flag、gt1_flag、gt2_flag和par_flag)转换为量化系数712,以用于逆量化器705。语法元素根据预定编解码过程指定的顺序进行转换。
常规/旁路模式开关808由常规/旁路模式选择模块820控制。常规/旁路模式选择模块通过使用常规二进制位计数器822做出关于选择常规模式还是旁路模式的决定。常规二进制位计数器822计数针对当前子块解码的常规二进制位的数量,并且常规/旁路模式开关808允许将编码比特解码为常规二进制位,只要常规二进制位计数器不大于或等于约束(图中示为常规二进制位约束)824。因此,约束824限制了当前子块或当前子块的当前编解码过程的常规二进制位的数量。可以基于子块的大小、当前块中的已编码子块的数量、当前块中的子块的总数、当前子块的颜色分量或当前块和子块的其他属性来确定约束824。
图9概念性地示出了过程900,其基于限制用于变换块的常规二进制位的数量的约束,以规则模式或旁路模式选择性地熵解码块的子块的语法元素。在一些实施例中,实现视频解码器700的计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算器可读介质中的指令来执行过程900。在一些实施例中,实现视频解码器700的电子装置执行过程900。
视频解码器从比特流接收(在步骤910处)与表示当前块的变换系数的多个语法元素对应的编码比特。变换系数可以是当前块的变换块的变换系数,或者是变换块的子块的变换系数。在一些实施例中,将在多个编解码过程中对语法元素进行熵解码。对于每个变换系数,将在第一编解码过程中至少对指示变换系数的绝对值的第一标志、第二标志和第三标志进行熵解码。第一标志可以指示变换系数水平的绝对值是否大于0(例如,sig_flag)。第二标志可以指示变换系数水平的绝对值是否大于1(例如,gt1_flag)。第三标志可以指示变换系数水平的绝对值是否大于2或3(例如,gt2_flag)。在一些实施例中,变换系数的绝对值的奇偶性(例如,par_flag)也在第一编解码过程中被熵编解码,而变换系数的其余部分在第二编解码过程中被熵编解码,并且在第三编解码过程中对变换系数的正负号进行熵编解码。使用基于上下文的模型在第一编解码过程中对变换系数的常规二进制位进行熵编解码,该上下文模型基于第一标志、第二标志、第三标志和变换系数的绝对值的奇偶性确定。
视频解码器识别(在步骤920处)限制用于对语法元素进行熵解码的常规二进制位的总数的约束。在一些实施例中,对于第一颜色分量的约束与对于第二颜色分量的约束是不同的。在一些实施例中,基于变换块的大小来确定约束。在一些实施例中,通过将默认约束与预定义因子相乘来计算该约束,该预定义因子从当前块中的编码子块的数量与当前块中的所有子块的数量之比得出。在一些实施例中,用于对第一编解码过程中的语法元素进行熵解码的常规二进制位的总数受到约束的限制。在一些实施例中,不存在限制特定于单个语法元素的常规二进制位的数量的约束。
视频解码器从比特流的编码比特中选择或接收(在步骤925处)语法元素作为要被熵解码的当前语法元素。语法元素的选择可以由当前编解码过程确定。然后,视频解码器确定(在步骤930处)是使用旁路模式还是常规模式来解码当前语法元素。在一些实施例中,视频解码器跟踪已经用于解码语法元素的常规二进制位的数量或计数。将常规二进制位的数量与在步骤920中识别的约束进行比较,该约束限制了用于变换块的CABAC常规二进制位的最大允许数量,例如,用于编码子块的CABAC常规二进制位的最大允许数量。
如果将当前语法元素解码为常规二进制位将超过约束,则过程进行到950。如果将当前语法元素解码为常规二进制位将不超过约束,则过程进行940。在一些实施例中,视频编解码器不管约束如何,都可以将一些语法元素解码为常规二进制位。
在步骤940,视频解码器使用上下文建模对当前语法元素进行熵解码为常规二进制位。视频解码器还更新(在步骤945处)用于对语法元素进行熵解码的常规二进制位的总数或计数。然后,过程900进行到960。
在步骤950,视频解码器将当前语法元素熵解码为旁路二进制位,而无需使用上下文建模。然后该过程进行到960。
在步骤960,视频解码器确定是否存在更多要被熵解码的语法元素用于当前子块或当前子块的当前编解码过程。如果是,则处理返回到步骤925以对更多语法元素进行熵解码。否则,处理进行到970以使用诸如变换系数的熵解码的语法元素来重构当前块。
V.示例的电子系统
许多上述特征和应用被实现为被指定为记录在计算器可读存储介质(也称为计算器可读介质)上的一组指令的软件过程。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器,处理器的核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算器可读介质的示例包括但不限于只读光盘(read-only compact discs,简称CD-ROM)、闪存驱动器、随机存取内存(random-access memory,简称RAM)芯片、硬盘驱动器、可擦除可程序化只读内存(erasable programmable read-only memories,简称EPROM)、电可擦除可程序化只读内存(electrically erasable programmable read-onlymemories,简称EEPROM)等。计算器可读介质不包括无线或通过有线连接传递的载波和电子信号。
在本说明书中,术语“软件”旨在包括驻留在只读内存中的固件或存储在磁内存中的应用,其可以被读入内存以供处理器处理。同样,在一些实施例中,可以将多个软件发明实现为较大程序的子部分,同时保留不同的软件发明。在一些实施例中,多种软件发明也可以被实现为单独的程序。最后,一起实现这里描述的软件发明的单独程序的任一组合都在本公开的范围内。在一些实施例中,软件程序在被安装以在一个或多个电子系统上运行时,定义了一种或多种执行和实施软件程序的操作的特定机器实现。在一些实施例中,编码操作指编码操作或者解码操作。
图10概念性地示出了实现本公开的一些实施例的电子系统1000。电子系统1000可以是计算器(例如,台式计算器、个人计算器、平板计算器等)、电话、PDA或任一其他种类的电子设备。这样的电子系统包括各种类型的计算器可读介质以及用于各种其他类型的计算器可读介质的接口。电子系统1000包括总线1005、(一个或多个)处理单元1010、图形处理单元(graphic processor unit,简称GPU)1015、系统内存1020、网络1025、只读内存1030、永久存储设备1035、输入设备1040,以及输出设备1045。
总线1005共同表示通信地连接电子系统1000的许多内部设备的所有系统、外围设备和芯片组总线。例如,总线1005将处理单元1010与GPU 1015、只读内存1030、系统内存1020和永久存储设备1035通信地连接。
处理单元1010从这些各种存储单元中撷取要执行的指令和待处理的数据,以便执行本公开的处理。在不同的实施例中,一个或多个处理单元可以是单个处理器或多核处理器。一些指令被传递到GPU 1015并由其执行。GPU 1015可以卸除各种计算或补充由处理单元1010提供的图片处理。
只读内存(read-only memory,简称ROM)1030存储静态数据和由处理单元1010和电子系统的其他模块使用的静态数据和指令。另一方面,永久存储设备1035是读写存储设备。该设备是即使在电子系统1000关闭的情况下也存储指令和数据的非易失性存储单元。本公开的一些实施例使用大容量存储设备(诸如磁盘或光盘及其对应的磁盘驱动器)作为永久存储设备1035。
其他实施例使用可移动存储设备(例如软盘、闪存设备等,及其对应的磁盘驱动器)作为永久存储设备。像永久存储设备1035一样,系统内存1020是读写存储设备。但是,与存储设备1035不同,系统内存1020是易失性读写内存,例如随机存取内存。系统内存1020存储处理器在运行时使用的一些指令和数据。在一些实施例中,根据本公开的处理被存储在系统内存1020、永久存储设备1035和/或只读内存1030中。例如,根据一些实施例,各种存储单元包括用于处理多媒体剪辑的指令。处理单元1010从这些各种存储单元中撷取要执行的指令和要处理的数据,以便执行一些实施例的处理。
总线1005还连接到输入和输出设备1040和1045。输入设备1040使用户能够向电子系统传达信息并选择命令。输入设备1040包括字母数字键盘和指示设备(也称为“鼠标控制设备”)、照相机(例如,网络摄像头)、麦克风或用于接收语音命令的类似设备等。输出设备1045显示由电子系统或输出数据生成的图片。输出设备1045包括打印机和显示设备,例如阴极射线管(cathode ray tubes,简称CRT)或液晶显示器(liquid crystal display,简称LCD),以及扬声器或类似的音频输出设备。一些实施例包括既充当输入设备又充当输出设备的设备,例如触摸屏。
最后,如图10所示,总线1005还通过网络适配器(未示出)将电子系统1000耦合到网络1025。以这种方式,计算器可以是计算器网络(例如局域网(“LAN”)、广域网(“WAN”)或内部网络(intranet)或网络网(network of networks),例如因特网)的一部分。电子系统1000的任一或所有组件可以与本公开结合使用。
一些实施例包括电子组件,例如微处理器,将计算器程序指令存储在机器可读或计算器可读介质(或者称为计算器可读存储介质、机器可读介质或机器可读存储介质)中的存储器和内存。这种计算器可读介质的一些示例包括(computer-readable media,简称RAM)、ROM、只读光盘(read-only compact discs,简称CD-ROM)、可记录光盘(recordablecompact discs,简称CD-R)、可重写光盘(rewritable compact discs,简称CD-RW)、只读数字多功能光盘(例如,DVD-ROM、双层DVD-ROM),各种可记录/可重写DVD(例如DVD-RAM、DVD-RW、DVD+RW等),闪存(例如SD卡、mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可记录的光盘、超密度光盘,任一其他光学或磁性介质以及软盘。该计算器可读介质可以存储可由至少一个处理单元执行的计算器程序,并且该计算器程序包括用于执行各种操作的指令集。计算器程序或计算器代码的示例包括诸如由编译程序生成的机器代码,以及包括由计算器、电子部件或使用解释器的微处理器执行的高级代码的文件。
尽管以上讨论主要是指执行软件的微处理器或多核处理器,但是许多上述特征和应用是由一个或多个集体电路执行的,例如专用集体电路(application specificintegrated circuits,简称ASIC)或现场可程序化控制器门数组(field programmablegate arrays,简称FPGA)。在一些实施例中,这样的集体电路执行存储在电路本身上的指令。另外,一些实施例执行存储在可程序化逻辑设备(programmable logic devices,简称PLD)、ROM或RAM设备中的软件。
如在本说明书和本申请的任一权利要求中使用的,术语“计算器”、“服务器”、“处理器”和“内存”均指电子或其他技术设备。这些术语不包括个人或人群。为了说明的目的,术语“显示”或“显示中”是指在电子设备上显示。如在本说明书和本申请的任一权利要求中所使用的,术语“计算器可读介质”、“计算器可读媒介”和“机器可读介质”完全限于以可被计算器读取的形式存储信息的有形物理对象。这些术语不包括任一无线信号、有线下载信号和任一其他临时信号。
虽然已经参考许多具体细节描述了本公开,但是所属技术领域的技术人员将认识到,在不脱离本公开的精神的情况下,可以以其他特定形式来体现本公开。此外,许多附图(包括图6和图9)在概念上说明了过程。这些过程的特定操作可能无法按照所示和所描述的确切顺序执行。可以不在一个连续的一系列操作中执行特定操作,并且可以在不同的实施例中执行不同的特定操作。此外,该过程可以使用几个子过程来实现,或者作为更大的宏过程的一部分来实现。因此,所属技术领域的技术人员将理解,本公开不受限于前述说明性细节,而是由所附权利要求限定。
附加声明
文中描述的主题有时示出了包含在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任一布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包含但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。
此外,关于文中基本上任一复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,所述技术领域的技术人员可以将复数变换成单数,和/或将单数变换成复数。
所述技术领域的技术人员将会理解,通常,文中所使用的术语,特别是在所附权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包含”应当被解释为“包含但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。所述技术领域的技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(a或an)”的权利要求陈述对象的介绍将包含这样介绍的权利要求陈述对象的任一权利要求限制为只包含一个这样的陈述对象的发明,即使在同一权利要求包含介绍性短语“一个或更多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”之类的不定冠词的情况下(例如,“一个(a)”和/或“一个(an)”应当通常被解释为意味着“至少一个”或“一个或更多个”)也如此;上述对以定冠词来介绍权利要求陈述对象的情况同样适用。另外,即使明确地陈述了介绍的权利要求陈述对象的具体数目,但所述技术领域的技术人员也会认识到:这样的陈述通常应当被解释为意味着至少所陈述的数目(例如,仅有“两个陈述对象”而没有其他修饰语的陈述通常意味着至少两个陈述对象,或两个或更多个陈述对象)。此外,在使用类似于“A、B和C中的至少一个等”的惯用语的情况下,通常这样的结构意在所述技术领域的技术人员所理解的该惯用语的含义(例如,“具有A、B和C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。在使用类似于“A、B或C中的至少一个等”的惯用语的情况下,通常这样的结构意在所述技术领域的技术人员所理解的该惯用语的含义(例如,“具有A、B或C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。所述技术领域的技术人员将进一歩理解,不管在说明书、权利要求中还是在附图中,表示两个或更多个可替换的术语的几乎任意析取词和/或短语应当理解成考虑包含术语中的一个、术语中的任一个或所有两个术语的可能性。例如,短语“A或B”应当被理解成包含“A”、“B”、或“A和B”的可能性。
尽管已经在文中使用不同的方法、设备以及系统来描述和示出了一些示例性的技术,但是所述技术领域的技术人员应当理解的是:可以在不脱离所要求保护的主题的情况下进行各种其它修改以及进行等同物替换。此外,在不脱离文中描述的中心构思的情况下,可以进行许多修改以使特定的情况适应于所要求保护的主题的教导。因此,意在所要求保护的主题不限制于所公开的特定示例,而且这样的要求保护的主题还可以包含落在所附权利要求的范围内的所有实施及它们的等同物。

Claims (12)

1.一种编解码变换系数的方法,包括:
接收与表示当前块的多个变换系数的多个语法元素相关联的输入数据;以及
将所述多个变换系数的所述多个语法元素选择性地熵编解码为使用上下文建模的多个常规二进制位或者是没有上下文建模的多个旁路二进制位,其中,用于对所述当前块的所述多个变换系数的所述多个语法元素进行熵编解码的所述多个常规二进制位的数量的总数受到约束的限制,其中基于变换块的大小来确定限制所述多个常规二进制位的所述数量的总数的所述约束;
其中所述约束是由所述当前块的所有所述多个变换系数的所有所述多个语法元素共享,而不存在限制特定于单个语法元素或单个变换系数的多个常规二进制位的数量的总数的约束。
2.如权利要求1所述的方法,其特征在于,在多个编解码过程中对所述多个语法元素进行编解码,并且其中,通过所述约束来限制在第一编解码过程中用于对所述多个语法元素进行熵编解码的所述多个常规二进制位的总数。
3.如权利要求2所述的方法,其特征在于,所述第一编解码过程中被熵编解码的第一标志、第二标志和第三标志中的一个或多个指示变换系数的绝对值,并且:
所述第一标志指示所述变换系数的所述绝对值是否大于0,
所述第二标志指示所述变换系数的所述绝对值是否大于1,以及
所述第三标志指示所述变换系数的所述绝对值是否大于3。
4.如权利要求3所述的方法,其特征在于,在所述第一编解码过程中熵编解码所述变换系数的所述绝对值的奇偶性,
在第二编解码过程中对所述变换系数的剩余部分进行熵编解码,以及
在第三编解码过程中对所述变换系数的正负号进行熵编解码。
5.如权利要求4所述的方法,其特征在于,通过使用依赖于一个或多个相邻变换系数的绝对值的一个或多个指示符的一个或多个上下文模型来对所述第一编解码过程的所述多个常规二进制位进行熵编解码。
6.如权利要求5所述的方法,其特征在于,以所述第三标志的值为条件选择至少一个上下文模型。
7.如权利要求1所述的方法,其特征在于,所述多个语法元素表示变换块的多个变换系数。
8.如权利要求1所述的方法,其特征在于,限制所述多个常规二进制位的所述数量的总数的所述约束对于第一颜色分量与对于第二颜色分量是不同的。
9.如权利要求1所述的方法,其特征在于,通过将默认约束与预定义因子相乘来计算限制所述多个常规二进制位的所述数量的总数的所述约束,所述预定义因子是从所述当前块中的编码子块的数量与所述当前块中的所有子块的数量之比得出的。
10.如权利要求1所述的方法,其特征在于,限制所述多个常规二进制位的所述数量的总数的所述约束限制了用于所述当前块的子块的多个常规二进制位的数量的总数。
11.一种解码变换系数的解码器电路,能够:
接收与表示当前块的多个变换系数的多个语法元素相关联的比特流编码比特;
将所述编码比特选择性地熵编解码为所述多个语法元素,为使用上下文建模的多个常规二进制位或者是没有上下文建模的多个旁路二进制位,其中,用于对所述多个语法元素进行熵解码的所述多个常规二进制位的数量的总数受到约束的限制,其中基于变换块的大小来确定限制所述多个常规二进制位的所述数量的总数的所述约束,其中所述约束是由所述当前块的所有所述多个变换系数的所有所述多个语法元素共享,而不存在限制特定于单个语法元素或单个变换系数的多个常规二进制位的数量的总数的约束;以及
使用熵解码的所述多个语法元素重构所述当前块。
12.一种编码变换系数的电子装置,包括:
具有以下功能的编码器电路:
接收表示当前块的多个变换系数的多个语法元素;
将所述多个语法元素选择性地熵编码为使用上下文建模的多个常规二进制位或者是没有上下文建模的多个旁路二进制位,其中,用于对所述多个语法元素进行熵编码的所述多个常规二进制位的数量的总数受到约束的限制,其中基于变换块的大小来确定限制所述多个常规二进制位的所述数量的总数的所述约束,其中所述约束是由所述当前块的所有所述多个变换系数的所有所述多个语法元素共享,而不存在限制特定于单个语法元素或单个变换系数的多个常规二进制位的数量的总数的约束;以及
将熵编码的所述多个语法元素存储在比特流中。
CN201980055934.6A 2018-08-24 2019-08-23 编码转换系数的熵编解码方法与装置 Active CN112640448B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201862722237P 2018-08-24 2018-08-24
US62/722,237 2018-08-24
US201862734277P 2018-09-21 2018-09-21
US62/734,277 2018-09-21
US201862735100P 2018-09-22 2018-09-22
US62/735,100 2018-09-22
US201862735927P 2018-09-25 2018-09-25
US62/735,927 2018-09-25
US16/548,340 2019-08-22
US16/548,340 US11483575B2 (en) 2018-08-24 2019-08-22 Coding transform coefficients with throughput constraints
PCT/CN2019/102284 WO2020038465A1 (en) 2018-08-24 2019-08-23 Coding transform coefficients with throughput constraints

Publications (2)

Publication Number Publication Date
CN112640448A CN112640448A (zh) 2021-04-09
CN112640448B true CN112640448B (zh) 2024-04-05

Family

ID=69587214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980055934.6A Active CN112640448B (zh) 2018-08-24 2019-08-23 编码转换系数的熵编解码方法与装置

Country Status (4)

Country Link
US (1) US11483575B2 (zh)
EP (1) EP3841746A4 (zh)
CN (1) CN112640448B (zh)
WO (1) WO2020038465A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112166614B (zh) * 2018-03-27 2023-07-14 株式会社Kt 用于处理视频信号的方法和设备
WO2020054713A1 (en) * 2018-09-11 2020-03-19 Sharp Kabushiki Kaisha Systems and methods for coding transform coefficient level values
CN116723334A (zh) 2018-09-20 2023-09-08 Lg电子株式会社 图像解码设备、图像编码设备和比特流发送设备
WO2020060328A1 (ko) * 2018-09-21 2020-03-26 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020064745A1 (en) * 2018-09-24 2020-04-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Efficient coding of transform coefficients using or suitable for a combination with dependent scalar quantization
KR20230165360A (ko) * 2018-10-05 2023-12-05 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
WO2020071879A1 (ko) * 2018-10-05 2020-04-09 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
US11470329B2 (en) * 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
EP3939285A1 (en) * 2019-03-12 2022-01-19 InterDigital VC Holdings, Inc. Flexible allocation of regular bins in residual coding for video coding
KR20210158396A (ko) * 2019-08-31 2021-12-30 엘지전자 주식회사 비디오 또는 영상 코딩 방법 및 그 장치
CN114467301A (zh) * 2019-08-31 2022-05-10 Lg 电子株式会社 图像解码方法及其设备
KR20210130234A (ko) * 2019-08-31 2021-10-29 엘지전자 주식회사 영상 코딩 시스템에서 단순화된 레지듀얼 데이터 코딩을 사용하는 영상 디코딩 방법 및 그 장치
EP4024861A4 (en) * 2019-08-31 2023-06-28 LG Electronics Inc. Method for decoding video for residual coding and device therefor
EP4035376A1 (en) * 2019-09-24 2022-08-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Multiple stage residual coding in modern hybrid image and video coding solutions
JP7415027B2 (ja) 2020-02-29 2024-01-16 北京字節跳動網絡技術有限公司 ハイレベルシンタックス要素のための制約
CN115362685A (zh) * 2020-04-01 2022-11-18 北京达佳互联信息技术有限公司 用于视频编解码的无损编解码模式
CN115804092A (zh) 2020-05-22 2023-03-14 抖音视界有限公司 通用约束标志的信令
CN115918085A (zh) * 2020-05-22 2023-04-04 抖音视界有限公司 颜色分量的信令通知
US20220329810A1 (en) * 2021-04-12 2022-10-13 Tencent America LLC Method and apparatus for intra string copy
CN115706797A (zh) * 2021-08-05 2023-02-17 腾讯科技(深圳)有限公司 多媒体数据编码方法、装置、设备以及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US20130301738A1 (en) * 2012-01-19 2013-11-14 Sharp Laboratories Of America, Inc. Modified coding for a transform skipped block for cabac in hevc
CN104054341A (zh) * 2012-01-17 2014-09-17 高通股份有限公司 用于上下文自适应性二进制算术译码系数层级译码的通过量改进
CN107660339A (zh) * 2015-05-29 2018-02-02 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据
CN108028919A (zh) * 2015-09-10 2018-05-11 联发科技(新加坡)私人有限公司 用于图像与视频编解码中语法元素的上下文建模的方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
JP5676744B2 (ja) * 2010-04-13 2015-02-25 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン エントロピー符号化
EP2740272A4 (en) 2011-08-04 2015-04-08 Mediatek Inc METHOD AND DEVICE FOR RECORDING BINARIZATION OF SYNTAX ELEMENTS IN CABAC
WO2013050612A1 (en) * 2011-10-06 2013-04-11 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Entropy coding buffer arrangement
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9503717B2 (en) * 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
CN103931188B (zh) 2012-01-16 2017-05-10 寰发股份有限公司 语法元素的基于上下文的自适应二进制算术编码装置及方法
CN107302368B (zh) * 2012-01-20 2020-07-28 Ge视频压缩有限责任公司 从数据流解码具有变换系数级别的多个变换系数的装置
US9313498B2 (en) * 2012-04-16 2016-04-12 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients 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
US20140003530A1 (en) * 2012-06-28 2014-01-02 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding
US9392292B2 (en) 2013-09-27 2016-07-12 Apple Inc. Parallel encoding of bypass binary symbols in CABAC encoder
US10448058B2 (en) 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
US20160373742A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Intra prediction and intra mode coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
CN104054341A (zh) * 2012-01-17 2014-09-17 高通股份有限公司 用于上下文自适应性二进制算术译码系数层级译码的通过量改进
US20130301738A1 (en) * 2012-01-19 2013-11-14 Sharp Laboratories Of America, Inc. Modified coding for a transform skipped block for cabac in hevc
CN107660339A (zh) * 2015-05-29 2018-02-02 高通股份有限公司 使用增强型上下文自适应二进制算术译码设计来译码数据
CN108028919A (zh) * 2015-09-10 2018-05-11 联发科技(新加坡)私人有限公司 用于图像与视频编解码中语法元素的上下文建模的方法及装置

Also Published As

Publication number Publication date
EP3841746A1 (en) 2021-06-30
WO2020038465A1 (en) 2020-02-27
EP3841746A4 (en) 2022-06-08
US20200068206A1 (en) 2020-02-27
CN112640448A (zh) 2021-04-09
US11483575B2 (en) 2022-10-25

Similar Documents

Publication Publication Date Title
CN112640448B (zh) 编码转换系数的熵编解码方法与装置
TWI753356B (zh) 用於編碼或解碼轉換塊的方法與裝置
US10523966B2 (en) Coding transform blocks
TWI723448B (zh) 圖像以及視訊資料中編碼單元的熵編解碼
US11303898B2 (en) Coding transform coefficients with throughput constraints
US11350131B2 (en) Signaling coding of transform-skipped blocks
WO2020151753A1 (en) Method and apparatus of transform coefficient coding with tb-level constraint
TW202139697A (zh) 量化相關參數之傳訊技術
CN114731414A (zh) 发信图像以及视频的块分割
CN112042194B (zh) 一种编码/解码的方法及电子装置
TWI734178B (zh) 具有產出限制的編碼轉換係數
WO2024017006A1 (en) Accessing neighboring samples for cross-component non-linear model derivation
WO2024027566A1 (en) Constraining convolution model coefficient
JP2022548685A (ja) 画像データの符号化及び復号化
KR20240029026A (ko) 비디오 코딩 중의 시퀀스 레벨 및 슬라이스 레벨 문법 표시
TW202333495A (zh) 轉換係數符號的熵編碼
KR20240027581A (ko) 인코딩 및 디코딩 방법, 비트 스트림, 인코더, 디코더 및 컴퓨터 저장 매체

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: 20220531

Address after: Chinese Taiwan jhubei City, Hsinchu County Taiwan Yuan Street No. five 3 floor 7

Applicant after: MEDIATEK Inc.

Address before: Hsinchu Science Park Road Taiwan Hsinchu city China Dusing No. 1

Applicant before: MEDIATEK Inc.

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