视频编解码模式的编解码和解码的制作方法

文档序号:26013016发布日期:2021-07-23 21:34阅读:100来源:国知局
视频编解码模式的编解码和解码的制作方法
相关申请的交叉引用根据适用的专利法和/或依据巴黎公约的规则,本申请是为了及时要求于2018年11月20日提交的国际专利申请no.pct/cn2018/116371、2019年4月2日提交的国际专利申请no.pct/cn2019/081155以及2019年5月7日提交的国际专利申请no.pct/cn2019/085796的优先权和利益。出于根据美国法律的所有目的,前述申请的全部公开通过引用而并入,作为本申请的公开的一部分。本文档涉及视频和图像编解码(coding)和解码技术。
背景技术
:数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。技术实现要素:在一个示例方面,公开了一种处理视频的方法。该方法包括执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(directionalopticalflow,bio)技术或解码器侧运动矢量细化(decoder-sidemotionvectorrefinement,dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于与当前块相关联的成本准则(costcriterion)的。在另一示例方面,公开了一种处理视频的方法。该方法包括执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定解码器侧运动矢量细化(dmvr)技术对当前块所进行的使用被启用还是禁用,并且其中,dmvr技术包括基于除了绝对差平均移除和(meanremovedsumofabsolutedifference,mrsad)成本准则之外的成本准则来细化当前块的运动信息。在另一示例方面,公开了一种处理视频的方法。该方法包括执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于计算与当前块相关联的一对参考块的平均值差超过阈值的。在另一示例方面,公开了一种处理视频的方法。该方法包括:修改第一参考块以生成第一修改参考块,并且修改第二参考块以生成第二修改参考块,其中,第一参考块和第二参考块两者都与可视媒体数据的当前块相关联;确定第一修改参考块和第二修改参考块之间的差,该差包括以下中的一个或多个:绝对变换差和(sumofabsolutetransformeddifference,satd)、绝对变换差平均移除和(meanremovedsumofabsolutetransformeddifference,mrsatd)、平方误差和(sumofsquareserror,sse)、平方误差平均移除和(meanremovedsumofsquareserror,mrsse)、平均值差或梯度值;以及执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括使用通过分别修改第一参考块和第二参考块而生成的第一修改参考块和第二修改参考块之间的差。在另一示例方面,公开了一种处理视频的方法。该方法包括:使用与可视媒体数据的当前块相关联的参考图片来确定时域梯度或修改的时域梯度,该时域梯度或修改的时域梯度指示参考图片之间的差;以及执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括部分地基于时域梯度或修改的时域梯度来使用双向光流(bio)技术。在另一示例方面,公开了一种处理视频的方法。该方法包括:使用与第一视频块或其子块相关联的参考图片来确定第一时域梯度;使用与第二视频块或其子块相关联的参考图片来确定第二时域梯度;执行对第一时域梯度的修改和对第二时域梯度的修改,以生成修改的第一时域梯度和修改的第二时域梯度,其中,对与第一视频块相关联的第一时域梯度的修改不同于对与第二视频块相关联的第二时域梯度的修改;以及执行第一视频块和第二视频块到它们的对应编解码表示的转换。在另一示例方面,公开了一种处理视频的方法。该方法包括:修改与当前块相关联的第一帧间参考块和第二帧间参考块中的一个或两个;根据应用双向光流(bio)技术,基于使用修改的第一帧间参考块和/或修改的第二帧间参考块中的一个或两个来确定与当前块相关联的空域梯度;以及执行当前块和对应编解码表示之间的转换,其中,该转换包括使用与当前块相关联的空域梯度。在另一示例方面,公开了一种处理视频的方法。该方法包括:由处理器执行对在块级别信令通知的标志至少部分地指示要对当前块启用解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种的确定;以及执行当前块和对应编解码表示之间的转换,其中,编解码表示包括指示dmvr技术和/或bio技术中的一种或两种是否被启用的标志。在另一示例方面,公开了一种处理视频的方法。该方法包括:由处理器执行对要对当前块启用解码器侧运动矢量细化(dmvr)技术的确定,其中,该确定排他地基于当前块的高度;以及执行当前块和对应编解码表示之间的转换。在另一示例方面,公开了一种处理视频的方法。该方法包括执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括在当前块上使用与解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种相关联的规则,其中,与dmvr技术相关联的规则与bio技术的应用一致;并且其中,确定bio技术或dmvr技术中的一种或两种在当前块上的使用被启用还是禁用是基于应用该规则的。在另一示例方面,上述方法可以由包括处理器的视频解码器装置实施。在另一示例方面,上述方法可以由包括处理器的视频编码器装置实施。在又一示例方面,这些方法可以以处理器可执行指令的形式而体现,并被存储在计算机可读程序介质上。这些以及其他方面在本文档中被进一步描述。附图说明图1示出了双边匹配的示例。图2示出了模板匹配的示例。图3示出了帧速率上转换(frame-rateupconversion,fruc)中的单边运动估计(motionestimation,me)的示例。图4示出了光流轨迹的示例。图5a和图5b示出了没有块扩展的双向光流(bio)的示例。图6示出了具有6点搜索的双边匹配的示例。图7示出了自适应整数搜索模式和半样点搜索模式的示例。图8是视频处理装置的示例的框图。图9示出了视频编码器的示例实施方式的框图。图10是视频处理方法的示例的流程图。图11是视频处理方法的示例的流程图。图12是视频处理方法的示例的流程图。图13是视频处理方法的示例的流程图。图14是视频处理方法的示例的流程图。图15是视频处理方法的示例的流程图。图16是视频处理方法的示例的流程图。图17是可以在其中实施所公开技术的示例视频处理系统的框图。图18是视频处理方法的示例的流程图。图19是视频处理方法的示例的流程图。图20是视频处理方法的示例的流程图。图21是视频处理方法的示例的流程图。图22是视频处理方法的示例的流程图。图23是视频处理方法的示例的流程图。图24是视频处理方法的示例的流程图。图25是视频处理方法的示例的流程图。图26是视频处理方法的示例的流程图。图27是视频处理方法的示例的流程图。具体实施方式为了提高视频的压缩率,研究人员不断寻找通过其编码视频的新技术。本文档提供了可以由视频比特流解码器使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器还可以在编码过程期间实施这些技术,以便重建用于进一步编码的解码帧。在本文档中使用章节标题以用于提高可读性,并且不将每个章节中描述的技术和实施例的范围仅限于该章节。此外,虽然使用了来自各种现有视频编解码器标准的某些术语,但是所公开的技术不仅限于这些视频标准或它们的后继标准,并且适用于其他视频编解码器标准。此外,在一些情况下,使用对应的编解码步骤公开了技术,并且将理解,在解码器处,将以相反的顺序执行对应的解码步骤。另外,编解码还可以用于执行转码,其中将视频从一个编解码表示(例如,一个比特率)表示为另一个编解码表示(例如,不同的比特率)。1.概述本专利文档涉及视频编解码技术。具体地,它涉及视频编解码中的运动补偿。它可以应用于现有的视频编解码标准,如hevc,或即将要定案的标准(例如,多功能视频编解码(versatilevideocoding,vvc))。它也可以应用于未来的视频编解码标准或视频编解码器。2.背景视频编解码标准主要是通过熟知的itu-t和iso/iec标准的发展而演变的。itu-t制定了h.261和h.263,iso/iec制定了mpeg-1和mpeg-4可视化,并且这两个组织联合制定了h.262/mpeg-2视频和h.264/mpeg-4高级视频编解码(advancedvideocoding,avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时域预测加变换编解码。为了探索hevc以外的未来视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索组(jointvideoexplorationteam,jvet)。此后,jvet采用了许多新方法,并将其放入名为联合探索模型(jointexplorationmodel,jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iecjtc1sc29/wg11(mpeg)之间的联合视频专家组(jvet)成立,以致力于多功能视频编解码(vvc)标准,目标是与hevc相比比特率降低50%。vvc草案的最新版本,即多功能视频编解码(草案2),可以在以下网址找到:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_ljubljana/wg11/jvet-k1001-v7.zipvvc的最新参考软件名为vtm,可以在以下网址找到:https://vcgit.hhi.fraunhofer.de/jvet/vvcsoftware_vtm/tags/vtm-2.1图9是视频编码器的示例实施方式的框图。图9示出编码器实施方式具有内置的反馈路径,在其中视频编码器还执行视频解码功能(重建视频数据的压缩表示以用于下一视频数据的编码)。2.1模式匹配运动矢量推导模式匹配的运动矢量推导(patternmatchedmotionvectorderivation,pmmvd)模式是基于帧速率上转换(frame-rateupconversion,fruc)技术的特殊merge模式。利用该模式,在解码器侧推导块的运动信息,而不是信令通知块的运动信息。当cu的merge标志为真时,向cu信令通知fruc标志。当fruc标志为假时,信令通知merge索引并使用规则(regular)merge模式。当fruc标志为真时,信令通知的额外的fruc模式标志以指示将使用哪种方法(双边匹配或模板匹配)来推导该块的运动信息。在编码器侧,关于是否对cu使用frucmerge模式的决定是基于对正常merge候选所做的rd成本选择的。即,通过使用rd成本选择来检查cu的两种匹配模式(双边匹配和模板匹配)两者。导致最小成本的匹配模式与其他cu模式进行进一步比较。如果fruc匹配模式是最有效的模式,则对于cu将fruc标志设置为真,并且使用相关的匹配模式。frucmerge模式中的运动推导过程具有两个步骤:首先执行cu级别运动搜索,然后进行子cu级别运动细化。在cu级别,基于双边匹配或模板匹配,推导整个cu的初始运动矢量。首先,生成mv候选列表,并且选择导致最小匹配成本的候选作为进一步cu级别细化的起点。然后,在起点附近执行基于的双边匹配或模板匹配的局部搜索,并且产生最小匹配成本的mv被视作整个cu的mv。随后,以推导出的cu运动矢量作为起点,进一步在子cu级别细化运动信息。例如,对于w×hcu运动信息推导执行以下推导过程。在第一阶段,推导整个w×hcu的mv。在第二阶段,该cu进一步被划分为m×m个子cu。m的值的计算方法如(1)所示,d是预定义的划分深度,在jem中默认设置为3。然后每个子cu的mv被推导为:如图1所示,双边匹配用于通过在两个不同参考图片中沿当前cu的运动轨迹找到两个块之间的最接近匹配来推导当前cu的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量mv0和mv1应当与当前图片和两个参考图片之间的时域距离(即td0和td1)成比例。作为特殊情况,当当前图片在时域上位于两个参考图片之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变成基于镜像的双向mv。如图2所示,模板匹配用于通过找到当前图片中的模板(当前cu的顶部和/或左边邻近块)与参考图片中的块(与模板的尺寸相同)之间的最接近匹配来推导当前cu的运动信息。除了上述frucmerge模式之外,模板匹配也应用于amvp模式。在jem中,正如在hevc中所做的那样,amvp具有两个候选。通过模板匹配方法,可以推导新的候选。如果由模板匹配新推导的候选与第一现有amvp候选不同,则将其插入amvp候选列表的最开始处,然后将列表尺寸设置为2(意味着移除第二现有amvp候选)。当应用于amvp模式时,仅应用cu级别搜索。cu级别mv候选集cu级别的mv候选集可以包括:·如果当前cu处于amvp模式,则为原始amvp候选,·所有merge候选,·在第2.1.1.3节中介绍的插值mv场中的几个mv,和·顶部和左边邻近运动矢量,当使用双边匹配时,将merge候选的每个有效mv用作输入,以生成假设双边匹配的情况下的mv对。例如,在参考列表a中,merge候选的一个有效mv是(mva,refa)。然后,在另一参考列表b中找到其配对的双边mv的参考图片refb,使得refa和refb在时域上位于当前图片的不同侧。如果这种refb在参考列表b中不可用,则refb被确定为与refa不同的参考,并且其到当前图片的时域距离是列表b中最小的。在确定refb之后,通过基于当前图片和refa、refb之间的时域距离来缩放mva来推导mvb。来自插值mv场的四个mv也被添加到cu级别候选列表。更具体地,添加当前cu的位置(0,0)、(w/2,0)、(0,h/2)和(w/2,h/2)处的插值mv。当fruc应用于amvp模式时,原始amvp候选也被添加到cu级别mv候选集中。在cu级别,对于amvpcu,最多将15个mv添加到候选列表,对于mergecu,最多将13个mv添加到候选列表。子cu级别mv候选集子cu级别的mv候选集可以包括:·从cu级别搜索中确定的mv,·顶部、左边、左上和右上的邻近mv,·来自参考图片的并置mv的缩放版本,·最多4个atmvp候选,和·最多4个stmvp候选。来自参考图片的缩放mv如下推导。遍历两个列表中的所有参考图片。参考图片中的子cu的并置位置处的mv被缩放到起始cu级别mv的参考。atmvp和stmvp候选限于前四个。在子cu级别,最多将17个mv添加到候选列表中。插值mv场的生成在对帧进行编解码之前,基于单边me为整个图片生成插值运动场。然后,运动场可以稍后用作cu级别或子cu级别mv候选。首先,两个参考列表中的每个参考图片的运动场以4×4块级别遍历。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块(如图3所示)并且块未被分配任何插值运动,则参考块的运动根据时域距离td0和td1(以与hevc中的tmvp的mv缩放的方式相同的方式)被缩放到当前图片,并且将缩放的运动分配给当前帧中的块。如果没有缩放的mv被分配给4×4块,则在插值运动场中将块的运动标记为不可用。插值和匹配成本当运动矢量指向分数样点位置时,可以执行运动补偿插值。为了降低复杂度,替代常规8抽头hevc插值,将双线性插值用于双边匹配和模板匹配。匹配成本的计算在不同步骤处有所不同。当从cu级别的候选集中选择候选时,匹配成本是双边匹配或模板匹配的绝对和差(absolutesumdifference,sad)。在确定起始mv之后,子cu级别搜索的双边匹配的匹配成本c计算如下:其中w是根据经验设置为4的加权因子,mv和mvs分别指示当前mv和起始mv。sad仍用作子cu级别搜索的模板匹配的匹配成本。在fruc模式下,仅通过使用亮度样点来推导mv。推导出的运动将用于mc帧间预测的亮度和色度两者。在确定mv之后,使用用于亮度的8抽头插值滤波器和用于色度的4抽头插值滤波器来执行最终mc。mv细化mv细化是以双边匹配成本或模板匹配成本为标准的基于模式的mv搜索。在jem中,支持两种搜索模式—无限制中心偏置菱形搜索(unrestrictedcenter-biaseddiamondsearch,ucbds)和自适应交叉搜索,分别在cu级别和子cu级别进行mv细化。对于cu和子cu级别mv细化两者,以四分之一亮度样点mv精度直接搜索mv,并且接着是八分之一亮度样点mv细化。将用于cu和子cu级(step)的mv细化的搜索范围设置为等于8个亮度样点。模板匹配frucmerge模式中预测方向的选择在双边匹配merge模式中,始终应用双向预测,因为cu的运动信息是基于在两个不同的参考图片中沿当前cu的运动轨迹的两个块之间的最近匹配推导的。对于模板匹配merge模式没有这样的限制。在模板匹配merge模式下,编码器可以从列表0中的单向预测、列表1中的单向预测或双向预测当中为cu选择。选择基于如下的模板匹配成本:如果costbi<=factor*min(cost0,cost1)则使用双向预测;否则,如果cost0<=cost1则使用列表0中的单向预测;否则,使用列表1中的单向预测;其中cost0是列表0模板匹配的sad,cost1是列表1模板匹配的sad,并且costbi是双向预测模板匹配的sad。factor的值等于1.25,这意味着选择过程偏向于双向预测。帧间预测方向选择仅应用于cu级别模板匹配过程。混合帧内和帧间预测在jvet-l0100中,提出了多假设预测,其中混合帧内和帧间预测是生成多假设的一种方式。当多假设预测被应用于改进帧内模式时,多假设预测结合一个帧内预测和一个merge索引预测。在mergecu中,为merge模式信令通知一个标志,以当标志为真时从帧内候选列表中选择帧内模式。对于亮度分量,帧内候选列表从包括dc模式、平面模式、水平模式和垂直模式的4种帧内预测模式中推导,并且帧内候选列表的尺寸可以是3或4,这取决于块形状。当cu宽度大于cu高度的两倍时,水平模式不包括帧内模式列表,并且当cu高度大于cu宽度的两倍时,垂直模式从帧内模式列表中移除。使用加权平均来组合由帧内模式索引选择的一个帧内预测模式和由merge索引选择的一个merge索引预测。对于色度分量,dm总是在没有额外信令的情况下应用。用于组合预测的权重描述如下。当选择dc模式或平面模式,或cb宽度或高度小于4时,施加相等的权重。对于cb宽度和高度大于或等于4的那些cb,当选择水平/垂直模式时,一个cb首先被垂直/水平划分为四个等面积区域。每个权重集,表示为(w_intrai,w_interi),其中i为1至4,并且(w_intra1,w_inter1)=(6,2)、(w_intra2,w_inter2)=(5,3)、(w_intra3,w_inter3)=(3,5)和(w_intra4,w_inter4)=(2,6)将被施加于对应区域。(w_intra1,w_inter1)用于最接近参考样点的区域,并且(w_intra4,w_inter4)用于最远离参考样点的区域。然后,可以通过将两个加权预测相加并右移3位来计算组合预测。此外,可以保存预测值的帧内假设的帧内预测模式,以供后面的邻近cu参考。双向光流在bio中,首先执行运动补偿以生成当前块的第一预测(在每个预测方向上)。第一预测用于推导块内的每个子块/像素的空域梯度、时域梯度和光流,其用于生成第二预测,即子块/像素的最终预测。细节描述如下。双向光流(bio)是按样点的运动细化,其在用于双向预测的按块的运动补偿的基础上进行。样点级别运动细化不使用信令。设i(k)是来自块运动补偿之后的参考k(k=0,1)的亮度值,并且分别是i(k)梯度的水平分量和垂直分量。假设光流是有效的,运动矢量场(vx,vy)由等式给出:将该光流等式与hermite插值相结合以获得每个样点的运动轨迹,最终得到与函数值i(k)和导数相匹配的唯一的三阶多项式。t=0时该多项式的值是bio预测:这里,τ0和τ1表示到参考帧的距离,如图4所示。距离τ0和τ1是基于ref0和ref1的poc计算的:τ0=poc(当前)-poc(ref0),τ1=poc(ref1)-poc(当前)。如果两个预测来自相同的时间方向(要么都来自过去,要么都来自未来),则信号是不同的(即τ0·τ1<0)。在这种情况下,只有当预测不是来自相同时刻(即τ0≠τ1)、两个参考区域都具有非零运动(mvx0/mvy0=mvx1/mvy1≠0)、并且块运动矢量与时间距离成比例(mvx0/mvx1=mvy0/mvy1=-τ0/τ1)时,才应用bio。通过最小化点a和点b(图9上运动轨迹和参考帧平面的交点)的值之间的差δ来确定运动矢量场(vx,vy)。模型只使用对于δ的局部taylor展开的第一线性项:等式5中的所有值都取决于样点位置(i′,j′),到目前为止从符号中忽略该位置。假设运动在局部周围区域中是一致的,可以最小化在以当前预测点(i,j)为中心的(2m+1)×(2m+1)正方形窗口ω内部的δ的值,其中m等于2:对于这个优化问题,jem使用简化的方法,首先在垂直方向最小化,然后在水平方向最小化。这得到:其中,为了避免除以零或非常小的值,正则化参数r和m被引入等式7和8中。r=500·4d-8(10)m=700·4d-8(11)这里d是视频样点的比特深度。为了保持bio的存储器访问与规则双向预测运动补偿的相同,所有预测和梯度值i(k),都仅针对当前块内部的位置进行计算。在等式9中,以预测块的边界上的当前预测点为中心的(2m+1)×(2m+1)正方形窗口ω可以访问块的外部的位置(如图5(a)所示)。在jem中,块外部的i(k),的值被设置为等于块内部最近的可用值。例如,这可以实施为填充,如图5(b)所示。利用bio,有可能针对每个样点细化运动场。为了降低计算复杂度,在jem中使用基于块的bio设计。基于4×4块来计算运动细化。在基于块的bio中,聚合4×4块中所有样点的等式9中的sn值,然后sn的聚合值用于推导4×4块的bio运动矢量偏移。更具体地,以下公式用于基于块的bio推导:其中bk表示属于预测块的第k个4×4块的样点集。等式7和8中的sn被((sn,bk)>>4)代替,以推导相关联的运动矢量偏移。在某些情况下,由于噪音或不规则的运动,bio的mv细化可能不可靠。因此,在bio中,mv细化的幅度被限幅到阈值thbio。阈值基于当前图片的参考图片是否都来自一个方向来确定。如果当前图片的所有参考图片都来自一个方向,则阈值被设置为12×214-d;否则,它被设置为12×213-d。使用与hevc运动补偿过程(2d可分离fir(finiteimpulseresponse,有限脉冲响应))一致的操作,与运动补偿插值同时计算bio的梯度。该2d可分离fir的输入是与运动补偿过程和根据块运动矢量的分数部分的分数位置(fracx,fracy)相同的参考帧样点。在水平梯度的情况下,首先使用与具有去缩放(de-scaling)偏移d-8的分数位置fracy相对应的biofilters对信号垂直插值,然后在水平方向上应用与具有去缩放偏移18-d的分数位置fracx相对应的梯度滤波器biofilterg。在垂直梯度的情况下,首先使用与具有去缩放偏移d-8的分数位置fracy相对应的biofilterg来垂直地应用梯度滤波器,然后在水平方向上使用与具有去缩放偏移达18-d的分数位置fracx相对应的biofilters来执行信号位移。用于梯度计算的插值滤波器biofilterg和信号位移biofilterf的长度较短(6抽头),以便维持合理的复杂性。表1示出了用于bio中块运动矢量的不同分数位置的梯度计算的滤波器。表2示出了用于bio中预测信号生成的插值滤波器。表1:用于bio中梯度计算的滤波器分数像素位置梯度的插值滤波器(biofilterg)0{8,-39,-3,46,-17,5}1/16{8,-32,-13,50,-18,5}1/8{7,-27,-20,54,-19,5}3/16{6,-21,-29,57,-18,5}1/4{4,-17,-36,60,-15,4}5/16{3,-9,-44,61,-15,4}3/8{1,-4,-48,61,-13,3}7/16{0,1,-54,60,-9,2}1/2{-1,4,-57,57,-4,1}表2:用于bio中预测信号生成的插值滤波器分数像素位置预测信号的插值滤波器(biofilters)0{0,0,64,0,0,0}1/16{1,-3,64,4,-2,0}1/8{1,-6,62,9,-3,1}3/16{2,-8,60,14,-5,1}1/4{2,-9,57,19,-7,2}5/16{3,-10,53,24,-8,2}3/8{3,-11,50,29,-9,2}7/16{3,-11,44,35,-10,3}1/2{3,-10,35,44,-11,3}在jem中,当两个预测来自不同的参考图片时,bio被应用于所有双向预测块。当对于cu启用lic(localilluminationcompensation,局部照明补偿)时,bio被禁用。在jem中,obmc被应用于正常mc过程之后的块。为了降低计算复杂度,bio没有在obmc过程期间被应用。这意味着当使用自己的mv时,bio仅应用于块的mc过程,而当在obmc过程期间使用邻近块的mv时,bio不应用于mc过程。两阶段早期终止方法用于根据两个预测信号之间的相似性有条件地禁用bio操作。早期终止首先被应用于cu级别,然后被应用于子cu级别。具体地,所提出的方法首先在cu级别计算l0预测信号和l1预测信号之间的sad。假设bio仅被应用于亮度,则sad计算仅可以考虑亮度样点。如果cu级别sad不大于预定义阈值,则对整个cu完全禁用bio过程。cu级别阈值设置为每一样点2(bdepth-9)。如果bio过程没有在cu级别被禁用,并且如果当前cu包括多个子cu,则将计算cu内部的每个子cu的sad。然后,基于预定义的子cu级别sad阈值,在子cu级别做出关于启用还是禁用bio过程的决定,其中该阈值被设置为每一样点3*2(bdepth-10)。2.4vvc中bdof的规范(jvet-n1001-v2中)bdof(bidirectionalopticalflow,双向光流)的规范如下:8.5.7.4双向光流预测过程该过程的输入是:-两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,-两个(ncbw+2)×(ncbh+2)亮度预测样点阵列predsamplesl0和predsamplesl1,-预测列表利用标志predflagl0和predflagl1,-参考索引refidxl0和refidxl1,-双向光流利用标志bdofutilizationflag[xidx][yidx],其中xidx=0..(ncbw>>2)–1,yidx=0..(ncbh>>2)-1。该过程的输出是亮度预测样点值的(ncbw)×(ncbh)阵列pbsamples。变量bitdepth、shift1、shift2、shift3、shift4、offset4和mvrefinethres被推导如下:-变量bitdepth被设置为等于bitdepthy。-变量shift1被设置为等于max(2,14-bitdepth)。-变量shift2被设置为等于max(8,bitdepth-4)。-变量shift3被设置为等于max(5,bitdepth-7)。-变量shift4被设置为等于max(3,15-bitdepth),并且变量offset4被设置为等于1<<(shift4-1)。-变量mvrefinethres被设置为等于max(2,1<<(13-bitdepth))。对于xidx=0..(ncbw>>2)–1和yidx=0..(ncbh>>2)-1,以下适用:-变量xsb被设置为等于(xidx<<2)+1,并且ysb被设置为等于(yidx<<2)+1。-如果bdofutilizationflag[xsbidx][yidx]等于false(假),则对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset2+predsamplesl1[x+1][y+1])>>shift2)(8-852)-否则(bdofutilizationflag[xsbidx][yidx]等于true(真)),当前子块的预测样点值被推导如下:-对于x=xsb-1..xsb+4,y=ysb-1..ysb+4,以下有序步骤适用:1.预测样点阵列内部每个对应样点位置(x,y)的位置(hx,vy)被推导如下:hx=clip3(1,ncbw,x)(8-853)vy=clip3(1,ncbh,y)(8-854)2.变量gradienthl0[x][y]、gradientvl0[x][y]、gradienthl1[x][y]和gradientvl1[x][y]被推导如下:gradienthl0[x][y]=(predsamplesl0[hx+1][vy]-predsamplel0[hx-1][vy])>>shift1(8-855)gradientvl0[x][y]=(predsamplel0[hx][vy+1]-predsamplel0[hx][vy-1])>>shift1(8-856)gradienthl1[x][y]=(predsamplesl1[hx+1][vy]-predsamplel1[hx-1][vy])>>shift1(8-857)gradientvl1[x][y]=(predsamplel1[hx][vy+1]-predsamplel1[hx][vy-1])>>shift1(8-858)3.变量temp[x][y]、temph[x][y]和tempv[x][y]被推导如下:diff[x][y]=(predsamplesl0[hx][vy]>>shift2)-(predsamplesl1[hx][vy]>>shift2)(8-859)temph[x][y]=(gradienthl0[x][y]+gradienthl1[x][y])>>shift3(8-860)tempv[x][y]=(gradientvl0[x][y]+gradientvl1[x][y])>>shift3(8-861)-变量sgx2、sgy2、sgxgy、sgxdi和sgydi被推导如下:sgx2=σiσj(temph[xsb+i][ysb+j]*temph[xsb+i][ysb+j]),其中i,j=-1..4(8-862)sgy2=σiσj(tempv[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j=-1..4(8-863)sgxgy=σiσj(temph[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j-1..4(8-864)sgxdi=σiσj(-temph[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-865)sgydi=σiσj(-tempv[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-866)-当前子块的水平和垂直运动偏移被推导如下:vx=sgx2>0?clip3(-mvrefinethres,mvrefinethres,-(sgxdi<<3)>>floor(log2(sgx2))):0(8-867)vy=sgy2>0?clip3(-mvrefinethres,mvrefinethres,((sgydi<<3)–((vx*sgxgym)<<12+vx*sgxgys)>>1)>>floor(log2(sgx2))):0(8-868)-对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:bdofoffset=round((vx*(gradienthl1[x+1][y+1]-gradienthl0[x+1][y+1]))>>1)+round((vy*(gradientvl1[x+1][y+1]-gradientvl0[x+1][y+1]))>>1)(8-869)[ed.(jc):round()操作是针对浮点输入定义的。round()操作在这里似乎是多余的,因为输入是整数值。待由提出者确认]pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset4+predsamplesl1[x+1][y+1]+bdofoffset)>>shift4)(8-870)空域梯度被计算如下:gradienthl0[x][y]=(predsamplesl0[hx+1][vy]-predsamplel0[hx-1][vy])>>shift1(8-855)另一方面,时域梯度被计算如下:diff[x][y]=(predsamplesl0[hx][vy]>>shift2)-(predsamplesl1[hx][vy]>>shift2)(8-859)因此,没有对齐空域梯度和时域梯度的计算。2.5解码器端运动矢量细化在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(motionvector,mv)和列表1的mv形成的两个预测块被组合以形成单个预测信号。在jvet-k0217中,解码器侧运动矢量细化(dmvr)方法,双向预测的两个运动矢量通过双边匹配过程而进一步细化。在提出的方法中,如果以下条件为真,则仅在merge和跳过模式下应用dmvr:(poc-poc0)*(poc-poc1)<0,其中poc是当前要编码的图片的图片顺序计数,poc0和poc1是当前图片的参考的图片顺序计数。信令通知的merge候选对被用作dmvr过程的输入,并且被表示为初始运动矢量(mv0,mv1)。通过dmvr搜索的搜索点遵循运动矢量差镜像条件。换句话说,通过dmvr检查的任何点,由候选运动矢量对(mv0’,mv1’)表示,都遵循以下两个等式:mv0′=mv0+mvdiffmv1′=mv1-mvdiff其中mvdiff表示参考图片中的一个参考图片中的搜索空间中的点。在构建搜索空间之后,使用常规8抽头dctif插值滤波器来构建单边预测。通过使用两个预测之间的mrsad(绝对差平均移除和)(图6)来计算双边匹配成本函数,并且产生最小成本的搜索点被选择作为细化mv对。对于mrsad计算,使用样点的16位精度(其是插值滤波的输出),并且在mrsad计算之前不应用削波(clipping)和取整操作。不应用取整和削波的理由是为了降低内部缓冲器要求。图6示出了具有6点搜索的双边匹配的示例。在提出的方法中,由自适应模式方法选择整数精度搜索点。首先计算对应于(由初始运动矢量指向的)中心点的成本。其他4个成本(符号形状)通过两个预测而计算,其中该两个预测通过中心点而位于彼此的相反侧。该角度的最后第6个点通过先前的计算成本的梯度而选择(图7)。图7示出了自适应整数搜索模式和半样点搜索模式的示例。dmvr过程的输出是对应于最小成本的细化运动矢量对。如果在一次迭代之后,在搜索空间的中心点实现最小成本,即运动矢量没有改变,并且细化过程被终止。否则,最佳成本进一步被视为中心,并且该过程继续,而最小成本不对应于中心点,并且没有超过搜索范围。仅当半像素搜索的应用不超过搜索范围时,半样点精度搜索才被应用。在这种情况下,仅执行4次mrsad计算,对应于中心点周围的加号(plus)形状点,其在整数精度搜索期间被选为最佳。最后,输出对应于最小成本点的细化运动矢量对。jvet-l0163中进一步提出了一些简化和改进。参考采样填充应用参考样点填充,以便扩展由初始运动矢量指向的参考样点块。如果编解码块的尺寸由“w”和“h”给出,则假设从参考图片缓冲器检索到尺寸为w+7和h+7的块。然后,通过使用最近样点的重复样点填充,检索到的缓冲器然后在每个方向上被扩展2个样点。之后,一旦获得细化运动矢量(其可以在每个方向上偏离初始运动矢量2个样点),扩展的参考样点块用于生成最终预测。注意,该修改完全消除了dmvr的外部存储器访问要求,而没有任何编解码损失。代替8抽头dctif的双线性插值根据该提议,双线性插值在dmvr搜索过程期间被应用,这意味着在mrsad计算中使用的预测是使用双线性插值而生成的。一旦获得最终的细化运动矢量,就应用常规的8抽头dctif插值滤波器以生成最终预测。对小的块禁用dmvr对块4×4、4×8和8×4禁用dmvr。基于merge候选之间的mv差的早期终止对dmvr施加附加条件,以限制mv细化过程。利用该条件,当满足下面的条件时,dmvr被有条件地禁用。所选择的merge候选和相同merge列表中的任何先前merge候选之间的mv差小于预定义阈值(即对于具有小于64个像素、小于256个像素和至少256个像素的cu,分别为1/4像素宽间隔、1/2像素宽间隔和1像素宽间隔)。基于中心搜索坐标处的sad成本的早期终止计算使用当前cu的初始运动矢量的两个预测信号(l0和l1预测)之间的绝对差和(sad)。如果sad不大于预定义阈值,即每一样点2(bdepth-9),则跳过dmvr;否则,dmvr仍然被应用,以细化当前块的两个运动矢量。dmvr应用条件dmvr应用条件是(poc–poc1)×(poc-poc2)<0,当它在bms2.1中被实施时由新条件(poc–poc1)==(poc2–poc)替代。这意味着,只有当参考图片在相反的时间方向上并且与当前图片等距时,才应用dmvr。使用每个第二行的mrsad计算仅针对块的奇数行计算mrsad成本,不考虑偶数样点行。因此,mrsad计算的运算数量减半。2.6相关方法在由2018年8月4日提交的标题为“motionrefinementforvisualmediacoding(可视媒体编解码的运动细化)”的申请no.pct/cn2018/098691(其通过引用并入本文)标识的专利申请中,提出了mv更新方法和两步帧间预测方法。bio中参考块0和参考块1之间的推导出的mv被缩放并添加到列表0和列表1的原始运动矢量。同时,更新的mv用于执行运动补偿,并且第二帧间预测被生成作为最终预测。时域梯度通过移除参考块0和参考块1之间的平均差而修改。2.7dmvr草案4在jvet-m1001_v7(vvc工作草案4,版本7)中对dmvr的使用被定义如下:-当所有以下条件都为真时,dmvrflag被设置为等于1:-sps_dmvr_enabled_flag等于1-当前块不以三角形预测模式、amvr仿射模式、子块模式(包括merge仿射模式和atmvp模式)来编解码-merge_flag[xcb][ycb]等于1-predflagl0[0][0]和predflagl1[0][0]两者都等于1-mmvd_flag[xcb][ycb]等于0-diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic)-cbheight大于或等于8-cbheight*cbwidth大于或等于643.实施例解决的问题的示例在bio中,在早期终止阶段计算了两个参考块或子块之间的差,同时还计算了时域梯度。因为时域梯度实际上是两个参考像素之间的差(或右移差),所以计算差和时域梯度两者是没有意义的。在dmvr中,mrsad计算用于决定一个块的细化运动矢量。在bio中,sad计算用于使用一个块/一个子块的所有样点来决定是否应该对一个块或一个子块启用/禁用bio,这增加了计算复杂度。对于空域梯度和时域梯度,计算方法是不同的。4.实施例的示例将satd表示为绝对变换差和,将mrsatd表示为绝对变换差平均移除和,将sse表示为平方误差和,并且将mrsse表示为平方误差平均移除和。下面的详细技术应该被认为是解释一般概念的示例。这些技术不应该以狭隘的方式而解释。此外,这些发明可以以任何方式而组合。在下面的讨论中,satshift(x,n)被定义为shift(x,n)被定义为shift(x,n)=(x+offset0)>>n。在一个示例中,offset0和/或offset1被设置为(1<<n)>>1或(1<<(n-1))。在另一示例中,offset0和/或offset1被设置为0。在另一示例中,offset0=offset1=((1<<n)>>1)-1或((1<<(n-1)))-1。在bdof的梯度计算中,可以计算两个邻近(空域邻近或时域邻近)样点和/或非相邻样点之间的差,并且可以在梯度计算期间执行右移。假设两个邻近样点是neig0和neig1,并且右移值是shift1,并且要被计算的梯度是grad。注意,对于空域梯度和时域梯度,shift1可以不同。1.提出将用于计算空域梯度和时域梯度的方法对齐。a.在一个示例中,梯度是根据移位样点差而计算的。i.可选地,梯度是根据修改的样点(例如,经由移位)差而计算的。b.在一个示例中,在梯度计算中,可以在右移之前执行减法。例如,grad=(neig0–neig1)>>shift1。c.在一个示例中,在梯度计算中,可以在右移之后执行减法。例如,grad=(neig0>>shift1)–(neig1>>shift1)。d.在一个示例中,在梯度计算中,可以在右移之前执行减法,并且可以在右移之前添加偏移。例如,grad=(neig0–neig1+offset)>>shift1。偏移可以等于1<<(shift1–1)或1<<shift1>>1。e.在一个示例中,在梯度计算中,可以在右移之后执行减法,并且可以在右移之前添加偏移。例如,grad=((neig0+offset)>>shift1)–((neig1+offset)>>shift1)。偏移可以等于1<<(shift1–1)or1<<shift1>>1。f.在一个示例中,梯度可以被计算为satshift(neig0–neig1,shift1)。i.可选地,梯度可以被计算为satshift(neig0,shift1)-satshift(neig1,shift1)。2.提出使用其他准则在早期终止阶段决定启用/禁用bio或/和dmvr,诸如satd或mrsatd或sse或mrsse或平均值差或梯度值。a.在一个示例中,块级别和子块级别启用/禁用决定可以选择不同的规则,例如,一个用sad,而另一个用satd。b.在一个示例中,对于块/子块,如果梯度值(水平和/或垂直)或平均梯度值或梯度值的范围满足条件(例如,大于阈值或在给定范围之外),则可以禁用bio和/或dmvr。c.提出可以在vps/sps/pps/条带头/片组头中从编码器向解码器信令通知用于决定启用/禁用bio/dmvr的准则。3.提出使用其他准则来决定dmvr过程中的一个块的细化运动矢量,诸如替代mrsad的satd或mrsatd或sse或mrsse。a.在一个示例中,dmvr过程中的一个子块的细化运动矢量,诸如替代mrsad的satd或mrsatd或sse或mrsse。b.在一个示例中,如果应用了satd(或mrsatd),则整个块被划分为m×n个子块,并且针对每个子块计算satd(或mrsatd)。对所有或一些子块的satd(或mrsatd)求和,以得到整个块的satd(或mrsatd)值。4.当一个块的两个参考块的平均值差大于阈值(t1)时,可以禁用bio或/和dmvr。a.当一个子块的两个参考子块的平均值差大于阈值(t2)时,可以禁用bio。b.阈值t1和/或t2可以是预定义的。c.阈值t1和/或t2可以取决于块维度。5.提出在bio的早期终止阶段,在计算两个参考块/子块之间的差(例如,sad/satd/sse等)之前,可以首先修改参考块或/和子块。a.在一个示例中,可以计算参考块或/和子块的均值,然后由参考块或/和子块减去该均值。b.在一个示例中,在2018年7月20日提交的标题为“motionpredictionbasedonupdatedmotionvectors(基于更新的运动矢量的运动预测)”的申请no.pct/cn2018/096384(其通过引用并入本文)中公开的方法可以用于计算参考块或/和子块的平均值,即针对一些代表性位置计算平均值。6.提出在bio技术或/和dmvr的早期终止阶段,可以仅针对一些代表性位置计算两个参考块或/和子块之间的差(例如,sad/satd/sse/mrsad/mrsatd/mrsse等)。a.在一个示例中,仅针对块或/和子块计算偶数行的差。b.在一个示例中,仅针对块或/和子块计算一个块/子块的四个角样点的差。c.在一个示例中,2018年7月2日提交的标题为“decodersidemotionvectorderivationinvideocoding(视频编解码中的解码器侧运动矢量推导)”的美国临时申请no.62/693,412(其通过引用并入本文)中公开的方法可以用于选择代表性位置。d.在一个示例中,可以仅针对一些代表性子块计算两个参考块之间的差(例如,sad/satd/sse/mrsad/mrsatd/mrsse等)。e.在一个示例中,对针对代表性位置或子块计算的差(例如,sad/satd/sse/mrsad/mrsatd/mrsse等)求和,以得到整个块/子块的差。7.提出时域梯度(位置(x,y)处的时域梯度被定义为g(x,y)=p0(x,y)-p1(x,y),其中p0(x,y)和p1(x,y)表示来自两个不同参考图片的(x,y)处的预测)或修改的时域梯度被用作bio的早期终止阶段的差(而不是sad),并且用于早期终止的阈值可以被相应地调整。a.在一个示例中,时域梯度的绝对和被计算并用作两个参考块或/和子块的差。b.在一个示例中,仅在块或/和子块的一些代表性位置上计算时域梯度的绝对和。c.在一个示例中,2018年7月2日提交的标题为“decodersidemotionvectorderivationinvideocoding(视频编解码中的解码器侧运动矢量推导)”的美国临时申请no.62/693,412(其通过引用并入本文)中公开的方法可以用于选择代表性位置。8.提出可以针对不同的块/子块自适应执行时域梯度修改过程。a.在一个示例中,时域梯度仅在两个参数块之间的绝对平均差(或sad/satd/sse等)大于阈值t时被修改,例如,t=4。b.在一个示例中,时域梯度仅在两个参数块之间的绝对平均差(或sad/satd/sse等)小于阈值t时被修改,例如,t=20。c.在一个示例中,时域梯度仅在两个参数块之间的绝对平均差(或sad/satd/sse等)在范围[t1,t2]中时被修改,例如,t1=4,t2=20。d.在一个示例中,如果两个参数块之间的绝对平均差(或sad/satd/sse等)大于阈值t(例如,t=40),则bio被禁用。e.在一个示例中,这些阈值可以被隐式预定义。f.在一个示例中,这些阈值可以以sps/pps/图片/条带/片级别来信令通知。g.在一个示例中,对于不同的cu、lcu、条带、片或图片,这些阈值可以不同。i.在一个示例中,可以基于解码/编码的像素值来设计这些阈值。ii.在一个示例中,对于不同的参考图片,可以不同地设计这些阈值。h.在一个示例中,时域梯度仅在两个参考块(或两个中的任何一个)的(绝对)均值大于阈值t时被修改,例如,t=40。i.在一个示例中,时域梯度仅在两个参考块(或两个中的任何一个)的(绝对)均值小于阈值t时被修改,例如,t=100。j.在一个示例中,时域梯度仅在两个参考块(或两个中的任何一个)的(绝对)均值在范围[t1,t2]中时被修改,例如,t1=40,t2=100。k.在一个示例中,时域梯度仅在两个参考块(或两个中的任何一个)的(绝对)均值大于/小于绝对平均差(或sad/satd等)乘以t时被修改,在一个示例中,t=4.5。l.在一个示例中,时域梯度仅在两个参考块(或两个中的任何一个)的(绝对)均值在绝对平均差(或sad/satd等)乘以[t1,t2]的范围中时被修改,在一个示例中,t1=4.5,t2=7。9.提出在混合帧内和帧间预测模式下,当在bio中计算空域梯度时,可以修改两个帧间参考块,或者可以在执行整个bio过程之前修改它们。a.在一个示例中,对每个预测方向上的帧内预测块和帧间预测块进行加权平均(使用与混合帧间和帧间预测中相同的加权方法),以生成两个新的预测块,表示为wavgblkl0和wavgblkl1,其用于在bio中推导空域梯度。b.在一个示例中,wavgblkl0和wavgblkl1用于生成当前块的预测块,表示为predblk。然后,wavgblkl0、wavgblkl1和predblk进一步用于bio过程,并且bio中生成的细化预测块被用作最终预测块。10.提出可以在块级别信令通知dmvr或/和bio标志,以指示是否为该块启用了dmvr或/和bio。a.在一个示例中,可以仅针对amvp模式信令通知这样的标志,并且在merge模式下,可以从空域或/和时域邻近块继承这样的标志。b.在一个示例中,可以通过信令通知的标志和动态(on-the-fly)决定(例如,在早期终止阶段基于sad的决定)来联合决定bio或/和dmvr是否被启用。信令通知的标志可以指示动态决定是否正确。c.不为单向预测块信令通知这样的标志。d.可以不为其两个参考图片在显示顺序上都是在前图片或在后图片的双向预测块信令通知这样的标志。e.如果poc_diff(curpic,ref0)不等于poc_diff(ref1,curpic),则可以不为双向预测块信令通知这样的标志,其中,poc_diff()计算两个图片之间的poc差,并且ref0和ref1是当前图片的参考图片。f.不为帧内编解码块信令通知这样的标志。此外,可选地,不为以混合帧内和帧间预测模式编解码的块信令通知这样的标志。可选地,不为当前图片参考块信令通知这样的标志,即参考图片是当前图片。g.是否信令通知标志可以取决于块维度。例如,如果块尺寸小于阈值,则不信令通知这样的标志。可选地,如果块宽度和/或高度等于或大于阈值,则不信令通知这样的标志。h.是否信令通知标志可以取决于运动矢量精度。例如,如果运动矢量是以整数精度的,则不信令通知这样的标志。i.如果不信令通知这样的标志,它可以被隐式推导为真或假。j.可以在条带头/片头/pps/sps/vps处信令通知标志,以指示该方法是否被启用。k.这样的信令通知方法可以取决于图片的时域层,例如,可以对具有高时域层的图片禁用该方法。l.这样的信令通知方法可以取决于图片的qp,例如,可以对具有高qp的图片禁用该方法。11.代替检查块高度和块尺寸两者,提出仅根据块高度来决定是启用还是禁用dmvr。a.在一个示例中,当块高度大于t1(例如,t1=4)时,可以启用dmvr。b.在一个示例中,当块高度等于或大于t1(例如,t1=8)时,可以启用dmvr。12.应用于dmvr/bio的以上方法可能仅适用于其他解码器侧运动矢量推导(decoder-sidemotionvectorderivation,dmvd)方法,诸如仿射模式的基于光流的预测细化。a.在一个示例中,可以对齐用于dmvr和bio的使用确定的条件检查,诸如块高度是否满足相同的阈值。i.在一个示例中,当块高度等于或大于t1(例如,t1=8)时,可以启用dmvr和bio。ii.在一个示例中,当块高度大于t1(例如,t1=4)时,可以启用dmvr和bio。5.实施例5.1实施例#1在jvet-m1001_v7(vvc工作草案4,版本7)中对dmvr的使用被修改如下:-当所有以下条件都为真时,dmvrflag被设置为等于1:-sps_dmvr_enabled_flag等于1-当前块不以三角形预测模式、amvr仿射模式、子块模式(包括merge仿射模式和atmvp模式)来编解码-merge_flag[xcb][ycb]等于1-predflagl0[0][0]和predflagl1[0][0]两者都等于1-mmvd_flag[xcb][ycb]等于0-diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic)-cbheight大于或等于8这意味着,“cbheight*cbwidth大于或等于64”被删除。5.2实施例#2新添加的部分以黑体斜体而突出显示,并且删除的部分以删除线而突出显示。i.一个示例8.5.7.4双向光流预测过程该过程的输入是:-两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,-两个(ncbw+2)×(ncbh+2)亮度预测样点阵列predsamplesl0和predsamplesl1,-预测列表利用标志predflagl0和predflagl1,-参考索引refidxl0和refidxl1,-双向光流利用标志bdofutilizationflag[xidx][yidx],其中xidx=0..(ncbw>>2)–1,yidx=0..(ncbh>>2)-1。该过程的输出是亮度预测样点值的(ncbw)×(ncbh)阵列pbsamples。变量bitdepth、shift1、shift2、shift3、shift4、offset4和mvrefinethres被推导如下:-变量bitdepth被设置为等于bitdepthy。-变量shift1被设置为等于max(2,14-bitdepth)。-变量shift2被设置为等于max(8,bitdepth-4)。-变量shift3被设置为等于max(5,bitdepth-7)。-变量shift4被设置为等于max(3,15-bitdepth),并且变量offset4被设置为等于1<<(shift4-1)。-变量mvrefinethres被设置为等于max(2,1<<(13-bitdepth))。对于xidx=0..(ncbw>>2)–1和yidx=0..(ncbh>>2)-1,以下适用:-变量xsb被设置为等于(xidx<<2)+1,并且ysb被设置为等于(yidx<<2)+1。-如果bdofutilizationflag[xsbidx][yidx]等于false(假),则对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset2+predsamplesl1[x+1][y+1])>>shift2)(8-852)-否则(bdofutilizationflag[xsbidx][yidx]等于true(真)),当前子块的预测样点值被推导如下:-对于x=xsb-1..xsb+4,y=ysb-1..ysb+4,以下有序步骤适用:4.预测样点阵列内部每个对应样点位置(x,y)的位置(hx,vy)被推导如下:hx=clip3(1,ncbw,x)(8-853)vy=clip3(1,ncbh,y)(8-854)5.变量gradienthl0[x][y]、gradientvl0[x][y]、gradienthl1[x][y]和gradientvl1[x][y]被推导如下:gradienthl0[x][y]=(predsamplesl0[hx+1][vy]-predsamplel0[hx-1][vy])>>shift1(8-855)gradientvl0[x][y]=(predsamplel0[hx][vy+1]-predsamplel0[hx][vy-1])>>shift1(8-856)gradienthl1[x][y]=(predsamplesl1[hx+1][vy]-predsamplel1[hx-1][vy])>>shift1(8-857)gradientvl1[x][y]=(predsamplel1[hx][vy+1]-predsamplel1[hx][vy-1])>>shift1(8-858)6.变量temp[x][y]、temph[x][y]和tempv[x][y]被推导如下:diff[x][y]=(predsamplesl0[hx][vy]-predsamplesl1[hx][vy])>>shift2(8-859)temph[x][y]=(gradienthl0[x][y]+gradienthl1[x][y])>>shift3(8-860)tempv[x][y]=(gradientvl0[x][y]+gradientvl1[x][y])>>shift3(8-861)-变量sgx2、sgy2、sgxgy、sgxdi和sgydi被推导如下:sgx2=σiσj(temph[xsb+i][ysb+j]*temph[xsb+i][ysb+j]),其中i,j=-1..4(8-862)sgy2=σiσj(tempv[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j=-1..4(8-863)sgxgy=σiσj(temph[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j-1..4(8-864)sgxdi=σiσj(-temph[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-865)sgydi=σiσj(-tempv[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-866)-当前子块的水平和垂直运动偏移被推导如下:vx=sgx2>0?clip3(-mvrefinethres,mvrefinethres,-(sgxdi<<3)>>floor(log2(sgx2))):0(8-867)vy=sgy2>0?clip3(-mvrefinethres,mvrefinethres,((sgydi<<3)–((vx*sgxgym)<<12+vx*sgxgys)>>1)>>floor(log2(sgx2))):0(8-868)-对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:bdofoffset=round((vx*(gradienthl1[x+1][y+1]-gradienthl0[x+1][y+1]))>>1)+round((vy*(gradientvl1[x+1][y+1]-gradientvl0[x+1][y+1]))>>1)(8-869)[ed.(jc):round()操作是针对浮点输入定义的。round()操作在这里似乎是多余的,因为输入是整数值。待由提出者确认]pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset4+predsamplesl1[x+1][y+1]+bdofoffset)>>shift4)(8-870)ii.一个示例8.5.7.4双向光流预测过程该过程的输入是:-两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,-两个(ncbw+2)×(ncbh+2)亮度预测样点阵列predsamplesl0和predsamplesl1,-预测列表利用标志predflagl0和predflagl1,-参考索引refidxl0和refidxl1,-双向光流利用标志bdofutilizationflag[xidx][yidx],其中xidx=0..(ncbw>>2)–1,yidx=0..(ncbh>>2)-1。该过程的输出是亮度预测样点值的(ncbw)×(ncbh)阵列pbsamples。变量bitdepth、shift1、shift2、shift3、shift4、offset4和mvrefinethres被推导如下:-变量bitdepth被设置为等于bitdepthy。-变量shift1被设置为等于max(2,14-bitdepth)。-变量shift2被设置为等于max(8,bitdepth-4)。-变量shift3被设置为等于max(5,bitdepth-7)。-变量shift4被设置为等于max(3,15-bitdepth),并且变量offset4被设置为等于1<<(shift4-1)。-变量mvrefinethres被设置为等于max(2,1<<(13-bitdepth))。对于xidx=0..(ncbw>>2)–1和yidx=0..(ncbh>>2)-1,以下适用:-变量xsb被设置为等于(xidx<<2)+1,并且ysb被设置为等于(yidx<<2)+1。-如果bdofutilizationflag[xsbidx][yidx]等于false(假),则对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset2+predsamplesl1[x+1][y+1])>>shift2)(8-852)-否则(bdofutilizationflag[xsbidx][yidx]等于true(真)),当前子块的预测样点值被推导如下:-对于x=xsb-1..xsb+4,y=ysb-1..ysb+4,以下有序步骤适用:7.预测样点阵列内部每个对应样点位置(x,y)的位置(hx,vy)被推导如下:hx=clip3(1,ncbw,x)(8-853)vy=clip3(1,ncbh,y)(8-854)8.变量gradienthl0[x][y]、gradientvl0[x][y]、gradienthl1[x][y]和gradientvl1[x][y]被推导如下:gradienthl0[x][y]=(predsamplesl0[hx+1][vy]>>shift1)-(predsamplel0[hx–1][vy]>>shift1)(8-855)gradientvl0[x][y]=(predsamplel0[hx][vy+1]>>shift1)–(predsamplel0[hx][vy-1]>>shift1)(8-856)gradienthl1[x][y]=(predsamplesl1[hx+1][vy]>>shift1)–(predsamplel1[hx–1][vy]>>shift1)(8-857)gradientvl1[x][y]=(predsamplel1[hx][vy+1]>>shift1)–(predsamplel1[hx][vy-1]>>shift1)(8-858)9.变量temp[x][y]、temph[x][y]和tempv[x][y]被推导如下:diff[x][y]=(predsamplesl0[hx][vy]>>shift2)-(predsamplesl1[hx][vy]>>shift2)(8-859)temph[x][y]=(gradienthl0[x][y]+gradienthl1[x][y])>>shift3(8-860)tempv[x][y]=(gradientvl0[x][y]+gradientvl1[x][y])>>shift3(8-861)-变量sgx2、sgy2、sgxgy、sgxdi和sgydi被推导如下:sgx2=σiσj(temph[xsb+i][ysb+j]*temph[xsb+i][ysb+j]),其中i,j=-1..4(8-862)sgy2=σiσj(tempv[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j=-1..4(8-863)sgxgy=σiσj(temph[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j-1..4(8-864)sgxdi=σiσj(-temph[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-865)sgydi=σiσj(-tempv[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-866)-当前子块的水平和垂直运动偏移被推导如下:vx=sgx2>0?clip3(-mvrefinethres,mvrefinethres,-(sgxdi<<3)>>floor(log2(sgx2))):0(8-867)vy=sgy2>0?clip3(-mvrefinethres,mvrefinethres,((sgydi<<3)–((vx*sgxgym)<<12+vx*sgxgys)>>1)>>floor(log2(sgx2))):0(8-868)-对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:bdofoffset=round((vx*(gradienthl1[x+1][y+1]-gradienthl0[x+1][y+1]))>>1)+round((vy*(gradientvl1[x+1][y+1]-gradientvl0[x+1][y+1]))>>1)(8-869)[ed.(jc):round()操作是针对浮点输入定义的。round()操作在这里似乎是多余的,因为输入是整数值。待由提出者确认]pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset4+predsamplesl1[x+1][y+1]+bdofoffset)>>shift4)(8-870)iii.一个示例8.5.7.4双向光流预测过程该过程的输入是:-两个变量ncbw和ncbh,指定当前编解码块的宽度和高度,-两个(ncbw+2)×(ncbh+2)亮度预测样点阵列predsamplesl0和predsamplesl1,-预测列表利用标志predflagl0和predflagl1,-参考索引refidxl0和refidxl1,-双向光流利用标志bdofutilizationflag[xidx][yidx],其中xidx=0..(ncbw>>2)–1,yidx=0..(ncbh>>2)-1。该过程的输出是亮度预测样点值的(ncbw)×(ncbh)阵列pbsamples。变量bitdepth、shift1、shift2、shift3、shift4、offset4、offset5、offset6和mvrefinethres被推导如下:-变量bitdepth被设置为等于bitdepthy。-变量shift1被设置为等于max(2,14-bitdepth)。-变量shift2被设置为等于max(8,bitdepth-4)。-变量shift3被设置为等于max(5,bitdepth-7)。-变量shift4被设置为等于max(3,15-bitdepth),并且变量offset4被设置为等于1<<(shift4-1)。-变量mvrefinethres被设置为等于max(2,1<<(13-bitdepth))。-变量offset5被设置为等于(1<<(shift1–1))。-变量offset6被设置为等于(1<<(shift2–1))。对于xidx=0..(ncbw>>2)–1和yidx=0..(ncbh>>2)-1,以下适用:-变量xsb被设置为等于(xidx<<2)+1,并且ysb被设置为等于(yidx<<2)+1。-如果bdofutilizationflag[xsbidx][yidx]等于false(假),则对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset2+predsamplesl1[x+1][y+1])>>shift2)(8-852)-否则(bdofutilizationflag[xsbidx][yidx]等于true(真)),当前子块的预测样点值被推导如下:-对于x=xsb-1..xsb+4,y=ysb-1..ysb+4,以下有序步骤适用:10.预测样点阵列内部每个对应样点位置(x,y)的位置(hx,vy)被推导如下:hx=clip3(1,ncbw,x)(8-853)vy=clip3(1,ncbh,y)(8-854)11.变量gradienthl0[x][y]、gradientvl0[x][y]、gradienthl1[x][y]和gradientvl1[x][y]被推导如下:gradienthl0[x][y]=(predsamplesl0[hx+1][vy]-predsamplel0[hx-1][vy]+offset5)>>shift1(8-855)gradientvl0[x][y]=(predsamplel0[hx][vy+1]-predsamplel0[hx][vy-1]+offset5)>>shift1(8-856)gradienthl1[x][y]=(predsamplesl1[hx+1][vy]-predsamplel1[hx-1][vy]+offset5)>>shift1(8-857)gradientvl1[x][y]=(predsamplel1[hx][vy+1]-predsamplel1[hx][vy-1]+offset5)>>shift1(8-858)12.变量temp[x][y]、temph[x][y]和tempv[x][y]被推导如下:diff[x][y]=(predsamplesl0[hx][vy]-predsamplesl1[hx][vy]+offset6)>>shift2(8-859)temph[x][y]=(gradienthl0[x][y]+gradienthl1[x][y])>>shift3(8-860)tempv[x][y]=(gradientvl0[x][y]+gradientvl1[x][y])>>shift3(8-861)-变量sgx2、sgy2、sgxgy、sgxdi和sgydi被推导如下:sgx2=σiσj(temph[xsb+i][ysb+j]*temph[xsb+i][ysb+j]),其中i,j=-1..4(8-862)sgy2=σiσj(tempv[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j=-1..4(8-863)sgxgy=σiσj(temph[xsb+i][ysb+j]*tempv[xsb+i][ysb+j]),其中i,j-1..4(8-864)sgxdi=σiσj(-temph[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-865)sgydi=σiσj(-tempv[xsb+i][ysb+j]*diff[xsb+i][ysb+j]),其中i,j=-1..4(8-866)-当前子块的水平和垂直运动偏移被推导如下:vx=sgx2>0?clip3(-mvrefinethres,mvrefinethres,-(sgxdi<<3)>>floor(log2(sgx2))):0(8-867)vy=sgy2>0?clip3(-mvrefinethres,mvrefinethres,((sgydi<<3)–((vx*sgxgym)<<12+vx*sgxgys)>>1)>>floor(log2(sgx2))):0(8-868)-对于x=xsb-1..xsb+2,y=ysb-1..ysb+2,当前子块的预测样点值被推导如下:bdofoffset=round((vx*(gradienthl1[x+1][y+1]-gradienthl0[x+1][y+1]))>>1)+round((vy*(gradientvl1[x+1][y+1]-gradientvl0[x+1][y+1]))>>1)(8-869)[ed.(jc):round()操作是针对浮点输入定义的。round()操作在这里似乎是多余的,因为输入是整数值。待由提出者确认]pbsamples[x][y]=clip3(0,(2bitdepth)-1,(predsamplesl0[x+1][y+1]+offset4+predsamplesl1[x+1][y+1]+bdofoffset)>>shift4)(8-870)图8是视频处理装置800的框图。装置800可以用于实施本文描述的一个或多个方法。装置800可以包含在智能手机、平板电脑、计算机、物联网(iot)接收器等中。装置800可以包括一个或多个处理器802、一个或多个存储器804和视频处理硬件806。(多个)处理器802可以被配置为实施本文档中描述的一个或多个方法。存储器(多个存储器)804可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件806可以用于在硬件电路中实施本文档中描述的一些技术。视频处理硬件806可以以专用硬件、图形处理器单元(graphicalprocessorunit,gpu)或专用信号处理块的形式部分或完全地包括在(多个)处理器802内。图10是处理视频的方法1000的流程图。方法1000包括:执行对第一视频块的特性的确定(1005),该特性包括与第一视频块相关联的参考块之间的差,该差包括绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值中的一个或多个;基于第一视频块的特性来确定(1010)双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种的操作状态,该操作状态是启用或禁用中的一个;以及按照(consistentwith)bio技术或dmvr技术中的一种或两种的操作状态来执行(1015)对第一视频块的进一步处理。图11是处理视频的方法1100的流程图。方法1100包括:修改(1105)第一参考块以生成第一修改参考块,并且修改第二参考块以生成第二修改参考块,第一参考块和第二参考块与第一视频块相关联;执行(1110)第一修改参考块和第二修改参考块之间的差,该差包括绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值中的一个或多个;以及基于第一修改参考块和第二修改参考块之间的差来执行(1115)对第一视频块的进一步处理。图12是处理视频的方法1200的流程图。方法1200包括:确定(1205)与第一视频块相关联的第一参考块的一部分和第二参考块的一部分之间的差,该差包括绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值中的一个或多个;以及基于该差来执行(1210)对第一视频块的进一步处理。图13是处理视频的方法1300的流程图。方法1300包括:使用与第一视频块相关联的参考图片来确定(1305)时域梯度或修改的时域梯度,该时域梯度或修改的时域梯度指示参考图片之间的差;以及根据该差,使用双向光流(bio)编解码工具来执行(1310)对第一视频块的进一步处理。图14是处理视频的方法1400的流程图。方法1400包括:使用与第一视频块相关联的参考图片来确定(1405)时域梯度;修改(1410)时域梯度以生成修改的时域梯度;以及使用修改的时域梯度来执行(1415)对第一视频块的进一步处理。图15是处理视频的方法1500的流程图。方法1500包括:修改(1505)与第一视频块相关联的第一帧间参考块和第二帧间参考块中的一个或两个;使用修改的第一帧间参考块或修改的第二帧间参考块中的一个或两个,根据双向光流编解码工具(bio)来确定(1510)空域梯度;以及基于空域梯度来执行(1515)对第一视频块的进一步处理。图16是处理视频的方法1600的流程图。方法1600包括:执行(1605)对在块级别信令通知的标志指示要对第一视频块启用解码器侧运动矢量细化(dmvr)或双向光流(bio)中的一种或两种的确定;以及执行(1610)对第一视频块的进一步处理,该处理包括按照该标志来应用dmvr或bio中的一种或两种。参考方法1000、1100、1200、1300、1400、1500和1600,在本文档的第4节中描述了确定使用双向光流(bio)或解码器侧运动矢量细化(dmvr)的一些示例。例如,如第4节所述,可以确定参考块之间的差,并且该差可以用于启用或禁用bio或dmvr。参考方法1000、1100、1200、1300、1400、1500和1600,可以在视频比特流中编码视频块,其中可以通过使用与运动信息预测相关的比特流生成规则来实现比特效率。该方法可以包括其中bio技术或dmvr技术的操作状态在块级别和子块级别之间不同。该方法可以包括确定梯度值、梯度值的平均值或梯度值的范围中的一个或多个在阈值范围内,其中,确定操作状态是基于对梯度值、梯度值的平均值或梯度值的范围在阈值范围内的确定的。该方法可以包括其中确定操作状态还基于在视频参数集(vps)、序列参数集(sps)、图片参数集(pps)、片组头或条带头中从编码器信令通知到解码器的信息。该方法可以包括基于satd、mrsatd、sse或mrsse来确定第一视频块的细化运动矢量,并且其中,执行进一步处理是基于细化运动矢量的。该方法可以包括其中确定细化运动矢量是基于satd或mrsatd的,该方法还包括:确定第一视频块的每个子块的satd或mrsatd;以及基于每个子块的satd或mrsatd的和来生成第一视频块的satd或mrsatd,其中,对第一视频块的进一步处理是基于所生成的satd或mrsatd的。该方法可以包括确定第一视频块的两个参考块的平均值差大于阈值,并且其中,基于两个参考块的平均值差,bio或dmvr中的一种或两种处于禁用操作状态。该方法可以包括确定第一视频块的子块的两个参考子块的平均值差大于阈值,并且其中,基于两个参考子块的平均值差,bio或dmvr中的一种或两种处于禁用操作状态。该方法可以包括其中阈值是预定义的。该方法可以包括确定第一视频块的维度,并且其中,阈值基于第一视频块的维度。该方法可以包括其中修改第一参考块和第二参考块包括从第一参考块减去第一参考块的均值。该方法可以包括其中第一参考块和第二参考块的部分包括偶数行。该方法可以包括其中第一参考块和第二参考块的部分包括角样点。该方法可以包括其中第一参考块和第二参考块的部分包括代表性子块。该方法可以包括其中代表性子块之间的差被求和,以生成第一参考块或第二参考块的差。该方法可以包括其中该差与时域梯度的绝对和相关。该方法可以包括其中修改时域梯度是基于参考块之间的绝对平均差大于阈值的。该方法可以包括其中阈值是4。该方法可以包括其中修改时域梯度是基于参考块之间的绝对平均差小于阈值的。该方法可以包括其中阈值是20。该方法可以包括其中修改时域梯度是基于参考块之间的绝对平均差在阈值范围内的。该方法可以包括其中基于绝对平均差大于阈值,bio处于禁用操作状态。该方法可以包括其中阈值或阈值范围是以vps、sps、pps、图片、条带或片级别指示的。该方法可以包括其中对于不同的编解码单元(cu)、最大编解码单元(lcu)、条带、片或图片,阈值或阈值范围是不同的。该方法可以包括其中阈值或阈值范围基于解码或编码的像素值。该方法可以包括其中阈值或阈值范围基于参考图片。该方法可以包括其中确定空域梯度包括确定每个预测方向上的帧内预测块和帧间预测块的加权平均值。该方法可以包括其中标志是在高级运动矢量预测(amvp)模式下提供的,并且在merge模式下,标志是从空域邻近块或时域邻近块中的一个或两个继承的。该方法可以包括其中不为单向预测块信令通知标志。该方法可以包括其中不为具有参考图片的双向预测块信令通知标志,其中该参考图片在显示顺序上是在前图片或在后图片。该方法可以包括其中不为双向预测块信令通知标志。该方法可以包括其中不为帧内编解码块信令通知标志。该方法可以包括其中不为以混合帧内和帧间预测模式编解码的块信令通知标志。该方法可以包括其中标志是基于第一视频块的维度而信令通知的。该方法可以包括其中标志是在vps、sps或pps中信令通知的。该方法可以包括其中标志基于与第一视频块相关联的图片的时域层。该方法可以包括其中标志基于与第一视频块相关联的图片的量化参数(qp)。图17是示出可以在其中实施本文公开的各种技术的示例视频处理系统1700的框图。各种实施方式可以包括系统1700的一些或所有组件。系统1700可以包括用于接收视频内容的输入1702。视频内容可以以原始或未压缩格式接收,例如,8或10比特多分量像素值,或者可以是压缩或编码格式。输入1702可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(passiveopticalnetwork,pon)等)和无线接口(诸如wi-fi或蜂窝接口)。系统1700可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1704。编解码组件1704可以将来自输入1702的视频的平均比特率减小到编解码组件1704的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1704的输出可以被存储,或者经由如由组件1706表示的连接的通信而发送。在输入1702处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件1708用于生成像素值或被发送到显示接口1710的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且将由解码器执行反转编解码结果的对应的解码工具或操作。外围总线接口或显示接口的示例可以包括通用串行总线(universalserialbus,usb)或高清多媒体接口(highdefinitionmultimediainterface,hdmi)或显示端口等。存储接口的示例包括sata(serialadvancedtechnologyattachmen,串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。应当理解,所公开的技术可以体现在视频编码器或解码器中,以在被压缩的编解码单元具有与传统方形块或半方形的矩形块显著不同的形状时提高压缩效率。例如,使用长或高编解码单元(诸如4×32或32×4尺寸单元)的新编解码工具可以受益于所公开的技术。在一些实施方式中,一种视频处理的方法可以如下执行:在视频块和视频块的比特流表示之间的转换期间,使用用于计算空域梯度和时域梯度的滤波方法,以及使用该滤波执行该转换。这里,转换包括从视频块的像素值生成比特流表示或者从比特流表示生成像素值。在一些实施例中,空域梯度和时域梯度使用移位的样点差来计算。在一些实施例中,空域梯度和时域梯度使用修改的样点来计算。在第4节中讨论的第1项中提供了该方法的附加细节。图18是视频处理方法的示例的流程图。在本文档的第4节的示例2中讨论了该方法的步骤。该方法包括(在步骤1805处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于与当前块相关联的成本准则的。图19是视频处理方法的示例的流程图。在本文档的第4节的示例3中讨论了该方法的步骤。该方法包括(在步骤1905处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定解码器侧运动矢量细化(dmvr)技术对当前块所进行的使用被启用还是禁用,并且其中,dmvr技术包括基于除了绝对差平均移除和(mrsad)成本准则之外的成本准则来细化当前块的运动信息。图20是视频处理方法的示例的流程图。在本文档的第4节的示例4中讨论了该方法的步骤。该方法包括(在步骤2005处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于计算与当前块相关联的一对参考块的平均值差超过阈值的。图21是视频处理方法的示例的流程图。在本文档的第4节的示例6中讨论了该方法的步骤。该方法包括(在步骤2105处)修改第一参考块以生成第一修改参考块,并且修改第二参考块以生成第二修改参考块,其中,第一参考块和第二参考块两者都与可视媒体数据的当前块相关联。该方法还包括(在步骤2110处)确定第一修改参考块和第二修改参考块之间的差,该差包括以下中的一个或多个:绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值。该方法包括(在步骤2115处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括使用通过分别修改第一参考块和第二参考块而生成的第一修改参考块和第二修改参考块之间的差。图22是视频处理方法的示例的流程图。在本文档的第4节的示例7中讨论了该方法的步骤。该方法包括(在步骤2205处)使用与可视媒体数据的当前块相关联的参考图片来确定时域梯度或修改的时域梯度,该时域梯度或修改的时域梯度指示参考图片之间的差。该方法包括(在步骤2210处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括部分地基于时域梯度或修改的时域梯度来使用双向光流(bio)技术。图23是视频处理方法的示例的流程图。在本文档的第4节的示例8中讨论了该方法的步骤。该方法包括(在步骤2305处)使用与第一视频块或其子块相关联的参考图片来确定第一时域梯度。该方法包括(在步骤2310处)使用与第二视频块或其子块相关联的参考图片来确定第二时域梯度。该方法包括(在步骤2315处)执行对第一时域梯度的修改和对第二时域梯度的修改,以生成修改的第一时域梯度和修改的第二时域梯度,其中,对与第一视频块相关联的第一时域梯度的修改不同于对与第二视频块相关联的第二时域梯度的修改。该方法包括(在步骤2320处)执行第一视频块和第二视频块到它们的对应编解码表示的转换。图24是视频处理方法的示例的流程图。在本文档的第4节的示例9中讨论了该方法的步骤。该方法包括(在步骤2405处)修改与当前块相关联的第一帧间参考块和第二帧间参考块中的一个或两个。该方法包括(在步骤2410处)根据应用双向光流(bio)技术,基于使用修改的第一帧间参考块和/或修改的第二帧间参考块中的一个或两个来确定与当前块相关联的空域梯度。该方法包括(在步骤2415处)执行当前块和对应编解码表示之间的转换,其中,该转换包括使用与当前块相关联的空域梯度。图25是视频处理方法的示例的流程图。在本文档的第4节的示例10中讨论了该方法的步骤。该方法包括(在步骤2505处)由处理器执行对在块级别信令通知的标志至少部分地指示要对当前块启用解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种的确定。该方法包括(在步骤2510处)执行当前块和对应编解码表示之间的转换,其中,编解码表示包括指示dmvr技术和/或bio技术中的一种或两种是否被启用的标志。图26是视频处理方法的示例的流程图。在本文档的第4节的示例11中讨论了该方法的步骤。该方法包括(在步骤2605处)由处理器执行对要对当前块启用解码器侧运动矢量细化(dmvr)技术的确定,其中,该确定排他地基于当前块的高度。该方法包括(在步骤2610处)执行当前块和对应编解码表示之间的转换。图27是视频处理方法的示例的流程图。在本文档的第4节的示例12中讨论了该方法的步骤。该方法包括(在步骤2705处)执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括在当前块上使用与解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种相关联的规则,其中,与dmvr技术相关联的规则与bio技术的应用一致,并且其中,确定bio技术或dmvr技术中的一种或两种在当前块上的使用被启用还是禁用是基于应用该规则的。以基于条款的格式讨论了本技术的一些实施例。1.一种可视媒体处理的方法,包括:执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于与当前块相关联的成本准则的。2.根据条款1所述的方法,其中,成本准则基于以下中的一个或多个:绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值。3.根据条款1-2中任一项或多项所述的方法,其中,成本准则与当前块的子块相关联。4.根据条款3所述的方法,其中,子块级别成本准则不同于块级别成本准则。5.根据条款1-4中任一项或多项所述的方法,还包括:在确定梯度值、梯度值的平均值或梯度值的范围中的一个或多个在阈值范围之外时,禁用对bio技术和/或dmvr技术的应用。6.根据条款1所述的方法,其中,与当前块相关联的成本准则在编解码表示中信令通知。7.根据条款6所述的方法,其中,成本准则在视频参数集(vps)、序列参数集(sps)、图片参数集(pps)、片组头或条带头中信令通知。8.一种可视媒体处理的方法,包括:执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定解码器侧运动矢量细化(dmvr)技术对当前块所进行的使用被启用还是禁用,并且其中,dmvr技术包括基于除了绝对差平均移除和(mrsad)成本准则之外的成本准则来细化当前块的运动信息。9.根据条款8所述的方法,其中,与当前块相关联的成本准则基于以下中的一个或多个:绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)或平方误差平均移除和(mrsse)。10.根据条款8-9中任一项或多项所述的方法,其中,成本准则与当前块的子块相关联。11.根据条款10所述的方法,还包括:将当前块划分为尺寸为m×n的多个子块,其中,成本准则基于与多个子块中的每一个相关联的运动信息;以及生成对应于多个子块中的每一个的成本。12.根据条款11所述的方法,还包括:对对应于多个子块中的每一个的成本的至少一个子集求和,以生成与当前块相关联的结果成本。13.一种可视媒体处理的方法,包括:执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,当前块的转换包括确定双向光流(bio)技术或解码器侧运动矢量细化(dmvr)技术中的一种或两种对当前块所进行的使用被启用还是禁用,并且其中,确定使用bio技术或dmvr技术是基于计算与当前块相关联的一对参考块的平均值差超过阈值的。14.根据条款13所述的方法,其中,该阈值是第一阈值,还包括:在确定与当前块的子块相关联的一对参考子块的平均值差超过第二阈值时,禁用对bio技术和/或dmvr技术的应用。15.根据条款14所述的方法,其中,第一阈值和/或第二阈值是预定义的数。16.根据条款14所述的方法,其中,第一阈值和/或第二阈值基于当前块的维度。17.一种可视媒体处理的方法,包括:修改第一参考块以生成第一修改参考块,并且修改第二参考块以生成第二修改参考块,其中,第一参考块和第二参考块两者都与可视媒体数据的当前块相关联;确定第一修改参考块和第二修改参考块之间的差,该差包括以下中的一个或多个:绝对变换差和(satd)、绝对变换差平均移除和(mrsatd)、平方误差和(sse)、平方误差平均移除和(mrsse)、平均值差或梯度值;以及执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括使用通过分别修改第一参考块和第二参考块而生成的第一修改参考块和第二修改参考块之间的差。18.根据条款17所述的方法,其中,修改第一参考块和第二参考块包括:基于包括在第一参考块中的样点值来计算第一算术均值,并且基于包括在第二参考块中的样点值来计算第二算术均值;从包括在第一参考块中的样点减去第一算术均值,并且从包括在第二参考块中的样点减去第二算术均值。19.根据条款18所述的方法,其中,第一算术均值和第二算术均值基于分别包括在第一参考块和第二参考块中的样点的子集。20.根据条款17-19中任一项或多项所述的方法,其中,第一参考块和/或第二参考块是与当前块相关联的子块。21.一种可视媒体处理的方法,包括:使用与可视媒体数据的当前块相关联的参考图片来确定时域梯度或修改的时域梯度,该时域梯度或修改的时域梯度指示参考图片之间的差;以及执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括部分地基于时域梯度或修改的时域梯度来使用双向光流(bio)技术。22.根据条款21所述的方法,还包括:响应于确定时域梯度或修改的时域梯度小于或等于阈值,提前终止bio技术。23.根据条款22所述的方法,还包括:基于用于计算时域梯度或修改的梯度的绝对和的样点的数量来调整阈值。24.根据条款21-23中任一项或多项所述的方法,其中,该差与时域梯度的绝对和相关。25.根据条款21-24中任一项或多项所述的方法,其中,参考图片之间的差对应于第一参考图片的第一部分和第二参考图片的第二部分之间的差。26.根据条款21-25中任一项或多项所述的方法,其中,参考图片与当前块的子块相关联。27.一种可视媒体处理的方法,包括:使用与第一视频块或其子块相关联的参考图片来确定第一时域梯度;使用与第二视频块或其子块相关联的参考图片来确定第二时域梯度;执行对第一时域梯度的修改和对第二时域梯度的修改,以生成修改的第一时域梯度和修改的第二时域梯度,其中,对与第一视频块相关联的第一时域梯度的修改不同于对与第二视频块相关联的第二时域梯度的修改;以及执行第一视频块和第二视频块到它们的对应编解码表示的转换。28.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片之间的绝对平均差大于阈值。29.根据条款28所述的方法,其中,该阈值是4。30.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片之间的绝对平均差小于阈值。31.根据条款30所述的方法,其中,该阈值是20。32.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片之间的绝对平均差在阈值范围内。33.根据条款27-32中任一项所述的方法,还包括:基于与第一视频块和/或第二视频块相关联的参考图片之间的绝对平均差大于阈值,禁用双向光流(bio)技术在第一视频块和/或第二视频块上的使用。34.根据条款27-33中任一项或多项所述的方法,其中,阈值或阈值范围是以与第一视频块和/或第二视频块相关联的vps、sps、pps、图片、条带或片级别指示的。35.根据条款27-33中任一项或多项所述的方法,其中,阈值或阈值范围是隐式预定义的参数。36.根据条款27-33中任一项或多项所述的方法,其中,对于与第一视频块和/或第二视频块相关联的不同的编解码单元(cu)、最大编解码单元(lcu)、条带、片或图片,阈值或阈值范围是不同的。37.根据条款27-33中任一项或多项所述的方法,其中,阈值或阈值范围基于与第一视频块和/或第二视频块相关联的解码或编码的像素值。38.根据条款27-33中任一项或多项所述的方法,其中,第一参考图片集合的阈值或阈值范围不同于第二参考图片集合的阈值或阈值范围。39.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片的绝对均值大于阈值。40.根据条款39所述的方法,其中,该阈值是40。41.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片的绝对均值小于阈值。42.根据条款41所述的方法,其中,该阈值是100。43.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片的绝对均值在阈值范围内。44.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片的绝对均值大于与第一视频块和/或第二视频块相关联的参考图片的绝对平均差乘以乘法因子。45.根据条款27所述的方法,其中,对第一时域梯度的修改和/或对第二时域梯度的修改有条件地基于与第一视频块和/或第二视频块相关联的参考图片的绝对均值小于与第一视频块和/或第二视频块相关联的参考图片的绝对平均差乘以乘法因子。46.根据条款44-45中任一项或多项所述的方法,其中,乘法因子是4.5。47.一种可视媒体处理的方法,包括:修改与当前块相关联的第一帧间参考块和第二帧间参考块中的一个或两个;根据应用双向光流(bio)技术,基于使用修改的第一帧间参考块和/或修改的第二帧间参考块中的一个或两个来确定与当前块相关联的空域梯度;以及执行当前块和对应编解码表示之间的转换,其中,该转换包括使用与当前块相关联的空域梯度。48.根据条款47所述的方法,其中,确定空域梯度包括:基于与当前块相关联的帧内预测块和帧间预测块的加权平均来生成两个预测块;以及使用两个预测块用于确定与当前块相关联的空域梯度。49.根据条款48所述的方法,还包括:使用bio技术从两个预测块生成细化预测块;以及使用细化预测块用于预测当前块的子块和/或样点。50.一种可视媒体处理的方法,包括:由处理器执行对在块级别信令通知的标志至少部分地指示要对当前块启用解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种的确定;以及执行当前块和对应编解码表示之间的转换,其中,编解码表示包括指示dmvr技术和/或bio技术中的一种或两种是否被启用的标志。51.根据条款50所述的方法,其中,响应于检测到对当前块启用了高级运动矢量预测(amvp)技术,在编解码表示中信令通知该标志。52.根据条款50所述的方法,其中,响应于检测到对当前块启用了merge模式,从与当前块相关联的空域邻近块或时域邻近块中的一种或两种推导该标志。53.根据条款52所述的方法,其中,如果所选择的merge候选是空域merge候选,则从所选择的merge候选继承该标志。54.根据条款52所述的方法,其中,如果所选择的merge候选是时域merge候选,则从所选择的merge候选继承该标志。55.根据条款50所述的方法,其中,与当前块相关联的成本准则用于确定dmvr技术和/或bio技术中的一种或两种是否被启用,并且在编解码表示中信令通知的标志用于指示这样的确定是否正确。56.根据条款55所述的方法,其中,与当前块相关联的成本准则是当前块的两个参考块之间的绝对差和(sad),并且其中,当成本准则大于阈值时,对dmvr技术和/或bio技术中的一种或两种被启用的确定适用。57.根据条款50所述的方法,还包括:在确定当前块是单向预测块时,跳过在编解码表示中信令通知该标志。58.根据条款50所述的方法,还包括:在确定当前块是与一对参考图片相关联的双向预测块时,跳过在编解码表示中信令通知该标志,其中该一对参考图片在显示顺序上都是在前的或在后的。59.根据条款50所述的方法,还包括:在确定当前块是与一对参考图片相关联的双向预测块时,跳过在编解码表示中信令通知该标志,其中该一对参考图片具有不同于与当前块相关联的当前图片的图片顺序计数(poc)距离。60.根据条款50所述的方法,还包括:在确定当前块是帧内编解码块时,跳过在编解码表示中信令通知该标志。61.根据条款50所述的方法,还包括:在确定当前块是混合帧内和帧间预测块时,跳过在编解码表示中信令通知该标志。62.根据条款50所述的方法,还包括:在确定当前块与图片中的与参考块相同的至少一个块相关联时,跳过在编解码表示中信令通知该标志。63.根据条款50所述的方法,还包括:在确定当前块的维度小于阈值时,跳过在编解码表示中信令通知该标志。64.根据条款50所述的方法,还包括:在确定当前块的维度大于或等于阈值时,跳过在编解码表示中信令通知该标志。65.根据条款50所述的方法,还包括:在确定与当前块相关联的运动信息的精度是整数精度时,跳过在编解码表示中信令通知该标志。66.根据条款50所述的方法,还包括:在确定与包含当前块的图片相关联的时域层超过阈值时,跳过在编解码表示中信令通知该标志。67.根据条款50所述的方法,还包括:在确定与当前块相关联的量化参数超过阈值时,跳过在编解码表示中信令通知该标志。68.根据条款50-67中任一项或多项所述的方法,还包括:响应于确定跳过了在编解码表示中信令通知该标志,将标志的值推导为布尔(boolean)真或假。69.根据条款50-67中任一项或多项所述的方法,还包括:在确定标志是布尔真时,启用dmvr技术或bio技术中的一种或两种。70.根据条款50-67中任一项或多项所述的方法,还包括:在确定标志是布尔假时,禁用dmvr技术或bio技术中的一种或两种。71.根据条款50-67中任一项或多项所述的方法,还包括:在确定标志是布尔真时,基于至少一个成本准则对启用或禁用dmvr技术或bio技术中的一种或两种的确定被确定为正确。72.根据条款50-67中任一项或多项所述的方法,还包括:在确定标志是布尔假时,基于至少一个成本准则对启用或禁用dmvr技术或bio技术中的一种或两种的确定被确定为不正确。73.根据条款50-67中任一项或多项所述的方法,其中,标志是在条带头、片头、视频参数集(vps)、序列参数集(sps)或图片参数集(pps)中信令通知的。74.根据条款50所述的方法,其中,第一标志被信令通知以指示dmvr技术是否被禁用,并且第二标志被信令通知以指示bio技术是否被禁用。75.根据条款64-74中任一项或多项所述的方法,还包括:在确定对于dmvr技术的标志是布尔真时,对于条带、片、视频、序列或图片禁用dmvr技术。76.根据条款64-74中任一项或多项所述的方法,还包括:在确定对于dmvr技术的标志是布尔假时,对于条带、片、视频、序列或图片启用dmvr技术。77.根据条款64-74中任一项或多项所述的方法,还包括:在确定对于bio技术的标志是布尔真时,对于条带、片、视频、序列或图片禁用bio技术。78.根据条款64-74中任一项或多项所述的方法,还包括:在确定对于bio技术的标志是布尔假时,对于条带、片、视频、序列或图片启用bio技术。79.一种可视媒体处理的方法,包括:由处理器执行对要对当前块启用解码器侧运动矢量细化(dmvr)技术的确定,其中,该确定排他地基于当前块的高度;以及执行当前块和对应编解码表示之间的转换。80.根据条款79所述的方法,还包括:响应于确定dmvr技术被启用,验证当前块的高度大于或超过阈值参数。81.根据条款80所述的方法,其中,该阈值参数等于4。82.根据条款80所述的方法,其中,该阈值参数等于8。83.一种可视媒体处理的方法,包括:执行可视媒体数据的当前块和可视媒体数据的对应编解码表示之间的转换,其中,该转换包括在当前块上使用与解码器侧运动矢量细化(dmvr)技术或双向光流(bio)技术中的一种或两种相关联的规则,其中,与dmvr技术相关联的规则与bio技术的应用一致;并且其中,确定bio技术或dmvr技术中的一种或两种被启用在当前块上的使用还是禁用是基于应用该规则。84.根据条款83所述的方法,其中,确定dmvr技术是否被启用的规则与确定bio技术是否被启用的规则相同。85.根据条款84所述的方法,其中,确定bio技术和/或dmvr技术是否被启用的规则指定验证当前块的高度大于或等于阈值。86.根据条款84所述的方法,其中,确定bio技术和/或dmvr技术是否被启用的规则指定验证当前块的宽度和高度都大于或等于阈值。87.根据条款85或86中任一项或多项所述的方法,其中,该阈值是4或8。88.根据条款84所述的方法,其中,确定bio技术和/或dmvr技术是否被启用的规则指定验证当前块的尺寸大于或等于阈值。89.根据条款86所述的方法,其中,该阈值是64或128。90.根据条款84所述的方法,其中,确定bio技术和/或dmvr技术是否被启用的规则指定验证当前块不在cu级别权重双向预测(bcw)模式下被编解码,其中,不相等的权重用于来自两个参考列表的两个参考块。91.根据条款84所述的方法,其中,确定bio技术和/或dmvr技术是否被启用的规则指定验证当前块是与一对参考图片相关联的双向预测块,其中该一对参考图片具有与与当前块相关联的当前图片相同的图片顺序计数(poc)距离。92.根据条款91所述的方法,其中,一对参考图片包括与当前块相关联的当前图片在显示顺序上的在前图片和在后图片。93.一种视频解码装置,包括处理器,其中该处理器被配置为实施条款1至92中的一项或多项所述的方法。94.一种视频编码装置,包括处理器,其中该处理器被配置为实施条款1至92中的一项或多项所述的方法。95.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使得处理器实施条款1至92中任一项所述的方法。96.一种本文档中描述的方法、装置或系统。本文档中描述的所公开的和其它方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。仅描述了几个实施方式和示例,并且可以基于本专利文档中描述和图示的内容进行其它实施、增强和变化。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1