首页> 中国专利> 利用多行的线性模型模式参数推导

利用多行的线性模型模式参数推导

摘要

描述了用于数字视频编解码的设备、系统和方法,包括利用多行推导线性模型(LM)模式参数。在代表性方面,一种用于视频处理的方法包括:为视频和视频的比特流表示之间的转换,确定多行亮度样点,用于推导用于预测色度块的样点的跨分量线性模型的参数;以及基于色度块的预测样点来执行转换,其中,多行中的至少一行与和色度块并置的亮度块不相邻。

著录项

  • 公开/公告号CN113875244A

    专利类型发明专利

  • 公开/公告日2021-12-31

    原文格式PDF

  • 申请/专利号CN202080038096.4

  • 发明设计人 张凯;张莉;刘鸿彬;王悦;

    申请日2020-05-22

  • 分类号H04N19/132(20060101);H04N19/186(20060101);H04N19/184(20060101);H04N19/117(20060101);H04N19/593(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张亮

  • 地址 100041 北京市石景山区实兴大街30号院3号楼2层B-0035房间

  • 入库时间 2023-06-19 13:27:45

说明书

相关申请的交叉引用

根据适用的专利法和/或依据巴黎公约的规则,本申请旨在及时要求于2019年5月22日提交的国际专利申请第PCT/CN2019/088005号的优先权和利益。出于法律规定的所有目的,前述申请的全部公开通过引用并入作为本申请的公开的一部分。

技术领域

本专利文档涉及视频编解码技术、设备和系统。

背景技术

尽管视频压缩有所进步,但数字视频仍然占据互联网和其他数字通信网络中的最大带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。

发明内容

描述了与数字视频编解码和解码相关的设备、系统和方法,具体地,描述了视频编解码中利用多行的线性模型(Linear Model,LM)模式参数的推导。所描述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(High Efficiency Video Coding,HEVC))和未来的视频编解码标准(例如,通用视频编解码(Versatile Video Coding,VVC))两者或编解码器。

在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该示例方法包括:为视频和视频的比特流表示之间的转换,确定多行亮度样点,用于推导用于预测色度块的样点的跨分量线性模型的参数;以及基于色度块的预测样点来执行转换,其中,多行中的至少一行与和色度块并置的亮度块不相邻。

在另一代表性方面,上述方法以处理器可执行代码的形式体现,并存储在计算机可读程序介质中。

在又一代表性方面,公开了一种被配置或可操作来执行上述方法的设备。该设备可以包括被编程来实施该方法的处理器。

在又一代表性方面,视频解码器装置可以实施如本文描述的方法。

在附图、说明书和权利要求中更详细地描述了所公开的技术的上述和其他方面和特征。

附图说明

图1示出了用于推导用于跨分量预测的线性模型的权重的样点的位置的示例。

图2示出了将临近样点分类为两组的示例。

图3A示出了色度样点及其对应的亮度样点的示例。

图3B示出了联合探索模型(Joint Exploration Model,JEM)中的跨分量线性模型(Cross-Component Linear Model,CCLM)的下滤波的示例。

图4示出了对应于单个色度样点的四个亮度样点的示例性布置。

图5A和图5B示出了具有临近样点的4×4色度块的样点和对应的亮度样点的示例。

图6A-图6J示出了没有亮度样点下滤波的CCLM的示例。

图7A-图7D示出了仅需要在正常帧内预测中使用的临近亮度样点的CCLM的示例。

图8A和图8B示出了编解码树单元(Coding Tree Unit,CTU)的边界处的编解码单元(Coding Unit,CU)的示例。

图9示出了67种帧内预测模式的示例。

图10A和图10B示出了非正方形块的宽角度帧内预测模式的参考样点的示例。

图11示出了当使用宽角度帧内预测时的不连续性的示例。

图12A-图12D示出了位置相关的帧内预测组合(Position-Dependent IntraPrediction Combination,PDPC)方法所使用的样点的示例。

图13A和图13B示出了当前块内部和外部的降采样后的亮度样点位置的示例。

图14示出了将不同的亮度降采样方法组合在一起的示例。

图15A-图15H示出了在CCLM中使用的临近样点的示例。

图16A和图16B示出了如何对当前块左侧的亮度样点进行降采样以推导CCLM中的参数的示例。

图17A和图17B示出了具有单行临近亮度样点的线性模型(LM)预测的示例。

图18A-图18C示出了基于当前块的高度和宽度使用不同数量的临近亮度样点的示例。

图19示出了根据所公开的技术的用于跨分量预测的又一示例方法的流程图。

图20是用于实施本文档中描述的可视媒体解码或可视媒体编码技术的硬件平台的示例的框图。

图21是其中可以实施所公开的技术的示例视频处理系统的框图。

具体实施方式

由于对更高分辨率视频的需求日益增长,视频编解码方法和技术在现代技术中无处不在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且正在不断改进以提供更高的编解码效率。视频编解码器将未压缩的视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和误差的敏感性、编辑的简易性、随机访问和端到端时延(延迟)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如高效视频编解码(HEVC)标准(也称为H.265或MPEG-HPart 2)、待定稿的通用视频编解码(VVC)标准或其他当前和/或未来的视频编解码标准。

所公开的技术的实施例可以应用于现有的视频编解码标准(例如,HEVC、H.265)和未来的标准,以提高运行时性能。在本文档中使用章节标题来提高描述的可读性,并且不以任何方式将讨论或实施例(和/或实施方式)仅限制于各个章节。

1跨分量预测的实施例

跨分量预测是色度到亮度(chroma-to-luma)预测方法的一种形式,其在复杂度和压缩效率提高之间具有良好平衡的折衷。

1.1跨分量线性模型(CCLM)的示例

在一些实施例中,为了减少跨分量冗余,在JEM中使用跨分量线性模型(CCLM)预测模式(也称为LM),对于该模式,通过使用如下线性模型,基于相同CU的重构亮度样点来预测色度样点:

pred

这里,pred

以及

这里,L(n)表示降采样后的(对于颜色格式4∶2∶0或4∶2∶2)或原始的(对于颜色格式4∶4∶4)上方和左侧临近重构亮度样点,C(n)表示上方和左侧临近重构色度样点,并且N的值等于当前色度编解码块的宽度和高度中的最小值的两倍。

在一些实施例中,对于具有正方形形状的编解码块,上述两个等式被直接应用。在其他实施例中,对于非正方形编解码块,较长边界的临近样点首先被二次采样,以具有与较短边界相同数量的样点。图1示出了左侧和上方重构样点的位置以及CCLM模式中涉及的当前块的样点。

在一些实施例中,这种回归误差最小化计算是作为解码过程的一部分来执行的,而不仅仅是作为编码器搜索操作,因此不使用语法来传达α和β值。

在一些实施例中,CCLM预测模式还包括两个色度分量之间的预测,例如,从Cb(蓝差)分量预测Cr(红差)分量。代替使用重构样点信令,在残差域中应用CCLM Cb到Cr预测。这是通过将加权重构Cb残差添加到原始Cr帧内预测以形成最终Cr预测来实施的:

这里,resi

在一些实施例中,缩放因子α可以以与CCLM亮度到色度预测中类似的方式推导。唯一的不同是在误差函数中相对于默认α值增加了回归成本,使得推导的缩放因子偏向于默认值-0.5,如下所示:

这里,Cb(n)表示临近重构Cb样点,Cr(n)表示临近重构Cr样点,并且λ等于∑(Cb(n)·Cb(n))>>9。

在一些实施例中,CCLM亮度到色度预测模式被增加作为一种附加的色度帧内预测模式。在编码器侧,为选择色度帧内预测模式,增加了一个色度分量的RD代价检查。当除CCLM亮度到色度预测模式之外的帧内预测模式被用于CU的色度分量时,CCLM Cb到Cr预测被用于Cr分量预测。

在JEM和VTM-2.0中,CCLM的训练样点的总数必须是2N的形式。假设当前块尺寸为W×H。如果W不等于H,则具有较多样点的降采样后的亮度样点集被抽取,以匹配具有较少样点的降采样后的亮度样点集中的样点数量。

1.2多模型CCLM的示例

在JEM中,有两种CCLM模式:单模型CCLM模式和多模型CCLM模式(MMLM)。如名称所示,单模型CCLM模式对整个CU采用一个线性模型来从亮度样点预测色度样点,而在MMLM中,可以有两个模型。

在MMLM中,当前块的临近亮度样点和临近色度样点被分类为两组,每组被用作训练集以推导线性模型(即,对特定组推导特定的α和β)。此外,当前亮度块的样点也基于用于临近亮度样点分类的相同规则来分类。

