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

用于视频编解码中的量化和反量化设计的方法和设备与流程

2022-05-08 09:52:35 来源:中国专利 TAG:

用于视频编解码中的量化和反量化设计的方法和设备
1.相关申请的交叉引用
2.本技术要求于2019年09月22日提交的申请号为62/904,668的美国临时申请的权益。前述申请的全部公开内容通过引用以其整体并入本文。
技术领域
3.本技术总体上涉及视频编解码和压缩,并且具体地但不限于,用于视频编解码中的量化和反量化设计的方法和设备。


背景技术:

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


技术实现要素:

5.总体上,本公开描述了与视频编解码中的量化和反量化设计有关的技术的示例。
6.根据本公开的第一方面,提供了一种在编码器中应用的用于视频编解码的方法,包括:确定针对编解码单元(cu)的残差数据的量化参数;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个系数;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;并且基于缩放值、多个系数和多个位移来获得量化后的等级。
7.根据本公开的第二方面,提供了一种在解码器中应用的用于视频编解码的方法,包括:接收包括量化参数和量化后的等级的视频比特流;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;并且基于量化后的等级、缩放值和多个位移来获得与cu相关联的多个系数。
8.根据本公开的第三方面,提供了一种计算设备,包括:一个或多个处理器;非暂态存储装置,被耦接到一个或多个处理器;以及多个程序,被存储在非暂态存储装置中,多个程序在由一个或多个处理器执行时使一个或多个处理器执行动作,动作包括:确定针对cu的残差数据的量化参数;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个系数;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;以及基于缩放值、多个系数和多个位移来获得量化后的等级。
9.根据本公开的第四方面,提供了一种计算设备,包括:一个或多个处理器;非暂态存储装置,被耦接到一个或多个处理器;以及多个程序,被存储在非暂态存储装置中,多个程序在由一个或多个处理器执行时使一个或多个处理器执行动作,动作包括:接收包括量
化参数和量化后的等级的视频比特流;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;并且基于量化后的等级、缩放值和多个位移来获得与cu相关联的多个系数。
10.根据本公开的第五方面,提供了一种非暂态计算机可读存储介质,存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中多个程序在由一个或多个处理器执行时使一个或多个处理器执行动作,动作包括:确定针对cu的残差数据的量化参数;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个系数;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;以及基于缩放值、多个系数和多个位移来获得量化后的等级。
11.根据本公开的第六方面,提供了一种非暂态计算机可读存储介质,存储用于由具有一个或多个处理器的计算设备执行的多个程序,其中多个程序在由一个或多个处理器执行时使一个或多个处理器执行动作,动作包括:接收包括量化参数和量化后的等级的视频比特流;通过用缩放因子对量化参数进行缩放来导出缩放值;确定与cu相关联的多个参数;通过对多个参数进行位移来获得多个位移;以及基于量化后的等级、缩放值和多个位移来获得与cu相关联的多个系数。
附图说明
12.将通过参照附图中所示的具体示例来呈现本公开的示例的更具体的描述。鉴于这些附图仅描绘了一些示例并且因此不被认为是对范围的限制,将通过使用附图利用附加的特性和细节来描述和解释示例。
13.图1是示出根据本公开的一些实施方式的示例性视频编码器的框图。
14.图2是示出根据本公开的一些实施方式的示例性视频解码器的框图。
15.图3示出根据本公开的一些实施方式的被划分为编解码树单元(ctu)的图片。
16.图4是示出根据本公开的一些实施方式的多类型树拆分模式的示意图。
17.图5示出根据本公开的一些实施方式的具有嵌套多类型树编解码树结构的四叉树中的分区拆分信息的信令机制。
18.图6示出根据本公开的一些实施方式的利用具有嵌套多类型树编解码块结构的四叉树被划分成多个cu的ctu。
19.图7示出根据本公开的一些实施方式的在调色板模式下被编解码的块的示例。
20.图8a和图8b示出根据本公开的一些实施方式的水平遍历扫描和垂直遍历扫描。
21.图9示出根据本公开的一些实施方式的调色板索引的编解码。
22.图10是示出根据本公开的一些实施方式的用于视频编解码的装置的框图。
23.图11是示出根据本公开的一些实施方式的视频编解码中的量化设计的示例性过程的流程图。
24.图12是示出根据本公开的一些实施方式的视频编解码中的反量化设计的示例性过程的流程图。
具体实施方式
25.现在将详细参照具体实施方式,其示例在附图中示出。在以下详细描述中,阐述了
很多非限制性具体细节以便帮助理解本文呈现的主题。但是对于本领域普通技术人员将显而易见的是,可以使用各种替代方案。例如,对于本领域普通技术人员将显而易见的是,本文呈现的主题可以在具有数字视频能力的许多类型的电子设备上实现。
26.贯穿本说明书对“一个实施例”、“一种实施例”、“一种示例”、“一些实施例”、“一些示例”或类似语言的引用表示所描述的特定特征、结构或特性被包括在至少一个实施例或示例中。除非另有明确说明,否则结合一个或一些实施例描述的特征、结构、元件或特性也适用于其他实施例。
27.贯穿本公开,除非另有明确说明,否则术语“第一”、“第二”、“第三”等都用作仅用于提及相关元件(例如,设备、组件、组合物、步骤等)的命名法,而不暗示任何空间顺序或时间顺序。例如,“第一设备”和“第二设备”可以指代两个单独形成的设备,或者同一设备的两个部分、组件或操作状态,并且可以被任意命名。
28.术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可以包括存储器(共享的、专用的或群组),其存储可以由一个或多个处理器执行的代码或指令。模块可以包括具有或不具有存储的代码或指令的一个或多个电路。模块或电路可以包括直接或间接连接的一个或多个组件。这些组件可以物理地附接到彼此或彼此相邻定位,或可以不物理地附接到彼此或彼此相邻定位。
29.如本文所使用的,取决于上下文,术语“如果”或“当......时”可以被理解为表示“一经......”或“响应于......”。这些术语如果出现在权利要求中,则可以未指明相关限制或特征是有条件的或可选的。例如,一种方法可以包括以下步骤:i)当条件x存在时或如果条件x存在,功能或动作x'被执行,以及ii)当条件y存在时或如果条件y存在,功能或动作y'被执行。该方法可以以执行功能或动作x'的能力和执行功能或动作y'的能力两者来实现。因此,功能x'和功能y'两者可以在方法的多次执行时在不同时间被执行。
30.单元或模块可以纯粹通过软件、纯粹通过硬件、或通过硬件和软件的组合来实现。在纯软件实施方式中,例如,单元或模块可以包括直接或间接链接在一起的功能上相关的代码块或软件组件,以便执行特定功能。
31.图1是示出根据本公开的一些实施方式的示例性视频编码器的框图。在编码器100中,视频帧被分割成多个视频块以进行处理。对于每个给定视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,基于来自先前重建帧的像素,通过运动估计和运动补偿来形成一个或多个预测值。在帧内预测中,基于当前帧中的重建像素来形成预测值。通过模式决策,可以选择最佳预测值来预测当前块。
32.预测残差,其表示当前视频块与它的预测值之间的差,被发送到变换电路系统102。变换系数然后从变换电路系统102被发送到量化电路系统104,以用于熵减少。量化的系数然后被馈送到熵编解码电路系统106,以生成压缩的视频比特流。如图1所示,来自帧间预测电路系统和/或帧内预测电路系统112的预测相关信息110,诸如视频块分割信息、运动矢量、参考图片索引和帧内预测模式,也被馈送通过熵编解码电路系统106并保存到压缩的视频比特流114中。
33.在编码器100中,为了预测的目的,还需要解码器相关电路系统以便重建像素。首先,预测残差通过反量化电路系统116和逆变换电路系统118被重建。此重建的预测残差与块预测值120组合,以生成针对当前视频块的未经滤波的重建像素。
34.为了提高编解码效率和视觉质量,环路滤波器被使用。例如,去块滤波器在avc、hevc以及vvc的现在当前版本中可用。在hevc中,被称为样点自适应偏移(sao)的附加环路滤波器被定义以进一步提高编解码效率。在vvc标准的现在当前版本中,被称为自适应环路滤波器(alf)的又一环路滤波器正在被积极地研究,并且它很有可能被包括在最终标准中。
35.图2是示出示例性的基于块的视频解码器200的框图,解码器200可以与许多视频编解码标准结合使用。该解码器200类似于驻留在图1的编码器100中的重建相关部分。在解码器200中,首先通过熵解码202对传入的视频比特流201进行解码,以导出量化的系数等级和预测相关信息。量化的系数等级然后通过反量化204和逆变换206进行处理,以获得重建的预测残差。块预测值机制,其在帧内/帧间模式选择器212中实现,被配置为基于经解码的预测信息来执行帧内预测208或运动补偿210。通过使用求和器214对来自逆变换206的重建预测残差和由块预测值机制生成的预测输出进行求和,来获得一组未经滤波的重建像素。在环路滤波器209被开启的情况下,对这些重建像素执行滤波操作以导出最终的重建视频输出222。
36.上文所提及的视频编解码/解码标准,诸如vvc、jem、hevc、mpeg-4第10部分,在概念上是类似的。例如,它们都使用基于块的处理。在联合视频专家组(jvet)会议中,jvet定义了通用视频编解码(vvc)的第一草案和vvc测试模型1(vtm1)编码方法。决定了包括四叉树作为vvc的初始新编解码特征,该四叉树具有使用二元拆分和三元拆分编解码块结构的嵌套多类型树。四叉树是父节点可以被拆分成四个子节点的树,每个子节点可以成为用于另一次拆分成四个新子节点的另一父节点。
37.在vvc中,图片分割结构将输入视频划分成被称为编解码树单元(ctu)的块。使用具有嵌套多类型树结构的四叉树将ctu拆分成编解码单元(cu),其中叶cu定义共享相同预测模式(例如,帧内或帧间)的区域。在本公开中,术语“单元”定义覆盖所有分量的图像区域;术语“块”用于定义覆盖特定分量(例如,亮度)的区域,并且在考虑色度采样格式(诸如4:2:0)时可能在空间位置上不同。
38.将图片分割成ctu
39.图片可以被划分成编解码树单元(ctu)的序列。ctu概念与hevc的ctu概念相同。对于具有三个样点阵列的图片,ctu由亮度样点的n
×
n块以及色度样点的两个对应块组成。图3示出根据本公开的一些实施方式的被划分成ctu的图片。ctu中的亮度块的最大允许尺寸被指定为128
×
128。并且亮度变换块的最大尺寸为64
×
64。
40.使用树结构分割ctu
41.在hevc中,通过使用被表示为编解码树的四元树结构,ctu被拆分成cu以适应各种局部特性。使用图片间(时间)预测还是图片内(空间)预测对图片区域进行编解码的决定是在叶cu级做出的。每个叶cu可以根据pu拆分类型进一步被拆分成一个、两个、或四个预测单元(pu)。在一个pu内部,应用相同预测过程并且在pu基础上将相关信息发送到解码器。在通过基于pu拆分类型应用预测过程获得残差块之后,可以根据与针对cu的编解码树类似的另一四元树结构将叶cu分割成变换单元(tu)。hevc结构的一个关键特征是其具有包括cu、pu和tu的多个分割概念。
42.在vvc中,具有使用二元拆分和三元拆分分区结构的嵌套多类型树的四叉树代替了多个分割单元类型的概念。例如,其去除了对cu、pu和tu概念的分离,并且支持用于cu分
割形状的更大灵活性,除外的是,具有对于最大变换长度来说太大尺寸的cu需要此分离。在编解码树结构中,cu可以具有正方形或矩形形状。首先通过四元树(即四叉树)结构分割ctu。然后,可以通过多类型树结构进一步分割四元树的叶节点。
43.图4是示出根据本公开的一些实施方式的多类型树拆分模式的示意图。如图4中所示,在多类型树结构中存在四种拆分类型:垂直二元拆分(split_bt_ver)、水平二元拆分(split_bt_hor)、垂直三元拆分(split_tt_ver)和水平三元拆分(split_tt_hor)。多类型树的叶节点被称为cu,并且除非cu对于最大变换长度来说太大,否则此分区被用于预测和变换处理而无需任何进一步分割。因此,cu、pu和tu可以在具有嵌套多类型树编解码块结构的四叉树中具有相同块尺寸。当最大支持变换长度小于cu的颜色分量的宽度或高度时,出现例外。
44.图5示出根据本公开的一些实施方式的具有嵌套多类型树编解码树结构的四叉树中的分区拆分信息的信令机制。ctu被视为四元树的根并且首先被四元树结构分割。当每个四元树叶节点足够大时,允许其然后通过多类型树结构进一步被分割。在多类型树结构中,用信号发送第一标志(mtt_split_cu_flag)以指示节点是否被进一步分割。当节点被进一步分割时,用信号发送第二标志(mtt_split_cu_vertical_flag)以指示拆分方向,并且然后用信号发送第三标志(mtt_split_cu_binary_flag)以指示拆分是二元拆分还是三元拆分。基于mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,导出cu的多类型树拆分模式(mttsplitmode),如表1所示。
45.表1.基于多类型树语法元素的mttsplitmode导出
46.mttsplitmodemtt_split_cu_vertical_flagmtt_split_cu_binary_flagsplit_tt_hor00split_bt_hor01split_tt_ver10split_bt_ver11
47.图6示出根据本公开的一些实施方式的利用具有嵌套多类型树编解码块结构的四叉树被划分成多个cu的ctu。如图6中所示,粗体框边缘表示四叉树分割,并且其余边缘表示多类型树分割。具有嵌套多类型树分割的四叉树提供了由cu组成的内容自适应编解码树结构。cu的尺寸可以与ctu一样大,或与以亮度样点为单位的4
×
4一样小。对于4:2:0色度格式的情况,最大色度编解码块(cb)尺寸是64
×
64,并且最小色度cb尺寸是2
×
2。
48.在vvc中,最大支持亮度变换尺寸为64
×
64,并且最大支持色度变换尺寸为32
×
32。当cb的宽度或高度大于最大变换宽度或高度时,cb在水平和/或垂直方向上被自动拆分以满足该方向上的变换尺寸限制。
49.以下参数由针对具有嵌套多类型树编解码树方案的四叉树的序列参数集(sps)语法元素来定义和指定。
50.ctu尺寸:四元树的根节点尺寸;
51.minqtsize:最小允许四元树叶节点尺寸;
52.maxbtsize:最大允许二元树根节点尺寸;
53.maxttsize:最大允许三元树根节点尺寸;
54.maxmttdepth:从四元树叶拆分的多类型树的最大允许层级深度;
55.minbtsize:最小允许二元树叶节点尺寸;
56.minttsize:最小允许三元树叶节点尺寸。
57.在具有嵌套多类型树编解码树结构的四叉树的一个示例中,ctu尺寸被设置为128
×
128个亮度样点以及两个对应的4:2:0色度样点的64
×
64块。minqtsize被设置为16
×
16,maxbtsize被设置为128
×
128,并且maxttsize被设置为64
×
64。minbtsize和minttsize针对宽度和高度两者被设置为4
×
4,并且maxmttdepth被设置为4。四元树分割首先被应用于ctu以生成四元树叶节点。四元树叶节点可以具有从16
×
16(即minqtsize)到128
×
128(即ctu尺寸)的尺寸。如果叶qt节点是128
×
128,则它将不会被二元树进一步拆分,因为尺寸超过了maxbtsize和maxttsize,即64
×
64。否则,叶四叉树节点可以被多类型树进一步分割。因此,四元树叶节点也是针对多类型树的根节点,并且其具有多类型树深度,即mttdepth,为0。当多类型树深度达到maxmttdepth(即,4)时,不考虑进一步拆分。当多类型树节点具有等于minbtsize并且小于或等于2
×
minttsize的宽度时,不考虑进一步水平拆分。类似地,当多类型树节点具有等于minbtsize并且小于或等于2
×
minttsize的高度时,不考虑进一步垂直拆分。
58.图7示出根据本公开的一些实施方式的在调色板模式下被编解码的块的示例。为了允许vvc硬件解码器中的64
×
64亮度块和32
×
32色度流水线设计,如图7所示,当亮度编解码块的宽度或高度大于64时,禁止tt拆分。当色度编解码块的宽度或高度大于32时,也禁止tt拆分。
59.在vvc中,编解码树方案支持亮度和色度具有单独块树结构的能力。此cu拆分结构被称为双树结构或双编解码树结构。由亮度和色度两者共享的cu拆分结构被称为单树结构或单编解码树结构。对于p条带和b条带,一个ctu中的亮度编解码树块(ctb)和色度编解码树块必须共享相同的编解码树结构。然而,对于i条带,亮度和色度可以具有单独块树结构。当应用单独块树模式时,通过一个编解码树结构将亮度ctb分割成cu,并且通过另一编解码树结构将色度ctb分割成色度cu。这意味着i条带中的cu可以由亮度分量的编解码块或两个色度分量的编解码块组成,并且p条带或b条带中的cu总是由所有三个颜色分量的编解码块组成,除非视频是单色的。
60.用于核变换的多变换选择(mts)
61.除了已经在hevc中采用的dct-ii之外,mts方案也被用于对帧间编解码块和帧内编解码块两者进行残差编解码。它使用来自dct8/dst7的多个选择的变换。新引入的变换矩阵是dst-vii和dct-viii。表2示出了所选择的dst/dct的基函数。
62.表2.用于n点输入的dct-ii/viii和dst-vii的变换基函数
[0063][0064]
为了保持变换矩阵的正交性,与hevc中的变换矩阵相比,变换矩阵被更准确地量化。为了将变换后的系数的中间值保持在16比特范围内,在水平变换之后并且在垂直变换之后,所有系数将具有10比特。
[0065]
为了控制mts方案,分别针对帧内和帧间在sps级指定单独的启用标志。当在sps启用mts时,用信号发送cu级标志以指示是否应用mts。这里,mts仅被应用于亮度。当满足以下条件时,用信号发送mts cu级标志:第一,宽度和高度都小于或等于32;第二,cbf标志等于1。
[0066]
如果mts cu标志等于零,则在两个方向上都应用dct2。然而,如果mts cu标志等于一,则另外用信号发送两个其他标志以分别指示用于水平方向和垂直方向的变换类型。变换和信令映射表如表3中所示。通过去除帧内模式和块形状依赖性,针对isp和隐式mts的统一变换选择被使用。如果当前块是isp模式,或者如果当前块是帧内块并且帧内和帧间显式mts两者都开启,则仅dst7被用于水平变换核和垂直变换核两者。当提到变换矩阵精度时,使用8比特初级变换核。因此,hevc中使用的所有变换核保持相同,包括4点dct2和dst7、8点dct2、16点dct2和32点dct2。此外,包括64点dct2、4点dct8、8点dst7和dct8、16点dst7和dct8、32点dst7和dct8的其他变换核使用8比特初级变换核。
[0067][0068]
表3.变换和信令映射表
[0069]
为了降低大尺寸dst7和dct8的复杂度,对于尺寸(宽度或高度,或宽度和高度两
者)等于32的dst7块和dct8块,将高频变换系数置零。仅保留16
×
16低频区域内的系数。
[0070]
如在hevc中那样,块的残差可以用变换跳过模式被编解码。为了避免语法编解码的冗余,当cu级mts_cu_flag不等于零时,不用信号发送变换跳过标志。用于变换跳过的块尺寸限制与jem4中的用于mts的块尺寸限制相同,其指示当块宽度和高度两者等于或小于32时变换跳过适用于cu。注意,当针对当前cu激活lfnst或mip时,隐式mts变换被设置为dct2。此外,当针对帧间编解码块启用mts时,仍然可以启用隐式mts。
[0071]
量化参数控制
[0072]
在一些示例中,最大qp可以从51扩展到63,并且初始量化参数(qp)的信令可以相应地改变。当slice_qp_delta的非零值被编解码时,sliceqpy的初始值在条带分区层被修改。具体地,init_qp_minus26的值可以被修改为在(-26 qpbdoffsety)到 37的范围内。当变换块的尺寸不是4的幂时,变换系数与对qp或qp等级缩放表的修改一起被处理,而不是通过乘以181/256(或181/128)来处理,以补偿变换过程的隐式缩放。对于变换跳过块,最小允许qp被定义为4,因为当qp等于4时,量化步长变为1。
[0073]
在一些示例中,固定查找表被用于将亮度量化参数qpy转换为色度量化参数qpc。在vvc中,使用更灵活的亮度到色度qp映射。代替具有固定表,使用灵活的分段式线性模型在sps中用信号发送亮度到色度qp映射关系,其中对线性模型的仅有的约束是每段的斜率不能为负。也就是说,随着亮度qp增加,色度qp必须保持平坦或增加,但不能减小。分段式线性模型由以下各项定义:1)模型中的段的数量;以及2)针对段的输入(亮度)差量qp和输出(色度)差量qp。分段式线性模型的输入范围是[-qpbdoffsety,63],并且分段式线性模型的输出范围是[-qpbdoffsetc,63]。qp映射关系可以针对cb、cr和联合cb/cr编解码被单独用信号发送,或者针对所有三种类型的残差编解码被联合用信号发送。
[0074]
与hevc中相同,在vvc中允许cu级qp自适应。针对亮度分量和色度分量的差量qp值可以被单独用信号发送。对于色度分量,按照与hevc中类似的方式,以图片参数集(pps)中的偏移列表的形式,用信号发送允许的色度qp偏移值。对于cb、cr和联合cb/cr编解码,单独定义列表。对于cb列表、cr列表和联合cb/cr列表中的每一个列表,允许多达6个偏移值。在cu级,用信号发送索引以指示偏移列表中的偏移值中的哪个偏移值被用于调整用于该cu的色度qp。
[0075]
用于变换系数的量化过程和反量化过程
[0076]
变换过程要求将所得系数用某个因子进行缩放,随后的是在量化过程和反量化过程期间的移位操作。缩放因子被定义如下:
[0077][0078]
其中m和n是变换块的宽度和高度。
[0079]
在一些示例中,块的维度是2的幂,即m=2m并且n=2n。这意味着当m等于n时,或者实际上当m
·
n是4的幂时,可以通过右移来应用因子。满足这些条件的块被称为术语“正常块”。当m
·
n不是4的幂时,使用不同的缩放值和移位值进行补偿。缩放值如表4中所定义。满足这些条件的块被称为术语“补偿块”。
[0080]
表1.缩放表
[0081][0082]
对于在变换跳过模式下被编解码的块,执行针对正常块所定义的缩放操作和移位操作。
[0083]
表5中示出缩放变换系数的导出。表5中所有变量的定义可以在vvc草案规范的版本6中找到。
[0084]
表5
[0085][0086]
给定所使用的qp值,用于变换系数的量化过程和反量化过程可以描述如下。量化可以由等式(2)描述:
[0087][0088]
反量化可由等式(3)描述:
[0089][0090]
其中变量rectnontsflag可以通过等式(4)获得:
[0091]
rectnontsflag=(((log2(w) log2(h))&1)==
[0092]
1&&transform_skip_flag==0)
ꢀꢀ
(4)
[0093]
并且变量transformshift

