CN113767634A - 利用细化的帧间预测的统一计算方法 - Google Patents

利用细化的帧间预测的统一计算方法 Download PDF

Info

Publication number
CN113767634A
CN113767634A CN202080033445.3A CN202080033445A CN113767634A CN 113767634 A CN113767634 A CN 113767634A CN 202080033445 A CN202080033445 A CN 202080033445A CN 113767634 A CN113767634 A CN 113767634A
Authority
CN
China
Prior art keywords
block
prediction
video
gradient
temporal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080033445.3A
Other languages
English (en)
Other versions
CN113767634B (zh
Inventor
刘鸿彬
张莉
张凯
许继征
王悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of CN113767634A publication Critical patent/CN113767634A/zh
Application granted granted Critical
Publication of CN113767634B publication Critical patent/CN113767634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种可视媒体处理的方法包括执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,其中当前块的转换包括基于与当前块相关联的空域临近样点的样点差值来计算空域梯度和/或基于与当前块相关联的时域临近样点来计算时域梯度,并且其中用于计算空域梯度的技术与用于计算时域梯度的技术相同。

Description

利用细化的帧间预测的统一计算方法
相关申请的交叉引用
根据适用的专利法和/或巴黎公约的规则,本申请旨在及时要求2019年5月7日提交的国际专利申请号PCT/CN2019/085796的优先权和利益。出于法律规定的所有目的,上述申请的全部公开内容作为本申请公开内容的一部分通过引用结合于此。
技术领域
本文档与视频和图像的编解码和解码技术相关。
背景技术
数字视频占据了互联网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的联网用户设备的数量的增加,预计数字视频使用的带宽需求将继续增长。
发明内容
在一个示例方面,公开了一种可视媒体处理的方法。该方法包括执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,其中当前块的转换包括基于与当前块相关联的空域临近样点的样点差值来计算空域梯度和/或基于与当前块相关联的时域临近样点来计算时域梯度,并且其中用于计算空域梯度的技术与用于计算时域梯度的技术相同。
在另一示例方面,公开了一种可视媒体处理的方法。该方法包括执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,其中当前块的转换包括基于计算与当前块相关联的空域临近样点的样点差值来计算空域梯度,并且其中在计算样点差值之前应用空域临近样点的样点差值的左移或右移。
在另一示例方面,上述方法可以由包括处理器的视频解码器装置来实施。
在另一示例方面,上述方法可以由包括处理器的视频编码器装置来实施。
在又一示例方面,这些方法可以以处理器可执行指令的形式体现,并存储在计算机可读程序介质上。
这些和其他方面将在本文档中进一步描述。
附图说明
图1示出了双边匹配的示例。
图2示出了模板匹配的示例。
图3示出了帧速率上转换(Frame-Rate Up Conversion,FRUC)中的单边运动估计(motion estimation,ME)的示例。
图4示出了光流轨迹的示例。
图5A和图5B示出了没有块扩展的双向光流(bi-directional optical flow,BIO)的示例。
图6示出了利用6点搜索的双边匹配的示例。
图7示出了自适应整数搜索模式和半样点搜索模式的示例。
图8是视频处理装置的示例的框图。
图9示出了视频编码器的示例实施方式的框图。
图10是视频处理方法的示例的流程图。
图11是视频处理方法的示例的流程图。
图12是视频处理方法的示例的流程图。
图13是视频处理方法的示例的流程图。
图14是视频处理方法的示例的流程图。
图15是视频处理方法的示例的流程图。
图16是视频处理方法的示例的流程图。
图17是其中可以实施所公开的技术的示例视频处理系统的框图。
图18是可视媒体处理方法的示例的流程图。
图19是可视媒体处理方法的示例的流程图。
具体实施方式
为了提高视频的压缩率,研究人员一直在寻找新的用以编码视频的技术。本文档提供了视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器也可以在编码过程期间实施这些技术,以便重构用于进一步编码的解码帧。
在本文档中使用章节标题是为了提高可读性,并且不将每个章节中描述的技术和实施例的范围仅限制于该章节。此外,虽然使用了来自各种现有视频编码器标准的某些术语,但是所公开的技术不限于这些视频标准或它们的后续标准,并且适用于其他视频编码器标准。此外,在一些情况下,公开了使用相应编解码步骤的技术,并且应当理解,在解码器处,将以相反的次序执行相应解码步骤。此外,编解码还可以用于执行转码,其中视频从一个编解码表示(例如,一个比特率)表示为另一编解码表示(例如,不同的比特率)。
1.概述
该专利文档与视频编解码/解码技术相关。具体地,它涉及视频编解码/解码中的运动补偿。它可以应用于现有的视频编解码标准,如HEVC,或将定稿的标准(通用视频编解码)。它也可以适用于未来的视频编解码标准或视频编码器。
2.初步讨论
视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展演变而来的。ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4可视化,这两个组织联合制作了H.262/MPEG-2视频和264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于其中利用了时域预测加变换编解码的混合视频编解码结构。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索团队(JVET)。从那时起,许多新方法被JVET采用并被放入名为联合探索模型(JEM)的参考软件中。2018年4月,在VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间创立了联合视频专家组(JPEG),致力于VVC标准,目标是比HEVC降低50%的比特率。
VVC草案的最新版本,即通用视频编解码(草案2),可在以下网址找到:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip。VVC的最新参考软件,名为VTM,可在以下网址找到:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1。
图9是视频编码器的示例实施方式的框图。图9示出编码器实施方式具有内置的反馈路径,其中视频编码器还执行视频解码功能(重构视频数据的压缩表示以用于接下来的视频数据的编码)。
2.1模式匹配运动矢量推导
模式匹配运动矢量推导(Pattern matched motion vector derivation,PMMVD)模式是一种基于帧速率上转换(FRUC)技术的特殊Merge模式。利用这种模式,块的运动信息不是发信令通知的,而是在解码器侧得到的。
当CU的Merge标志为真时,针对其发信令通知FRUC标志。当FRUC标志为假时,发信令通知Merge索引并使用规则Merge模式。当FRUC标志为真时,发信令通知附加的FRUC模式标志以指示哪种方法(双边匹配或模板匹配)将被用于推导块的运动信息。
在编码器侧,针对CU是否使用FRUC Merge模式的决策是基于RD成本而选择的,就像对普通Merge候选所做的那样。也就是说,两种匹配模式(双边匹配和模板匹配)都是通过使用RD成本选择来对CU进行检查的。成本最小的模式进一步与其他CU模式进行比较。如果FRUC匹配模式是最有效的模式,那么针对CU,FRUC标志被设置为真,并且使用相关的匹配模式。
FRUC Merge模式中的运动推导过程有两个步骤。首先执行CU级别运动搜索,然后执行子CU级别运动细化。在CU级别,基于双边匹配或模板匹配针对整个CU推导初始运动矢量。首先,生成MV候选的列表,并且选择匹配成本最小的候选作为进一步的CU级别细化的起点。然后在起点周围执行基于双边匹配或模板匹配的局部搜索,并且将匹配成本最小的MV结果作为整个CU的MV。随后,以推导的CU运动矢量作为起点,在子CU级别进一步细化运动信息。
例如,针对W×H的CU运动信息推导执行以下推导过程。在第一阶段,推导整个W×H的CU的MV。在第二阶段,CU被进一步划分成M×M的子CU。M的值如(16)所示,D是预定义划分深度,其在JEM中默认设置为3。那么每个子CU的MV被推导为:
Figure BDA0003336119190000041
如图1所示,双边匹配用于通过在两个不同参考图片中沿着当前CU的运动轨迹找到两个块之间的最接近匹配来推导当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0和MV1应该与当前图片和两个参考图片之间的时域距离(即TD0和TD1)成比例。作为特殊情况,当当前图片在时域上位于两个参考图片之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变成基于镜像的双向MV。
如图2所示,模板匹配用于通过在当前图片中的模板(当前CU的上边和/或左边的临近块)和参考图片中的块(与模板尺寸相同)之间找到最接近的匹配来推导当前CU的运动信息。除了前述FRUC Merge模式,模板匹配也适用于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对的输入。例如,Merge候选的一个有效MV是参考列表A处的(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级别,针对AMVP CU多达15个MV被添加到候选列表,针对Merge CU多达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缩放的方式相同),并且缩放的运动被分配到当前帧中的块。如果没有为4×4块分配缩放MV,则该块的运动在插值运动场中被标记为不可用。
1.插值和匹配成本
当运动矢量指向分数样点位置时,可以执行运动补偿插值。为了降低复杂度,双线性插值(而不是规则8抽头HEVC插值)被用于双边匹配和模板匹配两者。
匹配成本的计算在不同的步骤有所不同。当在CU级别从候选集合中选择候选时,匹配成本是双边匹配或模板匹配的绝对和差(absolute sum difference,SAD)。在确定起始MV之后,在子CU级别搜索的双边匹配的匹配成本C被计算如下:
Figure BDA0003336119190000061
其中,w是加权因子,其根据经验被设置为4,MV和MVs分别表示当前MV和起始MV。SAD仍然被用作子CU级别搜索的模板匹配的匹配成本。
在FRUC模式中,MV仅通过使用亮度样点而推导。所推导的运动将用于亮度和色度,以进行MC(Motion Compensation,运动补偿)帧间预测。在决定MV后,针对亮度使用8抽头插值滤波器,针对色度使用4抽头插值滤波器,以执行最终MC。
2.MV细化
MV细化是基于模式的MV搜索,其标准是双边匹配成本或模板匹配成本。在JEM中,支持两种搜索模式——分别用于CU级别和子CU级别的MV细化的无限制中心偏置菱形搜索(unrestricted center-biased diamond search,UCBDS)和自适应交叉搜索。对于CU和子CU级别的MV细化,MV以四分之一亮度样点MV精度直接搜索,然后是八分之一亮度样点MV细化。CU和子CU步骤的MV细化的搜索范围被设置为等于8个亮度样点。
3.模板匹配FRUC Merge模式中预测方向的选择
在双边匹配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级别的模板匹配过程。
2.2混合帧内和帧间预测
在JVET-L0100中,提出了多假设预测,其中混合帧内和帧间预测是生成多个假设的一种方式。
当应用多假设预测来改善帧内模式时,多假设预测将一个帧内预测和一个Merge索引预测进行组合。在Merge CU中,针对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参考。
2.3双向光流
在BIO中,首先执行运动补偿以生成当前块的第一预测(在每个预测方向上)。第一预测用于推导块内每个子块/像素的空域梯度、时域梯度和光流,然后用于生成第二预测,即子块/像素的最终预测。详细描述如下。
双向光流(BIO)是在双向预测的按块运动补偿的基础上执行的按样点运动细化。样点级别运动细化不使用信令。
假设I(k)是块运动补偿之后来自参考k(k=0,1)的亮度值,
Figure BDA0003336119190000081
分别是I(k)梯度的水平分量和垂直分量。假设光流有效,运动矢量场(vx,vy)由以下方程给出:
Figure BDA0003336119190000082
针对将该光流方程与每个样点的运动轨迹的Hermite插值进行组合,在末端产生匹配函数值I(k)和导数
Figure BDA0003336119190000083
的唯一三阶多项式。该多项式在t=0时的值是BIO预测:
Figure BDA0003336119190000091
这里,τ0和τ1表示到参考帧的距离,如图4所示。距离τ0和τ1是基于Ref0和Ref1的POC来计算的:τ0=POC(current)-POC(Ref0)、τ1=POC(Ref1)-POC(current)。如果两个预测都来自相同时间方向(或者都来自过去,或者都来自未来),那么符号是不同的(即τ0·τ1<0)。在这种情况下,只有当预测不是来自相同时刻(即τ0≠τ1),两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0)并且块运动矢才与时间距离(MVx0/MVx1=MVy0/MVy1=-τ01)成比例时,才应用BIO。
通过最小化点A和点B中的值之间的差(图9中运动轨迹和参考帧平面的交点)来确定运动矢量场(vx,vy)。模型仅使用针对Δ的局部泰勒展开的第一线性项,如下所示:
Figure BDA0003336119190000092
方程5中的所有值都取决于样点位置(i′,j′),到目前为止,该样点位置已从注释中省略。假设运动在局部周围区域是一致的,则Δ的值可以在以当前预测点(i,j)为中心的(2M+1)×(2M+1)方形窗口Ω内部被最小化,其中M等于2:
Figure BDA0003336119190000093
对于这个优化问题,JEM使用一种简化的方法,首先在垂直方向进行最小化,然后在水平方向进行最小化。这导致
Figure BDA0003336119190000094
Figure BDA0003336119190000095
其中,
Figure BDA0003336119190000096
为了避免除以零或非常小的值,在方程7和8中引入正则化参数r和m,其中:
r=500·4d-8 (10)
m=700·4d-8 (11)
这里d是视频样点的比特深度。
为了保持BIO的存储器访问与规则双向预测运动补偿相同,所有预测和梯度值I(k)
Figure BDA0003336119190000101
都只针对当前块内的位置进行计算。在方程9中,以预测块边界上的当前预测点为中心的(2M+1)×(2M+1)方形窗口Ω可以访问块外部的位置(如图5(a)所示)。在JEM中,块外部I(k)
Figure BDA0003336119190000102
Figure BDA0003336119190000103
的值被设置为等于块内部最近的可用值。例如,这可以实施为填充,如图5(b)所示。
利用BIO,可以对每个样点的运动场进行细化。为了降低计算复杂度,在JEM中使用基于块的BIO设计。基于4×4块计算运动细化。在基于块的BIO中,合计4×4块中所有样点的、方程9中的sn值,然后使用sn的合计值来推导4×4块的BIO运动矢量偏移。更具体地,以下公式用于基于块的BIO推导:
Figure BDA0003336119190000104
其中bk表示属于预测块的第k个4×4块的样点集合。方程7和8中的sn被(sn,bk)>>4代替,以推导相关联的运动矢量偏移。
在一些情况下,由于噪音或不规则的运动,BIO的MV细化可能是不可靠的。因此,在BIO中,MV细化的尺寸被限幅到阈值thBIO。阈值是基于当前图片的参考图片是否都来自一个方向来确定的。如果当前图片的所有参考图片都来自一个方向,则阈值的值被设置为12×214-d;否则,它被设置为12×213-d
使用与HEVC运动补偿过程(2D可分离FIR)一致的操作,在运动补偿插值的同时计算BIO的梯度。根据块运动矢量的分数部分,该2D可分离FIR的输入是与运动补偿过程和分数位置(fracX,fracY)相同的参考帧样点。在水平梯度
Figure BDA0003336119190000105
的情况下,首先使用与具有去缩放(de-scaling)移位d-8的分数位置fracY相对应的BIOfilterS对信号垂直插值,然后在水平方向上应用与具有去缩放移位18-d的分数位置fracX相对应的梯度滤波器BIOfilterG。在垂直梯度
Figure BDA0003336119190000106
的情况下,首先使用与具有去缩放移位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时,BIO被禁用。
在JEM中,在正常MC过程之后,针对块应用OBMC。为了降低计算复杂度,在OBMC过程期间不应用BIO。这意味着,当使用其自己的MV时,针对块仅在MC过程中应用BIO,而当在OBMC过程期间使用临近块的MV时,不在MC过程中应用BIO。
一种两阶段早期终止方法用于取决于两个预测信号之间的相似性而有条件地禁用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过程的决策,该子CU级别SAD阈值被设置为每个样点3*2(BDepth -10)
2.4VVC BDOF规范
BDOF的规范(在JVET-N1001-v2中)如下:
8.5.7.4双向光流预测过程
该过程的输入包括:
–两个变量nCbW和nCbH指定当前编解码块的宽度和高度,
–两个(nCbW+2)x(nCbH+2)亮度预测样点阵列predSamplesL0和predSamplesL1,
–预测列表利用标志predFlagL0和predFlagL1,
–参考索引refIdxL0和refIdxL1,
–双向光流利用标志bdofUtilizationFlag[xIdx][yIdx],其中xIdx=0..(nCbW>>2)–1,yIdx=0..(nCbH>>2)-1。
该过程的输出是亮度预测样点值的(nCbW)x(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]等于真),当前子块的预测样点值推导如下:
–对于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的运动矢量(MV)和列表1的MV所形成的两个预测块被组合以形成单个预测信号。在JVET-K0217中,解码器侧运动矢量细化(decoder-side motion vectorrefinement,DMVR)方法中,双向预测的两个运动矢量通过双边匹配过程被进一步细化。
在所提出的方法中,如果以下条件为真,则DMVR仅适用于Merge和跳过模式:
(POC-POC0)*(POC-POC1)<0,
其中,POC是当前待编码图片的图片顺序计数,POC0和POC1是当前图片的参考的图片顺序计数。
发信令通知的Merge候选对(candidate pair)被用作DMVR过程的输入,并且被表示为初始运动矢量(MV0,MV1)。由DMVR搜索的搜索点遵守运动矢量差镜像条件。换句话说,由候选运动矢量对(MV0′,MV1′)表示的由DMVR检查的任何点都遵守以下两个方程:
MV0′=MV0+MVdiff
MV1′=MV1-MVdiff
其中,MVdiff表示参考图片之一中的搜索空间中的点。
在构建搜索空间之后,使用规则8抽头DCTIF插值滤波器来构建单边预测。双边匹配成本函数通过使用两个预测(图6)之间的MRSAD(meanremoved sum of absolutedifferences,均值移除的绝对差之和)来计算,并且导致最小成本的搜索点被选择作为细化的MV对。对于MRSAD计算,使用16比特精度的样点(其为插值滤波的输出),并且在MRSAD计算之前不应用限幅和取整运算。不应用取整和限幅的原因是为了降低内部缓冲区要求。
图6示出了利用6点搜索的双边匹配的示例。
在所提出的方法中,由自适应模式方法选择整数精度搜索点。首先计算与(初始运动矢量所指向的)中心点相对应的成本。其他4个成本(符号形状)通过两个预测计算出,位于中心点的相对的两侧。在该角度处的最后第6点由先前计算成本的梯度选择(图7)。
图7示出了自适应整数搜索模式和半样点搜索模式的示例。
DMVR过程的输出是与最小成本相对应的细化运动矢量对。
如果在一次迭代之后,在搜索空间的中心点处实现了最小成本,即运动矢量没有改变,则细化过程终止。否则,最佳成本进一步被视为中心,并且该过程继续,同时最小成本不对应于中心点并且不超过搜索范围。
仅当半像素搜索的应用没有超出搜索范围时,才应用半样点精度搜索。在这种情况下,仅执行4次MRSAD计算,对应于中心点周围的加号形状的点,中心点被选为整数精度搜索期间的最佳。最后,输出与最小成本点相对应的细化运动矢量对。
在JVET-L0163中进一步提出了一些简化和改进。
4.参考采样填充
应用参考样点填充以便扩展由初始运动矢量指向的参考样点块。如果编解码块的尺寸由“w”和“h”给出,则假设从参考图片缓冲区中检索到尺寸为w+7和h+7的块。然后,通过使用最近样点的重复样点填充,将检索到的缓冲区在每个方向上扩展2个样点。之后,一旦获得了细化运动矢量(其可以在每个方向上偏离初始运动矢量2个样点),就使用扩展的参考样点块来生成最终预测。
注意,这种修改完全消除了DMVR的外部存储器访问要求,而没有任何编解码损失。
5.双线性插值代替8抽头DCTIF
根据该建议,在DMVR搜索过程期间应用双线性插值,这意味着在MRSAD计算中使用的预测是使用双线性插值生成的。一旦获得最终的细化运动矢量,就应用规则8抽头DCTIF插值滤波器来生成最终预测。
6.禁用小块的DMVR
针对4×4、4×8和8×4块禁用DMVR。
7.基于Merge候选之间的MV差值的早期终止
对DMVR施加限制MV细化过程的附加条件。有了它,当满足以下条件时,DMVR被有条件地禁用。
所选Merge候选与相同Merge列表中任何先前Merge候选之间的MV差值小于预定义阈值(即,对于具有少于64像素、少于256像素和至少256像素的CU,分别为1/4像素宽、1/2像素宽和1像素宽的间隔)。
8.基于中心搜索坐标处的SAD成本的早期终止
计算使用当前CU的初始运动矢量的两个预测信号(L0和L1预测)之间的绝对差之和(SAD)。如果SAD不大于预定义阈值,即每个样点2(BDepth-9),则跳过DMVR;否则,仍然应用DMVR来细化当前块的两个运动矢量。
9.DMVR应用条件
DMVR应用条件为(POC–POC1)x(POC-POC2)<0,它在BMS2.1中实施,并被新条件(POC–POC1)==(POC2–POC)所取代。这意味着只有当参考图片在相反的时域方向上并且与当前图片等距离时,才应用DMVR。
10.使用每隔一行的MRSAD计算
MRSAD成本仅针对块的奇数行来计算,不考虑偶数样点行。因此,MRSAD计算的运算次数减半。
2.6相关方法
在2018年8月4日提交的题为“可视媒体编解码的运动细化”的申请号为PCT/CN2018/098691(其通过引用结合于此)的专利申请中,提出了一种MV更新方法和两步帧间预测方法。BIO中参考块0和参考块1之间的推导的MV被缩放并添加到列表0和列表1的原始运动矢量。同时,更新后的MV用于执行运动补偿,并且生成第二帧间预测作为最终预测。通过移除参考块0和参考块1之间的均值差来修改时域梯度。
此外,在2018年11月10日提交的题为“基于子块的预测方法和系统”的申请号为PCT/CN2018/114931(其通过引用结合于此)的专利申请中,针对色度分量生成一个MV的集合。
2.7 VVC草案4中的DMVR
在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
3.实施例所解决的问题的示例
在BIO中,在早期终止阶段计算两个参考块或子块之间的差值,同时也计算时域梯度。因为时域梯度实际上是两个参考像素之间的差值(或右移差值),所以计算差值和时域梯度都没有意义。
在DMVR中,MRSAD计算用于确定一个块的细化运动矢量。
在BIO中,SAD计算用于使用一个块/一个子块的所有样点来决定针对一个块或一个子块是启用还是禁用BIO,这增加了计算复杂度。
空域梯度和时域梯度的计算方法不同。
4.实施例的示例
SATD表示绝对变换差之和,MRSATD表示均值移除的绝对变换差之和,SSE表示平方误差之和,MRSSE表示均值移除的平方误差之和。
下面的详细技术应该被认为是解释一般概念的示例。这些技术不应该被狭义地解释。此外,这些发明可以以任何方式组合。
在下面的讨论中,SatShift(x,n)被定义为
Figure BDA0003336119190000181
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)或1<<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.提出用于决定启用/禁用BIO/DMVR的标准可以在VPS/SPS/PPS/条带头/片组头中从编码器发信令通知到解码器。
3.提出使用其他标准来确定DMVR过程中的一个块的细化运动矢量,诸如用SATD或MRSATD或SSE或MRSSE来代替MRSAD。
a.在一个示例中,DMVR过程中的一个子块的细化运动矢量,诸如用SATD或MRSATD或SSE或MRSSE来代替MRSAD。
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日提交的题为“基于更新后的运动矢量的运动预测”申请PCT/CN2018/096384(其通过引用结合于此)中公开的方法可以用于计算参考块或/和子块的均值,即,针对一些代表性位置计算均值。
6.提出在BIO或/和DMVR的早期终止阶段,可以仅针对一些代表性位置来计算两个参考块或/和子块之间的差值(例如,SAD/SATD/SSE/MRSAD/MRSATD/MRSSE等)。
a.在一个示例中,针对块或/和子块,仅计算偶数行的差值。
b.在一个示例中,针对块或/和子块,仅计算一个块/子块的四个角样点的差值。
c.在一个示例中,在2018年7月2日提交的题为“视频编解码中解码器侧运动矢量推导”的美国临时申请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日提交的题为“视频编解码中的解码器侧运动矢量推导”的美国临时申请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.在一个示例中,BIO或/和DMVR是否被启用可以由发信令通知的标志和即时决策(例如,在早期终止阶段基于SAD的决策)共同决定。发信令通知的标志可以指示即时决策是否正确。
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.应用于DMVD/BIO的上述方法可以仅适用于其他解码器侧运动矢量推导(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的使用修改如下。粗体大写字体的文本将从JVET-M1001_v7中删除:
–当下列所有条件都为真时,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
Figure BDA0003336119190000241
也就是说,“cbHeight*cbWidth大于或等于64”被删除。
5.2实施例2
新添加的部分以粗体斜体突出显示,删除的部分以粗体大写字体突出显示。
i.一个示例
8.5.7.4双向光流预测过程
该过程的输入是:
–两个变量nCbW和nCbH指定当前编解码块的宽度和高度,
–两个(nCbW+2)x(nCbH+2)亮度预测样点阵列predSamplesL0和predSamplesL1,
–预测列表利用标记predFlagL0和predFlagL1,
–参考索引refIdxL0和refIdxL1,
–双向光流利用标志bdofUtilizationFlag[xIdx][yIdx],其中xIdx=0..(nCbW>>2)–1,yIdx=0..(nCbH>>2)-1。
该过程的输出是亮度预测样点值的(nCbW)x(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]>>SHIFT2)-(PREDSAMPLESL1[HX][VY]>>SHIFT2) (8-859)
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)x(nCbH+2)亮度预测样点阵列predSamplesL0和predSamplesL1,
–预测列表利用标记predFlagL0和predFlagL1,
–参考索引refIdxL0和refIdxL1,
–双向光流利用标志bdofUtilizationFlag[xIdx][yIdx],其中xIdx=0..(nCbW>>2)–1,yIdx=0..(nCbH>>2)-1。
该过程的输出是亮度预测样点值的(nCbW)x(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]-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)
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)x(nCbH+2)亮度预测样点阵列predSamplesL0和predSamplesL1,
–预测列表利用标记predFlagL0和predFlagL1,
–参考索引refIdxL0和refIdxL1,
–双向光流利用标志bdofUtilizationFlag[xIdx][yIdx],其中xIdx=0..(nCbW>>2)–1,yIdx=0..(nCbH>>2)-1。
该过程的输出是亮度预测样点值的(nCbW)x(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]>>SHIFT2)-(PREDSAMPLESL1[HX][VY]>>SHIFT2) (8-859)
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可以部分或完全以专用硬件、图形处理器单元(GPU)或专用信号处理块的形式被包括在(多个)处理器802中。
图10是处理视频的方法1000的流程图。方法1000包括执行对第一视频块的特性的确定(1005),该特性包括与第一视频块相关联的参考块之间的差值,该差值包括绝对变换差之和(SATD)、均值移除的绝对变换差之和(MRSATD)、平方误差之和(SSE)、均值移除的平方误差之和(MRSSE)、均值差或梯度值中的一个或多个,基于第一视频块的特性,确定(1010)双向光流(BIO)技术或解码器侧运动矢量细化(DMVR)技术之一或两者的操作状态,操作状态是启用或禁用之一,以及执行(1015)与BIO技术或DMVR技术之一或两者的操作状态一致的第一视频块的进一步处理。
图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可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。
系统1700可以包括编解码组件1704,其可以实施本文档中描述的各种编解码或者编码方法。编解码组件1704可以降低从输入1702到编解码组件1704的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1704的输出可以被存储,或者经由连接的通信来传输,如组件1706所表示的。组件1708可以使用在输入1702处接收的视频的存储或传送的比特流(或编解码)表示来生成发送到显示接口1710的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且将编解码结果反转的相应解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
应当理解,所公开的技术可以体现在视频编码器或解码器中,以在被压缩的编解码单元具有明显不同于传统方形块或半方形矩形块的形状时提高压缩效率。例如,使用长的或高的编解码单元(诸如4×32或32×4尺寸的单元)的新编解码工具可以受益于所公开的技术。
在一些实施方式中,一种视频处理的方法可以如下执行:
在视频块和视频块的比特流表示之间的转换期间,使用用于计算空域梯度和时域梯度的滤波方法,以及
使用滤波来执行转换。
这里,转换包括从视频块的像素值生成比特流表示或者从比特流表示生成像素值。
在一些实施例中,使用移位的样点差值来计算空域梯度和时域梯度。
在一些实施例中,使用修改的样点来计算空域梯度和时域梯度。
第4节讨论的第1项提供了该方法的附加细节。
图18是可视媒体处理方法的示例的流程图。该流程图的步骤结合本文件第4节中讨论的示例实施例1进行讨论。在步骤1802,该过程执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,其中当前块的转换包括基于与当前块相关联的空域临近样点的样点差值来计算空域梯度和/或基于与当前块相关联的时域临近样点来计算时域梯度,并且其中用于计算空域梯度的技术与用于计算时域梯度的技术相同。
图19是可视媒体处理方法的示例的流程图。该流程图的步骤结合本文件第4节中讨论的示例实施例1进行讨论。在步骤1902,该过程执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,其中当前块的转换包括基于计算与当前块相关联的空域临近样点的样点差值来计算空域梯度,并且其中在计算样点差值之前应用空域临近样点的样点差值的左移或右移。
本文档的一些实施例现在以基于条款的格式呈现。
1.一种可视媒体处理的方法,包括:
执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,
其中所述当前块的转换包括基于与所述当前块相关联的空域临近样点的样点差值来计算空域梯度和/或基于与所述当前块相关联的时域临近样点来计算时域梯度,并且
其中用于计算空域梯度的技术与用于计算时域梯度的技术相同。
2.根据条款1所述的方法,其中,用于计算空域梯度和/或时域梯度的技术包括空域临近样点和/或时域临近样点的样点差值的左移或右移。
3.根据条款2所述的方法,其中,在计算样点差值之前,空域临近样点和/或时域临近样点被左移或右移。
4.根据条款2所述的方法,其中,在样点差值的左移或右移之前,计算空域临近样点和/或时域临近样点的样点差值。
5.根据条款4所述的方法,其中,在样点差值的左移或右移之前,向样点差值添加偏移。
6.根据条款3所述的方法,其中,在左移或右移之前,向空域临近样点或时域临近样点添加偏移。
7.根据条款5-6中任一项或多项所述的方法,其中,所述偏移被表示为1<<(shift1–1),其中shift 1表示左移或右移的量。
8.根据条款5-6中任一项或多项所述的方法,其中,所述偏移被表示为1<<shift1>>1,其中shift1表示左移或右移的量。
9.根据条款1-8中任一项或多项所述的方法,其中,所述空域梯度和/或时域梯度被表示为SatShift(neig0–neig1,shift1),其中SatShift(x,n)被定义为
Figure BDA0003336119190000391
其中offset0和/或offset1被设置为(1<<n)>>1和/或(1<<(n-1))和/或零,其中neig0和neig1表示包括在可视媒体数据的当前块中的样点的两个临近样点的样点值,并且其中shift1表示所述两个临近样点的左移或右移的量。
10.根据条款1-8中任一项或多项所述的方法,其中,所述空域梯度和/或所述时域梯度被表示为SatShift(neig0,shift1)-SatShift(neig1,shift1),其中SatShift(x,n)被定义为
Figure BDA0003336119190000392
其中offset0和/或offset1被设置为(1<<n)>>1和/或(1<<(n-1))和/或零,其中neig0和neig1表示包括在可视媒体数据的当前块中的样点的两个临近样点的样点值,并且其中shift1表示所述两个临近样点的左移或右移的量。
11.根据条款1-10中任一项或多项所述的方法,其中,所述空域临近样点被包括在当前块的与预测列表相对应的预测块中。
12.根据条款11所述的方法,其中,所述预测块是第一预测列表中的第一预测块和/或第二预测列表中的第二预测块。
13.根据条款1-10中任一项或多项所述的方法,其中,所述时域梯度基于与所述当前块相关联的至少两个时域临近样点,所述至少两个时域临近样点在所述当前块的与第一预测列表相对应的第一预测块中和所述当前块的与第二预测列表相对应的第二预测块中。
14.根据条款1-9中任一项或多项所述的方法,其中,所述空域梯度是在水平方向和/或垂直方向上计算的。
15.根据条款1-13中任一项或多项所述的方法,其中,所述转换包括使用双向光流(BDOF)技术。
16.一种可视媒体处理的方法,包括:
执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,
其中所述当前块的转换包括基于计算与所述当前块相关联的空域临近样点的样点差值来计算空域梯度,并且
其中在计算样点差值之前应用空域临近样点的样点差值的左移或右移。
17.一种视频解码装置,包括被配置为实施根据条款1至16中的一项或多项所述的方法的处理器。
18.一种视频编码装置,包括被配置为实施根据条款1至16中的一项或多项所述的方法的处理器。
19.一种其上存储有计算机代码的计算机程序产品,当由处理器执行时,所述代码使处理器实施根据条款1至16中任一项所述的方法。
20.一种本文档中描述的方法、装置或系统。
在本文档中,术语“视频处理”或“可视媒体处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到相应的比特流表示的转换期间应用,反之亦然。如语法所定义的,当前视频块的比特流表示可以例如对应于在比特流内位于同一位置或分布在不同位置的比特。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以使用比特流中的头和其他字段中的比特来编解码。此外,在转换期间,解码器可以基于如以上解决方案中所述的确定,在知道一些字段可能存在或不存在的情况下解析比特流。类似地,编码器可以确定某些语法字段被包括或不被包括,并且通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
本文档中描述的所公开内容以及其他解决方案、示例、实施例、模块和功能操作的实施方式可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开内容和其他实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。
本文档中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。
仅描述了几个实施方式和示例,并且可以基于本专利文件中描述和图示的内容进行其它实施、增强和变化。

