量化相关参数的传讯技术的制作方法

文档序号:31217470发布日期:2022-08-20 04:49阅读:40来源:国知局
量化相关参数的传讯技术的制作方法
量化相关参数的传讯技术
1.【相关申请的交叉引用】
2.本发明是要求2020.1.10提交的申请号为62/959,694,以及2020.1.16提交的申请号为62/962,077的美国临时专利申请的优先权的非临时申请的一部分。上述申请的内容通过引用一并并入本说明书中。
【技术领域】
3.本公开一般涉及视频编码。特别地,本公开涉及传讯(signaling)变换和量化相关参数的方法。


背景技术:

4.除非本文另有说明,本节中描述的方法不是下面列出的权利要求的现有技术,并且不能通过包含在本节中而承认为现有技术。
5.在实现高效视频编码(hevc)的视频编解码系统中,输入视频信号是从重建信号预测的,重建信号是从编码图片区域导出的。通过线性变换处理预测残差信号。变换系数与比特流中的其他辅助信息一起被量化和熵编码。重建信号是在对逆量化变换系数进行逆变换之后根据预测信号和重建残差信号生成的。重建信号通过环路滤波进一步处理以去除编码伪影。解码后的图片存储在帧缓冲器中,用于输出和预测输入视频信号中的未来图片。
6.在hevc中,编码图片被划分为由相关联的编解码树单元(ctu)表示的非重迭方形块区域。编码图片可以由切片集合表示,每个切片包含整数个ctu。切片中的各个ctu按光栅扫描顺序进行处理。可以使用最多两个运动向量和参考索引来使用帧内预测或帧间预测来解码双向预测(bi-predictive,简写为b)切片,以预测每个块的样本值。使用至多一个运动向量和参考索引来使用帧内预测或帧间预测解码预测(predictive,简写为p)切片,以预测每个块的样本值。仅使用帧内预测对帧内(intra,简写为i)切片进行解码。
7.可以使用递归四叉树(qt)结构将ctu划分为多个非重迭编解码单元(cu)以适应各种局部运动和纹理特性。为每个cu指定一个或多个预测单元(pu)。预测单元与相关联的cu语法一起用作传讯预测子信息的基本单元。指定的预测过程用于预测pu内相关像素样本的值。可以使用残差四叉树(rqt)结构进一步分割cu,以表示相关联的预测残差信号。rqt的叶节点对应于变换单元(tu)。变换单元包括大小为8x8、16x16或32x32的亮度样本的变换块(tb)或四个大小为4x4的亮度样本的变换块,以及4:2:0颜色格式的图片的色度样本的两个对应变换块。整数变换应用于变换块,量化系数的水平值(level value)与其他边信息一起在比特流中进行熵编解码。
8.术语编解码树块(ctb)、编解码块(cb)、预测块(pb)和变换块(tb)被定义为分别指定与ctu、cu、pu和tu相关联的一个颜色分量的2d样本阵列。因此,一个ctu由一个亮度ctb、两个色度ctb和相关的句法元素组成。类似的关系适用于cu、pu和tu。树分区通常同时应用于亮度和色度,但当色度达到某些最小尺寸时会出现例外情况。在其他一些编解码标准中,每个ctu可以被四叉树分割成一个或多个较小尺寸的编解码单元(cu),四叉树使用二元和
三元分裂的嵌套多类型树。生成的cu分区可以是正方形或矩形。
9.为了实现跨空间频率的均匀量化(uniform quantization),量化矩阵(qm)根据其相关频率范围内的感知灵敏度对与变换系数相关联的每个频率通道(frequency channel)进行加权,使得变换块中的较低频率系数被量化为比高频系数更精细的量化步长(finer quantization step size)。在解码器处,相应的量化矩阵对每个频率通道的逆量化变换系数进行反向加权。量化矩阵已成功应用于各种视频编解码标准,如h.264/avc(高级视频编解码)和h.265/hevc(高效视频编解码)以及众多商业产品中,以提高视频内容的主观品质。


技术实现要素:

10.以下概述仅是说明性的,并不旨在以任何方式进行限制。即,提供以下概要以介绍本文描述的新颖且非显而易见的技术的概念、亮点、益处和优点。在下面的详细描述中进一步描述了选择而不是所有的实现。因此,以下概述不旨在确定要求保护的主题的基本特征,也不旨在用于确定要求保护的主题的范围。
11.本公开的一些实施例提供了一种用于传讯或解析量化相关参数的方法。在一些实施例中,视频解码器从比特流接收数据以被解码为包括一个或多个切片的当前图片。解码器从适用于包括当前图片的视频图片的当前序列的比特流解析序列参数集(sps),sps包括第一从属(dependent)量化标志和第一符号(sign)隐藏标志。当第一从属量化标志指示针对当前序列启用从属量化时,视频解码器从比特流解析第二从属量化标志以指示是否使用从属量化来量化当前图片的一个或多个切片。当第二从属量化标志指示未对当前图片的一个或多个切片使用从属量化并且第一符号隐藏标志指示为当前序列启用符号隐藏时,视频解码器从比特流解析第二符合隐藏标志,用于指示是否使用符号隐藏来量化当前图片的一个或多个切片。视频解码器基于当前图片的一个或多个切片的逆量化变换系数基于是否使用从属量化以及是否使用符号隐藏来重建当前图片。
12.当符号隐藏用于量化当前图片的一个或多个切片时,一个或多个切片中的系数子集的第一非零变换系数的符号比特是基于系数子集中的所有非零系数和的奇偶校验确定的。当对当前图片的一个或多个切片使用从属量化时,当前图片的一个或多个切片中的当前变换系数被限制为根据网格结构基于重建顺序中当前变换系数之前的变换系数确定的一组允许(重建)值。一个或多个切片的变换系数由纯量量化器量化,该纯量量化器由按照重建顺序在当前变换系数之前的变换系数的奇偶校验确定。
13.在一些实施例中,仅针对当前图片的一个或多个切片启用从属量化和符号隐藏中的一个。换句话说,从属量化和符号隐藏在比特流中专门传讯。在一些实施例中,第一从属量化标志和第一符号隐藏标志在sps中被排他地传讯,并且当第一从属量化标志在sps中被明确地传讯以启用从属量化时,第一符号隐藏标志在sps中不被传讯并且被推断为禁用。
14.在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二从属量化标志。在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二符号隐藏标志。在一些实施例中,当第二从属量化标志指示从属量化用于当前图片的一个或多个切片时,解码器推断将针对当前图片的一个或多个切片禁用符号隐藏并且不解析第二符号隐藏标志。
【附图说明】
15.附图被包括以提供对本公开的进一步理解,并且并入并构成本公开的一部分。附图图示了本公开的实施方式并且与描述一起用于解释本公开的原理。可以理解的是,附图不一定是按比例绘制的,因为在实际实施中,为了清楚地说明本公开的概念,一些部件可能被示出为与尺寸不成比例。
16.图1示出了用于从属量化的两个纯量量化器。
17.图2示出了对应于在从属纯量量化中使用的网格结构的有限状态机。
18.图3示出了量化过程所使用的格状结构。
19.图4图示了用于每个编解码组中的系数的四通道句法传讯方法。
20.图5示出了编解码组中扫描位置的概率模型的选择。
21.图6示出了可实施符号隐藏和从属量化的实例视频编码器。
22.图7示出了实现符号隐藏和从属量化的视频编码器的部分。
23.图8概念性地说明视频编码器用于从属量化和符号隐藏的过程。
24.图9示出了可实施符号隐藏和从属量化的实例视频解码器。
25.图10示出了实现符号隐藏和从属量化的视频解码器的部分。
26.图11概念性地说明视频解码器用于从属量化和符号隐藏的过程。
27.图12概念性地示出了实施本公开的一些实施例的电子系统。
【具体实施方式】
28.在以下详细描述中,通过示例的方式阐述了许多具体细节以便提供对相关教导的透彻理解。基于本文描述的教导的任何变化、衍生和/或扩展都在本公开的保护范围内。在一些情况下,与本文公开的一个或多个示例实现有关的众所周知的方法、过程、组件和/或电路可以在没有细节的相对较高的水平上进行描述,以避免不必要地模糊本公开的教导的方面。
29.i.符号数据隐藏
30.符号数据(sign data)隐藏(或符号比特(sign bit)隐藏或符号隐藏)是在量化变换系数时使用的比特率降低技术。具体地,基于系数子集中所有非零系数之和的奇偶校验(parity)来推断系数子集(例如,变换系数的4x4编解码组)的第一非零变换系数的符号比特,而不是在比特流中显式地发信。
31.在一些实施例中,符号隐藏技术被应用如下:如果4x4系数子集满足特定条件,则不编码(4x4系数子集的)第一非零系数的符号比特(例如,coeff_sign_flag),并且解码器从该系数子集中所有非零系数之和的奇偶校验中推断符号比特。(对于某些编解码标准,语法元素coeff_sign_flag[n]指定系数子集中扫描位置n的变换系数水平(level)的符号。)
[0032]
在hevc中,仅当以下条件为真时才应用符号隐藏:
[0033]
(last_non_zero_position_in_subset-first_non_zero_position_in_subset)》=阈值
[0034]
如果符号隐藏被应用于系数子集,则比特流的编码器确保该系数子集中所有非零系数之和的奇偶校验与第一非零系数的符号比特匹配。
[0035]
ii.网格编解码的量化(trellis coded quantization,简写为tcq)
[0036]
网格编解码的量化(tcq)是网格结构和集合划分的组合。通过沿着网格结构找到具有最小失真的路径,可以找到具有最小失真(通过例如均方误差或mse测量)的几个样本的编解码输出。
[0037]
在一些实施例中,应用tcq来实现从属纯量量化。具体而言,变换系数的可容许重建值的集合取决于在重建顺序中在当前变换系数水平之前的变换系数水平的值。图1示出了用于tcq从属量化的两个纯从属量量化器,由q0和q1表示。可用重建水平的位置由量化步长δ唯一指定。两个定纯量化器q0和q1的特点如下:
[0038]
q0:第一量化器q0的重建水平由量化步长δ的偶数整数倍给出。当使用此量化器时,根据t'=2
·k·
δ计算重建的变换系数t',其中k表示相关的变换系数水平(传输的量化索引)。
[0039]
q1:第二量化器q1的重构级别由量化步长δ的奇整数倍给出,此外,重构级别等于0。第二量化器q1的重建水平由量化步长δ的奇整数倍以及另外的等于0的重建水平给出。变换系数水平k到重建变换系数t'的映射根据t'=(2
·k–
sgn(k))
·
δ指定,其中sgn(
·
)表示符号函数sgn(x)=(k==0?0:(k《0?

1:1))。
[0040]
所使用的纯量量化器(q0或q1)没有在比特流中明确地传讯。它由在编解码/重建顺序中位于当前变换系数之前的变换系数水平的奇偶校验确定。切换由具有四个状态的有限状态机完成。图2示出了对应于在从属纯量量化中使用的网格结构的有限状态机。
[0041]
在量化过程中,视频编码器/解码器使用维特比算法遍历网格结构。图3示出了量化过程所使用的网格结构。在每个阶段,每个状态具有较小失真的路径保持不变。因此,在反向遍历时可以唯一确定路径。找到具有最小失真的几个样本的水平相当于找到以最小失真结束的路径。
[0042]
对于一些实施例,图4图示了用于每个编解码组(cg)中的系数的四通道(four-pass)句法传讯方法。如下所示:
[0043]
·
通道1:为每个扫描位置传输以下标志(使用熵编解码中的常规模式):sig_coeff_flag以及,当sig_coeff_flag等于1时,par_level_flag和rem_abs_gt1_flag;
[0044]
·
通道2:对于rem_abs_gt1_flag等于1的所有扫描位置,使用算术编解码引擎的常规模式对rem_abs_gt2_flag进行编解码;
[0045]
·
通道3:对于rem_abs_gt2_flag等于1的所有扫描位置,非二进制语法元素abs_remainder在算术编解码引擎的旁路(bypass)模式下编解码;以及
[0046]
·
通道4:对于sig_coeff_flag等于1的所有扫描位置,在算术编解码引擎的旁路模式下对语法元素sign_flag进行编解码。
[0047]
图5示出了编解码组中扫描位置的概率模型的选择。该图示出了被分成多个编解码组(coding group,简写为cg)的变换块500。每个cg包括4x4扫描位置的变换系数。例如,对于cg 510,黑色方块代表当前扫描位置,散列方块(hashed square)代表其局部邻域(local neighbourhood)。局部邻域用于选择当前扫描位置的概率模型。上下文建模和二值化取决于局部邻域的以下措施:
[0048]
·
numsig:局部邻域中非零层的数量;
[0049]
·
sumabs1:在局部邻域中第一通道后部分重建的绝对水平(level)的总和(abslevel1);
[0050]
·
sumabs:局部邻域中重建的绝对水平的总和
[0051]
·
d=x+y,其中x和y分别是当前tu中x轴和y轴的位置。
[0052]
sig_flag的上下文模型依赖于当前状态,可以如下推导:
[0053]
对于亮度分量:
[0054]
ctxidsig=18*max(0,state-1)+min(sumabs1,5)+(d《2?12:(d《5?6:0));
[0055]
对于色度分量:
[0056]
ctxidsig=12*max(0,state-1)+min(sumabs1,5)+(d《2?6:0));
[0057]
par_level_flag的上下文模型描述如下:
[0058]
如果当前扫描位置等于最后一个非零水平的位置(由传输的x和y坐标所示),则ctxidpar设置为等于0。
[0059]
否则,如果当前颜色分量是亮度分量,则上下文索引设置为
[0060]
ctxidpar=1+min(sumabs1

numsig,4)+(d==0?15:(d《3?10:(d《10?5:0)))
[0061]
否则(当前颜色分量是色度分量),则上下文索引设置为
[0062]
ctxidpar=1+min(sumabs1

numsig,4)+(d==0?5:0)
[0063]
rem_abs_gtx_flag的上下文描述如下:
[0064]
ctxidgt1=ctxidpar
[0065]
ctxidgt2=ctxidpar
[0066]
非二进制语法元素abs_remainder使用与hevc中相同类别的莱斯代码(rice code)被二进制化。莱斯参数ricepar确定如下:
[0067]
·
如果sumabs