图2示出了将临近样点分类为两组的示例。阈值(Threshold)被计算为临近重构亮度样点的平均值。Rec′

1.3 CCLM中的降采样滤波器的示例

在一些实施例中,为了执行跨分量预测,对于4:2:0色度格式,其中4个亮度样点对应于1个色度样点,重构亮度块需要被降采样以匹配色度信令的尺寸。CCLM模式中使用的默认降采样滤波器如下:

这里,对于色度样点的位置相对于亮度样点的位置,降采样假设如图3A所示的“类型0”相位关系,例如,水平并置采样和垂直间隙采样。

在(6)中定义的示例性6抽头降采样滤波器被用作单模型CCLM模式和多模型CCLM模式两者的默认滤波器。

在一些实施例中,对于MMLM模式,编码器可以可替代地选择四个附加亮度降采样滤波器中的一个来应用于CU中的预测,并且发送滤波器索引来指示使用这些滤波器中的哪一个。如图3B所示,MMLM模式的四个可选亮度降采样滤波器如下:

Rec'

Rec'

Rec'

Rec'

1.4与跨分量预测相关的示例性实施例

先前提出的CCLM方法包括但不限于:

·仅需要在正常帧内预测中使用的临近亮度样点;和

·不需要对亮度样点进行降采样,或者通过简单的双样点平均来执行降采样。

下面描述的先前提出的示例假设颜色格式为4:2:0。如图3A所示,一个色度(Cb或Cr)样点(由三角形表示)对应于四个亮度(Y)样点(由圆圈表示):如图4所示的A、B、C和D。图5示出了具有临近样点的4×4色度块的样点和对应的亮度样点的示例。

(a)在一个示例中,在CCLM参数(例如,α和β)推导过程中移除了临近亮度样点的降采样过程。替代地,降采样过程由其中利用了非连续的亮度样点的二次采样过程代替。

(b)在一个示例中,在CCLM色度预测过程中移除了并置亮度块中的样点的降采样过程。替代地,仅使用并置亮度块中的部分亮度样点来推导色度样点的预测块。

(c)图6A-图6J示出了对应于4×4色度块的8×8亮度块的示例。

(d)在如图6A所示的一个示例中,图4中位置“C”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点来推导线性模型。

(e)在如图6B所示的一个示例中,图4中位置“C”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点和右上方临近样点来推导线性模型。

(f)在如图6C所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点来推导线性模型。

(g)在如图6D所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点和右上方临近样点来推导线性模型。

(h)在如图6E所示的一个示例中,图4中位置“B”处的亮度样点用于对应于色度样点。在训练过程中使用左侧临近样点来推导线性模型。

(i)在如图6F所示的一个示例中,图4中位置“B”处的亮度样点用于对应于色度样点。在训练过程中使用左侧临近样点和左下方临近样点来推导线性模型。

(j)在如图6G所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用左侧临近样点来推导线性模型。

(k)在如图6H所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用左侧临近样点和左下方临近样点来推导线性模型。

(l)在如图6I所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点和左侧临近样点来推导线性模型。

(m)在如图6J所示的一个示例中,图4中位置“D”处的亮度样点用于对应于色度样点。在训练过程中使用上方临近样点、左侧临近样点、右上方临近样点和左下方临近样点来推导线性模型。

(a)在如图7A所示的一个示例中,图4中位置“C”和位置“D”处的亮度样点被滤波为F(C,D),以用于对应于色度样点。在训练过程中使用上方临近样点来推导线性模型。

(b)在如图7B所示的一个示例中,图4中位置“C”和位置“D”处的亮度样点被滤波为F(C,D),以用于对应于色度样点。在训练过程中使用上方临近样点和右上方临近样点来推导线性模型。

(c)在如图7C所示的一个示例中,图4中位置“B”和位置“D”处的亮度样点被滤波为F(B,D),以用于对应于色度样点。在训练过程中使用左侧临近样点来推导线性模型。

(d)在如图7D所示的一个示例中,图4中位置“B”和位置“D”处的亮度样点被滤波为F(B,D),以用于对应于色度样点。在训练过程中使用左侧临近样点和左下方临近样点来推导线性模型。

(e)在一个示例中,F被定义为F(X,Y)=(X+Y)>>1。可替代地,F(X,Y)=(X+Y+1)>>1。

(a)在一个实施例中,编码器从预定义的候选集中选择一种先前提出的CCLM方法,并将其信令通知给解码器。

(i)例如,编码器可以在示例1(a)和示例1(e)之间进行选择。可替代地,其可以在示例1(b)和示例1(f)之间进行选择。可替代地,其可以在示例1(c)和示例1(g)之间进行选择。可替代地,其可以在示例1(d)和示例1(h)之间进行选择。可替代地,其可以在示例2(a)和示例2(c)之间进行选择。可替代地,其可以在示例2(b)和示例2(d)之间进行选择。

(ii)要从中选择的候选集和信令可以取决于块的形状或尺寸。假设W和H表示色度块的宽度和高度,T1和T2为整数。

(1)在一个示例中,如果W<=T1并且H<=T2,则不存在候选,例如,CCLM被禁用。例如,T1=T2=2。

(2)在一个示例中,如果W<=T1或H<=T2,则不存在候选,例如,CCLM被禁用。例如,T1=T2=2。

(3)在一个示例中,如果W×H<=T1,则不存在候选,例如,CCLM被禁用。例如,T1=4。

(4)在一个示例中,如果W<=T1并且H<=T2,则只存在一个候选,诸如示例1(i)。不信令通知CCLM方法选择信息。例如,T1=T2=4。

(5)在一个示例中,如果W<=T1或H<=T2,则只存在一个候选,诸如示例1(i)。不信令通知CCLM方法选择信息。例如,T1=T2=4。

(6)在一个示例中,如果W×H<=T1,则只存在一个候选,诸如示例1(i)。不信令通知CCLM方法选择信息。例如,T1=16。

(7)在一个示例中,如果W>H,则只存在一个候选,诸如示例1(a)。不信令通知CCLM方法选择信息。可替代地,如果W>H(或W>N*H,其中N为正整数),则只有在推导CCLM参数中使用上方临近重构样点或/和右上方临近重构样点的候选(或一些候选)被包括在候选集中。

(8)在一个示例中,如果W

(b)在一个实施例中,编码器和解码器两者都基于相同的规则选择先前提出的CCLM方法。编码器不将其信令通知给解码器。例如,选择可以取决于块的形状或尺寸。在一个示例中,如果宽度大于高度,则选择示例1(a),否则,选择示例1(e)。

(c)可以以序列参数集/图片参数集/条带头/CTU/CTB/CTU组信令通知一个或多个先前提出的CCLM候选集。

(a)可替代地,可以首先从多个选择的CCLM方法中推导多个CCLM参数(例如,α和β)集。可以从多个集合中推导一个最终CCLM参数集,并用于色度预测块生成过程。

(b)多种CCLM方法的选择可以以示例3中所述的类似方式来信令通知(隐式地或显式地)。

(c)可以以序列参数集/图片参数集/条带头/CTU组/CTU/编解码块信令通知提出的方法的使用的指示。

(a)在一个示例中,一个或多个提出的方法被应用于位于当前CTU的上边界处的CU,如图8A所示。

(b)在一个示例中,一个或多个提出的方法被应用于位于当前CTU的左边界处的CU,如图8B所示。

(c)在一个示例中,一个或多个提出的方法被应用于上述两种情况中。

1.5 VVC中的CCLM的示例

在一些实施例中,在VTM-2.0中采用如JEM中的CCLM,但在VTM-2.0中不采用JEM中的MM-CCLM。

VTM-5.0中的CCLM

在VTM-5.0中,除了LM模式之外,还采用了在JVET-L0338中提出的另外两种CCLM模式(LM-A和LM-T)。LM-A仅使用当前块上方或右上方的临近样点来推导CCLM参数,而LM-T仅使用当前块左侧或左下方的临近样点来推导CCLM参数。

CCLM的解码过程

在VTM-5.0中,LM推导过程被简化为在JVET-N0271中提出的4点最大最小(4-pointmax-min)方法。对应的工作草案如下所示。

INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范

该过程的输入是:

–帧内预测模式predModeIntra,

–当前变换块的左上方样点相对于当前图片的左上方样点的样点位置(xTbC,yTbC),

–指定变换块宽度的变量nTbW,

–指定变换块高度的变量nTbH,

–色度临近样点p[x][y],其中x=-1,y=0..2*nTbH–1并且x=0..2*nTbW–1,y=-1。