可以通过等式(5)获得:
[0094]
transformshift

=rectnontsflag?(transformshift-1):transformshift
ꢀꢀ
(5)
[0095]
这里,pcoeff是变换系数值;plevel是量化的值或量化等级;pcoeff

是来自反量化过程的重建的变换系数值。
[0096]
变量rectnontsflag表示当前块是被分类为“正常块”还是“补偿块”。当它具有假或0的值时,当前块被分类为正常块。当它具有真或1的值时,当前块被分类为补偿块。
[0097]
变量transformshift表示被用于补偿由于2维(2d)变换引起的动态范围增大的位移,其等于15-bitdepth-(log2(w) log2(h))/2,其中w和h是当前变换单元的宽度和高度,bitdepth是编解码比特深度。取决于rectnontsflag的值,移位操作中所使用的实际值transformshift

可以取与transformshift相同的值或等于(transformshift-1)的值。encscale[][]和decscale][]是量化缩放值和反量化缩放值,其分别具有14比特精度和6比特精度,并且如表1所示的被定义。取决于rectnontflag的值,用于“正常块”或“补偿块”的一组缩放因子被选择并且被用于当前块。
[0098]
用于变换跳过模式的量化过程和反量化过程
[0099]
在变换跳过模式下,预测残差被直接量化和编解码而不执行变换操作。更具体地,其量化过程和反量化过程可以描述如下。
[0100]
量化可以由等式(6)描述:
[0101][0102]
反量化可以由等式(7)描述:
[0103][0104]
其中presi和presi

