CN113728644A - 基于子区域的运动信息细化确定 - Google Patents

基于子区域的运动信息细化确定 Download PDF

Info

Publication number
CN113728644A
CN113728644A CN202080030922.0A CN202080030922A CN113728644A CN 113728644 A CN113728644 A CN 113728644A CN 202080030922 A CN202080030922 A CN 202080030922A CN 113728644 A CN113728644 A CN 113728644A
Authority
CN
China
Prior art keywords
motion vector
derived
current video
video block
mvd
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
CN202080030922.0A
Other languages
English (en)
Other versions
CN113728644B (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
Priority to CN202311610467.3A priority Critical patent/CN117395419A/zh
Publication of CN113728644A publication Critical patent/CN113728644A/zh
Application granted granted Critical
Publication of CN113728644B publication Critical patent/CN113728644B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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
    • 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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

描述了用于视频处理的设备、系统和方法。在一个方面,提供了一种视频处理方法,包括:对于视频的当前视频块和视频的编解码表示之间的转换,确定使用为所述当前视频块内的区域导出至少一个运动矢量偏移的基于光流的方法来细化所述当前视频块的运动信息;将所述至少一个运动矢量偏移剪切到范围[‑N,M],其中N和M是基于规则的整数;以及基于至少一个剪切的运动矢量偏移来执行转换。

Description

基于子区域的运动信息细化确定
相关申请的交叉引用
根据巴黎公约适用的专利法和/或规则,本申请旨在及时要求以下各项优先权和利益:于2019年5月16日提交的国际专利申请No.PCT/CN2019/087193、于2019年6月4日提交的国际专利申请No.PCT/CN2019/090037、于2019年6月12日提交的国际专利申请No.PCT/CN2019/090903、于2019年6月28日提交的国际专利申请No.PCT/CN2019/093616、于2019年6月29日提交的国际专利申请No.PCT/CN2019/093973、于2019年7月1日提交的国际专利申请No.PCT/CN2019/094282、于2019年9月5日提交的国际专利申请No.PCT/CN2019/104489、于2019年11月8日提交的国际专利申请No.PCT/CN2019/116757。出于法律的所有目的,前述申请的全部公开内容通过引用而并入,作为本专利公开内容的一部分。
技术领域
本专利文件涉及视频处理技术、设备和系统。
背景技术
尽管在视频压缩方面取得了进步,数字视频仍然占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计对数字视频使用的带宽需求将继续增长。
发明内容
描述了与包括基于子区域的运动信息细化的数字视频编解码相关的设备、系统和方法。所描述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(HighEfficiency Video Coding,HEVC))和未来的视频编解码标准(例如,通用视频编解码(Versatile Video Coding,VVC))或编解码器。
在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法,该方法包括:对于视频的当前视频块和视频的编解码表示之间的转换,确定使用为所述当前视频块内的区域导出至少一个运动矢量偏移的基于光流的方法来细化所述当前视频块的运动信息;将所述至少一个运动矢量偏移剪切到范围[-N,M],其中N和M是基于规则的整数;以及基于至少一个剪切的运动矢量偏移来执行所述转换。
在另一方面,所公开的技术可以用于提供一种用于视频处理的方法,包括:在用于细化运动信息的解码器侧运动矢量细化(DMVR)操作期间,选择等于使用与视频的当前视频块相关联的一个或多个运动矢量差应用相似性匹配函数的结果的运动信息作为细化运动矢量;以及使用细化的运动矢量在当前视频块和视频的编解码表示之间执行转换。
在又一示例方面,公开了一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,导出与所述当前视频块相关联的运动信息;根据规则对包括第一子区域和第二子区域的当前视频块应用细化操作,使得规则允许第一子区域和第二子区域由于细化操作而具有彼此不同的运动信息;以及使用当前视频块的细化的运动信息来执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和视频的编解码表示之间的转换,导出与当前视频块相关联的运动信息;对于当前视频块的子区域,基于用于细化运动信息的解码器侧运动矢量细化(DMVR)的输出,确定使用双向光流(BIO)的细化操作的适用性;以及基于该确定来执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:导出与利用运动矢量差的Merge模式(MMVD)编解码的当前视频块相关联的运动信息,所述MMVD包括运动矢量表达式,所述运动矢量表达式包括指示两个运动候选之间距离的距离表;将解码器侧运动矢量细化(DMVR)应用于所述当前视频块,以根据指示如何细化用于所述MMVD的距离的规则来细化所述运动信息;以及执行在所述当前视频块和所述视频的编解码表示之间的转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于当前视频块的样点或子块,根据基于导出的运动信息的规则,确定使用空域和/或时域梯度来细化导出的运动信息的双向光流(BDOF)的适用性;以及基于所述确定来执行所述转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和视频的编解码表示之间的转换,导出运动矢量差(MVD);对导出的运动矢量差应用剪切操作,以生成剪切的运动矢量差;使用成本函数计算剪切的运动矢量差的成本;根据基于导出的运动矢量差、剪切的运动矢量差或成本中的至少一个的规则,确定不允许使用空域和/或时域梯度来细化导出的运动矢量差的双向光流(BDOF)操作;以及基于该确定来执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:针对视频的当前视频块和视频的编解码表示之间的转换导出运动矢量差;基于一个或多个运动矢量细化工具和候选运动矢量差来细化导出的运动矢量差(MVD);以及使用细化的运动矢量差来执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:将与当前视频块相关联的导出运动矢量差限制到候选集,导出的运动矢量差用于细化操作以细化与当前视频块相关联的运动信息;以及作为限制的结果,使用导出的运动矢量差来执行视频的当前视频块和视频的编解码表示之间的转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:在用于细化与视频的视频单元的当前视频块相关联的运动信息的双向光流(BDOF)操作期间,使用根据基于视频单元和/或视频单元中编解码工具的使用的规则确定的剪切参数集来应用剪切操作;以及在所述当前视频块和所述视频的编解码表示之间执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:在用于细化与视频的当前视频块相关联的运动信息的细化操作期间,根据规则应用剪切操作来剪切运动矢量差(vx,vy)的x分量和/或y分量;以及使用所述运动矢量差在所述当前视频块和所述视频的编解码表示之间执行转换,其中所述规则指示在剪切操作之前或之后将运动矢量差转换为零或K-m形式的值,其中m是整数。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和视频的编解码表示之间的转换,根据规则选择用于在解码器侧运动推导操作或解码器侧运动细化操作期间导出或细化运动信息的搜索区域;以及基于导出或细化的运动信息执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,应用解码器侧运动矢量差(DMVR)操作,以通过使用在包括最佳匹配整数位置的细化中使用的搜索区域来细化与所述当前视频块相关联的运动矢量差;以及使用细化的运动矢量差来执行所述转换,其中应用所述DMVR操作包括根据规则导出子像素运动矢量差(MVD)。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对视频的视频单元的当前视频块应用解码器侧运动矢量差(DMVR)操作,以细化与当前视频块相关联的运动矢量差;以及使用细化的运动矢量差在当前视频块和视频的编解码表示之间执行转换,其中DMVR操作的应用包括根据视频单元的双向光流(BDOF)的使用来确定允许还是不允许子像素运动矢量差(MVD)导出。
在又一示例方面,公开了另一种视频处理方法。该方法包括:在使用光流的细化操作期间,导出视频的当前视频块的第一样点的运动矢量差;基于所导出的所述第一样点的运动矢量差来确定第二样点的运动矢量差;以及基于所述确定来执行视频的所述当前视频块和所述视频的编解码表示之间的转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:通过对视频的当前视频块应用使用双向光流(BDOF)操作的细化操作来导出预测细化样点;根据规则,确定将导出的预测细化样点剪切到预定范围[-M,N]的剪切操作的适用性,其中M和N是整数;以及在所述当前视频块和所述视频的编解码表示之间执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:确定当前视频块的编解码组尺寸,该当前视频块包括使用不同残差编解码模式编码的第一编解码组和第二编解码组,使得第一编解码组和第二编解码组的尺寸根据规则对齐;以及基于该确定执行当前视频块和视频的编解码表示之间的转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于视频的当前视频块和所述视频的编解码表示之间的转换,基于与所述当前视频块相关联的编解码信息和/或解码信息,确定预测细化光流(PROF)工具的适用性,在PROF中使用光流来细化运动信息;以及基于该确定来执行转换。
在又一个代表性方面,上述方法以处理器可执行代码的形式实现,并存储在计算机可读程序介质中。
在又一代表性方面,公开了一种被配置或可操作来执行上述方法的设备。该设备可以包括被编程来实现该方法的处理器。
在又一个代表性方面,视频解码器装置可以实施如本文所述的方法。
在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面和特征。
附图说明
图1示出了双边匹配的示例。
图2示出了模板匹配的示例。
图3示出了在帧速率上转换(frame-rate up conversion,FRUC)中的单边ME的示例。
图4示出了光流轨迹的示例。
图5a示出了块外部的访问位置的示例,并且图5b示出了为了避免额外的存储器访问和计算而使用的填充的示例。
图6示出了具有六点搜索的双边匹配的示例。
图7a示出了自适应整数搜索模式的示例,并且图7b示出了半样点搜索模式的示例。
图8示出了将执行参数误差表面拟合的整数位置的示例。
图9示出了其中在DMVR中导出子像素MVD的位置的示例。
图10示出了子块MV VSB和像素Δv(i,j)的示例。
图11示出了在PROF中以4*4的尺寸导出的MVD的示例。具有相同颜色(阴影)的位置对具有相反的MVD值。
图12A至图12F示出了根据所公开技术的视频处理的示例方法的流程图。
图13A至图13F示出了根据所公开技术的视频处理的示例方法的流程图。
图14A至图14F示出了根据所公开技术的视频处理的示例方法的流程图。
图15是用于实现本文档中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
图16是视频处理系统的框图。
具体实施方式
该文献中公开的技术和设备提供了运动信息细化。所公开技术的一些实现涉及基于子区域的运动信息细化。所公开技术的一些实现可以应用于视频编码和解码中的运动补偿。
视频编解码标准主要是通过熟知的ITU-T和ISO/IEC标准的发展而演变的。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4可视化,并且这两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(Advanced Video Coding,AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中使用时域预测加变换编码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索组(Joint Video Exploration Team,JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1SC29/WG11(MPEG)之间的联合视频专家组(JVET)成立,以致力于VVC标准,目标是与HEVC相比比特率降低50%。
1.1.模式匹配运动矢量推导
模式匹配运动矢量推导(PMMVD,pattern matched motion vector derivation)模式是基于帧速率上转换(FRUC)技术的特殊Merge模式。在这种模式下,块的运动信息不会被发信令通知,而是在解码器侧导出。
对于CU,当其Merge标志为真时,对FRUC标志发信令通知。当FRUC标志为假时,对Merge索引发信令通知并且使用常规Merge模式。当FRUC标志为真时,对另一个FRUC模式标志发信令通知来指示将使用哪种方法(双边匹配或模板匹配)来导出该块的运动信息。
在编码器侧,基于对正常Merge候选所做的RD成本选择决定是否对CU使用FRUCMerge模式。即通过使用RD成本选择来检查CU的两个匹配模式(双边匹配和模板匹配)。导致最低成本的模式进一步与其它CU模式相比较。如果FRUC匹配模式是最有效的模式,那么对于CU,FRUC标志设置为真,并且使用相关的匹配模式。
FRUC Merge模式中的运动推导过程有两个步骤:首先执行CU级运动搜索,然后执行子CU级运动细化。在CU级,基于双边匹配或模板匹配,导出整个CU的初始运动矢量。首先,生成一个MV候选列表,并且选择导致最低匹配成本的候选作为进一步细化CU级的起点。然后在起始点附近执行基于双边匹配或模板匹配的局部搜索,并且将导致最小匹配成本的MV作为整个CU的MV。接着,以导出的CU运动矢量为起点,进一步在子CU级细化运动信息。
例如,对于W×H CU运动信息导出执行以下导出过程。在第一阶段,导出整个W×HCU的MV。在第二阶段,该CU进一步被拆分成M×M子CU。M的值按照等式(1)计算,D是预先定义的拆分深度,在JEM中默认设置为3。然后导出每个子CU的MV值。
Figure BDA0003317597460000071
如图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候选集包括:
(i)原始AMVP候选,如果当前CU处于AMVP模式,
(ii)所有Merge候选,
(iii)在2.1.1.3节中介绍的插值MV场中的几个MV。
(iv)顶部和左侧临近运动矢量
当使用双边匹配时,Merge候选的每个有效MV用作输入,以生成假设为双边匹配的MV对。例如,Merge候选在参考列表A处的一个有效MV为(MVa,refa)。然后在另一个参考列表B中找到其配对的双边MV的参考图片refb,以便refa和refb在时域上位于当前图片的不同侧。如果参考列表B中的refb不可用,则将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。
当在AMVP模式下应用FRUC时,原始的AMVP候选也添加到CU级的MV候选集。
在CU级,可以将AMVP CU的最多15个MV和Merge CU的最多13个MV添加到候选列表中。
子CU级MV候选集
子CU级的MV候选集包括:
(i)从CU级搜索确定的MV,
(ii)顶部、左侧、左上方和右上方临近的MV,
(iii)来自参考图片的共位MV的缩放版本,
(iv)最多4个ATMVP候选,
(v)最多4个STMVP候选。
来自参考图片的缩放MV导出如下。两个列表中的所有参考图片都被遍历。参考图片中子CU的共位位置处的MV被缩放为起始CU级MV的参考。
ATMVP和STMVP候选被限制为前四个。
在子CU级,最多17个MV被添加到候选列表中。
插值MV场的生成
在对帧进行编码之前,基于单边ME生成整个图片的插值运动场。然后,该运动场可以随后用作CU级或子CU级的MV候选。
首先,两个参考列表中每个参考图片的运动场在4×4的块级别上被遍历。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块(如图3所示的在FRUC中单边ME的示例)、并且该块没有被分配任何插值运动,则根据时域距离TD0和TD1将参考块的运动缩放到当前图片(以与HEVC中的TMVP的MV缩放的方式相同的方式),并且在当前帧中将该缩放运动指示给该块。如果没有缩放的MV指示给4×4块,则在插值运动场中将块的运动标记为不可用。
插值和匹配成本
当运动矢量指向分数样点位置时,需要运动补偿插值。为了降低复杂度,对双边匹配和模板匹配都使用双线性插值而不是常规的8抽头HEVC插值。
匹配成本的计算在不同的步骤处有点不同。当从CU级的候选集中选择候选时,匹配成本是双边匹配或模板匹配的绝对和差(SAD)。在确定起始MV后,双边匹配在子CU级搜索的匹配成本C计算如下:
Figure BDA0003317597460000091
这里,w是权重系数,被经验地设置为4。MV和MVs分别指示当前MV和起始MV。仍然将SAD用作模板匹配在子CU级搜索的匹配成本。
在FRUC模式下,MV通过仅使用亮度样点导出。导出的运动将用于亮度和色度的MC帧间预测。确定MV后,对亮度使用8抽头(8-taps)插值滤波器并且对色度使用4抽头(4-taps)插值滤波器来执行最终MC。
MV细化
MV细化是基于模式的MV搜索,以双边匹配成本或模板匹配成本为标准。在JEM中,在CU级别和子CU级别针对MV细化分别支持两种搜索模式—无限制中心偏置菱形搜索(UCBDS,unrestricted center-biaseddiamond search)和自适应交叉搜索。对于CU级和子CU级的MV细化,都在四分之一亮度样点精度下直接搜索MV,接着是八分之一亮度样点MV细化。将CU和子CU步骤的MV细化的搜索范围设置为8个亮度样点。
模板匹配FRUC Merge模式中预测方向的选择
在双边匹配Merge模式下,总是应用双向预测,因为CU的运动信息是基于在两个不同的参考图片中沿当前CU运动轨迹上两个块之间的最近匹配导出的。模板匹配Merge模式没有这种限定。在模板匹配Merge模式下,编码器可以为CU从列表0的单向预测、列表1的单向预测或者双向预测中做出选择。该选择基于如下的模板匹配成本:
如果costBi<=factor*min(cost0,cost1)
使用双向预测;
否则,如果cost0<=cost1
使用根据list0的单向预测;
否则,
使用根据list1的单向预测;
其中cost0是列表0模板匹配的SAD,cost1是列表1模板匹配的SAD,costBi是双向预测模板匹配的SAD。factor的值等于1.25,这意味着选择过程偏向于双向预测。
帧间预测方向选择仅应用于CU级模板匹配过程。
1.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参考。
1.3双向光流
BIO也被称为BDOF(双向光流)。在BIO中,首先执行运动补偿以生成当前块(在每个预测方向上)的第一预测。第一预测用于导出块内每个子块/像素的空域梯度、时域梯度和光流,然后将其用于生成第二预测,即子块/像素的最终预测。细节描述如下。
双向光流(BIO)是在逐块运动补偿之上执行的用于双向预测的逐样点运动细化。样点级的运动细化不使用信令。
设I(k)为块运动补偿后来自参考k(k=0,1)的亮度值,并且
Figure BDA0003317597460000111
Figure BDA0003317597460000112
分别为I(k)梯度的水平分量和垂直分量。假设光流是有效的,则运动矢量场(vx,vy)由等式给出:
Figure BDA0003317597460000113
将此光流等式与每个样点的运动轨迹的埃尔米特(Hermite)插值相结合,得到唯一的三阶多项式,该多项式在末端同时匹配函数值I(k)和其导数
Figure BDA0003317597460000114
该多项式在t=0时的值是BIO预测:
Figure BDA0003317597460000115
这里,τ0和τ1表示到参考帧的距离,如图4所示。基于Ref0和Ref1的POC计算距离τ0和τ1:τ0=POC(当前)-POC(Ref0),τ1=POC(Ref1)-POC(当前)。如果两个预测都来自同一个时域方向(都来自过去或都来自未来),则符号是不同的(例如,τ0·τ1<0)。在这种情况下,只有当预测不是来自同一时刻时(即,τ0≠τ1),才应用BIO。两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0),并且块运动矢量与时域距离成比例(MVx0/MVx1=MVy0/MVy1=-τ01)。
通过最小化A点和B点(图44中运动轨迹与参考帧平面相交)之间的值的差Δ来确定运动矢量场(vx,vy)。对Δ,模型仅使用局部泰勒展开的第一个线性项:
Figure BDA0003317597460000116
等式(5)中的所有值取决于样点位置(i′,j′),目前为止从标记中将其忽略。假设在局部周围区域的运动是一致的,可以在以当前预测点(i,j)为中心的(2M+1)x(2M+1)方形窗口Ω内最小化Δ,其中M等于2:
Figure BDA0003317597460000117
对于这个优化问题,JEM使用简化方法,首先在垂直方向上最小化,然后在水平方向最小化。这导致:
Figure BDA0003317597460000118
Figure BDA0003317597460000119
其中,
Figure BDA0003317597460000129
Figure BDA00033175974600001210
Figure BDA00033175974600001211
为了避免除以零除或很小的值,在式7和式8中引入正则化参数r和m。
r=500·4d-8 (10)
m=700·4d-8 (11)
这里,d是视频样点的比特深度。
为了使BIO的内存访问与常规双向预测运动补偿相同,仅计算当前块内的位置的所有预测和梯度值I(k)
Figure BDA0003317597460000127
在式(9)中,以预测块边界上当前预测点为中心的(2M+1)×(2M+1)的方形窗口Ω需要访问块外的位置(如图5A所示)。在JEM中,块外的值I(k)
Figure BDA0003317597460000128
设置为等于块内最近的可用值。例如,这可以实现为填充,如图5B所示。图5A至图5B示出不具有块扩展的BIO。图5A示出了访问块外的位置、并且图5B示出了使用填充来避免附加的内存访问和计算。
使用BIO,可以对每个样点的运动场进行细化。为了降低计算复杂度,在JEM中采用了基于块设计的BIO。基于4x4块计算运动细化。在基于块的BIO中,对4x4块中所有样点的等式9中的sn值进行聚合,然后将sn的聚合值用于4x4块的导出的BIO运动矢量偏移。更具体地说,下面的等式被用于基于块的BIO导出:
Figure BDA0003317597460000124
Figure BDA0003317597460000125
Figure BDA0003317597460000126
其中,bk表示属于预测块的第k个4x4块的样点集。等式7和8中的sn替换为((sn,bk)>>4)以导出相关联的运动矢量偏移。
在某些情况下,由于噪声或不规则运动,BIO的MV团(regiment)可能不可靠。因此,在BIO中,MV团的幅度被剪切到阈值thBIO。该阈值是基于当前图片的参考图片是否全部来自一个方向确定的。如果当前图片的所有参考图片都来自一个方向,则该阈值的值被设置为12×214-d,否则其被设置为12×213-d
使用与HEVC运动补偿处理一致的操作(2D可分离FIR)通过运动补偿插值同时计算BIO的梯度。该2D可分离FIR的输入是与运动补偿处理相同的参考帧样点,以及根据块运动矢量的分数部分的分数位置(fracX,fracY)。如果是水平梯度
Figure BDA0003317597460000131
首先使用BIOfilterS对信号进行垂直插值,该BIOfilterS对应于具有去缩放位移d-8的分数位置fracY。然后在水平方向上应用梯度滤波器BIOfilterG,该BIOfilterG对应于具有去缩放位移18-d的分数位置fracX。如果是垂直梯度
Figure BDA0003317597460000132
首先使用BIOfilterG垂直地应用梯度滤波器,该BIOfilterG对应于具有去缩放位移d-8的分数位置fracY。然后在水平方向上使用BIOfilterS执行信号移位,该BIOfilterS对应于具有去缩放位移18-d的分数位置fracX。用于梯度计算BIOfilterG和信号移位BIOfilterF的插值滤波器的长度可以更短(6-tap),以保持合理的复杂度。表1示出了用在BIO中块运动矢量的不同分数位置的梯度计算的滤波器。表1示出了用在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中用于预测信号生成的插值滤波器
Figure BDA0003317597460000133
Figure BDA0003317597460000141
在JEM中,当两个预测来自不同的参考图片时,BIO应用于所有的双向预测块。当为CU启用LIC时,禁用BIO。
在JEM中,在正常MC处理之后将OBMC应用于块。为了降低计算复杂度,在OBMC处理期间不应用BIO。这意味着在OBMC处理期间,当使用自己的MV时,才将BIO应用于块的MC处理,而当使用临近块的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。然后,基于被设置为每样点3*2(BDepth-10)的预定义的子CU级SAD阈值,在子CU级做出是否启用或禁用BIO过程的决定。
1.4 VVC中的BDOF(bidirectional optical flow,双向光流)规范
(在JVET-N1001-v2中的)BDOF规范如下:
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,按顺序应用以下步骤:
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=∑ij(tempH[xSb+i][ySb+j]*tempH[xSb+i][ySb+j])with i,j=-1..4(8-862)
sGy2=∑ij(tempV[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])with i,j=-1..4(8-863)
sGxGy=∑ij(tempH[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])with i,j-1..4(8-864)
sGxdI=∑ij(-tempH[xSb+i][ySb+j]*diff[xSb+i][ySb+j])with i,j=-1..4(8-865)
sGydI=∑ij(-tempV[xSb+i][ySb+j]*diff[xSb+i][ySb+j])with i,j=-1..4(8-866)
-当前子块的水平和垂直运动偏移的导出如下:
vx=sGx2>0?Clip3(-mvRefineThres,mvRefineThres,(8-867)
-(sGxdI<<3)>>Floor(Log2(sGx2))):0
vy=sGy2>0?Clip3(-mvRefineThres,mvRefineThres,((sGydI<<3)-(8-868)
((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGx2))):0
-对于x=xSb-1..xSb+2,y=ySb-1..ySb+2,当前子块的预测采样值的导出如下:
bdofOffset=Round((vx*(gradientHL1[x+1][y+1]-gradientHL0[x+1][y+1]))>>1)(8-869)
+Round((vy*(gradientVL1[x+1][y+1]-gradientVL0[x+1][y+1]))>>1)
[Ed.(JC):Round()操作是为浮点输入定义的。因为输入是一个整数值,这里的Round()操作似乎是多余的。有待提议者确认]
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+(8-870)
predSamplesL1[x+1][y+1]+bdofOffset)>>shift4)
空域梯度计算如下:
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)
空域梯度和时域梯度的计算不一致。
1.5解码器端运动矢量细化
在双向预测操作中,对于一个块区域的预测,将分别使用list0的运动矢量(MV)和list1的MV而形成的两个预测块组合以形成单个预测信号。在JVET-K0217中,解码器侧运动矢量细化(DMVR)方法中,双向预测的两个运动矢量通过双边匹配过程进一步细化。
在建议的方法中,如果下列条件为真,DMVR仅适用于Merge和跳过模式:
(POC-POC0)*(POC-POC1)<0,
其中,POC-当前待编码图片的图片顺序计数,POC0和POC 1-当前图片的参考的图片顺序计数。
用信号通知的Merge候选对被用作DMVR过程的输入,并且被表示为初始运动矢量(MV0,MV1)。DMVR搜索的搜索点服从运动矢量差镜像条件。换句话说,由候选运动矢量对(MV0’,MV1’)表示的由DMVR检查的任何点遵循以下两个等式:
MV0′=MV0+MVdiff
MV1′=MV1-MVdiff
其中,MVdiff表示参考图片之一中搜索空域中的点。
在搜索空域的构造之后,使用常规的8抽头DCTIF插值滤波器来构造单边预测。通过使用两个预测之间的MRSAD(见图6,其示出了具有6点搜索的双边匹配的示例)来计算双边匹配成本函数,并且导致最小成本的搜索点被选择为细化的MV对。对于MRSAD计算,使用16位精度的样点(这是插值滤波的输出),并且在MRSAD计算之前不应用剪切和取整操作。不应用取整和剪切的原因是为了降低内部缓冲要求。
在所提出的方法中,通过自适应模式法选择整数精度搜索点。首先计算对应于中心点(由初始运动矢量指向)的成本。其他4个成本(符号形状)由两个预测计算得出,彼此位于中心点的相对两侧。如图7a和图7b所示,该角度的最后6个点由先前计算的成本的梯度来选择。图7a示出了自适应整数搜索模式的示例,图7b示出了半样点搜索模式的示例。
DMVR过程的输出是对应于最小成本的细化运动矢量对。
如果在一次迭代之后,在搜索空域的中心点达到了最小成本,即运动矢量没有改变,则细化过程终止。否则,最佳成本进一步被视为中心,并且只要最小成本不对应于中心点并且不超过搜索范围该过程继续。
仅当half-pel搜索的应用不超出搜索范围时,才应用半样点精度搜索。在这种情况下,只执行4次MRSAD计算,对应于在整数精度搜索期间被选为最佳的中心点周围的正形状点(plus shape points)。最后,输出对应于最小成本点的细化运动矢量对。
JVET-L0163进一步提出了一些简化和改进。
参考样点填充
应用参考样点填充是为了扩展由初始运动矢量指向的参考样点块。如果编解码块的尺寸由“w”和“h”给定,则假设从参考图片缓冲中检索到尺寸为w+7和h+7的块。然后,通过使用最近的样点进行重复的样点填充,将检索到的缓冲区在每个方向上扩展2个样点。之后,一旦获得细化的运动向量(其可以在每个方向上偏离初始运动向量2个样点),扩展的参考样点块被用于生成最终预测。
注意,这种修改完全消除了DMVR的外部存储器访问要求,而没有任何编解码损失。
使用双线性插值来替代8抽头DCTIF
根据该建议,在DMVR搜索过程中应用双线性插值,这意味着在MRSAD计算中使用的预测是使用双线性插值生成的。一旦获得最终的细化运动矢量,就应用常规的8抽头DCTIF插值滤波器来生成最终的预测。
对小块禁用DMVR
4x4、4x8和8x4块禁用DMVR。
基于Merge候选之间的MV差异的早期终止
对DMVR施加了附加条件来限制MV细化过程。有了它,当满足以下条件时,DMVR就有条件地被禁用。
所选Merge候选与同一Merge列表中任何先前的Merge候选之间的MV差小于预定义的阈值(即,对于小于64个像素、小于256个像素和至少256个像素的CU,分别为四分之一像素宽、二分之一像素宽和一像素宽的间隔)。
基于在中心搜索坐标的SAD成本的早期终止
使用当前CU的初始运动矢量来计算两个预测信号(L0和L1预测)之间的绝对差的总和(SAD)。如果SAD不大于预定阈值,即每样点2(BDepth-9),则跳过DMVR;否则,仍然应用DMVR来细化当前块的两个运动矢量。
DMVR应用条件
DMVR应用条件是(POC–POC1)x(POC-POC2)<0,如果它是在BMS2.1中实现的,DMVR的应用条件被新条件(POC–POC1)==(POC2–POC)取代。这意味着只有当参考图片在相反的时间方向并且与当前图片等距时,才应用DMVR。
使用每隔一行的MRSAD计算
仅针对块的奇数行计算MRSAD成本,不考虑偶数样点行。因此,MRSAD计算的操作数量减半。
基于子像素偏移估计的参数误差表面
在JVET-K0041中,提出了一种使用整数距离位置估计成本拟合的参数误差表面,以非常小的计算复杂度来确定1/16像素的精确子像素偏移。
VVC采用了这种方法,总结如下:
1.只有当整数MVD的最小匹配成本不等于0,并且零MVD的匹配成本大于阈值时,才计算参数误差表面拟合。
2.最佳整数位置被作为中心位置,中心位置的成本和相对于中心位置的位置(-1,0)、(0,-1)、(1,0)和(0,1)(以整数像素为单位)的成本被用于拟合二维抛物线误差表面方程的形式:
E(x,y)=A(x-x0)2+B(y-y0)2+C
其中,(x0,y0)对应于成本最低的位置,C对应于最小成本值。通过用5个未知数求解5个方程,(x0,y0)计算公式如下:
x0=(E(-1,0)-E(1,0))/(2(E(-1,0)+E(1,0)-2E(0,0)))
y0=(E(0,-1)-E(0,1))/(2((E(0,-1)+E(0,1)-2E(0,0)))
(x0,y0)可以通过调整执行除法的精度(即计算多少位的商)来计算到任何所需的子像素精度。对于1/16像素精度,只需计算商的绝对值中的4位,这有助于基于快速移位减法实现的每个CU所需的2个除法。
3.将计算出的(x0,y0)加到整数距离细化MV上,得到子像素精确细化增量(delta)MV。
同时,对于5×5搜索空域,仅当中心9个位置之一是最佳整数位置时,才执行参数误差表面拟合,如图8所示。
JVET-N0236:利用光流的预测细化
该贡献提出了一种利用光流细化基于子块的仿射运动补偿预测的方法。在执行基于子块的仿射运动补偿之后,通过添加由光流方程导出的差来细化预测样点,这被称为利用光流的预测细化(prediction refinement with optical flow,PROF)。所提出的方法可以在不增加内存访问带宽的情况下实现像素级粒度的帧间预测。
为了获得更细化的运动补偿粒度,该贡献提出了一种利用光流细化基于子块的仿射运动补偿预测的方法。在执行基于子块的仿射运动补偿之后,通过添加由光流方程导出的差来细化亮度预测样点。提出的PROF(利用光流的预测细化)被描述为以下四个步骤。
步骤1)执行基于子块的仿射运动补偿以生成子块预测I(i,j)。
步骤2)使用3抽头滤波器[-1,0,1]在每个样点位置计算子块预测的空域梯度gx(i,j)和gy(i,j)。
gx(i,j)=I(i+1,j)-I(i-1,j)
gy(i,j)=I(i,j+1)-I(i,j-1)
子块预测在梯度计算中每侧扩展一个像素。为了减少内存带宽和复杂性,扩展边界上的像素从参考图片中最近的整数像素位置复制。因此,避免了填充区域的附加插值。
步骤3)由光流方程计算的亮度预测细化(表示为ΔI)。
ΔI(i,j)=gx(i,j)*Δvx(i,j)+gy(i,j)*Δvy(i,j)
其中增量MV(表示为Δv(i,j))是为样点位置(i,j)计算的像素MV(表示为v(i,j))和像素(i,j)所属的子块的子块MV之间的差,如图10所示。
因为仿射模型参数和相对于子块中心的像素位置不会在子块之间改变,所以可以为第一子块计算Δv(i,j),并将其重新用于同一CU中的其他子块。设x和y为从像素位置到子块中心的水平和垂直偏移,可以通过下面的等式导出Δv(x,y),
Figure BDA0003317597460000211
对于4参数仿射模型,
Figure BDA0003317597460000212
对于6参数仿射模型,
Figure BDA0003317597460000213
其中,(v0x,v0y)、(v1x,v1y)、(v2x,v2y)是左上角、右上角和左下角的控制点运动矢量,w和h是CU的宽度和高度。
步骤4)最后,亮度预测细化被添加到子块预测I(i,j)中。最终的预测I’由下式生成。
I′(i,j)=I(i,j)+ΔI(i,j)
JVET-N0236中的一些细节
a)如何为PROF导出梯度
在JVET-N0263中,为每个参考列表计算每个子块(VTM-4.0中的4×4个子块)的梯度。对于每个子块,获取参考块的最近整数样点,以填充样点的四条外侧线(参见上图)。
假设当前子块的最大值为(MVx,MVy)。则小数部分可以被计算为(FracX,FracY)=(MVx&15,MVy&15)。整数部分计算为(IntX,IntY)=(MVx>>4,MVy>>4)。偏移(OffsetX,OffsetY)被导出如下:
OffsetX=FracX>7?1:0:
OffsetY=FracY>7?1:0:
假设当前子块的左上角坐标为(xCur,yCur),当前子块的尺寸为W×H。
然后(xCor0,yCor0)、(xCor1,yCor1)、(xCor2,yCor2)和(xCor3,yCor3)被算为:
(xCor0,yCor0)=(xCur+IntX+OffsetX-1,yCur+IntY+OffsetY-1):
(xCor1,yCor1)=(xCur+IntX+OffsetX-1,yCur+IntY+OffsetY+H):
(xCor2,yCor2)=(xCur+IntX+OffsetX-1,yCur+IntY+OffsetY):
(xCor3,yCor3)=(xCur+IntX+OffsetX+W,yCur+IntY+OffsetY):
假设PredSample[x][y](其中,x=0..W-1,y=0..H-1)存储子块的预测样点。那么填充样点被导出为
PredSample[x][-1]=(Ref(xCor0+x,yCor0)<<Shift0)-Rounding,for x=-1..W:
PredSample[x][H]=(Ref(xCor1+x,yCor1)<<Shift0)-Rounding,for x=-1..W:
PredSample[-1][y]=(Ref(xCor2,yCor2+y)<<Shift0)-Rounding,for y=0..H-1:
PredSample[W][y]=(Ref(xCor3,yCor3+y)<<Shift0)-Rounding,for y=0..H-1:
其中Rec代表参考图片。Rounding是整数,在示例性的PROF实现中等于213。Shift0=Max(2,(14-BitDepth));
PROF试图提高梯度的精度,这与VTM-4.0中的BIO不同,在BIO中,梯度以与输入亮度样点相同的精度输出。
PROF中的梯度计算如下:
Shift1=Shift0-4.
gradientH[x][y]=(predSamples[x+1][y]-predSample[x-1][y])>>Shift1
gradientV[x][y]=(predSample[x][y+1]-predSample[x][y-1])>>Shift1
应该注意的是,predSamples[x][y]在插值后保持精度。
b)如何导出PROF的Δv
Δv(表示为dMvH[posX][posY]和dMvV[posX][posY],其中posX=0..W-1,posY=0..H-1)的推导可以描述如下
假设当前块的维度为cbWidth×cbHeight,控制点运动矢量的数量为numCpMv,控制点运动矢量为cpMvLX[cpIdx],其中,cpIdx=0..numCpMv–1,并且X为0或1,表示两个参考列表。
变量log2CbW和log2CbH导出如下:
log2CbW=Log2(cbWidth)
log2CbH=Log2(cbHeight)
变量mvScaleHor、mvScaleVer、dHorX和dVerX被导出如下:
mvScaleHor=cpMvLX[0][0]<<7
mvScaleVer=cpMvLX[0][1]<<7
dHorX=(cpMvLX[1][0]-cpMvLX[0][0])<<(7-log2CbW)
dVerX=(cpMvLX[1][1]-cpMvLX[0][1])<<(7-log2CbW)
变量dHorY和dVerY被导出如下:
–如果numCpMv等于3,则以下适用:
dHorY=(cpMvLX[2][0]-cpMvLX[0][0])<<(7-log2CbH)
dVerY=(cpMvLX[2][1]-cpMvLX[0][1])<<(7-log2CbH)
–否则(numCpMv等于2),以下适用:
dHorY=-dVerX
dVerY=dHorX
变量mvScaleHor、mvScaleVer、dHorX和dVerX被导出如下:
qHorX=dHorX<<2:
qVerX=dVerX<<2:
qHorY=dHorY<<2:
qVerY=dVerY<<2:
dMvH[0][0]和dMvV[0][0]被计算为:
dMvH[0][0]=((dHorX+dHorY)<<1)-((qHorX+qHorY)<<1):
dMvV[0][0]=((dVerX+dVerY)<<1)-((qVerX+qVerY)<<1):
对于从1至W-1的xPos,dMvH[xPos][0]和dMvV[xPos][0]被导出如下:
dMvH[xPos][0]=dMvH[xPos-1][0]+qHorX:
dMvV[xPos][0]=dMvV[xPos-1][0]+qVerX:
对于从1到H-1的yPos,以下适用:
dMvH[xPos][yPos]=dMvH[xPos][yPos-1]+qHorY with xPos=0..W-1
dMvV[xPos][yPos]=dMvV[xPos][yPos-1]+qVerY with xPos=0..W-1
最终,dMvH[xPos][yPos]和dMvV[xPos][yPos](其中posX=0..W-1,posY=0..H-1)被右移位为:
dMvH[xPos][yPos]=SatShift(dMvH[xPos][yPos],7+2-1):
dMvV[xPos][yPos]=SatShift(dMvV[xPos][yPos],7+2-1):
其中SatShift(x,n)和Shift(x,n)被定义为:
Figure BDA0003317597460000241
Shift(x,n)=(x+offset0)>>n
在一个示例中,offset0和/或offset1被设置为(1<<n)>>1。
c)如何导出PROF的ΔI
对于子块内部的位置(posX,posY),其对应的Δv(i,j)被表示为(dMvH[posX][posY],dMvV[posX][posY])。其对应的梯度被表示为(gradientH[posX][posY],gradientV[posX][posY])。
然后ΔI(posX,posY)被如下导出。
(dMvH[posX][posY],dMvV[posX][posY])被剪切(clip)为:
dMvH[posX][posY]=Clip3(-32768,32767,dMvH[posX][posY]):
dMvV[posX][posY]=Clip3(-32768,32767,dMvV[posX][posY]):
ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY]:(PROF-方程2)
ΔI(posX,posY)=Shift(ΔI(posX,posY),1+1+4):
ΔI(posX,posY)=Clip3(-(213-1),213-1,ΔI(posX,posY)):
d)如何导出PROF的I’
如果当前块没有被编码为双向预测或加权预测,
I’(posX,posY)=Shift((I(posX,posY)+ΔI(posX,posY)),Shift0),
I’(posX,posY)=ClipSample(I’(posX,posY)),
其中ClipSample将样点值剪切为有效的输出样点值。
然后,将I’(posX,posY)输出为帧间预测值。
否则(当前块被编码为双向预测或加权预测)将存储I’(posX,posY),并用于根据其他预测值和/或加权值生成帧间预测值。
相关方法
在先前的申请(申请号为PCT/CN2018/096384、PCT/CN2018/098691、PCT/CN2018/104301、PCT/CN2018/106920、PCT/CN2018/109250和PCT/CN2018/109425)中,提出了一种MV更新方法和两步帧间预测方法。BIO中参考块0和参考块1之间的导出的MV被缩放并添加到列表0和列表1的原始运动矢量中。同时,更新的MV用于执行运动补偿,并且生成第二帧间预测作为最终预测。
同时,在那些先前的PCT申请中,通过去除参考块0和参考块1之间的平均差来修改时域梯度。
在另一个在先申请(PCT申请PCT/CN2018/092118)中,对于不同的几个子块,对于色度分量仅产生一组MV。
在JVET-N0145中,DMVR与MMVD(与MVD合并(Merge))相协调。当MMVD的距离大于2个像素时,DMVR被应用于由MMVD导出的运动矢量。
1.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
现有实现的缺点
DMVR/BIO的当前设计存在以下问题:
1)当DMVR被应用于一个块或一个单元以处理DMVR(例如,16×16)时,整个单元/块将共享相同的细化运动信息。然而,细化的运动信息可能对整个单元/块内的部分样点不利。
2)在JVET-N0145中,DMVR也可以应用于MMVD编解码块。然而,它被限制为仅当MMVD的距离大于2个像素时才应用DMVR。首先使用所选择的MMVD距离来导出当前块的第一细化运动矢量。如果进一步应用DMVR,由于DMVR引起的第二细化MMVD距离可能包括在MMVD距离表中,这是不合理的。
3)DMVR/BIO总是应用于满足块维度和POC距离条件的块。然而,它没有充分考虑一个块的解码信息,这可能导致细化后的性能更差。
4)在DMVR搜索5×5正方形MVD空域,这在计算上是复杂的。水平MVD的范围为-2至2,垂直MVD的范围为-2至2。
5)参数误差表面拟合仅针对中心9个整数位置执行,这可能是低效的。
6)BDOF/PROF中的MVD值(即解码的MV和细化的MV之差)(即8.5.7.4公式Eq.8-867和BDOF中的公式8-868导出的vx和vy),或PROF中的Δvx(x,y)和Δvy(x,y)可能在很大的范围内,因此,不可能用BDOF/PROF过程中的移位来代替乘法。
7)BDOF的导出样点预测细化(例如,要添加到预测样点的偏移)没有被剪切,因此,它可能对存储不友好。另一方面,PROF使用与BDOF相同的OF流,同时PROF对导出的偏移调用剪切操作。
残差编码中的问题
1)在变换跳过模式和常规残差编解码模式(例如,变换模式)中使用的编解码组(coding group,CG)尺寸未对齐。在常规残差编码中,2*2的GC尺寸用于2*2、2*4和4*2的残差块,2*8和8*2的GC尺寸分别用于2*N和N*2的残差块(N≥8)。另一方面,在变换跳过模式中,2*2的GC尺寸总是用于2*N和N*2(N≥2)的残差块。
具有自适应分辨率转换的编解码工具的示例性方法
所公开的技术的实施例克服了现有实现的缺点。下面讨论提供的公开技术的示例以促进对公开技术的理解,并且应该以限制公开技术的方式来解释。除非明确指出相反的情况,否则可以组合这些示例中描述的各种特征。
将MV0和MV1分别表示为预测方向0和1上的块的MV。对于MVX(x=0或1),MVX[0]和MVX[1]分别代表MVX的水平和垂直分量。如果MV’等于(MV0+MV1),则MV’[0]=MV0[0]+MV1[0],且MV’[1]=MV0[1]+MV1[1]。如果MV’等于a*MV0,则MV’[0]=a*MV0[0],且MV’[1]=a*MV0[1]。假设列表0和列表1中的参考图片分别为Ref0和Ref1,当前图片和Ref0之间的POC距离为PocDist0(即(当前图片的POC减去Ref0的POC)的绝对值),Ref1和当前图片之间的POC距离为PocDist1(即(Ref1的POC减去当前图片的POC)的绝对值)。分别用W和H表示块的宽度和高度。假设函数abs(x)返回x的绝对值。
假设DMVR的水平MVD在-MVD_Hor_TH1到MVD_Hor_TH2之间,垂直MVD在-MVD_Ver_TH1到MVD_Ver_TH2之间。分别用W和H表示块的宽度和高度。假设abs(X)返回X的绝对值,Max(X,Y)返回X和Y中的较大值。假设sumAbsHorMv=abs(MV0[0])+abs(MV1[0])、sumAbsVerMv=abs(MV0[1])+abs(MV1[1])、maxHorVerMv=Max(abs(MV0[0],abs(MV1[0]))、maxAbsVerMv=Max(abs(MV0[1],abs(MV1[1]))。分别将剪切后的vx和vy表示为clipVx和clipVy。
在以下公开中,术语MV=(MVx,MVy)的“绝对MV”可以指abs(MVx)、或abs(MVy)、或abs(MVx)+abs(MVy)、或Max(abs(MVx),abs(MVy))。术语“绝对水平MV”指abs(MVx)并且“绝对垂直MV”指abs(MVy)。
假设函数logK(x)返回以K为基的x的对数,函数ceil(y)返回大于或等于y的最小整数(例如,整数值inty,其中y<=inty<y+1),floor(y)返回小于等于y的最大整数(例如,整数值inty,其中y–1<inty<=y)。函数sign(x)返回x的符号,例如,如果x>=0,返回0,如果x<0,返回1。假设x^y等于xy。假设函数
Figure BDA0003317597460000281
并且
Figure BDA0003317597460000282
注意,所提出的方法也可以适用于其他类型的解码器侧运动矢量推导/细化、预测/重构样点细化方法。
DMVR被应用于用于处理DMVR的一个块或一个单元(例如,16×16),在以下描述中,子区域可以是比处理单元更小的部分。
BIO也被称为BDOF(双向光流)
在以下讨论中,解码器侧运动推导过程中使用的MVD(例如,BDOF、PROF)可由vx、vy、Δvx(x,y)和Δvy(x,y)表示。在一个示例中,vx和vy可以指在BDOF中的8.5.7.4方程8-867和8-868中导出的“vx和vy”,或PROF中的“Δvx(x,y)和Δvy(x,y)”)。在一个示例中,Δvx(x,y)和Δvy(x,y)可以指在BDOF中的8.5.7.4方程8-867和8-868中导出的“vx和vy”,或PROF中的“Δvx(x,y)和Δvy(x,y)”)。
所提出的关于PROF/BDOF的方法可以应用于使用光流的其他类型的编码方法。
1.在用于在解码器侧运动推导过程中选择细化的运动矢量之前,可以进一步修改使用给定的MVD(或两个列表的给定MVD对)的MRSAD或其他规则(例如,SAD、SATD)的结果。
a.在一个示例中,可以通过乘以缩放因子来修改结果。
i.可替代地,可以通过除以缩放因子来修改结果。
ii.可替代地,可以通过用缩放因子相加/相减来修改结果。
iii.在一个示例中,缩放因子可以取决于MVD的值。
1.在一个示例中,缩放因子可以针对较大的MVD而增加(例如,MVD的水平和/或垂直分量的较大绝对值)。
2.在一个示例中,缩放因子可以取决于具有初始化的MV加上测试的MVD的候选MV的子像素位置。
iv.在一个示例中,缩放因子可以取决于所允许的MVD集合(例如,所允许的MVD集合中的候选的水平或垂直分量在范围[-M,N]内,其中M和N是非负值)。
2.建议是否和/或如何应用DMVR或/和BIO可以取决于块的编解码信息。
a.在一个示例中,编解码信息可以包括参考图片的运动矢量和POC值。
i.在一个示例中,编解码信息可以包括该块是用AMVP模式还是Merge模式编码的。
1.在一个示例中,对于AMVP编解码块,可以禁用BIO。
ii.在一个示例中,是否启用DMVR/BIO可以取决于两个运动矢量的和(由取决于MV0和MV1的MV0’和MV1’表示)或者MV分量的绝对值。
1.在一个示例中,如果abs(MV0’[0]+MV1’[0])>T1或者abs(MV0’[1]+MV1’[1])>T1,可以禁用DMVR和/或BIO。例如,T1=10个整数像素。
2.在一个示例中,如果abs(MV0’[0]+MV1’[0])>T1和abs(MV0’[1]+MV1’[1])>T1,可以禁用DMVR和/或BIO。
3.在一个示例中,如果abs(MV0’[0]+MV1’[0])+abs(MV0’[1]+MV1’[1])>T2,可以禁用DMVR和/或BIO。例如,T2=15个整数像素。
4.在一个示例中,如果abs(MV0’[0]+MV1’[0])<T1或abs(MV0’[1]+MV1’[1])<T1,可以禁用DMVR和/或BIO。例如,T1=10个整数像素。
5.在一个示例中,如果abs(MV0’[0]+MV1’[0])<T1和abs(MV0’[1]+MV1’[1])<T1,可以禁用DMVR和/或BIO。
6.在一个示例中,如果abs(MV0’[0]+MV1’[0])+abs(MV0’[1]+MV1’[1])<T2,可以禁用DMVR和/或BIO。例如,T2=15个整数像素。
7.在一个示例中,MV0’被设置为等于MV0,而MV1’被设置为等于MV1。
8.在一个示例中,MV0’被设置为等于MV0,并且MV1可以被缩放以生成MV1’。
a.在一个示例中,MV1'=MV1*PoDist0/PoDist1。
b.在一个示例中,MV1'=-MV1。
9.在一个示例中,MV1’被设置为等于MV1,并且MV0可以被缩放以生成MV0’。
a.在一个示例中,MV0'=MV0*PoDist1/PoDist0。
b.在一个示例中,MV0'=-MV0。
10.在一个示例中,MV0’可以被设置为等于MV0*(POCRef1-POCcur),并且MV1’可以被设置为等于MV1*(POCcur-POCRef0),其中POCcur、POCRef0和POCRef1可以分别表示当前画面的POC值、MV0的参考画面和MV1的参考画面。
b.在一个示例中,该信息可以包括Merge索引或和MVP索引。
i.例如,DMVR或/和BDOF可能只允许用于某些Merge索引。
1.例如,DMVR或/和BDOF可能只允许用于偶数Merge索引。
2.例如,DMVR或/和BDOF可能只允许用于奇数Merge索引。
3.例如,DMVR或/和BDOF可以仅被允许用于小于阈值T1的Merge索引。
4.例如,DMVR或/和BDOF可以仅被允许用于大于阈值T1的Merge索引。
ii.例如,BDOF可以仅被允许用于某些MVP索引,例如偶数或奇数MVP索引。
c.在一个示例中,该信息可以包括该块是否采用了SBT模式。
i.在一个示例中,当采用SBT模式时,可能不允许DMVR或/和BDOF。
ii.在一个示例中,在SBT模式下,DMVR或/和BDOF可以仅被允许用于具有非零残差的子分割。
iii.在一个示例中,对于在SBT模式中具有非零残差的子分割,可以不允许DMVR或/和BDOF。
3.建议是否和/或如何应用DMVR或/和BIP可取决于参考第一参考列表(例如,在第2.5节中表示为MV0)细化之前的MV和参考第二参考列表(例如,在第2.5节中表示为MV1)细化之前的MV之间的关系。
a.在一个示例中,如果MV0和MV1在块中对称,则可以禁用DMVR或/和BIO。
i.例如,如果块具有对称运动矢量(诸如(MV0+MV1)仅具有零分量),则可以禁用BIO。在一个示例中,该块可以用AMVP模式编码。在另一个示例中,可以用Merge模式对块进行编码。
ii.MV0和MV1是否对称取决于POC。
1.例如,如果MV1*(POCcur-POC0)+MV0*(POC1-POCcur)等于零运动矢量,MV0和MV1是对称的。POCcur、POC0和POC1分别表示当前图片的POC、MV0的参考图片和MV1的参考图片。
b.在一个示例中,如果MV0和MV1在块中几乎对称,则可以禁用DMVR或/和BIO。
i.例如,如果abs(MV0+MV1)<Th1,MV0和MV1是几乎对称的,Th1是一个数字,例如1个整数像素。
ii.MV0和MV1是否对称取决于POC。
1.例如,如果abs(MV1*(POCcur-POC0)+MV0*(POC1-POCcur))<Th2,则MV0和MV1几乎对称,其中Th2是可能取决于POC的数字。
c.在一个示例中,如果MV0和MV1在块中远非对称,则可以禁用DMVR或/和BIO。
i.例如,如果ABS(MV0+MV1)>Th1,则MV0和MV1远非对称,其中Th1是一个数,例如16个整数象素。
ii.MV0和MV1是否对称取决于POC。
1.例如,如果abs(MV1*(POCcur-POC0)+MV0*(POC1-POCcur))>Th2,则MV0和MV1远非对称,其中Th2是可能取决于POC的数字。
4.可以应用多步细化,当增加步长时,细化区域更小。
a.在一个示例中,第k步是细化一个或多个Mk*Nk单元,第j步是细化一个或多个Mj*Nj单元,其中k>j,Mk*Nk不等于Mj*Nj,并且两个条件中的至少一个为真:Mk<=Mj,Nk<=Mj。
5.一个块内的细化运动信息可以从一个KxL子区域到另一个KxL子区域不同。
a.在一个示例中,第一KxL子区域可以使用解码的运动信息,第二KxL子区域可以使用在应用于覆盖第二子区域的单元的DMVR过程中导出的细化的运动信息。
6.是否对一个子区域应用BIO可能取决于DMVR过程的输出。
a.在一个示例中,对于DMVR应用的块/单元内的子区域,如果运动信息在DMVR过程之后没有改变,则可以针对该子区域禁用BIO。
7.建议在DMVR选择MVD的N(N>1)对(例如,在第2.5节中的(MVdiff,-MVdiff))来生成最终预测样点,其中一对包括两个运动矢量差,一个用于列表0,一个用于列表1。
a.在一个示例中,N=2,包括DMVR过程中选择的MVD对和全零MVD对。
b.在一个示例中,N=2。可以使用DMVR过程中的两个最佳的MVD对(例如,具有最小成本的两个MVD)。
c.在一个示例中,块内的每个KxL子区域可以决定其自己的MVD对。
d.在一个示例中,对于每对MVD,可以识别两个参考块。每个样点或子块(例如,2*2块或4*4块等)之间的成本(例如,SAD/SSE)可以被计算。然后,根据成本值,最终预测样点可以作为所有参考块对的组合来生成。将preKLX(K=1,2,…,N)表示为由第K对MVD识别的列表X(X=0或1)中的参考样点,并将costK表示为第K对MVDs的成本。predKLX和costK都可以是(x,y)(例如,样点的位置)的函数。
e.在一个示例中,每个样点的权重可以与成本成反比。
i.在一个示例中,
Figure BDA0003317597460000321
Figure BDA0003317597460000322
ii.在一个示例中,
Figure BDA0003317597460000323
Figure BDA0003317597460000324
f.在一个示例中,对于每个样点或子块,实现最小成本的MVD被用于生成最终预测。
8.建议当DMVR和MMVD一起使用时,不允许DMVR将MMVD距离细化到特定值。
a.在一个示例中,由DMVR细化的MMVD距离不应包括在MMVD距离表中。
i.可替代地,进一步地,当由DMVR细化的MMVD距离被包括在MMVD距离表中时,不允许DMVR,并且使用原始的MMVD(例如,用信号通知的MMVD距离)。
b.在一个示例中,在生成DMVR的最佳整数MVD后,将其添加到原始MMVD距离,以生成粗略的细化后的MMVD距离。如果粗略的细化后的MMVD距离包含在MMVD距离表中,则可能不允许DMVR。
c.在一个示例中,DMVR可以被允许用于具有上述约束的所有MMVD距离。
i.例如,DMVR可以允许2像素的MMVD距离。
9.建议根据导出的MVD、和/或空域梯度、和/或时域梯度等,不允许对样点或子块使用BDOF。
a.在一个示例中,如果导出部分使得参考列表0中的预测样点和参考列表1中的预测样点之间的差异更大,则可能不允许样点使用BDOF。
i.例如,如果I(0)(x,y)–I(1)(x,y)<0且
Figure BDA0003317597460000331
(如在第2.3节中的方程(5)所示),位置(x,y)不允许使用BDOF。
ii.例如,如果I(0)(x,y)–I(1)(x,y)>0和
Figure BDA0003317597460000332
位置(x,y)可能不允许使用BDOF。
iii.例如,如果I(0)(x,y)–I(1)(x,y)>0和
Figure BDA0003317597460000333
(如在第2.3节中的方程(5)所示),位置(x,y)不允许使用BDOF。
iv.例如,如果I(0)(x,y)–I(1)(x,y)<0且
Figure BDA0003317597460000334
位置(x,y)可能不允许使用BDOF。
v.可替代地,如果导出部分使得参考列表0中的预测样点和参考列表1中的预测样点之间的差异更大,则导出的偏移可以通过表示为fbdof(fbdof<1.0)的因子来缩放。
1.例如,
Figure BDA0003317597460000335
b.在一个示例中,如果导出部分使得参考列表0中的预测子块和参考列表1中的预测子块之间的差异更大,则对于样点或K*L(例如,2*2,1*1)子块,可以不允许BDOF。
i.例如,当Δ12时,可能不允许BDOF,其中
Figure BDA0003317597460000341
Figure BDA0003317597460000342
并且Ω表示属于子块的样点。
ii.在一个示例中,当Δ12时,可能不允许BDOF。
iii.在一个示例中,可以通过SSE(平方误差之和)或平均去除SSE或SATD(绝对变换差之和)来测量差。例如,
Figure BDA0003317597460000343
Figure BDA0003317597460000344
iv.在一个示例中,可以对子块的某些样点计算差值。
1.例如,可以对子块的偶数行或奇数行计算差值。
v.可替代地,如果导出部分使得参考列表0中的预测子块和参考列表1中的预测子块之间的差异更大,则导出的偏移或/和vx或/和vy可以通过表示为fbdof(fbdof<1.0)的因子来缩放。
c.在一个示例中,如果导出部分使得参考列表0中的预测子块(或样点)和参考列表1中的预测子块(或样点)之间的差异更小,则导出的偏移(例如,
Figure BDA0003317597460000345
)或/和vx或/和vy可以通过表示为fbdof(fbdof>=1.0)的因子来缩放。
10.建议当在剪切操作之后BDOF中的导出的MVD(例如,vx或/和vy)改变时,可以为剪切的MVD进行计算成本(例如,
Figure BDA0003317597460000346
其中Δ在等式(5)中定义,并且Ω代表属于子块的样点)。将原始导出的MVD的成本表示为costDerivedMvd,将剪切后的MVD的成本表示为costClipMvd,将所有零MVD的成本表示为costZeroMvd。
a.在一个示例中,如果costClipMvd>Th*costZeroMvd,则可能不允许BDOF。
b.在一个示例中,如果costClipMvd>Th*costDerivedMvd,则可能不允许BDOF。
c.在一个示例中,如果costClipMvd>Th*costZeroMvd或costClipMvd>Th*costDerivedMvd,则导出的偏移(例如,
Figure BDA0003317597460000351
)可以按小于1.0的因子进行缩放。
d.可替代地,如果在剪切操作后vx和vy改变了,则可能不允许BDOF。
e.可替代地,如果在剪切操作后vx或vy发生变化,则可能不允许BDOF。
f.可替代地,如果vx和剪切后的vx之间的绝对差值大于阈值T,则可能不允许BDOF。
g.可替代地,如果vy和剪切后的vy之间的绝对差值大于阈值T,则可能不允许BDOF。
h.可替代地,如果vx和剪切后的vx之间的绝对差值大于阈值T1,并且vy和剪切后的vy之间的绝对差值大于阈值T2,则可能不允许BDOF。
i.在一个示例中,T/T1/T2可以是1或2或3或4个整数像素。
j.在一个示例中,当vx不等于clipVx时,可以为一些特定的MVD计算成本,例如,(0,0),(clipVx/2,0),(clipVx*2,0)。实现最小成本的MVD可被选为最终MVD。
k.在一个示例中,当vy不等于clipVy时,可以为一些特定的MVD计算成本,例如,(clipVx,0),(clipVx,clipVy/2),(clipVx,clipVy*2)。实现最小成本的MVD可被选为最终MVD。
l.在一个示例中,当vx不等于clipVx并且vy不等于clipVy时,可以为一些特定的MVD计算成本,例如,(0,0),(clipVx/2,0),(clipVx*2,0),(0,clipVy),(clipVx/2,clipVy),(clipVx*2,clipVy),(0,2*clipVy),(clipVx/2,2*clipVy),(clipVx*2,2*clipVy)。实现最小成本的MVD可被选为最终MVD。
m.在一个示例中,当vx不等于clipVx且vy不等于clipVy时。可以顺序确定水平MVD和垂直MVD。
i.例如,可以首先假设垂直MVD等于某个值(例如,0),来确定水平MVD。然后可以基于所确定的水平MVD来确定垂直MVD。
1.在一个示例中,假设垂直MVD等于零,例如MVD(0,0),(clipVx/2,0),(clipVx*2,0),可以首先为某些特定的水平MVD计算成本,实现最小成本的水平MVD可以被选择为最终水平MVD,表示为最finalVx。然后,可以计算某些特定垂直MVD的成本,例如,MVDs(finalVx,0),(finalVx,clipVy/2),(finalVx,clipVy*2)。可以选择实现最小成本的垂直MVD作为最终垂直MVD。
ii.例如,可以首先假设水平MVD等于某个值(例如,0),来确定垂直MVD。然后可以基于所确定的垂直MVD来确定水平MVD。
1.在一个示例中,假设水平MVD等于零,例如MVDs(0,0),(0,clipVy/2),(0,clipVy*2),可以首先为某些特定的垂直MVD计算成本,实现最小成本的垂直MVD可以被选择为最终垂直MVD,表示为finalVy。然后,可以为某个特定的水平MVD计算成本,例如MVDs(0,finalVy),(clipVx/2,finalVy),(clipVx*2,finalVy)。可以选择实现最小成本的水平MVD作为最终的水平MVD。
n.在一个示例中,不同的MVD在成本函数中可能有一些共同的部分,这些部分在比较中可能不会重新计算。
i.可替代地,从所有MVDs的成本函数中删除共同部分。
11.在BDOF和其他解码器细化工具(例如,PROF)中导出的运动矢量差(即,MVD)可以基于取决于导出的MVD的一组或多组候选MVD来进一步细化。并且可以基于发信号通知的运动矢量和细化的MVD向量来重构块。用(vx,vy)表示导出的MVD,用(refinedVx,refinedVy)表示细化的MVD。
a.在一个示例中,可以应用两步细化,其中在第一步中使用的第候选MVD集基于未修改的vy和修改的vx;第二组候选MVD基于未修改的vx和修改的vy,反之亦然。
b.在一个示例中,候选MVD集被定义为包括(vx+offsetX,vy),其中,offsetX在[-ThX1,ThX2]的范围内,其中ThX1和ThX2是非负整数值。在一个示例中,ThX1=ThX2=ThX,其中ThX是非负整数。在另一个示例中,ThX1=ThX2+1=ThX,其中ThX是非负整数。
i.在一个示例中,ThX=2。在一个示例中,在导出vx之后,可以检查包括(vx–2,vy),(vx–1,vy),(vx,vy),(vx+1,vy)和(vx+2,vy)的MVD。
ii.可替代地,ThX=1。在一个示例中,在导出vx之后,可以检查包括(vx–1,vy),(vx,vy)和(vx+1,vy)的MVD。
iii.在一个示例中,仅允许在范围[-ThX,ThX]内的部分值(例如,offsetX)。
iv.可替代地,vy设置为等于0。
v.可替代地,vx被设置为等于refinedVy
c.在一个示例中,候选MVD集被定义为包括(vx,vy+offsetY),其中,offsetY在[-ThY1,ThY2]中,其中ThY1和ThY2是非负整数值。在另一个示例中,ThY1=ThY2+1=ThY,其中ThY是非负整数。
i.在一个示例中,ThY=2。在一个示例中,在导出vy之后,可以检查包括(vx,vy–2),(vx,vy–1),(vx,vy),(vx,vy+1)和(vx,vy+2)的MVD。
ii.可替代地,ThY=1。在一个示例中,在导出vy之后,可以检查包括(vx,vy–1),(vx,vy)和(vx,vy+1)的MVD。
iii.在一个示例中,仅允许在范围[-ThY,ThY]内的部分值(例如,offsetY)。
iv.可替代地,vx被设置为等于refinedVx
v.可替代地,vx设置为0。
d.在一个示例中,vx和vy可以按顺序细化。
i.例如,首先根据项目符号10.b细化vx
1.可替代地,假设vy等于0。
ii.例如,首先根据项目符号10.c细化vy
1.可替代地,假设vx等于0。
e.在一个示例中,vx和vy可以被联合细化。例如,候选MVD集被定义为包括(vx+offsetX,vy+offsetY),其中,offsetX在范围[-ThX1,ThX2]内,offsetY在范围[-ThY1,ThY2]内。
i.例如,ThX1=ThX2=2,ThY1=ThY2=2。
ii.例如,ThX1=ThX2=1,ThY1=ThY2=1。
iii.在一个示例中,(vx+offsetX,vy+offsetY)的部分值可能仅包含在候选MVD集中。
f.在一个示例中,从vx和vy导出的候选MVD的数量可以相同,例如,ThX1=ThY1并且ThX2=ThY2。
i.可替代地,从vx和vy导出的候选MVD的数量可以不同,例如,ThX1!=ThY1或ThX2!=ThY2。
g.可替代地,此外,实现最小成本(例如,项目9中定义的成本)的MVD可以被选择作为细化的MVD。
12.建议在BDOF和其他解码器细化方法(例如,PROF)中使用的MVD可以被限制在给定候选集内。
a.假设水平MVD的最大值和最小值分别由MVDmaxX和MVDminX表示;垂直MVD的最大值和最小值分别由MVDmaxY和MVDminY表示。给定候选集中允许的水平MVD候选数目应小于(1+MVDmaxX-MVDminX)和/或给定候选集中允许的垂直MVD候选数目应小于(1+MVDmaxY-MVDminY)。
b.在一个示例中,给定候选集可以仅具有形式为Km的vx和/或vy的候选,其中m是整数。例如,K=2。
i.可替代地,此外,给定候选集还可以包括vx和/或vy等于0的候选。
ii.可替代地,对于Δvx(x,y)或/和Δvy(x,y)给定候选集可以只有Δvx(x,y)或/和Δvy(x,y)为零或Km形式的候选,其中m是整数。例如,K=2。
c.在一个示例中,给定候选集可以仅包括具有vx和/或vy或/和Δvx(x,y)或/和Δvy(x,y)的候选,并且其绝对值为零或以Km的形式,其中m是整数。例如,K=2。
d.在一个示例中,给定候选集可以仅包括具有vx和/或vy或和/或的候选,并且是零或Km或-Km的形式,其中m是整数。例如,K=2。
e.在一个示例中,可以首先使用现有技术导出MVD(例如,在8.5.7.4节的BDOF中的方程8-867和8-868中导出的vx和vy),然后MVD可以被修改为给定候选集中允许的候选之一。
i.在一个示例中,X被设置为等于abs(vx)或abs(vy),X’从X导出,vx或vy被修改为sign(vx)*X’或sign(vy)*X’。
1.例如,X’可以被设置为等于K^ceil(logK(X))。
2.例如,X’可以被设置为等于K^floor(logK(X))。
3.例如,如果X小于阈值T,则X’可以被设置为等于0。
4.例如,如果ceil(logK(X))–X<=X–floor(logK(X)),则X’可以被设置为等于K^ceil(logK(X))。
a.可替代地,此外,X’可以被设置为等于K^floor(logK(X)),或其他。
5.例如,如果Kceil(logK(X))–X<=X–Kfloor(logK(X)),X’可以设置为等于Kceil(logK(X))
a.可替代地,如果Kceil(logK(X))-X>X-Kfloor(logK(X)),X’可以设置为等于Kfloor(logK(X))
6.例如,如果Kceil(logK(X))-X<X-Kfloor(logK(X)),X’可以设置为等于Kceil(logK(X))
a.可替代地,此外,如果Kceil(logK(X))-X>=X-Kfloor(logK(X)),X’可以设置为等于Kfloor (logK(X))
7.在一个示例中,K被设置为2。
8.在一个示例中,X’可以被设置为等于Kceil(logK(X+offset)),其中offset是整数。例如,offset可以等于X-1或X>>1。
a.在一个示例中,offset可能取决于X。例如,offset可能等于Kceil(logK(X))/2+P,其中P是整数,例如0、1、-1。
9.在一个示例中,X’可以被设置为等于Kfloor(logK(X+offset)),其中offset是整数。例如,offset可以等于X-1或X>>1。
a.在一个示例中,offset可能取决于X。例如,offset可能等于Kfloor(logK(X))/2+P,其中P是整数,例如0、1、-1。
10.在一个示例中,从X到X’的转换可以通过预定义的查找表来实现。
a.在一个示例中,查找表可以从上述方法导出。
b.在一个示例中,查找表可能不是从上述方法导出的。
c.在一个示例中,当从X转换到X’时,X可以用作访问查找表的索引。
d.在一个示例中,当从X转换到X’时,X的前N个(例如,N=3)最高有效位可以用作访问查找表的索引。
e.在一个示例中,当从X转换到X’时,X的前N个(例如,N=3)最低有效位可以用作访问查找表的索引。
f.在一个示例中,当从X转换到X’时,X的某些N(例如,N=3)个连续位可以用作访问查找表的索引。
11.通过将Vx更换为Δvx(x,y),上述方法也适用于Δvx(x,y)。
12.通过将vy更换为Δvy(x,y),上述方法也适用于Δvy(x,y)。
ii.在一个示例中,可以根据vx或vy选择一组为K的幂的候选值来计算成本(例如,项目9中定义的成本)。实现最小成本的值被选为最终的vx或vy。表示lgKZ=floor(logK(abs(vZ))),其中Z=x或y。
1.例如,该组值可以是sign(vZ)*{K^lgKZ,K^(lgKZ+1)}。
2.例如,该组值可以是sign(vZ)*{K^lgKZ,K^(lgKZ+1),0}。
3.例如,该组值可以是sign(vZ)*{K^lgKZ,0}。
4.例如,该组值可以是sign(vZ)*{K^(lgKZ–1),K^lgKZ,K^(lgKZ+1)}。
5.例如,该组值可以是sign(vZ)*{K^(lgKZ–1),K^lgKZ,K^(lgKZ+1),0}。
6.例如,该组值可以是sign(vZ)*{K^(lgKZ–2),K^(lgKZ–1),K^lgKZ,K^(lgKZ+1),K^(lgKZ+2),0}。
7.例如,该组值可以是sign(vZ)*{K^(lgKZ–2),K^(lgKZ–1),K^lgKZ,K^(lgKZ+1),K^(lgKZ+2)}。
iii.在一个示例中,vx和vy可以按顺序修改。
1.在一个示例中,假设vy等于零,可以首先修改vx
a.可替代地,此外,vy是基于修改后的vx导出的。
2.在一个示例中,假设vx等于零,可以首先修改vy
a.可替代地,此外,vx是基于修改后的vy导出的。
f.可替代地,可以只检查给定候选集中允许的候选,以导出MVD。
i.在一个示例中,在BDOF中,除了从方程7和8中显式地导出的MVD(例如,在8.5.7.4中的方程8-867和8-868中导出的vx和vy),可以直接从候选MVD值集中选择vx和vy
ii.在一个示例中,vx和vy可以按顺序确定。
1.在一个示例中,假设vy等于零,可以首先确定vx
a.可替代地,此外,基于确定的vx导出vy
2.在一个示例中,假设vx等于零,可以首先确定vy
a.可替代地,此外,基于确定的vy导出vx
iii.在一个示例中,vx和vy是共同确定的。
iv.在一个示例中,候选MVD值集可以仅包括K^N或-K^N或零的形式的值,N是整数,K>0,例如,K=2。
1.在一个示例中,候选MVD值集可以包括M/(K^N)形式的值,M是整数,并且n≥0,K>0,例如,K=2。
2.在一个示例中,候选值集可以包括M/(K^N)形式的值,M和N是整数,K>0,例如,K=2。
3.在一个示例中,候选值集可以包括值零或(K^M)/(K^N)形式的值,M和N是整数,K>0,例如,K=2。
g.可替代地,对于vx和vy,只能导出允许的MVD值。
i.在一个示例中,vx如下导出,其中函数F1()和F2()可以是floor()或ceil()。
vx=sGx2>0?Clip3(-mvRefineThres,mvRefineThres, (8-867)
sign(-sGxdI)*esp(F1(Log2(abs(sGxdI)<<3)),F2(Log2(sGx2)))):0
ii.在一个示例中,vx被导出为sign(-sGxdI)*esp2(M),其中M是实现最小cost(sGxdI<<3,sGx2)的整数,并且函数cost()被定义如下。
cost(x,y)=Abs(abs(x)*2M-y)
1.可替代地,cost(x,y,M)=Abs(abs(x)*2M–abs(y))。
2.可替代地,cost(x,y,M)=Abs(abs(x)*2M–y)。
iii.在一个示例中,vy如下导出,其中函数F1()和F2()可以是floor()或ceil()。
tmp=(sGydI<<3)-((vx*sGxGym)<<12+vx*sGxGys)>>1
vy=sGy2>0?Clip3(-mvRefineThres,mvRefineThres,
sign(tmp)*esp(F1(Log2(abs(tmp))) (8-868)
,F2(Log2(sGx2)))):0
iv.在一个示例中,vy被导出为sign(tmp)*esp2(M),其中M是实现最小cost(tmp,sGy2)的整数,并且tmp被定义如下,并且函数cost()被定义如上。
tmp=(sGydI<<3)-((vx*sGxGym)<<12+vx*sGxGys)>>1
v.假设用于导出vx的分子和分母分别是numX和denoX(例如,vx预计约为numX/denoX)。vx可按如下方式导出:
1.在一个示例中,vx可以导出为sign(numX*denoX)*esp2(M),其中M是实现cost(numX,denoX,M)的最小值的整数。
2.在一个示例中,vx可以被设置为等于零或sign(numX*denoX)*KF1(logK(abs (numX)+offset1))-F2(logK(abs(denoX)+offset2)),其中offset1和offset2是整数。
a.例如,如果abs(numX)<abs(denoX)*T1+T2,则vx可以设置为等于零。例如,T1=1/2,T2=0。
b.例如,如果abs(numX)<=abs(denoX)*T1+T2,则vx可以设置为等于零。例如,T1=1/2,T2=0。
c.例如,如果abs(numX)<(abs(denoX)>>T1)+T2,则vx可以设置为等于零。例如,T1=1,T2=0。
d.例如,如果abs(numX)<=(abs(denoX)>>T1)+T2,则vx可以设置为等于零。例如,T1=1,T2=0。
e.例如,如果denoX等于零,vx可以设置为零。
f.例如,如果numX等于零,vx可以设置为零。
g.例如,如果numX等于零或denoX等于零,则vx可以设置为零。
h.例如,如果denoX小于T1,则vx可以设置为零。
i.例如,如果numX小于T1,则vx可以设置为零。
j.例如,如果numX小于T1或denoX小于T2,则vx可以设置为零。
k.例如,offset1可以设置为等于numX-1或numX>>1或0。
1.例如,offset2可以设置为等于denoX-1或denoX>>1或0。
m.例如,offset1可能取决于numX。例如,offset1可能等于Kceil(logK(numX))/2+P,其中P是诸如0、1、-1的整数。
n.例如,offset1可能取决于numX。例如,offset1可能等于Kceil(logK(abs(numX)))/2+P,其中P是诸如0、1、-1的整数。
o.例如,offset1可能等于Kfloor(logK(numX))/2+P,其中P是诸如0、1、-1的整数。
p.例如,offset1可能等于Kfloor(logK(abs(numX)))/2+P,其中P是诸如0、1、-1的整数。
q.例如,offset2可能取决于denoX。例如,offset2可能等于Kceil(logK(denoX))/2+P,其中P是诸如0、1、-1的整数。
r.例如,offset2可能取决于denoX。例如,offset2可能等于Kceil(logK(abs(denoX)))/2+P,其中P是诸如0、1、-1的整数。
s.例如,offset2可能等于Kfloor(logK(denoX))/2+P,其中P是诸如0、1、-1的整数。
t.例如,offset2可能等于Kfloor(logK(abs(denoX)))/2+P,其中P是诸如0、1、-1的整数。
u.例如,F1()和F2()可以是函数floor()或ceil()。
3.在一个示例中,delta=floor(log2(abs(numX)))–floor(log2(abs(denoX))),vx可以如下进行导出。
a.例如,vx=abs(numX)<(T1*abs(denoX)+T2)?T3:sign(numX*denoX)*(1<<delta)。
i.在一个示例中,T1=1,T2=0,T3=0。
ii.在一个示例中,T1=1/2,T2=0,T3=0。
iii.在一个示例中,T3=numX。
b.例如,vx=abs(numX)<=(T1*abs(denoX)+T2)?T3:sign(numX*denoX)*(1<<delta)。
i.在一个示例中,T1=1,T2=0,T3=0。
ii.在一个示例中,T1=1/2,T2=0,T3=0。
iii.在一个示例中,T3=numX。
c.例如,vx=((denoX==0)||(abs(numX)<(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
d.例如,vx=((denoX==0)||(abs(numX)<=(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
e.例如,vx=((numX==0)||(abs(numX)<(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
f.例如,vx=((numX==0)||(abs(numX)<=(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
g.例如,vx=((numX==0)||(denoX==0)||(abs(numX)<(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
h.例如,vx=((numX==0)||(denoX==0)||(abs(numX)<=(T1*abs(denoX)+T2)))?T3:sign(numX*denoX)*(1<<delta)。
i.例如,vx=(delta<T1)?T3:sign(numX*denoX)*(1<<delta)。
i.在一个示例中,T1=0,T3=0。
j.例如,vx=(delta<=T1)?T3:sign(numX*denoX)*(1<<delta)。
i.在一个示例中,T1=0,T3=0。
k.例如,vx=((delta<T1)||(denoX==0))?T3:sign(numX*denoX)*(1<<delta)。
l.例如,vx=((delta<=T1)||(denoX==0))?T3:sign(numX*denoX)*(1<<delta)。
m.例如,vx=((delta<T1)||(numX==0))?T3:sign(numX*denoX)*(1<<delta)。
n.例如,vx=((delta<=T1)||(numX==0))?T3:sign(numX*denoX)*(1<<delta)。
o.例如,vx=((delta<=T1)||(numX==0)||(denoX==0))?T3:sign(numX*denoX)*(1<<delta)。
p.例如,vx=((delta<T1)||(numX==0)||(denoX==0))?T3:sign(numX*denoX)*(1<<delta)。
q.在一个示例中,delta可以进一步修改如下。
i.例如,如果floor(log2(abs(numX)))大于0,并且abs(numX)&(1<<(floor(log2(abs(numX)))–1))不等于0,delta可以递增1。
ii.例如,如果floor(log2(abs(denoX)))大于0,并且abs(denoX)&(1<<(floor(log2(abs(denoX)))–1))不等于0,delta可以递增1。
r.可替代地,当delta小于0时,vx设置为0。
4.这种方法适用于vy(例如,在上述方法中用vy替换vx),通过分别用numY和denoY替换numX和denoX,其中numY和denoY是用于导出vy的分子和分母。
5.在上面的示例中,vx可以指用于在BDOF中导出bdofOffset的“vx”,或者用于在PROF中导出ΔI的“Δvx(x,y)”(例如在PROF-方程2中)。
a.例如,numX和/或denoX可以根据vx是指用于在BDOF中导出bdofOffset的“vx”还是用于在PROF中导出ΔI的“vx”来设置。
b.例如,如果″Δvx(x,y)″用于在PROF中导出ΔI,则numX可以被设置为等于从PROF中的仿射参数导出的Δvx(x,y)(例如,在PROF-方程1中)。
c.例如,如果″Δvx(x,y)″用于在PROF中导出ΔI,则denoX可以被设置为等于固定数字,例如1。
6.在上面的示例中,vy可以指用于在BDOF中导出bdofOffset的“vy”,或者用于在PROF中导出ΔI的“Δvy(x,y)”(例如在PROF-方程2中)。
a.例如,可以根据vy是指用于在BDOF中导出bdofOffset的“vy”还是用于在PROF中导出ΔI的“Δvy(x,y)”来设置numY和/或denoY。
b.例如,如果″Δvy(x,y)″用于在PROF中导出的ΔI,则可以将numY设置为等于从PROF中的仿射参数导出的Δvy(x,y)(例如,在PROF-方程1中)。
c.例如,如果″Δvy(x,y)″用于在PROF中导出ΔI,则denoY可以被设置为等于固定数字,例如1。
h.在一个示例中,在不同工具(例如,BDOF和PROF)中使用的MVD的水平和/或垂直分量可以首先使用现有技术导出,并且进一步修改为属于与该工具相关联的给定候选集。修改过程可以统一。
i.可替代地,不同工具中使用的MVD的导出过程可以直接统一。
ii.在一个示例中,在BDOF和PROF中使用的MVD的水平和/或垂直分量可以首先使用现有技术导出,并且进一步修改为属于与工具相关联的给定候选集。
1.可替代地,此外,可以使用不同的输入来调用统一的修改过程。
2.例如,这些值可以如项目12.g.v描述的那样导出。输入是分子和分母,输出是导出的MVD值,该值或者是零或者是Km或-Km形式的值(K和m是整数,例如,K=2)的值。
3.在一个示例中,当在PROF中导出运动矢量差时,分子是在被分别修改之前的原始Δvx(x,y)或Δvy(x,y)(例如,在2.6节中导出的值),并且分母是1。
4.在一个示例中,当在BDOF中修改运动矢量差时,分子是原始vx或vy(例如,在BDOF中的8.5.7.4的方程8-867和8-868中导出的值),并且分母为1。
5.在一个示例中,原始的Δvx(x,y)或Δvy(x,y)(例如,在BDOF中的8.5.7.4的方程8-867和8-868中导出的值)在用作分子之前可以左移数字N,并且分母是1<<N。在这种情况下,输出MVD在被使用之前应该右移N。
6.在一个示例中,原始vx或vy(例如,在BDOF中的8.5.7.4的方程8-867和8-868中导出的值)在用作分子之前可以左移数字N,并且分母是1<<N。在这种情况下,输出MVD在使用之前应该右移N。
i.在一个示例中,当确定项目11.b或/和11.c中的vx或vy时,为每个候选值计算成本,并且实现最小成本的值被选择为vx或vy
i.例如,可以使用成本
Figure BDA0003317597460000461
其中Δ在方程(5)中定义。Ω代表属于子块的样点。
j.给定候选集可以是预定义的。
i.在一个示例中,vx和/或vy可以仅来自-2^x/2^X,其中x在范围[-(X-1),(X-1)]内。
1.可替代地,此外,给定候选集还可以包括vx和/或vy等于0的候选。
2.可替代地,此外,给定候选集也可以包括2^x/2^X形式的值。
ii.在一个示例中,给定MVD候选集中的候选的水平和/或垂直分量(例如,在BDOF中使用的vx和/或vy的值,或PROF中使用的Δvx(x,y)或Δvy(x,y)的值)可以仅仅是
Figure BDA0003317597460000471
的形式,其中S是1或-1。
1.在一个示例中,N=6。在其他示例中,N可以是0、2或4。
2.在一个示例中,m在范围[a,b]内,诸如a=0且b=N;或者a=0,b=N-1。
3.可替代地,此外,除了
Figure BDA0003317597460000472
给定的MVD候选集还可以包括0。
4.可替代地,此外,给定候选集可以包括除了
Figure BDA0003317597460000473
和/或0以外的
Figure BDA0003317597460000474
的形式的值。
a.在一个示例中,Q=6。
b.在一个示例中,n在范围[a,b]内,诸如a=0且b=Q;或a=0,b=Q-1。
5.在一个示例中,给定MVD候选集中的候选的水平和/或垂直分量(例如,在BDOF中使用的vx和/或vy的值,在PROF中的Δvx(x,y)或Δvy(x,y))可以仅在
Figure BDA0003317597460000475
Figure BDA0003317597460000476
中。
iii.在一个示例中,vx和vy可以仅是{-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/64。
iv.在一个示例中,vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可以仅是{-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}。
v.在一个示例中,vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可以仅是{-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/32。
vi.在一个示例中,Δvx(x,y)或/和Δvy(x,y)可以仅是{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}。
vii.在一个示例中,vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可以仅是{-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}/64。
viii.在一个示例中,vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可以仅是{-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}/128。
ix.在一个示例中,vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可以仅是{-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}。
k.给定候选集可以取决于编解码信息(例如,块维度、模式)。
i.这可能取决于启用了BDOF或PROF的块编解码。
l.给定候选集可以以序列/图片/条带/砖块/其他视频单元级的方式来发送信号。
m.在一个示例中,在BDOF或PROF中对样点的细化过程排除乘法运算。
i.例如,S’被导出为S’=S+((Gx+OffsetX)<<Bx)+((Gy+OffsetY)<<By)+OffsetS,其中S和S’是细化之前和之后的样点值。OffsetX、OffsetY和OffsetS是整数,诸如0。
1.在一个示例中,S’可以被剪切。
2.在一个示例中,S’可以被右移。
13.BDOF中的vx或/和vy或/和PROF中的Δvx(x,y)或/和Δvy(x,y)可首先被剪切到预定范围(vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可使用不同的范围),然后通过建议的方法转换为零或Km或-Km形式的值。
a.可替代地,BDOF中的vx或/和vy或/和PROF中的Δvx(x,y)或/和Δvy(x,y)可首先通过建议的方法转换为零或Km或-Km形式的值,然后剪切到预定范围(vx或/和vy或/和Δvx(x,y)或/和Δvy(x,y)可使用不同的范围)。
i.可替代地,此外,范围应采用[-Km1,Kn]或[Km2,Kn]的形式。
b.在一个示例中,上述方法中的分子或/和分母可以在使用之前被剪切到预定范围。
14.对于不同的序列/图片/条带/片组(tile group)/片(tile)/CTU/CU,BDOF中的剪切参数(例如,方程7和方程8中的thBIO)可以不同。
a.在一个示例中,当剪切水平MVD和垂直MVD时,可以使用不同的thBIO。
b.在一个示例中,thBIO可能取决于图片维度。例如,较大的thBIO可以用于较大维度的图片。
c.在一个示例中,thBIO可以取决于块的解码运动信息。
i.例如,较大的thBIO可用于具有较大绝对水平MV的块,例如,MV[0]的“绝对MV”或MV[1]的“绝对MV”或sumAbsHorMv或sumAbsVerMv或sumAbsHorMv+sumAbsVerMv.
ii.例如,较大的thBIO可用于对具有较大绝对水平MV的块的水平MVD进行剪切,例如MV[0]的“绝对水平MV”或MV[1]的“绝对水平MV”或sumAbsHorMv或maxHorVerMv。
iii.例如,较大的thBIO可用于对具有较大绝对垂直MV的块的垂直MVD进行剪切,例如MV[0]的“绝对垂直MV”或MV[1]的“绝对垂直MV”或sumAbsVerMv或maxAbsVerMv。
d.剪切参数可以在编码器处决定,并以序列参数集(SPS)、或/和视频参数集(VPS)、或/和自适应参数集(APS)、或/和图片参数集(PPS)、或/和条带头、或/和片组头的形式发送给解码器。
15.BDOF中的剪切参数可能取决于编解码工具X是否启用。
a.在一个示例中,X是DMVR。
b.在一个示例中,X是仿射帧间模式。
c.在一个示例中,在针对序列/视频/图片/条带/片组/片/砖块/编解码单元/CTB/CU/块禁用X时,可以采用较大的剪切参数,例如方程7和8中的阈值thBIO。
i.可替代地,此外,在针对序列/视频/图片/条带/片组/片/砖块/编解码单元/CTB/CU/块启用X时,可以采用较小的剪切参数。
16.在BDOF和PROF中导出的MVD(如第2.6节中PROF的(dMvH,dMvV)或/和第2.3节中BDOF的(vx,vy))可被剪切到相同的范围[-N,M],其中N和M是整数。
d.在一个示例中,N=M=31。
e.在一个示例中,N=M=63。
f.在一个示例中,N=M=15。
g.在一个示例中,N=M=7。
h.在一个示例中,N=M=3。
i.在一个示例中,N=M=127。
j.在一个示例中,N=M=255。
k.在一个示例中,M=N,并且2*M不等于2K的值(K是整数)。
l.在一个示例中,M不等于N,并且(M+N)不等于2K的值(K是整数)。
m.可替代地,BDOF和PROF中导出的MVD可以被剪切到不同的范围。
i.例如,在BDOF中导出的MVD可以被剪切到[-31,31]。
ii.例如,在BDOF中导出的MVD可能被剪切为[-15,15]。
iii.例如,在BDOF中导出的MVD可以被剪切到[-63,63]。
iv.例如,在BDOF中导出的MVD可以被剪切到[-127,127]。
v.例如,在PROF中导出的MVD可以被剪切到[-63,63]。
vi.例如,在PROF中导出的MVD可以被剪切到[-31,31]。
vii.例如,在BDOF中导出的MVD可能被剪切为[-15,15]。
viii.例如,在BDOF中导出的MVD可以被剪切到[-127,127]。
17.在基于光流的方法(如PROF)中,与一个样点相关的MVD(如第2.6节中的(dMvH,dMvV))可用于导出另一个样点的MVD。
n.在一个示例中,可以仅对某些位置使用仿射模型(例如,根据第2.6节中的PROF-方程1)来导出PROF中的MVD,并且这种MVD可以用于导出其他位置的MVD。假设MVD是在PROF中的尺寸W*H处导出的。
o.在一个示例中,可以仅对上W*H/2部分使用仿射模型来导出MVD,并且可以从上W*H/2部分的MVD导出下W*H/2部分的MVD。示例如图11所示。
p.在一个示例中,可以仅对下W*H/2部分使用仿射模型来导出MVD,并且可以从下W*H/2部分的MVD导出上W*H/2部分的MVD。
q.在一个示例中,可以仅对左W/2*H部分使用仿射模型来导出MVD,并且可以从左W/2*H部分的MVD导出右W/2*H部分的MVD。
r.在一个示例中,可以仅对右W/2*H部分使用仿射模型来导出MVD,并且可以从右W/2*H部分的MVD导出左W/2*H部分的MVD。
s.此外,在一个示例中,在用于导出其他位置的MVD之前,使用仿射模型导出的MVD可以被舍入到预定精度或/和被剪切到预定范围。
i.例如,当使用仿射模型导出上W*H/2部分的MVD时,在用于导出下W*H/2部分的MVD之前,这种MVD可以被舍入到预定精度或/和被剪切到预定范围。
t.在一个示例中,对于x=0,…,W–1,y=H/2,…,H–1,位置(x,y)的MVD导出如下,其中MVDh和MVDv分别是水平和垂直MVD。
i.MVDh(x,y)=-MVDh(W–1–x,H–1–y)
ii.MVDv(x,y)=-MVDv(W–1–x,H–1–y)
18.BDOF中的导出的样点预测细化(例如,要添加到预测样点的偏移)可以被剪切到预定范围[-M,N](M和N是整数)。
a.在一个示例中,N可以等于M–1。
i.在一个示例中,M等于2K。例如,K可以等于11、12、13、14或15。
ii.可替代地,N可以等于M。
b.在一个示例中,预定义范围可以取决于当前颜色分量的比特深度。
i.在一个示例中,M等于2K,K=Max(K1,BitDepth+K2),其中BitDepth是当前颜色分量(例如,亮度、Cb或Cr、或R、G或B)的比特深度。Max(X,Y)返回X和Y中的较大值。
ii.在一个示例中,M等于2K,K=Min(K1,BitDepth+K2),其中BitDepth是当前颜色分量(例如,亮度、Cb或Cr、或R、G或B)的比特深度。Min(X,Y)返回X和Y中的较小值。
iii.例如,K1可以等于11、12、13、14或15。
iv.例如,K2可以等于-2、-1、0、1、2或3。
v.在一个示例中,三种颜色分量共享相同的比特深度bitdepth,因此,该范围完全取决于块中样点的内部比特深度或输入比特深度。
c.在一个示例中,预定义的范围与PROF中使用的范围相同。
d.可替代地,此外,BDOF中的细化样点(例如,偏移加上被细化之前的样点)可以不被进一步剪切。
19.建议在不同的残差编解码模式(例如,变换跳过(TS)模式和常规残差编解码模式(非TS模式))中对齐编解码组(CG)尺寸。
a.在一个示例中,对于变换跳过编解码块(其中变换是旁路的或者应用了识别变换),CG尺寸可以取决于该块是否包含多于(2*M)(例如,M=8)个样点和/或残差块尺寸。
i.在一个示例中,如果块尺寸是A*N(N>=M),则CG尺寸被设置为A*M。
ii.在一个示例中,如果块尺寸为N*A(N>=M),则CG尺寸被设置为M*A。
iii.在一个示例中,如果块尺寸是A*N(N<M),则CG尺寸被设置为A*A。
iv.在一个示例中,如果块尺寸是N*A(N<M),则CG尺寸被设置为A*A。
v.在一个示例中,A=2。
b.在一个示例中,对于非TS编解码的块,CG尺寸可以取决于该块的宽度或高度是否等于K。
i.在一个示例中,如果宽度或高度等于K,则CG尺寸被设置为K*K(例如,K=2)。
ii.在一个示例中,如果宽度和高度的最小值等于K,则CG尺寸被设置为K*K(例如,K=2)。
c.在一个示例中,在变换跳过模式和常规残差编解码模式中,2*2CG尺寸可用于2*N或/和N*2残差块。
d.在一个示例中,在变换跳过模式和常规残差编解码模式中,2*8CG尺寸可以用于2*N(N≥8)残差块。
i.可替代地,在变换跳过模式和常规残差编解码模式中,2*4CG尺寸可以用于2*N(N≥8)残差块。
ii.可替代地,在变换跳过模式和常规残差编解码模式中,2*4CG尺寸可以用于2*N(N≥4)残差块。
e.在一个示例中,在变换跳过模式和常规残差编解码模式中,8*2CG尺寸可以用于N*2(N≥8)残差块。
i.在变换跳过模式和常规残差编解码模式中,4*2CG尺寸可用于N*2(N≥8)残差块。
ii.在变换跳过模式和常规残差编解码模式中,4*2CG尺寸可用于N*2(N≥4)残差块。
20.是否为仿射编解码块启用/禁用PROF可能取决于与当前仿射编解码块相关联的解码信息。
a.在一个示例中,当一个参考图片和与当前图片不同的分辨率(宽度或高度)相关联时,可以禁用PROF。
b.在一个示例中,如果当前块是单向预测编解码,当参考图片和与当前图片不同的分辨率(宽度或高度)相关联时,可以禁用PROF。
c.在一个示例中,如果当前块是双向预测编解码,则当至少一个参考图片和与当前图片不同的分辨率(宽度或高度)相关联时,可以禁用PROF。
d.在一个示例中,如果当前块是双向预测编解码,则当所有参考图片和与当前图片不同的分辨率(宽度或高度)相关联时,可以禁用PROF。
e.在一个示例中,如果当前块是双向预测编解码,则当所有参考图片与相同分辨率(宽度或高度)相关联,即使分辨率与当前图片不同,可以启用PROF。
f.是否启用上述方法取决于当前块的编解码信息,如当前块的CPMVs;参考图片和当前图片之间的分辨率。
21.当某些条件为真时,可以禁用PROF,诸如:
a.通用双向预测(GBi,又名BCW)被启用。
b.加权预测被启用。
c.可替换的半像素插值滤波器被应用。
22.应用于DMVR/BIO的上述方法也可以应用于其他解码器侧运动矢量推导(DMVD)方法,诸如基于仿射模式的光流的预测细化。
23.是否使用上述方法和/或要使用哪种方法可以在序列/图片/条带/片/砖块(brick)/视频单元级发信号通知。
24.可以在DMVR和/或其他解码器导出的运动方法中搜索非方形MVD区域(例如,菱形区域、基于八边形的MVD区域)。
a.例如,可以搜索下面的5*5菱形MVD区域,例如,下面列出的MVD值以整数像素为单位。
(0,-2),
(-1,-1),(0,-1),(1,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-1,1),(0,1),(1,1),
(0,2),
b.例如,可以搜索下面的5*5八边形MVD区域,例如,下面列出的MVD值以整数像素为单位。
(-1,-2),(0,-2),(1,-2),
(-2,-1),(-1,-1),(0,-1),(1,-1),(2,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-2,1),(-1,1),(0,1),(1,1),(2,1),
(-1,2),(0,2),(1,2),
c.例如,可以搜索下面的3*3菱形MVD区域,例如,下面列出的MVD值以整数像素为单位。
(0,-1),
(-1,0),(0,0),(1,0),
(0,1),
d.在一个示例中,可以在水平方向和垂直方向采用不等的搜索范围,诸如(MVD_Hor_TH1+MVD_Hor_TH2+1)不等于(MVD_Ver_TH1+MVD_Ver_TH2+1)。
25.要在DMVR和/或其他解码器导出的运动方法中搜索的MVD区域可以取决于块维度和/或块形状。假设当前块的维度为W×H。
a.在一个示例中,如果W>=H+TH(TH>=0),水平MVD搜索范围(例如,MVD_Hor_TH1+MVD_Hor_TH2+1)可以大于或者不小于垂直MVD搜索范围(例如,MVD_Ver_TH1+MVD_Ver_TH2+1)。
i.可替代地,如果W+TH<=H,水平MVD搜索范围可以大于垂直MVD搜索范围。
ii.例如,MVD_Hor_TH1和MVD_Hor_TH2被设置为等于2,并且MVD_Ver_TH1和MVD_Ver_TH1被设置为等于1。
iii.例如,可以搜索下面的5*3MVD区域,其中MVD值以整数像素为单位。
(-1,-1),(0,-1),(1,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-1,1),(0,1),(1,1),
b.在一个示例中,如果W+TH<=H,水平MVD搜索范围可以小于或不大于垂直MVD搜索范围。
i.可替代地,如果W>=H+TH(TH>=0),水平MVD搜索范围可以小于垂直MVD搜索范围。
ii.例如,MVD_Hor_TH1和MVD_Hor_TH2被设置为等于1,并且MVD_Ver_TH1和MVD_Ver_TH1被设置为等于2。
iii.例如,可以搜索下面的3*5MVD区域,其中MVD值以整数像素为单位。
(0,-2),
(-1,-1),(0,-1),(1,-1),
(-1,0),(0,0),(1,0),
(-1,1),(0,1),(1,1),
(0,2),
c.在一个示例中,如果W<=H+TH并且H<=W+TH,可以搜索菱形MVD区域。
i.例如,可以搜索下面的5*5菱形MVD空域,其中MVD值以整数像素为单位。
(0,-2),
(-1,-1),(0,-1),(1,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-1,1),(0,1),(1,1),
(0,2),
26.要在DMVR和/或其他解码器导出的运动方法中搜索的MVD空域可以取决于在被细化之前的块的运动信息。
a.在一个示例中,如果sumAbsHorMv>=sumAbsVerMv+TH(TH>=0),水平MVD搜索范围可以大于垂直MVD搜索范围。
i.可替代地,如果sumAbsHorMv+TH<=sumAbsVerMv,水平MVD搜索范围可以大于垂直MVD范围。
ii.例如,MVD_Hor_TH1和MVD_Hor_TH2被设置为等于2,并且MVD_Ver_TH1和MVD_Ver_TH1被设置为等于1。
iii.例如,可以搜索以下5*3MVD空域,其中MVD值以整数像素为单位。
(-1,-1),(0,-1),(1,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-1,1),(0,1),(1,1),
b.在一个示例中,如果sumAbsHorMv+TH<=sumAbsVerMv,水平MVD搜索范围可以小于垂直MVD搜索范围。
i.可替代地,如果sumAbsVerMv+TH<=sumAbsHorMv,水平MVD搜索范围可以小于垂直MVD搜索范围。
ii.例如,MVD_Hor_TH1和MVD_Hor_TH2被设置为等于1,并且MVD_Ver_TH1和MVD_Ver_TH1被设置为等于2。
iii.例如,可以搜索下面的3*5MVD区域,其中MVD值以整数像素为单位。
(0,-2),
(-1,-1),(0,-1),(1,-1),
(-1,0),(0,0),(1,0),
(-1,1),(0,1),(1,1),
(0,2),
c.在一个示例中,如果sumAbsHorMv<=sumAbsVerMv+TH并且sumAbsVerMv<=sumAbsHorMv+TH,可以搜索菱形MVD区域。
i.例如,可以搜索下面的5*5菱形MVD空域,其中MVD值以整数像素为单位。
(0,-2),
(-1,-1),(0,-1),(1,-1),
(-2,0),(-1,0),(0,0),(1,0),(2,0),
(-1,1),(0,1),(1,1),
(0,2),
d.在一个示例中,水平和/或垂直搜索范围可以取决于参考图片。
i.在一个示例中,如果参考图片远离当前图片,则可以利用更大的搜索范围。
ii.在一个示例中,如果第一参考图片具有比第二参考图片更低的QP,则可以对第一参考图片使用更大的搜索范围。
e.在一个示例中,水平和/或垂直搜索范围可以取决于运动矢量。
i.在一个示例中,如果运动矢量的绝对值大,则可以利用更大的搜索范围。
27.即使最佳整数位置在整数搜索区域的边界处,也可以在DMVR导出子像素MVD。
a.在一个示例中,如果最佳整数位置的左方和右方位置都包括在搜索区域中,则可以例如使用参数误差表面拟合方法来导出水平子像素MVD。示例如图9所示。
b.在一个示例中,如果最佳整数位置的上方和下方位置都包括在搜索区域中,则可以例如使用参数误差表面拟合方法来导出垂直子像素MVD。示例如图9所示。
c.在一个示例中,可以为任何位置导出子像素MVD。
i.例如,最佳整数位置及其N个(例如,N=4)最近相邻位置的成本可用于导出水平和垂直子像素MVD。
ii.例如,最佳整数位置及其N个最近相邻位置的成本可用于导出水平子像素MVD。
iii.例如,最佳整数位置及其N个最近相邻位置的成本可用于导出垂直子像素MVD。
iv.参数误差表面拟合可用于导出子像素MVD。
d.可替代地,此外,如果子像素MVD不是在特定方向(例如,水平或/和垂直方向)上导出的,则其被设置为等于零。
28.当图片/条带/片组/片/CTU/CU允许使用BDOF时,在DMVR可能不允许子像素MVD导出。
a.可替代地,仅当图片/条带/片组/片/CTU/CU禁用BDOF时,才允许子像素MVD导出。
29.应用哪一个项目符号可能取决于编解码信息,例如是否将BDOF或PROF应用于一个块。
实施例
删除的文本用双括号标记(例如[[a]]表示删除字符“a”),新添加的部分用粗体和斜体突出显示。
示例
在DMVR,当BDOF被允许时,禁用子像素MVD导出的示例。
8.5.3.1概述
这一过程的输入是:
–亮度位置(xSb,ySb),指示当前亮度编解码子块的左上样点相对于当前图片的左上亮度样点的亮度位置,
–变量sbWidth,指示亮度样点中的当前编解码子块的宽度,
–变量sbHeight,指示亮度样点中的当前编解码子块的高度。
–以1/16小数采样精度mvL0和mvL1的亮度运动矢量,
–所选亮度参考图片样点阵列refPicL0L和refPicL1L
这一过程的输出是:
–增量亮度运动矢量dMvL0和dMvL1。
变量subPelFlag设置为0,变量srRange设置为2,整数样点偏移(intOffX,intOffY)设置为(0,0)。
增量亮度运动矢量dMvL0和dMvL1的两个分量都设置为零,并修改如下:
–对于每个为0或1的X,预测亮度样点值的(sbWidth+2*srRange)x(sbHeight+2*srRange)阵列predSamplesLXL是通过调用8.5.3.2.1节中指示的分数样点双线性插值过程得出的,其中以亮度位置(xSb,ySb)、设置为(sbWidth+2*srRange)的预测块宽度、设置为(sbHeight+2*srRange)的预测块高度、参考图片样点阵列refPicLXL、运动矢量mvLX和细化搜索范围作为输入。
–变量minSad是通过调用8.5.3.3节中规定的绝对差之和计算过程得出的,其中以设置为等于sbWidth和sbHeight的当前编解码子块的宽度sbW和高度sbH、设置为等于predSamplesL0L和predSamplesL1L的预测样点阵列pL0和pL1、设置为等于(0,0)的偏移(dX,dY)作为输入,minSad作为输出。
–当minSad大于或等于sbHeight*sbWidth时,以下情况适用:
–2D阵列sadArray[dX+2][dY+2](其中dX=-2...2并且dY=-2..2)是通过调用8.5.3.3节中规定的绝对差至和计算过程得出的,其中以设置为等于sbWidth和sbHeight的当前编码子块的宽度sbW和高度sbH、设置为等于predSamplesL0L和predSamplesL1L的预测样点阵列pL0和pL1和偏移(dX,dY)作为输入,且以sadArray[dX+2][dY+2]作为输出。
–整数样点偏移(intOffX,intOffY)通过调用第8.5.3.4节中规定的阵列条目选择过程,利用2D阵列sadArray[dX+2][dY+2](其中dX=-2..2且dY=-2..2)进行修改,以最佳整数样点偏移(intOffX,intOffY)和minSad作为输入,以修改后的最佳整数样点偏移(intOffX,intOffY)作为输出。
–当intOffX不等于2或2,并且intOffY不等于-2或2时,subPelFlag被设置为等于1。
–增量亮度运动矢量dMvL0修改如下:
dMvL0[0]+=16*intOffX (8-420)
dMvL0[1]+=16*intOffY (8-421)
–当subPelFlag等于1且bdofFlag等于0时,使用3×3 2D阵列sadArray[dX+2][dY+2](其中dX=intOffX-1,intOffX,intOffX+1且dY=intOffY-1,intOffY,intOffY+1),以增量运动矢量dMvL0作为输入,修改后的dMvL0作为输出,调用8.5.3.5节中规定的参数化运动矢量细化过程。
–增量运动矢量dMvL1的导出如下:
dmv 1[0]=dmv 0[0] (8-422)
dmv 1[1]=dmv 0[1] (8-423)
示例
DMVR八边形搜索区域的示例。
这一过程的输入是:
–亮度位置(xSb,ySb),指示当前亮度编解码子块的左上样点相对于当前图片的左上亮度样点的亮度位置,
–变量sbWidth,指示亮度样点中的当前编解码子块的宽度,
–变量sbHeight,指示亮度样点中的当前编解码子块的高度。
–以1/16小数采样精度mvL0和mvL1的亮度运动矢量,
–所选亮度参考图片样点阵列refPicL0L和refPicL1L
这一过程的输出是:
–增量亮度运动矢量dMvL0和dMvL1。
变量subPelFlag设置为0,变量srRange设置为2,整数样点偏移(intOffX,intOffY)设置为(0,0)。
增量亮度运动矢量dMvL0和dMvL1的两个分量都设置为零,并修改如下:
–对于每个为0或1的X,预测亮度样点值的(sbWidth+2*srRange)x(sbHeight+2*srRange)阵列predSamplesLXL是通过调用8.5.3.2.1节中指示的分数样点双线性插值过程得出的,其中以亮度位置(xSb,ySb)、设置为(sbWidth+2*srRange)的预测块宽度、设置为(sbHeight+2*srRange)的预测块高度、参考图片样点阵列refPicLXL、运动矢量mvLX和细化搜索范围作为输入。
–变量minSad是通过调用8.5.3.3节中规定的绝对差之和计算过程得出的,其中以设置为等于sbWidth和sbHeight的当前编解码子块的宽度sbW和高度sbH、设置为等于predSamplesL0L和predSamplesL1L的预测样点阵列pL0和pL1、设置为等于(0,0)的偏移(dX,dY)作为输入,minSad作为输出。
–当minSad大于或等于sbHeight*sbWidth时,以下情况适用:
–2D阵列sadArray[dX+2][dY+2](其中dX=-2...2并且[[dY=-2..2]]dY=-1..1或dX=-1..1和dY=-2…2)是通过调用8.5.3.3节中规定的绝对差至和计算过程得出的,其中以设置为等于sbWidth和sbHeight的当前编码子块的宽度sbW和高度sbH、设置为等于predSamplesL0L和predSamplesL1L的预测样点阵列pL0和pL1和偏移(dX,dY)作为输入,且以sadArray[dX+2][dY+2]作为输出。
–整数样点偏移(intOffX,intOffY)通过调用第8.5.3.4节中规定的阵列条目选择过程,利用2D阵列sadArray[dX+2][dY+2](其中dX=-2..2且[[dY=-2..2]]dY=-1..1或dX=-1..1和dY=-2…2)进行修改,以最佳整数样点偏移(intOffX,intOffY)和minSad作为输入,以修改后的最佳整数样点偏移(intOffX,intOffY)作为输出。
–当intOffX不等于2或2,并且intOffY不等于-2或2时,subPelFlag被设置为等于1。
–增量亮度运动矢量dMvL0修改如下:
dMvL0[0]+=16*intOffX (8-420)
dMvL0[1]+=16*intOffY (8-421)
–当subPelFlag等于1时,使用3×3 2D阵列sadArray[dX+2][dY+2](其中dX=intOffX-1,intOffX,intOffX+1且dY=intOffY-1,intOffY,intOffY+1),以增量运动矢量dMvL0作为输入,修改后的dMvL0作为输出,调用8.5.3.5节中规定的参数化运动矢量细化过程。
–增量运动矢量dMvL1的导出如下:
dmv L1[0]=dmv l0[0] (8-422)
dmv L1[1]=dmv l0[1] (8-423)
示例
将BDOF和PROF中的运动矢量细化限制为零或Km或-Km形式的示例。
JVET-O0070-CE4.2.1a-WD-r1.docx顶部的建议更改以粗体和斜体突出显示,删除的部分用双括号标记(例如[[a]]表示删除字符“a”)。
8.5.1从仿射控制点运动矢量推导运动矢量阵列的过程
这一过程的输入是:
–亮度位置(xCb,yCb),指示当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置,
–两个变量cbWidth和cbHeight,指示亮度编解码块的宽度和高度,
–控制点运动矢量的数量numCpMv,
–控制点运动矢量cpMvLX[cpIdx],其中,cpIdx=0..num mcpmv 1并且X为0或1,
–参考索引refIdxLX并且X是0或1,
–水平方向numSbX和垂直方向numSbY上的亮度编解码子块的数量。
这一过程的输出是:
–亮度子块运动矢量阵列mvLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1并且X为0或1,
–色度子块运动矢量阵列mvCLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1并且X为0或1。
–运动矢量差阵列diffMv。
为x=xCb..xCb+CBwidth 1,y=yCb..yCb+cbHeight 1进行以下分配:
CpMvLX[x][y][0]=cpMvLX[0] (8-666)
CpMvLX[x][y][1]=cpMvLX[1] (8-667)
CpMvLX[x][y][2]=cpMvLX[2] (8-668)
变量log2CbW和log2CbH导出如下:
log2CbW=Log2(cbWidth) (8-669)
log2CbH=Log2(cbHeight) (8-670)
变量mvScaleHor、mvScaleVer、dHorX和dVerX导出如下:
mvScaleHor=cpMvLX[0][0]<<7 (8-671)
mvScaleVer=cpMvLX[0][1]<<7 (8-672)
dHorX=(cpMvLX[1][0]-cpMvLX[0][0])<<(7-log2CbW) (8-673)
dVerX=(cpMvLX[1][1]-cpMvLX[0][1])<<(7-log2CbW) (8-674)
变量dHorY和dVerY导出如下:
-如果numCpMv等于3,应用以下内容:
dHorY=(cpMvLX[2][0]-cpMvLX[0][0])<<(7-log2CbH) (8-675)
dVerY=(cpMvLX[2][1]-cpMvLX[0][1])<<(7-log2CbH) (8-676)
-否则(numCpMv等于2),应用以下内容:
dHorY=-dVerX (8-677)
dVerY=dHorX (8-678)
变量sbWidth和sbHeight被导出如下:
sbWidth=cbWidth/numSbX (8-xxx)
sbHeight=cbHeight/numSbY (8-xxx)
变量fallbackModeTriggered被设置为等于1,并被修改如下:
-变量bxWX4、bxHX4、bxWXh、bxHXh、bxWXv和bxHXv被导出如下:
maxW4=Max(0,Max(4*(2048+dHorX),Max(4*dHorY,4*(2048+dHorX)+4*dHorY)))(8-679)
minW4=Min(0,Min(4*(2048+dHorX),Min(4*dHorY,4*(2048+dHorX)+4*dHorY)))(8-680)
maxH4=Max(0,Max(4*dVerX,Max(4*(2048+dVerY),4*dVerX+4*(2048+dVerY))))(8-681)
minH4=Min(0,Min(4*dVerX,Min(4*(2048+dVerY),4*dVerX+4*(2048+dVerY))))(8-682)
bxWX4=((maxW4-minW4)>>11)+9 (8-683)
bxHX4=((maxH4-minH4)>>11)+9 (8-684)
bxWXh=((Max(0,4*(2048+dHorX))-Min(0,4*(2048+dHorX)))>>11)+9 (8-685)
bxHXh=((Max(0,4*dVerX)-Min(0,4*dVerX))>>11)+9 (8-686)
bxWXv=((Max(0,4*dHorY)-Min(0,4*dHorY))>>11)+9 (8-687)
bxHXv=((Max(0,4*(2048+dVerY))-Min(0,4*(2048+dVerY)))>>11)+9 (8-688)
-如果inter_pred_idc[xCb][yCb]等于PRED_BI,并且bxWX4*bxHX4小于或等于255,fallbackModeTriggered被设置为等于0。
-否则,如果bxWXh*bxHXh小于或等于165并且bxWXv*bxHXv小于或等于165,fallbackModeTriggered被设置为等于0。
对于xSbIdx=0..numSbX–1和ySbIdx=0..numSbY-1,应用以下内容:
-变量xPosCb和yPosCb被导出如下
-如果fallbackModeTriggered等于1,应用以下内容:
xPosCb=(cbWidth>>1) (8-689)
yPosCb=(cbHeight>>1) (8-690)
-否则(fallbackModeTriggered等于0),应用以下内容:
xPosCb=2+(xSbIdx<<2) (8-691)
yPosCb=2+(ySbIdx<<2) (8-692)
-亮度运动矢量vector mvLX[xSbIdx][ySbIdx]被导出如下:
mvLX[xSbIdx][ySbIdx][0]=(mvScaleHor+dHorX*xPosCb+dHorY*yPosCb)(8-693)
mvLX[xSbIdx][ySbIdx][1]=(mvScaleVer+dVerX*xPosCb+dVerY*yPosCb)(8-694)
–以设置为等于mvLX[xSbIdx][ySbIdx]的mvX,设置为等于7的rightShift,设置为等于0的leftShift作为输入,将舍入后的mvLX[xSbIdx][ySbIdx]作为输出,调用8.5.2.14节中规定的运动矢量舍入过程。
–运动矢量mvLX[xSbIdx][ySbIdx]按如下方式剪切:
mvLX[xSbIdx][ySbIdx][0]=Clip3(-217,217-1,mvLX[xSbIdx][ySbIdx][0]) (8-695)
mvLX[xSbIdx][ySbIdx][1]=Clip3(-217,217-1,mvLX[xSbIdx][ySbIdx][1]) (8-696)
对于xSbIdx=0..numSbX–1和ySbIdx=0..numSbY-1,应用以下内容:
-平均亮度运动矢量mvAvgLX被导出如下:
mvAvgLX=mvLX[(xSbIdx>>1<<1)][(ySbIdx>>1<<1)]+mvLX[(xSbIdx>>1<<1)+1][(ySbIdx>>1<<1)+1] (8-697)
mvAvgLX[0]=(mvAvgLX[0]+1-(mvAvgLX[0]>=0))>>1 (8-698)
mvAvgLX[1]=(mvAvgLX[1]+1-(mvAvgLX[1]>=0))>>1 (8-699)
–以mvAvgLX和refIdxLX作为输入,色度运动矢量mvCLX[xSbIdx][ySbIdx]作为输出来调用第8.5.2.13节中的色度运动矢量的导出过程。
[Ed.(BB):这样,四个2x2色度子块(4x4色度块)共享从两个4x4亮度子块运动矢量的平均导出的相同运动矢量。在解码过程中,仍然对2x2色度块执行运动补偿,然而这是对色度4x4块的运动补偿,因为4x4色度块内的所有色度MV是相同的。我更喜欢编辑上的改变,使仿射色度MC在4x4色度块上执行更清楚。]
运动矢量差阵列diffMv导出如下:
–如果fallbackModeTriggered等于0,则应用以下内容:
–变量shift1被设置为等于Max(6,bitDepth-6)。
–变量dmvLimit设置为等于1<<shift1。
–变量posOffsetX和posOffsetY导出如下:
posOffsetX=6*dHorX+6*dVerX
posOffsetY=6*dHorY+6*dVerY
-对于x=0..sbWidth–1和y=0..sbHeight–1,应用以下内容:
-应用以下内容:
diffMv[x][y][0]=x*(dHorX<<2)+y*(dVerX<<2)–posOffsetX
diffMv[x][y][1]=x*(dHorY<<2)+y*(dVerY<<2)–posOffsetY
-对于i=0..1,应用以下内容:
-以设置为等于diffMv[x][y][i]的mvX、设置为等于7的rightShift、设置为等于0的leftShift作为输入,以舍入后的diffMv作为输出,调用第8.5.2.14节中规定的运动矢量舍入过程。
-diffMv[x][y][i]被剪切如下:
diffMv[x][y][i]=Clip3(-dmvLimit,dmvLimit-1,diffMv[x][y][i])
–diffMv[x][y][i]是通过调用8.5.6.5节中规定的运动矢量细化导出过程得出的,分别地,number设置为等于diffMv[x][y][i]并且denom设置为等于1。
–否则(fallbackModeTriggered等于1),x=0..sbWidth-1,y=0..sbHeight-1,应用以下内容:
diffMv[x][y][0]=0
diffMv[x][y][1]=0
8.5.6帧间块的解码过程
8.5.6.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(6,bitDepth-6)。
–变量shift2设置为等于Max(4,bitDepth-8)。
–变量shift3设置为等于Max(1,bitDepth-11)。
–变量shift4设置为Max(3,15-bitDepth),变量offset4设置为1<<(shift4 1)。
–变量mvRefineThres设置为1<<Max(5,bitDepth-7)。
对于xIdx=0..(NCBw>>2)-1和yIdx=0..(NCBH>>2)-1,应用以下内容:
–变量xSb被设置为等于(xIdx<<2)+1并且ySb被设置为等于(yIdx<<2)+1。
–如果bdofUtilizationFlag[xIdx][yIdx]等于假(FALSE),对于x=xSb-1..xSb+2,y=ySb-1..ySb+2,当前子块的预测样点值被导出如下:
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1])>>shift4) (8-766)
–否则(bdofUtilizationFlag[xIdx][yIdx]等于真),当前子块的预测样点值导出如下:
–对于x=xSb-1..xSb+4,y=ySb-1..ySb+4,顺序地应用以下步骤:
1.预测样点阵列内每个相应样点位置(x,y)的位置(hx,vy)导出如下:
hx=Clip3(1,nCbW,x) (8-767)
vy=Clip3(1,nCbH,y) (8-768)
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-769)
gradientVL0[x][y]=(predSampleL0[hx][vy+1]-predSampleL0[hx][vy-1])>>shift1 (8-770)
gradientHL1[x][y]=(predSamplesL1[hx+1][vy]-predSampleL1[hx-1][vy])>>shift1 (8-771)
gradientVL1[x][y]=(predSampleL1[hx][vy+1]-predSampleL1[hx][vy-1])>>shift1 (8-772)
3.变量diff[x][y]、tempH[x][y]和tempV[x][y]导出如下:diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2) (8-773)
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3(8-774)tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3 (8-775)
–变量sGx2、sGy2、sGxGy、sGxdI和sGydI导出如下:
sGx2=∑ij(tempH[xSb+i][ySb+j]*tempH[xSb+i][ySb+j])with i,j=-1..4(8-776)
sGy2=∑ij(tempV[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])with i,j=-1..4(8-777)
sGxGy=∑ij(tempH[xSb+i][ySb+j]*tempV[xSb+i][ySb+j])with i,j-1..4(8-778)
sGxGym=sGxGy>>12 (8-779)
sGxGys=sGxGy&((1<<12)-1) (8-780)
sGxdI=∑ij(-tempH[xSb+i][ySb+j]*diff[xSb+i][ySb+j])with i,j=-1..4(8-781)
sGydI=∑ij(-tempV[xSb+i][ySb+j]*diff[xSb+i][ySb+j])with i,j=-1..4(8-782)
–当前子块的水平和垂直运动偏移导出如下:
1.如果sGx2大于零,则vx通过调用8.5.6.5节中规定的运动矢量细化导出过程导出的,其中,分别地,number设置为等于-(sGxdI<<3)且demon设置为等于sGx2。然后,vx被剪切如下:
vx=Clip3(-mvRefineThres,mvRefineThres,vx)(8-783)
2.否则(sGx2等于零),vx被设置为等于0。
3.如果sGy2大于零,则vy通过调用8.5.6.5节中规定的运动矢量细化导出过程导出的,其中,number设置为等于((sGydI<<3)-((vx*sGxGym)<<12+vx*sGxGys)>>1)且denom设置为等于sGy2。然后,vy被剪切如下:
vy=Clip3(-mvRefineThres,mvRefineThres,vy)(8-784)
4.否则,vy设置为等于0。
[[vx=sGx2>0?Clip3(-mvRefineThres,mvRefineThres, (8-783)
-(sGxdI<<3)>>Floor(Log2(sGx2))):0
vy=sGy2>0?Clip3(-mvRefineThres,mvRefineThres,((sGydI<<3)- (8-784)
((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGx2))):0]]
–对于x=xSb-1..xSb+2,y=ySb-1..ySb+2,当前子块的预测样点值的导出如下:
bdofOffset=Round((vx*(gradientHL1[x+1][y+1]-gradientHL0[x+1][y+1]))>>1) (8-785)
+Round((vy*(gradientVL1[x+1][y+1]-gradientVL0[x+1][y+1]))>>1)
[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-786)
8.5.6.5运动矢量细化导出过程
这一过程的输入是:
–指示分子的变量number
–指示分母的变量denom。
该过程的输出是导出的运动矢量细化dMvf。
shiftNum设置为等于numer==0?0:floor(log2(Abs(numer)))。
shiftDenom设置为等于denom==0?0:floor(log2(Abs(denom)))。
–如果Abs(numer)小于Abs(denom),则dMvf设置为0。
–否则,dMvf被设置为等于Sign(numer)*(1<<(ShiftNum–shiftDenom))。
示例
描述了将BDOF和PROF中的MVD剪切为[-31,31]的示例。
JVET-O2001-vE.docx上方的建议更改以粗体和斜体突出显示,删除的文本用双括号标记(例如,[[a]]表示删除字符“a”)。
8.5.5.9从仿射控制点运动矢量推导运动矢量阵列的过程
这一过程的输入是:
–亮度位置(xCb,yCb),指示当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置,
–两个变量cbWidth和cbHeight,指示亮度编解码块的宽度和高度,
–控制点运动矢量的数量numCpMv,
–控制点运动矢量cpMvLX[cpIdx],其中cpIdx=0..num mcpmv 1且X为0或1,
–参考索引refIdxLX且X是0或1,
–水平方向numSbX和垂直方向numSbY上的亮度编解码子块的数量。
这一过程的输出是:
–亮度子块运动矢量阵列mvLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1并且X为0或1,
–色度子块运动矢量阵列mvCLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1并且X为0或1,
–预测细化使用标志cbProfFlagLX且X为0或1,
–运动矢量差阵diffMvLX[xIdx][yIdx],其中,xIdx=0..cbWidth/numSbX-1,yIdx=0..cbHeight/numSbY–1,并且X为0或1。
变量cbProfFlagLX如下导出:
–如果下列一个或多个条件为真,则cbProfFlagLX设置为等于假(FALSE)。
–sps_affine_prof_enabled_flag等于0。
–fallbackModeTriggered等于1。
–numCpMv等于2,并且cpMvLX[1][0]等于cpMvLX[0][0],并且cpMvLX[1][1]等于cpMvLX[0][1]。
–numCpMv等于3,并且cpMvLX[1][0]等于cpMvLX[0][0],并且cpMvLX[1][1]等于cpMvLX[0][1],并且cpMvLX[2][0]等于cpMvLX[0][0],并且cpMvLX[2][1]等于cpMvLX[0][1]。
–否则,cbProfFlagLX设置为真(TRUE)。
当cbProfFlagLX为1时,运动矢量差阵diffMv的计算公式如下:
–变量sbWidth和sbHeight、dmvLimit、posOffsetX和posOffsetY导出如下:
sbWidth=cbWidth/numSbX (8-729)
sbHeight=cbHeight/numSbY (8-730)
[[dmvLimit=1<<Max(6,BitDepthY-6)(8-731)]]
dmvLimit=(1<<Max(5,BitDepthY-7))–1 (8-731)
posOffsetX=6*dHorX+6*dVerX (8-732)
posOffsetY=6*dHorY+6*dVerY (8-733)
–对于x=0..sbWidth-1,y=0..sbHeight-1,应用以下内容:
diffMv[x][y][0]=x*(dHorX<<2)+y*(dVerX<<2)–posOffsetX (8-734)
diffMv[x][y][1]=x*(dHorY<<2)+y*(dVerY<<2)–posOffsetY (8-735)
–对于i=0..1,应用以下内容:
–8.5.2.14节中规定的运动矢量的舍入过程是以设置等于diffMv[x][y][i]的mvX、设置等于7的rightShift、设置等于0的leftShift作为输入,以舍入后的diffMv[x][y][i]作为输出来调用的。
–diffMv[x][y][i]的值剪切如下:
[[diffMv[x][y][i]=Clip3(-dmvLimit,dmvLimit-1,diffMv[x][y][i]) (8-736)]]
diffMv[x][y][i]=Clip3(-dmvLimit,dmvLimit,diffMv[x][y][i]) (8-736)
8.5.6.5双向光流预测过程
这一过程的输入是:
–两个变量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(6,bitDepth-6)。
–变量shift2设置为等于Max(4,bitDepth-8)。
–变量shift3设置为等于Max(1,bitDepth-11)。
–变量shift4设置为Max(3,15-bitDepth),变量offset4设置为1<<(shift4-1)。
–变量mvRefineThres设置为等于[[1<<Max(5,bitDepth-7)]](1<<Max(5,bitDepth-7))–1。
对于xIdx=0..(NCBw>>2)1,yIdx=0..(NCBH>>2)1,应用以下内容:
–变量xSb被设置为等于(xIdx<<2)+1并且ySb被设置为等于(yIdx<<2)+1.
–如果bdofUtilizationFlag[xIdx][yIdx]等于假(FALSE),对于x=xSb-1..xSb+2,y=ySb-1..ySb+2,当前子块的预测样点值被导出如下:
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,
(predSamplesL0[x+1][y+1]+offset4+
predSamplesL1[x+1][y+1])>>shift4)(8-800)
–否则(bdofUtilizationFlag[xIdx][yIdx]等于真(TRUE)),当前子块的预测样点值被导出如下:
–对于x=xSb-1..xSb+4,y=ySb-1..ySb+4,顺序地应用以下内容:
1.预测样点阵列内每个相应样点位置(x,y)的位置(hx,vy)如下:
hx=Clip3(1,nCbW,x) (8-801)
vy=Clip3(1,nCbH,y) (8-802)
2.变量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-803)
gradientVL0[x][y]=(predSampleL0[hx][vy+1]>>shift1)-(predSampleL0[hx][vy-1])>>shift1) (8-804)
gradientHL1[x][y]=(predSamplesL1[hx+1][vy]>>shift1)-(predSampleL1[hx-1][vy])>>shift1) (8-805)
gradientVL1[x][y]=(predSampleL1[hx][vy+1]>>shift1)-(predSampleL1[hx][vy-1])>>shift1) (8-806)
3.变量diff[x][y]、tempH[x][y]和tempV[x][y]导出如下:
diff[x][y]=(predSamplesL0[hx][vy]>>shift2)-(predSamplesL1[hx][vy]>>shift2) (8-807)
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3(8-808)
tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3(8-809)
–变量sGx2、sGy2、sGxGy、sGxdI和sGydI导出如下:
sGx2=∑ijAbs(tempH[xSb+i][ySb+j])with i,j=-1..4 (8-810)
sGy2=∑ijAbs(tempV[xSb+i][ySb+j])with i,j=-1..4 (8-811)
sGxGy=∑ij(Sign(tempV[xSb+i][ySb+j])*
tempH[xSb+i][ySb+j])with i,j=-1..4 (8-812)
sGxGym=sGxGy>>12 (8-813)
sGxGys=sGxGy&((1<<12)-1) (8-814)
sGxdI=∑ij(-Sign(tempH[xSb+i][ySb+j])*diff[xSb+i][ySb+j])其中i,j=-1..4 (8-815)
sGydI=∑ij(-Sign(tempV[xSb+i][ySb+j])*diff[xSb+i][ySb+j])其中i,j=-1..4 (8-816)
–当前子块的水平和垂直运动偏移由下式导出:
vx=sGx2>0?Clip3(-mvRefineThres,
mvRefineThres,-(sGxdI<<3)>>Floor(Log2(sGx2))):0(8-817)
vy=sGy2>0?Clip3(-mvRefineThres,mvRefineThres,((sGydI<<3)-((vx*sGxGym)<<12+vx*sGxGys)>>1)>>Floor(Log2(sGy2))):0 (8-818)
–对于x=xSb-1..xSb+2,y=ySb-1..ySb+2,当前子块的预测样点值被导出如下:
bdofOffset=(vx*(gradientHL0[x+1][y+1]-gradientHL1[x+1][y+1]))>>1+(vy*(gradientVL0[x+1][y+1]-gradientVL1[x+1][y+1]))>>1 (8-819)
pbSamples[x][y]=Clip3(0,(2bitDepth)-1,(predSamplesL0[x+1][y+1]+offset4+predSamplesL1[x+1][y+1]+bdofOffset)>>shift4) (8-820)
示例
从PROF中的上W*H/2部分的MVD导出下W*H/2部分的MVD的示例。
JVET-O2001-vE.docx顶部的建议更改以粗体和斜体突出显示,删除的部分用双括号标记(例如,[[a]]表示删除字符“a”)。
8.5.5.9从仿射控制点运动矢量推导运动矢量阵列的过程
这一过程的输入是:
–亮度位置(xCb,yCb),指示当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置,
–两个变量cbWidth和cbHeight,指示亮度编解码块的宽度和高度,
–控制点运动矢量的数量numCpMv,
–控制点运动矢量cpMvLX[cpIdx],其中cpIdx=0..num mcpmv 1,并且X为0或1,
–参考索引refIdxLX并且X为0或1,
–水平方向numSbX和垂直方向numSbY上的亮度编解码子块的数量。
这一过程的输出是:
–亮度子块运动矢量阵列mvLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numsBx 1,ySbIdx=0..nums-1并且X为0或1,
–色度子块运动矢量阵列mvCLX[xSbIdx][ySbIdx],其中,xSbIdx=0..numsBx 1,ySbIdx=0..nums-1并且X为0或1,
–预测细化使用标志cbProfFlagLX并且X为0或1,
–运动矢量差阵列diffMvLX[xIdx][yIdx],其中,xIdx=0..cbWidth/NumSbX 1,yIdx=0..cbHeight/NumSby–1,并且X为0或1。
变量numRefLists导出如下:
–如果以下一个或多个条件为真,则cbProfFlagLX设置为假。
–sps_affine_prof_enabled_flag等于0。
–fallbackModeTriggered等于1。
–numCpMv等于2,cpMvLX[1][0]等于cpMvLX[0][0],cpMvLX[1][1]等于cpMvLX[0][1]。
–numCpMv等于3,cpMvLX[1][0]等于cpMvLX[0][0],cpMvLX[1][1]等于cpMvLX[0][1],cpMvLX[2][0]等于cpMvLX[0][0],cpMvLX[2][1]等于cpMvLX[0][1]。
–否则,cbProfFlagLX设置为真。
当cbProfFlagLX为1时,运动矢量差阵列diffMv的导出如下:
–变量sbWidth和sbHeight、dmvLimit、posOffsetX和posOffsetY导出如下:
sbWidth=cbWidth/numSbX (8-729)
sbHeight=cbHeight/numSbY (8-730)
dmvLimit=1<<Max(6,BitDepthY-6) (8-731)
posOffsetX=6*dHorX+6*dVerX (8-732)
posOffsetY=6*dHorY+6*dVerY (8-733)
[[对于x=0..sbWidth-1,y=0..sbHeight-1,应用以下内容:]]
–对于x=0..sbWidth-1,y=0..sbHeight/2-1,应用以下内容:
diffMv[x][y][0]=x*(dHorX<<2)+y*(dVerX<<2)–posOffsetX (8-734)
diffMv[x][y][1]=x*(dHorY<<2)+y*(dVerY<<2)–posOffsetY (8-735)
–对于i=0..1,应用以下内容:
–以设置等于diffMv[x][y][i]的mvX、设置等于7的rightShift、设置等于0的leftShift作为输入,舍入后的diffMv[x][y][i]作为输出来调用8.5.2.14节中规定的运动矢量的舍入过程是。
–diffMv[x][y][i]的值剪切如下:
[[diffMv[x][y][i]=Clip3(-dmvLimit,dmvLimit-1,diffMv[x][y][i]) (8-736)]]
diffMv[x][y][i]=Clip3(-dmvLimit+1,dmvLimit-1,diffMv[x][y][i]) (8-736)
–对于x=0..sbWidth-1,y=sbHeight/2..sbHeight-1,应用以下内容:
–对于i=0..1,应用以下内容:
diffMv[x][y][i]=–diffMv[sbWidth–1–x][sbHeight-1–y][i] (8-737)
图12A示出了视频处理的示例性方法的流程图。参考图12A,方法1210包括,在步骤1212,对于视频的当前视频块和视频的编解码表示之间的转换,确定使用为所述当前视频块内的区域导出至少一个运动矢量偏移的基于光流的方法来细化所述当前视频块的运动信息。方法1210还包括,在步骤1214,将至少一个运动矢量偏移剪切到范围[-N,M],其中N和M是基于规则的整数。方法1210还包括,在步骤1216,基于至少一个剪切的运动矢量偏移执行转换。
图12B示出了用于视频处理的示例性方法的流程图。参考图12B,方法1220包括,在步骤1222,在用于细化运动信息的解码器侧运动矢量细化(DMVR)操作期间,选择等于使用与视频的当前视频块相关联的一个或多个运动矢量差应用相似性匹配函数的结果的运动信息作为细化的运动矢量。方法1220还包括,在步骤1224,使用细化的运动矢量在当前视频块和视频的编解码表示之间执行转换。
图12C示出了视频处理的示例性方法的流程图。参考图12C,方法1230包括在步骤1232,为视频的当前视频块和视频的编解码表示之间的转换导出与当前视频块相关联的运动信息。方法1230还包括,在步骤1234,根据规则对包括第一子区域和第二子区域的当前视频块应用细化操作,使得规则允许第一子区域和第二子区域由于细化操作而具有彼此不同的运动信息。方法1230还包括,在步骤1236,使用当前视频块的细化的运动信息来执行转换。
图12D示出了视频处理的示例性方法的流程图。参考图12D,方法1240包括,在步骤1242,对于视频的当前视频块和视频的编解码表示之间的转换,导出与当前视频块相关联的运动信息。方法1240还包括,在步骤1244,对于所述当前视频块的子区域,基于用于细化运动信息的解码器侧运动矢量细化(DMVR)的输出,确定使用双向光流(BIO)的细化操作的适用性。方法1240还包括,在步骤1246,基于该确定执行转换。
图12E示出了视频处理的示例性方法的流程图。参考图12E,方法1250包括,在步骤1252,导出与利用运动矢量差的Merge模式(MMVD)编解码的当前视频块相关联的运动信息,所述MMVD包括运动矢量表达式,所述运动矢量表达式包括指示两个运动候选之间距离的距离表。方法1250还包括,在步骤1254,将解码器侧运动矢量细化(DMVR)应用于当前视频块,以根据指示如何细化用于MMVD的距离的规则来细化运动信息。方法1250还包括,在步骤1256,执行当前视频块和视频的编解码表示之间的转换。
图12F示出了用于视频处理的示例性方法的流程图。参考图12F,方法1260包括,在步骤1262,对于当前视频块的样点或子块,根据基于导出的运动信息的规则,确定使用空域和/或时域梯度来细化导出的运动信息的双向光流(BDOF)的适用性。方法1260还包括,在步骤1264,基于该确定执行转换。
图13A示出了视频处理的示例性方法的流程图。参考图13A,方法1310包括,在步骤1311,对于视频的当前视频块和视频的编解码表示之间的转换,导出运动矢量差(MVD)。方法1310还包括,在步骤1312,对导出的运动矢量差应用剪切操作,以生成剪切的运动矢量差。方法1310还包括,在步骤1313,使用成本函数计算剪切的运动矢量差的成本。方法1310还包括,在步骤1314,根据基于导出的运动矢量差、剪切的运动矢量差或成本中的至少一个的规则,确定不允许其中使用空域和/或时域梯度来细化导出的运动矢量差的双向光流(BDOF)操作。方法1310还包括,在步骤1315,基于该确定执行转换。
图13B示出了用于视频处理的示例性方法的流程图。参考图13B,方法1320包括,在步骤1322,针对视频的当前视频块和视频的编解码表示之间的转换导出运动矢量差。方法1320还包括,在步骤1324,基于一个或多个运动矢量细化工具和候选运动矢量差(MVD)来细化导出的运动矢量差。方法1320还包括,在步骤1326,使用细化的运动矢量差来执行转换。
图13C示出了视频处理的示例性方法的流程图。参考图13C,方法1330包括,在步骤1332,将与当前视频块相关联的导出的运动矢量差限制到候选集,导出的运动矢量差用于细化与所述当前视频块相关联的运动信息的细化操作。方法1330还包括,在步骤1334,使用作为限制的结果的导出的运动矢量差来执行在视频的当前视频块和所述视频的编解码表示之间的转换。
图13D示出了视频处理的示例性方法的流程图。参考图13D,方法1340包括,在步骤1342,在用于细化与视频的视频单元的当前视频块相关联的运动信息的双向光流(BDOF)操作期间,使用根据基于视频单元和/或视频单元中编解码工具的使用的规则确定的剪切参数集来应用剪切操作。方法1340还包括,在步骤1344,执行当前视频块和视频的编解码表示之间的转换。
图13E示出了视频处理的示例性方法的流程图。参考图13E,方法1350包括,在步骤1352,在用于细化与视频的当前视频块相关联的运动信息的细化操作期间,根据规则应用剪切操作来剪切运动矢量差(vx,vy)的x分量和/或y分量。方法1350还包括,在步骤1354,使用运动矢量差执行当前视频块和视频的编解码表示之间的转换。在一些实现中,该规则指示在剪切操作之前或之后将运动矢量差转换为零或以K-m形式的值,其中m是整数。
图13F示出了用于视频处理的示例性方法的流程图。参考图13F,方法1360包括,在步骤1362,对于视频的当前视频块和视频的编解码表示之间的转换,根据规则选择用于在解码器侧运动推导操作或解码器侧运动细化操作期间导出或细化运动信息的搜索区域。方法1360还包括,在步骤1364,基于导出或细化的运动信息执行转换。
图14A示出了视频处理的示例性方法的流程图。参考图14A,方法1410包括,在步骤1412,对于视频的当前视频块和视频的编解码表示之间的转换,应用解码器侧运动矢量差(DMVR)操作,以通过使用在包括最佳匹配整数位置的细化中使用的搜索区域来细化与当前视频块相关联的运动矢量差。方法1410还包括,在步骤1414,使用细化的运动矢量差来执行转换,其中应用DMVR包括根据规则导出子像素运动矢量差(MVD)。
图14B示出了用于视频处理的示例性方法的流程图。参考图14B中,方法1420包括,在步骤1422,对视频的视频单元的当前视频块应用解码器侧运动矢量差(DMVR)操作,以细化与当前视频块相关联的运动矢量差。方法1420还包括,在步骤1424,使用细化的运动矢量差执行在当前视频块和视频的编解码表示之间的转换。在一些实现中,DMVR操作的应用包括根据视频单元的双向光流(BDOF)的使用来确定允许还是不允许子像素运动矢量差(MVD)导出。
图14C示出了视频处理的示例性方法的流程图。参考图14C,方法1430包括在步骤1432,在使用光流的细化操作期间,导出视频的当前视频块的第一样点的运动矢量差。方法1430还包括,在步骤1434,基于所导出的所述第一样点的运动矢量差来确定第二样点的运动矢量差。方法1430还包括,在步骤1436,基于该确定来执行视频的当前视频块和视频的编解码表示之间的转换。
图14D示出了视频处理的示例性方法的流程图。参考图14D,方法1440包括,在步骤1442,通过对视频的当前视频块应用使用双向光流(BDOF)操作的细化操作来导出预测细化样点。方法1440还包括,在步骤1444,根据规则确定将导出的预测细化样点剪切到预定范围[-M,N]的剪切操作的适用性,其中M和N是整数。方法1440还包括,在步骤1446,执行当前视频块和视频的编解码表示之间的转换。
图14E示出了视频处理的示例性方法的流程图。参考图1,方法1450包括在步骤1452,确定当前视频块的编解码组尺寸,该当前视频块包括使用不同残差编解码模式编解码的第一编解码组和第二编解码组,使得第一编解码组和第二编解码组的尺寸根据规则对齐。方法1450还包括,在步骤1454,基于该确定来执行当前视频块和视频的编解码表示之间的转换。
图14F示出了用于视频处理的示例性方法的流程图。参考图14F,方法1460包括,在步骤1462,对于视频的当前视频块和视频的编解码表示之间的转换,基于与当前视频块相关联的编码信息和/或解码信息,确定其中使用光流来细化运动信息的预测细化光流(PROF)工具的适用性。方法1460还包括,在步骤1464,基于该确定执行转换。
图15是视频处理装置1500的框图。装置1500可以用于实施本文描述的方法中的一个或多个。装置1500可以体现在智能电话、平板电脑、计算机、物联网(Internet ofThings,IoT)接收器等中。装置1500可以包括一个或多个处理器1502、一个或多个存储器1504和视频处理电路1506。处理器1502可以被配置成实现一种或多种方法(包括但不限于图12A至图14F所示的方法)。存储器(多个存储器)可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件1506可以用于以硬件电路实施本文档中描述的一些技术。
图16是其中可以实施所公开的技术的视频处理系统的框图的另一示例。图16是示出其中可以实施本文公开的各种技术的示例视频处理系统1610的框图。各种实施方式可以包括系统1610的一些或全部组件。系统1610可以包括用于接收视频内容的输入1612。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以以压缩或编码格式接收。输入1612可以代表网络接口、外围总线接口或存储接口。网络接口的例子包括诸如以太网、无源光网络(passive optical network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统1610可以包括编解码组件1614,其可以实施本文档中描述的各种编解码或编码方法。编解码组件1614可以降低从输入1612到编解码组件1614的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1614的输出可以被存储,或者经由连接的通信传输,如组件1616所示。组件1618可以使用在输入1612处接收的视频的存储或通信的比特流(或编解码的)表示,以用于生成发送到显示接口1620的像素值或可显示视频。从比特流表示生成用户可观看的视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,编解码工具或操作是在编码器处使用的,并且将由解码器来执行反转编码结果的对应解码工具或操作。
外围总线接口或显示接口的示例可以包括通用串行总线(universal serialbus,USB)或高清多媒体接口(high definition multimedia interface,HDMI)或显示端口等。存储接口的示例包括SATA(serial advanced technology attachmen,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在一个示例中,当启用视频处理工具或模式时,编码器将在视频块的处理中使用或实现该工具或模式,但是不一定基于该工具或模式的使用来修改结果比特流。也就是说,当基于决定或确定启用视频处理工具或模式,从视频块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不会在视频块到视频的比特流表示的转换中使用该工具或模式。在另一个示例中,当视频处理工具或模式被禁用时,解码器将在知道比特流没有被使用基于决定或确定而被禁用的视频处理工具或模式修改的情况下处理比特流。
在本文件中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到相应比特流表示的转换期间应用,反之亦然。当前视频块的比特流表示可以例如对应于比特流中的共同定位或分布在不同位置的比特,如语法所定义的。例如,视频块可以根据变换和编码的误差残余值来编码,并且还可以使用比特流中的报头和其他字段中的比特来编码。这里,视频块是对应于操作的一组像素,例如,编解码单元或变换单元或预测单元等。
可以使用以下基于子句的格式来描述各种技术和实施例。
第一组条款描述了前一部分中公开的技术的某些特征和方面。
1.一种用于视频处理的方法,包括:在视频处理单元和视频处理单元的比特流表示之间的转换期间,导出与视频处理单元相关联的运动信息;对于应用细化操作的视频处理单元的子区域,确定是否细化运动信息;以及基于该确定,将细化操作应用于视频处理单元以细化运动信息。
2.如条款1所述的方法,其中,细化操作包括解码器侧运动矢量推导操作、解码器侧运动矢量细化(DMVR)操作、样点细化操作或基于光流的预测细化操作。
3.如条款1所述的方法,其中,所述确定基于与视频处理单元相关联的编解码信息。
4.如条款3所述的方法,其中,与视频处理单元相关联的编解码信息包括运动矢量、参考图片的图片顺序计数(POC)值、Merge索引、运动矢量预测器(MVP)索引或视频处理单元是否采用SBT模式中的至少一个。
5.如条款1所述的方法,其中,所述确定是基于参考第一参考列表的第一运动矢量和参考第二参考列表的第二运动矢量之间的关系,所述第一运动矢量和所述第二运动矢量是在应用细化操作之前获得的。
6.如条款1所述的方法,其中,细化操作的应用在多个步骤中执行,其中细化区域具有基于多个步骤的步骤数量确定的尺寸。
7.如条款1所述的方法,其中细化操作的应用包括:将细化操作应用于第一子区域;以及将细化操作应用于不同于第一子区域的第二子区域,其中,视频处理单元内的细化的运动信息在第一和第二子区域中彼此不同。
8.如条款1所述的方法,还包括基于细化操作的结果确定是否应用双向光流(BIO)。
9.如条款1所述的方法,其中,细化操作的应用包括选择N对MVD(运动矢量差)来生成最终预测样点,其中N是大于1的自然数,并且每对包括不同列表的两个运动矢量差。
10.如条款1所述的方法,其中细化操作与MMVD(与MVD合并)一起使用,并且在细化操作期间,MMVD距离保持为特定值。
11.如条款1所述的方法,还包括基于导出的MVD、空域梯度或时域梯度中的至少一个来禁用视频处理单元的样点或子块的BDOF。
12.如条款1所述的方法,还包括当在剪切操作之后在BDOF中导出的MVD改变时,计算剪切的MVD的成本。
13.如条款1所述的方法,其中,所述转换包括根据当前视频处理单元生成比特流表示,或者根据比特流表示生成当前视频处理单元。
14.一种用于视频处理的方法,包括:获得与视频处理单元相关联的运动信息;对于视频处理单元的子区域,确定是否细化视频处理单元的运动信息,视频处理单元是用于应用细化操作的单元;以及基于该确定,使用运动信息,而不对处理块应用细化操作。
15.如条款14所述的方法,其中,细化操作包括解码器侧运动矢量推导操作、解码器侧运动矢量细化(DMVR)操作、样点细化操作或基于光流的预测细化操作。
16.如条款14所述的方法,其中,所述确定是基于与视频处理单元相关联的编解码信息,所述编解码信息包括运动矢量、参考图片的图片顺序计数(POC)值、Merge索引、运动矢量预测器(MVP)索引或视频处理单元是否采用SBT模式中的至少一个。
17.如条款14所述的方法,其中,当视频处理单元用高级运动矢量预测(AMVP)模式编码时,包括双向光流(BIO)的细化操作被省略。
18.如条款14所述的方法,其中,基于两个运动矢量之和或MV分量的绝对值来省略细化操作。
19.如条款14所述的方法,其中,当视频处理单元采用SBT模式时,细化操作被省略。
20.如条款14所述的方法,其中,所述确定基于参考第一参考列表的第一运动矢量和参考第二参考列表的第二运动矢量之间的关系,所述第一运动矢量和所述第二运动矢量是在应用细化操作之前获得的。
21.如条款14所述的方法,还包括基于导出的MVD、空域梯度或时域梯度中的至少一个来禁用视频处理单元的样点或子块的BDOF。
22.如条款14所述的方法,还包括当在剪切操作之后在BDOF中导出的MVD改变时,计算剪切的MVD的成本。
23.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,基于一个或多个运动矢量细化工具和候选运动矢量差(MVDs)来细化导出的运动矢量差;以及使用导出的运动矢量差和在比特流表示中用信号通知的运动矢量来执行转换。
24.如条款23所述的方法,其中细化包括两步过程,包括:使用修改的y分量和未修改的x分量MVD的第一步和使用修改的x分量和未修改的y分量MVD的第二步。
25.如条款23所述的方法,其中候选MVD包括(vx+offsetX,vy),其中offsetX在[-ThX1,ThX2]范围内,其中ThX1和ThX2为非负整数值,其中导出的MVD为(vx,vy)。
26.如条款23所述的方法,其中候选MVD包括(vx,vy+offsetY),其中offsetY在[-ThY1,ThY2]范围内,其中ThY1和ThY2为非负整数值,其中导出的MVD为(vx,vy)。
27.如条款23-26中任一项的方法,其中转换使用双向光流编解码工具。
28.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,将导出的运动矢量差(DMVD)限制到候选集;以及使用将DMVD限制到候选集的结果来执行转换。
29.如条款28所述的方法,其中所述候选包括具有Km形式的vx和/或vy的候选(vx,vy),其中m是整数。
30.一种视频处理方法,包括:对于视频的当前视频块的比特流表示和当前视频块之间的转换,确定运动矢量差值被剪切到范围[-N,M],其中N和M是整数。如在此进一步描述的,基于规则来执行剪切的确定。该方法还包括基于该确定来执行转换,其中该规则指定对于使用预测细化光流(PROF)和双向光流工具的转换使用相同的范围。
31.如条款30所述的方法,其中N=M=31。
32.如条款30所述的方法,其中N=M=255。
33.一种视频处理方法,包括:对于视频的当前视频块的比特流表示和当前视频块之间的转换,基于当前视频块的第二样点的运动矢量差来确定第一样点的运动矢量差;并且基于该确定来执行转换;其中转换基于光流编码或解码工具。
34.如条款33所述的方法,其中第一样点和第二样点使用不同的光流编解码工具。
35.一种视频处理方法,包括:确定是否允许将预测细化光流(PROF)工具用于当前视频块的比特流表示和当前视频块之间的转换,其中该转换使用光流编解码工具;以及基于该确定来执行转换。
36.如条款35所述的方法,其中由于在转换中使用的参考图片具有与包含当前视频块的当前图片的维度不同的维度,所以所述确定禁止使用PROF工具。
37.如条款35-36中任一项所述的方法,其中由于使用双向预测预测和具有相同维度的两个参考图片的转换,所述确定启用PROF工具。
38.如条款1至37中任一项的方法,其中转换包括通过编码当前视频块来生成比特流表示。
39.如条款1至37中任一项的方法,其中转换包括通过解码比特流表示来生成当前视频块。
40.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由处理器运行时,使处理器实施条款1至39中任一项所述的方法。
41.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行条款1至39中任一项的方法的程序代码。
第二组条款描述了前一部分中公开的技术的某些特征和方面。
1.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,确定使用为当前视频块内的区域导出至少一个运动矢量偏移的基于光流的方法来细化当前视频块的运动信息;
将至少一个运动矢量偏移剪切到范围[-N,M],其中N和M是基于规则的整数;以及
基于至少一个剪切的运动矢量偏移来执行转换。
2.如条款1的方法,其中,运动矢量偏移用于细化当前视频块内的区域的参考样点。
3.如条款1的方法,其中,基于光流的方法包括双向光流(BDOF)方法或利用仿射运动模型应用于块的预测细化光流(PROF)方法中的至少一种。
4.如条款1的方法,其中,当前视频块内的区域是整个当前视频块或当前视频块内的子块。
5.如条款1的方法,其中,规则指示使用PROF方法和BDOF方法来使用相同的范围或不同的范围进行转换,在PROF方法中使用光流计算来导出至少一个运动矢量偏移,在BDOF方法中使用空域梯度和/或时域梯度来导出至少一个运动矢量偏移。
6.如条款1的方法,其中,运动矢量偏移包括水平分量和垂直分量,并且其中至少一个运动矢量偏移的剪切包括将水平分量和/或垂直分量剪切到范围。
7.如条款1的方法,其中,N和M具有不等于2K的相同值,其中,K是整数。
8.如条款7的方法,其中相同的值等于(2K-1),其中K是整数。
9.如条款7的方法,其中相同的值是31、63、15、7、3、127或255中的一个。
10.如条款7的方法,其中,M等于N,且2*M不等于2K的值,其中,K是整数。
11.如条款1至10中任一项的方法,其中,规则指示将运动矢量偏移剪切到[-31,31],[-15,15],[-63,63]或[-127,127]中的一个,以用于使用BDOF的转换。
12.如条款1至10中任一项的方法,其中,规则指示将运动矢量偏移剪切到[-63,63]或[-31,31]中的一个,以用于使用PROF的转换。
13.如条款1的方法,其中,M不等于N,并且M和N的和不等于2K的值,其中,K是整数。
14.一种视频处理方法,包括:
在用于细化运动信息的解码器侧运动矢量细化(DMVR)操作期间,选择等于使用与视频的当前视频块相关联的一个或多个运动矢量差应用相似性匹配函数的结果的运动信息作为细化运动矢量;以及
使用细化的运动矢量在当前视频块和视频的编解码表示之间执行转换。
15.如条款14的方法,其中,相似性匹配函数包括平均去除的绝对差之和(MRSAD)、绝对差之和(SAD)、或绝对变换差之和(SATD)。
16.如条款14的方法,其中,通过使用比例因子执行乘法、除法、加法或减法中的一个来修改运动信息。
17.如条款16的方法,其中比例因子取决于根据规则允许的并且在范围[-M,N]内的运动矢量差(MVD)集合,其中M和N是大于0的整数。
18.一种视频处理方法,包括:
基于当前视频块的特征,做出关于应用细化操作来细化运动信息的确定;以及
基于确定来执行转换。
19.如条款18的方法,其中,细化操作包括解码器侧运动矢量推导操作、解码器侧运动矢量细化(DMVR)操作、样点细化操作或基于光流的预测细化操作中的至少一个。
20.如条款18的方法,其中,当前视频块的特征对应于当前视频块的编解码信息。
21.如条款20的方法,其中,当前视频块的编解码信息包括运动矢量、参考图片的图片顺序计数(POC)值、Merge索引、运动矢量预测器(MVP)索引或者当前视频块是否采用子块变换(SBT)模式中的至少一个。
22.如条款20的方法,其中,当前视频块的编解码信息包括当前视频块是用高级运动矢量预测(AMVP)模式还是Merge模式编解码的。
23.如条款20的方法,其中,细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中细化操作根据两个运动矢量之和或运动矢量的绝对值来启用。
24.如条款20的方法,其中,细化操作对应于解码器侧运动向量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中细化操作根据指示Merge索引或运动向量预测器(MVP)索引的规则而被允许。
25.如条款20的方法,其中,细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中细化操作在当前视频块采用SBT模式的情况下不被允许。
26.如条款20的方法,其中,细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中,细化操作对于在子块变换模式中具有非零残差的子分割是允许的或不允许的。
27.如条款18的方法,其中,当前视频块的特征对应于引用第一参考列表的第一运动矢量和引用第二参考列表的第二运动矢量之间的关系,第一运动矢量和第二运动矢量是在应用细化操作之前获得的。
28.如条款27的方法,其中,根据取决于第一运动矢量和第二运动矢量之间的对称程度的规则,禁用细化操作。
29.如条款28的方法,其中对称程度确定为i)对称,其中MV0和MV1之和只有零分量,ii)近对称,其中abs(MV0+MV1)<Th1,或iii)远对称,其中abs(MV0+MV1)>Th2,其中MV0和MV1分别对应第一运动矢量和第二运动矢量,Th1和Th2为整数。
30.如条款28的方法,其中,对称程度是基于当前视频块的参考图片的图片顺序计数(POC)值来确定的。
31.如条款18的方法,其中,确定是确定在多个步骤中应用细化操作,使得第N个细化步骤的细化区域的尺寸随着值N的增加而减小,其中N是大于0的整数。
32.如条款18的方法,其中确定包括通过选择N对运动矢量差来应用细化操作,以生成最终预测样点,其中N是大于1的整数,并且每对运动矢量差包括不同列表的两个运动矢量差。
33.如条款32的方法,其中,N是2。
34.如条款32的方法,其中,为当前视频块的每个子区域选择运动矢量差对。
35.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,导出与当前视频块相关联的运动信息;
根据规则对包括第一子区域和第二子区域的当前视频块应用细化操作,使得规则允许第一子区域和第二子区域由于细化操作而具有彼此不同的运动信息;以及
使用当前视频块的细化的运动信息来执行转换。
36.如条款35的方法,其中第一子区域具有解码的运动信息,并且第二子区域具有细化的运动信息,细化的运动信息在应用于覆盖第二子区域的视频区域的细化操作期间被导出。
37.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,导出与当前视频块相关联的运动信息;
对于当前视频块的子区域,基于用于细化运动信息的解码器侧运动矢量细化(DMVR)的输出,确定使用双向光流(BIO)的细化操作的适用性;以及
基于确定来执行转换。
38.如条款37的方法,其中,在由DMVR细化的运动信息对于子区域保持不变的情况下,确定确定禁用使用BIO的细化操作。
39.一种视频处理方法,包括:
导出与利用运动矢量差的Merge模式(MMVD)编解码的当前视频块相关联的运动信息,MMVD包括运动矢量表达式,运动矢量表达式包括指示两个运动候选之间距离的距离表;
将解码器侧运动矢量细化(DMVR)应用于当前视频块,以根据指示如何细化用于MMVD的距离的规则来细化运动信息;以及
执行在当前视频块和视频的编解码表示之间的转换。
40.如条款39的方法,其中,规则指示由DMVR细化的距离不包括在距离表中。
41.如条款39的方法,其中,规则指示在距离表中包括由DMVR细化的距离或由DMVR粗略细化的距离的情况下,禁用DMVR,粗略细化的距离是通过将最佳整数运动矢量差添加到距离来生成的。
42.如条款39的方法,规则指示在特定条件下允许DMVR用于所有距离。
43.一种视频处理方法,包括:
对于当前视频块的样点或子块,根据基于导出的运动信息的规则,确定使用空域和/或时域梯度来细化导出的运动信息的双向光流(BDOF)的适用性;以及
基于确定来执行转换。
44.如条款43的方法,其中所导出的运动信息包括运动矢量差、空域梯度或时域梯度中的至少一个。
45.如条款43的方法,其中,规则指示由于增加了第一参考列表中的预测样点和第二参考列表中的预测样点之间的差的所导出的运动信息而不允许将BDOF用于样点。
46.如条款43的方法,其中,规则指示由于增加了第一参考列表中的预测子块和第二参考列表中的预测子块之间的差的所导出的运动信息,而不允许将BDOF用于样点或子块。
47.如条款43的方法,其中,所导出的运动信息对应于导出的偏移,并且所导出的偏移由用于确定的因子来缩放。
48.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,导出运动矢量差(MVD);
对导出的运动矢量差应用剪切操作,以生成剪切的运动矢量差;
使用成本函数计算剪切的运动矢量差的成本;
根据基于导出的运动矢量差、剪切的运动矢量差或成本中的至少一个的规则,确定不允许使用空域和/或时域梯度来细化导出的运动矢量差的双向光流(BDOF)操作;以及
基于确定来执行转换。
49.如条款48的方法,其中,计算是在所导出的运动矢量差(vx,vy)在剪切操作之后被改变为(clipVx,clipVy)的情况下执行的,其中(clipVx,clipVy)不同于(vx,vy)。
50.如条款48的方法,其中,规则指示在以下情况下禁用BDOF:1)costClipMvd>Th*costZeroMvd,BDOF或2)costClipMvd>Th*costDerivedMvd,其中,costDerivedMvd和costClipMvd分别对应于所导出的运动矢量差和所剪切的运动矢量差的成本。
51.如条款48的方法,其中规则指示在剪切操作之后vx和vy中的至少一个被改变的情况下禁用BDOF,其中(vx,vy)是所导出的运动矢量差。
52.如条款48的方法,其中,规则指示基于所导出的运动矢量差(vx,vy)和所剪切的运动矢量差(clipVx,clipVy)的x分量和y分量中的至少一个的绝对差而禁用BDOF。
53.如条款48的方法,其中,对某些运动矢量差执行成本计算,并且最终运动矢量差被确定为具有最小成本值的运动矢量差。
54.如条款48的方法,其中,在剪切操作之后运动矢量差改变的情况下,确定水平运动矢量差和垂直运动矢量差。
55.如条款48的方法,其中,对于在成本函数中具有共同部分的多个运动矢量差,不重复计算共同部分。
56.如条款48的方法,其中,对于在成本函数中具有共同部分的多个运动矢量差,在计算之前从成本函数中移除共同部分。
57.一种视频处理方法,包括:
针对视频的当前视频块和视频的编解码表示之间的转换导出运动矢量差;
基于一个或多个运动矢量细化工具和候选运动矢量差(MVD)来细化导出的运动矢量差;以及
使用细化的运动矢量差来执行转换。
58.如条款57的方法,其中,细化被执行以包括第一步骤和第二步骤,在第一步骤中使用修改的y分量和未修改的x分量MVD,在第二步骤中使用修改的x分量和未修改的y分量MVD。
59.如条款57的方法,其中,候选MVD包括(vx+offsetX,vy),其中offsetX在[-ThX1,ThX2]范围内,其中ThX1和ThX2是非负整数值,其中导出的MVD是(vx,vy)。
60.如条款57的方法,其中,候选MVD包括(vx,vy+offsetY),其中offsetY在[-ThY1,ThY2]范围内,其中ThY1和ThY2是非负整数值,其中导出的MVD是(vx,vy)。
61.如条款57的方法,其中,导出的MVD是(vx,vy),并且其中或者vx或者vy首先被细化。
62.如条款57的方法,其中,导出的MVD是(vx,vy),并且其中vx和vy被一起细化。
63.如条款57的方法,其中,导出的MVD是(vx,vy),并且其中相同数量的候选MVD是从vx和vy导出的。
64.如条款57的方法,其中,细化的运动矢量差提供了使用成本函数获得的最小成本值。
65.一种视频处理方法,包括:
将与当前视频块相关联的导出的运动矢量差限制到候选集,导出的运动矢量差用于细化与当前视频块相关联的运动信息的细化操作;以及
使用作为限制的结果的导出的运动矢量差来执行在视频的当前视频块和所述视频的编解码表示之间的转换。
66.如条款65的方法,其中,候选集包括小于(1+MVDmaxX-MVDminX)的值的多个允许的水平MVD候选和/或小于(1+MVDmaxY-MVDminY)的值的多个允许的垂直MVD候选,其中水平MVD的最大值和最小值分别用MVDmaxX和MVDminX表示,垂直MVD的最大值和最小值分别用MVDmaxY和MVDminY表示。
67.如条款65的方法,其中,候选集包括候选(vx,vy),候选是在细化操作期间使用等式获得的,并且候选满足以下条件:1)vx和vy中的至少一个是Km的形式,其中m是整数,或者2)vx和vy中的至少一个是零。
68.如条款65的方法,其中,候选集包括候选(Δvx(x,y),Δvy(x,y)),候选是在细化操作期间使用等式获得的,并且其中,候选满足以下条件:1)Δvx(x,y)和Δvy(x,y)中的至少一个是Km的形式,其中m是整数,或者2)Δvx(x,y)和Δvy(x,y)中的至少一个是零。
69.如条款65的方法,其中,候选集包括候选(vx,vy)或(Δvx(x,y),Δvy(x,y)),候选是在细化操作期间使用等式获得的,并且其中,候选满足以下条件:1)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个的绝对值为零,或者2)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是Km的形式,其中m是整数。
70.如条款65的方法,其中,候选集包括候选(vx,vy)或(Δvx(x,y),Δvy(x,y)),候选是在细化操作期间使用等式获得的,并且其中,候选满足以下条件:1)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是零,或者2)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是Km或-Km的形式,其中m是整数。
71.如条款65的方法,其中,所导出的运动矢量差首先在不没有被限制到候选集的情况下被导出为初始导出的运动矢量,然后被修改为被限制到候选集。
72.如条款71的方法,其中,初始导出的运动矢量差和修改的运动矢量差由X和X’表示,并且其中,将X设置为等于abs(vx)或abs(vy),并且使用sign(vx)或sign(vy)从X获得X’,其中,abs(t)对应于返回t的绝对值的绝对函数,并且sign(t)对应于返回取决于t的符号的值的符号函数。
73.如条款71的方法,其中,候选集的值是K的幂,并且取决于vx和vy中的至少一个,其中,导出的运动矢量差是(vx,vy)。
74.如条款71的方法,其中,所导出的运动矢量差是(vx,vy),并且首先修改vx和vy中的至少一个。
75.如条款71的方法,其中,通过使用logK(x)函数和ceil(y)函数来修改初始导出的运动向量,其中logK(x)返回以K为底的x的对数,并且ceil(y)返回大于或等于y的最小整数。
76.如条款71的方法,其中,通过使用floor(y)函数来修改初始导出的运动矢量,由此floor(y)返回小于或等于y的最大整数。
77.如条款71的方法,其中,通过使用预定义的查找表来修改初始导出的运动矢量。
78.如条款65的方法,其中,仅检查候选集中的候选以导出运动矢量差。
79.如条款78的方法,其中,候选集包括以KN、-KN或零的形式的候选MVD(运动矢量差)值,其中,K是大于0的整数,并且N是整数。
80.如条款79的方法,其中,候选集包括以M/KN形式的候选MVD(运动矢量差)值,其中,M是整数。
81.如条款79的方法,其中,候选集包括候选MVD(运动矢量差)值,候选MVD值为零或以KM/KN的形式,其中,M和N是整数。
82.如条款65的方法,其中,所导出的运动矢量差被导出为具有其值根据规则是允许的x分量和/或y分量。
83.如条款82的方法,其中,规则指示所导出的运动矢量差(vx,vy)具有使用floor函数、ceiling函数或sign函数获得的值,由此floor函数floor(t)返回小于或等于t的最大整数,ceiling函数ceil(t)返回大于或等于t的最小整数,并且sign函数sign(t)返回取决于t的符号的值。
84.如条款82的方法,其中,规则指示获得所导出的运动矢量差(vx,vy),使得i)vx通过使用分子(numX)和分母(denoX)中的至少一个来导出,和/或ii)vy通过使用分子(numY)和分母(denoY)中的至少一个来导出。
85.如条款84的方法,其中,规则指示使用分子和/或分母作为在floor函数、ceiling函数或sign函数中使用的变量,由此floor函数floor(t)返回小于或等于t的最大整数,ceiling函数ceil(t)返回大于或等于t的最小整数,并且sign函数sign(t)返回取决于t的符号的值。
86.如条款84的方法,其中,规则指示vx被导出为sign(numX*denoX)*esp2(M),其中M是实现cost(numX,denoX,M)的最小值的整数,并且sign(t)返回取决于t的符号的值。
87.如条款84的方法,其中,规则指示vx等于零或通过使用等式获得:sign(numX*denoX)*KF1(logK(abs(numX)+offset1))-F2(logK(abs(denoX)+offset2))2,其中offset1和offset2是整数,并且sign(t)返回取决于t的符号的值。
88.如条款87的方法,其中,规则指示在以下情况下vx等于0:i)denoX等于零,ii)numX等于零,iii)numX等于零或denoX等于零,iv)denoX小于T1,v)numX小于T1,或vi)numX小于T1或denoX小于T2,其中T1和T2是整数。
89.如条款87的方法,其中,offset1取决于numX。
90.如条款87的方法,其中,offset1等于Kfloor(logK(abs(numX)))/2+P,其中P是整数,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,abs(t)返回t的绝对值。
91.如条款87的方法,其中,offset2取决于denoX。
92.如条款87的方法,其中,offset1等于Kfloor(logK(abs(denoX)))/2+P,其中P是整数,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,abs(t)返回t的绝对值。
93.如条款84的方法,其中,规则指示vx取决于作为等式获得的delta值,delta=floor(log2(abs(numX)))-floor(log2(abs(denoX))),其中,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,并且abs(t)返回t的绝对值。
94.如条款93的方法,其中,在以下情况下修改delta:1)floor(log2(abs(numX)))大于0且abs(numX)&(1<<(floor(log2(abs(numX)))-1))不等于零或2)floor(log2(abs(denoX)))大于0且abs(denoX)&(1<<(floor(log2(abs(denoX)))-1))不等于0。
95.如条款93的方法,其中,在delta小于0的情况下,vx被设置为0。
96.如条款83至95中任一项的方法,其中,vx和vy中的至少一个用于导出指示在BDOF中使用的预测样点值的参数或指示在PROF中使用的亮度预测细化的参数。
97.如条款96的方法,其中,指示在BDOF中使用的预测样点值的参数是bdofOffset,其bdofOffset是用等式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)导出的。
98.如条款96的方法,其中,指示在PDOF中使用的亮度预测细化的参数是ΔI,其ΔI是用等式ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY]导出的,其中dMvH[posX][posY]和dMvV[posX][posY]对应于vx和vy。
99.如条款65的方法,其中,导出的运动矢量差的水平分量和垂直分量中的至少一个是根据用于细化操作的工具导出的,并且被修改为在与工具相关联的候选集内。
100.如条款99的方法,其中,导出的运动矢量差的水平分量和垂直分量中的至少一个是通过不管工具如何都是统一的修改过程来修改的。
101.如条款65的方法,其中使用每个候选值的成本函数来计算成本,并且选择对应于最小成本值的候选值作为最终运动矢量差(vx,vy)。
102.如条款65的方法,其中,候选集是预定义的。
103.如条款102的方法,其中,候选集包括候选(vx,vy),使得vx和vy中的至少一个为-2x/2X的形式,其中X在[-(X-1),(X-1)]范围内。
104.如条款102的方法,其中,候选集包括候选(vx,vy),使得vx和vy仅来自以下集合中的一个:i){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/64、ii){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32},iii){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/32、iv){-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}、v){-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}/64、vi){-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}/128、或vii){-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}。
105.如条款102的方法,其中,候选集包括候选(vx,vy),使得候选的水平和/或垂直分量的形式为
Figure BDA0003317597460000941
其中,S是1或-1,m和n是整数。
106.如条款65的方法,其中,候选集取决于当前视频块的编解码信息。
107.如条款65的方法,其中,在包括序列、图片、条带、片、砖块或另一视频区域的视频单元级别用信号通知候选集。
108.如条款65的方法,其中,在双向光流(BDOF)或预测细化光流(PROF)期间对样点的细化操作不包括乘法操作。
109.一种视频处理方法,包括:
在用于细化与视频的视频单元的当前视频块相关联的运动信息的双向光流(BDOF)操作期间,使用根据基于视频单元和/或视频单元中编解码工具的使用的规则确定的剪切参数集来应用剪切操作;以及
在当前视频块和视频的编解码表示之间执行转换。
110.如条款109的方法,其中,规则指示对视频的不同视频单元使用不同的剪切参数集。
111.如条款109或110的方法,其中,视频单元对应于序列、图片、条带、片组、片、编解码树单元或编解码单元。
112.如条款109的方法,其中,水平运动矢量差和垂直运动矢量差被剪切到彼此不同的阈值。
113.如条款109的方法,其中,在剪切操作中使用的阈值取决于包括当前视频块和/或当前视频块的解码运动信息的图片的维度。
114.如条款109的方法,其中,在剪切操作中使用的阈值在序列参数集(SPS)、视频参数集(VPS)、自适应参数集(APS)、图片参数集(PPS)、条带头和/或片组头中用信号通知。
115.如条款109的方法,其中,规则指示基于解码器侧运动矢量差(DMVR)或仿射帧间模式的使用来确定剪切参数集。
116.如条款109的方法,其中,剪切参数的值根据编解码工具对于视频单元是否被禁用而增加或减少。
117.一种视频处理方法,包括:
在用于细化与视频的当前视频块相关联的运动信息的细化操作期间,根据规则应用剪切操作来剪切运动矢量差(vx,vy)的x分量和/或y分量;以及
使用运动矢量差在当前视频块和视频的编解码表示之间执行转换,
其中规则指示在剪切操作之前或之后将运动矢量差转换为零或K-m形式的值,其中m是整数。
118.如条款117的方法,其中,运动矢量差值(vx,vy)具有对应于vx和vy的值,其在BDOF中使用以根据以下方程导出bdofOffset,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)。
119.如条款117的方法,其中,运动矢量差值(vx,vy)具有对应于dMvH[posX][posY]和dMvV[posX][posY]的值,其在PROF中使用以根据以下方程导出ΔI,ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY]。
120.如条款117的方法,其中,规则根据导出细化操作的类型对x分量和y分量使用不同的范围。
121.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,根据规则选择用于在解码器侧运动推导操作或解码器侧运动细化操作期间导出或细化运动信息的搜索区域;以及
基于导出或细化的运动信息执行转换。
122.如条款121的方法,其中,规则指示选择非方形运动矢量差(MVD)区域。
123.如条款122的方法,其中,非方形MVD区域对应于5*5菱形区域、5*5八角形区域或3*3菱形区域。
124.如条款121的方法,其中,搜索区域在水平方向和垂直方向上具有不同的搜索范围。
125.如条款121的方法,其中,规则指示基于当前视频块的维度和/或形状来选择搜索区域,并且其中维度对应于当前视频块的高度(H)和宽度(W)中的至少一个。
126.如条款125的方法,其中,规则根据当前视频块的维度,指示水平MVD搜索范围小于垂直MVD搜索范围或者搜索菱形MVD空域。
127.如条款121的方法,其中,规则指示基于在被细化之前的当前视频块的运动信息来选择搜索区域。
128.如条款127的方法,其中,规则指示根据包括sumAbsHorMv和/或sumAbsHorMv的运动信息,水平MVD搜索范围小于垂直MVD搜索范围,或者搜索菱形MVD空域,其中sumAbsHorMv=abs(MV0[0])+abs(MV1[0]),sumAbsVerMv=abs(MV0[1])+abs(MV1[1]),abs(MVx)指的是Mvx的绝对值。
129.如条款121的方法,其中,规则指示基于参考图片选择水平搜索范围和/或垂直搜索范围。
130.如条款121的方法,其中,规则指示基于运动矢量的幅度来选择水平搜索范围和/或垂直搜索范围。
131.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,应用解码器侧运动矢量差(DMVR)操作,以通过使用在包括最佳匹配整数位置的细化中使用的搜索区域来细化与当前视频块相关联的运动矢量差;以及
使用细化的运动矢量差来执行转换,
其中应用DMVR操作包括根据规则导出子像素运动矢量差(MVD)。
132.如条款131的方法,其中,规则指示在最佳匹配整数位置的左方位置和右方位置都包括在搜索区域中的情况下导出水平子像素MVD。
133.如条款131的方法,其中,规则指示在最佳匹配整数位置的上方位置和下方位置都包括在搜索区域中的情况下导出垂直子像素MVD。
134.如条款131的方法,其中,规则指示为某些位置导出子像素MVD。
135.一种视频处理方法,包括:
对视频的视频单元的当前视频块应用解码器侧运动矢量差(DMVR)操作,以细化与当前视频块相关联的运动矢量差;以及
使用细化的运动矢量差在当前视频块和视频的编解码表示之间执行转换,
其中应用DMVR操作包括根据视频单元的双向光流(BDOF)的使用来确定允许还是不允许子像素运动矢量差(MVD)导出。
136.如条款135的方法,其中,视频单元对应于图片、条带、片组、片、编解码树单元或编解码单元。
137.如条款135的方法,其中,由于对视频单元使用BDOF,不允许子像素MVD导出。
138.如条款135的方法,其中,由于不对视频单元使用BDOF,允许子像素MVD导出。
139.一种视频处理方法,包括:
在使用光流的细化操作期间,导出视频的当前视频块的第一样点的运动矢量差;
基于所导出的第一样点的运动矢量差来确定第二样点的运动矢量差;以及
基于确定来执行视频的当前视频块和视频的编解码表示之间的转换。
140.如条款139的方法,其中,细化操作是使用具有光流的预测细化(PROF)来执行的,并且,其中,第一样点的运动矢量差是使用用于当前视频块内的位置的仿射模型来导出的,并且第一样点的运动矢量差用于确定不同位置的第二样点的运动矢量差。
141.如条款139的方法,其中,位于上部的第一样点的运动矢量差是使用仿射模型导出的,并且用于确定位于下部的第二样点的运动矢量差,由此,当前视频块具有宽度(W)和高度(H),上部和下部的尺寸为W*H/2。
142.如条款139的方法,其中,位于下部的第一样点的运动矢量差是使用仿射模型导出的,并用于确定位于上部的第二样点的运动矢量差,由此,当前视频块具有宽度(W)和高度(H),上部和下部的尺寸为W*H/2。
143.如条款139的方法,其中,位于左部的第一样点的运动矢量差是使用仿射模型导出的,并用于确定位于右部的第二样点的运动矢量差,由此当前视频块具有宽度(W)和高度(H),左部和右部具有W/2*H的尺寸。
144.如条款139的方法,其中,位于右部的第一样点的运动矢量差是使用仿射模型导出的,并用于确定位于左部的第二样点的运动矢量差,由此当前视频块具有宽度(W)和高度(H),左部和右部具有W/2*H的尺寸。
145.如条款139的方法,其中,第一样点的运动矢量差是使用仿射模型导出的,并且在用于确定第二样点的运动矢量差之前,被舍入到预定精度或/和被剪切到预定范围。
146.如条款139的方法,其中,对于位置(x,y)处的第一样点或第二样点,MVDh和MVDv分别是水平和垂直运动矢量差,并且通过使用以下等式获得:MVDh(x,y)=–MVDh(W–1–x,H–1–y)和MVDv(x,y)=–MVDv(W–1–x,H–1–y),其中W和H是当前视频块的宽度和高度。
147.一种视频处理方法,包括:
通过对视频的当前视频块应用使用双向光流(BDOF)操作的细化操作来导出预测细化样点;
根据规则,确定将导出的预测细化样点剪切到预定范围[-M,N]的剪切操作的适用性,其中M和N是整数;以及
在当前视频块和视频的编解码表示之间执行转换。
148.如条款147的方法,其中,规则确定应用剪切操作。
149.如条款147的方法,其中,N等于M-1的值。
150.如条款147的方法,其中,预定范围取决于当前视频块的颜色分量的比特深度。
151.如条款150的方法,其中,M等于2K,K=Max(K1,BitDepth+K2),其中BitDepth是当前视频块的颜色分量的比特深度,其中K1和K2是整数。
152.如条款150的方法,其中,M等于2K,K=Min(K1,BitDepth+K2),其中BitDepth是当前视频块的颜色分量的比特深度,其中K1和K2是整数。
153.如条款147的方法,其中使用预测细化光流(PROF)将预定范围应用于另一视频块。
154.如条款147的方法,其中,规则确定不应用剪切操作。
155.一种视频处理方法,包括:
确定当前视频块的编解码组尺寸,当前视频块包括使用不同残差编解码模式编码的第一编解码组和第二编解码组,使得第一编解码组和第二编解码组的尺寸根据规则对齐;以及
基于确定来执行当前视频块和视频的编解码表示之间的转换。
156.如条款155的方法,其中,使用变换跳过模式对第一编解码组进行编解码,在变换跳过模式中,变换被旁路或者识别变换被应用,并且其中规则指示基于当前视频块是否包含多于2*M个样点和/或残差块尺寸来确定第一编解码组的尺寸。
157.如条款155的方法,其中,第一编解码组在不使用变换跳过模式的情况下被编解码,在变换跳过模式中,变换被旁路或者识别变换被应用,并且其中规则指示基于当前视频块的宽度(W)或高度(H)是否等于K来确定第一编解码组的尺寸,其中K是整数。
158.如条款155的方法,其中,第一编解码组和第二编码组别使用变换跳过模式和常规残差编解码模式来编解码,并且其中规则指示第一编解码组和第二编解码组具有2*2、2*8、2*8、2*4、8*2或4*2的尺寸。
159.如条款158的方法,其中,尺寸用于N*2或N*2残差块,其中N是整数。
160.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,基于与当前视频块相关联的编码信息和/或解码信息,确定预测细化光流(PROF)工具的适用性,在PROF中使用光流来细化运动信息;以及
基于确定来执行转换。
161.如条款160的方法,其中,使用仿射模式对当前视频块进行编解码。
162.如条款161的方法,其中,由于在转换中使用的参考图片具有与包含当前视频块的当前图片的维度不同的维度,确定确定不应用PROF工具。
163.如条款161的方法,其中,由于转换使用双向预测预测并且两个参考图片具有相同的维度,确定确定应用PROF工具。
164.如条款161的方法,其中,PROF工具的适用性根据参考图片和包括当前视频块的当前图片之间的分辨率来确定。
165.如条款160的方法,其中,确定根据指示特定条件的规则而确定不应用PROF工具。
166.如条款165的方法,其中,特定条件包括i)启用广义双预测,ii)启用权重预测,或iii)应用半像素插值滤波器。
167.如条款1至166中任一项的方法,其中,与细化操作相关的信息在包括序列、图片、条带、片、砖块或另一个视频区域的视频单元级别被发信号通知。
168.如条款1至166中任一项的方法,其中,根据基于当前视频块的编解码信息的规则来执行细化操作,规则取决于是否对当前视频块应用双向光流(BDOF)或预测细化光流(PROF)。
169.如条款1至168中任一项的方法,其中,转换包括从视频生成编解码表示或者从编解码表示生成视频。
170.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使处理器实施条款1至169中任一项的方法。
171.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行条款1至169中的任一项项的方法的程序代码。
根据前述内容,应当理解的是,为了便于说明,本发明公开的技术的具体实施例已经在本文中进行了描述,但是可以在不偏离本发明范围的情况下进行各种修改。因此,除了的之外,本发明公开的技术不限于权利要求的限定。
本发明文件中描述的主题的实现和功能操作可以在各种系统、数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明书中描述的主题的实现可以实现为一个或多个计算机程序产品,即一个或多个编码在有形的和非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、分量、子程序或其它适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其它程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或Merge到专用逻辑电路中。
本说明书和附图仅意在被视为示例性的,其中示例性是指示例。如本文所用,除非上下文另有明确说明,否则单数形式“一”、“一个”和“这个”也应包括复数形式。此外,“或”的使用旨在包括“和/或”,除非上下文另有明确说明。
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中删除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统分量的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,其它实现、增强和变体可以基于本专利文件中描述和说明的内容做出。