该过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。

当前亮度位置(xTbY,yTbY)推导如下:

(xTbY,yTbY)=(xTbC<<1,yTbC<<1) (8-156)

变量availL、availT和availTL的推导如下:

–以当前色度位置(xCurr,yCurr)被设置为等于(xTbC,yTbC)以及临近色度位置(xTbC-1,yTbC)作为输入来调用条款6.4.X中规定的块的左侧临近样点的可用性推导过程[Ed.(BB):临近块可用性检查过程tbd],并且输出被分配给availL。

–以当前色度位置(xCurr,yCurr)被设置为等于(xTbC,yTbC)以及临近色度位置(xTbC,YTbC-1)作为输入来调用条款6.4.X中规定的块的上方临近样点的可用性推导过程[Ed.(BB):临近块可用性检查过程tbd],并且输出被分配给availT。

–以当前色度位置(xCurr,yCurr)被设置为等于(xTbC,yTbC)以及临近色度位置(XTbC-1,YTbC-1)作为输入来调用条款6.4.X中规定的块的左上方临近样点的可用性推导过程[Ed.(BB):临近块可用性检查过程tbd],并且输出被分配给availTL。

–可用的右上方临近色度样点的数量numTopRight推导如下:

–变量numTopRight被设置为等于0,并且availTR被设置为等于真(TRUE)。

–当predModeIntra等于INTRA_T_CCLM时,对于x=nTbW..2*nTbW-1,以下适用,直到availTR等于假(FALSE)或x等于2*nTbW-1:

–以当前色度位置(xCurr,yCurr)被设置为等于(xTbC,yTbC)以及临近色度位置(xTbC+x,yTbC-1)作为输入来调用条款6.4.X中规定的块的可用性推导过程[Ed.(BB):临近块可用性检查过程tbd],并且输出被分配给availableTR

–当“availableTR”等于TRUE时,numTopRight增加1。

–可用的左下方临近色度样点的数量numLeftBelow推导如下:

–变量numLeftBelow被设置为等于0,并且availLB被设置为等于TRUE。

–当predModeIntra等于INTRA_L_CCLM时,对于y=nTbH..2*nTbH-1,以下适用,直到availLB等于FALSE或y等于2*nTbH-1:

–以当前色度位置(xCurr,yCurr)被设置为等于(xTbC,yTbC)以及临近色度位置(xTbC-1,yTbC+y)作为输入来调用条款6.4.X中规定的块的可用性推导过程[Ed.(BB):临近块可用性检查过程tbd],并且输出被分配给availableLB

–当availableLB等于TRUE时,numLeftBelow增加1。

上方和右上方的可用临近色度样点的数量numTopSamp以及左侧和左下方的可用临近色度样点的数量nLeftSamp推导如下:

–如果predModeIntra等于INTRA_LT_CCLM,则以下适用:

numSampT=availT?nTbW:0 (8-157)

numSampL=availL?nTbH:0 (8-158)

–否则,以下适用:

numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?

(nTbW+Min(numTopRight,nTbH)):0 (8-159)

numSampL=

(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (8-160)

变量bCTUboundary推导如下:

bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)?

TRUE:FALSE。 (8-161)

变量cntN和阵列pickPosN(其中N由L和T替换)推导如下:

–变量numIs4N被设置为等于((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)。

–变量startPosN被设置为等于numSampN>>(2+numIs4N)。

–变量pickStepN被设置为等于Max(1,numSampN>>(1+numIs4N))。

–如果availN等于TRUE,并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:

–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)

–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。

–否则,cntN被设置为等于0。

预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1,推导如下:

–如果numSampL和numSampT都等于0,则以下适用:

predSamples[x][y]=1<<(BitDepth

–否则,以下有序步骤适用:

1.并置亮度样点pY[x][y](其中,x=0..nTbW*2–1,y=0..nTbH*2–1)被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

2.临近亮度样点pY[x][y]推导如下:

–当numSampL大于0时,临近左侧亮度样点pY[x][y](其中,x=-1..-3,y=0..2*numSampL-1)被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

–当numSampT大于0时,临近上方亮度样点pY[x][y](其中,x=0..2*numSampT-1,y=-1,-2)被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

–当availTL等于TRUE时,临近左上方亮度样点pY[x][y](其中,x=-1,y=-1,-2)被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

3.降采样后的并置亮度样点pDsY[x][y],其中,x=0..nTbW-1,y=0..nTbH–1,推导如下:

–如果sps_cclm_colocated_chroma_flag等于1,则以下适用:

–pDsY[x][y](其中,x=1..nTbW-1,y=1..nTbH-1)推导如下:

pDsY[x][y]=(pY[2*x][2*y-1]+

pY[2*x-1][2*y]+4*pY[2*x][2*y]+pY[2*x+1][2*y]+

pY[2*x][2*y+1]+4)>>3 (8-163)

–如果availL等于TRUE,则pDsY[0][y],其中,y=1..nTbH–1,推导如下:

–否则,pDsY[0][y](其中,y=1..nTbH-1)推导如下:

pDsY[0][y]=(pY[0][2*y-1]+2*pY[0][2*y]+pY[0][2*y+1]+2)>>2 (8-165)

–如果availT等于TURE,则pDsY[x][0],其中,x=1..nTbW–1,推导如下:

–否则,pDsY[x][0],其中,x=1..nTbW–1,推导如下:

pDsY[x][0]=(pY[2*x-1][0]+2*pY[2*x][0]+pY[2*x+1][0]+2)>>2 (8-167)

–如果availL等于TURE并且availT等于TURE,则pDsY[0][0]推导如下:

–否则,如果availL等于TURE并且availT等于FALSE,则pDsY[0][0]推导如下:

pDsY[0][0]=(pY[-1][0]+2*pY[0][0]+pY[1][0]+2)>>2 (8-169)

–否则,如果availL等于FALSE并且availT等于TURE,则pDsY[0][0]推导如下:

pDsY[0][0]=(pY[0][-1]+2*pY[0][0]+pY[0][1]+2)>>2 (8-170)

–否则(availL等于FALSE并且availT等于FALSE),pDsY[0][0]推导如下:

pDsY[0][0]=pY[0][0] (8-171)–否则,以下适用:

–pDsY[x][y],其中,x=1..nTbW-1,y=0..nTbH–1,推导如下:

pDsY[x][y]=(pY[2*x-1][2*y]+pY[2*x-1][2*y+1]+2*pY[2*x][2*y]+2*pY[2*x][2*y+1]+pY[2*x+1][2*y]+pY[2*x+1][2*y+1]+4)>>3 (8-172)

–如果availL等于TURE,则pDsY[0][y],其中,y=0..nTbH–1,推导如下:

pDsY[0][y]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[0][2*y]+2*pY[0][2*y+1]+pY[1][2*y]+pY[1][2*y+1]+4)>>3 (8-173)

–否则,pDsY[0][y],其中,y=0..nTbH–1,推导如下:pDsY[0][y]=(pY[0][2*y]+pY[0][2*y+1]+1)>>1 (8-174)

4.当numSampL大于0时,选择的临近左侧色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中,idx=0..cntL–1),并且选择的降采样后的临近左侧亮度样点pSelDsY[idx],其中,

idx=0..cntL–1,推导如下:

–变量y被设置为等于pickPosL[idx]。

–如果sps_cclm_colocated_chroma_flag等于1,则以下适用:

–如果y大于0或availTL等于TRUE,则pSelDsY[idx]推导如下:

pSelDsY[idx]=(pY[-2][2*y-1]+pY[-3][2*y]+4*pY[-2][2*y]+pY[-1][2*y]+pY[-2][2*y+1]+4)>>3 (8-175)

–否则:

pSelDsY[idx]=(pY[-3][0]+2*pY[-2][0]+pY[-1][0]+2)>>2 (8-177)

–否则,以下适用:

pSelDsY[idx]=(pY[-1][2*y]+pY[-1][2*y+1]+2*pY[-2][2*y]+2*pY[-2][2*y+1]+pY[-3][2*y]+pY[-3][2*y+1]+4)>>3 (8-178)

5.当numSampT大于0时,选择的临近上方色度样点pSelC[idx]被设置为等于p[pickPosT[idx–cntL]][-1],其中,idx=cntL..cntL+cntT–1,并且降采样后的临近上方亮度样点pSelDsY[idx],其中,idx=0..cntL+cntT–1,指定如下:

–变量x被设置为等于pickPosT[idx–cntL]。

–如果sps_cclm_colocated_chroma_flag等于1,则以下适用:

–如果x大于0,则以下适用:

–如果bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[2*x][-3]+pY[2*x-1][-2]+4*pY[2*x][-2]+pY[2*x+1][-2]+pY[2*x][-1]+4)>>3 (8-179)

–否则(bCTUboundary等于TRUE),以下适用:pSelDsY[idx]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2 (8-180)

–否则:

–如果availTL等于TRUE,并且bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[0][-3]+pY[-1][-2]+4*pY[0][-2]+pY[1][-2]+pY[0][-1]+4)>>3 (8-181)

–否则,如果availTL等于TRUE,并且bCTUboundary等于TRUE,则以下适用:

pSelDsY[idx]=(pY[-1][-1]+2*pY[0][-1]+pY[1][-1]+2)>>2 (8-182)

–否则,如果availTL等于FALSE,并且bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[0][-3]+2*pY[0][-2]+pY[0][-1]+2)>>2 (8-183)

–否则(availTL等于FALSE,并且bCTUboundary等于TRUE),以下适用:

pSelDsY[idx]=pY[0][-1] (8-184)

–否则,以下适用:

–如果x大于0,则以下适用:

–如果bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[2*x-1][-2]+pY[2*x-1][-1]+2*pY[2*x][-2]+2*pY[2*x][-1]+pY[2*x+1][-2]+pY[2*x+1][-1]+4)>>3 (8-185)

–否则(bCTUboundary等于TRUE),以下适用:

pSelDsY[idx]=(pY[2*x-1][-1]+2*pY[2*x][-1]+pY[2*x+1][-1]+2)>>2 (8-186)

–否则:

–如果availTL等于TRUE,并且bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[-1][-2]+pY[-1][-1]+2*pY[0][-2]+2*pY[0][-1]+pY[1][-2]+pY[1][-1]+4)>>3 (8-187)

–否则,如果availTL等于TRUE,并且bCTUboundary等于TRUE,则以下适用:

pSelDsY[idx]=(pY[-1][-1]+2*pY[0][-1]+pY[1][-1]+2)>>2 (8-188)

–否则,如果availTL等于FALSE,并且bCTUboundary等于FALSE,则以下适用:

pSelDsY[idx]=(pY[0][-2]+pY[0][-1]+1)>>1 (8-189)

–否则(availTL等于FALSE,并且bCTUboundary等于TRUE),以下适用:

pSelDsY[idx]=pY[0][-1] (8-190)6.当cntT+cntL不等于0时,变量minY、maxY、minC和maxC推导如下:

–当cntT+cntL等于2时,将pSelComp[3]设置为等于pSelComp[0],pSelComp[2]设置为等于pSelComp[1],pSelComp[0]设置为等于pSelComp[1],pSelComp[1]设置为等于pSelComp[3],其中Comp由DsY和C替换。

–阵列minGrpIdx和maxGrpIdx设置如下:

–minGrpIdx[0]=0。

–minGrpIdx[1]=2。

–maxGrpIdx[0]=1。

–maxGrpIdx[1]=3。

–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]交换为(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1])。

–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]交换为(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1])。

–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,阵列minGrpIdx和maxGrpIdx交换为(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx)。

–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]交换为(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0])。

–maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1。

–maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1。

–minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1。

–minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1。

7.变量a、b和k推导如下:

–如果numSampL等于0,并且numSampT等于0,则以下适用:

k=0 (8-208)

a=0 (8-209)