是原始预测残差样点值和重建的预测残差样点值;plevel是量化的值或量化等级;encscale[][]和decscale[][]是量化缩放值和反量化缩放值,其分别具有14比特精度和6比特精度,并且与用于表1中所示的“正常块”的那些缩放值被相同地定义。
[0105]
用于调色板模式的量化过程和反量化过程
[0106]
vtm6支持用于4:4:4颜色格式的屏幕内容编解码的调色板模式。当启用调色板模式时且如果cu尺寸小于或等于64
×
64,则在cu级发送标志以指示调色板模式是否被用于cu。调色板模式被用信号发送为除了帧内预测模式、帧间预测模式和帧内块复制(ibc)模式之外的预测模式。
[0107]
如果调色板模式被用于cu,则cu中的样点值可以由代表性颜色值的小集合来表示。该集合被称为“调色板”。对于具有接近调色板颜色的值的像素,可以用信号发送调色板索引以将它们的值传送到解码器。还有可能的是,通过用信号发送逃逸符号索引,逃逸值跟随在后,来指定样点值不接近任何调色板颜色的样点。逃逸值为样点的量化的分量值。这在图7中示出。
[0108]
对于逃逸值的量化和反量化,以下等式描述了分别在编码器和解码器处被应用的对应过程。
[0109]
量化可以由等式(8)描述:
[0110][0111]
反量化可以由等式(9)描述:
[0112][0113]
其中pesca和pesca