Claims (171)

1.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,确定使用为所述当前视频块内的区域导出至少一个运动矢量偏移的基于光流的方法来细化所述当前视频块的运动信息;
将所述至少一个运动矢量偏移剪切到范围[-N,M],其中N和M是基于规则的整数;以及
基于至少一个剪切的运动矢量偏移来执行所述转换。
2.如权利要求1所述的方法,其中,所述运动矢量偏移用于细化所述当前视频块内的所述区域的参考样点。
3.如权利要求1所述的方法,其中,所述基于光流的方法包括双向光流(BDOF)方法或利用仿射运动模型应用于块的预测细化光流(PROF)方法中的至少一种。
4.如权利要求1所述的方法,其中,所述当前视频块内的区域是整个当前视频块或所述当前视频块内的子块。
5.如权利要求1所述的方法,其中,所述规则指示使用PROF方法和BDOF方法来使用相同的范围或不同的范围进行转换,在所述PROF方法中使用光流计算来导出所述至少一个运动矢量偏移,在所述BDOF方法中使用空域梯度和/或时域梯度来导出所述至少一个运动矢量偏移。
6.如权利要求1所述的方法,其中,所述运动矢量偏移包括水平分量和垂直分量,并且其中所述至少一个运动矢量偏移的剪切包括将所述水平分量和/或所述垂直分量剪切到所述范围。
7.如权利要求1所述的方法,其中,N和M具有不等于2K的相同值,其中,K是整数。
8.如权利要求7所述的方法,其中相同的值等于(2K-1),其中K是整数。
9.如权利要求7所述的方法,其中相同的值是31、63、15、7、3、127或255中的一个。
10.如权利要求7所述的方法,其中,M等于N,且2*M不等于2K的值,其中,K是整数。
11.如权利要求1至10中任一项所述的方法,其中,所述规则指示将所述运动矢量偏移剪切到[-31,31],[-15,15],[-63,63]或[-127,127]中的一个,以用于使用所述BDOF的转换。
12.如权利要求1至10中任一项所述的方法,其中,所述规则指示将所述运动矢量偏移剪切到[-63,63]或[-31,31]中的一个,以用于使用所述PROF的转换。
13.如权利要求1所述的方法,其中,M不等于N,并且M和N的和不等于2K的值,其中,K是整数。
14.一种视频处理方法,包括:
在用于细化运动信息的解码器侧运动矢量细化(DMVR)操作期间,选择等于使用与视频的当前视频块相关联的一个或多个运动矢量差应用相似性匹配函数的结果的运动信息作为细化运动矢量;以及
使用所述细化的运动矢量在所述当前视频块和所述视频的编解码表示之间执行转换。
15.如权利要求14所述的方法,其中,所述相似性匹配函数包括平均去除的绝对差之和(MRSAD)、绝对差之和(SAD)、或绝对变换差之和(SATD)。
16.如权利要求14所述的方法,其中,通过使用比例因子执行乘法、除法、加法或减法中的一个来修改所述运动信息。
17.如权利要求16所述的方法,其中所述比例因子取决于根据规则允许的并且在范围[-M,N]内的运动矢量差(MVD)集合,其中M和N是大于0的整数。
18.一种视频处理方法,包括:
基于当前视频块的特征,做出关于应用细化操作来细化运动信息的确定;以及
基于所述确定来执行转换。
19.如权利要求18所述的方法,其中,所述细化操作包括解码器侧运动矢量推导操作、解码器侧运动矢量细化(DMVR)操作、样点细化操作或基于光流的预测细化操作中的至少一个。
20.如权利要求18所述的方法,其中,所述当前视频块的所述特征对应于所述当前视频块的编解码信息。
21.如权利要求20所述的方法,其中,所述当前视频块的所述编解码信息包括运动矢量、参考图片的图片顺序计数(POC)值、Merge索引、运动矢量预测器(MVP)索引或者所述当前视频块是否采用子块变换(SBT)模式中的至少一个。
22.如权利要求20所述的方法,其中,所述当前视频块的所述编解码信息包括所述当前视频块是用高级运动矢量预测(AMVP)模式还是Merge模式编解码的。
23.如权利要求20所述的方法,其中,所述细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中所述细化操作根据两个运动矢量之和或运动矢量的绝对值来启用。
24.如权利要求20所述的方法,其中,所述细化操作对应于解码器侧运动向量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中所述细化操作根据指示Merge索引或运动向量预测器(MVP)索引的规则而被允许。
25.如权利要求20所述的方法,其中,所述细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中所述细化操作在所述当前视频块采用SBT模式的情况下不被允许。
26.如权利要求20所述的方法,其中,所述细化操作对应于解码器侧运动矢量细化(DMVR)操作和/或双向光流(BDOF)操作,并且其中,所述细化操作对于在子块变换模式中具有非零残差的子分割是允许的或不允许的。
27.如权利要求18所述的方法,其中,所述当前视频块的所述特征对应于引用第一参考列表的第一运动矢量和引用第二参考列表的第二运动矢量之间的关系,所述第一运动矢量和所述第二运动矢量是在应用所述细化操作之前获得的。
28.如权利要求27所述的方法,其中,根据取决于所述第一运动矢量和所述第二运动矢量之间的对称程度的规则,禁用所述细化操作。
29.如权利要求28所述的方法,其中对称程度确定为i)对称,其中MV0和MV1之和只有零分量,ii)近对称,其中abs(MV0+MV1)<Th1,或iii)远对称,其中abs(MV0+MV1)>Th2,其中MV0和MV1分别对应第一运动矢量和第二运动矢量,Th1和Th2为整数。
30.如权利要求28所述的方法,其中,所述对称程度是基于所述当前视频块的参考图片的图片顺序计数(POC)值来确定的。
31.如权利要求18所述的方法,其中,所述确定是确定在多个步骤中应用所述细化操作,使得第N个细化步骤的细化区域的尺寸随着值N的增加而减小,其中N是大于0的整数。
32.如权利要求18所述的方法,其中所述确定包括通过选择N对运动矢量差来应用所述细化操作,以生成最终预测样点,其中N是大于1的整数,并且每对运动矢量差包括不同列表的两个运动矢量差。
33.如权利要求32所述的方法,其中,N是2。
34.如权利要求32所述的方法,其中,为所述当前视频块的每个子区域选择运动矢量差对。
35.一种视频处理方法,包括:
对于视频的当前视频块和所述视频的编解码表示之间的转换,导出与所述当前视频块相关联的运动信息;
根据规则对包括第一子区域和第二子区域的所述当前视频块应用细化操作,使得所述规则允许所述第一子区域和所述第二子区域由于所述细化操作而具有彼此不同的运动信息;以及
使用所述当前视频块的细化的运动信息来执行所述转换。
36.如权利要求35所述的方法,其中所述第一子区域具有解码的运动信息,并且所述第二子区域具有细化的运动信息,所述细化的运动信息在应用于覆盖所述第二子区域的视频区域的细化操作期间被导出。
37.一种视频处理方法,包括:
对于视频的当前视频块和所述视频的编解码表示之间的转换,导出与所述当前视频块相关联的运动信息;
对于所述当前视频块的子区域,基于用于细化运动信息的解码器侧运动矢量细化(DMVR)的输出,确定使用双向光流(BIO)的细化操作的适用性;以及
基于所述确定来执行所述转换。
38.如权利要求37所述的方法,其中,在由所述DMVR细化的运动信息对于所述子区域保持不变的情况下,所述确定确定禁用使用所述BIO的细化操作。
39.一种视频处理方法,包括:
导出与利用运动矢量差的Merge模式(MMVD)编解码的当前视频块相关联的运动信息,所述MMVD包括运动矢量表达式,所述运动矢量表达式包括指示两个运动候选之间距离的距离表;
将解码器侧运动矢量细化(DMVR)应用于所述当前视频块,以根据指示如何细化用于所述MMVD的距离的规则来细化所述运动信息;以及
执行在所述当前视频块和所述视频的编解码表示之间的转换。
40.如权利要求39所述的方法,其中,所述规则指示由所述DMVR细化的距离不包括在所述距离表中。
41.如权利要求39所述的方法,其中,所述规则指示在所述距离表中包括由DMVR细化的距离或由DMVR粗略细化的距离的情况下,禁用所述DMVR,所述粗略细化的距离是通过将最佳整数运动矢量差添加到所述距离来生成的。
42.如权利要求39所述的方法,所述规则指示在特定条件下允许DMVR用于所有距离。
43.一种视频处理方法,包括:
对于当前视频块的样点或子块,根据基于导出的运动信息的规则,确定使用空域和/或时域梯度来细化导出的运动信息的双向光流(BDOF)的适用性;以及
基于所述确定来执行所述转换。
44.如权利要求43所述的方法,其中所导出的运动信息包括运动矢量差、空域梯度或时域梯度中的至少一个。
45.如权利要求43所述的方法,其中,所述规则指示由于增加了第一参考列表中的预测样点和第二参考列表中的预测样点之间的差的所导出的运动信息而不允许将所述BDOF用于所述样点。
46.如权利要求43所述的方法,其中,所述规则指示由于增加了第一参考列表中的预测子块和第二参考列表中的预测子块之间的差的所导出的运动信息,而不允许将所述BDOF用于所述样点或所述子块。
47.如权利要求43所述的方法,其中,所导出的运动信息对应于导出的偏移,并且所导出的偏移由用于所述确定的因子来缩放。
48.一种视频处理方法,包括:
对于视频的当前视频块和所述视频的编解码表示之间的转换,导出运动矢量差(MVD);
对导出的运动矢量差应用剪切操作,以生成剪切的运动矢量差;
使用成本函数计算剪切的运动矢量差的成本;
根据基于导出的运动矢量差、剪切的运动矢量差或成本中的至少一个的规则,确定不允许其中使用空域和/或时域梯度来细化导出的运动矢量差的双向光流(BDOF)操作;以及
基于所述确定来执行所述转换。
49.如权利要求48所述的方法,其中,所述计算是在所导出的运动矢量差(vx,vy)在所述剪切操作之后被改变为(clipVx,clipVy)的情况下执行的,其中(clipVx,clipVy)不同于(vx,vy)。
50.如权利要求48所述的方法,其中,所述规则指示在以下情况下禁用所述BDOF:1)costClipMvd>Th*costZeroMvd,BDOF或2)costClipMvd>Th*costDerivedMvd,其中,costDerivedMvd和costClipMvd分别对应于所导出的运动矢量差和所剪切的运动矢量差的成本。
51.如权利要求48所述的方法,其中所述规则指示在所述剪切操作之后vx和vy中的至少一个被改变的情况下禁用所述BDOF,其中(vx,vy)是所导出的运动矢量差。
52.如权利要求48所述的方法,其中,所述规则指示基于所导出的运动矢量差(vx,vy)和所剪切的运动矢量差(clipVx,clipVy)的x分量和y分量中的至少一个的绝对差而禁用所述BDOF。
53.如权利要求48所述的方法,其中,对某些运动矢量差执行成本计算,并且最终运动矢量差被确定为具有最小成本值的运动矢量差。
54.如权利要求48所述的方法,其中,在剪切操作之后运动矢量差改变的情况下,确定水平运动矢量差和垂直运动矢量差。
55.如权利要求48所述的方法,其中,对于在成本函数中具有共同部分的多个运动矢量差,不重复计算所述共同部分。
56.如权利要求48所述的方法,其中,对于在成本函数中具有共同部分的多个运动矢量差,在计算之前从所述成本函数中移除所述共同部分。
57.一种视频处理方法,包括:
针对视频的当前视频块和视频的编解码表示之间的转换导出运动矢量差;
基于一个或多个运动矢量细化工具和候选运动矢量差(MVD)来细化导出的运动矢量差;以及
使用细化的运动矢量差来执行所述转换。
58.如权利要求57所述的方法,其中,所述细化被执行以包括第一步骤和第二步骤,在所述第一步骤中使用修改的y分量和未修改的x分量MVD,在所述第二步骤中使用修改的x分量和未修改的y分量MVD。
59.如权利要求57所述的方法,其中,候选MVD包括(vx+offsetX,vy),其中offsetX在[-ThX1,ThX2]范围内,其中ThX1和ThX2是非负整数值,其中导出的MVD是(vx,vy)。
60.如权利要求57所述的方法,其中,候选MVD包括(vx,vy+offsetY),其中offsetY在[-ThY1,ThY2]范围内,其中ThY1和ThY2是非负整数值,其中导出的MVD是(vx,vy)。
61.如权利要求57所述的方法,其中,导出的MVD是(vx,vy),并且其中或者vx或者vy首先被细化。
62.如权利要求57所述的方法,其中,导出的MVD是(vx,vy),并且其中vx和vy被一起细化。
63.如权利要求57所述的方法,其中,导出的MVD是(vx,vy),并且其中相同数量的候选MVD是从vx和vy导出的。
64.如权利要求57所述的方法,其中,细化的运动矢量差提供了使用成本函数获得的最小成本值。
65.一种视频处理方法,包括:
将与当前视频块相关联的导出的运动矢量差限制到候选集,所述导出的运动矢量差用于细化与所述当前视频块相关联的运动信息的细化操作;以及
使用作为限制的结果的导出的运动矢量差来执行在视频的当前视频块和所述视频的编解码表示之间的转换。
66.如权利要求65所述的方法,其中,候选集包括小于(1+MVDmaxX-MVDminX)的值的多个允许的水平MVD候选和/或小于(1+MVDmaxY-MVDminY)的值的多个允许的垂直MVD候选,其中水平MVD的最大值和最小值分别用MVDmaxX和MVDminX表示,垂直MVD的最大值和最小值分别用MVDmaxY和MVDminY表示。
67.如权利要求65所述的方法,其中,所述候选集包括候选(vx,vy),所述候选是在细化操作期间使用等式获得的,并且所述候选满足以下条件:1)vx和vy中的至少一个是Km的形式,其中m是整数,或者2)vx和vy中的至少一个是零。
68.如权利要求65所述的方法,其中,所述候选集包括候选(Δvx(x,y),Δvy(x,y)),所述候选是在细化操作期间使用等式获得的,并且其中,所述候选满足以下条件:1)Δvx(x,y)和Δvy(x,y)中的至少一个是Km的形式,其中m是整数,或者2)Δvx(x,y)和Δvy(x,y)中的至少一个是零。
69.如权利要求65所述的方法,其中,所述候选集包括候选(vx,vy)或(Δvx(x,y),Δvy(x,y)),所述候选是在细化操作期间使用等式获得的,并且其中,所述候选满足以下条件:1)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个的绝对值为零,或者2)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是Km的形式,其中m是整数。
70.如权利要求65所述的方法,其中,所述候选集包括候选(vx,vy)或(Δvx(x,y),Δvy(x,y)),所述候选是在细化操作期间使用等式获得的,并且其中,所述候选满足以下条件:1)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是零,或者2)vx、vy、Δvx(x,y)和Δvy(x,y)中的至少一个是Km或-Km的形式,其中m是整数。
71.如权利要求65所述的方法,其中,所导出的运动矢量差首先在不没有被限制到所述候选集的情况下被导出为初始导出的运动矢量,然后被修改为被限制到所述候选集。
72.如权利要求71所述的方法,其中,初始导出的运动矢量差和所述修改的运动矢量差由X和X’表示,并且其中,将X设置为等于abs(vx)或abs(vy),并且使用sign(vx)或sign(vy)从X获得X’,其中,abs(t)对应于返回t的绝对值的绝对函数,并且sign(t)对应于返回取决于t的符号的值的符号函数。
73.如权利要求71所述的方法,其中,所述候选集的值是K的幂,并且取决于vx和vy中的至少一个,其中,导出的运动矢量差是(vx,vy)。
74.如权利要求71所述的方法,其中,所导出的运动矢量差是(vx,vy),并且首先修改vx和vy中的至少一个。
75.如权利要求71所述的方法,其中,通过使用logK(x)函数和ceil(y)函数来修改所述初始导出的运动向量,其中logK(x)返回以K为底的x的对数,并且ceil(y)返回大于或等于y的最小整数。
76.如权利要求71所述的方法,其中,通过使用floor(y)函数来修改所述初始导出的运动矢量,由此floor(y)返回小于或等于y的最大整数。
77.如权利要求71所述的方法,其中,通过使用预定义的查找表来修改所述初始导出的运动矢量。
78.如权利要求65所述的方法,其中,仅检查所述候选集中的候选以导出运动矢量差。
79.如权利要求78所述的方法,其中,所述候选集包括以KN、-KN或零的形式的候选MVD(运动矢量差)值,其中,K是大于0的整数,并且N是整数。
80.如权利要求79所述的方法,其中,所述候选集包括以M/KN形式的候选MVD(运动矢量差)值,其中,M是整数。
81.如权利要求79所述的方法,其中,所述候选集包括候选MVD(运动矢量差)值,所述候选MVD值为零或以KM/KN的形式,其中,M和N是整数。
82.如权利要求65所述的方法,其中,所导出的运动矢量差被导出为具有其值根据规则是允许的x分量和/或y分量。
83.如权利要求82所述的方法,其中,所述规则指示所导出的运动矢量差(vx,vy)具有使用floor函数、ceiling函数或sign函数获得的值,由此floor函数floor(t)返回小于或等于t的最大整数,ceiling函数ceil(t)返回大于或等于t的最小整数,并且sign函数sign(t)返回取决于t的符号的值。
84.如权利要求82所述的方法,其中,所述规则指示获得所导出的运动矢量差(vx,vy),使得i)vx通过使用分子(numX)和分母(denoX)中的至少一个来导出,和/或ii)vy通过使用分子(numY)和分母(denoY)中的至少一个来导出。
85.如权利要求84所述的方法,其中,所述规则指示使用分子和/或分母作为在floor函数、ceiling函数或sign函数中使用的变量,由此floor函数floor(t)返回小于或等于t的最大整数,ceiling函数ceil(t)返回大于或等于t的最小整数,并且sign函数sign(t)返回取决于t的符号的值。
86.如权利要求84所述的方法,其中,所述规则指示vx被导出为sign(numX*denoX)*esp2(M),其中M是实现cost(numX,denoX,M)的最小值的整数,并且sign(t)返回取决于t的符号的值。
87.如权利要求84所述的方法,其中,所述规则指示vx等于零或通过使用等式获得:sign(numX*denoX)*KF1(logK(abs(numX)+offset1))-F2(logK(abs(denoX)+offset2))2,其中offset1和offset2是整数,并且sign(t)返回取决于t的符号的值。
88.如权利要求87所述的方法,其中,所述规则指示在以下情况下vx等于0:i)denoX等于零,ii)numX等于零,iii)numX等于零或denoX等于零,iv)denoX小于T1,v)numX小于T1,或vi)numX小于T1或denoX小于T2,其中T1和T2是整数。
89.如权利要求87所述的方法,其中,offset1取决于numX。
90.如权利要求87所述的方法,其中,offset1等于Kfloor(logK(abs(numX)))/2+P,其中P是整数,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,abs(t)返回t的绝对值。
91.如权利要求87所述的方法,其中,offset2取决于denoX。
92.如权利要求87所述的方法,其中,offset1等于Kfloor(logK(abs(denoX)))/2+P,其中P是整数,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,abs(t)返回t的绝对值。
93.如权利要求84所述的方法,其中,所述规则指示vx取决于作为等式获得的delta值,delta=floor(log2(abs(numX)))–floor(log2(abs(denoX))),其中,floor(t)返回小于或等于t的最大整数,logK(x)返回以K为底的x的对数,并且abs(t)返回t的绝对值。
94.如权利要求93所述的方法,其中,在以下情况下修改delta:1)floor(log2(abs(numX)))大于0且abs(numX)&(1<<(floor(log2(abs(numX)))–1))不等于零或2)floor(log2(abs(denoX)))大于0且abs(denoX)&(1<<(floor(log2(abs(denoX)))–1))不等于0。
95.如权利要求93所述的方法,其中,在delta小于0的情况下,vx被设置为0。
96.如权利要求83至95中任一项所述的方法,其中,vx和vy中的至少一个用于导出指示在BDOF中使用的预测样点值的参数或指示在PROF中使用的亮度预测细化的参数。
97.如权利要求96所述的方法,其中,指示在BDOF中使用的预测样点值的参数是bdofOffset,其bdofOffset是用等式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)导出的。
98.如权利要求96所述的方法,其中,指示在PDOF中使用的亮度预测细化的参数是ΔI,其ΔI是用等式ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY]导出的,其中dMvH[posX][posY]和dMvV[posX][posY]对应于vx和vy。
99.如权利要求65所述的方法,其中,所述导出的运动矢量差的水平分量和垂直分量中的至少一个是根据用于所述细化操作的工具导出的,并且被修改为在与所述工具相关联的候选集内。
100.如权利要求99所述的方法,其中,所述导出的运动矢量差的水平分量和垂直分量中的至少一个是通过不管工具如何都是统一的修改过程来修改的。
101.如权利要求65所述的方法,其中使用每个候选值的成本函数来计算成本,并且选择对应于最小成本值的候选值作为最终运动矢量差(vx,vy)。
102.如权利要求65所述的方法,其中,所述候选集是预定义的。
103.如权利要求102所述的方法,其中,所述候选集包括候选(vx,vy),使得vx和vy中的至少一个为-2x/2X的形式,其中X在[-(X-1),(X-1)]范围内。
104.如权利要求102所述的方法,其中,所述候选集包括候选(vx,vy),使得vx和vy仅来自以下集合中的一个:i){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/64、ii){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32},iii){-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32}/32、iv){-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}、v){-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64}/64、vi){-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}/128、或vii){-128,-64,-32,-16,-8,-4,-2,-1,0,1,2,4,8,16,32,64,128}。
105.如权利要求102所述的方法,其中,所述候选集包括候选(vx,vy),使得所述候选的水平和/或垂直分量的形式为
Figure FDA0003317597450000111
其中,S是1或-1,m和n是整数。
106.如权利要求65所述的方法,其中,所述候选集取决于所述当前视频块的编解码信息。
107.如权利要求65所述的方法,其中,在包括序列、图片、条带、片、砖块或另一视频区域的视频单元级别用信号通知所述候选集。
108.如权利要求65所述的方法,其中,在双向光流(BDOF)或预测细化光流(PROF)期间对样点的所述细化操作不包括乘法操作。
109.一种视频处理方法,包括:
在用于细化与视频的视频单元的当前视频块相关联的运动信息的双向光流(BDOF)操作期间,使用根据基于视频单元和/或视频单元中编解码工具的使用的规则确定的剪切参数集来应用剪切操作;以及
在所述当前视频块和所述视频的编解码表示之间执行转换。
110.如权利要求109所述的方法,其中,所述规则指示对所述视频的不同视频单元使用不同的剪切参数集。
111.如权利要求109或110所述的方法,其中,所述视频单元对应于序列、图片、条带、片组、片、编解码树单元或编解码单元。
112.如权利要求109所述的方法,其中,水平运动矢量差和垂直运动矢量差被剪切到彼此不同的阈值。
113.如权利要求109所述的方法,其中,在所述剪切操作中使用的阈值取决于包括所述当前视频块和/或所述当前视频块的解码运动信息的图片的维度。
114.如权利要求109所述的方法,其中,在所述剪切操作中使用的阈值在序列参数集(SPS)、视频参数集(VPS)、自适应参数集(APS)、图片参数集(PPS)、条带头和/或片组头中用信号通知。
115.如权利要求109所述的方法,其中,所述规则指示基于解码器侧运动矢量差(DMVR)或仿射帧间模式的使用来确定所述剪切参数集。
116.如权利要求109所述的方法,其中,所述剪切参数的值根据所述编解码工具对于所述视频单元是否被禁用而增加或减少。
117.一种视频处理方法,包括:
在用于细化与视频的当前视频块相关联的运动信息的细化操作期间,根据规则应用剪切操作来剪切运动矢量差(vx,vy)的x分量和/或y分量;以及
使用所述运动矢量差执行在所述当前视频块和所述视频的编解码表示之间的转换,
其中所述规则指示在剪切操作之前或之后将运动矢量差转换为零或K-m形式的值,其中m是整数。
118.如权利要求117所述的方法,其中,运动矢量差值(vx,vy)具有对应于vx和vy的值,其在BDOF中使用以根据以下方程导出bdofOffset,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)。
119.如权利要求117所述的方法,其中,运动矢量差值(vx,vy)具有对应于dMvH[posX][posY]和dMvV[posX][posY]的值,其在PROF中使用以根据以下方程导出ΔI,ΔI(posX,posY)=dMvH[posX][posY]×gradientH[posX][posY]+dMvV[posX][posY]×gradientV[posX][posY]。
120.如权利要求117所述的方法,其中,所述规则根据导出细化操作的类型对x分量和y分量使用不同的范围。
121.一种视频处理方法,包括:
对于视频的当前视频块和视频的编解码表示之间的转换,根据规则选择用于在解码器侧运动推导操作或解码器侧运动细化操作期间导出或细化运动信息的搜索区域;以及
基于导出或细化的运动信息执行所述转换。
122.如权利要求121所述的方法,其中,所述规则指示选择非方形运动矢量差(MVD)区域。
123.如权利要求122所述的方法,其中,所述非方形MVD区域对应于5*5菱形区域、5*5八角形区域或3*3菱形区域。
124.如权利要求121所述的方法,其中,所述搜索区域在水平方向和垂直方向上具有不同的搜索范围。
125.如权利要求121所述的方法,其中,所述规则指示基于所述当前视频块的维度和/或形状来选择所述搜索区域,并且其中所述维度对应于所述当前视频块的高度(H)和宽度(W)中的至少一个。
126.如权利要求125所述的方法,其中,所述规则根据所述当前视频块的维度,指示水平MVD搜索范围小于垂直MVD搜索范围或者搜索菱形MVD空域。
127.如权利要求121所述的方法,其中,所述规则指示基于在被细化之前的所述当前视频块的运动信息来选择所述搜索区域。
128.如权利要求127所述的方法,其中,所述规则指示根据包括sumAbsHorMv和/或sumAbsHorMv的运动信息,水平MVD搜索范围小于垂直MVD搜索范围,或者搜索菱形MVD空域,其中sumAbsHorMv=abs(MV0[0])+abs(MV1[0]),sumAbsVerMv=abs(MV0[1])+abs(MV1[1]),abs(MVx)指的是Mvx的绝对值。
129.如权利要求121所述的方法,其中,所述规则指示基于参考图片选择水平搜索范围和/或垂直搜索范围。
130.如权利要求121所述的方法,其中,所述规则指示基于运动矢量的幅度来选择水平搜索范围和/或垂直搜索范围。
131.一种视频处理方法,包括:
对于视频的当前视频块和所述视频的编解码表示之间的转换,应用解码器侧运动矢量差(DMVR)操作,以通过使用在包括最佳匹配整数位置的细化中使用的搜索区域来细化与所述当前视频块相关联的运动矢量差;以及
使用细化的运动矢量差来执行所述转换,
其中应用所述DMVR操作包括根据规则导出子像素运动矢量差(MVD)。
132.如权利要求131所述的方法,其中,所述规则指示在所述最佳匹配整数位置的左方位置和右方位置都包括在所述搜索区域中的情况下导出水平子像素MVD。
133.如权利要求131所述的方法,其中,所述规则指示在所述最佳匹配整数位置的上方位置和下方位置都包括在所述搜索区域中的情况下导出垂直子像素MVD。
134.如权利要求131所述的方法,其中,所述规则指示为某些位置导出所述子像素MVD。
135.一种视频处理方法,包括:
对视频的视频单元的当前视频块应用解码器侧运动矢量差(DMVR)操作,以细化与所述当前视频块相关联的运动矢量差;以及
使用细化的运动矢量差执行在所述当前视频块和所述视频的编解码表示之间的转换,
其中应用所述DMVR操作包括根据所述视频单元的双向光流(BDOF)的使用来确定允许还是不允许子像素运动矢量差(MVD)导出。
136.如权利要求135所述的方法,其中,所述视频单元对应于图片、条带、片组、片、编解码树单元或编解码单元。
137.如权利要求135所述的方法,其中,由于对所述视频单元使用所述BDOF,不允许子像素MVD导出。
138.如权利要求135所述的方法,其中,由于不对所述视频单元使用所述BDOF,允许子像素MVD导出。
139.一种视频处理方法,包括:
在使用光流的细化操作期间,导出视频的当前视频块的第一样点的运动矢量差;
基于所导出的所述第一样点的运动矢量差来确定第二样点的运动矢量差;以及
基于所述确定来执行视频的所述当前视频块和所述视频的编解码表示之间的转换。
140.如权利要求139所述的方法,其中,所述细化操作是使用具有光流的预测细化(PROF)来执行的,并且,其中,所述第一样点的所述运动矢量差是使用用于所述当前视频块内的位置的仿射模型来导出的,并且所述第一样点的所述运动矢量差用于确定不同位置的所述第二样点的运动矢量差。
141.如权利要求139所述的方法,其中,位于上部的所述第一样点的所述运动矢量差是使用仿射模型导出的,并且用于确定位于下部的所述第二样点的所述运动矢量差,由此,所述当前视频块具有宽度(W)和高度(H),上部和下部的尺寸为W*H/2。
142.如权利要求139所述的方法,其中,位于下部的所述第一样点的所述运动矢量差是使用仿射模型导出的,并用于确定位于上部的第二样点的所述运动矢量差,由此,所述当前视频块具有宽度(W)和高度(H),上部和下部的尺寸为W*H/2。
143.如权利要求139所述的方法,其中,位于左部的所述第一样点的所述运动矢量差是使用仿射模型导出的,并用于确定位于右部的第二样点的所述运动矢量差,由此所述当前视频块具有宽度(W)和高度(H),左部和右部具有W/2*H的尺寸。
144.如权利要求139所述的方法,其中,位于右部的所述第一样点的所述运动矢量差是使用仿射模型导出的,并用于确定位于左部的第二样点的所述运动矢量差,由此所述当前视频块具有宽度(W)和高度(H),左部和右部具有W/2*H的尺寸。
145.如权利要求139所述的方法,其中,所述第一样点的运动矢量差是使用仿射模型导出的,并且在用于确定所述第二样点的所述运动矢量差之前,被舍入到预定精度或/和被剪切到预定范围。
146.如权利要求139所述的方法,其中,对于位置(x,y)处的第一样点或第二样点,MVDh和MVDv分别是水平和垂直运动矢量差,并且通过使用以下等式获得:MVDh(x,y)=–MVDh(W–1–x,H–1–y)和MVDv(x,y)=–MVDv(W–1–x,H–1–y),其中W和H是所述当前视频块的宽度和高度。
147.一种视频处理方法,包括:
通过对视频的当前视频块应用使用双向光流(BDOF)操作的细化操作来导出预测细化样点;
根据规则,确定将导出的预测细化样点剪切到预定范围[-M,N]的剪切操作的适用性,其中M和N是整数;以及
执行所述当前视频块和所述视频的编解码表示之间的转换。
148.如权利要求147所述的方法,其中,所述规则确定应用所述剪切操作。
149.如权利要求147所述的方法,其中,N等于M-1的值。
150.如权利要求147所述的方法,其中,所述预定范围取决于所述当前视频块的颜色分量的比特深度。
151.如权利要求150所述的方法,其中,M等于2K,K=Max(K1,BitDepth+K2),其中BitDepth是所述当前视频块的颜色分量的比特深度,其中K1和K2是整数。
152.如权利要求150所述的方法,其中,M等于2K,K=Min(K1,BitDepth+K2),其中BitDepth是所述当前视频块的颜色分量的比特深度,其中K1和K2是整数。
153.如权利要求147所述的方法,其中使用预测细化光流(PROF)将所述预定范围应用于另一视频块。
154.如权利要求147所述的方法,其中,所述规则确定不应用所述剪切操作。
155.一种视频处理方法,包括:
确定当前视频块的编解码组尺寸,所述当前视频块包括使用不同残差编解码模式编码的第一编解码组和第二编解码组,使得第一编解码组和第二编解码组的尺寸根据规则对齐;以及
基于所述确定来执行所述当前视频块和所述视频的编解码表示之间的转换。
156.如权利要求155所述的方法,其中,使用变换跳过模式对所述第一编解码组进行编解码,在所述变换跳过模式中,变换被旁路或者识别变换被应用,并且其中所述规则指示基于所述当前视频块是否包含多于2*M个样点和/或残差块尺寸来确定所述第一编解码组的尺寸。
157.如权利要求155所述的方法,其中,所述第一编解码组在不使用变换跳过模式的情况下被编解码,在所述变换跳过模式中,变换被旁路或者识别变换被应用,并且其中所述规则指示基于所述当前视频块的宽度(W)或高度(H)是否等于K来确定所述第一编解码组的尺寸,其中K是整数。
158.如权利要求155所述的方法,其中,所述第一编解码组和所述第二编码组别使用变换跳过模式和常规残差编解码模式来编解码,并且其中所述规则指示所述第一编解码组和所述第二编解码组具有2*2、2*8、2*8、2*4、8*2或4*2的尺寸。
159.如权利要求158所述的方法,其中,所述尺寸用于N*2或N*2残差块,其中N是整数。
160.一种视频处理方法,包括:
对于视频的当前视频块和所述视频的编解码表示之间的转换,基于与所述当前视频块相关联的编码信息和/或解码信息,确定其中使用光流来细化运动信息的预测细化光流(PROF)工具的适用性;以及
基于所述确定来执行转换。
161.如权利要求160所述的方法,其中,使用仿射模式对所述当前视频块进行编解码。
162.如权利要求161所述的方法,其中,由于在转换中使用的参考图片具有与包含所述当前视频块的当前图片的维度不同的维度,所述确定确定不应用所述PROF工具。
163.如权利要求161所述的方法,其中,由于所述转换使用双向预测预测并且两个参考图片具有相同的维度,所述确定确定应用所述PROF工具。
164.如权利要求161所述的方法,其中,所述PROF工具的适用性根据参考图片和包括所述当前视频块的当前图片之间的分辨率来确定。
165.如权利要求160所述的方法,其中,所述确定根据指示特定条件的规则而确定不应用所述PROF工具。
166.如权利要求165所述的方法,其中,所述特定条件包括i)启用广义双预测,ii)启用权重预测,或iii)应用半像素插值滤波器。
167.如权利要求1至166中任一项所述的方法,其中,与细化操作相关的信息在包括序列、图片、条带、片、砖块或另一个视频区域的视频单元级别被发信号通知。
168.如权利要求1至166中任一项所述的方法,其中,根据基于所述当前视频块的编解码信息的规则来执行所述细化操作,所述规则取决于是否对所述当前视频块应用双向光流(BDOF)或预测细化光流(PROF)。
169.如权利要求1至168中任一项所述的方法,其中,所述转换包括从所述视频生成所述编解码表示或者从所述编解码表示生成所述视频。
170.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器运行时,使所述处理器实施权利要求1至169中任一项所述的方法。
171.一种存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于执行权利要求1至169中的任一项项所述的方法的程序代码。
CN202080030922.0A 2019-05-16 2020-05-18 基于子区域的运动信息细化确定 Active CN113728644B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311610467.3A CN117395419A (zh) 2019-05-16 2020-05-18 基于子区域的运动信息细化确定

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/087193 2019-05-16
CN2019087193 2019-05-16
CN2019090037 2019-06-04
CNPCT/CN2019/090037 2019-06-04
CNPCT/CN2019/090903 2019-06-12
CN2019090903 2019-06-12
CNPCT/CN2019/093616 2019-06-28
CN2019093616 2019-06-28
CNPCT/CN2019/093973 2019-06-29
CN2019093973 2019-06-29
CNPCT/CN2019/094282 2019-07-01
CN2019094282 2019-07-01
CN2019104489 2019-09-05
CNPCT/CN2019/104489 2019-09-05
CNPCT/CN2019/116757 2019-11-08
CN2019116757 2019-11-08
PCT/CN2020/090802 WO2020228836A1 (en) 2019-05-16 2020-05-18 Sub-region based determination of motion information refinement

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311610467.3A Division CN117395419A (zh) 2019-05-16 2020-05-18 基于子区域的运动信息细化确定