b=1<<(BitDepth

–否则,以下适用:

diff=maxY–minY (8-211)

–如果diff不等于0,则以下适用:

diffC=maxC-minC (8-212)

x=Floor(Log2(diff)) (8-213)

normDiff=((diff<<4)>>x)&15 (8-214)

x+=(normDiff!=0)?1:0 (8-215)

y=Floor(Log2(Abs(diffC)))+1 (8-216)

a=(diffC*(divSigTable[normDiff]|8)+2

k=((3+x-y)<1)?1:3+x-y (8-218)

a=((3+x-y)<1)?Sign(a)*15:a (8-219)

b=minC-((a*minY)>>k) (8-220)

其中,divSigTable[]指定如下:

divSigTable[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,1,0} (8-221)

–否则(diff等于0),以下适用:

k=0 (8-222)

a=0 (8-223)

b=minC (8-224)

8.预测样点predSamples[x][y],其中,x=0..nTbW-1,y=0..

nTbH–1,推导如下:

predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b) (8-225)

JVET-L0283

该提案提出了多参考行帧内预测(Multiple Reference Line IntraPrediction,MRLIP),其中可以通过使用与当前块相邻或不相邻的多于一行的参考行的临近样点来生成方向帧内预测。

1.6 VVC中的帧内预测的示例

1.6.1利用67种帧内预测模式的帧内模式编解码

为了捕捉自然视频中呈现的任意边缘方向,方向帧内模式的数量从如HEVC中使用的33扩展到65。附加的方向模式在图9中用虚线箭头描绘,而平面和DC模式保持不变。这些更密集的方向帧内预测模式适用于所有块尺寸以及亮度和色度帧内预测两者。

如图9所示,传统的角度帧内预测方向被定义为顺时针方向从45度到-135度。在VTM2中,对于非正方形块,几种传统的角度帧内预测模式被适应性地替换为宽角度帧内预测模式。替换后的模式使用原始方法信令通知,并在解析之后重新映射到宽角度模式的索引。帧内预测模式的总数不变(例如,67),并且帧内模式编解码不变。

在HEVC中,每个帧内编解码块都具有正方形形状,并且其每条边的长度是2的幂。因此,使用DC模式生成帧内预测值不需要除法运算。在VTV2中,块可以具有矩形形状,这在一般情况下需要对每个块使用除法运算。为了避免DC预测的除法运算,仅使用较长的边来计算非正方形块的平均。

1.6.2帧内模式编解码的示例

在一些实施例中,为了保持MPM列表生成的复杂度低,使用具有3个最可能模式(Most Probable Mode,MPM)的帧内模式编解码方法。MPM列表考虑了以下三个方面:

--临近帧内模式;

--推导的帧内模式;和

--默认帧内模式。

对于临近帧内模式(A和B),考虑位于左侧和上方的两个临近块。通过对两个临近帧内模式执行修剪过程来形成初始MPM列表。如果两个临近模式彼此不同,则在对现有的两个MPM进行修剪检查之后,将默认模式(例如,PLANA(0)、DC(1)、ANGULAR50(例如,50))之一添加到MPM列表。当两个临近模式相同时,在修剪检查之后,将默认模式或推导的模式添加到MPM列表。三个MPM列表的详细生成过程如下:

如果两个临近候选模式(即,A==B)相同,

如果A小于2,则candModeList[3]={0,1,50}。

否则,candModeList[0]={A,2+((A+61)%64),2+((A-1)%64)}

否则,

如果A和B都不等于0,则candModeList[3]={A,B,0}。

否则,如果A和B都不等于1,则candModeList[3]={A,B,1}。

否则,candModeList[3]={A,B,50}。

使用附加的修剪过程来移除重复的模式,使得只有唯一的模式可以被包括在MPM列表中。对于64个非MPM模式的熵编解码,使用6比特固定长度码(Fixed Length Code,FLC)。

1.6.3非正方形块的宽角度帧内预测

在一些实施例中,传统的角度帧内预测方向被定义为顺时针方向从45度到-135度。在VTM2中,对于非正方形块,几种传统的角度帧内预测模式被适应性地替换为宽角度帧内预测模式。替换后的模式使用原始方法信令通知,并在解析之后重新映射到宽角度模式的索引。特定块的帧内预测模式的总数不变,例如67,并且帧内模式编解码不变。

为了支持这些预测方向,长度为2W+1的上方参考和长度为2H+1的左侧参考被定义为如图10A和图10B中的示例所示。

在一些实施例中,宽角度方向模式中的替换后的模式的模式数量取决于块的宽高比。替换后的帧内预测模式在表1中示出。

表1:由宽角度模式替换的帧内预测模式

如图11所示,在宽角度帧内预测的情况下,两个垂直相邻的预测样点可以使用两个非相邻的参考样点。因此,低通参考样点滤波和边平滑被应用于宽角度预测,以减少增加的间隙Δp

1.6.4位置相关的帧内预测组合(PDPC)的示例

在VTM2中,平面模式的帧内预测的结果通过位置相关的帧内预测组合(PDPC)方法进一步修改。PDPC是一种帧内预测方法,其调用未滤波的边界参考样点和利用滤波后的边界参考样点的HEVC风格(style)帧内预测的组合。PDPC应用于以下帧内模式而无需信令通知:平面、DC、水平、垂直、左下角度模式及其八个相邻角度模式,以及右上角度模式及其八个相邻角度模式。

预测样点pred(x,y)是使用帧内预测模式(DC、平面、角度)和参考样点的线性组合根据以下等式预测的:

pred(x,y)=(wL×R

这里,R

在一些实施例中,如果PDPC应用于DC、平面、水平和垂直帧内模式,则不需要如在HEVC DC模式边界滤波器或水平/垂直模式边缘滤波器的情况中所需的附加的边界滤波器。

图12A-图12D示出了在各种预测模式上应用的PDPC的参考样点(R

在一些实施例中,PDPC权重取决于预测模式,并且在表2中示出,其中S=shift。

表2:根据预测模式的PDPC权重的示例

2通过所描述的技术解决的现有实施方式中的缺点的示例

JEM或VTM中的当前CCLM实施方式至少存在以下问题:

·在JEM的当前CCLM设计中,与在正常帧内预测中使用的相比,它需要更多的临近亮度样点。CCLM需要两个上方临近行的亮度样点和三个左侧临近列的亮度样点。MM-CCLM需要四个上方临近行的亮度样点和四个左侧临近列的亮度样点。这在硬件设计中是不可取的。

·其他相关方法仅使用一行临近的亮度样点,但他们会带来一些编解码性能损失。

·临近色度样点仅用于推导LM参数。当生成色度块的预测块时,仅利用亮度样点和推导的LM参数。因此,当前色度块与其临近色度块之间的空间相关性没有被利用。

在VTM-5.0中,CCLM(包括LM、LM-L、LM-T模式)可能只找到两个可用的临近色度样点(以及它们对应的可以被降采样的亮度样点)。这是4点最大最小CCLM参数推导过程中的特殊情况,这是不可取的。

3视频编解码中的跨分量预测的示例性方法

当前公开的技术的实施例克服现有实施方式的缺点,从而提供具有更高编解码效率但更低计算复杂度的视频编解码。基于所公开的技术的跨分量预测可以增强现有和未来两者的视频编解码标准,在以下针对各种实现方式描述的示例中进行阐述。下面提供的所公开的技术的示例解释了一般概念,并且不意味着被理解为限制。在示例中,除非明确指出相反的情况,否则这些示例中描述的各种特征可以被组合。

在以下示例和方法中,术语“LM方法”包括但不限于JEM或VTM中的LM模式以及JEM中的MMLM模式、仅使用左侧临近样点来推导线性模型的左LM模式、仅使用上方临近样点来推导线性模型的上LM模式或利用亮度重构样点来推导色度预测块的其他种类的方法。

(a)降采样后的亮度样点可以用于推导LM参数。这里,亮度块是一个色度块的对应亮度块。

(b)降采样后的亮度样点可以用于推导其他种类的色度预测块。这里,亮度块是一个色度块的对应亮度块。

(c)例如,当前块内部的亮度样点用与在JEM中相同的方法降采样,而当前块外部的亮度样点用不同的方法降采样。

(a)在一个示例中,降采样后的亮度样点可以用于推导预测块。这里,外部亮度样点可以是相对于要编解码的当前亮度块的临近亮度样点或非临近亮度样点。

(b)降采样后的亮度样点可以用于推导LM参数。这里,外部亮度样点是那些不位于当前色度块的对应亮度块中的样点。

(c)在一个示例中,以不同的方式对当前块左侧或当前块上方的亮度样点进行降采样。

(d)在一个示例中,亮度样点如下文指定的如图13A和图13B所示被降采样。

(i)以与在JEM中相同的方式对当前块内部的亮度样点进行降采样。

(ii)当前块外部和当前块上方的亮度样点被降采样到图4中的位置C或D。可替代地,利用滤波器将亮度样点降采样到图4中的位置C。假设与当前块相邻的上方亮度样点表示为a[i],则d[i]=(a[2i-1]+2*a[2i]+a[2i+1]+2)>>2,其中d[i]表示降采样后的亮度样点。

(1)如果样点a[2i-1]不可用,则d[i]=(3*a[2i]+a[2i+1]+2)>>2

(2)如果样点a[2i+1]不可用,则d[i]=(a[2i-1]+3*a[2i]+2)>>2

(iii)当前块外部和当前块左侧的亮度样点被降采样到图4中的位置B或D。可替代地,亮度样点被降采样到B和D之间的半位置处。假设与当前块相邻的亮度样点被表示为a[j],则d[j]=(a[2j]+a[2j+1]+1)>>1,其中d[j]表示降采样后的亮度样点。

(iv)在一个示例中,生成W个亮度降采样样点,其中W是当前色度块的宽度,如图13A所示。

(1)可替代地,从上方相邻亮度样点生成N×W个亮度降采样样点,其中N是诸如2的整数,如图13B所示。

(2)可替代地,从上方相邻亮度样点生成W+K个亮度降采样样点,其中K是正整数。

(3)可替代地,从上方相邻亮度样点生成W/N个亮度降采样样点,其中N是诸如2的整数。

(v)在一个示例中,从左侧相邻亮度样点生成H个亮度降采样样点,其中H是当前色度块的高度,如图13A所示。

(1)可替代地,生成N×H个亮度降采样样点,其中N是诸如2的整数,如图13B所示。

(2)可替代地,生成H+K个亮度降采样样点,其中K是正整数。

(3)可替代地,生成H/N个亮度降采样样点,其中N是诸如2的整数。

(a)在一个示例中,重构色度样点(临近或非临近色度样点)可以进一步与来自LM方法的预测块一起使用。

(i)在一个示例中,可以以临近重构色度样点和来自LM方法的预测块作为输入来应用线性函数,并且细化的预测样点作为输出。

(ii)在一个示例中,对于特定位置,来自LM方法的预测块可以被细化,而对于其余位置,来自LM方法的预测块可以被直接继承而不被细化。

(b)在一个示例中,可以生成两个预测块(例如,一个来自LM方法,并且另一个来自色度帧内预测块)。然而,对于特定位置,可以从两个预测块生成最终预测块,并且对于其余位置,可以从来自LM的预测块直接复制最终预测块。

(i)在一个示例中,色度帧内预测模式可以信令通知或者从亮度帧内预测模式推导。

(ii)在一个示例中,可以联合使用两个预测块的“特定位置”包括上方几行和/或左侧几列。

(c)例如,无论应用哪种降采样滤波器,边界滤波都可以应用于LM模式、MMLM模式、左LM模式或上LM模式。

(d)在一个示例中,来自LM方法的预测块和当前块上方的重构色度样点的函数可以一起用于细化来自LM方法的预测块。

(i)假设当前块的上方相邻的重构色度样点被表示为a[-1][j],第i行和第j列处的LM预测样点为a[i][j],则边界滤波之后的预测样点被计算为a[-1][j]和a[i][j]的函数。在一个示例中,对(i,j)位置的最终预测被定义为a’[i][j]=(w1*a[i][j]+w2*a[-1][i]+2

(ii)仅当上方临近样点可用时,才能应用边界滤波。

(iii)在一个示例中,仅当i<=K时才应用边界滤波。K是诸如0或1的整数。例如,K=0,w1=w2=1。在另一示例中,K=0,w1=3,w2=1。

(iv)在一个示例中,w1和w2取决于行索引(i)。例如,对于样点a[0][j],K=1,w1=w2=1,而对于样点a[1][j],w1=3并且w2=1。

(e)在一个示例中,来自LM方法的预测块和当前块左侧的重构色度样点的函数可以一起用于细化来自LM方法的预测块。

(i)假设与当前块相邻的上方重构色度样点被表示为a[i][-1],第i行和第j列处的LM预测样点为a[i][j],则边界滤波之后的预测样点被计算为a[i][-1]和a[i][j]的函数。在一个示例中,(i,j)位置的最终预测被定义为a’[i][j]=(w1*a[i][j]+w2*a[i][-1]+2

(ii)在一个示例中,仅当左侧临近样点可用时,才能应用边界滤波。

(iii)在一个示例中,仅当j<=K时才应用边界滤波。K是诸如0或1的整数。例如,K=0,w1=w2=1。在另一示例中,K=0,w1=3,w2=1。

(iv)在一个示例中,w1和w2取决于列索引(i)。例如,对于样点a[0][j],K=1,w1=w2=1,而对于样点a[1][j],w1=3并且w2=1。

(f)在一个示例中,来自LM方法的预测块和当前块左侧和上方的重构色度样点的函数可以一起用于细化来自LM方法的预测块。

(i)假设与当前块相邻的上方重构色度样点被表示为a[-1][j],与当前块相邻的左侧的重构色度样点被表示为a[i][-1],并且第i行和第j列处的LM预测样点是a[i][j],则边界滤波之后的预测样点被计算为a’[i][j]=(w1*a[i][j]+w2*a[i][-1]+w3*a[-1][j]+2

(ii)在一个示例中,仅当左侧和上方临近样点都可用时,才能应用边界滤波。

(iii)在一个示例中,仅当i<=K并且j<=P时才应用该边界滤波。在另一示例中,仅当i<=K或J<=P时才应用该边界滤波。

(iv)在一个示例中,该边界滤波仅应用于a[0][0],其中,w1=2,w2=w3=1。

(a)在一个示例中,当W<=T1并且H<=T2时,LM模式(或MMLM模式、或左LM模式、或上LM模式)不适用。例如,T1=T2=4。

(b)在一个示例中,当W<=T1或H<=T2时,LM模式(或MMLM模式、或左LM模式、或上LM模式)不适用。例如,T1=T2=2。

(c)在一个示例中,当W<=T1或H<=T2时,LM模式(或MMLM模式、或左LM模式、或上LM模式)不适用。例如,T1=T2=4。

(d)在一个示例中,当W+H<=T1时,LM(或MMLM模式、或左LM模式、或上LM模式)模式不适用。例如,T1=6。

(e)在一个示例中,当W×H<=T1时,LM模式(或MMLM模式、或左LM模式、或上LM模式)不适用。例如,T1=16。

(f)在一个示例中,当H<=T1时,左LM模式不适用。例如,T1=4。

(g)在一个示例中,当W<=T1时,上LM模式不适用。例如,T1=4。

(h)T1和/或T2可以预定义或以SPS、序列头、PPS、图片头、VPS、条带头、CTU、CU或CTU组信令通知。

(a)在一个示例中,一个或多个提出的方法被应用于位于当前CTU的上边界处的CU,如图8A所示。

(b)在一个示例中,一个或多个提出的方法被应用于位于当前CTU的左边界处的CU,如图8B所示。

(c)在一个示例中,一个或多个提出的方法被应用于上述两种情况中。

(d)在一个示例中,一个或多个提出的方法被应用于位于诸如64×64块的区域的上边界处的CU。

(e)在一个示例中,一个或多个提出的方法被应用于位于诸如64×64块的区域的左边界处的CU。

上面描述的示例可以被结合在下面描述的方法(例如,可以在视频编码器和/或解码器处实施的方法1400)的上下文中。

a.图14示出了如何将不同的降采样方法组合在一起的示例。

a.可替代地,如果i==0,则d[i]=a[2i]。

b.可替代地,如果i==0,则d[i]=(a[2i]+a[2i+1]+offset2)>>1。

c.在一个示例中,offset0=offset1=2;offset2=1。

a.例如,如果W==H,则当前块上方的W个亮度样点被降采样,并且当前块左侧的H个亮度样点被降采样;

b.例如,如果W==H,则当前块上方的2*W个亮度样点被降采样,并且当前块左侧的2*H个亮度样点被降采样;

c.例如,如果W

d.例如,如果W<=H,则当前块上方的2*W个亮度样点被降采样,并且当前块左侧的H个亮度样点被降采样;

e.例如,如果W>H,则当前块上方的2*W个亮度样点被降采样,并且当前块左侧的H个亮度样点被降采样;

f.例如,如果W>=H,则当前块上方的2*W个亮度样点被降采样,并且当前块左侧的H个亮度样点被降采样;

g.例如,如果W

h.例如,如果W<=H,则当前块上方的W个亮度样点被降采样,并且当前块左侧的2*H个亮度样点被降采样;

i.例如,如果W>H,则当前块上方的W个亮度样点被降采样,并且当前块左侧的2*H个亮度样点被降采样;

j.例如,如果W>=H,则当前块上方的W个亮度样点被降采样,并且当前块左侧的2*H个亮度样点被降采样;

k.例如,仅当上方临近块和右上方临近块都可用时,当前块上方的2*W个亮度样点才被降采样。否则,当前块上方的W个亮度样点被降采样。

l.例如,仅当左侧临近块和左下方临近块都可用时,当前块左侧的2*H个亮度样点才被降采样。否则,当前块上方的H个亮度样点被降采样。

m.假设当前块上方有W’(W’等于W或2*W)个降采样后的亮度样点,当前块上方有H’(H’等于H或2*H)个降采样后的亮度样点。如果W’不等于H’,则具有较多样点的降采样后的亮度样点集被抽取(decimate),以匹配具有较少样点的降采样后的亮度样点集中的样点数量,如JEM或VTM-2.0中所定义的。

a.例如,如果W>H,则在训练过程中涉及H个最左侧的上方临近样点和H个左侧临近样点。

b.例如,如果W>H,则在训练过程中涉及H个最右侧的上方临近样点和H个左侧临近样点。

c.例如,如果W>H,并且W=H*n,则在训练过程中涉及W个上方临近样点和H个左侧临近样点,并且每个左侧临近样点在训练过程中出现n次。

d.例如,如果W

e.例如,如果W

f.例如,如果W

a.不用于方向帧内预测和多参考行帧内预测(MRLIP)的亮度样点不能用于推导CCLM模式或CCLM模式的一些变体(如MM-CCLM或MDLM)中使用的参数。

b.在一个示例中,在上方与当前块相邻的一行亮度样点和当前块上方两行的一行亮度样点被用于推导在CCLM模式或CCLM模式的一些变体(如MM-CCLM或MDLM)中使用的参数。

c.一个示例中,在左侧与当前块相邻的一行亮度样点和当前块左侧两行的一行亮度样点被用于推导在CCLM模式或CCLM模式的一些变体(如MM-CCLM或MDLM)中使用的参数。

d.图15A-图15H示出了用于推导在CCLM模式或CCLM模式的一些变体(如MM-CCLM或MDLM)中使用的参数的临近亮度样点集的几个示例(当前块外部的阴影样点)。

示例12

当前块左侧的降采样后的亮度样点可以计算为

Rec′

w

其中w1+w2+w3+w4=2

a.在一个示例中,块可以指色度编解码块。

b.在一个示例中,如果一个或多个特定CCLM模式(诸如LM、LM-A、LM-T)不适用于块(例如,根据可用临近样点的数量和/或大小),则可以不信令通知指示(多个)特定CCLM模式的(多个)语法元素(诸如标志或模式表示),并且(多个)特定CCLM模式被推断为没有被应用。

c.在一个示例中,如果一个或多个特定CCLM模式(诸如LM、LM-A、LM-T)不适用于块(例如,根据可用临近样点的数量和/或大小),则可以信令通知指示(多个)CCLM模式的(多个)语法元素(诸如标志或模式表示),并且该(多个)语法元素应该指示(多个)CCLM模式没有被应用于一致性比特流中。

d.在一个示例中,如果一个或多个特定CCLM模式(诸如LM、LM-A、LM-T)不适用于块(例如,根据可用临近样点的数量和/或大小),则可以信令通知指示(多个)CCLM模式的(多个)语法元素(诸如标志或模式表示),但是该信令可以被解码器忽略,并且(多个)特定CCLM模式被推断为没有被应用。

e.在一个示例中,临近样点可以指色度临近样点。

i.可替代地,临近样点可以指可以被降采样(例如,根据颜色格式)的对应的亮度临近样点。

f.在一个示例中,如果一个或多个特定CCLM模式(诸如LM、LM-A、LM-T)不适用于块(例如,根据可用临近样点的数量和/或大小),但是信令通知特定CCLM模式,则以特定方式完成CCLM的参数推导过程。

i.在一个示例中,参数a被设置为等于0,并且参数b被设置为等于固定值,诸如1<<(BitDepth-1)。

g.在一个示例中,当可用临近样点的数量小于T时,LM模式和/或LM-A模式和/或LM-T模式不适用,其中T是诸如4的整数。

h.在一个示例中,如果块的宽度等于2并且左侧临近块不可用,则LM模式不适用。

i.在一个示例中,如果块的高度等于2并且上方临近块不可用,则LM模式不适用。

j.在一个示例中,如果块的宽度等于2,则LM-T模式不适用。

i.可替代地,如果块的宽度等于2并且右上方临近块不可用,则LM-T模式不适用。

k.在一个示例中,如果块的高度等于2,则LM-L模式不适用。

i.可替代地,如果块的高度等于2并且左下方临近块不可用,则LM-L模式不适用。

l.在一个示例中,如果LM模式不适用,则LM-L模式不适用。

m.在一个示例中,如果LM模式不适用,则LM-T模式不适用。

n.在一个示例中,“可用临近样点”可以是根据选择的参考行的来自现有的上方和/或左侧样点的那些样点。

o.在一个示例中,“可用临近样点”可以是根据选择的参考行和CCLM参数推导规则(例如,pSelComp[])的来自选择的位置的那些样点。

p.上述方法也可以适用于局部照明补偿(Local Illumination Compensation,LIC)过程,其中,根据可用临近样点的数量,可以禁用LIC。

i.可替代地,根据可用临近样点的数量,可以启用LIC,但是具有特定的线性模型参数(例如,a=1,b=0),而不管临近样点的值如何。

图14示出了用于跨分量预测的示例性方法的流程图。方法1400包括,在步骤1410处,接收包括亮度分量和色度分量的视频数据的当前块的比特流表示。

4跨分量预测的附加实施例

实施例1

在一些实施例中,当前块内部的亮度样点以与在JEM中相同的方式被降采样。

在一些实施例中,利用滤波器将当前块外部和当前块上方的亮度样点降采样到图4中的位置C。假设与当前块相邻的上方亮度样点表示为a[i],则d[i]=(a[2i-1]+2*a[2i]+a[2i+1]+2)>>2,其中d[i]表示降采样后的亮度样点。如果样点a[2i-1]不可用,则d[i]=(3*a[2i]+a[2i+1]+2)>>2。

在一些实施例中,当前块外部和当前块左侧的亮度样点被降采样到B和D之间的半位置处,如图4所示。假设与当前块相邻的左侧亮度样点被表示为a[j],则d[j]=(a[2j]+a[2j+1]+1)>>1,其中d[j]表示降采样后的亮度样点。

在一些实施例中,生成来自上方相邻亮度样点的W个亮度降采样样点和来自左侧相邻亮度样点的H个亮度降采样样点,其中W和H是当前色度块的宽度和高度,如图13A所示。

在一些实施例中,生成来自上方相邻亮度样点的2W个亮度降采样样点和来自左侧临近亮度样点的2H个亮度降采样样点,其中W和H是当前色度块的宽度和高度,如图13B所示。

为了将训练过程所需的临近亮度样点约束在单行中,应用了具有较少抽头的降采样滤波器,如图3A所示:

–对于上方临近亮度样点:

Rec'

–对于左侧临近亮度样点:

Rec'

块内部的亮度样点仍用六抽头滤波器进行降采样。

本申请中提供了使用不同的临近亮度样点集的两种解决方案。假设一个块的宽度和高度分别表示为W和H。在解决方案#1中,在图17A中,训练过程涉及W个上方临近样点和H个左侧临近样点。在解决方案#2中,如图17B所示,涉及2W个上方临近样点和2H个左侧临近样点。应当注意,解决方案#2中的扩展临近样点已经被宽角度帧内预测使用。

此外,基于解决方案#2提供如图18A-图18C所示的解决方案#3。如果W<=H,则涉及2W个上方临近样点;否则,涉及W个上方临近样点。如果H<=W,则涉及2H个左侧临近样点;否则,涉及H个左侧临近样点。

作为进一步的研究,提供了解决方案#1A、#2A和#3A,它们分别应用解决方案#1、解决方案#2和解决方案#3的相同方法,但仅应用于上方临近样点。在解决方案#1A、#2A和#3A中,左侧临近样点如在VTM-2.0中被降采样,即,由6抽头滤波器降采样H个左侧临近亮度样点。

实施例#2

工作草案中关于CCLM样点数量约束的实施例(示例改变被标记;删除使用双粗体方括号示出,即,[[a]]指示“a”被删除,并且添加使用双粗体大括号示出,即,{{a}}指示“a”被添加到规范中。)

XXX。INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM帧内预测模式的规范

该过程的输入是:

–...

该过程的输出是预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH-1。

当前亮度位置(xTbY,yTbY)推导如下:

(xTbY,yTbY)=(xTbC<<1,yTbC<<1) (8-156)

变量availL、availT和availTL推导如下:

–...

–可用的右上方临近色度样点的数量numTopRight推导如下:

–变量numTopRight被设置为等于0,并且availTR被设置为等于TRUE。

–当predModeIntra等于INTRA_T_CCLM时,对于x=nTbW..2*nTbW-1,以下公式适用,直到availTR等于FALSE或x等于2*nTbW-1:

–…

–可用的左下方临近色度样点的数量numLeftBelow推导如下:

–…

上方和右上方的可用临近色度样点的数量numTopSamp以及左侧和左下方的可用临近色度样点的数量nLeftSamp推导如下:

–如果predModeIntra等于INTRA_LT_CCLM,则以下适用:

numSampT=availT?nTbW:0 (8-157)

numSampL=availL?nTbH:0 (8-158)

–否则,以下适用:

numSampT=(availT&&predModeIntra==INTRA_T_CCLM)?(nTbW+Min(numTopRight,nTbH)):0 (8-159)

numSampL=

(availL&&predModeIntra==INTRA_L_CCLM)?(nTbH+Min(numLeftBelow,nTbW)):0 (8-160)

变量bCTUboundary推导如下:

bCTUboundary=(yTbC&(1<<(CtbLog2SizeY-1)-1)==0)?TRUE:FALSE。 (8-161)

变量cntN和阵列pickPosN,其中N由L和T替换,推导如下:

–变量numIs4N被设置为等于((availT&&availL&&predModeIntra==INTRA_LT_CCLM)?0:1)。

–变量startPosN被设置为等于numSampN>>(2+numIs4N)。

–变量pickStepN被设置为Max(1,numSampN>>(1+numIs4N))。

–如果availN等于TRUE,并且predModeIntra等于INTRA_LT_CCLM或INTRA_N_CCLM,则进行以下分配:

–cntN被设置为等于Min(numSampN,(1+numIs4N)<<1)

–pickPosN[pos]被设置为等于(startPosN+pos*pickStepN),其中pos=0..cntN–1。

–否则,cntN被设置为等于0。

预测样点predSamples[x][y],其中x=0..nTbW–1,y=0..nTbH–1,推导如下:

–如果numSampL和numSampT两者都等于0,则以下适用:

predSamples[x][y]=1<<(BitDepth

–否则,以下有序步骤适用:

1.并置亮度样点pY[x][y],其中x=0..nTbW*2–1,y=0..nTbH*2–1,被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

2.临近亮度样点pY[x][y]推导如下:

–当numSampL大于0时,临近左侧亮度样点pY[x][y],其中x=-1..-3,y=0..2*numSampL–1,被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

–当numSampT大于0时,临近上方亮度样点pY[x][y],其中x=0..2*numSampT–1,y=-1,-2,被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

–当availTL等于TRUE时,临近左上方亮度样点pY[x][y],其中x=-1,y=-1,-2,被设置为等于位置(xTbY+x,yTbY+y)处的去方块滤波过程之前的重构亮度样点。

3.降采样后的并置亮度样点pDsY[x][y],其中x=0..nTbW–1,y=0..nTbH–1,推导如下:

4.当numSampL大于0时,选择的临近左侧色度样点pSelC[idx]被设置为等于p[-1][pickPosL[idx]],其中idx=0..cntL–1,并且选择的降采样后的临近左侧亮度样点pSelDsY[idx],其中idx=0..cntL–1,推导如下:

–变量y被设置为等于pickPosL[idx]。

–如果sps_cclm_colocated_chroma_flag等于1,则以下适用:

–否则,以下适用:

pSelDsY[idx]=(pY[-1][2*y]+pY[-1][2*y+1]+2

*pY[-2][2*y]+2*pY[-2][2*y+1]+pY[-3][2*y]

+pY[-3][2*y+1]+4)>>3(8-178)

5.当numSampT大于0时,选择的临近上方色度样点pSelC[idx]被设置为等于p[pickPosT[idx–cntL]][-1],其中idx=cntL..cntL+cntT–1,并且降采样后的临近上方亮度样点pSelDsY[idx],其中idx=0..cntL+cntT–1,指定如下:

–变量x被设置为等于pickPosT[idx–cntL]。

–如果sps_cclm_colocated_chroma_flag等于1,则以下适用:

6.当cntT+cntL不[[等于0]]{{小于Threshold1}}时,变量minY、maxY、minC和maxC推导如下:

–[[当cntT+cntL等于2时,将pSelComp[3]设置为等于pSelComp[0],pSelComp[2]设置为等于pSelComp[1],pSelComp[0]设置为等于pSelComp[1],pSelComp[1]设置为等于pSelComp[3],其中Comp由DsY和C替换..]]

–阵列minGrpIdx和maxGrpIdx设置如下:

–minGrpIdx[0]=0。

–minGrpIdx[1]=2。

–maxGrpIdx[0]=1。

–maxGrpIdx[1]=3。

–当pSelDsY[minGrpIdx[0]]大于pSelDsY[minGrpIdx[1]]时,minGrpIdx[0]和minGrpIdx[1]交换为(minGrpIdx[0],minGrpIdx[1])=Swap(minGrpIdx[0],minGrpIdx[1])。

–当pSelDsY[maxGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,maxGrpIdx[0]和maxGrpIdx[1]交换为(maxGrpIdx[0],maxGrpIdx[1])=Swap(maxGrpIdx[0],maxGrpIdx[1])。

–当pSelDsY[minGrpIdx[0]]大于pSelDsY[maxGrpIdx[1]]时,阵列minGrpIdx和maxGrpIdx交换为(minGrpIdx,maxGrpIdx)=Swap(minGrpIdx,maxGrpIdx)。

–当pSelDsY[minGrpIdx[1]]大于pSelDsY[maxGrpIdx[0]]时,minGrpIdx[1]和maxGrpIdx[0]交换为(minGrpIdx[1],maxGrpIdx[0])=Swap(minGrpIdx[1],maxGrpIdx[0])。

–maxY=(pSelDsY[maxGrpIdx[0]]+pSelDsY[maxGrpIdx[1]]+1)>>1。

–maxC=(pSelC[maxGrpIdx[0]]+pSelC[maxGrpIdx[1]]+1)>>1。

–minY=(pSelDsY[minGrpIdx[0]]+pSelDsY[minGrpIdx[1]]+1)>>1。

–minC=(pSelC[minGrpIdx[0]]+pSelC[minGrpIdx[1]]+1)>>1。

7.变量a、b和k推导如下:

–如果[[numSampL等于0,并且numSampT等于0]]{{cntT+

cntL小于Threshold1}},则以下适用:

k=0 (8-208)

a=0 (8-209)

b=1<<(BitDepth

–否则,以下适用:

8.预测样点predSamples[x][y],其中,x=0..nTbW-1,y=0..

nTbH–1,推导如下:

predSamples[x][y]=Clip1C(((pDsY[x][y]*a)>>k)+b)(8-225)

在一个示例中,Threshold1(阈值1)被设置为4。

5所公开的技术的示例方法和技术解决方案

图19示出了用于视频处理的示例方法1900。方法1900包括,在操作1910处,为视频和视频的比特流表示之间的转换,确定多行亮度样点,用于推导用于预测色度块的样点的跨分量线性模型的参数。

方法1900包括,在操作1920处,基于色度块的预测样点来执行转换。在一些实施例中,多行中的至少一行与和色度块并置的亮度块不相邻。

在一些实施例中,可以实施以下技术解决方案:

A1.一种用于视频处理的方法,包括:为视频和视频的比特流表示之间的转换,确定多行亮度样点,用于推导用于预测色度块的样点的跨分量线性模型的参数;以及基于色度块的预测样点来执行转换,其中,多行中的至少一行与和色度块并置的亮度块不相邻。这里,块可以根据操作表示一组样点,诸如编解码单元或变换单元或预测单元。

A2.根据解决方案A1所述的方法,其中,跨分量线性模型包括多方向线性模型。

A3.根据解决方案A1或A2所述的方法,其中,多行亮度样点排除满足排除标准的行或包括满足包含标准的行。

A4.根据解决方案A3所述的方法,其中,排除标准包括排除不用于方向帧内预测和多参考行帧内预测的亮度样点。

A5.根据解决方案A3所述的方法,其中,包含标准包括亮度块上方的两行。

A6.根据解决方案A3所述的方法,其中,包含标准包括亮度块左侧的两行。

A7.根据解决方案A3所述的方法,其中,包含标准包括亮度块上方紧接的第一行、亮度块左侧紧接的第二行以及距第二行两行的第三行。

A8.根据解决方案A1或A2所述的方法,其中,多行包括第一样点集,第一样点集是通过对来自多行的第二样点集进行降采样而生成的。

A9.根据解决方案A8所述的方法,其中,第一样点集中的每一个的坐标(x,y)被计算为

Rec′

w

其中,w1+w2+w3+w4=2

A10.根据解决方案A9所述的方法,其中,w1=w2=w3=w4=1并且N=2。

A11.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中,所述指令在由处理器运行时,使得处理器实施解决方案A1至A10中的任何一项所述的方法。

A12.一种存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于执行解决方案A1至A10中的任何一项所述方法的程序代码。

在一些实施例中,可以实施以下技术方案:

B1.一种视频编解码的方法,包括:在视频的当前块和当前块的比特流表示之间的转换期间,使用基于通过对亮度分量的第二样点集进行降采样而生成的第一样点集的线性模型的参数;以及基于线性模型的参数,执行比特流表示和当前块之间的转换。

B2.根据解决方案B1所述的方法,其中,来自当前块的上方或左侧的第二集中的降采样后的亮度样点的数量取决于当前块的大小。

B3.根据解决方案B2所述的方法,其中,当前块是具有宽度W和高度H个样点的色度块,其中W和H是整数,并且其中对于W等于H,当前块上方的W个亮度样点被降采样,并且当前块左侧的H个亮度样点被降采样。

B4.根据解决方案B1所述的方法,其中,两种不同的降采样方案用于当前块是正方形和当前块是矩形的情况。

B5.根据解决方案B4所述的方法,其中,当前块具有宽度W和高度H个样点,其中W和H是整数,并且其中,W>H,并且其中,H个最左侧的上方临近样点和H个左侧临近样点被用于训练过程。

B6.根据解决方案B4所述的方法,其中,当前块具有宽度W和高度H个样点,其中W和H是整数,并且其中,W>H,并且其中,在训练过程中涉及H个最右侧的上方临近样点和H个左侧临近样点。

在上述解决方案中,转换可以包括视频解码或解压缩,其中当前块的像素值从其比特流表示中生成。在上述解决方案中,转换可以包括视频编码或压缩操作,其中比特流表示从当前块生成。

6所公开的技术的示例实施方式

图20是视频处理装置2000的框图。装置2000可以用于实施本文描述的一种或多种方法。装置2000可以体现在智能手机、平板计算机、计算机、物联网(Internet of Things,IoT)接收器等中。装置2000可以包括一个或多个处理器2002、一个或多个存储器2004和视频处理硬件2006。(多个)处理器2002可以被配置为实施本文档中描述的一种或多种方法(包括但不限于方法1900)。存储器(多个存储器)2004可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2006可以用于在硬件电路中实施本文档中描述的一些技术。

在一些实施例中,视频编解码方法可以使用在如参考图20所述的硬件平台上实施的装置来实施。

所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实施该工具或模式,但是不一定基于该工具或模式的使用来修改结果比特流。也就是说,当视频处理工具或模式基于所述决定或确定被启用时,从视频块到视频的比特流表示的转换将使用视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于所述决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。

所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在示例中,当视频处理工具或模式被禁用时,编码器将不在视频块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知道比特流没有被使用基于所述决定或确定而启用的视频处理工具或模式修改的情况下处理比特流。

图21是示出其中可以实施本文公开的各种技术的示例视频处理系统2100的框图。各种实施方式可以包括系统2100的一些或全部组件。系统2100可以包括用于接收视频内容的输入2102。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以以压缩或编码格式接收。输入2102可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(passive optical network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。

系统2100可以包括编解码组件2104,其可以实施本文档中描述的各种编解码(coding)或编码(encoding)方法。编解码组件2104可以降低从输入2102到编解码组件2104的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件2104的输出可以被存储,或者经由连接的通信(如由组件2106表示的)传输。组件2108可以使用存储的或在输入2102处接收的视频的通信传送的比特流(或编解码)表示来生成发送到显示接口2110的像素值或可显示视频。从比特流表示生成用户可观看的视频的过程有时被称为视频解压缩。此外,虽然特定视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且将由解码器来执行反转编解码结果的对应的解码工具或操作。

外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口(Displayport)等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能手机或能够执行数字数据处理和/或视频显示的其他设备。

从前面可以理解,为了说明的目的,本文已经描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,当前公开的技术不受除了所附权利要求之外的限制。

本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路中被实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中被实施,或者在它们中的一个或多个的组合中被实施。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。

计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器运行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(Field Programmable Gate Array,现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路)。

适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。

仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号