numsig小于12,则将ricepar设置为等于0。
[0068]
·
否则,如果sumabs

numsig小于25,则将ricepar设置为等于1。
[0069]
·
否则,将ricepar设置为等于2。
[0070]
iii.从属量化和符号隐藏的传讯
[0071]
对于一些实施例,根据表1指定适用于包括视频图片序列的编解码层视频序列(coded layer video sequence,简写为clvs)的序列参数集(sequence parameter set,简写为sps):
[0072]
表1:示例的序列参数集(sps)
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082][0083]
在一些实施例中,添加sps标志用于从属量化。相关的语法和语义如表2所示:
[0084]
表2:具有添加标志的sps用于从属量化:
[0085]
[0086][0087]
sps_dep_quant_enabled_flag的值为1指定从属量化可用于clvs中的图片解码。sps_dep_quant_enabled_flag的值为0指定在clvs中不使用从属量化。当sps_dep_quant_enabled_flag不存在时,它被推断为等于0。
[0088]
在一些实施例中,当前图片所参考的图片参数集(pps)包括用于启用从属量化的语法元素。表3示出了示例图片报头(header),其中使用从属量化的sps标志来确定是否在图片水平传讯启用从属量化。
[0089]
表3:图片报头使用sps标志用于从属量化
[0090]
[0091][0092]
为0的pic_dep_quant_enabled_flag的值指定对于与图片报头相关联的切片禁用从属量化。pic_dep_quant_enabled_flag的值为1指定对与ph关联的切片启用从属量化。当pic_dep_quant_enabled_flag不存在且sps_dep_quant_enabled_flag为0时,pic_dep_quant_enabled_flag被推断为0。否则,当pic_dep_quant_enabled_flag不存在且sps_dep_quant_enabled_flag为1时,pic_dep_quant_enabled_flag的值被推断为pps_dep_quant_enable_idc

