对视频编码、解码的方法和计算机可读存储器或存储装置与流程

未命名 09-22 阅读:79 评论:0

对视频编码、解码的方法和计算机可读存储器或存储装置
1.本技术是pct申请号为pct/us2018/040862、国际申请日为2018年7月5日、中国申请号为201880045213.2、发明名称为“用于加权角度预测的后滤波”的申请的分案申请。
2.相关申请的交叉引用
3.本技术根据35u.s.c
§
119(e)要求于2017年7月5日较早提交的美国临时专利申请no.62/528,724的优先权,在此通过引用将其并入本文。
技术领域
4.本公开涉及视频编码领域,尤其涉及通过利用加权角度预测编码对帧内预测(intra-prediction)编码过程进行修改来提高编码效率,从而实现更高的比特率、分辨率和更好质量的视频。


背景技术:

5.演进的视频编码标准中的技术改进说明了提高编码效率以实现更高的比特率、更高的分辨率和更好的视频质量的趋势。联合视频探索小组正在开发一种称为jvet的新视频编码方案。与其他视频编码方案(例如hevc(高效视频编码))相似,jvet是基于块的混合时空预测编码方案。但是,相对于hevc,jvet包括对位流结构、语法、约束和映射的许多修改,以用于生成解码的图片。jvet已在联合探索模型(jem)编码器和解码器中实现,联合探索模型(jem)编码器和解码器使用各种编码技术,包括加权角度预测。
6.在当前的jvet设计中,在生成最终帧内预测器块中涉及三个步骤;预滤波、预测器生成和后滤波。通常,预滤波将诸如与模式相关的帧内平滑或mdis之类的滤波操作应用于相邻像素,以为预测器生成步骤做准备。然后,预测器生成步骤根据与所选择的帧内预测模式相关联的规则来计算预测器像素。最后,后滤波对沿着块边界的预测器像素应用诸如边界平滑的项目的滤波操作,以减少跨块边界的不连续性。


技术实现要素:

