降低本地邻域的使用的残差译码的制作方法

文档序号:26013135发布日期:2021-07-23 21:34阅读:76来源:国知局
本申请属于视频压缩领域,并且其目的在于与现有视频压缩系统相比降低残差译码的复杂度。
背景技术
::对于视频数据的压缩,使用图片间预测来利用视频源信号的不同图片之间的时间冗余,或者使用图片内预测来利用该源信号的单个图片中的空间冗余,来译码图片的块形区域。为此,依据所使用的压缩标准,可以指定图片中的各种块尺寸。然后,在预测残差被量化之前,使用变换来进一步压缩预测残差以去除残差内的相关性,并且最后使用熵译码(也称为残差译码)来进一步压缩预测残差。当前视频压缩标准(例如h.264/mpeg-4avc和高效视频译码(hevc))使用所谓的上下文自适应二进制算术译码(cabac)来进行熵译码。cabac使用二进制算术译码,这意味着仅对二进制值进行编码。相应地,在算术译码之前,非二进制值的符号必须被转换为二进制值。然后,对于每个比特,译码器选择要使用的概率模型,并使用来自附近元素的信息来优化概率估计。最后,应用算术译码来压缩数据。此外,当前正在开发的标准,例如jemvtm-1或vvc草案3(参见“通用视频译码(草案3)”,文献:jvet-l1001,itu-tsg16wp3的联合视频探索团队(jvet)和iso/iecjtc1/sc29/wg11,第12次会议:中国澳门,2018年10月3-12日)采用当前系数的所谓的本地相邻模板来对cabac上下文建模,该上下文用于用信号通知与当前系数相关联的一些语法元素。技术实现要素:根据本公开的一方面,公开了一种用于对图片进行编码和/或解码的方法。这种方法包括:确定变换块的量化变换系数的一个或多个语法元素的上下文模型索引,其中不同上下文模型索引针对所述变换块的不同区域中的量化变换系数而被获得,且单个上下文索引被用于所述变换块的至少一个区域;以及基于所确定的内容模型索引,针对与特定量化变换系数相关联的一个或多个语法元素选择若干上下文模型中的一者。根据本公开的另一方面,公开了一种用于对图片进行编码和/或解码的装置。这种装置包括一个或多个处理器,其中所述一个或多个处理器被配置为:确定变换块的量化变换系数的一个或多个语法元素的上下文模型索引,其中不同上下文模型索引针对所述变换块的不同区域中的量化变换系数而被获得,且单个上下文索引被用于所述变换块的至少一个区域;以及基于所确定的内容模型索引,针对与特定量化变换系数相关联的一个或多个语法元素选择若干上下文模型中的一者。根据本公开的另一方面,公开了一种用于对图片进行编码和/或解码的装置(apparatus),该装置包括:用于确定变换块的量化变换系数的一个或多个语法元素的上下文模型索引的装置(means),其中不同上下文模型索引针对所述变换块的不同区域中的量化变换系数而被获得,且单个上下文索引被用于所述变换块的至少一个区域;以及用于基于所确定的内容模型索引,针对与特定量化变换系数相关联的所述一个或多个语法元素选择若干上下文模型中的一者的装置。本公开还提供了一种包括指令的计算机程序产品,当该指令由计算机执行时,所述指令使计算机执行所描述的方法。以上呈现了本主题的简化概述,以便提供对本主题实施例的一些方面的基本理解。本概述不是对本主题的详尽综述。其并非旨在标识各实施例的关键/重要元素或描绘本主题的范围。其唯一目的是以简化形式呈现本主题的一些概念,作为稍后呈现的更详细描述的序言。从以下参照附图进行的对说明性实施例的详细描述中,本公开的附加特征和优点将变得显而易见附图说明图1示出了一般视频压缩方案的示例的框图。图2示出了一般视频解压缩方案的示例的框图。图3在a)中示出了表示压缩hevc图片的一些译码树单元,以及在b)中示出了将译码树单预元划分为译码单元、预测单元和变换单元。图4示出了译码树单元被切分为四叉树和二叉树两种形式的示例以及译码树单元的相应译码树表示。图5在a)中示出了水平和垂直三叉树译码单元切分模式,以及在b)中示出了在本申请中所考虑的视频译码方案中支持的译码单元切分模式的完整集合。图6示出了在vvc相关量化系统中使用的两个标量量化器。图7示出了用于在vvc中的标量量化器之间切换的有限状态机。图8示出了8×8变换块中的cg与系数之间的扫描顺序。图9示出了4回合处理中的语法元素的译码/解析。图10示出了分别用于在(a)亮度和(b)色度中对系数有效性标志进行译码的上下文。图11示出了用于确定用来对系数有效性标志进行译码的上下文的vvc草案3处理。图12示出了在vvc草案3中使用的上下文,该上下文用于分别在(a)亮度和(b)色度中对与每个量化系数相关联的标志gt1、奇偶校验和gt2进行译码。图13示出了确定用于对系数有效性标志进行译码的上下文的vvc草案3处理。图14示出了根据第一实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码所提出的上下文建模。图15示出了根据第一实施例的用于计算被用于对gt1、奇偶校验和gt2标志进行译码的cabac上下文的索引的所提出的处理。图16示出了所提出的第一实施例对vvc测试条件的ra配置(一个帧内周期)中的译码效率的影响。图17示出了根据第二实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码的所提出的上下文建模。图18示出了根据第三实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码的所提出的上下文建模。图19示出了根据第四实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码的所提出的上下文建模。图20示出了根据第五实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码的所提出的上下文建模。图21示出了根据第六实施例的针对色度块的gt1、奇偶校验、gt2标志的cabac译码的所提出的上下文建模。图22示出了根据本公开的实施例的方法的一般流程图。图23示出了cabac解码过程。图24示出了cabac译码过程。图25示出了可以实现示例性实施例的各个方面的系统的示例的框图。应当理解,附图是为了说明各个方面和实施例的示例的目的,并且不一定是唯一可能的配置。遍及各个附图,相同的参考标记表示相同或相似的特征。具体实施方式为了描述的清楚,以下描述将参考涉及视频压缩技术的实施例来描述各方面,所述视频压缩技术例如hevc、jem和/或h.266。然而,所描述的方面可应用于其它视频处理技术和标准。图1示出了示例编码器100。可以设想该编码器100的变型,但是为了清楚起见,下面描述编码器100,而不描述所有预期的变型。在被编码之前,视频序列可以经过预编码处理(101),这例如通过对输入彩色图片应用颜色变换(例如从rgb4:4:4到ycbcr4:2:0的转换)或者执行输入图片分量的重新映射,以便得到对压缩更有弹性(resilient)的信号分布(例如使用颜色分量之一的直方图均衡)来执行。元数据可以与预处理相关联并且被附加到比特流。为了用一个或多个图片对视频序列进行编码,图片被分割(102),例如,分割成一个或多个切片,其中每个切片可以包括一个或多个切片片段。在hevc中,切片片段被组织成译码单元、预测单元和变换单元。hevc规范在“块”与“单元”之间进行区分,其中“块”寻址样本阵列中的特定区域(例如,亮度,y),且“单元”包含所有经编码颜色分量(y、cb、cr或单色)的并置块、语法元素及与所述块相关联的预测数据(例如,运动向量)。在编码器100中,如下所述,由编码器元件对图片进行编码。以例如cu为单位分割(1021)并处理要编码的图片。每一单元使用帧内或帧间模式被编码。当单元以帧内模式被编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)使用帧内模式或帧间模式中的哪一个来译码单元,并且通过例如预测模式标志来指示帧内/帧间决定。例如,通过从原始图像块中减去(110)预测块来计算预测残差。然后,对预测残差进行变换(125)和量化(130)。对量化变换系数以及运动矢量和其他语法元素进行熵译码(145)以输出比特流。编码器可以跳过变换,并直接对未变换的残差信号应用量化。编码器可以绕过变换和量化,即,直接对残差进行译码而不应用变换或量化处理。编码器对编码块进行解码,以提供用于进一步预测的参考。对量化变换系数进行去量化(140)和逆变换(150)以对预测残差进行解码。将解码的预测残差和预测块进行组合(155),重构图像块。环内滤波器(165)被应用于重构的图片,以执行例如解块/sao(采样自适应偏移)滤波以减少编码伪像。将经滤波的图像存储在参考图片缓冲区(180)中。图2示出了视频解码器200的框图。在解码器200中,如下所述,由解码器元件解码比特流。视频解码器200通常执行与图1中所描述的编码回合互逆的解码回合。编码器100通常还执行视频解码作为编码视频数据的部分。特别地,解码器的输入包括视频比特流,其可以由视频编码器100产生。比特流首先被熵解码(230)以获得变换系数、运动矢量和其他译码信息。图片分割信息指示图片如何被分割。解码器因此可以根据解码的图片分割信息来划分(235)图片。变换系数被去量化(240)和逆变换(250)以解码预测残差。将解码的预测残差与预测块进行组合(255),重构图像块。预测块可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)。环内滤波器(265)被应用于重构的图像。将经滤波的图像存储在参考图片缓冲区(280)中。解码后的图片可以进一步经历后解码处理(285),例如,逆颜色变换(例如,从ycbcr4:2:0到rgb4:4:4的转换)或执行在预编码处理(101)中执行的重新映射处理的逆重新映射。后解码处理可以使用在预编码处理中导出并且在比特流中用信号通知的元数据。本申请提出了在诸如分别在图1和图2中示出的编码器和解码器中的变换系数熵译码的自适应,其中,可以使用各种矩形译码单元尺寸来表示压缩域中的图片。在hevc中,视频压缩标准或类似于hevc译码单元的技术被定义如下。将被编码或解码的图片被划分为所谓的译码树单元(ctu),其是译码的基本单元,并且ctu的连续集合被分组为切片。ctu通常包括三个译码树块(ctb)以及相关联的语法元素,其中一个块用于亮度采样,而两个块用于色度采样。译码树单元可以进一步被切分为译码单元(cu),cu是用于预测类型决定的最小译码元素,即,是执行图片间还是图片内预测。最后,译码单元可被进一步切分成一个或多个预测单元(pu)以提高预测效率。图3a示出了将图片的一部分分割成ctu0、1、2的示例。在图中,直接使用左边的ctu0,而基于ctu覆盖的图片区域的信号特性将其右边的ctu1分割成多个较小的部分。箭头指示相应部分的预测运动矢量。ctb是将四叉树分割成译码块(cb)的根,且译码块可分割成一个或多个预测块(pb)且形成将四叉树分割成变换块(tb)的根。大于4×4的变换块(tb)被分成称为系数组(cg)的量化系数的4×4子块。对应于译码块、预测块和变换块,译码单元(cu)包括预测单元(pu)和变换单元(tu)的树结构集合,pu包括所有颜色分量的预测信息,并且tu包括每个颜色分量的残差译码语法结构。亮度分量的cb、pb和tb的尺寸适用于相应的cu、pu和tu。图3b中示出了用于将译码树单元划分为译码单元、预测单元和变换单元的示例。新出现的视频压缩工具包括压缩域中的译码树单元表示,其允许在压缩域中以更灵活的方式表示图片数据。译码树的这种灵活表示的优点在于,与hevc标准的cu/pu/tu布置相比,其提供了增加的压缩效率。所谓的四叉树加二叉树(qtbt)译码工具提供了这种增加的灵活性。它包括于译码树中,其中译码单元可以被切分成四叉树和二叉树形式。图4中示出了使用qtbt和相应译码树表示的译码树单元的块分割的示例。译码单元的切分在编码器侧通过速率失真优化过程来决定,该过程包括确定具有最小速率失真成本的ctu的qtbt表示。在qtbt技术中,cu具有正方形或矩形形状。译码单元的大小总是2的幂,并且通常从4到128。除了译码单元的这各种矩形形状之外,与hevc相比,这种新的ctu表示具有以下不同的特征。·ctu的qtbt分解由两个阶段构成:首先,ctu以四叉树方式被切分,然后每个四叉树叶可以进一步以二进制方式被划分。这在图4的右边示出,其中实线表示四叉树分解阶段,且虚线表示空间上嵌入四叉树叶中的二进制分解。在二叉树的每个切分节点中,标志用信号通知是使用水平切分(0)还是垂直切分(1),对于四叉树切分,不需要切分类型的指示。·在帧内切片中,亮度和色度块分割结构是分离的,并且是独立决定的。·不再采用cu分割成预测单元或变换单元。换句话说,每个译码单元系统地由单个预测单元(先前2n×2n个预测单元分割类型)和单个变换单元(不划分成变换树)构成。vvc(通用视频译码)视频压缩标准中采用的另一种cu切分模式,称为水平或垂直三叉树切分模式,包括将译码单元(cu)划分为3个子译码单元(子cu),在所考虑的空间划分的方向上,各个子译码单元的尺寸等于母cu尺寸的四分之一、二分之一和四分之一。这在图5a中示出。在本申请中所考虑的视频译码方案中所支持的cu切分模式的完整集合显示于图5b上。下面,详细描述所提出的方法。首先描述在vvc草案3中执行的系数量化和熵译码。然后,提出了用于对有效系数标志进行译码的不同实施例。在题为“由fraunhoferhhi提出的sdr、hdr和360°视频译码技术方案的描述”(文献jvet-j0014,第10次会议:美国圣地亚哥,2018年4月10-20日(此后称为“jvet-j0014”))的jvet文献中提出了相关标量(scalar)量化,其中具有不同重构级别的两个标量量化器被用于量化。与传统的独立标量量化()如在hevc和vtm-1中使用的相比,该方法的主要效果在于,变换系数的可容许重构值集合取决于按重构顺序在当前变换系数级别之前的变换系数级别的值。相关标量量化的方法通过以下步骤实现:(a)定义具有不同重构级别的两个标量量化器,以及(b)定义在该两个标量量化器之间切换的过程。图6中示出了所使用的两个标量量化器,用q0和q1表示。可用重构级别的位置由量化步长δ唯一指定。如果忽略了变换系数的实际重构使用整数算术的事实,则两个标量量化器q0和q1被特征化如下:q0:第一量化器q0的重构级别由量化步长δ的偶数整数倍给出。当使用该量化器时,根据下式计算去量化变换系数t′:t′=2·k·δ,其中k表示相关联的量化系数(传送的量化索引)。q1:第二量化器q1的重构级别由量化步长δ的奇数整数倍加上等于零的重构级别给出。如下根据量化系数k的函数计算去量化变换系数t′:t′=(2·k-sgn(k))·δ,其中sgn(·)是如下定义的符号函数:sgn(x)=(k==0?0:(k<0?-1∶1)).所使用的标量量化器(q0或q1)不在比特流中明确地用信号通知。相反,用于当前变换系数的量化器由在译码/重构顺序中在当前变换系数之前的量化系数的奇偶性来确定。如图7所示,两个标量量化器(q0和q1)之间的切换是经由具有四个状态(state)的状态机来实现的,这四个状态分别等于0、1、2或3。给定量化系数的状态是由在译码/重构顺序中在当前量化系数之前的量化系数的奇偶性唯一确定的。在变换块的逆量化开始时,状态被设置为等于0。变换系数以扫描顺序(即,以它们被熵解码的相同顺序)被重构。如图7所示,在重构当前变换系数之后,状态被更新。k是量化系数。下一状态取决于当前状态和当前量化系数k的奇偶性(k&1):state=statetranstable[state][k&1],其中statetranstable表示图7所示的状态转换表,并且运算符&指定二进制补码算术中的逐位“与”运算。下面,描述如何对变换块(tb)中包含的量化系数进行熵译码和解码。首先,变换块被分成称为译码组(cg)的量化系数的4×4子块。熵译码/解码由若干扫描回合组成,这些扫描回合根据图8所示的对角扫描顺序对tb进行扫描。vvc中的变换系数译码涉及五个主要步骤:扫描、最后有效系数译码、有效性图译码、系数级别余数译码、绝对级别及符号数据译码。然后,在tb上的扫描回合包括根据对角扫描顺序来按序处理每个cg,并且还根据所考虑的对角扫描顺序扫描每个cg内的16个系数。扫描回合开始于tb中的最后有效系数,并处理所有系数,直到dc系数为止。变换系数的熵译码包括以下列表中的多达7个语法元素:·sig_flag:系数的有效性(零/非零)。·gt1_flag:指示系数级别的绝对值是否大于1。·par_flag:指示系数的奇偶性大于1。·gt2_flag:指示系数级别的绝对值是否大于2。·remainder:系数级别的绝对值的剩余值(如果值大于在先前回合中译码的值)。·abs-level:系数级别的绝对值的值(如果对于最大数量的bin预算事项的当前系数没有用信号通知cabacbin)。·sign_flag:有效系数的符号(0:正;1:负)。一旦通过解码上述元素的子集(除符号之外)知道量化系数的绝对值,那么就其绝对值而言,不针对所述系数译码进一步语法元素。以相同方式,仅针对非零系数用信号通知符号标志。对给定cg的所有必要扫描回合进行译码,直到在该cg中的所有量化系数能够在去往下一个cg之前被重构。整体的解码tb解析过程由以下主要步骤构成:1.解码最后有效系数坐标。这包括以下语法元素:last_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_sufffx以及last_sig_coeff_y_sufffx。这为解码器提供了整个tb中最后一个非零系数的空间位置(x和y坐标)。然后,对于从包含tb中最后有效系数的cg到tb中左上cg的每个连续cg,应用以下步骤。2.解码cg有效性标志,这在hevc规范中被称为coded_sub-block_flag。3.针对所考虑的cg中的每个系数,解码有效系数标志。这对应于语法元素sig_flag。这指示cg中哪些系数是非零的。接下来的解析阶段旨在针对所考虑的cg中被知道为非零的系数,用信号通知系数级别。这涉及以下语法元素。4.gt1_flag:该标志指示当前系数的绝对值是否高于1。如果不是,则绝对值等于1。5.par_fag:该标志指示当前量化系数是否是偶数。如果当前量化系数的gt1__flag是真,则对其进行译码。如果par_fag为零,则量化系数为偶数,否则为奇数。在解码器侧解析par_fag_之后,将部分解码的量化系数设置为等于(1+gt1_flag+par_flag)。6.gt2_flag:该标志指示当前系数的绝对值是否高于2。如果否,则是绝对值等于(1+gt1_flag+par_flag)。如果(1+gt1_flag+par_flag)大于或等于2,则译码gt2_flag。一旦解析了gt2_flagg,则量化系数值在解码器侧变为(1+gt1_flag+par_flag+(2*gt2_flag))。7.remainder:这编码了系数的绝对值。这适用于部分解码的绝对值大于或等于4。注意,在vvc草案3中,对于每个译码组,固定了最大数量的常规译码的bin(即,基于上下文的算术译码的bin)预算。因此,对于一些系数,可以仅用信号通知sig_flag、gt1_flag和par_flag元素,而对于其它系数,也可以用信号通知gt2_flag。因此,根据部分解码的量化系数,相对于该系数的已经解码的标志来计算被译码和解析的remainder值。8.abs_level:这指示系数的绝对值,对于该系数,针对最大数量的常规译码bin事项,在所考虑的cg中没有标志(在sig_flag、gt1_flag、par_flag或gt2_flag中)被译码。类似于其余语法元素,此语法元素被rice-golomb二值化和旁路译码。9.sign_flag:这指示非零系数的符号。这是旁路译码的,即通过简单地将bin值写入/解析为vvc比特流中的比特来译码。.如图9所示,在4回合处理中执行以上列出的语法元素的译码/解析,即根据vvc草案3的sig_flag、gtl_flag、par_flag、gt2_flag、remainder和abs_level语法元素。ep意味着“装备概率(equip-probable)”,这意味着相关的bin不是被算术译码的,而是以旁路模式被译码的。旁路模式包括直接写入/解析一比特,该比特通常等于想要编码或解析的二进制语法元素(bin)。在vvc草案3中,如下所述,sig_flag标志是基于上下文的算术译码,其具有在多个可能的上下文中选择的上下文。所使用的上下文由其索引来标识。如下计算用于给定系数的索引。根据现有技术的上下文索引计算在图10中示出,并在图11中被描绘。它取决于由本地邻居模板(lnt)覆盖的邻域中的先前解码的系数的部分解码的系数值。更具体来说,基于在处理当前系数时处于其部分重构状态的相邻系数的绝对值的和来确定上下文索引。图10中描述了该模板。为了捕获不同频率处的变换系数的特性,如图10所示,以预先固定的方式将一个变换块(tb)切分成多达三个区域。每个tb区域被示出具有不同的灰度级别,并且被分配给每个区域的上下文索引被示出。例如,第一区域(tb的左上部分)被分配了上下文索引12至17。如下计算与给定变换系数x相关联的上下文索引。-lnt中系数绝对值的和被计算:-其中(x0,...,x4)是位于当前系数x的所考虑的lnt中的部分重构系数。-系数x所属的对角的索引被计算为其坐标之和:diag=posx(x)+poxy(x)-最后,当前系数x的上下文索引被计算为:ctxidx=(diag<2?6:0)+(diag<5?6:0)+min(sumabs,5)以类似的方式处理亮度和色度分量,但是使用单独的上下文模型集合。色度情况示于图10(b)中。可以看到两个区域而不是三个区域用于色度。这也在图11的算法上示出,其中对信道类型(即亮度/色度)执行测试,并且对于亮度情况而不是对于色度信道类型执行一些特定的上下文索引计算步骤。最后,注意,基于2个参数来选择用信号通知sig_flag的上下文:如上所述计算的上下文索引和图7的状态机的当前状态。关于语法元素gt1_fag、par_fag和gt2_fag,在vvc草案3中使用不同的方法用于上下文索引计算。该过程由图12示出并由图13的算法详述。现在解释该过程。图13的第一步骤计算lnt中已经处理的系数的绝对值总和sumabs与lnt中非零系数的数量之间的差值。这个差值被表示为sum1。接下来,将标注为offset的上下文偏移值初始化为offset=0。接下来的步骤包括根据当前系数的对角位置(diag=x+y)和分别在亮度和色度信道类型中使用的对角方式的预定义区域,将offset的值连续增加5。最后,上下文索引所取的值等于ctxidx=(min(sum1,4)+1)+offset,并且在图13的最后步骤处计算。注意,这里从1定义上下文索引,因为具有索引0的上下文用于被译码的比特流的一些其它语法元素的编码。因此,可以看出lnt机构用于所有标志,用于每个量化系数进行译码或解析。一般而言,lnt的使用具有以下特定缺点:-lnt暗示上下文选择相关性(dependency)。使用大量解码器侧运算来计算用于解析与量化系数相关联的有效性信息的上下文。-由于lnt的概念,使用了大量的上下文,因为典型地6个潜在的上下文可被用于每个tb区域中的sig_flag,并且5个潜在的上下文可被用于每个tb区域中的每个gt1_flag、par_flag和gt2_flag元素。在下文中,提供了方法来以确保良好的译码效率以及避免压缩方式无用的解码步骤以及避免压缩方式无用的cabac上下文的方式,适配用于要编码或解码的变换系数的这样的本地邻居模板的使用。特别地,所提出的方法涉及根据所考虑的变换块区域和信道类型来减少lnt使用。第一提出的实施例在图14和图15的算法上示出。它包括色度tb中的gt1_flag、par_flag和gt2_flag的译码的简化上下文分配处理。如图14上可见,在所提出的方法中,在色度块中使用经修改的上下文分配。实际上,lnt处理仅用于色度tb的最低频率系数。对于其它系数,将单个上下文索引用于其它系数。该单个上下文索引用于色度tb中的所有gt1_flag、par_flag和gt2_flag。更一般地,如果x+y≥t,则变换系数共享相同的上下文索引,并且最低的变换系数使用用于导出上下文索引的模板。修改的过程由图15的算法描绘。基本上,引入测试以检查正在处理的当前系数是否不同于最低频率系数。如果是,则将该offset变量设置为单个值1。否则,将其设置为(min(sum1,4)+1)。最后,用于译码/解析元素gt1_flag,par_flag或者gt2_flag的上下文索引被设置为offset。注意,在所提出的实施例1中,从编解码器设计中抑制了12个cabac上下文(即,用于gt1_flag、par_flag、gt2_flag的每个的4个上下文),这是在译码效率方面具有有限损失的情况下获得的,如在图16中可见。本公开中提出的第二实施例,如图17所示,是第一实施例的进一步简化版本,其中,用于译码最低频率系数的gt1_flag、par_flag和gt2_flag的上下文数量减少,采用一个单个cabac上下文而不是现有技术中的5个上下文。因此,在此实施例中获得进一步减少数量的cabac上下文,以及由于lnt使用的完全去除而减少数量的解码器侧运算。根据图18所示的第三实施例,将单个上下文模型的使用与根据tb区域和/或信道类型的lnt使用混合的概念应用于亮度tb。这里,提出使用单个上下文来编码属于最高频率亮度tb区域的gt1_flag、par_flag和gt2_flag元素(例如,当x+y≥8时)。这种方法可以是在一方面的cabac上下文和lnt使用减少与另一方面的译码效率之间的比第二实施例更好的折衷。在图19所示的第三实施例的变型中,与实施例3相比,亮度tb区域被进一步扩展到更大的亮度tb区域,在亮度tb区域中单个cabac上下文被用于译码gt1_flag、par_flag和gt2_flag。在另一变型中,若干亮度tb区域可使用单个cabac上下文来对gt1_flag、par_flag和gt2_flag元素进行译码,参见图20。例如,当x+y≥8时,使用上下文索引1;并且当3≤x+y≤7时,使用上下文模型索引6。在第二实施例的变型中,色度信道中的最低频率的系数可以利用多个上下文来译码/解析,该多个上下文比一个高,但是与现有方法相比被减少。这在图21中示出。可以看到上下文数量的减少伴随着用于对最低频率色度量化系数的一些bins进行译码的本地邻居模板的尺寸的减小。这些bin通常可对应于gt1_flag、par_flag和gt2_flag语法元素。根据本公开的另一变型,如上文实施例中所描述的简化上下文建模还应用于sig_flag语法元素的译码。根据另一变型,用于色度变换块的上下文建模的简化可以仅应用于gt1_flag、par_flag和gt2_flag语法元素的一部分。例如,其可以仅应用于gt2_flag语法元素的译码。根据另一示例,其可以仅应用于gt2_flag和par_flag语法元素。根据另一变型,其可以仅应用于sig_flag。根据另一变型,其可以应用于sig_flag以及gt1_flag、par_flag和gt2_flag语法元素的子集。根据另一变型,用于亮度变换块的上下文建模的简化可以仅应用于gt1_flag、par_flag和gt2_flag语法元素的一部分。例如,其可以仅应用于gt2_flag语法元素的译码。根据另一示例,其可以仅应用于gt2_flag和par_flag语法元素。根据另一变型,其可以应用于sig_flag以及gt1_flag、par_flag和gt2_flag语法元素的子集。所提出的实施例可通过根据如上文所提及的所考虑的变换块区域和信道类型减少lnt使用,来以有限解码过程复杂性(例如解码器过程中的操作数量减少和/或用于上下文自适应二进制算术译码(cabac)的上下文)有效地对量化变换系数进行熵译码。如所描述的,在控制在概率模型(该概率模型用于与量化变换系数相关联的语法元素的算术译码)中使用的所获得的上下文索引是基于量化变换系数的位置的。明确地说,虽然针对所处理的变换块的不同区域中的量化变换系数而获得不同的上下文模型索引,但将单个上下文索引被用于变换块的至少一个区域。图22中示出了对应通用流程图300。针对变换块的量化变换系数的一个或多个语法元素,在步骤310中确定上下文模型索引,其中针对变换块的不同区域中的量化变换系数而获得不同的上下文模型索引,且针对该变换块的至少一个区域使用单个上下文索引。最后,在步骤320中,基于所确定的内容模型索引,针对与特定的量化变换系数相关联的一个或多个语法元素,选择若干上下文模型中的一者。如果多个量化变换系数的位置满足某一条件,那么所述多个量化变换系数可共享同一上下文索引,例如具有x+y≥t的量化变换系数,其中x及y为变换系数的水平及垂直位置。在一个示例中,t=1,即,除了最低频率系数之外,所有其他系数共享单个上下文。此外,具有x+y<t的量化变换系数可以使用单个上下文索引。在一个示例中,t=1,即,最低频率系数使用单个上下文索引。此外,如果这些多个量化变换系数的位置满足某一条件,那么所述多个量化变换系数可使用上下文索引的限定集合。下面,提供内部cabac(上下文自适应二进制算术译码)解码过程的描述。图23描述了给定输入译码比特流的语法元素的cabac解码过程。这是图24的语法元素译码过程的互逆过程。图23的过程的输入包括被译码的比特流,典型地符合hevc规范或其进一步演进(例如,vtm-1)。在解码过程的任何点,解码器知道接下来哪个语法元素将被解码。这在标准化比特流语法和解码过程中被充分规定。此外,它还知道要解码的当前语法元素如何被二值化(即,表示为称为bin的二进制符号的序列,每个bin等于“1”或“0”),以及bin串的每个bin如何已经被编码。因此,cabac解码过程的第一阶段(图23的左侧)解码一系列bin。对于每个bin,它知道它是根据旁路模式还是常规模式被编码的。旁路模式包括简单地读取比特流中的比特,并将如此获得的比特值分配给当前bin。这种模式具有直接的优点,因此是快速的。它通常是有效地,因此用于具有均匀统计分布(即,等于′1′或′0′的相等概率)的bin。相反,如果当前bin没有以旁路模式被译码,则这意味着它已经以所谓的常规被译码,即通过基于上下文的算术译码。在这种情况下,所考虑的bin的解码如下进行。首先,针对当前bin的解码,获得上下文。它由图23所示的上下文建模器模块给出。上下文的目标是,在给定一些上下文先验(prior)或信息x的情况下,获得当前bin具有值“0”的条件概率。这里的先验x是在当前bin被解码时,以同步方式在编码器和解码器侧都可用的一些已经解码的语法元素的值。通常,用于bin的解码的先验x在标准中被指定,并且被选择,因为它与要解码的当前bin统计相关。使用该上下文信息的兴趣在于其降低了译码bin的速率成本。这是基于这样的事实,给定的x的bin的条件熵全部都越来越低,因为bin与x是相关的。以下关系在信息理论中是公知的:h(bin|x)<h(bin)这意味着知道x的bin的条件熵低于bin和x统计相关的bin的熵。上下文信息x因此被用于获得bin为′0′或′1′的概率。给定这些条件概率,图23的常规解码引擎执行二进制值bin的算术解码。然后,在知道当前上下文信息x的情况下,使用bin的值来更新与当前bin相关联的条件概率的值。这被称为图23上的上下文模型更新步骤。只要bin被解码(或译码),更新每个bin的上下文模型允许逐步改进每个二进制元素的上下文建模。因此,cabac解码器逐步地学习每个被常规编码的bin的统计行为。注意,上下文建模器和上下文模型更新步骤是编码器和解码器侧严格相同的操作。当前bin的常规算术解码或其旁路解码(取决于其如何被译码)导致一系列解码的bin。cabac解码的第二阶段,如图23的右侧所示,包括将该系列二进制符号转换为更高级别的语法元素。语法元素可采取标志的形式,在此情况下,其直接采取当前已解码的bin的值。另一方面,根据所考虑的标准规范,如果当前语法元素的二值化对应于若干bin的集合,则将执行转换步骤,该步骤在图23上被称为“将二进制码字转换为语法元素”。这进行了由编码器完成的二值化步骤的倒数。因此,这里执行的逆变换包括基于这些语法元素各自的解码的二值化版本获得这些语法元素的值。本申请描述了多个方面,包括工具、特征、实施例、模型、方法等。这些方面中的许多方面被描述为具有特异性,并且至少为了示出个体特性,通常以可能听起来受限的方式来描述。然而,这是为了描述清楚的目的,并且不限制那些方面的应用或范围。实际上,所有不同的方面可以组合和互换以提供另外的方面。此外,这些方面也可以与在较早的文档中描述的方面组合和互换。本申请中描述和预期的方面可以以许多不同的形式实现。下面的图1、2和25提供了一些实施例,但是可以想到其他实施例,并且对图1、2和25的讨论不限制实现的广度。至少一个方面一般涉及视频编码和解码,并且至少一个其他方面一般涉及传送所生成或编码的比特流。这些和其他方面可以实现为方法、装置、其上存储有用于根据所描述的任何方法来编码或解码视频数据的指令的计算机可读存储介质、和/或其上存储有根据所描述的任何方法生成的比特流的计算机可读存储介质。在本申请中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“图片”和“帧”可以互换使用。通常,但不是必须的,术语“重构”在编码器侧使用,而“解码”在解码器侧使用。本文描述了各种方法,并且每种方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可修改或组合特定步骤和/或动作的顺序和/或使用。本申请中描述的各种方法和其他方面可用于修改模块,例如,如图1和图2中所示的视频编码器100和解码器200的帧内预测模块(145、230)。此外,本发明的方面不限于vvc或hevc,且可应用于(例如)其他标准和建议(无论是预先存在的还是将来开发的)以及任何此类标准和建议的扩展(包含vvc和hevc)。除非另外指出或在技术上排除,本申请中描述的方面可以单独或组合使用。在本申请中使用各种数值。具体值是出于示例目的,并且所描述的方面不限于这些具体值。图25示出了其中实现了各个方面和实施例的系统的示例的框图。系统1000可以被实现为包括以下描述的各种组件的设备,并且被配置成执行本文档中描述的各方面中的一者或多者。这样的设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器和服务器。系统1000的元件可以单独地或组合地在单个集成电路(ic)、多个ic和/或分立组件中实现。例如,在至少一个实施例中,系统1000的处理和编码器/解码器元件跨在多个ic和/或分立组件分布。在各种实施例中,系统1000经由例如通信总线或通过专用输入和/或输出端口通信地耦合到一个或多个其他系统或其他电子设备。在各种实施例中,系统1000被配置为实现本文档中描述的方面中的一者或多者。系统1000包括至少一个处理器1010,其被配置为执行加载到其中的指令,以用于实现例如本文档中描述的各个方面。处理器1010可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备和/或非易失性存储器设备)。系统1000包括存储设备1040,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(eeprom)、只读存储器(rom)、可编程只读存储器(prom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备、附接的存储设备(包括可拆卸的和不可拆卸的存储设备)和/或网络可访问的存储设备。系统1000包括编码器/解码器模块1030,其被配置为例如处理数据以提供编码视频或解码视频,并且编码器/解码器模块1030可以包括其自己的处理器和存储器。编码器/解码器模块1030表示可包括在设备中以执行编码和/或解码功能的模块(一个或多个)。如已知的,设备可以包括编码和解码模块中的一个或两个。另外,编码器/解码器模块1030可实现为系统1000的单独元件或可作为本领域技术人员已知的硬件与软件的组合而被并入处理器1010内。要加载到处理器1010或编码器/解码器1030上以执行本文档中描述的各个方面的程序代码可以存储在存储设备1040中,并且随后加载到存储器1020上以供处理器1010执行。根据各种实施例,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一个或多个可以在执行本文档中描述的过程期间存储各种项中的一个或多个。这些存储的项可以包括但不限于输入视频、解码视频或解码视频的部分、比特流、矩阵、变量以及来自等式、公式、运算和运算逻辑的处理的中间或最终结果。在一些实施例中,处理器1010和/或编码器/解码器模块1030内部的存储器用于存储指令,且用于提供在编码或解码期间需要处理的工作存储器。然而,在其他实施例中,处理设备外部的存储器(例如,处理设备可以是处理器1010或编码器/解码器模块1030)被用于这些功能中的一个或多个。外部存储器可以是存储器1020和/或存储设备1040,例如,动态易失性存储器和/或非易失性闪存。在几个实施例中,外部非易失性闪存用于存储例如电视的操作系统。在至少一个实施例中,诸如ram的快速外部动态易失性存储器被用作视频编码和解码操作的工作存储器,诸如用于mpeg-2(mpeg是指运动图片专家组,mpeg-2也被称为iso/iec13818,并且13818-1也被称为h.222,并且13818-2也被称为h.262)、hevc(hevc是指高效视频译码,也被称为h.265和mpeg-h部分2)、或vvc(通用视频译码,由jvet开发的新标准,联合视频团队专家)的工作存储器。如框1130中所示,可以通过各种输入设备来提供对系统1000的元件的输入。这样的输入设备包括但不限于(i)接收例如由广播公司通过空中传输的rf信号的射频(rf)部分,(ii)复合(comp)输入端子(或comp输入端子集合),(iii)通用串行总线(usb)输入终端,和/或(iv)高清晰度多媒体接口(hdmi)输入终端。图25中未示出的其他示例包括合成视频。在各种实施例中,块1130的输入设备具有本领域已知的相关联的相应输入处理元件。例如,rf部分可以与适合于以下必要功能的元件相关联:(i)选择期望的频率(也称为选择信号,或将信号频带限制到频带),(ii)下变频所选择的信号,(iii)再次频带限制到较窄的频带,以选择(例如)在某些实施例中可以称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用,以选择期望的数据分组流。各种实施例的rf部分包括一个或多个元件以执行这些功能,例如,频率选择器、信号选择器、限带器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。rf部分可以包括执行各种这些功能的调谐器,这些功能包括例如将接收的信号下变频到较低频率(例如,中频或近基带频率)或基带。在一个机顶盒实施例中,rf部分及其相关的输入处理元件接收通过有线(例如,电缆)介质发送的rf信号,并通过滤波、下变频和再次滤波到期望的频带来执行频率选择。各种实施例重新安排上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同功能的其他元件。添加元件可以包括在现有元件之间插入元件,例如插入放大器和模数转换器。在各种实施例中,rf部分包括天线。另外,usb和/或hdmi终端可以包括用于通过usb和/或hdmi连接将系统1000连接到其他电子设备的相应接口处理器。应当理解,输入处理的各个方面,例如里德-所罗门(reed-solomon)纠错,可以根据需要在例如单独的输入处理ic或处理器1010内实现。类似地,usb或hdmi接口处理的各方面可以根据需要在单独的接口ic内或在处理器1010内实现。将解调、纠错和解复用的流提供给各种处理元件(包括例如处理器1010和编码器/解码器1030),其与存储器和存储元件结合操作以根据需要处理数据流以便呈现在输出设备上。系统1000的各种元件可以设置在集成壳体内,各种元件可以使用合适的连接布置(例如本领域已知的包括片间(i2c)总线、布线和印刷电路板的内部总线)互连并在其间传输数据。系统1000包括通信接口1050,其使得能够经由通信信道1060与其他设备通信。通信接口1050可以包括但不限于被配置为通过通信信道1060发送和接收数据的收发信机。通信接口1050可以包括但不限于调制解调器或网卡,并且通信信道1060可以例如在有线和/或无线介质内实现。在各种实施例中,使用无线网络,例如诸如ieee802.11(ieee是指电气和电子工程师协会)的wi-fi网络,将数据流式传输或以其他方式提供给系统1000。这些实施例的wi-fi信号通过适用于wi-fi通信的通信信道1060和通信接口1050来接收。这些实施例的通信信道1060通常连接到接入点或路由器,所述接入点或路由器提供对包括因特网的外部网络的接入以允许流式传输应用和其他过顶(over-the-top)通信。其他实施例使用机顶盒向系统1000提供流数据,该机顶盒通过输入块1130的hdmi连接传递数据。还有一些实施例使用输入块1130的rf连接向系统1000提供流数据。如上所述,各种实施例以非流方式提供数据。另外,各种实施例使用除wi-fi之外的无线网络,例如蜂窝网络或蓝牙网络。系统1000可以向各种输出设备提供输出信号,所述输出设备包括显示器1100、扬声器1110和其他外围设备1120。各种实施例的显示器1100包含例如触摸屏显示器、有机发光二极管(oled)显示器、弯曲显示器和/或可折叠显示器中的一者或多者。显示器1100可以用于电视、平板电脑、膝上型计算机、蜂窝电话(移动电话)或其他设备。显示器1100还可与其他组件集成(例如,如在智能电话中),或单独应用(例如,用于膝上型计算机的外部监视器)。在各实施例的各示例中,其他外围设备1120包括独立数字视频盘(或数字多功能盘)(dvr,两项)、盘播放器、立体声系统和/或照明系统中的一个或多个。各种实施例使用一个或多个外围设备1120,其基于系统1000的输出提供功能。例如,盘播放器执行播放系统1000的输出的功能。在各种实施例中,使用诸如av.链路、消费电子控制(cec)或其他通信协议的信令在系统1000和显示器1100、扬声器1110或其他外围设备1120之间传送控制信号,其使得能够在有或没有用户干预的情况下实现设备到设备控制。输出设备可以经由通过相应接口1070、1080和1090的专用连接通信地耦合到系统1000。或者,输出设备可以使用通信信道1060经由通信接口1050连接到系统1000。显示器1100和扬声器1110可以与系统1000的其他组件一起集成在电子设备(例如电视机)中的单个单元中。在各种实施例中,显示接口1070包括显示驱动器,例如定时控制器(tcon)芯片。例如,如果输入1130的rf部分是单独机顶盒的一部分,则显示器1100和扬声器1110可以备选地与其他组件中的一个或多个分离。在显示器1100和扬声器1110是外部组件的各种实施例中,输出信号可以经由专用输出连接来提供,所述专用输出连接例如包括hdmi端口、usb端口或comp输出。这些实施例可以由处理器1010或硬件和软件的组合实现的计算机软件来实现。作为非限制性示例,实施例可以由一个或多个集成电路实现。存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,作为非限制性示例,诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器。处理器1010可以是适合于技术环境的任何类型,并且可以包含作为非限制性示例的微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。各种实现方式涉及解码。如本申请中所使用的,“解码”可以包括例如对接收到的编码序列执行的过程中的全部或部分,以便产生适合于显示的最终输出。在各种实施例中,此类过程包括通常由解码器执行的过程中的一个或多个,例如熵解码、逆量化、逆变换和差分解码。在各种实施例中,此类过程还或替代地包括由本申请中描述的各种实现方式的解码器执行的过程。作为进一步的示例,在一个实施例中,“解码”仅指熵解码,在另一实施例中,“解码”仅指差分解码,并且在另一实施例中,“解码”指熵解码和差分解码的组合。短语“解码过程”是否旨在具体地指代操作的子集或一般地指代更广泛的解码过程基于具体描述的上下文将是清楚的,并且相信是本领域技术人员所充分理解的。各种实现涉及编码。以与以上关于“解码”的讨论类似的方式,如在本申请中使用的“编码”可以包括例如对输入视频序列执行的过程的全部或部分,以便产生编码的比特流。在各种实施例中,此类过程包括通常由编码器执行的一个或多个过程,例如,分割、差分编码、变换、量化和熵编码。在各种实施例中,这样的过程还或替代地包括由本申请中描述的各种实现方式的编码器执行的过程。作为进一步的示例,在一个实施例中,“编码”仅指熵编码,在另一实施例中,“编码”仅指差分编码,而在另一实施例中,“编码”指差分编码和熵编码的组合。短语“编码过程”是否旨在具体地指代操作的子集或一般地指代更广泛的编码过程将基于具体描述的上下文而变得清楚,并且相信是本领域技术人员所充分理解的。注意,这里使用的语法元素是描述性术语。因此,它们不排除使用其它语法元素名称。当附图被呈现为流程图时,应当理解,它还提供了对应装置的框图。类似地,当附图被呈现为框图时,应当理解,它还提供了对应的方法/过程的流程图。本文描述的实现方式和方面可以在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单一形式的实现的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现也可以以其他形式(例如,装置或程序)来实现。例如,可以以适当的硬件、软件和固件来实现装置。所述方法可以在例如处理器中实现,所述处理器通常指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,例如计算机、蜂窝电话、便携式/个人数字助理(“pda”)和便于终端用户之间的信息通信的其他设备。对“一个实施例”或“实施例”或“一个实现”或“实现”以及其他变化形式的提及意味着结合实施例描述的特定特征、结构、特性等被包含在至少一个实施例中。因此,在贯穿本文的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实现中”或“在实现中”以及任何其他变型的出现不一定都指同一实施例。另外,本申请可以涉及“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一个或多个。此外,本申请可以涉及“访问”各种信息。访问信息可以包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。另外,本申请可以涉及“接收”各种信息。如同“访问”一样,接收旨在是广义的术语。接收信息可以包括例如访问信息或(例如从存储器)检索信息中的一个或多个。此外,在诸如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,通常以一种方式或另一种方式涉及“接收”。应当理解,例如在“a/b”、“a和/或b”以及“a和b中的至少一个”的情况下,使用以下“/”、“和/或”以及“……中的至少一个”中的任何一个旨在涵盖仅对第一列出的选项(a)的选择、或仅对第二列出的选项(b)的选择、或对两个选项(a和b)的选择。作为进一步的例子,在“a、b和/或c”和“a、b和c中的至少一个”的情况下,这样的措词旨在包括仅选择第一个列出的选项(a),或者仅选择第二个列出的选项(b),或者仅选择第三个列出的选项(c),或者仅选择第一个和第二个列出的选项(a和b),或者仅选择第一个和第三个列出的选项(a和c),或者仅选择第二个和第三个列出的选项(b和c),或者选择所有三个选项(a和b和c)。这可以扩展到所列的许多项,这对于本领域和相关领域的普通技术人员来说是显而易见的。如本领域技术人员将明白的,实现可以产生被格式化以携带例如可以被存储或发送的信息的各种信号。该信息可以包括例如用于执行方法的指令,或者由所描述的实现之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如编码数据流和用编码数据流调制载波。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路来传输。该信号可以存储在处理器可读介质上。如对于本领域普通技术人员将显而易见的,实现可以产生被格式化以携带例如可以被存储或发送的信息的各种信号。该信息可以包括例如用于执行方法的指令,或者由所描述的实现之一产生的数据。例如,信号可以被格式化以携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流对载波进行调制。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路来传输。该信号可以存储在处理器可读介质上。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1