Publications (2)

Publication Number Publication Date
CN113728644A true CN113728644A (zh) 2021-11-30
CN113728644B CN113728644B (zh) 2024-01-26

Family

ID=73289816

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080030922.0A Active CN113728644B (zh) 2019-05-16 2020-05-18 基于子区域的运动信息细化确定
CN202311610467.3A Pending CN117395419A (zh) 2019-05-16 2020-05-18 基于子区域的运动信息细化确定

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311610467.3A Pending CN117395419A (zh) 2019-05-16 2020-05-18 基于子区域的运动信息细化确定

Country Status (8)

Country Link
US (2) US11736698B2 (zh)
EP (1) EP3949415A4 (zh)
JP (2) JP7431253B2 (zh)
KR (1) KR102647582B1 (zh)
CN (2) CN113728644B (zh)
BR (1) BR112021021669A2 (zh)
SG (1) SG11202111843XA (zh)
WO (1) WO2020228836A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616970B1 (en) 2022-01-25 2023-03-28 Mediatek Inc. Motion vector refinement apparatus having motion vector predictor derivation circuit that is allowed to start new task without waiting for motion vector difference computation and associated motion vector refinement method
WO2023193557A1 (en) * 2022-04-07 2023-10-12 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220132136A1 (en) * 2019-03-16 2022-04-28 Vid Scale, Inc. Inter prediction bandwidth reduction method with optical flow compensation
US11330287B2 (en) * 2019-06-28 2022-05-10 Tencent America LLC Method and apparatus for video coding
EP3991432A1 (en) * 2019-07-01 2022-05-04 InterDigital VC Holdings France, SAS Bi-directional optical flow refinement of affine motion compensation
WO2022257954A1 (en) * 2021-06-10 2022-12-15 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
WO2023072287A1 (en) * 2021-10-29 2023-05-04 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
US20230336773A1 (en) * 2022-04-18 2023-10-19 Tencent America LLC On motion compensated picture boundary padding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding
CN108432250A (zh) * 2016-01-07 2018-08-21 联发科技股份有限公司 用于视频编解码的仿射帧间预测的方法及装置
CN108496367A (zh) * 2015-11-11 2018-09-04 三星电子株式会社 用于对视频进行解码的方法和设备以及用于对视频进行编码的方法和设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7627037B2 (en) 2004-02-27 2009-12-01 Microsoft Corporation Barbell lifting for multi-layer wavelet coding
CN104541506A (zh) 2012-09-28 2015-04-22 英特尔公司 层间像素样本预测
WO2014047877A1 (en) 2012-09-28 2014-04-03 Intel Corporation Inter-layer residual prediction
US9294777B2 (en) 2012-12-30 2016-03-22 Qualcomm Incorporated Progressive refinement with temporal scalability support in video coding
US9521425B2 (en) 2013-03-19 2016-12-13 Qualcomm Incorporated Disparity vector derivation in 3D video coding for skip and direct modes
WO2014166063A1 (en) 2013-04-09 2014-10-16 Mediatek Inc. Default vector for disparity vector derivation for 3d video coding
US9762927B2 (en) 2013-09-26 2017-09-12 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US9667996B2 (en) 2013-09-26 2017-05-30 Qualcomm Incorporated Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC
US10701366B2 (en) 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10595035B2 (en) 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
US10805630B2 (en) 2017-04-28 2020-10-13 Qualcomm Incorporated Gradient based matching for motion search and derivation
US10904565B2 (en) 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
US10986360B2 (en) * 2017-10-16 2021-04-20 Qualcomm Incorproated Various improvements to FRUC template matching
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
TWI719519B (zh) 2018-07-02 2021-02-21 大陸商北京字節跳動網絡技術有限公司 對於dmvr的塊尺寸限制
WO2020084461A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on coding information
CN112913240A (zh) 2018-10-22 2021-06-04 北京字节跳动网络技术有限公司 解码器侧运动矢量推导和其他编解码工具之间的并置
JP7231727B2 (ja) 2018-11-05 2023-03-01 北京字節跳動網絡技術有限公司 精緻化を伴うインター予測のための補間
US11962796B2 (en) 2019-04-01 2024-04-16 Qualcomm Incorporated Gradient-based prediction refinement for video coding
CN113785586B (zh) * 2019-04-12 2023-12-22 寰发股份有限公司 用于视频编解码系统的简化仿射子块处理的方法及装置
CN116320473A (zh) * 2019-08-23 2023-06-23 北京达佳互联信息技术有限公司 光流预测细化的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108496367A (zh) * 2015-11-11 2018-09-04 三星电子株式会社 用于对视频进行解码的方法和设备以及用于对视频进行编码的方法和设备
CN108432250A (zh) * 2016-01-07 2018-08-21 联发科技股份有限公司 用于视频编解码的仿射帧间预测的方法及装置
US20180199057A1 (en) * 2017-01-12 2018-07-12 Mediatek Inc. Method and Apparatus of Candidate Skipping for Predictor Refinement in Video Coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XIANG LI等: "Non-CE2: Combination of affine MV clip and prediction refinement with optical flow", 《JVET-N0737_R1,JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》 *
XIAOYU XIU等: "CE9-related: Improvements on bi-directional optical flow (BDOF)", 《JVET-N0325_R1,JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11616970B1 (en) 2022-01-25 2023-03-28 Mediatek Inc. Motion vector refinement apparatus having motion vector predictor derivation circuit that is allowed to start new task without waiting for motion vector difference computation and associated motion vector refinement method
TWI800318B (zh) * 2022-01-25 2023-04-21 聯發科技股份有限公司 具有運動向量預測推導電路的運動向量精化設備及其相關的運動向量精化方法
WO2023193557A1 (en) * 2022-04-07 2023-10-12 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding video picture data