是原始逃逸值和重建的逃逸值;plevel是量化的值或量化等级;encscale[][]和decscale[][]是量化缩放值和反量化缩放值,其分别具有14比特精度和6比特精度,并且与表4中所示的用于“正常块”的那些缩放值被相同地定义。
[0114]
对于调色板的编解码,包括颜色列表的调色板预测值被维持。对于非波前情况,预测值在每个条带的开始处被初始化为0(即,空列表),并且对于波前情况,预测值在每个ctu行的开始处被初始化为0。对于调色板预测值中的每个条目,用信号发送重用标志以指示其是否为cu中的当前调色板的一部分。使用零的游程长度编解码来发送重用标志。此后,用信号发送新调色板条目的数量和针对新调色板条目的分量值。在调色板模式下对cu进行编解码之后,使用当前调色板来更新调色板预测值,并且在当前调色板中未重复使用的来自调色板预测值的条目被添加在末尾,直到达到所允许的最大调色板大小以形成新的调色板预测值。针对每个cu用信号发送逃逸标志以指示当前cu中是否存在逃逸符号。如果存在逃逸符号,则调色板表增加一,并且最后的索引被分配来表示逃逸符号。
[0115]
图8a和图8b示出根据本公开的一些实施方式的水平遍历扫描和垂直遍历扫描。cu中的样点的调色板索引形成调色板索引图。索引图使用如图8a和图8b所示的水平遍历扫描和/或垂直遍历扫描被编解码。扫描顺序使用palette_transpose_flag在比特流中显式地用信号发送。
[0116]
图9示出根据本公开的一些实施方式的调色板索引的编解码。调色板索引使用两种主要的调色板样点模式被编解码:index和copy_above。除了仅水平扫描被使用的顶行、仅垂直扫描被使用的第一列、或先前模式是copy_above的调色板样点位置之外,模式使用标志被用信号通知。在copy_above模式下,上方行中的样点的调色板索引被复制。在index模式下,显示地用信号发送调色板索引。对于index模式和copy_above模式两者,用信号发送游程值,游程值指定使用相同的关联模式被编解码的像素的数量。
[0117]
针对索引图的编解码顺序如下。首先,用信号发送与index游程相关联的索引值的数量。这之后是使用截断二进制编解码用信号发送针对整个cu的实际索引值。然后,以交错方式用信号发送调色板模式(index或copy_above)和针对每个游程的游程长度。最后,针对整个cu的量化的逃逸模式颜色被分组在一起并且利用指数哥伦布编解码被编解码。
[0118]
对于具有双亮度/色度树的条带,调色板分开地被应用于亮度(y分量)和色度(cb分量和cr分量)。对于单树的条带,调色板将被联合地应用于y分量、cb分量、cr分量,也即,调色板中的每个条目包含y值、cb值、cr值。对于去块,不对调色板编解码块的块边界进行去块。
[0119]
量化方案的三种不同的设计可用并且分别被应用于常规变换、变换跳过和调色板模式。每个不同的量化设计与不同的移位操作和缩放操作相关联。对于应用常规变换的块,移位操作和缩放操作是依赖于块形状的。对于应用变换跳过的块,移位操作和缩放操作不
取决于块形状。对于在调色板模式下被编解码的块,仅执行缩放操作,并且该操作不取决于块形状。从标准化的角度来看,这种非统一的设计可能不是最佳的。
[0120]
在一些示例中,提供了方法以简化且进一步改进变换和量化。通过将变换跳过模式下使用的量化操作和反量化操作应用于调色板模式,在变换跳过模式和调色板模式下使用的量化操作和反量化操作可以被统一。
[0121]
在一些示例中,通过将调色板模式下的当前量化操作和反量化操作应用于变换跳过模式,在变换跳过模式和调色板模式下使用的量化操作和反量化操作被统一。
[0122]
在一些示例中,通过将用于常规变换模式的量化操作和反量化操作应用于所有模式(也包括变换跳过模式和调色板模式),常规变换模式、变换跳过模式和调色板模式的量化操作和反量化操作全部被统一。
[0123]
用于变换跳过模式和调色板模式的量化和反量化的协调
[0124]
在一些示例中,将相同的量化和反量化过程应用于变换跳过模式下的预测残差和调色板模式下的逃逸值两者。在变换跳过模式下使用的量化操作和反量化操作也被应用于调色板模式。例如,与quant
ts
(presi)和对应的等式(6)和(7)被用于调色板模式下的逃逸值,其中presi将被替换为原始逃逸值pesca,并且来自的输出在这种情况下将是重建的逃逸值pesca