Claims (20)

1.一种可视媒体处理的方法,包括:
执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,
其中所述当前块的转换包括基于与所述当前块相关联的空域临近样点的样点差值来计算空域梯度和/或基于与所述当前块相关联的时域临近样点来计算时域梯度,并且
其中用于计算所述空域梯度的技术与用于计算所述时域梯度的技术相同。
2.根据权利要求1所述的方法,其中,用于计算所述空域梯度和/或所述时域梯度的技术包括所述空域临近样点和/或所述时域临近样点的样点差值的左移或右移。
3.根据权利要求2所述的方法,其中,在计算所述样点差值之前,所述空域临近样点和/或所述时域临近样点被左移或右移。
4.根据权利要求2所述的方法,其中,在所述样点差值的左移或右移之前,计算所述空域临近样点和/或所述时域临近样点的样点差值。
5.根据权利要求4所述的方法,其中,在所述样点差值的左移或右移之前,向所述样点差值添加偏移。
6.根据权利要求3所述的方法,其中,在所述左移或所述右移之前,向所述空域临近样点或所述时域临近样点添加偏移。
7.根据权利要求5-6中任一项或多项所述的方法,其中,所述偏移被表示为1<<(shift1–1),其中shift 1表示所述左移或所述右移的量。
8.根据权利要求5-6中任一项或多项所述的方法,其中,所述偏移被表示为1<<shift1>>1,其中shift1表示所述左移或所述右移的量。
9.根据权利要求1-8中任一项或多项所述的方法,其中,所述空域梯度和/或所述时域梯度被表示为SatShift(neig0–neig1,shift1),其中SatShift(x,n)被定义为
Figure FDA0003336119180000011
其中offset0和/或offset1被设置为(1<<n)>>1和/或(1<<(n-1))和/或零,其中neig0和neig1表示包括在所述可视媒体数据的当前块中的样点的两个临近样点的样点值,并且其中shift1表示所述两个临近样点的左移或右移的量。
10.根据权利要求1-8中任一项或多项所述的方法,其中,所述空域梯度和/或所述时域梯度被表示为SatShift(neig0,shift1)-SatShift(neig1,shift1),其中SatShift(x,n)被定义为
Figure FDA0003336119180000021
其中offset0和/或offset1被设置为(1<<n)>>1和/或(1<<(n-1))和/或零,其中neig0和neig1表示包括在所述可视媒体数据的当前块中的样点的两个临近样点的样点值,并且其中shift1表示所述两个临近样点的左移或右移的量。
11.根据权利要求1-10中任一项或多项所述的方法,其中,所述空域临近样点被包括在所述当前块的与预测列表相对应的预测块中。
12.根据权利要求11所述的方法,其中,所述预测块是第一预测列表中的第一预测块和/或第二预测列表中的第二预测块。
13.根据权利要求1-10中任一项或多项所述的方法,其中,所述时域梯度基于与所述当前块相关联的至少两个时域临近样点,所述至少两个时域临近样点在所述当前块的与第一预测列表相对应的第一预测块中和所述当前块的与第二预测列表相对应的第二预测块中。
14.根据权利要求1-9中任一项或多项所述的方法,其中,所述空域梯度是在水平方向和/或垂直方向上计算的。
15.根据权利要求1-13中任一项或多项所述的方法,其中,所述转换包括使用双向光流(BDOF)技术。
16.一种可视媒体处理的方法,包括:
执行可视媒体数据的当前块和当前视频块的相应编解码表示之间的转换,
其中所述当前块的转换包括基于计算与所述当前块相关联的空域临近样点的样点差值来计算空域梯度,并且
其中在计算所述样点差值之前应用所述空域临近样点的样点差值的左移或右移。
17.一种视频解码装置,包括被配置为实施根据权利要求1至16中的一项或多项所述的方法的处理器。
18.一种视频编码装置,包括被配置为实施根据权利要求1至16中的一项或多项所述的方法的处理器。
19.一种其上存储有计算机代码的计算机程序产品,当由处理器执行时,所述代码使处理器实施根据权利要求1至16中任一项所述的方法。
20.一种本文档中描述的方法、装置或系统。
CN202080033445.3A 2019-05-07 2020-05-07 利用细化的帧间预测的统一计算方法 Active CN113767634B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/085796 2019-05-07
CN2019085796 2019-05-07
PCT/CN2020/088927 WO2020224613A1 (en) 2019-05-07 2020-05-07 Unified calculation method for inter prediction with refinement