Also Published As

Publication number Publication date
US20220103827A1 (en) 2022-03-31
CN117395419A (zh) 2024-01-12
EP3949415A4 (en) 2022-08-03
EP3949415A1 (en) 2022-02-09
JP2022530516A (ja) 2022-06-29
CN113728644B (zh) 2024-01-26
KR102647582B1 (ko) 2024-03-15
BR112021021669A2 (pt) 2021-12-21
SG11202111843XA (en) 2021-11-29
WO2020228836A1 (en) 2020-11-19
US20230403398A1 (en) 2023-12-14
JP7431253B2 (ja) 2024-02-14
KR20220009947A (ko) 2022-01-25
US11736698B2 (en) 2023-08-22
JP2024032872A (ja) 2024-03-12

Similar Documents

Publication Publication Date Title
CN110933420B (zh) 仿射模式中自适应运动矢量分辨率的快速算法
CN110582000B (zh) 改进的模式匹配的运动矢量推导
CN112913249B (zh) 广义双向预测索引的简化编解码
CN113728644B (zh) 基于子区域的运动信息细化确定
CN112997485A (zh) 用于具有细化的帧间预测的插值
CN112956197A (zh) 基于编解码信息的解码器侧运动矢量推导的限制
CN111083492A (zh) 双向光流中的梯度计算
CN113728626A (zh) 不同运动矢量细化中的基于区域的梯度计算
CN110740332B (zh) 基于更新的运动矢量的运动预测
CN113711608A (zh) 利用光流的预测细化过程的适用性
CN113412623A (zh) 记录仿射模式自适应运动矢量分辨率的上下文
CN114175655B (zh) 根据参考图片类型使用工具的限制
CN110891174A (zh) 不同视频块尺寸的仿射模式计算
CN113366851A (zh) 对称运动矢量差编解码模式的快速算法
CN113796084A (zh) 运动矢量和预测样点细化
CN113383548A (zh) Mv精度和mv差编解码之间的相互作用
CN111010570B (zh) 基于仿射运动信息的尺寸限制
CN113678444A (zh) 具有自适应运动矢量分辨率的仿射模式的熵编解码
CN114503596A (zh) 运动矢量细化和其他编解码工具之间的相互作用
CN110876063A (zh) 交织预测的快速编码方法
CN112970259B (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