[0125]
具体地,量化操作被描述为:
[0126][0127]
其中transformshift=15-bitdepth-(log2(w) log2(h))/2,plevel是量化的等级,pesca是逃逸颜色值,qp是量化参数,encscale[]是缩放值,%表示模运算,qp%6表示qp对6取模的运算,w是cu的宽度,h是cu的高度,并且bitdepth是编解码比特深度。
[0128]
此外,反量化操作相应地被描述为:
[0129][0130]
其中transformshift=15-bitdepth-(log2(w) log2(h))/2,plevel是量化的等级,pesca

是针对cu的重建逃逸颜色值,qp是量化参数,decscale[]是缩放值,%表示模运算,qp%6表示qp对6取模的运算,w是cu的宽度,h是cu的高度,并且bitdepth是编解码比特深度。
[0131]
在一些示例中,在调色板模式下被用于逃逸值的量化操作和反量化操作也被应用于变换跳过模式下的预测残差。例如,与quante(pesca)和对应的等式(8)和(9)被用于变换跳过模式下的预测残差值,其中pesca将被替换为预测残差值presi,并且来自的输出在这种情况下将是重建的预测残差值presi


[0132]
具体地,量化操作被描述为:
[0133]
[0134]
其中plevel是量化的等级,presi是预测残差样点值,encscale[]是缩放值,qp是量化参数,%表示模运算,qp%6表示qp对6取模的运算。
[0135]
此外,反量化操作被描述为:
[0136][0137]
其中plevel是量化的等级,presi