Publications (2)

Publication Number Publication Date
CN113767634A true CN113767634A (zh) 2021-12-07
CN113767634B CN113767634B (zh) 2023-06-09

Family

ID=73050737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080033445.3A Active CN113767634B (zh) 2019-05-07 2020-05-07 利用细化的帧间预测的统一计算方法

Country Status (2)

Country Link
CN (1) CN113767634B (zh)
WO (1) WO2020224613A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765897A (zh) * 2012-06-27 2014-04-30 株式会社东芝 编码方法、解码方法、编码设备以及解码设备
CN107005713A (zh) * 2014-11-04 2017-08-01 三星电子株式会社 施加边缘类型偏移的视频编码方法和设备以及视频解码方法和设备
WO2018128417A1 (ko) * 2017-01-04 2018-07-12 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
CN108541375A (zh) * 2016-02-03 2018-09-14 夏普株式会社 运动图像解码装置、运动图像编码装置、以及预测图像生成装置
WO2018166357A1 (en) * 2017-03-16 2018-09-20 Mediatek Inc. Method and apparatus of motion refinement based on bi-directional optical flow for video coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480615B1 (en) * 1999-06-15 2002-11-12 University Of Washington Motion estimation within a sequence of data frames using optical flow with adaptive gradients
US10268901B2 (en) * 2015-12-04 2019-04-23 Texas Instruments Incorporated Quasi-parametric optical flow estimation
CN111010569B (zh) * 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
CN109191514B (zh) * 2018-10-23 2020-11-24 北京字节跳动网络技术有限公司 用于生成深度检测模型的方法和装置
CN110267045B (zh) * 2019-08-07 2021-09-24 杭州微帧信息科技有限公司 一种视频处理及编码的方法、装置及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103765897A (zh) * 2012-06-27 2014-04-30 株式会社东芝 编码方法、解码方法、编码设备以及解码设备
CN107005713A (zh) * 2014-11-04 2017-08-01 三星电子株式会社 施加边缘类型偏移的视频编码方法和设备以及视频解码方法和设备
CN108541375A (zh) * 2016-02-03 2018-09-14 夏普株式会社 运动图像解码装置、运动图像编码装置、以及预测图像生成装置
WO2018128417A1 (ko) * 2017-01-04 2018-07-12 삼성전자 주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
WO2018166357A1 (en) * 2017-03-16 2018-09-20 Mediatek Inc. Method and apparatus of motion refinement based on bi-directional optical flow for video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS: ""Versatile Video Coding (Draft 4)"", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARRAKECH, MA, 9–18 JAN. 2019》 *

Also Published As

Publication number Publication date
WO2020224613A1 (en) 2020-11-12
CN113767634B (zh) 2023-06-09

Similar Documents

Publication Publication Date Title
CN113170093B (zh) 视频处理中的细化帧间预测
CN113647099B (zh) 解码器侧运动矢量推导
KR102628361B1 (ko) 인터-예측을 위한 대역폭 제어 방법
JP7182000B2 (ja) インター-イントラ複合予測モードにおける重み
CN112956197A (zh) 基于编解码信息的解码器侧运动矢量推导的限制
CN113424525A (zh) 解码器侧细化工具的尺寸选择性应用
KR102635518B1 (ko) 변환된 단예측 후보의 사용
CN113597766A (zh) 基于光流的预测细化的计算
CN114175655B (zh) 根据参考图片类型使用工具的限制
JP7192145B2 (ja) サイズに依存したインターコーディング
CN113767634B (zh) 利用细化的帧间预测的统一计算方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant