一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

上下文编解码二进制位(CCB)计数方法的统一与流程

2022-03-19 18:40:19 来源:中国专利 TAG:

上下文编解码二进制位(ccb)计数方法的统一
技术领域
1.本实施例总体上涉及统一用于变换残差和变换跳过残差模式的上下文编解码二进制位(ccb)方案。


背景技术:

2.为了实现高压缩效率,图像和视频编解码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。通常,帧内或帧间预测用于利用帧内或帧间图片相关性,然后原始块和预测块之间的差异(通常表示为预测误差或预测残差)被变换、量化和熵编解码。为了重建视频,压缩数据通过对应于熵编解码、量化、变换和预测的逆过程进行解码。


技术实现要素:

3.根据实施例,提供了一种视频编码的方法,包括:获取图片中要编码的块的预测残差;对用于编码所述块中的预测残差的上下文编解码二进制位的数量进行计数,其中所述块的所述预测残差将使用变换残差编解码过程和变换跳过残差编解码过程中的一者进行编码,其中所述变换残差编解码过程和所述变换跳过残差编解码过程使用相同的界限来限制所述上下文编解码二进制位的数量;以及响应于所述界限和所述上下文编解码二进制位的数量,调整所述变换残差编解码过程和变换跳过残差编解码过程中的一者中的一个或多个语法元素的熵编解码方法。
4.根据另一实施例,提供了一种视频解码的方法,包括:对用于解码所述块中的预测残差的上下文编解码二进制位的数量进行计数,其中所述块的所述预测残差将使用变换残差解码过程和变换跳过残差解码过程中的一者进行解码,其中所述变换残差解码过程和所述变换跳过残差解码过程使用相同的界限来限制所述上下文编解码二进制位的数量;响应于所述界限和所述上下文编解码二进制位的数量,调整所述变换残差解码过程和变换跳过残差解码过程中的一者中的一个或多个语法元素的熵解码方法;以及获取图片中要解码的块的预测残差。
5.根据另一实施例,一种用于视频编码的装置,包括一个或多个处理器,其中所述一个或多个处理器被配置成:获取图片中要编码的块的预测残差;对用于编码所述块中的预测残差的上下文编解码二进制位的数量进行计数,其中所述块的所述预测残差将使用变换残差编解码过程和变换跳过残差编解码过程中的一者进行编码,其中所述变换残差编解码过程和所述变换跳过残差编解码过程使用相同的界限来限制所述上下文编解码二进制位的数量;以及响应于所述界限和所述上下文编解码二进制位的数量,调整所述变换残差编解码过程和变换跳过残差编解码过程中的一者中的一个或多个语法元素的熵编解码方法。
6.根据另一实施例,一种用于视频解码的装置,包括一个或多个处理器,其中所述一个或多个处理器被配置成:对用于解码所述块中的预测残差的上下文编解码二进制位的数量进行计数,其中所述块的所述预测残差将使用变换残差解码过程和变换跳过残差解码过程中的一者进行解码,其中所述变换残差解码过程和所述变换跳过残差解码过程使用相同
的界限来限制所述上下文编解码二进制位的数量;响应于所述界限和所述上下文编解码二进制位的数量,调整所述变换残差解码过程和变换跳过残差解码过程中的一者中的一个或多个语法元素的熵解码方法;以及获取图片中要解码的块的预测残差。
7.一个或多个实施例还提供了一种包括指令的计算机程序,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行根据上述任何实施例的编码方法或解码方法。本实施例中的一个或多个实施例还提供了一种计算机可读存储介质,其上存储有用于根据上述方法对视频数据进行编码或解码的指令。一个或多个实施例还提供了一种计算机可读存储介质,其上存储有根据上述方法生成的比特流。一个或多个实施例还提供了一种用于发送或接收根据上述方法生成的比特流的方法和装置。
附图说明
8.图1示出了可以在其中实现本实施例的各方面的系统的框图。
9.图2示出了视频编码器的实施例的框图。
10.图3示出了视频解码器的实施例的框图。
11.图4示出了表示压缩图片的编解码树单元和编解码树概念。
12.图5示出了变换块的残差编解码结构。
13.图6示出了变换跳过块的残差编解码结构。
14.图7示出了vtm 6.0中的变换块的残差编解码过程。
15.图8示出了vtm 6.0中的变换跳过块的残差编解码过程。
16.图9示出了根据实施例的变换跳过块的残差编解码过程。
17.图10示出了根据另一实施例的变换跳过块的残差编解码过程。
18.图11示出了根据另一实施例的变换跳过块的残差编解码过程。
具体实施方式
19.图1示出了其中可实现各个方面和实施例的系统的示例的框图。系统100可以体现为包括以下描述的各种组件的设备,并且被配置为执行本技术中描述的各方面中的一个或多个。这种设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能手机、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器和服务器。系统100的元件可以单独或组合体现在单个集成电路、多个ic和/或分立组件中。例如,在至少一个实施例中,系统100的处理和编码器/解码器元件分布在多个ic和/或分立组件上。在各种实施例中,系统100经由例如通信总线或通过专用输入和/或输出端口来通信耦合到其他系统或其他电子设备。在各种实施例中,系统100被配置成实现本技术中描述的各方面中的一个或多个。
20.系统100包括至少一个处理器110,处理器110被配置为执行加载在其中的指令,该指令用于实现例如本技术中描述的各个方面。处理器110可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统100包括至少一个存储器120(例如,易失性存储器设备和/或非易失性存储器设备)。系统100包括存储设备140,其可以包括非易失性存储器和/或易失性存储器,包括但不限于eeprom、rom、prom、ram、dram、sram、闪速存储器、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备140可以包括内部存储设备、附加存储
设备和/或网络可访问存储设备。
21.系统100包括编码器/解码器模块130,其被配置为例如处理数据以提供编码的视频和/或解码的视频,并且编码器/解码器模块130可以包括其自己的处理器和存储器。编码器/解码器模块130表示可以被包括在设备中以执行编码和/或解码功能的(多个)模块。众所周知,设备可以包括编码和解码模块中的一个或两个。此外,编码器/解码器模块130可以被实现为系统100的单独的元件,或者可以作为本领域技术人员已知的硬件和软件的组合并入处理器110内。
22.要加载到处理器110或编码器/解码器130上以执行本技术中描述的各个方面的程序代码可以存储在存储设备140中,并且随后加载到存储器120上以供处理器110执行。根据各种实施例,处理器110、存储器120、存储设备140和编码器/解码器模块130中的一个或多个可以在执行本技术中描述的过程期间存储各种项目中的一个或多个。这种存储的项目可以包括但不限于输入视频、解码视频或解码视频的部分、比特流、矩阵、变量,以及来自等式、公式、操作和操作逻辑的处理的中间或最终结果。
23.在几个实施例中,处理器110和/或编码器/解码器模块130内部的存储器用于存储指令,并为编码或解码期间所需的处理提供工作存储器。然而,在其他实施例中,处理设备外部的存储器(例如,处理设备可以是处理器110或编码器/解码器模块130)用于这些功能中的一个或多个。外部存储器可以是存储器120和/或存储设备140,例如动态易失性存储器和/或非易失性闪存。在几个实施例中,外部非易失性闪速存储器用于存储电视的操作系统。在至少一个实施例中,诸如ram的快速外部动态易失性存储器被用作视频编解码和解码操作的工作存储器,诸如,用于mpeg-2、hevc或vvc。
24.系统100的元件的输入可以通过各种输入设备来提供,如块105所示。这种输入设备包括但不限于以下内容:(i)接收例如由广播公司通过空中发送的rf信号的rf部分,(ii)复合输入终端,(iii)usb输入终端,和/或(iv)hdmi输入终端。
25.在各种实施例中,块105的输入设备具有相关联的本领域已知的相应输入处理元件。例如,rf部分可以与适于以下内容的元件相关联:(i)选择期望的频率(也称为选择信号,或者将信号频带限制到频带),(ii)下变频所选择信号,(iii)再次频带限制到较窄的频带,以选择(例如)在某些实施例中可以称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据分组流。各种实施例的rf部分包括执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。rf部分可以包括执行(包括例如将接收到的信号下变频到较低频率(例如,中频或近基带频率)或基带的)各种这些功能的调谐器。在一个机顶盒实施例中,rf部分及其相关联的输入处理元件接收通过有线(例如,电缆)介质发送的rf信号,并通过滤波、下变频和再次滤波到期望的频带来执行频率选择。各种实施例重新布置上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行相似或不同功能的其他元件。添加元件可以包括在现有元件之间插入元件,例如插入放大器和模数转换器。在各种实施例中,rf部分包括天线。
26.此外,usb和/或hdmi终端可以包括相应的接口处理器,用于通过usb和/或hdmi连接将系统100连接到其他电子设备。应当理解,输入处理(例如里德-所罗门纠错)的各个方面可以根据需要在例如单独的输入处理ic或处理器110内实现。类似地,usb或hdmi接口处
理的各方面可以根据需要在单独的接口ic内或处理器110内实现。解调、纠错和解复用的流被提供给(包括例如处理器110和编码器/解码器130的)各种处理元件,编码器/解码器130与存储器和存储元件组合操作,以根据需要处理数据流,以呈现在输出设备上。
27.系统100的各个元件可以设置在集成外壳内。在集成外壳内,各种元件可以使用合适的连接布置115(例如本领域已知的(包括i2c总线、布线和印刷电路板的)内部总线)互连并在其间发送数据。
28.系统100包括能够经由通信信道190与其他设备通信的通信接口150。通信接口150可以包括但不限于被配置为通过通信信道190发送和接收数据的收发器。通信接口150可以包括但不限于调制解调器或网卡,并且通信信道190可以例如在有线和/或无线介质内实现。
29.在各种实施例中,使用诸如ieee 802.11的wi-fi网络,将数据流式传输给系统100。这些实施例的wi-fi信号是通过适于wi-fi通信的通信信道190和通信接口150接收的。这些实施例的通信信道190典型地连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以允许流式传输应用和其他超顶通信。其他实施例使用通过输入块105的hdmi连接递送数据的机顶盒向系统100提供流式传输数据。还有其他实施例使用输入块105的rf连接向系统100提供流式传输数据。
30.系统100可以向(包括显示器165、扬声器175和其他外围设备185的)各种输出设备提供输出信号。在实施例的各种示例中,其他外围设备185包括以下中的一个或多个:独立dvr、磁盘播放器、立体声系统、照明系统、和基于系统100的输出提供功能的其他设备。在各种实施例中,使用诸如av.link的信令、cec或可在有或无用户干预的情况下实现设备到设备控制的其他通信协议来在系统100和显示器165、扬声器175或其他外围设备185之间通信控制信号。输出设备可以通过相应的接口160、170和180经由专用连接通信地耦合到系统100。替代地,输出设备可以使用通信信道190经由通信接口150连接到系统100。显示器165和扬声器175可以与电子设备(例如电视机)中的系统100的其他组件集成在单个单元中。在各种实施例中,显示接口160包括显示驱动器,例如时序控制器(t con)芯片。
31.例如,如果输入105的rf部分是单独的机顶盒的部分,则显示器165和扬声器175可替代地与其他组件中的一个或多个分开。在显示器165和扬声器175是外部组件的各种实施例中,输出信号可以经由(包括例如hdmi端口、usb端口或comp输出的)专用输出连接来提供。
32.图2示出了诸如高效视频编解码(hevc)编码器的示例视频编码器200。图2还可以示出对hevc标准进行改进的编码器或采用类似于hevc技术的编码器,诸如由jvet(联合视频探索团队)开发的vvc(通用视频编解码)编码器。
33.在本技术中,术语“重建的”和“解码的”可以互换使用,并且术语“图像”、“图片”和“帧”可以互换使用。通常,但不是必须的,术语“重建的”在编码器侧使用,而“解码的”在解码器侧使用。
34.在被编码之前,视频序列可以经历预编码处理(201),例如,对输入彩色图片应用颜色变换(例如,从rgb 4:4:4到ycbcr 4:2:0的转换),或者执行输入图片分量的重新映射,以便获得对压缩更有弹性的信号分布(例如,使用颜色分量之一的直方图均衡化)。元数据可以与预处理相关联,并附加到比特流。
35.为了编码具有一个或多个图片的视频序列,图片被分割(202)成例如一个或多个条带,其中每个条带可以包括一个或多个条带段。在hevc,条带段被组织成编解码单元、预测单元和变换单元。hevc规范区分“块”和“单元”,其中“块”寻址样本阵列中的特定区域(例如,亮度、y),并且“单元”包括所有编码颜色分量(y、cb、cr或单色)的并置块、语法元素和与块相关联的预测数据(例如,运动矢量)。
36.为了根据hevc进行编解码,图片被分割成具有可配置大小(通常为64
×
64、128
×
128或256
×
256像素)的方形编解码树块(ctb),并且连续的编解码树块集被分组为条带。编解码树单元(ctu)包含编码颜色分量的ctb。ctb是分割成编解码块(cb)的四叉树的根,并且编解码块可以被分割成一个或多个预测块(pb),并形成分割成变换块(tb)的四叉树的根。大于4x4的变换块(tb)被划分成称为系数组(cg)的量化系数的4x4子块。对应于编解码块、预测块和变换块,编解码单元(cu)包括预测单元(pu)和树结构的变换单元(tu)集,pu包括所有颜色分量的预测信息,并且tu包括每个颜色分量的残差编解码语法结构。亮度分量的cb、pb和tb的大小适用于对应的cu、pu和tu。在本技术中,术语“块”可以用来指,例如,ctu、cu、pu、tu、cg、cb、pb和tb中的任何一个。此外,术语“块”还可以用来指h.264/avc或其他视频编解码标准中指定的宏块和分割,并且更一般地是指各种大小的数据阵列。
37.在编码器200中,图片由编码器元件编码,如下所述。以例如cu为单位进行处理要编码的图片。使用帧内或帧间模式对每个编解码单元进行编码。当编解码单元以帧内模式被编码时,它执行帧内预测(260)。在帧间模式中,执行运动估计(275)和补偿(270)。编码器决定(205)帧内模式或帧间模式中的哪一个用于编码该编解码单元,并通过预测模式标志来指示帧内/帧间决定。通过从原始图像块中减去(210)预测块来计算预测残差。
38.预测残差然后被变换(225)和量化(230)。量化的变换系数以及运动矢量和其他语法元素被熵编解码(245)以输出比特流。作为非限制性示例,基于上下文的自适应二进制算术编解码(cabac)可用于将语法元素编码为比特流。
39.为了使用cabac编码,通过二值化过程,将非二进制语法元素值映射到称为二进制位(bin)字符串的二进制序列。对于二进制位,选择上下文模型。“上下文模型”是一个或多个二进制位的概率模型,并且根据最近编解码的符号的统计从可用模型的选择中选取。每个二进制位的上下文模型由上下文模型索引(也称为“上下文索引”)标识,并且不同的上下文索引对应于不同的上下文模型。上下文模型存储每个二进制位为“1”或“0”的概率,并且可以是自适应的或静态的。静态模型以相等的概率触发二进制位“0”和“1”的编解码引擎。在自适应编解码引擎中,上下文模型基于二进制位的实际编解码值进行更新。对应于自适应和静态模型的操作模式分别称为常规模式和旁路模式。基于该上下文,二进制算术编解码引擎根据对应的概率模型编码或解码二进制位。
40.编码器也可以跳过变换并直接对未变换的残差信号进行量化,例如,在4
×
4tu的基础上。编码器也可以旁路变换和量化两者,即直接编解码残差而不应用变换或量化过程。在直接pcm编解码中,不应用预测,并且编解码单元样本被直接编解码为比特流。
41.编码器对编码块进行解码,来为进一步的预测提供参考。量化的变换系数被去量化(240)和逆变换(250)以解码预测残差。组合(255)解码的预测残差和预测块,重建图像块。例如,环路滤波器(265)被应用于重建的图片,以执行去块/采样自适应偏移(sao)滤波来减少编码伪像。滤波后的图像存储在参考图片缓冲器(280)中。
42.图3示出了诸如hevc解码器的示例视频解码器300的框图。在解码器300中,比特流由如下所述的解码器元件解码。视频解码器300通常执行与图2中描述的编码轮次相反的解码轮次,其执行视频解码作为编码视频数据的部分。图3还可以示出对hevc标准进行改进的解码器或者采用类似于hevc的技术的解码器,诸如vvc解码器。
43.特别地,解码器的输入包括视频比特流,该比特流可以由视频编码器200生成。比特流首先被熵解码(330)以获取变换系数、运动矢量、图片分割信息和其他编解码信息。如果cabac用于熵编解码,则以与编码器上下文模型相同的方式初始化上下文模型,并且基于上下文模型从比特流解码语法元素。
44.图片分割信息指示图片如何被分割,例如,ctu的大小,以及ctu被分成cu(并且在适用时可能被划分成pu)的方式。因此,解码器可以根据解码的图片分割信息将图片划分(335)成例如ctu,并将每个ctu划分成cu。变换系数被去量化(340)和逆变换(350)以解码预测残差。
45.组合(355)解码的预测残差和预测块,重建图像块。预测块可以从帧内预测(360)或运动补偿预测(即,帧间预测)(375)中获取(370)。将环路滤波器(365)应用于重建的图像。滤波后的图像存储在参考图片缓冲器(380)中。
46.解码的图片可以进一步经历后解码处理(385),例如逆颜色变换(例如,从ycbcr 4:2:0到rgb 4:4:4的转换)或者执行在预编码处理(201)中执行的重新映射的逆过程的逆重新映射。后解码处理可以使用在预编码处理中导出并在比特流中信令通知的元数据。
47.在hevc,使用非重叠的系数组(cg或子块)对编解码块的变换系数进行编解码,并且每个cg包含编解码块的4
×
4块的系数。在vvc草案6中,系数组大小的选择变得仅取决于tb大小,即移除了对信道类型的依赖。因此,各种cg(1x16、2x8、8x2、2x4、4x2和16x1)变得可用。编解码块内部的cg和cg内的变换系数根据预定义的扫描顺序进行编解码。
48.为了约制每个像素的上下文编解码二进制位(以常规模式编解码的二进制位)的最大数量,tb的面积用于导出vvc草案6中的tb允许的上下文编解码二进制位的最大数量(参见“通用视频编解码和测试模型6(vtm 6)的算法描述”,文档jvet-o2002,第15次会议:哥德堡,瑞典,2019年7月3-12日)。图7示出了vtm 6.0中的变换块的残差编解码过程,并且图8示出了vtm 6.0中的变换跳过块的残差编解码过程。对于tb,上下文编解码二进制位(ccb)的最大数量被设置为tb_zosize*1.75,如图7中的步骤710所示,其中tb_zosize指示tb内的样本数量不包括被归零的系数。众所周知,大块分割通常呈现较少的残差,并且能量更集中在变换域中的低频系数中。在vtm(vvc测试模型)6.0中,对于大小大于32的变换块,32
×
32区域之外的高频变换系数被归零。注意,如图7中的步骤720所示,对于ccb计数不考虑coded_sub_block_flag。
49.vtm 6.0允许变换跳过模式用于大小高达32x32(含32x32)的亮度块。当在变换跳过模式下对cu进行编解码时,其预测残差被量化(而没有变换,即,变换跳过)并使用变换跳过残差编解码过程进行编解码。与针对变换系数级别的统计和信号特征设计残差编解码的hevc不同,两个单独的残差编解码结构分别用于变换残差(变换的残差,其中不跳过变换)和变换跳过残差(未变换的残差,其中跳过变换)。例如,如图8中的步骤810所示,在变换跳过模式中,ccb的最大数量被设置为tb_size*2,其中tb_size指示tb内的样本数量。此外,变换跳过残差模式中的coeff_sign_flag是上下文编解码的,并且被考虑用于ccb计数,如图8
中的步骤840所示。变换残差的残差编解码也被称为“变换系数编解码”、“变换残差编解码”或“变换系数的残差编解码”。变换跳过残差的残差编解码也被称为“变换跳过(ts)残差编解码”。
50.变换系数的残差编解码
51.在vvc草案6中,为了编码变换系数,如果cg(子块)的重要性等于1(720),则在该cg中的扫描位置上对cg的二进制位进行多个轮次的编解码:
52.轮次1:按编解码顺序对重要性(sig_coeff_flag)、大于1标志(gt1,abs_level_gtx_flag[0])、奇偶标志(par,par_level_flag)和大于3标志(gt3,abs_level_gtx_flag[1])进行编解码。仅当sig_coeff_flag等于1时,大于1标志才存在。仅对abs_level_gtx_flag[0]等于1的扫描位置执行奇偶标志和大于3标志(abs_level_gtx_flag[1])的编解码。如果比特流中不存在gt1、par和gt3的值,则推断这些值为0。sig、par、gt1和gt3标志以常规模式进行编解码(740)。在这些标志被编解码为系数后,maxccbs减4,并且计数器n加1以跟踪子块中的系数数量,该子块的sig、par、gt1和gt3标志以常规模式进行编解码(750),其中对于每个子块,n被重置为0。如果子块中的所有系数都被编解码(755)或者ccb计数达到限制(730),则轮次1停止,因此,在轮次1中可以跳过对一些扫描位置的编解码。
[0053]
轮次2:对于在轮次1中编解码的扫描位置,语法元素abs_remainder被编解码以用于gt3等于1的扫描位置(760)。使用golomb-rice代码对非二进制语法元素进行二进制化,并在算术编解码引擎的旁路模式下对所得的二进制位进行编解码。对于未在轮次1中编解码的扫描位置,使用golomb-rice代码对语法元素dec_abs_level进行二进制化,并且在旁路模式下对所得的二进制位进行编解码(760)。
[0054]
轮次3:对sig_coeff_flag等于1的所有扫描位置的符号(coeff_sign_flag)进行编解码。在旁路模式下对标志进行编解码(780)。
[0055]
如上所述,在变换系数编解码中,变量rembinspass1(maxccbs)首先被设置为上下文编解码二进制位的最大数量(mccb),并且当信令通知上下文编解码二进制位时减1。当rembinspass1大于或等于4时,第一编解码轮次中的标志(包括sig_coeff_flag、abs_level_gtx_flag[0](gt1,大于1标志)、par_level_flag和abs_level_gtx_flag[1](gt3,大于3标志))通过使用上下文编解码二进制位进行编解码。如果在第一编解码轮次中上下文编解码二进制位的数量不大于mccb,则通过使用golomb-rice代码和旁路编解码二进制位,用abs_remainder的语法元素对在第一轮次中指示要进一步编解码的级别信息的剩余部分进行编解码。当rembinspass1变得小于4时,在第二轮次中通过使用golomb-rice代码和旁路编解码二进制位,用语法元素dec_abs_level直接对第一轮次中未编解码的剩余系数进行编解码。对于每个tb,rembinspass1都会被重置。对sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag和abs_level_gtx_flag[1]使用上下文编解码二进制位到对剩余语法元素使用旁路编解码二进制位的转换最多每tb只发生一次。对于系数子块,如果rembinspass1小于4,则通过使用旁路编解码二进制位对整个系数子块进行编解码。在所有上述级别编解码之后,sig_coeff_flag等于1的所有扫描位置的符号(coeff_sign_flag)最终被旁路编解码。在结束(799)之前,对变换块中的所有子块执行该过程(790)。
[0056]
例如,在图5中,在用常规模式对扫描位置c
15