是重建的预测残差样点值,encscale[]是缩放值,qp是量化参数,%表示模运算,qp%6表示qp对6取模的运算。
[0138]
用于常规变换模式、变换跳过模式和调色板模式的量化和反量化的协调
[0139]
在一些示例中,通过将用于常规变换模式的量化操作和反量化操作应用于所有模式(也包括变换跳过模式和调色板模式),常规变换模式、变换跳过模式和调色板模式的量化操作和反量化操作全部被统一。
[0140]
在一些示例中,用于常规变换模式的量化过程和反量化过程也被用于变换跳过模式和调色板模式。例如,等式(2)、(3)、(4)和(5)也被用于变换跳过模式和调色板模式下的量化/反量化过程。
[0141]
在一些示例中,当quant(pcoeff)函数与quant-1
(plevel)函数被用于变换跳过模式下的预测残差值presi时,pcoeff各被替换为presi
·2transformshift
,并且来自quant-1
(plevel)的输出在这种情况下将等于presi
′2transformshift
。作为结果,重建的预测残差值presi

通过quant-1
(plevel)/2
transformshift
导出。因此,除了一些移位操作之外,针对变换跳过系数的相同量化函数和反量化函数被用于变换跳过模式下的预测残差值。
[0142]
具体地,量化操作可以被描述为:
[0143][0144]
transformshift=15-bitdepth-(log2(w) log2(h))/2
[0145]
transformshift

[0146]
=rectnontsflag?(trahsformshift-1):transformshift
[0147]
其中plevel是量化的等级,presi是预测残差样点值,encscale[][]是缩放值,qp是量化参数,%表示模运算,qp%6表示qp对6取模的运算,w是cu的宽度,h是cu的高度,bitdepth是编解码比特深度,当cu被分类为正常块时,rectnontsflag等于0,并且当cu被分类为补偿块时,rectnontsflag等于1。
[0148]
此外,反量化操作可以被描述为:
[0149][0150]
transformshift=15-bitdepth-(log2(w) log2(h))/2
[0151]
transformshift

[0152]
=rectnontsflag?(trahsformshift-1):transformshift
[0153]
其中plevel是量化的等级,presi

是重建的预测残差样点值,encscale[][]是缩
放值,qp是量化参数,%表示模运算,qp%6表示qp对6取模的运算,w是cu的宽度,h是cu的高度,bitdepth是编解码比特深度,当cu被分类为正常块时,rectnontsflag等于0,并且当cu被分类为补偿块时,rectnontsflag等于1。
[0154]
在一些示例中,当quant(pcoeff)函数与quant-1
(plevel)函数被用于调色板模式下的逃逸值pesca时,pcoeff将被替换为preca
·2transformshift
,并且来自quant-1
(plevel)的输出在这种情况下将等于pesca

·2transformshift
。作为结果,重建的逃逸值pesca

通过quant-1
(plevel)/2
transformshiff
导出。因此,除了一些移位操作之外,针对变换跳过系数的相同量化函数和反量化函数也被用于调色板模式下的逃逸值。
[0155]
具体地,量化操作可以被描述为:
[0156][0157]
transformshift=15-bitdepth-(log2(w) log2(h))/2
[0158]
transformshift

[0159]
=rectnontsflag?(trahsformshift-1):transformshift
[0160]
其中plevel是量化的等级,pesca是逃逸颜色值,encscale[][]是缩放值,qp是量化参数,%表示模运算,qp%6表示qp对6取模的运算,w是cu的宽度,h是cu的高度,bitdepth是编解码比特深度,当cu被分类为正常块时,rectnontsflag等于0,并且当cu被分类为补偿块时,rectnontsflag等于1。
[0161]
值得注意的是,根据quant(pcoeff)和quant-1
(plevel)的量化过程和反量化过程可能不用于支持vvc中的无损编解码,因为使用这两个函数即使是在量化步长为1的情况下,也不能保证完美重建。
[0162]
在一些示例中,当使用上述方法来统一不同样点值的量化过程和反量化过程时,在比特流中可以用信号发送单独标志(例如,trans_quant_bypass_flag),以指示给定图像区域(例如,cu)是否在无损编解码模式下被编解码。如果这样的标志指示给定块是在无损模式下被编解码的,则针对该块的编解码,绕过对应的量化过程和反量化过程。
[0163]
图10是示出根据本公开的一些实施方式的用于视频编解码的装置的框图。装置1000可以是终端,诸如移动电话、平板计算机、数字广播终端、平板设备、或个人数字助理。
[0164]
如图10所示,装置1000可以包括以下组件中的一个或更多个组件:处理组件1002、存储器1004、电源组件1006、多媒体组件1008、音频组件1010、输入/输出(i/o)接口1012、传感器组件1014和通信组件1016。
[0165]
处理组件1002通常控制装置1000的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作有关的操作。处理组件1002可以包括一个或多个处理器1020,用于执行指令以完成上述方法的全部或部分步骤。此外,处理组件1002可以包括一个或多个模块,以促进处理组件1002与其他组件之间的交互。例如,处理组件1002可以包括多媒体模块,以促进多媒体组件1008与处理组件1002之间的交互。
[0166]
存储器1004被配置为存储不同类型的数据以支持装置1000的操作。此类数据的示例包括用于在装置1000上操作的任何应用或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器1004可以由任何类型的易失性或非易失性存储设备或其组合来实现,并且存储器1004可以是静态随机存取存储器(sram)、电可擦除可编程只读存储器
(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存、磁盘或紧致盘。
[0167]
电源组件1006为装置1000的不同组件供电。电源组件1006可以包括电源管理系统、一个或多个电源、以及与为装置1000生成、管理和分配电力相关联的其他组件。
[0168]
多媒体组件1008包括在装置1000和用户之间提供输出接口的屏幕。在一些示例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,则屏幕可以被实现为从用户接收输入信号的触摸屏。触摸面板可以包括一个或多个触摸传感器,用于感测触摸面板上的触摸、滑动和手势。触摸传感器不仅可以感测触摸动作或滑动动作的边界,而且可以检测与触摸操作或滑动操作相关的持续时间和压力。在一些示例中,多媒体组件1008可以包括前置相机和/或后置相机。当装置1000处于操作模式(诸如拍摄模式或视频模式)时,前置相机和/或后置相机可以接收外部多媒体数据。
[0169]
音频组件1010被配置为输出和/或输入音频信号。例如,音频组件1010包括麦克风(mic)。当装置1000处于操作模式(诸如呼叫模式、录音模式和语音识别模式)时,麦克风被配置为接收外部音频信号。接收的音频信号可以进一步被存储在存储器1004中或经由通信组件1016被发送。在一些示例中,音频组件1010还包括用于输出音频信号的扬声器。
[0170]
i/o接口1012提供处理组件1002与外围接口模块之间的接口。上述外围接口模块可以是键盘、点击轮、按钮等。这些按钮可以包括但不限于主页按钮、音量按钮、启动按钮和锁定按钮。
[0171]
传感器组件1014包括用于在装置1000的不同方面中提供状态评估的一个或多个传感器。例如,传感器组件1014可以检测装置1000的开/关状态和组件的相对位置。例如,组件是装置1000的显示器和键盘。传感器组件1014还可以检测装置1000或装置1000的组件的位置变化、用户在装置1000上接触的存在或不存在、装置1000的方向或加速度/减速度、以及装置1000的温度变化。传感器组件1014可以包括接近传感器,接近传感器被配置为在没有任何物理接触的情况下检测附近物体的存在。传感器组件1014还可以包括光学传感器,诸如在成像应用中使用的cmos或ccd图像传感器。在一些示例中,传感器组件1014还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器、或温度传感器。
[0172]
通信组件1016被配置为促进装置1000与其他设备之间的有线或无线通信。装置1000可以基于诸如wifi、4g或其组合的通信标准来接入无线网络。在一种示例中,通信组件1016经由广播信道从外部广播管理系统接收广播信号或广播相关信息。在一种示例中,通信组件1016还可以包括用于促进短距离通信的近场通信(nfc)模块。例如,nfc模块可以基于射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术和其他技术来实现。
[0173]
在一种示例中,装置1000可以由专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器、或其他电子元件中的一个或多个来实现,以执行上述方法。
[0174]
非暂态计算机可读存储介质可以是例如硬盘驱动器(hdd)、固态驱动器(ssd)、闪存、混合驱动器或固态混合驱动器(sshd)、只读存储器(rom)、紧致盘只读存储器(cd-rom)、磁带、软盘等。
[0175]
图11是示出根据本公开的一些实施方式的视频编解码中的量化设计的示例性过
程的流程图。该过程可以被应用于编码器中。
[0176]
在步骤1101中,处理器1020确定针对cu的残差数据的量化参数。
[0177]
在步骤1102中,处理器1020通过用缩放因子对量化参数进行缩放来导出缩放值。
[0178]
在步骤1103中,处理器1020确定与cu相关联的多个系数。
[0179]
在一些示例中,多个系数可以包括变换系数、针对cu的逃逸颜色值、以及预测残差样点值。
[0180]
在步骤1104中,处理器1020确定与cu相关联的多个参数。
[0181]
在一些示例中,多个参数包括基于编解码比特深度以及cu的宽度和高度确定的位移,并且缩放因子基于cu的宽度和高度被确定。
[0182]
在步骤1105中,处理器1020通过对多个参数进行位移来获得多个位移。
[0183]
在步骤1106中,处理器1020基于缩放值、多个系数和多个位移来获得量化的等级。
[0184]
在一些示例中,当处理器1020确定与cu相关联的多个系数时,处理器1020还确定针对cu的逃逸颜色值。逃逸颜色值可以是针对cu的像素的值,该像素具有不在从cu中选择的预设多个颜色中的颜色。并且当处理器1020基于缩放值、多个系数和多个位移获得量化的等级时,处理器1020还基于缩放值、逃逸颜色值和多个位移获得量化的等级。
[0185]
在一些示例中,处理器1020进一步确定与cu相关联的预测残差样点。当处理器1020确定与cu相关联的多个系数时,处理器1020还确定与预测残差样点相对应的预测残差样点值。当处理器1020基于缩放值、多个系数和多个位移获得量化的等级时,处理器1020还基于缩放值、预测残差样点值和多个位移获得量化的等级。
[0186]
图12是示出根据本公开的一些实施方式的视频编解码中的反量化设计的示例性过程的流程图。该过程可以被应用于解码器中。
[0187]
在步骤1201中,处理器1020接收包括量化参数和量化的等级的视频比特流。
[0188]
在步骤1202中,处理器1020通过用缩放因子对量化参数进行缩放来导出缩放值。
[0189]
在步骤1203中,处理器1020确定与cu相关联的多个参数。
[0190]
在一些示例中,多个参数可以包括基于编解码比特深度以及cu的宽度和高度确定的位移,并且缩放因子基于cu的宽度和高度被确定。
[0191]
在步骤1204中,处理器1020通过对多个参数进行位移来获得多个位移。
[0192]
在步骤1205中,处理器1020基于量化的等级、缩放值和多个位移来获得与cu相关联的多个系数。
[0193]
在一些示例中,多个系数可以包括重建的变换系数、针对cu的重建的逃逸颜色值、以及重建的预测残差样点值。
[0194]
在一些示例中,当处理器1020基于量化的等级、缩放值和多个位移来获得与cu相关联的多个系数时,处理器1020还基于量化的等级、缩放值和多个位移来获得针对cu的重建的逃逸颜色值。并且重建的逃逸颜色值是针对cu中的像素的值,该像素具有不在从cu中选择的预设多个颜色中的颜色。
[0195]
在一些示例中,处理器1020进一步确定与cu相关联的预测残差样点。当处理器1020基于量化的等级、缩放值和多个位移获得与cu相关联的多个系数时,处理器1020基于量化的等级、缩放值和多个位移获得针对cu的重建的预测残差样点值。并且重建的预测残差样点值可以对应于预测残差样点。
[0196]
在一些示例中,提供了一种用于视频编解码的计算设备。该装置包括处理器1020;以及存储器1004,被配置为存储由处理器可执行的指令;其中处理器在执行指令时被配置为执行如图11所示的方法。
[0197]
在一些示例中,提供了一种用于视频编解码的计算设备。该装置包括处理器1020;以及存储器1004,被配置为存储由处理器可执行的指令;其中处理器在执行指令时被配置为执行如图12所示的方法。
[0198]
在一些其他示例中,提供了一种非暂态计算机可读存储介质1004,具有存储在其中的指令。当指令由处理器1020执行时,指令使处理器执行如图11所示的方法。
[0199]
在一些其他示例中,提供了一种非暂态计算机可读存储介质1004,具有存储在其中的指令。当指令由处理器1020执行时,指令使处理器执行如图12所示的方法。
[0200]
本公开的描述已经出于说明的目的被呈现,并且不旨在穷举或限于本公开。受益于在前面的描述和相关联的附图中呈现的教导,许多修改、变化和替代实施方式对于本领域普通技术人员将是显而易见的。
[0201]
选择和描述示例是为了解释本公开的原理,并且使本领域的其他技术人员能够理解本公开的各种实施方式,并且最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,将理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在本公开的范围内。
再多了解一些

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

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

相关文献