7.本公开提供了一种对jvet比特流进行编码的方法,该方法包括:在视频帧的编码区域内定义具有cu x和cu y坐标的编码单元(cu);然后在所述编码区域内定义主参考像素,其具有与所述主参考相关联的主x和主y坐标;并在所述编码区域内定义具有与所述侧参考相关联的侧x和侧y坐标的侧参考像素。另外,可以确定与所述主参考像素相关联的主权重值,并且还可以确定与所述侧参考像素相关联的侧权重值。然后,该方法可以至少部分地基于与所述主权重值组合的所述主参考像素和与所述侧权重值组合的所述侧参考像素的组合,为所述编码单元生成预测cu。
8.在一些实施例中,可以相对于主参考像素和/或侧参考像素以无偏方式应用后预测滤波。在替代实施例中,可以绕过后预测滤波或可以应用全通滤波器。
附图说明
9.借助于附图解释本发明的更多细节,在附图中:
10.图1描绘了将帧划分为多个编码树单元(ctu)。
11.图2描绘了使用四叉树划分和对称二进制划分将ctu向编码单元(cu)的示例划分。
12.图3描绘了图2的划分的四叉树加二进制树(qtbt)表示。
13.图4描绘了cu向两种较小cu的四种可能类型的非对称二进制划分。
14.图5描绘了使用四叉树划分、对称二进制划分和非对称二进制划分将ctu向cu的示例划分。
15.图6描绘了图5的划分的qtbt表示。
16.图7a和7b描绘了用于在jvet编码器中的cu编码的简化框图。
17.图8描绘了在jvet中的亮度分量的67种可能的帧内预测模式。
18.图9描绘了用于在jvet编码器中的cu解码的简化框图。
19.图10描绘了在jvet编码器中的cu编码的方法的实施例。
20.图11描绘了用于在jvet编码器中的cu编码的简化框图。
21.图12描绘了用于在jvet解码器中的cu解码的简化框图。
22.图13描绘了适于和/或被配置为处理cu编码的方法的计算机系统的实施例。
23.图14描绘了用于在jvet编码器/解码器中的cu编码/解码的编码器/解码器系统的实施例。
具体实施方式
24.图1描绘了将帧划分成多个编码树单元(ctu)100。帧可以是视频序列中的图像。帧可以包括矩阵或矩阵的集合,其具有表示图像中的强度度量的像素值。因此,这些矩阵的集合可以生成视频序列。像素值可以被定义为代表全色视频编码中的颜色和亮度,其中,像素分为三个通道。例如,在ycbcr色彩空间中,像素可以具有代表图像中灰度强度的亮度值y和代表色彩从灰色到蓝色和红色的差异程度的两个色度值cb和cr。在其他实施例中,像素值可以用不同颜色空间或模型中的值表示。视频的分辨率可以确定帧中的像素数。较高的分辨率可能意味着更多的像素和更好的图像清晰度,但也可能导致更高的带宽、存储和传输要求。
25.可以使用jvet进行编码和解码视频序列的帧。jvet是联合视频探索小组开发的视频编码方案。已在jem(联合探索模型)编码器和解码器中实现jvet的版本。与其他视频编码方案(例如hevc(高效视频编码))相似,jvet是基于块的混合时空预测编码方案。在用jvet编码期间,首先将帧分成称为ctu 100的正方形块,如图1所示。例如,ctu 100可以是128
×
128像素的块。
26.图2描绘了将ctu 100向cu 102的示例性划分。可以将帧中的每个ctu 100划分为一个或多个cu(编码单元)102。cu 102可以如下所述用于预测和变换。与hevc不同,在jvet中,cu 102可以是矩形或正方形,并且可以被编码而无需进一步划分成预测单元或变换单元。cu 102可以与它们的根ctu 100一样大,或者可以是根ctu 100的较小的细分,小到4
×
4块。
27.在jvet中,可以根据四叉树加二进制树(qtbt)方案将ctu 100划分为cu 102,在该
方案中,可以根据四叉树将ctu 100递归拆分为正方形块,然后可以将这些正方形块根据二进制树递归地水平或垂直拆分。可以设置参数以根据qtbt控制拆分,例如ctu大小、四叉树和二进制树叶子节点的最小大小、二进制树根节点的最大大小和二进制树的最大深度。
28.在一些实施例中,jvet可以将qtbt的二进制树部分中的二进制划分限制为对称划分,其中,可以沿着中线垂直或水平地将块划分成两半。
29.通过非限制性示例,图2示出了被划分为cu 102的ctu 100,其中,实线指示四叉树拆分,而虚线指示对称二进制树拆分。如图所示,二进制拆分允许对称的水平拆分和垂直拆分来定义ctu的结构及其细分为cu。
30.图3示出图2的划分的qtbt表示。四叉树根节点代表ctu 100,四叉树部分中的每个子节点代表从父正方形块中拆分出的四个正方形块之一。然后,可以使用二进制树将由四叉树叶节点表示的正方形块对称地零次或多次划分,其中,四叉树叶节点是二进制树的根节点。在二进制树部分的每个级别,可以垂直或水平对称地划分块。设置为“0”的标志表示该块在水平方向上对称地被划分,而设置为“1”的标志表示该块在垂直方向上对称地被划分。
31.在其他实施例中,jvet可以在qtbt的二进制树部分中允许对称二进制划分或非对称二进制划分。在划分预测单元(pu)时,在hevc中的不同上下文中允许进行非对称运动划分(amp)。但是,对于根据qtbt结构在jvet中对cu 102进行划分的情况,当cu 102的相关区域不位于穿过cu 102的中心的中线的任一侧时,相对于对称二进制划分,非对称二进制划分可导致改进的划分。通过非限制性示例,当cu 102描绘了靠近cu的中心的一个对象和在cu 102的侧面处的另一个对象时,cu 102可以被非对称地划分以将每个对象放置在不同大小的单独的较小的cu 102中。
32.图4描绘了四种可能类型的非对称二进制划分,其中,cu 102沿着横跨cu 102的长度或高度的线被分成两个较小的cu 102,使得较小的cu 102之一是父cu 102的大小的25%,并且另一个是父cu 102的大小的75%。图4中所示的四种类型的非对称二进制划分允许cu 102沿从cu 102的左侧的25%,从cu 102的右侧的25%,从cu 102顶部的25%或从cu 102底部的25%的线拆分。在替代实施例中,cu 102拆分处的非对称划分线可以位于任何其他位置,使得cu 102不会对称地分成两半。
33.图5描绘了使用允许在qtbt的二进制树部分中的对称二进制划分和非对称二进制划分两者的方案划分为cu 102的ctu 100的非限制性示例。在图5中,虚线示出了非对称二进制划分线,其中,使用图4中所示的划分类型之一来划分父cu 102。
34.图6示出了图5的划分的qtbt表示。在图6中,从节点延伸的两条实线指示在qtbt的二进制树部分中的对称划分,而从节点延伸的两条虚线指示在二进制树部分中的非对称划分。
35.可以在比特流中编码语法,其指示如何将ctu 100划分为cu 102。通过非限制性示例,可以在比特流中编码语法,其指示哪些节点被使用四叉树划分进行划分,哪些节点被使用对称二进制划分进行划分,哪些节点使用非对称二进制划分进行划分。类似地,可以在用非对称二进制划分拆分的节点的比特流中编码语法,其指示使用了哪种类型的非对称二进制划分,例如图4所示的四种类型之一。
36.在一些实施例中,非对称划分的使用可以限于在qtbt的四叉树部分的叶节点处划
分cu 102。在这些实施例中,在四叉树部分中使用四叉树划分从父节点拆分的子节点处的cu 102可以是最终cu 102,或者可以使用四叉树划分、对称二进制划分或非对称二进制划分进一步拆分它们。使用对称二进制划分拆分的二进制树部分中的子节点可以是最终cu 102,或者可以仅使用对称二进制划分将它们递归拆分一次或多次。使用非对称二进制划分从qt叶节点拆分出的二进制树部分中的子节点可以是最终cu 102,不允许进一步拆分。
37.在这些实施例中,将非对称划分的使用限制为拆分四叉树叶节点可以减少搜索复杂度和/或限制开销比特。因为只有四叉树叶节点可以使用非对称划分进行拆分,所以使用非对称划分可以直接指示qt部分分支的结束,而无需其他语法或进一步的信令。类似地,由于不能进一步拆分非对称划分的节点,因此在节点上使用非对称划分还可以直接指示其非对称划分的子节点是最终cu 102,而无需其他语法或进一步的信令。
38.在替代实施例中,例如当限制搜索复杂度和/或限制开销比特的数目的考虑较少时,可以使用非对称划分来拆分由四叉树划分、对称二进制划分和/或非对称二进制划分生成的节点。
39.在使用上述任一qtbt结构进行四叉树拆分和二进制树拆分之后,由qtbt的叶节点表示的块表示要编码的最终cu 102,例如使用帧间预测(inter prediction)或帧内预测的编码。对于用帧间预测编码的切片或全帧,可以将不同的划分结构用于亮度和色度分量。例如,对于片间,cu 102可具有用于不同颜色分量的编码块(cb),诸如一个亮度cb和两个色度cb。对于用帧内预测编码的切片或全帧,对于亮度和色度分量而言划分结构可以相同。
40.在替代实施例中,jvet可以使用两级编码块结构作为上述qtbt划分的替代或扩展。在两级编码块结构中,首先可以将ctu 100在高级处划分为基本单元(bu)。然后可以将bu在低级划分为操作单元(ou)。
41.在采用两级编码块结构的实施例中,在高层,可以根据上述qtbt结构之一或根据诸如在hevc中所使用的四叉树(qt)结构将ctu 100划分为bu,其中,块只能分为四个大小相等的子块。通过非限制性示例,可以根据以上关于图5-6描述的qtbt结构将ctu 102划分为bu,使得可以使用四叉树划分、对称二进制划分或非对称二进制划分来拆分四叉树部分中的叶节点。在此示例中,qtbt的最终叶节点可以是bu而不是cu。
42.在两级编码块结构中的较低级别,从ctu 100划分的每个bu可以进一步划分为一个或多个ou。在一些实施例中,当bu为正方形时,可以使用四叉树划分或二进制划分(例如对称或非对称二进制划分)将其拆分为ou。但是,当bu不是正方形时,只能使用二进制划分将其拆分为ou。限制可用于非方形bu的划分类型可限制用于发信号通知用于生成bu的划分类型的比特数。
43.尽管下面的讨论描述了编码cu 102,但是在使用两级编码块结构的实施例中,可以对bu和ou而不是cu 102进行编码。通过非限制性示例,bu可以用于诸如帧内预测或帧间预测之类的较高级编码操作,而较小的ou可以用于诸如变换和生成变换系数的较低级编码操作。因此,用于bu的要被编码的语法指示它们是用帧内预测还是帧间预测编码的或者信息识别用于编码bu的特定帧内预测模式或运动向量。类似地,用于ou的语法可以识别用于对ou进行编码的特定变换操作或量化的变换系数。
44.图7a描绘了用于jvet编码器中的cu编码的简化框图。视频编码的主要阶段包括如上所述的划分以识别cu 102,随后在704或706使用预测对cu 102进行编码,在708产生残差
cu 710,在712进行变换,在716进行量化,以及在720进行熵编码。图7a所示的编码器和编码过程还包括下面更详细描述的解码过程。
45.给定当前的cu 102,编码器可以在704在空间上使用帧内预测或在706在时间上使用帧间预测来获得预测cu702。预测编码的基本思想是在原始信号和原始信号的预测之间发送差分或残差信号。在接收器侧,可以通过将残差和预测相加来重构原始信号,如下所述。由于差分信号的相关性低于原始信号,因此其传输所需的比特更少。
46.完全用帧内预测的cu 102编码的切片(诸如整个图片或图片的一部分)可以是i切片,其可以在不参考其他切片的情况下被解码,并且因此可以是其中解码可以开始的可能点。用至少一些帧间预测的cu编码的切片可以是可以基于一个或多个参考图片被解码的预测(p)或双向预测(b)切片。p切片可以使用具有先前编码的切片的帧内预测和帧间预测。例如,通过使用帧间预测,可以将p切片比i切片进一步压缩,但是需要对先前编码的切片的编码以对它们进行编码。b切片可以使用利用来自两个不同帧的插值预测的帧内预测或帧间预测,使用来自先前和/或后续切片的数据进行其编码,从而提高了运动估计过程的准确性。在某些情况下,还可以使用帧内块复制对p切片和b切片进行编码或替换地进行编码,其中,使用来自同一切片的其他部分的数据。
47.如以下将讨论的,可以基于来自先前编码的cu 102(诸如参考图片中的相邻cu 102或cu 102)的重构的cu 734来执行帧内预测或帧间预测。
48.当在704用帧内预测对cu 102进行空间编码时,可以发现帧内预测模式,该模式基于来自图片中相邻cu 102的样本来最佳地预测cu 102的像素值。
49.当对cu的亮度分量进行编码时,编码器可以生成候选帧内预测模式的列表。尽管hevc具有用于亮度分量的35个可能的帧内预测模式,但在jvet中,存在用于亮度分量的67个可能的帧内预测模式。这些包括使用从相邻像素生成的值的三维平面的平面模式、使用从相邻像素平均的值的dc模式以及使用沿指示的方向从相邻像素复制的值的在图8中所示的65个定向模式。
50.当生成用于cu的亮度分量的候选帧内预测模式的列表时,该列表上的候选模式的数量可以取决于cu的大小。候选列表可以包括:hevc的35种模式的子集,其satd(绝对变换差之和)成本最低;为jvet添加的新的定向模式,该模式与从hevc模式中找到的候选相邻;以及,来自基于用于先前编码的相邻块的帧内预测模式以及默认模式列表来识别的cu 102的六个最可能模式(mpm)的集合的模式。
51.当编码cu的色度分量时,还可以生成候选帧内预测模式的列表。候选模式的列表可以包括:利用来自亮度样本的跨分量线性模型投影生成的模式;针对在色度块中特定并置位置中的亮度cb找到的帧内预测模式;以及,先前为相邻块找到的色度预测模式。编码器可以在列表中找到速率失真成本最低的候选模式,并在对cu的亮度和色度分量进行编码时使用这些帧内预测模式。可以在比特流中对指示用于对每个cu 102进行编码的帧内预测模式的语法进行编码。
52.在已经选择了用于cu 102的最佳帧内预测模式之后,编码器可以使用那些模式来生成预测cu 402。当所选模式为定向模式时,可以使用4抽头滤波器来提高定向精度。可以使用边界预测滤波器(例如2抽头或3抽头滤波器)调整预测块顶部或左侧的列或行。
53.可以利用位置相关帧内预测组合(pdpc)过程进一步平滑预测cu 702,该过程调整
基于使用相邻块的未滤波样本的相邻块的滤波样本或使用3抽头或5抽头低通滤波器的自适应参考样本平滑而生成的预测cu 702以在步骤705b中处理参考样本。在一些实施例中,可以根据以下等式(1)来实现pdpc:
54.p’[x,y]=((a*recon[x,-1]-b*recon[-1,-1]+c*recon[-1,y]+d*p[x,y]+round)/denom
[0055]
等式(1)
[0056]
其中,a=(cv1》》int(y/dy)),b=((cv2》》int(y/dy))+(ch2》》int(x/dx))),c=(ch1》》int(x/dx))并且d=(1《《denom)
–a–
c+b。这样p'[x,y]是在当前cu的坐标(x,y)处的后滤波操作后的滤波的像素。cv1、cv2、ch1、ch2是确定滤波效果的pdpc参数,“round”是舍入参数,“denom”是归一化因子。
[0057]
在一些实施例中,可以采用加权角度预测,其使用顶部参考行和左侧参考列两者上的投影位置处的像素来生成用于角度预测的预测器像素。在采用加权角度预测的实施例中,可以通过三个步骤来完成预测生成:主参考投影预测、侧参考投影预测和投影预测的组合。
[0058]
在采用加权角度预测的一些实施例中,该系统和方法可以根据编码帧内预测模式的角度方向定义沿着主参考投影像素位置,并且使用两个相邻重构像素之间的线性插值来确定投影位置的像素值。该系统和方法还可以根据相同编码模式的角度定义沿着侧参考投影像素位置,并使用在两个相邻的重构像素之间的线性插值来确定投影位置的像素值。然后,该系统和方法可以将主参考的投影像素值与侧参考的投影像素值组合。下面的等式(2)中示出了非限制性示例性组合。在等式(2)中所示的示例性组合中,根据在主参考和侧参考上的预测器像素和投影像素位置之间的距离对值进行加权。然而,在替代实施例中,替代值可以用于加权与主参考像素和侧参考像素相关联的值。
[0059]
p[x,y]=(((w1*mainrecon[x’,y’])+(w2*siderecon[x”,y”])+(w1+w2)/2)/(w1+w2))
[0060]
等式(2)
[0061]
在上面的示例性等式(1)中,mainrecon[x',y']是沿着主参考的在对应于预测像素(x,y)的投影位置(x',y')处的相邻像素值。siderecon[x”,y”]是沿侧参考的在对应于相邻像素(x,y)的投影位置(x”,y”)处的相邻像素值。
[0062]
下面的等式(3)示出了使用加权角度预测(其使用hevc模式2或模式66)以及坐标(x,y)处的预测器像素的非限制性示例性组合。因此,将如等式(3)所示和所述确定p[x,y],其中,recon[0,0]是当前cu的左上坐标(0,0)处的重构像素。
[0063]
p[x,y]=((((x+1)*recon[x+y+2,-1])+((y+1)*(recon[-1,x+y+2]))+(y+x+2)/2)/(y+x+2))
[0064]
等式(3)
[0065]
当侧参考上的投影参考位置指代不是可行位置或不可用的重构位置时,可能发生其中可能不采用加权角度预测的系统和过程的例外。在这样的情况下,当可能不采用加权角度预测时,可能有多个选项来处理例外。在一些实施例中,可以通过使用最后可用的重构像素的值或投影位置的默认值来处理例外。在其他替代实施例中,可以通过禁用加权角度预测和/或仅使用主参考的投影像素位置来处理例外。因此,在步骤705a中,可以确定是否
已将加权角度预测用作在步骤704中的帧内预测模式。如果在步骤705a中,将帧内预测模式确定为使用加权角度预测,则预测编码单元702可以被递送用于没有滤波的熵编码。然而,如果在步骤705a中确定帧内预测模式不是加权角度预测,则可以在递送用于熵编码之前将后帧内预测滤波705b(例如pdpc滤波)应用于预测编码单元。
[0066]
如图7b所示,在一些实施例中,可以在步骤704之后为所有帧内预测采用后帧内预测滤波器705b。在图7b所述的这样的实施例中,如果帧内预测模式是基于除了加权角度预测以外的,则所应用的滤波器可以如在步骤705b中通常所应用的那样被应用。然而,如果帧内预测模式是基于加权角度预测,则可以绕过步骤705b中的滤波和/或在一些实施例中,所应用的滤波器可以不偏向于主参考、侧参考或主和侧参考。通过非限制性示例,cv1和ch1的值可以相等和/或cv2和ch2的值可以相等。
[0067]
当在706处使用帧间预测对cu 102进行时间编码时,可以发现一组运动向量(mv),这些运动向量指向参考图片中的样本,该样本最佳地预测cu 102的像素值。帧间预测通过表示切片中像素块的位移来利用了切片之间的时间冗余。通过称为运动补偿的过程,根据上一个或下一个切片中的像素值确定位移。指示像素相对于特定参考图片的位移的运动向量和相关参考索引可以与原始像素和运动补偿像素之间的残差一起在比特流中被提供给解码器。解码器可以使用残差和以信号传送的运动向量以及参考索引来重构在重构切片中的像素块。
[0068]
在jvet中,运动向量的精度可以以1/16像素存储,并且可以用四分之一像素分辨率或整数像素分辨率编码运动向量和cu的预测运动向量之间的差。
[0069]
在jvet中,可以使用诸如高级时间运动向量预测(atmvp)、时空运动向量预测(stmvp)、仿射运动补偿预测、模式匹配运动向量推导(pmmvd)和/或双向光流(bio)等技术为cu 102中的多个子cu找到运动向量。。
[0070]
使用atmvp,编码器可以找到cu 102的时间向量,该时间向量指向参考图片中的对应块。可以基于为先前编码的相邻cu 102找到的运动向量和参考图片来找到时间向量。使用对于整个cu 102而言由时间向量指向的参考块,可以为在整个cu 102内的每个子cu找到运动向量。
[0071]
stmvp可以通过缩放和平均为先前用帧间预测编码的相邻块找到的运动向量以及时间向量来找到子cu的运动向量。
[0072]
仿射运动补偿预测可用于基于针对块的顶角找到的两个控制运动向量来预测块中的每个子cu的运动向量的场。例如,可以基于针对cu 102内的每个4x4块找到的顶角运动向量来导出子cu的运动向量。
[0073]
pmmvd可以使用双边匹配或模板匹配找到当前cu 102的初始运动向量。双边匹配可以沿着运动轨迹查看当前cu 102和两个不同参考图片中的参考块,而模板匹配可以查看当前cu 102以及由模板识别的参考图片中的相应块。然后,可以针对每个子cu分别细化针对cu 102找到的初始运动向量。
[0074]
当基于较早和较晚参考图片使用双向预测执行帧间预测时,可以使用bio,并且bio允许基于在两个参考图片之间的差异的梯度为子cu找到运动向量。
[0075]
在一些情况下,可以基于与当前cu 102相邻的样本和与由候选运动向量识别的参考块相邻的相应样本,在cu级别使用局部照明补偿(lic)来找到缩放因子参数和偏移参数
的值。在jvet中,lic参数可以更改并在cu级别以信号传送。
[0076]
对于上述方法中的一些方法,可以将对于cu的每个子cu找到的运动向量在cu级别以信号发送到解码器。对于其他方法(例如pmmvd和bio),不会在比特流中用信号发送运动信息以节省开销,并且解码器可以通过相同的过程导出运动向量。
[0077]
在找到用于cu 102的运动向量之后,编码器可以使用那些运动向量来生成预测cu 702。在某些情况下,当已经找到单个子cu的运动向量时,通过将那些运动向量与先前为一个或多个相邻子cu找到的运动向量进行组合,可以在生成预测cu 702时使用重叠块运动补偿(obmc)。
[0078]
当使用双向预测时,jvet可以使用解码器侧运动向量细化(dmvr)来找到运动向量。dmvr允许使用双边模板匹配过程基于针对双向预测找到的两个运动向量找到运动向量。在dmvr中,可以找到用两个运动向量中的每个运动向量生成的预测cu 702的加权组合,并且可以通过用最佳指向组合的预测cu 702的新运动向量替换两个运动向量来细化它们。这两个细化的运动向量可用于产生最终预测cu 702。
[0079]
在708处,如上所述,一旦已经在704处使用帧内预测或在706处使用帧间预测找到预测cu 702,编码器就可以从当前cu 102中减去预测cu 702以找到残差cu 710。
[0080]
编码器可在712处使用一个或多个变换操作以将残差cu 710转换成在变换域中表达残差cu 710的变换系数714,诸如使用离散余弦块变换(dct变换)来将数据转换到变换域中。与hevc相比,jvet允许进行更多类型的变换操作,包括dct-ii、dst-vii、dst-vii、dct-viii、dst-i和dct-v操作。可以将允许的变换操作分组为子集,并且可以由编码器用信号传送使用了哪些子集以及那些子集中的哪些特定操作的指示。在某些情况下,大块大小的变换可用于将大于特定大小的cu 102中的高频变换系数归零,使得仅为那些cu 102保持低频变换系数。
[0081]
在某些情况下,在前向核心变换之后,可以将与模式相关的不可分离的二次变换(mdnsst)应用于低频变换系数714。mdnsst操作可以基于旋转数据使用hypercube-givens变换(hygt)。当使用时,编码器可以用信号发送识别特定mdnsst操作的索引值。
[0082]
在716,编码器可以将变换系数714量化为量化的变换系数716。可以通过将系数的值除以量化步长来计算每个系数的量化,该量化步长是从量化参数(qp)得出的。在一些实施例中,qstep被定义为2
(qp-4)/6
。因为可以将高精度变换系数714转换为具有有限数量的可能值的量化变换系数716,所以量化可以协助数据压缩。因此,变换系数的量化可限制由变换过程产生和发送的比特量。然而,尽管量化是有损操作,并且不能弥补量化的损失,但是量化过程在重构序列的质量和表示该序列所需的信息量之间进行权衡。例如,较低的qp值可以产生更好质量的解码视频,尽管可能需要更高数量的数据来用于表示和传输。相反,高qp值会导致质量较低的重构视频序列,但数据和带宽需求较低。
[0083]
jvet可以利用基于方差的自适应量化技术,其允许每个cu 102对其编码过程使用不同的量化参数(而不是在帧的每个cu 102的编码中使用相同的帧qp)。基于方差的自适应量化技术自适应地降低某些块的量化参数,而在其他块中则提高量化参数。为了为cu 102选择特定的qp,计算cu的方差。简而言之,如果cu的方差高于帧的平均方差,则可以为cu 102设置比帧的qp高的qp。如果cu 102呈现出比帧的平均方差低的方差,则可以分配较低的qp。
[0084]
在720,编码器可以通过对量化的变换系数718进行熵编码来找到最终压缩比特722。熵编码旨在去除要发送的信息的统计冗余。在jvet中,可以使用cabac(上下文自适应二进制算术编码)来对量化的变换系数718进行编码,其使用概率度量来去除统计冗余。对于具有非零的量化变换系数718的cu 102,可以将量化的变换系数718转换为二进制。然后可以使用上下文模型对二进制表示的每个比特(“bin”)进行编码。cu 102可被分成三个区域,每个区域具有其自己的上下文模型集合以用于该区域内的像素。
[0085]
可以执行多次扫描过程以对bin进行编码。在对前三个bin(bin0、bin1和bin2)进行编码的过程中,可以通过在由模板识别的多达五个先前编码的相邻量化变换系数718中找到bin位置的总和来找到索引值,该索引值指示要用于该bin的上下文模型。
[0086]
上下文模型可以基于bin的值为“0”或“1”的概率。由于对值进行编码,可以基于遇到的值“0”和“1”的实际数量来更新上下文模型中的概率。虽然hevc使用固定表为每个新图片重新初始化上下文模型,但在jvet中,可以基于为先前编码的帧间预测图片开发的上下文模型来初始化新帧间预测图片的上下文模型的概率。
[0087]
编码器可以产生如下比特流,该比特流包含:残差cu 710的熵编码的比特722;预测信息,诸如所选择的帧内预测模式或运动向量;关于如何根据qtbt结构从ctu 100划分出cu 102的指示符;和/或,其他关于编码视频的信息。比特流可以由解码器解码,如下所述。
[0088]
除了使用量化的变换系数718来找到最终压缩比特722之外,编码器还可以通过遵循与解码器将用于生成重构的cu 734的相同的解码过程,使用量化的变换系数718来生成重构的cu 734。因此,一旦编码器已经计算并量化了变换系数,就可以将量化的变换系数718发送到编码器中的解码循环。在对cu的变换系数进行量化之后,解码循环允许编码器生成与解码器在解码过程中生成的那个相同的重构cu 734。因此,编码器可以使用与解码器在对新的cu 102执行帧内预测或帧间预测时将用于相邻cu 102或参考图片的相同的重构cu 734。重构cu 102、重构切片或完全重构帧可以用作进一步的预测阶段的参考。
[0089]
在编码器的解码循环(对于解码器中的相同操作,请参见下面的内容)以获取重构图像的像素值,可以执行解量化处理。为了对帧进行解量化,例如,将帧的每个像素的量化值乘以上述的量化步长,例如,(qstep),以获得重构的解量化变换系数726。例如,在编码器中的在图7a中所示的解码过程中,可以在724处对残差cu 710的量化变换系数718进行解量化,以找到解量化的变换系数726。如果在编码期间执行了mdnsst操作,则该操作可以在解量化之后反转。
[0090]
在728处,可以对解量化的变换系数726诸如通过将dct应用于这些值以获得重构的图像而进行逆变换,以找到重构的残差cu 730。在732,可以将重构的残差cu 730添加到在704处利用帧内预测或在706处利用帧间预测而找到的对应预测cu 702,以便找到重构的cu 734。
[0091]
在736处,可以在图片级或cu级在解码过程期间(在编码器中,或如下所述,在解码器中)将一个或多个滤波器应用于重构数据。例如,编码器可以应用解块滤波器、样本自适应偏移(sao)滤波器和/或自适应环路滤波器(alf)。编码器的解码过程可能会实现滤波器,以估算可解决重构图像中潜在伪像的最佳滤波器参数并将其传输至解码器。这样的改进提高了重构视频的客观和主观质量。在解块滤波中,可修改子cu边界附近的像素,而在sao中,可使用边缘偏移或频带偏移分类来修改ctu 100中的像素。jvet的alf可以为每个2x2块使
用具有圆形对称形状的滤波器。可以用信号发送用于每个2x2块的滤波器的大小和身份的指示。备选地,在其中为预测cu实现加权角度预测的一些实施例中,可以将替代滤波器或不将滤波器应用于重构cu。
[0092]
如果重构的图片是参考图片,则可以将它们存储在参考缓冲器738中,以在706处对未来的cu 102进行帧间预测。
[0093]
在上述步骤中,jvet允许使用内容自适应削波操作来调整颜色值以适合上下削波界限之间。削波界限可以针对每个切片而改变,并且可以在比特流中用信号发送识别界限的参数。
[0094]
图9描绘了用于jvet解码器中的cu编码的简化框图。jvet解码器可以接收包含关于编码的cu 102的信息的比特流。该比特流可以指示如何根据qtbt结构从ctu 100划分图片的cu 102。通过非限制性示例,比特流可以识别如何使用四叉树划分、对称二进制划分和/或非对称二进制划分来在qtbt中从每个ctu 100划分cu 102。比特流还可以指示诸如帧内预测模式或运动向量的用于cu 102的预测信息以及用于表示熵编码的残差cu的比特902。
[0095]
在904,解码器可以使用由编码器在比特流中用信号发送的cabac上下文模型对熵编码的比特902进行解码。解码器可以使用编码器以信号发出的参数来更新上下文模型的概率,就像在编码过程中更新它们一样。
[0096]
在904处将熵编码反转以找到量化的变换系数906之后,解码器可以在908处对其进行解量化以找到解量化的变换系数910。如果在编码期间执行了mdnsst操作,则该操作可以在解量化之后由解码器反转。
[0097]
在912处,可以对经解量化的变换系数910进行逆变换以找到重构的残差cu 914。在916处,可以将重构的残差cu 914添加到在922处使用帧内预测或在924处使用帧间预测找到的对应预测cu 926,以便找到重构的cu 918。
[0098]
因此,在步骤923a中,可以确定是否在步骤922中已将加权角度预测用作帧内预测模式。如果在步骤923a中确定帧内预测模式为使用加权角度预测,则预测编码单元926可以被递送用于没有滤波的熵编码。然而,如果在步骤923a中确定帧内预测模式不是加权角度预测,则可以在递送用于熵编码之前将后帧内预测滤波923b(例如pdpc滤波)应用于预测编码单元。
[0099]
在920处,可以以图片级别或cu级别将一个或多个滤波器应用于重构数据。例如,解码器可以应用解块滤波器、样本自适应偏移(sao)滤波器和/或自适应环路滤波器(alf)。如上所述,位于编码器的解码环路中的环路内滤波器可以用于估计最优滤波器参数,以增加帧的客观和主观质量。这些参数被发送到解码器以在920处对重构帧进行滤波以匹配编码器中的滤波后的重构帧。
[0100]
在通过找到重构的cu 918并应用以信号传输的滤波器而生成了重构的图片之后,解码器可以将重构的图片输出为输出视频928。如果将重构的图片用作参考图片,则可以将其存储在参考缓冲器930中,以用于在924处对未来cu 102进行帧间预测。
[0101]
图10描绘了在jvet解码器中的cu编码1000的方法的实施例。在图10所示的实施例中,在步骤1002中,可以接收编码比特流902,然后在步骤1004中,可以确定与编码比特流902相关联的cabac上下文模型,然后可以在步骤1006中使用确定的cabac上下文模型来对
编码比特流902进行解码。
[0102]
在步骤1008中,可以确定与编码比特流902相关联的量化变换系数906,然后可以在步骤1010中从量化变换系数906确定解量化变换系数910。
[0103]
在步骤1012中,可以确定在编码期间是否执行了mdnsst操作和/或位流902是否包含对位流902应用了mdnsst操作的指示。如果确定编码过程期间执行了mdnsst操作或比特流902包含将mdnsst操作应用于比特流902的指示,则在步骤1016中对比特流902执行逆变换操作912之前,可以实现逆mdnsst操作1014。替代地,可以在步骤1016中对比特流902执行逆变换操作912,而无需在步骤1014中应用逆mdnsst操作。步骤1016中的逆变换操作912可以确定和/或构造重构的残差cu 914。
[0104]
在步骤1018中,可以将来自步骤1016的重构残差cu 914与预测cu 918组合。预测cu 918可以是在步骤1020中确定的帧内预测cu 922和在步骤1022中确定的帧间预测单元924之一。
[0105]
因此,在步骤1023a中,可以确定是否在步骤1020中已将加权角度预测用作帧内预测模式。如果在步骤1023a中确定帧内预测模式为使用加权角度预测,则预测编码单元926可以被递送用于没有滤波的熵编码,和/或步骤1024中执行的滤波可以被修改和/或不存在。但是,如果在步骤1023a中确定帧内预测模式不是加权角度预测,则可以在递送用于熵编码之前将后帧内预测滤波1023b和/或在步骤1024(例如pdpc滤波)应用于预测编码单元。
[0106]
如图10所示,在一些实施例中,可以不存在步骤1023b,并且可以在步骤1018之后针对所有预测采用后帧内预测滤波器1024。在图10所示的实施例中,如果帧内预测模式是基于加权角度预测以外的,则所应用的滤波器可以如通常在步骤1024中所应用的那样被应用。但是,如果帧内预测模式是基于加权角度预测,则可以绕过在步骤1024的滤波,和/或在一些实施例中,在步骤1026中,在输出重构的cu之前,所应用的滤波器可以不偏向主参考、侧参考或主和侧参考。通过非限制性示例,cv1和ch1的值可以相等和/或cv2和ch2的值可以相等。
[0107]
在步骤1024中,可以将任何一个或多个滤波器920应用于重构的cu 914并在步骤1026中输出。在一些实施例中,可以在步骤1024中不应用滤波器920。
[0108]
在一些实施例中,在步骤1028中,可以将重构的cu 918存储在参考缓冲器930中。
[0109]
图11描绘了用于jvet编码器中的cu编码的简化框图1100。在步骤1102中,jvet编码树单元可以被表示为四叉树加二进制树(qtbt)结构中的根节点。在一些实施例中,qtbt可以具有从根节点分支的四叉树和/或从一个或多个四叉树的叶节点分支的二进制树。来自步骤1102的表示可以进行到步骤1104、1106或1108。
[0110]
在步骤1104中,可以采用非对称二进制划分将表示的四叉树节点拆分为两个大小不等的块。在一些实施例中,可以在从四叉树节点分支的二进制树中将拆分块表示为可以表示最终编码单元的叶节点。在一些实施例中,从四叉树节点作为叶节点分支的二进制树表示最终编码单元,其中,不允许进一步拆分。在一些实施例中,非对称划分可以将编码单元拆分成大小不等的块,第一块代表四叉树节点的25%,第二块代表四叉树节点的75%。
[0111]
在步骤1106中,可以采用四叉树划分将表示的四叉树符号拆分成四个大小相等的正方形块。在一些实施例中,拆分块可以被表示为表示最终编码单元的四叉树符号,或者可以被表示为可以通过四叉树划分、对称二进制划分或非对称二进制划分再次划分的子节
点。
[0112]
在步骤1108中,可以采用四叉树划分将表示的四叉树符号拆分成相等大小的两个块。在一些实施例中,拆分块可以被表示为代表最终编码单元的四叉树符号,或者可以被表示为可以通过四叉树划分、对称二进制划分或非对称二进制划分再次拆分的子节点。
[0113]
在步骤1110中,可以将来自步骤1106或步骤1108的子节点表示为被配置为要编码的子节点。在一些实施例中,子节点可以由具有jvet的二进制树的叶符号表示。
[0114]
在步骤1112中,可以使用jvet对来自步骤1104或1110的编码单元进行编码。
[0115]
图12描绘了用于jvet解码器中的cu解码的简化框图1200。在图12所示的实施例中,在步骤1202中,可以接收指示如何根据qtbt结构将编码树单元划分为编码单元的比特流。比特流可以指示如何用四叉树划分、对称二进制划分或非对称二进制划分中的至少一种来拆分四叉树节点。
[0116]
在步骤1204中,可以识别由qtbt结构的叶节点表示的编码单元。在一些实施例中,编码单元可以使用非对称二进制划分指示节点是否从四叉树叶节点拆分节点。在一些实施例中,编码单元可以指示节点表示要解码的最终编码单元。
[0117]
在步骤1206中,可以使用jvet对所识别的编码单元进行解码。
[0118]
实施实施例所需的指令序列的执行可以由如图13所示的计算机系统1300执行。在实施例中,指令序列的执行由单个计算机系统1300执行。根据其他实施例,通过通信链路1315耦合的两个或更多个计算机系统1300可以彼此协调地执行指令序列。尽管下面将呈现仅一个计算机系统1300的描述,但是应当理解,可以采用任何数量的计算机系统1300来实践实施例。
[0119]
现在将参照图13描述根据实施例的计算机系统1300,图13是计算机系统1300的功能组件的框图。如本文所使用的,术语计算机系统1300被广泛地用于描述可以存储并独立运行一个或多个程序的任何计算装置。
[0120]
每个计算机系统1300可以包括耦合到总线1306的通信接口1314。通信接口1314提供计算机系统1300之间的双向通信。相应计算机系统1300的通信接口1314发送和接收电气、电磁或光信号,其包括代表各种类型的信号信息(例如,指令、消息和数据)的数据流。通信链路1315将一个计算机系统1300与另一计算机系统1300链接。例如,通信链路1315可以是lan,在这种情况下,通信接口1314可以是lan卡,或者通信链路1315可以是pstn,在这种情况下,通信接口1314可以是综合业务数字网(isdn)卡或调制解调器,或者通信链路1315可以是因特网,在这种情况下,通信接口1314可以是拨号、电缆或无线调制解调器。
[0121]
计算机系统1300可以通过其各自的通信链路1315和通信接口1314来发送和接收消息、数据和指令,包括程序,即应用,代码。所接收的程序代码可以在其被接收时由相应的处理器1307执行和/或存储在存储装置1310或其他关联的非易失性介质中,以供以后执行。
[0122]
在一个实施例中,计算机系统1300与数据存储系统1331(例如,包含数据库1332的数据存储系统1331)组合操作,该数据库1332可由计算机系统1300容易地访问。计算机系统1300通过数据接口1333与数据存储系统1331连通。耦合到总线1306的数据接口1333发送和接收电气、电磁或光信号,该电气、电磁或光信号包括表示各种类型的信号信息(例如,指令、消息和数据)的数据流。在实施例中,数据接口1333的功能可以由通信接口1314执行。
[0123]
计算机系统1300包括总线1306或用于通信指令、消息和数据(统称为信息)的其他
通信机制以及与总线1306耦合以处理信息的一个或多个处理器1307。计算机系统1300还包括主存储器1308,例如随机存取存储器(ram)或其他动态存储装置,其耦合到总线1306,用于存储动态数据和将由处理器1307执行的指令。主存储器1308还可以用于在处理器1307执行指令期间存储临时数据,即变量或其他中间信息。
[0124]
计算机系统1300还可以包括只读存储器(rom)1309或其他静态存储装置,其耦合到总线1306以用于存储静态数据和用于处理器1307的指令。还可以提供诸如磁盘或光盘的存储装置1310并将其耦合到总线1306,以存储数据和用于处理器1307的指令。
[0125]
计算机系统1300可以通过总线1306耦合到显示装置1311,例如但不限于阴极射线管(crt)或液晶显示器(lcd)监视器,用于向用户显示信息。输入装置1312(例如,字母数字键和其他键)耦合到总线1306,用于将信息和命令选择传送到处理器1307。
[0126]
根据一个实施例,单个计算机系统1300通过它们各自的处理器1307执行主存储器1308中包含的一个或多个指令的一个或多个序列来执行特定操作。可以将这些指令从另一计算机可用介质(例如rom 1309或存储装置1310)中读入主存储器1308。执行包含在主存储器1308中的指令序列会使处理器1307执行本文所述的过程。在替代实施例中,可以代替软件指令或与软件指令组合使用硬连线电路。因此,实施例不限于硬件电路和/或软件的任何特定组合。
[0127]
如本文所用,术语“计算机可用介质”是指提供信息或可由处理器1307使用的任何介质。这样的介质可以采取许多形式,包括但不限于非易失性、易失性和传输介质。非易失性介质,即在没有电源的情况下可以保留信息的介质,包括rom 1309、cd rom、磁带和磁盘。易失性介质,即在没有电源的情况下不能保留信息的介质,包括主存储器1308。传输介质包括同轴电缆、铜线和光纤,包括包括总线1306的电缆。传输介质也可以采用载波形式;即可以按频率、幅度或相位进行调制以传输信息信号的电磁波。另外,传输介质可以采用声波或光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。
[0128]
在前面的说明书中,已经参照其具体元件描述了实施例。然而,将显而易见的是,在不脱离实施例的更广泛精神和范围的情况下,可以对其进行各种修改和改变。例如,读者将理解,在此描述的过程流程图中示出的过程动作的特定顺序和组合仅仅是说明性的,并且使用不同的或附加的过程动作,或者可以使用过程动作的不同组合或顺序以制定实施例。因此,说明书和附图应被认为是说明性而非限制性的。
[0129]
还应当注意,本发明可以在各种计算机系统中实现。本文描述的各种技术可以以硬件或软件或两者的组合来实现。优选地,所述技术在可编程计算机上执行的计算机程序中实现,所述可编程计算机每个包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置以及至少一个输出装置。程序代码被应用于使用输入装置输入的数据,以执行上述功能并生成输出信息。输出信息被应用于一个或多个输出装置。每个程序优选地以高级过程或面向对象的编程语言来实现以与计算机系统通信。但是,如果需要,可以用汇编语言或机器语言来实现程序。在任何情况下,该语言都可以是编译语言或解释语言。每个这样的计算机程序优选地存储在通用或专用可编程计算机可读的存储介质或装置(例如,rom或磁盘)上,以在计算机读取存储介质或装置以执行上述过程时配置和操作计算机。该系统也可以被视为实现为配置有计算机程序的计算机可读存储介质,其中,如此配置的存储介质使计算机以特定且预定的方式进行操作。此外,示例性计
算应用的存储元件可以是能够以各种组合和配置存储数据的关系或顺序(平面文件)类型的计算数据库。
[0130]
图14是可以结合本文描述的系统和装置的特征的源装置1412和目的地装置1410的高层视图。如图14所示,示例性视频编码系统1410包括源装置1412和目的地装置1414,其中,在该示例中,源装置1412生成编码的视频数据。因此,源装置1412可以被称为视频编码装置。目的地装置1414可以对由源装置1412生成的编码的视频数据进行解码。因此,目的地装置1414可以被称为视频解码装置。源装置1412和目的地装置1414可以是视频编码装置的示例。
[0131]
目的地装置1414可以经由信道1416从源装置1412接收编码的视频数据。信道1416可以包括能够将编码的视频数据从源装置1412移动到目的地装置1414的一种介质或装置。在一个示例中,信道1416可以包括通信介质,该通信介质使源装置1412能够将编码的视频数据直接实时地发送到目的地装置1414。
[0132]
在该示例中,源装置1412可以根据诸如无线通信协议的通信标准来调制编码的视频数据,并且可以将调制的视频数据发送到目的地装置1414。通信介质可以包括无线或有线的通信介质,例如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成诸如局域网、广域网或诸如因特网之类的全球网络的基于分组的网络的一部分。通信介质可以包括路由器、交换机、基站或其他设备,这些设备促进从源装置1412到目的地装置1414的通信。在另一个示例中,信道1416可以对应于存储由源装置1412生成的编码视频数据的存储介质。
[0133]
在图14的示例中,源装置1412包括视频源1418、视频编码器1420和输出接口1422。在一些情况下,输出接口1428可以包括调制器/解调器(调制解调器)和/或发送器。在源装置1412中,视频源1418可以包括源,例如视频捕获装置(例如摄像机)、包含先前捕获的视频数据的视频档案、从视频内容提供者接收视频数据的视频馈送接口和/或用于生成视频数据的计算机图形系统或此类源的组合。
[0134]
视频编码器1420可以对捕获的、预捕获的或计算机生成的视频数据进行编码。输入图像可以由视频编码器1420接收并存储在输入帧存储器1421中。通用处理器1423可以从此处加载信息并执行编码。用于驱动通用处理器的程序可以从诸如图14所示的示例存储模块之类的存储装置中加载。通用处理器可以使用处理存储器1422来执行编码,并且通用处理器编码的信息的输出可以存储在缓冲器中,例如输出缓冲器1426。
[0135]
视频编码器1420可以包括重采样模块1425,该重采样模块1425可以被配置为以定义了至少一个基本层和至少一个增强层的可伸缩视频编码方案来编码(例如,译码)视频数据。重采样模块1425可以作为编码过程的一部分对至少一些视频数据进行重采样,其中,可以使用重采样滤波器以自适应方式执行重采样。
[0136]
编码的视频数据(例如编码的比特流)可以经由源装置1412的输出接口1428直接发送到目的地装置1414。在图14的示例中,目的地装置1414包括输入接口1438、视频解码器1430和显示装置1432。在一些情况下,输入接口1428可以包括接收器和/或调制解调器。目的地装置1414的输入接口1438通过信道1416接收编码的视频数据。编码的视频数据可以包括由视频编码器1420生成的表示视频数据的各种语法元素。这样的语法元素可以被包括在在通信介质上发送、存储在存储介质上或存储在文件服务器中的编码视频数据中。
[0137]
编码的视频数据还可以被存储到存储介质或文件服务器上,以供目的地装置1414稍后访问以进行解码和/或回放。例如,可以将编码比特流临时存储在输入缓冲器1431中,然后加载到通用处理器1433中。可以从存储装置或存储器加载用于驱动通用处理器的程序。通用处理器可以使用处理存储器1432来执行解码。视频解码器1430还可以包括与视频编码器1420中采用的重采样模块1425相似的重采样模块1435。
[0138]
图14描绘了与通用处理器1433分离的重采样模块1435,但是本领域技术人员将意识到,重采样功能可以由被通用处理器执行的程序来执行,并且可以使用一个或多个处理器来完成视频编码器中的处理。解码的图像可以被存储在输出帧缓冲器1436中,然后被发送到输入接口1438。
[0139]
显示装置1438可以与目的地装置1414集成在一起或者可以在目的地装置1414外部。在一些示例中,目的地装置1414可以包括集成的显示装置,并且还可以被配置为与外部显示装置接口连接。在其他示例中,目的地装置1414可以是显示装置。通常,显示装置1438将解码后的视频数据显示给用户。
[0140]
视频编码器1420和视频解码器1430可以根据视频压缩标准来操作。itu-t vceg(q6/16)和iso/iec mpeg(jtc 1/sc 29/wg 11)正在研究对未来视频编码技术进行标准化的潜在需求,该技术的压缩能力将大大超过当前的高效视频编码hevc标准(包括其当前扩展和屏幕内容编码和高动态范围编码的近期扩展)。该小组正在以联合协作工作组共同开展这项探索活动,该联合协作工作组称为联合视频探索小组(jvet),以评估他们在该领域的专家提出的压缩技术设计。在下文中描述了jvet开发的最新成果:由j.chen,e.alshina,g.sullivan,j.ohm,j.boyce出版的"algorithm description of joint exploration test model 5(jem 5)",jvet-e1001-v2。
[0141]
另外或替代地,视频编码器1420和视频解码器1430可根据以所公开的jvet特征起作用的其他专有或工业标准来操作。因此,诸如itu-t h.264标准的其他标准或者称为mpeg-4,第10部分,高级视频编码(avc)或者这些标准的扩展。因此,尽管是为jvet新开发的,但是本公开的技术不限于任何特定的编码标准或技术。视频压缩标准和技术的其他示例包括mpeg-2、itu-t h.263和专有或开源压缩格式以及相关格式。
[0142]
视频编码器1420和视频解码器1430可以以硬件、软件、固件或其任何组合来实现。例如,视频编码器1420和解码器1430可以采用一个或多个处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑或其任意组合。当视频编码器1420和解码器1430部分地以软件实现时,装置可以将用于该软件的指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件方式执行指令以执行本公开的该技术。视频编码器1420和视频解码器1430中的每一个可以被包括在一个或多个编码器或解码器中,该编码器或解码器中的任一个可以被集成为相应装置中的组合编码器/解码器(codec)的一部分。
[0143]
可以在由计算机(例如上述通用处理器1423和1433)执行的计算机可执行指令(例如程序模块)的一般上下文中描述本文描述的主题的各方面。通常,程序模块包括例程、程序、对象、组件和数据结构等,它们执行特定的任务或实现特定的抽象数据类型。本文描述的主题的各方面也可以在分布式计算环境中实践,在分布式计算环境中,任务由通过通信网络链接的远程处理装置执行。在分布式计算环境中,程序模块可以位于包括存储器存储
装置的本地和远程计算机存储介质中。
[0144]
存储器的示例包括随机存取存储器(ram)、只读存储器(rom)或两者。存储器可以存储用于执行上述技术的指令,例如源代码或二进制代码。存储器还可用于在执行由处理器(例如处理器1423和1433)执行的指令期间存储变量或其他中间信息。
[0145]
存储装置还可以存储用于执行上述技术的指令,例如源代码或二进制代码的指令。存储装置可以另外存储由计算机处理器使用和操纵的数据。例如,视频编码器1420或视频解码器1430中的存储装置可以是计算机系统1423或1433访问的数据库。该存储装置的其他示例包括随机存取存储器(ram)、只读存储器(rom)、硬盘驱动器、磁盘、光盘、cd-rom、dvd、闪存、usb存储器卡或计算机可以读取的任何其他介质。
[0146]
存储器或存储装置可以是供视频编码器和/或解码器使用或与其组合使用的非暂时性计算机可读存储介质的示例。非暂时性计算机可读存储介质包含用于控制计算机系统的指令,该计算机系统被配置为执行由特定实施例描述的功能。当由一个或多个计算机处理器执行时,指令可以被配置为执行在特定实施例中描述的指令。
[0147]
此外,应注意,已经将一些实施例描述为可以被描绘为流程图或框图的过程。尽管每个操作都可以将操作描述为顺序过程,但是可以并行或同时执行许多操作。另外,可以重新排列操作的顺序。过程可能具有图中未包括的其他步骤。
[0148]
特定实施例可以在非暂时性计算机可读存储介质中实现,以供指令执行系统、设备、系统或机器使用或与其组合使用。该计算机可读存储介质包含用于控制计算机系统执行由特定实施例描述的方法的指令。该计算机系统可以包括一个或多个计算装置。当由一个或多个计算机处理器执行时,所述指令可以被配置为执行在特定实施例中描述的指令。
[0149]
如在本文的描述和贯穿随后的权利要求书中所使用的,除非上下文另外明确指出,否则“一”、“一个”和“该”包括复数引用。而且,如本文的说明书和贯穿随后的权利要求书中所使用的,除非上下文另外明确指出,否则“在...中”的含义包括“在...之中”和“在...之上”。
[0150]
尽管已经以上述结构特征和/或方法动作专用的语言详细描述了本发明的示例性实施例,但是应当理解,本领域技术人员将容易意识到,在示例性实施例中许多附加修改是可能的,而在实质上不背离本发明的新颖教导和优点。此外,应理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。因此,这些以及所有这样的修改旨在被包括在根据所附权利要求的广度和范围内解释的本发明的范围内。

技术特征:
1.一种对视频进行编码的方法,包括:(a)在视频帧的编码区域内定义具有cu x和cu y坐标的基于包括四叉树划分的编码树单元的矩形编码单元(cu);(b)确定如果将使用用于帧内预测的对于特定角度的加权角度预测来编码所述编码单元,那么(i)在所述编码区域内选择性地定义侧参考像素,所述侧参考像素具有与所述侧参考像素相关联的侧x和侧y坐标;(ii)在所述编码区域内选择性地定义主参考像素,所述主参考像素具有与所述主参考像素相关联的主x和主y坐标;(iii)选择性地确定与所述主参考像素相关联的主权重值;(iv)选择性地确定与所述侧参考像素相关联的侧权重值;(v)至少部分地基于与所述主权重值组合的所述主参考像素和与所述侧权重值组合的所述侧参考像素中的至少一个,为所述编码单元生成预测cu;(vi)其中,所述预测cu基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的生成后滤波被滤波,随后被递送用于熵编码;(c)确定如果将不使用用于所述帧内预测的对于所述特定角度的所述加权角度预测来编码所述编码单元,那么(i)至少部分地基于另一预测为所述编码单元生成预测cu;(ii)其中,至少部分地基于所述另一预测的所述生成不基于由所述主权重值加权的所述主参考像素和由所述侧权重值加权的所述侧参考像素中的所述至少一个;(iii)其中,所述预测cu没有基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的所述生成后滤波被滤波;(iv)其中,没有基于使用所述位置相关预测组合(pdpc)的所述生成后滤波被滤波的所述预测cu随后被递送用于熵编码。2.一个或多个计算机可读存储器或存储装置,其将编码数据存储为比特流的一部分,所述编码数据被组织成便于由执行操作的视频解码器解码,所述视频解码器使用存储器和一个或多个处理单元来实现,所述操作包括:(a)所述比特流包含下述数据,所述数据适合于在视频帧的编码区域内定义具有cu x和cu y坐标的基于包括四叉树划分的编码树单元的矩形编码单元(cu);(b)所述比特流包含下述数据,所述数据适合于确定如果将使用用于帧内预测的对于特定角度的加权角度预测来解码所述编码单元,那么(i)在所述编码区域内选择性地定义侧参考像素,所述侧参考像素具有与所述侧参考像素相关联的侧x和侧y坐标;(ii)在所述编码区域内选择性地定义主参考像素,所述主参考像素具有与所述主参考像素相关联的主x和主y坐标;(iii)选择性地确定与所述主参考像素相关联的主权重值;(iv)选择性地确定与所述侧参考像素相关联的侧权重值;(v)至少部分地基于与所述主权重值组合的所述主参考像素和与所述侧权重值组合的所述侧参考像素中的至少一个,为所述编码单元生成预测cu;
(vi)其中,所述预测cu基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的生成后滤波被滤波,随后被递送用于熵解码;(c)所述比特流包含下述数据,所述数据适合于确定如果将不使用用于所述帧内预测的对于所述特定角度的所述加权角度预测来解码所述编码单元,那么(i)至少部分地基于另一预测为所述编码单元生成预测cu;(ii)其中,至少部分地基于所述另一预测的所述生成不基于由所述主权重值加权的所述主参考像素和由所述侧权重值加权的所述侧参考像素中的所述至少一个;(iii)其中,所述预测cu没有基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的所述生成后滤波被滤波;(iv)其中,没有基于使用所述位置相关预测组合(pdpc)的所述生成后滤波被滤波的所述预测cu随后被递送用于熵解码。3.一种对视频进行解码的方法,包括:(a)在视频帧的编码区域内定义具有cu x和cu y坐标的基于包括四叉树划分的编码树单元的矩形编码单元(cu);(b)确定如果将使用用于帧内预测的对于特定角度的加权角度预测来解码所述编码单元,那么(i)在所述编码区域内选择性地定义侧参考像素,所述侧参考像素具有与所述侧参考像素相关联的侧x和侧y坐标;(ii)在所述编码区域内选择性地定义主参考像素,所述主参考像素具有与所述主参考像素相关联的主x和主y坐标;(iii)选择性地确定与所述主参考像素相关联的主权重值;(iv)选择性地确定与所述侧参考像素相关联的侧权重值;(v)至少部分地基于与所述主权重值组合的所述主参考像素和与所述侧权重值组合的所述侧参考像素中的至少一个,为所述编码单元生成预测cu;(vi)其中,所述预测cu基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的生成后滤波被滤波,随后被递送用于熵解码;(c)确定如果将不使用用于所述帧内预测的对于所述特定角度的所述加权角度预测来解码所述编码单元,那么(i)至少部分地基于另一预测为所述编码单元生成预测cu;(ii)其中,至少部分地基于所述另一预测的所述生成不基于由所述主权重值加权的所述主参考像素和由所述侧权重值加权的所述侧参考像素中的所述至少一个;(iii)其中,所述预测cu没有基于在所述为所述编码单元生成所述预测cu之后使用位置相关预测组合(pdpc)的所述生成后滤波被滤波;(iv)其中,没有基于使用所述位置相关预测组合(pdpc)的所述生成后滤波被滤波的所述预测cu随后被递送用于熵解码。

技术总结
对视频编码、解码的方法和计算机可读存储器或存储装置。对视频编码的方法包括在视频帧的编码区域内定义具有CU x和CU y坐标的基于包括四叉树划分的编码树单元的矩形编码单元CU;确定若将使用用于帧内预测的对特定角度的加权角度预测来编码则选择性定义侧和主参考像素、选择性确定主和侧权重值,生成预测CU,基于生成后滤波滤波预测CU并递送用于熵编码;确定若将不使用用于帧内预测的对特定角度的加权角度预测来编码则至少部分基于另一预测生成预测CU;至少部分基于另一预测的生成不基于加权的主参考像素和加权的侧参考像素中的至少一个;预测CU没有基于生成后滤波被滤波;递送没有被滤波的预测CU用于熵编码。送没有被滤波的预测CU用于熵编码。送没有被滤波的预测CU用于熵编码。


技术研发人员:克里特
受保护的技术使用者:艾锐势有限责任公司
技术研发日:2018.07.05
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