、c3的sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag和abs_level_gtx_flag[1]进行编码之后,ccb的数量
达到限制并且轮次1编解码停止。在轮次2中,如果轮次1指示要为当前扫描位置编解码更多级别信息,则abs_remainder被旁路编解码用于扫描位置c
15


,c3。在轮次1中不对扫描位置c2、c1和c0进行编解码,并且使用旁路模式用语法元素dec_abs_level对这些位置的绝对系数级别进行直接编解码。在轮次3中,如果当前扫描位置的系数不为零,则语法元素coeff_sign_flag将被旁路编解码。
[0057]
变换跳过的残差编解码
[0058]
在变换跳过模式中,残差信号的统计特性不同于变换系数的统计特性,并且没有观察到低频分量周围的能量压缩。残差编解码被修改以考虑(空间)变换跳过残差的不同信号特性,这包括:
[0059]
系数扫描是正向扫描;
[0060]
没有最后x/y位置的信令通知;
[0061]
当所有先前的coded_sub_block_flag都等于0时,对除dc子块之外的每个子块编解码coded_sub_block_flag;
[0062]
使用简化模板的sig_coeff_flag上下文建模;
[0063]
abs_level_gtx_flag[0]和par_level_flag分别只使用一个上下文模型;
[0064]
附加的大于5、7、9标志;
[0065]
用于余数二值化的修正rice参数推导;
[0066]
符号标志coeff_sign_flag是上下文编解码的,并且基于左侧和上方相邻系数值来确定符号标志的上下文建模;此外,在sig_coeff_flag之后解析符号标志,以将所有上下文编解码二进制位保持在一起。
[0067]
如图6和图8所示,如果cg的重要性为1(820),则语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag[0]、par_level_flag在第一轮次(830-860)中被逐个残差采样本地交错编解码,随后是作为第二轮次的abs_level_gtx_flag位平面(870)和abs_remainder编解码(880)。在结束(899)之前,对变换块中的所有子块执行(890)该过程。
[0068]
·
轮次1(830-860):sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag[0]、par_level_flag。
[0069]
·
轮次2(870):abs_level_gtx_flag[1]、abs_level_gtx_flag[2](大于5标志)、abs_level_gtx_flag[3](大于7标志)、abs_level_gtx_flag[4](大于9标志)。
[0070]
·
轮次3(880):abs_remainder。
[0071]
在变换跳过模式下,当ccb计数超过最大值时,这些剩余的系数标志用相同的语法结构进行旁路编解码,这与变换残差情况完全不同。
[0072]
如上所述,用于ccb计数的语法、ccb计数的最大数量以及ccb计数超过最大数量后的语法设计,在变换块和变换跳过块的残差编解码之间是不同的。因此,这里可以提出一些统一。
[0073]
如上所述,为了约制每个像素的上下文编解码二进制位(ccb)的最大数量,在vvc草案6中,使用tb的面积来导出tb的上下文编解码二进制位的最大数量。此外,在2019年3月的会议上,jvet为变换跳过残差块采用了新的残差编解码过程。这种变换跳过(ts)残差编解码过程与变换块的变换残差编解码过程明显不同。关于ccb的变换残差编解码和ts残差编解码之间的主要区别列举如下:
[0074]
1.在变换残差编解码中,符号(coeff_sign_flag)是旁路编解码的,并且不被自动包括作为用于ccb计数的语法。另一方面,coeff_sign_flag在ts残差编解码中是上下文编解码的,并且被包括作为用于ccb计数的语法;
[0075]
2.在变换残差编解码中,tb的ccb的最大数量等于tb_zosize*1.75。另一方面,在ts残差编解码中,tb的ccb的最大数量等于tb_size*2。
[0076]
为了统一变换残差编解码过程和ts残差编解码过程之间的ccb约制,在维持由用于变换块和ts块的两个单独的残差编解码结构提供的大部分增益的同时,提出了一些统一。
[0077]
在一个实施例中,在ts残差编解码中,我们从ccb计数中排除coeff_sign_flag,使得用于ccb计数的语法对于两个残差编解码过程是统一的。此外,单独的上下文编解码二进制位的最大数量可以被指定,并且仅用于coeff_sign_flag。在另一个实施例中,在ts残差编解码中,tb的ccb计数的最大数量从tb_size*2减少到tb_size*1.75。更一般地,变换残差编解码和ts残差编解码的最大ccb计数两者都被设置为相同的值,使得最大ccb计数对于两个残差编解码过程是统一的。下面详细描述统一变换残差编解码过程和ts残差编解码过程之间的ccb约制的几种方法。
[0078]
统一用于ccb计数的语法
[0079]
在vvc草案6中,诸如sig_coeff_flag、abs_level_gtx_flag[0]、par_level_flag和abs_level_gtx_flag[1]的系数标志被包括在变换残差模式中的ccb计数中,如图7中的步骤740和750所示。另一方面,诸如sig_coeff_flag、coeff_sign_flag、abs_level_gtx_flag[0]、par_level_flag和abs_level_gtx_flag[j](1≤j≤4)的系数标志被包括在变换跳过残差模式中的ccb计数中,如图8中的步骤830-870所示。在这两种模式下,coeff_sign_flag是否包含在ccb计数中是有区别的。表1显示了vtm 6.0中的两种残差编解码模式的语法结构。如表1所示,使用非重叠子块(子块)对编解码块的残差进行编解码,并且每个子块包含16个系数。对于给定的子块,在处理下一个子块之前,系数在循环(子块循环)内部被编解码,直到该子块中的所有系数都可以被重构。对于给定的系数,系数级别的语法在几个轮次内部被编解码。在每个轮次中,在系数的该轮次内部的所有预定义语法被编解码之后,它开始处理下一个系数。残差的熵编解码/解码包括多达三个轮次,其用于对以下语法元素进行编解码:
[0080]
coded_sub_block_flag:指定16系数子块的重要性(零/非零)。
[0081]
sig_coeff_flag:指定系数的重要性(零/非零)。
[0082]
abs_level_gtx_flag[j]:指定系数级别的绝对值是否大于(j《《1) 1。
[0083]
par_level_flag:指定系数的奇偶性。
[0084]
abs_remainder:指定系数级别的绝对值的剩余值(如果值大于先前轮次中被编解码的值)。
[0085]
dec_abs_level:指定系数级别的绝对值(如果系数在先前的轮次中没有被编解码)。
[0086]
coeff_sign_flag:指定重要系数的符号(0:正,1:负)。
[0087][0088]
表1:vtm 6.0中的两种残差编解码模式的残差语法结构vvc草案6中的变换跳过残差编解码的详细语法表如表2所示。
[0089]
[0090]
[0091][0092]
表2:vvc草案6中的变换跳过残差编解码的语法表
[0093]
如上所述,如图8中的步骤840所示,coeff_sign_flag被上下文编解码并包括在ts残差模式中的ccb计数中。在一个实施例中,提出从ts残差模式中的ccb计数中排除coeff_sign_flag,如图9和表3所示,其中相对于vtm 6.0的变化用下划线标出。在表4中给出了所提出的变换跳过残差编解码的语法表,其中相对于vvc草案6的改变是删除线(即,在coeff_sign_flag被信令通知之后,“maxccbs
‑”
被移除(940),图9中的其他步骤与图8中的其他步骤相同)。根据该实施例的变型,提出从ts残差编解码中的ccb计数中排除abs_level_gtx_flag[j](j》1)。
[0094][0095]
表3:提出的两种残差编解码模式的残差语法结构
[0096]
[0097][0098]
表4:提出的变换跳过残差编解码的语法表
[0099]
统一ccb计数的最大数量
[0100]
在vvc草案6中,如表1所示(也在图7和图8中示出),它在tb级别将亮度和色度系数的每个系数的上下文编解码二进制位的数量限制为1.75二进制位/系数,如图7中的步骤710所示。另一方面,ts残差编解码在tb级别将该限制设置为2二进制位/系数,如图8中的步骤810所示。
[0101]
这里提出的另一个统一是,例如,通过在tb级别分配1.75二进制位/系数,来对准用于变换残差编解码和ts残差编解码的每个系数的上下文编解码二进制位的最大允许数量,如图10中的步骤1010所示(图10中的其他步骤与图8中的其他步骤相同)。在ts残差编解码中,期望将每个残差的上下文编解码二进制位的最坏情况数量从2降低到1.75。这一变化将提高整体cabac吞吐量,并使cabac限制更加一致。表5示出了本实施例中提出的两种残差编解码模式的ccb分配的最大数量,其中相对于vtm 6.0的变化用下划线标出。在表6中给出了提出的关于变换跳过残差编解码的最大数量ccb计数分配的语法表,其中相对于vvc草案6的变化用下划线标出。
[0102][0103]
表5:提出的最大数量ccb计数分配
[0104]
residual_ts_coding(x0,y0,log2tbwidth,log2tbheight,cidx){描述符log2sbsize=(min(log2tbwidth,log2tbheight)《2?1:2) numsbcoeff=1《《(log2sbsize《《1) lastsubblock=(1《《(log2tbwidth log2tbheight-2*log2sbsize))-1 infersbcbf=1 maxccbs=(28*(1《《log2tbwidth)*(1《《log2tbheight))》》4
ꢀ…ꢀ
[0105]
表6:提出的关于变换跳过残差编解码的最大数量ccb计数分配的语法表
[0106]
根据第二实施例的变型,用于变换残差编解码和ts残差编解码的每个系数的上下文编解码二进制位的最大允许数量可以通过在tb级别分配另一个值x而不是1.75二进制位/系数来对准。
[0107]
根据第二实施例的另一变型,第二实施例可以与第一实施例组合,这将除coeff_sign_flag之外的其他残差语法的ccb的最大数量减少到1.75二进制位。
[0108]
为coeff_sign_flag分配上下文编解码二进制位ccb_sign的另一个数量
[0109]
根据第一实施例,提出将coeff_sign_flag从ts残差模式中的ccb计数中排除。由于在ts残差编解码中,它将每个残差的上下文编解码二进制位的最差情况数量增加到超过2,这将降低整体cabac吞吐量。
[0110]
为了弥补这一缺陷,一种解决方案是将上述如表3和表5所述的实施例组合起来,这减少了除coeff_sign_flag之外的其他残差语法的ccb的最大数量。另一种解决方案是为coeff_sign_flag分配上下文编解码二进制位ccb_sign的另一个数量。在这种情况下,coeff_sign_flag的cabac吞吐量可以独立控制。
[0111]
tb的区域可用于导出tb中的coeff_sign_flag的上下文编解码二进制位ccb_sign的最大数量。例如,如图11中的步骤1110所示,ccb_sign的最大数量可以等于tb_size*0.5。这里,tb_size指示tb内的样本数量,如表7所示,其中相对于vtm 6.0的变化用下划线标出。如图11中的步骤1140所示,新的ccb计数maxccbs_sign而不是maxccbs被用于coeff_sign_flag(除了图11中的步骤1110和1140之外的步骤与图8中的步骤相同)。表8给出了提出的带有附加的ccb_sign的变换跳过残差编解码的语法表,其中相对于vvc草案6的变化用删除线或下划线标出。
[0112]
根据第三实施例的变型,它可以与第二实施例一起应用。根据第三实施例的变型,也可以在cg级别设置和应用ccb_sign。
[0113][0114]
表7:提出的带有附加的ccb_sign的残差语法结构
[0115][0116][0117]
表8:提出的带有附加的ccb_sign的变换跳过残差编解码的语法表
[0118]
注意,图7-11中描述的方法可以在编码器或解码器侧使用。当用于编码器侧时,图中的术语“编解码”可以理解为“编码”;当用于解码器侧时,图中的术语“编解码”可以理解为“解码”。对于示出残差编解码过程的图9-11,当在编码器侧使用时,变换跳过块的量化预测残差被用作输入,并且编解码预测残差被输出。当图9-11用于说明解码器侧的残差编解码过程时,对应于比特流中的量化预测残差的二进制位被解码,并且量化预测残差被输出用于变换跳过块。
[0119]
本文描述了各种方法,并且每种方法包括用于实现所述方法的一个或多个步骤或动作。除非该方法的正确操作需要步骤或动作的特定顺序,否则可以修改或组合特定步骤
和/或动作的顺序和/或使用。此外,诸如“第一”、“第二”等术语可以在各种实施例中用于修改元素、组件、步骤、操作等,例如“第一解码”和“第二解码”。除非特别需要,否则使用这些术语并不意味着对修改后的操作进行排序。因此,在该示例中,第一解码不需要在第二解码之前执行,并且可以发生在例如与第二解码重叠的时间段之前、与第二解码重叠的时间段期间或与第二解码重叠的时间段中。
[0120]
本技术中描述的各种方法和其他方面可以用于修改模块,例如,如图2和图3所示的视频编码器200和解码器300的熵编码和解码模块(245,330)。此外,本方面不限于vvc或hevc,并且可以应用于例如其他标准和建议,以及任何这样的标准和建议的扩展。除非另有说明,或者技术上排除,本技术中描述的方面可以单独使用或者组合使用。
[0121]
在本技术中使用了各种数值。特定值用于示例目的并且所描述的方面不限于这些特定值。
[0122]
实施例提供了一种包括指令的计算机程序,当指令被一个或多个处理器执行时使得一个或多个处理器执行根据上述的任何实施例的编码方法或解码方法。本实施例的一个或多个实施例还提供了一种计算机可读存储介质,其上存储有用于根据上述方法对视频数据进行编码或解码的指令。一个或多个实施例还提供了一种计算机可读存储介质,其上存储有根据上述方法生成的比特流。一个或多个实施例还提供了一种用于发送或接收根据上述方法生成的比特流的方法和装置。
[0123]
各种实现方式涉及解码。本技术中使用的“解码”可以涵盖例如对接收的编码序列执行的全部或部分处理,以便产生适合显示的最终输出。在各种实施例中,这些过程包括通常由解码器执行的一个或多个过程,例如熵解码、逆量化、逆变换和差分解码。基于具体描述的上下文,短语“解码过程”是旨在具体指操作的子集还是通常指更广泛的解码过程将是清楚的,并且被认为是本领域技术人员很好理解的。
[0124]
各种实现方式涉及编码。以类似于上面关于“解码”的讨论的方式,本技术中使用的“编码”可以涵盖例如对输入视频序列进行的全部或部分处理,以便产生编码的比特流。
[0125]
注意,本文使用的语法元素是描述性术语。因此,它们不排除使用其他语法元素名称。
[0126]
本文描述的实现方式和方面可以在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单一实现方式的形式的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实现方式也可以以其他形式(例如,装置或程序)实现。装置可以在例如适当的硬件、软件和固件中实现。这些方法可以在例如装置中实现,例如处理器,其通常指(包括例如计算机、微处理器、集成电路或可编程逻辑设备的)处理设备。处理器还包括通信设备,例如计算机、蜂窝电话、便携式/个人数字助理(“pda”)以及促进终端用户之间信息通信的其他设备。
[0127]
对“一个实施例”或“实施例”或“一个实现方式”或“实现方式”,以及其其他变型的引用,意味着结合该实施例描述的特定特征、结构、特性等被包括在至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”的出现,以及出现在本技术各处的任何其他变型,不一定都指同一实施例。
[0128]
此外,本技术可以涉及“确定”各种信息。确定信息可以包括例如估计信息、计算信息、预测信息或从存储器中检索信息中的一个或多个。
[0129]
此外,本技术可以涉及“访问”各种信息。访问信息可以包括例如接收信息、(例如,从存储器)检索信息、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一个或多个。
[0130]
此外,本技术可以涉及“接收”各种信息。接收与“访问”一样,是广义的术语。接收信息可以包括例如访问信息或(例如,从存储器)检索信息中的一个或多个。此外,在例如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,通常以一种或另一种方式涉及“接收”。
[0131]
应当理解,使用以下“/”、“和/或”和
“……
中的至少一个”中的任何一个,例如,在“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)。正如本领域和相关领域的普通技术人员清楚的那样,这可以扩展到与列出的一样多的项目。
[0132]
对于本领域普通技术人员来说显而易见的是,实现方式可以产生各种信号,这些信号被格式化以携带例如可以被存储或发送的信息。该信息可以包括例如用于进行方法的指令,或者由所描述的实现方式之一产生的数据。例如,信号可以被格式化以携带描述的实施例的比特流。这种信号可以例如(例如,使用频谱的射频部分)被格式化为电磁波或格式化为基带信号。格式化可以包括,例如,编码数据流和用编码的数据流调制载波。信号携带的信息可以是例如模拟或数字信息。众所周知,信号可以通过各种不同的有线或无线链路来发送。该信号可以存储在处理器可读介质上。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献