1。
[0093]
pps_dep_quant_enabled_idc的值为0指定语法元素pic_dep_quant_enabled_flag可以存在于参考pps的图片报头中。pps_dep_quant_enabled_idc的值为1或2指定语法元素pic_dep_quant_enabled_flag不存在于参考pps的ph中。(pps_dep_quant_enabled_idc的值为3保留供将来使用。)
[0094]
在一些实施例中,sps标志被添加用于从属量化和符号隐藏,并且用于从属量化的标志和用于符号隐藏的标志被排他地传讯。具体而言,仅当从属量化被禁用(sps_dep_quant_enabled_flag为0)时,才传讯sps_sign_data_hiding_enabled_flag。相关的语法和语义如表4所示。
[0095]
表4:具有标志的sps用于从属量化和符号隐藏
[0096]
[0097][0098]
语法元素sps_sign_data_hiding_enabled_flag的值为0指定在clvs中禁用符号隐藏。sign_data_hiding_enabled_flag的值为1表示在clvs中启用符号隐藏。当sps_sign_data_hiding_enabled_flag不存在时,它被推断为等于0。表5显示了一个示例的图片报头,其中用于从属量化和符号隐藏的sps标志用于确定是否在图片水平传讯从属量化启用和符号隐藏启用(适用于图片的切片)。
[0099]
表5:图片报头使用sps标志用于从属量化和符号隐藏
[0100][0101]
在一些实施例中,用于符号隐藏的标志在sps中用于从属量化的标志之前传讯,并且用于从属量化的标志和用于符号隐藏的标志被排他地传讯。具体而言,仅当符号隐藏被禁用(sps_sign_data_hiding_enabled_flag为0)时才会传讯sps_dep_quant_enabled_flag。表6显示了相应的示例sps。
[0102]
表6:在从属量化之前传讯符号隐藏的sps
[0103]
[0104][0105]
在一些实施例中,用于从属量化和符号隐藏的sps标志都在sps中传讯,但是它们被限制为排他地启用。相关的语法和语义如表7所示。
[0106]
表7:传讯符号隐藏和从属量化的sps
[0107]
[0108][0109]
如果sps_sign_data_hidigin_enabled_flag等于1,则sps_dep_quant_enabled_flag的值被约束为等于0,并且如果sps_dep_quant_enabled_flag等于1,则sps_sign_data_hidigin_enabled_flag的值被约束为等于0。
[0110]
在一些实施例中,联合从属(joint dependent)量化/符号隐藏指示符存在于sps中以指示从属量化和符号隐藏的开关。相关的语法和语义如表8所示。
[0111]
表8:具有联合从属量化/符号隐藏指示符的sps
[0112]
[0113][0114]
语法元素sps_dp_sh_enabled_idc是联合从属量化/符号隐藏指示符。sps_dp_sh_enabled_idc的值为0指定pps_dep_quant_enabled_idc为0并且pic_dep_quant_enabled_flag和sign_data_hiding_enabled_flag不存在于图片报头中。sps_dp_sh_enabled_idc的值为1指定sign_data_hiding_enabled_flag不存在于图片报头中。sps_dp_sh_enabled_idc的值为2指定pps_dep_quant_enabled_idc等于0并且图片报头中不存在pic_dep_quant_enabled_flag。sps_dp_sh_enabled_idc的值为3保留供将来使用。当sps_dp_sh_enabled_idc不存在时,它被推断为0。表9示出了使用sps_dp_sh_enabled_idc指示符的图片报头。
[0115]
表9:使用sps从属量化/符号隐藏指示符的图片报头
[0116]
[0117][0118]
在一些实施例中,存在用于从属量化和符号隐藏的sps标志,但是在这两个标志之间没有条件发讯(conditional signalling)。在一些实施例中,用于从属量化和符号隐藏的两个sps标志被限制为不都是1,即,它们被排他地启用。sps中的相关语法和语义如表10所示。
[0119]
表10:用于从属量化和符号隐藏的标志的sps
[0120]
[0121][0122]
在如上表5所示的图片报头中,从属量化和符号隐藏的相关语法不能同时出现,如果相应的sps启用标志不被启用,则它们不应出现在图片报头中。在一些实施例中,如果sps中的从属量化启用标志等于0,则图片报头中不应存在从属量化相关语法,无论符号隐藏标志指示开启还是关闭。
[0123]
在一些实施例中,如果sps_dep_quant_enabled_flag等于1,则在图片报头中传讯pic_dep_quant_enabled_flag。传讯条件不包括pps标志(例如pps_dep_quant_enabled_flag)。例如,如果sps_dep_quant_enabled_flag等于0,则pic_dep_quant_enabled_flag不应存在。
[0124]
在一些实施例中,在pic_dep_quant_enabled_flag之前传讯sign_data_hiding_enabled_flag。这两个标志之间没有条件传讯(conditional signalling)。在一些实施例中,这两个标志不能都为1,即,它们应被排他地启用。如果sign_data_hiding_enabled_flag等于1,则pic_dep_quant_enabled_flag不得出现在图片报头中。
[0125]
iv.示例的视频编码器
[0126]
图6说明可实施符号隐藏和从属量化的实例视频编码器600。如图所示,视频编码器600从视频源605接收输入视频信号并将该信号编码成比特流695。视频编码器600具有用于对来自视频源605的信号进行编码的若干组件或模组,至少包括自以下选择的一些组件:变换模组610、量化模组611、逆量化模组614、逆变换模组615、图片内(intra-picture)估计模组620、帧内预测模组625、运动补偿模组630、运动估计模组635、环路滤波器645、重建图片缓冲器650、mv缓冲器665和mv预测模组675,以及熵编码器690。运动补偿模组630和运动估计模组635是帧间预测模组640的一部分。
[0127]
在一些实施例中,模组610-690是由计算设备或电子装置的一个或多个处理单元(例如,处理器)执行的软件指令模组。在一些实施例中,模组610-690是由电子设备的一个或多个集成电路(ic)实现的硬件电路模组。尽管模组610-690被示为单独的模组,但是一些模组可以组合成单个模组。
[0128]
视频源605提供未压缩的呈现每个视频帧的像素数据的原始视频信号。减法器608计算视频源605的原始视频像素数据与来自运动补偿模组630或帧内预测模组625的预测像素数据613之间的差值。变换模组610将该差值(或残差像素数据或残差信号609)转换成变换系数(例如,通过执行离散余弦变换或dct)。量化模组611将变换系数量化为量化数据(或量化系数)612,其由熵编码器690编码为比特流695。
[0129]
逆量化模组614对量化数据(或量化系数)612进行逆量化以获得变换系数,并且逆变换模组615对变换系数执行逆变换以产生重建残差619。重建残差619与预测像素数据613相加以生成重建像素数据617。在一些实施例中,重建像素数据617临时存储在行缓冲器(line buffer)(未示出)中,用于图片内预测和空间mv预测。重建像素由环路滤波器645滤波并存储在重建图片缓冲器650中。在一些实施例中,重建图片缓冲器650是视频编码器600外部的存储器。在一些实施例中,重建图片缓冲器650是视频编码器600内部的存储器。
[0130]
图片内估计模组620基于重建像素数据617执行帧内预测以产生帧内预测数据。帧内预测数据被提供给熵编码器690以被编码成比特流695。帧内预测数据也被帧内预测模组625使用以产生预测像素数据613。
[0131]
运动估计模组635通过产生mv参考存储在重建图片缓冲器650中的先前解码帧的像素数据来执行帧间预测。这些mv被提供给运动补偿模组630以产生预测像素数据。
[0132]
代替在比特流中编码完整的实际mv,视频编码器600使用mv预测来生成预测mv,并且用于运动补偿的mv与预测mv之间的差异被编码为残差运动数据并存储在比特流695中。
[0133]
mv预测模组675基于为编码先前的视频帧而产生的参考mv,即用于执行运动补偿的运动补偿mv,产生预测的mv。mv预测模组675从来自mv缓冲器665的先前视频帧中撷取参考mv。视频编码器600将针对当前视频帧生成的mv存储在mv缓冲器665中作为用于生成预测mv的参考mv。
[0134]
mv预测模组675使用参考mv来创建预测的mv。预测的mv可以通过空间mv预测或时间mv预测来计算。当前帧的预测的mv和运动补偿mv(mc mv)之间的差异(残差运动数据)被熵编码器690编码到比特流695中。
[0135]
熵编码器690通过使用诸如上下文自适应二进制算术编解码(cabac)或霍夫曼编解码的熵编解码技术将各种参数和数据编码到比特流695中。熵编码器690将各种报头元素、标志连同量化的变换系数612和残差运动数据作为语法元素编码到比特流695中。比特流695继而被存储在存储设备中或通过网络等通信媒介传输到解码器。
[0136]
环路滤波器645对重建的像素数据617执行滤波或平滑操作以减少编码的伪影,特别是在像素块的边界处。在一些实施例中,所执行的滤波操作包括样本自适应偏移(sao)。在一些实施例中,滤波操作包括自适应环路滤波器(alf)。
[0137]
图7示出了实现符号隐藏和从属量化的视频编码器600的部分。具体地,该图图示了编码器600的组件,其生成、量化和熵编码变换系数为比特流695。如图所示,变换模组610将原始像素数据变换为要由量化器611量化的变换系数。系数奇偶校验模组700计算系数子
集(例如,4x4编解码组)中所有非零系数之和的奇偶校验710。当对子集启用符号隐藏时,编码器600通过例如改变系数子集中的系数的最低有效比特(least significant bit)来确保该系数子集中所有非零系数之和的奇偶校验与第一非零系数的符号比特匹配,或通过强制禁用符号隐藏。
[0138]
量化器611基于是否启用从属量化以及是否启用符号隐藏来量化接收的系数。当符号隐藏被启用时,第一非零系数的符号比特不是提供给熵编码器690的量化系数612的一部分。当从属量化被启用时,当前变换系数的量化被限制为一组可容许值,其根据网格结构的重建顺序,基于在当前变换系数之前的变换系数确定。
[0139]
熵编码器690将量化系数612连同指示是否启用从属量化和/或符号隐藏的标志一起熵编码到比特流695中。在一些实施例中,从属量化和/或符号隐藏标志被排他地传讯,例如,仅当用于从属量化的标志指示从属量化被禁用时才显式传讯用于符号隐藏的标志,否则推断符号隐藏被禁用。在一些实施例中,用于从属量化和/或符号隐藏的标志在适用于序列中的图片的序列水平(例如,在sps)和在适用于图片的切片的图片水平(例如,在ph)被传讯。
[0140]
图8概念性地说明视频编码器600用于从属量化和符号隐藏的过程800。在一些实施例中,计算设备的一个或多个处理单元(例如,处理器)通过执行存储在计算机可读介质中的指令来实现编码器600来执行过程800。在一些实施例中,实现编码器600的电子装置执行过程800。
[0141]
编码器接收(在块810)数据以被编码为具有一个或多个切片的当前图片到比特流中。
[0142]
编码器(在块820)将适用于包括当前图片的视频图片序列的序列参数集(sps)编码到比特流中。sps包括第一从属量化标志(例如表4所示的sps_dep_quant_enabled_flag)和第一符号隐藏标志(例如表4所示的sps_sign_data_hiding_enabled_flag)。在一些实施例中,对当前图片的一个或多个切片仅启用从属量化和符号隐藏中的一个。换句话说,从属量化和符号隐藏在比特流中专门传讯。在一些实施例中,第一从属量化标志和第一符号隐藏标志在sps中被排他地传讯,并且当第一从属量化标志在sps中被明确地传讯以启用从属量化时,第一符号隐藏标志在sps中不被传讯,并被推断为禁用符号隐藏。
[0143]
编码器确定(在块830)第一从属量化标志是否指示针对当前序列启用从属量化。如果启用了从属量化,则过程进行到840。否则,过程进行到860。
[0144]
编码器将第二从属量化标志(例如,表5中所示的pic_dep_quant_enabled_flag)传讯(在块840)到比特流中以指示从属量化是否用于量化当前图片的一个或多个切片。在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二从属量化标志。
[0145]
编码器确定(在块850)第二从属量化标志是否指示从属量化被用于当前图片的一个或多个切片。如果使用从属量化,则过程进行到块855。如果不使用从属量化,则过程进行到块860。当对当前图片的一个或多个切片使用从属量化时,当前图片的一个或多个切片中的当前变换系数被限制为一组可允许的(重建)值,这些值是基于根据网格结构在重建顺序中位于当前变换系数之前的变换系数确定的。一个或多个切片的变换系数由纯量量化器量化,该纯量量化器由按照重建顺序在当前变换系数之前的变换系数的奇偶校验确定。
[0146]
编码器推断(在块855)对于当前图片的一个或多个切片将禁用符号隐藏并且不解析第二符号隐藏标志。然后过程进行到880。
[0147]
编码器确定(在块860)第一符号隐藏标志是否指示对当前序列启用符号隐藏。如果对当前序列启用了符号隐藏,则过程进行到块870。如果没有对当前序列启用符号隐藏,则过程进行到865。
[0148]
编码器推断(在块865)对于当前图片的一个或多个切片禁用符号隐藏并且不解析第二符号隐藏标志。然后过程进行到880。
[0149]
编码器将第二符号隐藏标志(例如,表5中所示的sign_data_hiding_enable_flag)传讯(在块870)到比特流中以指示是否使用符号隐藏来量化当前图片的一个或多个切片。在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二符号隐藏标志。当符号隐藏用于量化当前图片的一个或多个切片时,一个或多个切片中的系数子集的第一非零变换系数的符号比特基于系数子集中的所有非零系数之和的奇偶校验确定。然后过程进行到880。
[0150]
编码器将当前图片的一个或多个切片的量化变换系数编码(在块880)到比特流中。基于是否使用从属量化以及是否使用符号隐藏来执行变换系数的量化。
[0151]
v.示例的视频解码器
[0152]
图9说明可实施符号隐藏和从属量化的实例视频解码器900。如图所示,视频解码器900是图片解码或视频解码电路,其接收比特流995并将比特流的内容解码为视频帧的像素数据以供显示。视频解码器900具有用于解码比特流995的若干组件或模组,包括选自逆量化模组911、逆变换模组910、帧内预测模组925、运动补偿模组930、环路滤波器945、解码图片缓冲器950、mv缓冲器965、mv预测模组975和解析器990的一些组件。运动补偿模组930是帧间预测模组940的一部分。
[0153]
在一些实施例中,模组910-990是由计算设备的一个或多个处理单元(例如,处理器)执行的软件指令模组。在一些实施例中,模组910-990是由电子设备的一个或多个ic实现的硬件电路模组。尽管模组910-990被示为单独的模组,但是一些模组可以组合成单个模组。
[0154]
解析器990(或熵解码器)接收比特流995并根据由视频编解码或图片编解码标准定义的语法执行初始解析。解析的语法元素包括各种报头元素、标志以及量化数据(或量化系数)912。解析器990通过使用诸如上下文自适应二进制算术编解码(cabac)或霍夫曼编码解析出各语法元素。
[0155]
逆量化模组911对量化数据(或量化系数)912进行逆量化以获得变换系数,逆变换模组910对变换系数916进行逆变换以产生重建残差信号919。重建残差信号919与来自帧内预测模组925或运动补偿模组930的预测像素数据913相加以产生解码像素数据917。解码像素数据由环路滤波器945滤波并存储在解码图片缓冲器950中。在一些实施例中,解码图片缓冲器950是视频解码器900外部的存储器。在一些实施例中,解码图片缓冲器950是视频解码器900内部的存储器。
[0156]
帧内预测模组925从比特流995接收帧内预测数据,并根据该数据从存储在解码图片缓冲器950中的解码像素数据917产生预测像素数据913。在一些实施例中,解码像素数据917也存储在行缓冲器(未示出)中,用于图片内预测和空间mv预测。
[0157]
在一些实施例中,解码图片缓冲器950的内容用于显示。显示设备955或者撷取解码图片缓冲器950的内容用于直接显示,或者撷取解码图片缓冲器的内容到显示缓冲器。在一些实施例中,显示设备通过像素传输(pixel transport)从解码图片缓冲器950接收像素值。
[0158]
运动补偿模组930根据运动补偿mv(mc mv)从存储在解码图片缓冲器950中的解码像素数据917产生预测像素数据913。通过将从比特流995接收的残差运动数据与从mv预测模组975接收的预测mv相加来解码这些运动补偿mv。
[0159]
mv预测模组975基于为解码先前的视频帧而产生的参考mv,例如,用于执行运动补偿的运动补偿mv,产生预测的mv。mv预测模组975从mv缓冲器965中检索先前视频帧的参考mv。视频解码器900在mv缓冲器965中存储为解码当前视频帧而产生的运动补偿mv作为用于产生预测mv的参考mv。
[0160]
环路滤波器945对解码的像素数据917执行滤波或平滑操作以减少编码的伪影,特别是在像素块的边界处。在一些实施例中,所执行的滤波操作包括样本自适应偏移(sao)。在一些实施例中,滤波操作包括自适应环路滤波器(alf)。
[0161]
图10说明了实现符号隐藏和从属量化的视频解码器900的部分。具体地,该图图示了解码器900的组件,其解析、解量化和逆变换来自比特流995的系数。如图所示,熵解码器990将从比特流995解析的量化变换系数912提供给逆量化器911。
[0162]
熵解码器990还解析比特流995以获得指示是否启用从属量化和/或符号隐藏的标志。在一些实施例中,从属量化和/或符号隐藏标志被排他地传讯,例如,仅当用于从属量化的标志指示从属量化被禁用时才显式传讯用于符号隐藏的标志,否则推断符号隐藏被禁用。在一些实施例中,用于从属量化和/或符号隐藏的标志在适用于序列中的图片的序列水平(例如,在sps)和适用于图片的切片的图片水平(例如,在ph)被传讯。
[0163]
逆量化器911基于是否启用从属量化以及是否启用符号隐藏来对变换系数进行逆量化。当符号隐藏被启用时,第一个非零系数的符号比特没有在比特流中显式地传讯,而是基于系数子集(例如,4x4编解码组)中所有非零系数之和由系数奇偶校验模组1000计算的奇偶校验1010推断出来的。当从属量化被启用时,当前变换系数的逆量化被限制为一组允许值(admissible value),这些值是基于根据网格结构在重建顺序中位于当前变换系数之前的变换系数确定的。
[0164]
逆变换模组910继而接收由逆量化器911提供的逆量化系数916并且执行逆变换以重建当前块的像素数据。
[0165]
图11概念性地说明视频解码器900用于从属量化和符号隐藏的过程1100。在一些实施例中,计算设备的一个或多个处理单元(例如,处理器)实现解码器900通过执行存储在计算机可读介质中的指令来执行过程1100。在一些实施例中,实现解码器900的电子装置执行过程1100。
[0166]
解码器接收(在块1110)来自比特流的数据以被解码为具有一个或多个切片的当前图片。
[0167]
解码器(在块1120)从适用于包括当前图片的视频图片序列的比特流解析序列参数集(sps)。sps包括第一从属量化标志(例如表4所示的sps_dep_quant_enabled_flag)和第一符号隐藏标志(例如表4所示的sps_sign_data_hiding_enabled_flag)。在一些实施例
中,对当前图片的一个或多个切片仅启用从属量化和符号隐藏中的一个。换句话说,从属量化和符号隐藏在比特流中被排他的传讯。在一些实施例中,第一从属量化标志和第一符号隐藏标志在sps中被排他地传讯,并且当第一从属量化标志在sps中被明确地传讯以启用从属量化时,第一符号隐藏标志在sps中不被传讯,且被推断为禁用符号隐藏。
[0168]
解码器确定(在块1130)第一从属量化标志是否指示对当前序列启用从属量化。如果启用了从属量化,则过程进行到1140。否则,过程进行到1160。
[0169]
解码器从比特流解析(在块1140)第二从属量化标志(例如,表5中所示的pic_dep_quant_enabled_flag)以指示是否使用从属量化来量化当前图片的一个或多个切片。在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二从属量化标志。
[0170]
解码器确定(在块1150)第二从属量化标志是否指示从属量化被用于当前图片的一个或多个切片。如果使用从属量化,则过程进行到块1155。如果不使用从属量化,则过程进行到块1160。当对当前图片的一个或多个切片使用从属量化时,当前图片的一个或多个切片中的当前变换系数被限制为一组可允许的(重建)值,这些值是基于根据网格结构在重建顺序中位于当前变换系数之前的变换系数确定的。一个或多个切片的变换系数由纯量量化器量化,该纯量量化器由按照重建顺序在当前变换系数之前的变换系数的奇偶校验确定。
[0171]
解码器推断(在块1155)对于当前图片的一个或多个切片将禁用符号隐藏并且不解析第二符号隐藏标志。然后过程进行到1180。
[0172]
解码器确定(在块1160)第一符号隐藏标志是否指示对当前序列启用符号隐藏。如果对当前序列启用了符号隐藏,则过程进行到块1170。如果没有对当前序列启用符号隐藏,则过程进行到1165。
[0173]
解码器推断(在块1165)对当前图片的一个或多个切片禁用符号隐藏并且不解析第二符号隐藏标志。然后过程进行到1180。
[0174]
解码器从比特流解析(在块1170)第二符号隐藏标志(例如,表5中所示的sign_data_hiding_enable_flag)以指示是否使用符号隐藏来量化当前图片的一个或多个切片。在一些实施例中,在适用于当前图片的一个或多个切片的图片报头中传讯第二符号隐藏标志。当符号隐藏用于量化当前图片的一个或多个切片时,一个或多个切片中的系数子集的第一非零变换系数的符号比特基于该系数子集中的所有非零系数之和的奇偶校验确定。然后过程进行到块1180。
[0175]
解码器基于当前图片的一个或多个切片的逆量化的变换系数来重建(在块1180)当前图片。基于是否使用从属量化以及是否使用符号隐藏来对变换系数进行逆量化。
[0176]
vi.示例的电子系统
[0177]
许多上述特征和应用被实现为被指定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令的软件进程。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的核心或其他处理单元)执行时,它们使处理单元执行指令中指示的动作。计算机可读介质的示例包括但不限于cd-rom、闪存驱动器、随机存取存储器(ram)芯片、硬盘驱动器、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))等。计算机可读介质不包括无线或通过有线连接传输的载波和电子信号。
[0178]
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或存储在磁存储
器中的应用程序,这些应用程序可以读入存储器以供处理器处理。此外,在一些实施例中,多个软件发明可以被实现为较大程序的子部分,同时保留不同的软件发明。在一些实施例中,多个软件发明也可以实现为单独的程序。最后,一起实现这里描述的软件发明的单独程序的任何组合都在本公开的范围内。在一些实施例中,当安装软件程序以在一个或多个电子系统上运行时,软件程序定义了执行和实施软件程序的操作的一个或多个特定机器实现。
[0179]
图12概念性地示出了实现本公开的一些实施例的电子系统1200。电子系统1200可以是计算机(例如,台式计算机、个人计算机、平板计算机等)、电话、pda或任何其他种类的电子设备。这种电子系统包括各种类型的计算机可读介质和用于各种其他类型的计算机可读介质的接口。电子系统1200包括总线1205、处理单元1210、图形处理单元(gpu)1215、系统存储器1220、网络1225、只读存储器1230、永久存储设备1235、输入设备1240和输出设备1245。
[0180]
总线1205共同代表通信连接电子系统1200的众多内部设备的所有系统、外围和芯片组总线。例如,总线1205通信连接处理单元1210与gpu 1215、只读存储器1230、系统存储器1220和永久存储设备1235。
[0181]
为了执行本公开的过程,处理单元1210从这些不同的存储器单元检索要执行的指令和要处理的数据。在不同的实施例中,处理单元可以是单个处理器或多核处理器。一些指令被传递到gpu 1215并由gpu 1215执行。gpu 1215可以卸载各种计算或补充由处理单元1210提供的图片处理。
[0182]
只读存储器(rom)1230存储静态数据和指令,由处理单元1210和电子系统的其他模组使用。另一方面,永久存储设备1235是读写存储设备。该设备是非易失性存储器单元,即使在电子系统1200关闭时也能存储指令和数据。本公开的一些实施例使用大容量存储设备(例如磁盘或光盘及其对应的磁盘驱动器)作为永久存储设备1235。
[0183]
其他实施例使用可移动存储设备(例如软盘、闪存设备等,及其对应的磁盘驱动器)作为永久存储设备。与永久存储设备1235一样,系统存储器1220是读写存储设备。然而,与存储设备1235不同,系统存储器1220是易失性读写存储器,例如随机存取存储器。系统存储器1220存储处理器在运行时使用的一些指令和数据。在一些实施例中,根据本公开的过程存储在系统存储器1220、永久存储设备1235和/或只读存储器1230中。例如,各种存储单元包括用于根据本公开处理多媒体剪辑的指令与一些实施例。从这些不同的存储器单元,处理单元1210检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
[0184]
总线1205还连接到输入和输出设备1240和1245。输入设备1240使用户能够向电子系统传送信息和选择命令。输入设备1240包括字母数字键盘和定点设备(也称为“光标控制设备”)、照相机(例如,网络摄像头)、麦克风或用于接收语音命令的类似设备等。输出设备1245显示由电子系统或否则输出数据。输出设备1245包括打印机和显示设备,例如阴极射线管(crt)或液晶显示器(lcd),以及扬声器或类似的音频输出设备。一些实施例包括用作输入和输出设备的设备,例如触摸屏。
[0185]
最后,在图12中,总线1205还通过网络适配器(未示出)将电子系统1200耦合到网络1225。以此方式,计算机可以是计算机网络(例如局域网(“lan”)、广域网(“wan”)或内联网,或网络的网络(network of networks),例如因特网。可以结合本公开使用电子系统
1200的任何或所有组件。
[0186]
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)。此类计算机可读介质的一些示例包括ram、rom、只读光盘(cd-rom)、可记录光盘(cd-r)、可重写光盘(cd-rw)、只读数字多功能光盘(例如、dvd-rom、双层dvd-rom)、各种可刻录/可重写dvd(如dvd-ram、dvd-rw、dvd+rw等)、闪存(如sd卡、mini-sd)卡、微型sd卡等)、磁性和/或固态硬盘驱动器、只读和可记录光盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可以存储可由至少一个处理单元执行并且包括用于执行各种操作的指令集的计算机程序。计算机程序或计算机代码的示例包括诸如由编译器产生的机器代码,以及包括由计算机、电子组件或使用解释器的微处理器执行的高级代码的文件。
[0187]
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但许多上述特征和应用由一个或多个集成电路执行,例如专用集成电路(asic)或现场可编程门阵列(fpga)。在一些实施例中,这种集成电路执行存储在电路本身上的指令。此外,一些实施例执行存储在可编程逻辑设备(pld)、rom或ram设备中的软件。
[0188]
如在本说明书和本技术的任何权利要求中使用的,术语“计算机”、“服务器”、“处理器”和“存储器”均指电子或其他技术设备。这些术语不包括人或人群。出于说明书的目的,术语显示或显示意味着在电子设备上显示。在本说明书和本技术的任何权利要求中使用的术语“计算机可读介质”、“计算机可读媒介”和“机器可读介质”完全限于有形的物理对象,这些对像以可由计算机读取的形式存储信息。这些术语不包括任何无线信号、有线下载信号和任何其他临时信号。
[0189]
虽然已经参考许多具体细节描述了本公开,但是本领域技术人员将认识到,在不脱离本公开的精神的情况下,可以以其他具体形式来体现本公开。此外,许多图(包括图8和图11)概念性地说明了过程。这些过程的特定操作可能不会按照所示和描述的确切顺序执行。具体的操作可以不是在一个连续的一系列操作中进行,在不同的实施例中可以进行不同的具体操作。此外,该过程可以使用几个子过程来实现,或者作为一个更大的宏过程的一部分。因此,本领域技术人员将理解,本公开不受前述说明性细节的限制,而是由所附权利要求限定。
[0190]
文中描述的主题有时示出了包含在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任何布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包含但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。
[0191]
此外,关于文中基本上任何复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,本领域技术人员可以将复数变换成单数,和/或将单数变换成复数。为清楚起
见,这里可以明确地阐述各种单数/复数排列。
[0192]
本领域技术人员将会理解,通常,文中所使用的术语,特别是在所附权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包含”应当被解释为“包含但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。本领域技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(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”的可能性。
[0193]
从前述内容可以理解,本文已经出于说明的目的描述了本公开的各种实施方式,并且在不脱离本公开的范围和精神的情况下可以进行各种修改。因此,本文公开的各种实施方式不旨在是限制性的,真正的范围和精神由所附权利要求指示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1