CN116195253A - 帧内块复制编解码中的块矢量处理 - Google Patents

帧内块复制编解码中的块矢量处理 Download PDF

Info

Publication number
CN116195253A
CN116195253A CN202180050329.7A CN202180050329A CN116195253A CN 116195253 A CN116195253 A CN 116195253A CN 202180050329 A CN202180050329 A CN 202180050329A CN 116195253 A CN116195253 A CN 116195253A
Authority
CN
China
Prior art keywords
block
video
vector
current video
current
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.)
Pending
Application number
CN202180050329.7A
Other languages
English (en)
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.)
Douyin Vision Co Ltd
Original Assignee
Douyin Vision Co Ltd
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 Douyin Vision Co Ltd filed Critical Douyin Vision Co Ltd
Publication of CN116195253A publication Critical patent/CN116195253A/zh
Pending legal-status Critical Current

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/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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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)

Abstract

描述了使用块矢量处理的帧内块复制(IBC)的方法、***和设备。视频处理的示例方法包括:对于包括当前视频块的视频和视频的比特流之间的转换,根据基于包括当前视频块的当前区域和包括当前视频块的非紧邻临近块的临近区域之间的重叠条件的规则,确定该非紧邻临近块对于基于块矢量(BV)的编解码的可用性;以及基于该确定来执行转换。

Description

帧内块复制编解码中的块矢量处理
相关申请的交叉引用
根据适用的专利法和/或依据巴黎公约的规则,本申请适时要求于2020年8月20日提交的国际专利申请No.PCT/CN2020/110325的优先权和权益。出于根据法律的所有目的,前述申请的全部公开通过引用而并入作为本申请的公开的一部分。
技术领域
本专利文档涉及图像和视频编解码。
背景技术
数字视频占了互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。
发明内容
本文档公开了能够由图像和视频编码器和解码器用于执行图像或视频编码、解码或处理的使用块矢量处理的帧内块复制(IBC)的技术。
在一个示例方面,公开了一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,根据基于包括当前视频块的当前区域和包括当前视频块的非紧邻临近块的临近区域之间的重叠条件的规则,确定非紧邻临近块对于基于块矢量(BV)的编解码的可用性;以及根据该确定来执行转换。
在另一示例方面,公开了另一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定当前视频块的样点串矢量是否用于预测与当前视频块相关联的后续视频块的块矢量和/或串矢量;以及基于该确定来执行转换。
在又一示例方面,公开了另一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个样点串矢量对于当前视频块的块矢量的预测可用;以及基于该确定来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个块矢量对于当前视频块的样点串矢量的预测可用;以及基于该确定来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,一个或多个语法元素根据格式规则在比特流中被用于指示用于预测当前视频块的块矢量或样点串矢量。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:执行包括视频块的视频和该视频的比特流之间的转换,其中,该转换符合规则,并且其中,该规则指定相同的列表构建过程在转换期间被用于确定视频块的块矢量预测列表或样点串矢量预测列表。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,根据规则来确定相关联块的样点串矢量还是块矢量被用于预测当前视频块的块矢量;以及基于该确定来执行转换,其中,相关联块包括当前视频块的父块或至少一个兄弟块,其中,样点串矢量在样点串预测模式下被推导,并且块矢量在帧内块复制模式下被推导。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定从用于编解码当前视频块的帧内块复制模式生成的至少一个块矢量被用于当前视频块的样点串矢量的估计过程中;以及基于该确定来执行转换,其中,当前视频块使用样点串预测模式被进一步编解码。
在又一个示例方面,公开了另一种视频处理方法。该方法包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,该比特流符合格式规则,并且其中,该格式规则指定指示由当前视频块使用的块矢量预测列表中的块矢量的块矢量索引被约束为小于块矢量预测列表中的块矢量的数量。
在又一个示例方面,公开了另一种视频处理方法。该方法包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,该比特流符合格式规则,并且其中,该格式规则指定指示由当前视频块使用的帧内历史运动矢量预测列表中的块矢量或样点串矢量的样点串矢量索引被约束为小于帧内历史运动矢量预测列表中的元素的数量。
在又一个示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实施上述方法的处理器。
在又一个示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实施上述方法的处理器。
在又一个示例方面,公开了一种存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现本文描述的方法之一。
这些以及其他特征将在本文档中被描述。
附图说明
图1示出了帧内块复制(IBC)的示例。
图2示出了空域merge候选的示例位置。
图3示出了非紧邻临近块的示例。
图4示出了非紧邻临近块的另一示例。
图5示出了样点串预测的示例。
图6示出了可用的非紧邻临近块区域的示例。
图7是示出其中本文公开的各种技术可以被实施的示例视频处理***的框图。
图8是用于视频处理的示例硬件平台的框图。
图9是图示能够实施本公开的一些实施例的示例视频编解码***的框图。
图10是图示能够实施本公开的一些实施例的编码器的示例的框图。
图11是图示能够实施本公开的一些实施例的解码器的示例的框图。
图12-图21示出了视频处理的示例方法的流程图。
具体实施方式
在本文中,使用章节标题是为了易于理解,并且不将每个章节中公开的技术和实施例的应用性仅限于该章节。此外,在一些描述中使用H.266术语只是为了易于理解而不是为了限制所公开技术的范围。因此,这里描述的技术也适用于其他视频编解码器协议和设计。
1.简介
本文件中描述的技术可用于编码和解码视觉媒体数据,例如图像或视频,在本文件中通常称为视频。具体而言,其与视频编解码中的块内复制有关。其可以应用于现有的视频编解码标准中,例如HEVC或即将完成的标准(多功能视频编解码,音频视频标准3)。其也可以用于未来的视频编解码标准或视频编解码器。
2.初步讨论
视频编解码标准主要通过众所周知的ITU-T和ISO/IEC标准的发展而演变。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4 Visual,这两个组织联合制定了H.264/MPEG-2视频和H.264/MEPG-4高级视频编解码(Advanced Video Coding,AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准是基于混合视频编解码结构,其中时域预测加变换编解码被使用。为了探索HEVC之外的未来视频编解码技术,联合视频探索团队(Joint Video Exploration Team,JVET)于2015年由VCEG和MPEG联合成立。此后,JVET采用了许多新方法,并将其应用于名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间成立了联合视频专家团队(Joint Video Expert Team,JVET),以致力于与HEVC相比降低50%比特率的VVC标准。
VVC草案的最新版本,即多功能视频编解码(草案9),可在以下网址找到:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/18_Alpbach/wg11/JVET-R2001-v10.zip
VVC的最新参考软件,名为VTM,可在以下网址找到:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-9.0
2.1基于历史的merge候选推导
将基于历史的MVP(history-based MVP,HMVP)merge候选被添加到空域MVP和TMVP之后的merge表中。在该方法中,先前编解码块的运动信息被存储在表中,并被用作当前CU的MVP。具有多个HMVP候选的表在编码/解码过程中被保持。当遇到新的CTU行时,该表被重置(清空)。每当存在非子块帧内编解码CU时,相关联的运动信息作为新的HMVP候选被添加到该表的最后一个条目。
HMVP表的尺寸S被设置为6,这表明最多可向表中添加6个基于历史的MVP(HMVP)候选。当将新的运动候选被***到表中时,使用约束的先进先出(first-in-first-out,FIFO)规则,其中,首先应用冗余检查来查找表中是否存在相同的HMVP。如果找到相同的HMVP,则将其从表中删除,然后向前移动所有的HMVP候选。
HMVP候选可被用于merge候选表构建过程。按顺序检查表中最新的几个HMVP候选,并在候选表中将其***到TMVP候选之后。冗余检查应用于HMVP候选到空域或时域merge候选。
为了减少冗余检查操作的次数,引入了以下简化:
1)用于merge表生成的HMPV候选的数量是否被设置为(N<=4)?M:(8-N),其中N指示merge表中现有候选的数量,M指示表中可用HMVP候选的数量。
2)一旦可用merge候选的总数达到最大允许merge候选减1,则终止来自HMVP的merge候选表的构建过程。
HMVP思想也扩展到帧内块复制(模式)中的块矢量预测。
2.2帧内块复制
帧内块复制(IBC),也称为当前图片参考,已在HEVC屏幕内容编解码扩展(HEVCScreen Content Coding extensions,HEVC-SCC)和当前VVC测试模型(VTM-4.0)中被采用。IBC将运动补偿的概念从帧间编解码扩展到帧内编解码。如图1所示,当应用IBC时,当前块由同一图片中的参考块预测。在当前块被编解码或解码之前,参考块中的样点必须已经被重构。虽然IBC对于大多数摄像机拍摄的序列来说效率不高,但IBC展示出了对屏幕内容的显著编解码增益。原因是屏幕内容图片中有很多重复的图案,例如图标和文本字符。IBC可以有效地消除这些重复图案之间的冗余。在HEVC-SCC中,如果选择当前图片作为参考图片,则帧间编解码编解码单元(coding unit,CU)可以应用IBC。在这种情况下,MV被重命名为块矢量(block vector,BV),BV始终具有整数像素精度。为了与主档次HEVC兼容,当前图片在解码图片缓冲区(Decoded Picture Buffer,DPB)中被标记为“长期”参考图片。应当注意,类似地,在多视点/3D视频编解码标准中,视点间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后,可以像在其他编解码模式中那样应用变换和量化。
然而,当参考块在图片之外,或者与当前块重叠,或者在重构区域之外,或在某些约束限制的有效区域之外时,部分或全部像素值不被定义。基本上,有两种解决方案来处理这样的问题。一种是禁止这种情况,例如在比特流一致性方面。另一种是对那些未定义的像素值应用填充。以下分节详细介绍了解决方案。
2.3 HEVC屏幕内容编解码扩展中的IBC
在HEVC的屏幕内容编解码扩展中,当块使用当前图片作为参考时,应确保整个参考块在可用的重构区域内,如以下规范文本所示:
变量offsetX和offsetY的推导如下:
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-104)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-105)
比特流一致性的要求是,当参考图片是当前图片时,亮度运动矢量mvLX应遵守以下约束:
-当调用条款6.4.1中规定的z扫描顺序块的可用性的推导过程时,其中(xCurr,yCurr)设置为等于(xCb,yCb)以及临近亮度位置(xNbY,yNbY)设置为等于(xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)作为输入,输出应等于TRUE。
-当调用条款6.4.1中规定的z扫描顺序块的可用性的推导过程时,其中(xCurr,yCurr)设置为等于(xCb,yCb)以及临近亮度位置(xNbY,yNbY)设置为等于(xPb+(mvLX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2)+nPbH-1+offsetY)作为输入,输出应等于TRUE。
-以下一个或两个条件应为真:
-(mvLX[0]>>2)+nPbW+xB1+offsetX的值小于或等于0。
-(mvLX[1]>>2)+nPbH+yB1+offsetY的值小于或等于0。
-以下条件应为真:
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (8-106)
因此,不会发生参考块与当前块重叠或参考块在图片之外的情况。不需要填充参考块或预测块。
2.4 VVC测试模型中的IBC
在当前VVC测试模型(即VTM-4.0设计)中,整个参考块应与当前编解码树单元(coding tree unit,CTU)一致,且不与当前块重叠。因此,不需要填充参考块或预测块。IBC标志被编解码为当前CU的预测模式。因此,每个CU总共有三种预测模式:MODE_INTRA、MODE_INTER和MODE_IBC。
2.4.1 IBC merge模式
在IBC merge模式下,指向IBCmerge候选表中条目的索引是从比特流中解析的。IBC merge表的构建可以被总结为按照以下步骤次序进行:
·步骤1:推导空域候选。
·步骤2:***基于历史的块矢量预测(History-based Block VectorPrediction,HBVP)候选。
·步骤3:***成对平均候选。
在空域merge候选的推导中,从位于图2所示的位置的候选中选择最多四个merge候选。推导的顺序为A1、B1、B0、A0和B2。位置B2仅在位置A1、B1,B0和A0的任何PU不可用(例如,因为B2属于另一条带或片)或未使用IBC模式编解码时才被考虑。在添加位置A1处的候选之后,对剩余候选的***进行冗余检查,以确保排除表中具有相同运动信息的候选,从而提高编解码效率。为了降低计算复杂性,在提到的冗余检查中并没有考虑所有可以的候选对。相反,仅考虑图2中用箭头连接的对,并且如果用于冗余检查的对应候选不具有相同的运动信息,候选只被添加到表中。
***空域候选后,如果IBC merge表的尺寸仍然小于最大IBC merge表的尺寸,则可以***来自HBVP表的IBC候选。在***HBVP候选时需要执行冗余检查。
最后,将成对平均候选***IBC merge表中。
当merge候选所标识的参考块在图片之外,或与当前块重叠,或在重构区域之外,或在某些约束所限制的有效区域之外时,merge候选被称为无效merge候选。
需要注意的是,无效merge候选可以被***IBC merge表中。
2.4.2 IBC AMVP模式
在IBC高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)模式中,指向IBC AMVP表中条目的AMVP索引是从比特流中解析的。IBC AMVP表的构建可以被总结为按照以下步骤次序进行:
·步骤1:推导空域候选。
ο检查A0、A1,直到找到可用的候选。
ο检查B0、B1、B2,直到找到可用的候选。
·步骤2:***HBVP候选。
·步骤3:***零候选。
***空域候选后,如果IBC AMVP表的尺寸仍然小于最大IBC AMVP表的尺寸,则可以***来自HBVP表的IBC候选。
最后,将零候选***IBC AMVP表中。
2.5在AVS3中的IBC AMVP模式
在音频视频编解码标准3(Audio Video coding Standard 3,AVS3)中,保持HBVP表以存储先前编解码块的BV。对于HBVP表的每个条目,除了BV之外,还存储与BV相关联的块的信息,包括块的宽度和高度以及块的左上样点的坐标(相对于图片的左上样点)。同时,在条目中还存储指示遇到BV多少次的计数器。在下文中,块的左上样点的坐标也被用作块的坐标。
在IBC AMVP模式中,当为当前块构建IBC AMVP(高级运动矢量预测)表时,首先,按照顺序检查HBVP表中的BV,并将其分为7类。每个类最多可以包含一个BV,如果将多个BV分类到同一个类中,则该类使用最新检查的BV。
·对于BV,如果与BV相关的块的尺寸(例如,宽度*高度)大于或等于64,则将其归入第0类。
·对于BV,如果其计数器大于或等于3,则将其归入第一类。
·对于BV,还按照以下顺序进行分类:
ο如果其水平坐标小于当前块的水平坐标,并且其垂直坐标小于当前块的垂直坐标,则将其归入第四类,例如左上类。
ο否则,如果其水平坐标大于或等于当前块的水平坐标加上当前块的宽度,则将其归入第五类,例如右上类。
ο否则,如果其垂直坐标大于或等于当前块的垂直坐标加上当前块的高度,则将其归入第六类,例如左下类。
ο否则,如果其垂直坐标小于当前块的垂直坐标,则将其归入第三类,例如上类。
ο否则,如果其水平坐标小于当前块的水平坐标,则将其归入第二类,例如左类。
第二,0-6类BV被按照顺序***AMVP表。如果类不为空,则在用已经***的AMVP候选进行修剪之后,可以将相应的BV添加到AMVP表中。
在BV预估过程中,首先确定初始BV。然后,成功执行一维垂直BV搜索、一维水平BV搜索和二维BV搜索,以找到最佳BV。每个BV搜索阶段从相同的初始BV开始。在一维垂直BV搜索中,垂直BV分量被约束为小于或等于y-H。类似地,在一维水平BV搜索中,水平BV分量被约束为小于或等于x-W。
2.6 AVS3中的样点串预测
在M4503中,提出了样点串预测方法,其中,当前视频块被划分为一组或多组样点(例如,一组样点被称为样点串),并且通过复制包括当前视频块的当前图片中的一组像素来预测每个样点串。同时,样点可以不被预测,并且可以被直接编码,这样的样点被称为不匹配样点。在图5中示出了示例,其中,CU被划分为两个样点串,并且每个串通过由样点串矢量(SV)标识的一组像素来预测。对于在样点串预测模式下编解码的CU,没有残差被编解码。样点串以遍历顺序被扫描,并且对于每个样点串,串长度和串矢量被编码。对于不匹配样点,它们的值被直接编解码。
样点串的SV可以直接来自由历史BV和SV更新的帧内历史运动矢量预测列表。当从帧内历史运动矢量预测列表预测样点串的SV时,没有SV差被进一步信令通知。
在样点串预测方法中,块的SV不用于预测其后续编解码块。
3.由公开的技术解决方案解决的技术问题
1.当构造IBC merge表或AMVP表时不使用非紧邻临近块的块矢量(block vector,BV),这是低效的。
2.在AVS3中,当对HBVP表中的BV进行分类时,将与BV相关联的块尺寸(例如,块的宽度*高度)与固定值(例如,64)进行比较,以确定BV是否应被分为第0类,而不管当前块的尺寸,这可能是不合理的。
3.在AVS3中,在一维BV搜索阶段对垂直BV分量和水平BV分量应用非常严格的约束,这是低效的。
4.在串样点预测方法中,SV不用于预测随后块,这是低效的。
5.与SV和BV有关的语法元素被不同地设计。
6.SV预测列表和BV预测列表以不同的方式构建。
4.示例解决方案和实施例
以下项目应作为解释一般概念的示例。不应狭隘地解释这些项目。此外,这些项目可以以任何方式组合。
将当前块的坐标(例如,块的左上样点的坐标)表示为(x,y),将当前块的宽度和高度分别表示为W和H。将非紧邻临近样点的坐标表示为(x-deltaX,y-deltaY),其中deltaX和deltaY是正整数、负整数或0,非紧邻临近块是覆盖样点的S1*S2(S1和S2是整数,例如,S1=S2=4)块。假设包含当前块的当前CTU行从坐标(0,ctuRowY)开始。在AVS3中,维护帧内历史运动矢量预测列表,并且通过历史BV和SV更新该列表。帧内历史运动矢量预测列表可以用于BV和SV编解码。
1.提出当预测当前块的BV时,可以使用其非紧邻临近块的BV。
a.提出可以将非紧邻临近块的BV***IBC merge表或/和IBC AMVP表(例如块矢量预测表)中。
b.在一个示例中,非紧邻临近块的位置可以取决于当前块的宽度或/和高度。
i.例如,当构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M,y-M)、(x-M,y+H/2)、(x-M,y+H)、(x+W/2,y-M)、(x+W,y-M)的非紧邻临近块,其中M是整数,如图3所示。例如,M=8。
1.或者,在构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M,y-M)、(x-M,y+H-1)、(x-M,y+H)、(x+W-1,y-M)、(x+W,y-M)的非紧邻临近块。
2.或者,可选地,在构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M,y)、(x,y-M)、(x-M,y+3*H/2)、(x-M,y+2*H)、(x+3*W/2,y-M)、(x+2*W,y-M)的非紧邻临近块。
ii.例如,在构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M-1,y-M-1)、(x-M-1,y-M-1+(H+M)/2)、(x-M-1,y+H)、(x-M-1+(W+M)/2,y-M-1)、(x+W,y-M-1)的非紧邻临近块,其中M是整数,如图4所示。例如,M=8。
1.或者,在构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M-1,y-M-1)、(x-M-1,y+H-1)、(x-M-1,y+H)、(x+W-1,y-M-1)、(x+W,y-M-1)的非紧邻临近块。
2.或者,可选地,在构建IBC merge表或/和IBC AMVP表时,可以检查覆盖位置(x-M-1,y)、(x,y-M-1)、(x-M-1,y-M-1+3*(H+M)/2)、(x-M-1,y+2*H+M)、(x-M-1+3*(W+M)/2,y-M-1)、(x+2*W+M,y-M-1)的非紧邻临近块。
c.在一个示例中,检查多少非紧邻临近块可以取决于当前块的形状或尺寸。
d.在一个示例中,检查多少非紧邻临近块可以取决于当前块的坐标。
e.在一个示例中,当非紧邻临近块和当前块在两个不同的CTU行中时,非紧邻临近块的BV可以不用于预测当前块的BV。
f.在一个示例中,当非紧邻临近块和当前块在两个不同的CTU行中,并且当前块的垂直坐标和当前CTU行的垂直坐标之间的差(例如,ctuRowY)小于或等于Th时,非紧邻临近块的BV可以不用于预测当前块的BV。
i.例如,Th等于0。在这种情况下,当前块位于当前CTU行的顶行。
ii.例如,Th等于4。
iii.例如,Th等于M-4,其中M如上定义为用于指示非紧邻临近块的位置。
g.在一个示例中,当非紧邻临近块和当前块在两个不同的CTU行中时,非紧邻临近块的位置可以被裁剪到与当前块在相同的CTU行内,并且在经裁剪的位置处的BV可以用于预测当前块的BV。
h.在一个示例中,当非紧邻临近块和当前块在两个不同的CTU行中时,非紧邻临近块的垂直位置可以被裁剪到当前CTU行的垂直坐标的距离内,并且在经裁剪的位置处的BV可以用于预测当前块的BV。
i.例如,非紧邻临近块的垂直位置可以被裁剪到ctuRowY-Th2,其中Th2是整数。例如,Th2等于0、4或8。
i.在一个示例中,当非紧邻临近块和当前块在两个不同的片/条带/子图片中时,非紧邻临近块的BV可以不用于预测当前块的BV。
i.或者,非紧邻临近块的位置可以被裁剪到与当前块在相同的片/条带/子图片内,并且在经裁剪的位置处的BV可以用于预测当前块的BV。
j.在一个示例中,当非紧邻临近块和当前块在两个不同的CTU或区域(例如,具有宽度RW和高度RH的矩形区域)中时,非紧邻临近块的BV可以不用于预测当前块的BV。
i.或者,非紧邻临近块的位置可以被裁剪为与当前块在相同的CTU内,并且裁剪位置处的BV可以用于预测当前块的BV。
k.在一个示例中,当非紧邻临近块在当前块的上方N(例如,N=8)个临近行之外时,该块的BV可以不用于预测当前块。在图6中示出了示例,仅“可用的非紧邻临近块区域”中的非紧邻临近块的BV可以用于预测当前块的BV。
l.在一个示例中,当非紧邻临近块在当前块的左侧M(例如,M=8)个临近列之外时,该块的BV可以不用于预测当前块的BV。在图6中示出了示例。
m.在一个示例中,当非紧邻临近块在当前块的L形临近区域之外时,该块的BV可以不用于预测当前块的BV。
n.在一个示例中,当由非紧邻临近块的BV标识的当前块的参考块没有完全被包括在包括当前块的当前CTU或当前区域(例如,具有宽度RW和高度RH的矩形区域)中时,这样的BV可以不用于预测当前块的BV。
2.提出了非紧邻临近块的检查顺序可以取决于临近块相对于当前块的相对位置。
a.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、右上临近块,左下临近块、上临近块以及左临近块。
i.例如,按照(x-M,y-M)、(x+W,y-M)、(x-M,y+H)、(x+W/2,y-M)、(x-M,y+H/2)的顺序检查覆盖位置(x-M,y-M)、(x-M,y+H/2)、(x-M,y+H)、(x+W/2,y-M)、(x+W,y-M)的非紧邻临近块。
ii.例如,按照(x-M-1,y-M-1)、(x+W,y-M-1)、(x-M-1,y+H)、(x-M+(W+M)/2,y-M-1)、(x-M-1,y-M+(H+M)/2)的顺序检查覆盖位置(x-M-1,y-M-1)、(x-M-1,y-M+(H+M)/2)、(x-M-1,y+H)、(x-M+(W+M)/2,y-M-1)、(x+W,y-M-1)的非紧邻临近块。
b.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左临近块、上临近块、左上临近块、右上临近块和左下临近块。
i.例如,按照(x-M,y+H/2)、(x+W/2,y-M)、(x-M,y-M)、(x+W,y-M)、(x-M,y+H)的顺序检查覆盖位置(x-M,y-M)、(x-M,y+H/2)、(x-M,y+H)、(x+W/2,y-M)、(x+W,y-M)的非紧邻临近块。
ii.例如,按照(x-M-1,y-M+(H+M)/2)、(x-M+(W+M)/2,y-M-1)、(x-M-1,y-M-1)、(x+W,y-M-1)、(x-M-1,y+H)的顺序检查覆盖位置(x-M-1,y-M-1)、(x-M-1,y-M+(H+M)/2)、(x-M-1,y+H)、(x-M+(W+M)/2,y-M-1)、(x+W,y-M-1)的非紧邻临近块。
c.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左临近块、上临近块、右上临近块、左下临近块和左上临近块。
d.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左下临近块、左临近块、右上临近块、上临近块和左上临近块。
e.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、左临近块、上临近块、右上临近块和左下临近块。
f.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的左上临近块、上临近块、左临近块、右上临近块和左下临近块。
g.在一个示例中,非紧邻临近块的检查顺序可以如下:当前块的上临近块、左临近块、左上临近块、右上临近块和左下临近块。
h.在一个示例中,非紧邻临近块可以被分为多个组,以预定义的顺序检查每个组中的候选,并且来自一个组的最多N个(N是整数,例如,N=1)候选可以被***IBC merge表或/和IBCAMVP表中。
i.例如,非紧邻临近块可以被分为两组:{左下、左}-临近块,{右上、上、左上}-临近块。
ii.例如,非紧邻临近块可以被分为两组:{左下、左、左上}-临近块、{右上、上}-临近块。
i.在一个示例中,非紧邻临近块的检查顺序可以取决于从临近块到当前块的距离。
i.例如,该距离可以被定义为从临近块的左上样点到当前块的左上样点的距离。
1.该距离可以被定义为从临近块的左上样点到当前块的左上样点的水平距离和垂直距离之和。
2.该距离可以被定义为从临近块的左上样点到当前块的左上样点的水平距离平方和垂直距离平方的总和。
ii.例如,非紧邻临近块可以按距离升序检查。
iii.例如,非紧邻临近块可以按距离降序检查。
j.在一个示例中,非紧邻临近块的检查顺序可以取决于当前块的尺寸或形状。
i.例如,对于具有W>M1*H(例如,M1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更高的优先级。
ii.例如,对于具有W>M1*H(例如,M1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更低的优先级。
iii.例如,对于具有H>M1*W(例如,M1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更高的优先级。
iv.例如,对于具有H>M1*W(例如,M1=2)的块,上临近块、右上临近块和左上临近块可以被给予比左下临近块和左临近块更低的优先级。
k.在一个示例中,非紧邻临近块的检查顺序可以取决于临近块的尺寸。
i.例如,可以按尺寸(宽度*高度)升序检查非紧邻临近块。
ii.例如,可以按尺寸(宽度*高度)降序检查非紧邻临近块。3.提出将非紧邻临近块的BV***IBC merge表或/和IBC AMVP表可以取决于来自HBVP表中BV的可用性或/和紧邻临近块BV的可用性。
a.在一个示例中,在来自HBVP表中的BV之后***非紧邻临近块的BV。
i.或者,在来自HBVP表中的BV之前***非紧邻临近块的BV。
ii.或者,非紧邻临近块的BV与来自HBVP表中的BV交错相间排列。
b.在一个示例中,在紧邻临近块的BV之后***非紧邻临近块中的BV。
i.或者,在紧邻临近块的BV之前***非紧邻临近块的BV。
ii.或者,非紧邻临近块的BV与紧邻临近块的BV交错相间排列。
c.在一个示例中,在***来自HBVP表中的BV或/和紧邻临近块的BV之后,当IBCmerge/AMVP表中没有空条目时,不***非紧邻临近块的BV。
d.在一个示例中,可以以与来自HBVP表中的BV类似的方式将非紧邻临近块的BV分为多个类。
i.例如,可以根据临近块与当前块的相对位置将非紧邻临近块分类为5个类,包括左上类、右上类、左下类、上类和左类。一个或多个非紧邻临近块可以被分为一个类。
ii.在一个示例中,当HBVP表不包含第一类别中的任何可用的BV时,可以使用属于第一类别(如果可用)的非紧邻临近块的BV代替。
1.在一个示例中,可以按照预定义的顺序检查属于第一类别的一个或多个非紧邻临近块的BV,直到找到可用BV或者检查完所有的BV。
2.可以按照预定义的顺序检查属于第一类别的一个或多个非紧邻临近块的BV,直到将第一类别中的BV***IBC merge/AMVP表或检查完所有的BV。
iii.在一个示例中,当存在既来自HBVP表又属于第一类别的非紧邻临近块的可用BV时,使用哪个BV可以取决于从与BV相关联的块到当前块的距离(类似于项目2.e中定义的)。
1.例如,可以按照距离降序检查BV,直到找到可用BV或者检查完所有的BV。
2.例如,可以按照距离降序检查BV,直到将BV***IBC merge/AMVP表或检查完所有的BV。
3.例如,可以按照距离升序检查BV,直到找到可用BV或者检查完所有的BV。
4.例如,可以按照距离升序检查BV,直到将BV***IBC merge/AMVP表或检查完所有BV。
e.在一个示例中,当HBVP表不包含第一类别中的任何可用BV(例如,第一类别可以是第0、第1、第2、第3、第4、第5或第6类中的一个)时,非紧邻临近块的BV可以用于第一类别。
i.在一个示例中,当HBVP表不包含第一类别中的任何可用BV时,可以按照顺序检查第一组非紧邻临近块的BV,直到找到可用BV,或者检查完所有的BV。
ii.在一个示例中,当HBVP表不包含第二类别中的任何可用BV时,可以按照顺序检查第二组非紧邻临近块的BV,直到找到可用BV。当第一类别与第二类别不同时,第一组非紧邻临近块可以与第二组非紧邻临近块不同。
1.或者,第一组非紧邻临近块可以与第二组非紧邻临近块相同。
iii.在一个示例中,如果非紧邻临近块属于第一非紧邻临近块组,则它可以不属于与第一非紧邻临近块组不同的第二非紧邻临近块组。
iv.在一个示例中,当第一非紧邻临近块的BV用于第一类别时,可以不对第二类别再次检查该BV。
1.或者,当对于第一类别检查第一非紧邻临近块的BV时,可以不对第二类别再次检查该BV。
f.在一个示例中,在***来自非紧邻临近块的BV之前,可以将BV与已经***IBCmerge/AMVP表中的一个或多个BV进行比较。
i.在一个示例中,如果来自非紧邻临近块的BV与已***IBC merge/AMVP表的一个或多个BV中的一个相同,则不将其***IBC merge/AMVP中。
ii.在一个示例中,如果来自非紧邻临近块的BV与已***IBC merge/AMVP表的一个或多个BV中的一个相似,则不将其***IBC merge/AMVP中。
iii.在一个示例中,可以对来自非紧邻临近块的一个或多个BV进行这种比较。
iv.或者,不进行比较。
4.提出可以根据与BV相关联的块尺寸(表示为BvBlkSize)和当前块的尺寸(表示为CurBlkSize)来决定是否将来自HBVP表的BV分为第N(N是非负整数,例如,N=0)类。
a.在一个示例中,当BvBlkSize大于或等于因子*CurBlkSize时,BV可以被分类为第N类,其中因子是正数。例如,因子等于1。
b.在一个示例中,当BvBlkSize大于因子*CurBlkSize时,BV可以被分类为第N类,其中因子是正数。例如,因子等于1。
c.在一个示例中,当BvBlkSize小于或等于因子*CurBlkSize时,BV可以被分类为第N类,其中因子是正数。例如,因子等于1。
d.在一个示例中,当BvBlkSize小于因子*CurBlkSize时,BV可以被分类为第N类,其中因子是正数。例如,因子等于1。
e.在一个示例中,当BvBlkSize等于因子*CurBlkSize时,BV可以被分类为第N类,其中因子是正数。例如,因子等于1。
f.或者,可以根据与BV相关联的块尺寸和当前块的尺寸来决定来自HBVP表中的BV是否应被分类为第N类。
5.提出了在一维BV搜索中BV分量的范围可以仅取决于当前块的坐标。
a.或者,此外,在一维BV搜索中BV分量的范围可以不取决于当前块的尺寸。
b.在一个示例中,在一维垂直BV搜索中,垂直BV分量被约束为小于或等于y-N1(N1是整数,例如,N1=0、8或-8)。
c.在一个示例中,在一维水平BV搜索中,水平BV分量被约束为小于或等于x-N2(N2是整数,例如N2=0、8或-8)。
d.或者,在一维BV搜索中BV分量的范围可以同时取决于当前块的尺寸和坐标。
i.例如,在一维垂直BV搜索中,垂直BV分量被约束为小于或等于y+H-N1(N1是整数,例如,N1=0、8或-8)。
ii.例如,在一维水平BV搜索中,水平BV分量被约束为小于或等于x+W-N2(N2是整数,例如N2=0、8或-8)。
iii.或者,可选地,BV分量的范围可以进一步取决于起始BV(startBvX,startBvY)。
1.例如,在一维垂直BV搜索中,垂直BV分量被约束为小于或等于y+startBvY+K1*H-N1。N1是整数,例如N1=0、8或-8,并且K1是整数,例如K1=2、3、4。
2.例如,在一维水平BV搜索中,水平BV分量被约束为小于或等于x+startBvX+K2*W-N2。N2是整数,例如N2=0、8或-8,并且K2是整数,例如K2=2、3、4。
6.提出了块的SV(样点串矢量)可以用于预测其后续编解码块的BV或/和SV。
a.在一个示例中,可以为在样点串预测模式下编解码的块选择一个代表性SV,并且可以为该块存储该一个代表性SV。
i.例如,第一个样点串的SV可以被选择作为代表性SV。
ii.例如,最后一个样点串的SV可以被选择作为代表性SV。
iii.例如,覆盖块的中心位置的样点串的SV可以被选择作为代表性SV。
iv.例如,覆盖块的代表性位置的样点串的SV可以被选择作为代表性SV。
v.例如,具有最大长度的样点串的SV可以被选择作为代表性SV。如果存在具有最大长度的多个样点串,则多个样点串之一的BV可以被选择作为代表性SV。
vi.例如,多个样点串的BV的平均值可以用作代表性SV。
b.在一个示例中,可以为在样点串预测模式下编解码的块存储多个SV。
i.例如,对于每个MxN子块,为该子块存储覆盖该子块的大多数样点的样点串的SV。如果有多个样点串覆盖该子块的大多数样点,则可以为该子块存储多个样点串之一的BV。
7.提出了当预测块的BV时,可以使用其非紧邻临近块的SV。
a.提出了非紧邻临近块的SV可以被***到IBC merge列表或/和IBC AMVP列表中。
b.项目符号1中描述的方法可以用于将SV***到IBC merge列表或/和IBC AMVP列表中。
c.此外,或者,紧邻临近块的SV可以用于预测当前块的BV。
8.提出了当预测块的SV时,可以使用其非紧邻临近块的BV。
a.此外,或者,当预测块的SV时,可以使用其非紧邻临近块的SV。
b.此外,或者,当预测块的SV时,可以使用其紧邻临近块的SV或/和BV。
9.提出了统一BV和SV的信令。
a.在一个示例中,用于指示SV的语法元素用于指示BV。
b.在一个示例中,用于指示BV的语法元素用于指示SV。
c.在一个示例中,语法被信令通知以指示SV或BV是否被包括在预定义的SV/BV集合中。
i.例如,预定义的SV/BV集合可以取决于要被编解码的语法是SV还是BV。
ii.例如,预定义的SV集合可以取决于当前样点串包含当前块的所有样点还是部分样点。
iii.例如,预定义的SV集合可以取决于当前样点串从偶数行还是奇数行开始。
iv.例如,对于包含块的所有样点的样点串的BV或SV,预定义的SV/BV集合可以包括{(0,-H),(-W,0)},其中,W和H分别是当前块的宽度和高度。
1.或者,预定义的SV/BV集合可以包括(0,-H)。
2.或者,预定义的SV/BV集合可以包括(0,-H)或(-W,0)。
v.例如,对于仅包含块的部分样点的样点串的SV,预定义的SV集合可以包括{(0,-1),(W,0)}。
1.或者,预定义的SV/BV集合可以包括{(0,-1)}。
vi.例如,对于从块的偶数行开始的样点串的SV,预定义的SV集合可以包括{(0,-1),(-W,0)}。
vii.例如,对于从块的奇数行开始的样点串的SV,预定义的SV集合可以包括{(0,-1),(W,0)}。
viii.此外,或者,当SV或BV被包括在预定义的SV/BV集合中时,其中,该集合包含多于一个条目,可以进一步信令通知指示集合中的哪个SV/BV被使用的索引。
d.在一个示例中,对于在IBC模式下编解码的块,语法可以被信令通知以指示该块的BV是否来自BV预测列表。
i.此外,或者,仅当这样的语法指示该块的BV来自BV预测列表时,指示BV预测列表中的哪个BV由当前块使用的BV索引可以被信令通知。
e.在一个示例中,对于在IBC模式下编解码的块,帧内历史运动矢量预测列表可以被直接用于编解码BV,并且可以不构建BV预测列表。
i.例如,BV索引可以被信令通知以指示帧内历史运动矢量预测列表中的哪个BV/SV被用于该块。
1.此外,或者,如果帧内历史运动矢量预测列表中的BV/SV被用于该块,则BV差可以不被信令通知,并且可以被推导为零。
2.此外,或者,在一致性比特流中将BV索引约束为小于帧内历史运动矢量预测列表中的元素的数量。
f.在一个示例中,对于在IBC模式下编解码的块,语法可以被信令通知以指示该块的BV是否来自帧内历史运动矢量预测列表。
i.此外,或者,仅当这样的语法指示该块的BV来自帧内历史运动矢量预测列表时,BV索引可以被信令通知。
ii.此外,或者,当帧内历史运动矢量预测列表中没有元素时,这样的语法被约束为假,即,该块的BV被约束为不来自帧内历史运动矢量预测列表。
g.在一个示例中,BV(0,0)可以不被***到BV预测列表中。
10.提出了统一BV预测列表构建过程和SV预测列表构建过程。
a.在一个示例中,将SV预测列表构建过程与BV预测列表构建过程对齐。
b.在一个示例中,将BV预测列表构建过程与SV预测列表构建过程对齐。
11.提出了当前块的父块或/和至少一个兄弟块(如果可用)的SV(在样点串预测模式下被推导)或/和BV(在帧内块复制模式下被推导)可以用于当前块的BV估计过程。
a.在一个示例中,当前块的父块或/和至少一个兄弟块(如果可用)的SV或/和BV可以被考虑为BV估计过程中的候选BV。
i.此外,或者,当前块的父块或/和至少一个兄弟块(如果可用)的SV或/和BV可以在所有其他候选BV之前被测试。
ii.此外,或者,如果由当前块的父块或/和至少一个兄弟块(如果可用)的SV或/和BV实现的最小代价小于阈值,则可以跳过所有其他候选BV。
b.此外,或者,当前块的至少一个兄弟块的至少一个后代的SV或/和BV可以用于当前块的BV估计过程。
12.提出了当在块的样点串预测模式之前执行帧内块复制模式时,在帧内块复制模式下获得的BV可以用于当前块的SV估计过程,反之亦然。
a.在一个示例中,在帧内块复制模式下实现最小代价的N(例如,N=1,2,3等)个BV可以被考虑为SV估计过程中的候选SV。
i.此外,或者,N个BV可以在所有其他候选SV之前被测试。
ii.此外,或者,如果在SV估计过程中由N个BV实现的最小代价小于阈值,则可以跳过所有其他候选SV。
iii.在检查样点串预测模式之前,即使帧内块复制模式不是当前最佳模式,也可以在SV估计过程中考虑N个BV。
b.在一个示例中,当样点串包含块的所有样点时,在帧内块复制模式下实现最小代价的N个BV可以用于SV估计过程。
c.在一个示例中,当样点串包含块的部分样点时,在帧内块复制模式下实现最小代价的N个BV可以用于SV估计过程。
d.在一个示例中,对于包含块的所有样点的第一样点串和包含块的部分样点的第二样点串,N可以不同。
e.对于不同尺寸的块,N可以不同。
13.提出了在一致性比特流中将BV索引(例如,指示BV预测列表中的哪个BV由当前块使用的cbvp_index)约束为小于BV预测列表中的BV的数量。
a.在一个示例中,当BV预测列表中有N(N是整数)个BV时,BV索引被约束为小于或等于N-1。
b.此外,或者,当BV预测列表中没有元素时,提出了将当前块的BV是否来自BV预测列表的指示约束为假,即,当前块的BV被约束为不来自BV预测列表。
14.提出了在一致性比特流中将SV索引(例如,指示帧内历史运动矢量预测列表中的哪个SV/BV由样点串使用的sv_recent_idx)约束为小于帧内历史运动矢量预测列表中的元素的数量。
a.此外,或者,当帧内历史运动矢量预测列表中没有元素时,提出了将当前样点串的SV是否来自帧内历史运动矢量预测列表的指示(例如,sv_recent_flag)约束为假,即,当前样点串的SV被约束为不来自帧内历史运动矢量预测列表。
5.实施例
以下是本节上文总结的一些发明方面的一些示例实施例,可以应用VVC规范。大多数已被添加或修改的相关部分用粗体、下划线和斜体表示,例如“使用A
Figure BDA0004078936360000232
”,一些删除的部分用带删除线的斜体表示,如“基于/>
Figure BDA0004078936360000231
B”。还有一些其他变化本身就是可编辑的,因此没有突出显示。
5.1实施例#1
第9.5.6.3.2.节块矢量预测
首先,按照以下步骤构造类别blockMotionClassY(Y=0~6):
a)将可选的块复制帧内预测历史运动信息候选的数量NumAllowedHbvpCand初始化为Min(CntHbvp,NumOfHbvpCand)。
b)如果NumAllowedHbvpCand等于0,并且MvPredXBv和MvPredYBv两者都等于0,则结束导出过程,否则继续执行以下步骤。
c)否则,Y从0到6,将每个类别blockMotionClassY中用于块复制的帧内预测的运动信息候选cntClassY的数量初始化为0。对于X=0~NumAllowedHbvpCand-1,HbvpCandateList[X]分类如下:
1)如果widthCandX*heightCandX大于或等于
Figure BDA0004078936360000242
Figure BDA0004078936360000241
则将HbvpCandateList[X]加到blockMotionClass0,并将cntClassY的值加1;
2)如果cntCandX大于或等于3,则将HbvpCandidateList[X]加到blockMotionClass1,并将cntClassY的值加1;
3)如果xCandX小于xCur并且yCandX小于yCur,则将HbvpCandidateList[X]加到blockMotionClass4,并将cntClassY的值加1;
4)否则,如果xCandX大于或等于xCur+widthCur,则将HbvpCandidateList[X]加到blockMotionClass5,并将cntClassY的值加1;
5)否则,如果yCandX大于或等于yCur+heightCur,则将HbvpCandidateList[X]加到blockMotionClass6,并将cntClassY的值加1;
6)否则,如果yCandX小于yCur,则将HbvpCandidateList[X]加到blockMotionClass3,并将cntClassY的值加1;
7)否则,将HbvpCandidateList[X]加到blockMotionClass2,并将cntClassY的值加1。
然后,将blockMotionClassY中的帧内复制运动信息的块矢量标记为bvClassY,并且根据以下方法推导候选类别表CbvpCanddateList:
a)将cntCbvp、cntCheck和Y初始化为0;
b)如果cntClassY的值大于0,执行以下步骤:
1)将candIdx初始化为0;
2)如果cntCbvp等于0,则CbvpCanddateList[cntCbvp]的块矢量等于bvClassY,将cntCbwp加1,并且执行步骤c);
3)否则,如果CbvpCandidateList[candIdx]的块矢量与bvClassY相同,则转至步骤c);
4)否则,将candIdx加1,如果candIdx小于cntCheck,则转至步骤3);
5)否则,CbvpCanddateList[cntCbvp]的块矢量等于bvClassY,并将cntCbvp加1。
c)将Y的值加1,然后执行以下步骤:
1)如果Y的值小于或等于2,则将cntCheck的值设置为cntCbvp,然后继续执行步骤b);
2)否则,如果Y小于7,则继续执行步骤b);
3)否则,结束
Figure BDA0004078936360000251
推导CbvpCanddateList的过程。
Figure BDA0004078936360000252
/>
Figure BDA0004078936360000261
如果cntCbvp等于0,则MvPredXBv和MvPredYBv两者都等于0。否则,MvPredXBv和MvPredYBv分别等于CbvpCandidateList[CbvpIndex]的横坐标和纵坐标。
图7是示出可以在其中实施本文公开的各种技术的示例视频处理***7000的框图。各种实现可以包括***7000的一些或所有组件。***7000可以包括用于接收视频内容的输入7002。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式被接收,或者可以以压缩或编码格式被接收。输入7002可以表示网络接口、***总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
***7000可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件7004。编解码组件7004可以降低从输入7002到编解码组件7004的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件7004的输出可以被存储,或者经由如组件7006所表示的通信连接来发送。在输入7002处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件7008用于生成传送到显示接口7010的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编码结果的对应的解码工具或操作将由解码器执行。
***总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口(Displayport)等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
图8是视频处理装置8000的框图。装置8000可以用于实施本文描述的一种或多种方法。装置8000可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置8000可以包括一个或多个处理器8002、一个或多个存储器8004和视频处理硬件8006。(多个)处理器8002可以被配置为实施本文档中描述的一种或多种方法(例如,图12-图21中)。存储器(多个存储器)8004可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件8006可以用于在硬件电路***中实施本文档中描述的一些技术。在一些实施例中,硬件8006可以部分或全部位于一个或多个处理器8002中,例如图形处理器。
图9是示出可以利用本公开的技术的示例视频编解码***100的框图。
如图9所示,视频编解码***100可以包括源设备110和目标设备120。源设备110生成编码视频数据,其中该源设备110可以被称为视频编码设备。目标设备120可以解码由源设备110生成的编码视频数据,其中该目标设备120可以被称为视频解码设备。源设备110可以包括视频源112、视频编码器114和输入/输出(I/O)接口116。
视频源112可以包括源,诸如视频捕捉设备、从视频内容提供者接收视频数据的接口和/或用于生成视频数据的计算机图形***,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关数据。编解码图片是图片的编解码表示。相关数据可以包括序列参数集合、图片参数集合和其他语法结构。I/O接口116可以包括调制器/解调器(调制解调器)和/或发送器。编码的视频数据可以通过网络130a经由I/O接口116直接发送到目标设备120。编码的视频数据也可以被存储在存储介质/服务器130b上以供目标设备120访问。
目标设备120可以包括I/O接口126、视频解码器124和显示设备122。
I/O接口126可以包括接收器和/或调制解调器。I/O接口126可以从源设备110或存储介质/服务器130b获取已编码的视频数据。视频解码器124可解码已编码的视频数据。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或者可以在目标设备120的外部,目标设备120被配置为与外部显示设备接口。
视频编码器114和视频解码器124可以根据视频压缩标准操作,例如高效视频编码(HEVC)标准、多功能视频编码(VVC)标准和其他当前和/或其他标准。
图10是示出视频编码器200的示例的框图,该视频编码器200可以是在图9中示出的***100中的视频编码器114。
视频编码器200可以配置为执行本公开的任何或所有技术。在如图10所示的示例中,视频编码器200包括多个功能组件。本公开中所描述的技术可在视频编码器200的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中所描述的技术中的任一或全部。
视频编码器200的功能组件可以包括分割单元201、可以包括模式选择单元203的预测单元202、运动估计单元204、运动补偿单元205和帧内预测单元206、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重构单元212、缓冲器213和熵编码单元214。
在其他示例中,视频编码器200可包括更多、更少或不同功能的组件。在一个示例中,预测单元202可以包括帧内块复制(IBC)单元。IBC单元可以在IBC模式下执行预测,其中至少一个参考图片是当前视频块所在的图片。
此外,例如运动估计单元204和运动补偿单元205之类的一些组件可以是高度集成的,但是出于描述的目的而在图10的示例中被分开表示。
分割单元201可将图片分割成一个或多个视频块。视频编码器200和视频解码器300可以支持各种视频块的尺寸。
模式选择单元203可以例如基于误差结果来选择编解码模式(帧内或帧间)之一,并将所得帧内或帧间编解码块提供给残差生成单元207以生成残差块数据并且重构单元212重构编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测(CIIP)模式的组合,其中预测是基于帧间预测信号和帧内预测信号。在帧间预测的情况下,模式选择单元203还可以为块选择运动矢量的分辨率(例如,子像素或整数像素精度)。
为了对当前视频块执行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较来生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的除了与当前视频块相关联的图片之外的图片的运动信息和解码样点来确定当前视频块的预测视频块。
运动估计单元204和运动补偿单元205可以对当前视频块执行不同的操作,例如,取决于当前视频块是在I条带、P条带还是B条带中。
在一些示例中,运动估计单元204可以对当前视频块执行单向预测,并且运动估计单元204可以对当前视频块的参考视频块搜索表0或1的参考图片。运动估计单元204可接着产生指示表0或表1中包含参考视频块的参考图片的参考索引和指示当前视频块与参考视频块之间的空间位移的运动矢量。运动估计单元204可输出参考索引、预测方向指示符和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
在其他示例中,运动估计单元204可以对当前视频块执行双向预测,运动估计单元204可以对当前视频块的参考视频块搜索表0中的参考图片,并且还可以对当前视频块的参考视频块搜索表1中的参考图片。运动估计单元204可接着产生指示表0和表1中的参考图片的参考索引,其包含参考视频块和指示参考视频块与当前视频块之间的空间位移的运动矢量。运动估计单元204可以输出当前视频块的参考索引和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
在一些示例中,运动估计单元204可以输出完整的运动信息集以用于解码器的解码处理。
在一些示例中,运动估计单元204可以不输出当前视频的完整的运动信息集。相反,运动估计单元204可参考另一视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可确定当前视频块的运动信息与临近视频块的运动信息足够相似。
在一个示例中,运动估计单元204可在与当前视频块相关联的语法结构中指示向视频解码器300指示当前视频块具有与另一视频块相同的运动信息的值。
在另一示例中,运动估计单元204可在与当前视频块相关联的语法结构中识别另一视频块和运动矢量差(motion vector difference,MVD)。运动矢量差表示当前视频块的运动矢量与指示的视频块的运动矢量之间的差。视频解码器300可以使用所指示的视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
如上所述,视频编码器200可以预测性地信令通知运动矢量。可由视频编码器200实施的预测信令技术的两个示例包括高级运动矢量预测(AMVP)和merge模式信令通知。
帧内预测单元206可以对当前视频块执行帧内预测。当帧内预测单元206对当前视频块执行帧内预测时,帧内预测单元206可以基于同一图片中的其他视频块的解码样点生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
残差产生单元207可通过从当前视频块减去(例如,由负号指示)当前视频块的(多个)预测视频块来产生当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中的样点的不同样点分量的残差视频块。
在其他示例中,对于当前视频块,例如在跳过模式中,可以不存在当前视频块的残差数据,并且残差生成单元207可以不执行减法运算。
变换处理单元208可通过对与当前视频块相关联的残差视频块应用一个或多个变换来生成当前视频块的一个或多个变换系数视频块。
在变换处理单元208产生与当前视频块相关联的变换系数视频块之后,量化单元209可基于与当前视频块相关联的一个或多个量化参数(quantization parameter,QP)值来量化与当前视频块相关联的变换系数视频块。
逆量化单元210和逆变换单元211可以分别对变换系数视频块应用逆量化和逆变换,以从变换系数视频块重构残差视频块。重构单元212可以将重构的残差视频块添加到来自预测单元202生成的一个或多个预测视频块的对应样点,以产生存储在缓冲器213中的与当前块相关联的重构视频块。
在重构单元212重构视频块之后,可以执行环路滤波操作以减少视频块中的视频块伪影。
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以执行一个或多个熵编码操作以生成熵编码数据并输出包括熵编码数据的比特流。
图11是示出视频解码器300的示例的框图,该视频解码器300可以是在图9中示出的***100中的视频解码器114。
视频解码器300可以配置为执行本公开的任何或所有技术。在图11所示的示例中,视频解码器300包括多个功能组件。本公开中所描述的技术可在视频解码器300的各种组件之间共享。在一些示例中,处理器可以配置为执行本公开中所描述的技术中的任一或全部。
在如图11所示的示例,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305、以及重构单元306和缓冲器307。在一些示例中,视频解码器300可以执行通常与关于视频编码器200(图8)描述的编码通道相反的解码通道。
熵解码单元301可以取得编码比特流。编码比特流可以包括熵编码的视频数据(例如,编码的视频数据块)。熵解码单元301可以解码熵编码的视频数据,并且根据熵解码的视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片表索引和其他运动信息的运动信息。例如,运动补偿单元302可以通过执行AMVP和merge模式来确定这样的信息。
运动补偿单元302可以产生运动补偿块,可以基于插值滤波器执行插值。用于以子像素精度的插值滤波器的标识符可以包括在语法元素中。
运动补偿单元302可使用在视频块的编码期间由视频编码器200使用的插值滤波器来计算参考块的子整数像素的插值。运动补偿单元302可根据接收的语法信息来确定由视频编码器200使用的插值滤波器并且使用插值滤波器来产生预测块。
运动补偿单元302可以使用一些语法信息来确定用于对编码的视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸,分割信息描述编码视频序列的图片的每个宏块如何被分割,模式指示如何编码每个分割,每个帧间编解码块的一个或多个参考帧(和参考帧表),以及解码编码视频序列的其他信息。
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域紧邻块形成预测块。逆量化单元303对在比特流中提供并由熵解码单元301解码的量化视频块系数进行逆量化,即去量化。逆变换单元303应用逆变换。
重构单元306可将残差块与由运动补偿单元202或帧内预测单元303生成的对应预测块相加以形成解码块。如果需要,还可以应用去方块滤波器来滤波解码的块,以便去除块状伪影。然后将解码的视频块存储在缓冲器307中,该缓冲器为随后的运动补偿/帧内预测提供参考块并且还产生用于在显示设备上呈现的解码视频
图12-图21示出了能够实施以上在例如图7-图11中示出的实施例中描述的技术解决方案的示例方法。
图12示出了视频处理的示例方法1200的流程图。方法1200包括,在操作1210,对于包括当前视频块的视频和该视频的比特流之间的转换,根据基于包括当前视频块的当前区域和包括当前视频块的非紧邻临近块的临近区域之间的重叠条件的规则,确定非紧邻临近块对于基于块矢量(BV)的编解码的可用性。
方法1200包括,在操作1220,基于该确定来执行转换。
图13示出了视频处理的示例方法1300的流程图。方法1300包括,在操作1310,对于包括当前视频块的视频和该视频的比特流之间的转换,确定当前视频块的样点串矢量是否被用于预测与当前视频块相关联的后续视频块的块矢量和/或串矢量。
方法1300包括,在操作1320,基于该确定来执行转换。
图14示出了视频处理的示例方法1400的流程图。方法1400包括,在操作1410,对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个样点串矢量对于当前视频块的块矢量的预测可用。
方法1400包括,在操作1420,基于该确定来执行转换。
图15示出了视频处理的示例方法1500的流程图。方法1500包括,在操作1510,对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个块矢量对于当前视频块的样点串矢量的预测可用。
方法1500包括,在操作1520,基于该确定来执行转换。
图16示出了视频处理的示例方法1600的流程图。方法1600包括,在操作1610,执行包括当前视频块的视频和该视频的比特流之间的转换,一个或多个语法元素根据格式规则在比特流中被用于指示用于预测当前视频块的块矢量或样点串矢量。
图17示出了视频处理的示例方法1700的流程图。方法1700包括,在操作1710,执行包括视频块的视频和该视频的比特流之间的转换,该转换符合规则,该规则指定相同的列表构建过程在转换期间被用于确定视频块的块矢量预测列表或样点串矢量预测列表。
图18示出了视频处理的示例方法1800的流程图。方法1800包括,在操作1810,对于包括当前视频块的视频和该视频的比特流之间的转换,根据规则来确定相关联块的样点串矢量还是块矢量用于预测当前视频块的块矢量,相关联块包括当前视频块的父块或至少一个兄弟块,样点串矢量在样点串预测模式下被推导,并且块矢量在帧内块复制模式下被推导。
方法1800包括,在操作1820,基于该确定来执行转换。
图19示出了视频处理的示例方法1900的流程图。方法1900包括,在操作1910,对于包括当前视频块的视频和该视频的比特流之间的转换,确定从用于编解码当前视频块的帧内块复制模式生成的至少一个块矢量被用于当前视频块的样点串矢量的估计过程,当前视频块使用样点串预测模式被进一步编解码。
方法1900包括,在操作1920,基于该确定来执行转换。
图20示出了视频处理的示例方法2000的流程图。方法2000包括,在操作2010,执行包括当前视频块的视频和该视频的比特流之间的转换,该比特流符合格式规则,该格式规则指定指示由当前视频块使用的块矢量预测列表中的块矢量的块矢量索引被约束为小于块矢量预测列表中的块矢量的数量。
图21示出了视频处理的示例方法2100的流程图。方法2100包括,在操作2110,执行包括当前视频块的视频和该视频的比特流之间的转换,该比特流符合格式规则,该格式规则指定指示由当前视频块使用的帧内历史运动矢量预测列表中的块矢量或样点串矢量的样点串矢量索引被约束为小于帧内历史运动矢量预测列表中的元素的数量。
以下解决方案示出了在前一章节(例如,第1-14项)中讨论的技术的示例实施例。
接下来提供一些实施例优选的解决方案列表。
S1.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,根据基于包括当前视频块的当前区域和包括当前视频块的非紧邻临近块的临近区域之间的重叠条件的规则,确定非紧邻临近块对于基于块矢量(BV)的编解码的可用性;以及基于该确定来执行转换。
S2.根据解决方案S1所述的方法,其中,由于重叠条件指定当前区域与临近区域不重叠,非紧邻临近块可用,并且其中,当前区域是第一编解码树单元(CTU),并且临近区域是第二CTU。
S3.根据解决方案S1所述的方法,其中,由于非紧邻临近块的块矢量标识当前视频块的参考块并且重叠条件指定参考块和当前区域部分重叠,非紧邻临近块可用。
S4.根据解决方案S1所述的方法,其中,由于临近区域包括直接在当前视频块上方的N个临近行并且排除在该N个临近行上方的行,非紧邻临近块可用,并且其中,N是正整数。
S5.根据解决方案S1所述的方法,其中,由于临近区域包括直接在当前视频块左侧的N个临近列并且排除在该N个临近列左侧的列,非紧邻临近块可用,并且其中,N是正整数。
S6.根据解决方案S4或S5所述的方法,其中,N=8。
S7.根据解决方案S1所述的方法,其中,由于临近区域包括与当前视频块直接紧邻的第一L形临近区域并且排除第二L形区域,非紧邻临近块可用,并且其中,第一L形区域在第二L形区域和当前视频块之间。
S8.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定当前视频块的样点串矢量是否被用于预测与当前视频块相关联的后续视频块的块矢量和/或串矢量;以及基于该确定来执行转换。
S9.根据解决方案S8所述的方法,其中,当前视频块使用样点串预测模式被编解码,并且其中,样点串矢量是为当前视频块存储的代表性串矢量。
S10.根据解决方案S9所述的方法,其中,代表性串矢量包括第一个样点串的串矢量。
S11.根据解决方案S9所述的方法,其中,代表性串矢量包括最后一个样点串的串矢量。
S12.根据解决方案S9所述的方法,其中,代表性串矢量包括覆盖当前视频块的中心位置的样点串的串矢量。
S13.根据解决方案S9所述的方法,其中,代表性串矢量包括具有最大长度的样点串的串矢量。
S14.根据解决方案S8所述的方法,其中,当前视频块使用样点串预测模式被编解码,并且其中,为当前视频块存储了多个串矢量。
S15.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个样点串矢量对于当前视频块的块矢量的预测可用;以及基于该确定来执行转换。
S16.根据解决方案S15所述的方法,其中,一个或多个样点串矢量被***到帧间块复制(IBC)merge列表或IBC高级运动矢量预测(AMVP)列表中。
S17.根据解决方案S15所述的方法,其中,当前视频块的块矢量的预测还基于紧邻临近块的一个或多个样点串矢量。
S18.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定非紧邻临近块的一个或多个块矢量对于当前视频块的样点串矢量的预测可用;以及基于该确定来执行转换。
S19.根据解决方案S18所述的方法,其中,当前视频块的样点串矢量的预测还基于非紧邻临近块的一个或多个样点串矢量。
S20.根据解决方案S18所述的方法,其中,当前视频块的样点串矢量的预测还基于紧邻临近块的一个或多个块矢量或者一个或多个样点串矢量。
S21.一种视频处理的方法,包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,一个或多个语法元素根据格式规则在比特流中被用于指示用于预测当前视频块的块矢量或样点串矢量。
S22.根据解决方案S21所述的方法,其中,格式规则指定一个或多个语法元素包括指示样点串矢量的语法元素。
S23.根据解决方案S21所述的方法,其中,格式规则指定一个或多个语法元素包括指示块矢量的语法元素。
S24.根据解决方案S21所述的方法,其中,格式规则指定一个或多个语法元素包括指示块矢量或样点串矢量是否分别被包括在预定义的块矢量集合或预定义的样点串矢量集合中的语法元素。
S25.根据解决方案S21所述的方法,其中,当前视频块以帧内块复制(IBC)模式被编解码,并且其中,格式规则指定一个或多个语法元素包括指示块矢量是否来自块矢量预测列表的语法元素。
S26.根据解决方案S21所述的方法,其中,当前视频块以帧内块复制(IBC)模式被编解码,并且其中,块矢量基于帧内历史运动矢量预测列表被编解码。
S27.根据解决方案S21所述的方法,其中,当前视频块以帧内块复制(IBC)模式被编解码,并且其中,格式规则指定一个或多个语法元素包括指示块矢量是否来自帧内历史运动矢量预测列表的语法元素。
S28.根据解决方案S21所述的方法,其中,块矢量是没有被***到块矢量预测列表中的(0,0)块矢量。
S29.一种视频处理的方法,包括执行包括视频块的视频和该视频的比特流之间的转换,其中,该转换符合规则,并且其中,该规则指定相同的列表构建过程在转换期间被用于确定视频块的块矢量预测列表或样点串矢量预测列表。
S30.根据解决方案S29所述的方法,其中,相同的列表构建过程与块矢量预测列表构建过程对齐。
S31.根据解决方案S29所述的方法,其中,相同的列表构建过程与样点串矢量预测列表构建过程对齐。
S32.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,根据规则来确定相关联块的样点串矢量还是块矢量被用于预测当前视频块的块矢量;以及基于该确定来执行转换,其中,相关联块包括当前视频块的父块或至少一个兄弟块,其中,样点串矢量在样点串预测模式下被推导,并且块矢量在帧内块复制模式下被推导。
S33.根据解决方案S32所述的方法,其中,规则指定样点串矢量或块矢量是当前视频块的块矢量的估计过程中的候选。
S34.根据解决方案S33所述的方法,其中,在确定样点串矢量或块矢量实现最小代价时,规则指定对于估计过程跳过所有其他候选块矢量。
S35.根据解决方案S32所述的方法,其中,相关联块还包括父块或至少一个兄弟块的至少一个后代。
S36.一种视频处理的方法,包括:对于包括当前视频块的视频和该视频的比特流之间的转换,确定从用于编解码当前视频块的帧内块复制模式生成的至少一个块矢量被用于当前视频块的样点串矢量的估计过程;以及基于该确定来执行转换,其中,当前视频块使用样点串预测模式被进一步编解码。
S37.根据解决方案S36所述的方法,其中,当前视频块使用帧内块复制模式被编解码,随后使用样点串预测模式被编解码。
S38.根据解决方案S36所述的方法,其中,当前视频块使用样点串预测模式被编解码,随后使用帧内块复制模式被解码。
S39.根据解决方案S36至S38中任一项所述的方法,其中,至少一个块矢量包括在帧内块复制模式下实现最小代价的N个块矢量,并且其中,N是正整数。
S40.根据解决方案S39所述的方法,其中,N的值基于当前视频块的一个或多个尺寸。
S41.一种视频处理的方法,包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,该比特流符合格式规则,并且其中,该格式规则指定指示由当前视频块使用的块矢量预测列表中的块矢量的块矢量索引被约束为小于块矢量预测列表中的块矢量的数量。
S42.根据解决方案S41所述的方法,其中,块矢量预测列表包括N个块矢量,并且其中,块矢量索引小于或等于(N-1)。
S43.根据解决方案S41或S42所述的方法,其中,块矢量索引为cbvp_index。
S44.一种视频处理的方法,包括执行包括当前视频块的视频和该视频的比特流之间的转换,其中,该比特流符合格式规则,并且其中,该格式规则指定指示由当前视频块使用的帧内历史运动矢量预测列表中的块矢量或样点串矢量的样点串矢量索引被约束为小于帧内历史运动矢量预测列表中的元素的数量。
S45.根据解决方案S44所述的方法,其中,样点串矢量索引为sv_recent_idx。
S46.根据解决方案S1至S45中任一项所述的方法,其中,该转换包括从比特流解码视频。
S47.根据解决方案S1至S45中任一项所述的方法,其中,该转换包括将视频编码为比特流。
S48.一种将表示视频的比特流存储到计算机可读记录介质的方法,包括根据解决方案S1至S45中的任何一项或多项中描述的方法从视频生成比特流,并且将比特流存储在计算机可读记录介质中。
S49.一种视频处理装置,包括被配置为实施根据解决方案S1至S48中的任何一项或多项所述的方法的处理器。
S50.一种存储有指令的计算机可读介质,该指令在被执行时使得处理器实施根据解决方案S1至S48中的一项或多项所述的方法。
S51.一种计算机可读介质,存储根据解决方案S1至S48中的任何一项或多项而生成的比特流。
S52.一种用于存储比特流的视频处理装置,其中,该视频处理装置被配置为实施根据解决方案S1至S48中的任何一项或多项所述的方法。
接下来提供一些实施例优选的另一解决方案列表。
P1.一种视频处理方法,包括:对于视频的视频块和该视频的编解码表示之间的转换,通过根据规则添加与当前视频块的一个或多个非紧邻块相对应的一个或多个块矢量来构建运动候选的列表;以及基于运动候选的列表来执行转换。
P2.根据解决方案P1所述的方法,其中,该列表包括帧内块复制merge列表。
P3.根据解决方案P1至P2中任一项所述的方法,其中,该列表包括高级运动矢量预测器列表。
P4.根据解决方案P1至P3中任一项所述的方法,其中,该规则指定基于一个或多个非紧邻临近块相对于当前视频块的位置对运动候选检查一个或多个非紧邻块的顺序。
P5.根据解决方案P4所述的方法,其中,该顺序包括首先检查当前块的左上临近块,然后右上临近块,然后左下临近块,然后上临近块,以及左临近块。
P6.根据解决方案P4所述的方法,其中,该顺序包括:当前块的左临近块、上临近块、左上临近块、右上临近块、以及左下临近块。
P7.一种视频处理的方法,包括:对于视频的当前视频块和该视频的比特流表示之间的转换,确定一个或多个非紧邻临近块的一个或多个块矢量的块矢量的条件是否被满足,其中,该条件取决于来自基于历史的块矢量预测列表的块矢量的可用性或紧邻临近块的块矢量的可用性;以及根据该确定来执行转换。
P8.根据解决方案P7所述的方法,其中,添加一个或多个非紧邻临近块的块矢量的条件是所有基于历史的块矢量都被***到该列表中。
P9.一种视频处理方法,包括:对于视频的当前视频块和该视频的编解码表示之间的转换,根据取决于与基于历史的块矢量预测值(HBVP)列表中的块矢量相关联的块尺寸或当前视频块的尺寸的规则,确定该块矢量是否被分类为第N个类;以及基于该确定来执行转换。
P10.根据解决方案P9所述的方法,其中,该规则指定在与块矢量相关联的块尺寸是当前视频块的尺寸的因子倍数的情况下对块矢量进行分类。
P11.根据解决方案P10所述的方法,其中,该因子等于1。
P12.一种视频处理的方法,包括:对于视频的当前视频块和该视频的编解码表示之间的转换,基于规则来确定用于确定块矢量的一维搜索范围,其中该规则基于当前视频块的属性;以及根据该确定来执行转换。
P13.根据解决方案P12所述的方法,其中,属性包括当前视频块的坐标,并且其中,属性足以确定搜索范围。
P14.根据解决方案P12所述的方法,其中,属性包括当前视频块的尺寸。
P15.根据解决方案P1至P14中任一项所述的方法,其中,执行转换包括编码视频以生成编码表示。
P16.根据解决方案P1至P14中任一项所述的方法,其中,执行转换包括解析并解码编码表示以生成视频。
P17.一种视频解码装置,包括被配置为实施根据解决方案P1至P16中的一项或多项所述的方法的处理器。
P18.一种视频编码装置,包括被配置为实施根据解决方案P1至P16中的一项或多项所述的方法的处理器。
P19.一种存储有计算机代码的计算机程序产品,该代码在由处理器执行时使得所述处理器实施根据解决方案P1至P16中任一项所述的方法。
在本文件中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示转换为对应的比特流表示期间应用,反之亦然。例如,如语法所定义的,当前视频块的比特流表示(或简述为比特流)可以对应于在比特流内共位的或分布在不同位置的比特。例如,宏块可以根据变换和编解码的误差残差值进行编码,并且还可以在比特流中的标头和其他字段中使用比特。
本文件中描述的公开和其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文件中所公开的结构及其结构等效体,或其中一个或多个的组合。公开的内容和其他实施例可以实施为一个或多个计算机程序产品,即一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理***、操作***或其中一个或多个的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成以编码信息以传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件***中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本文件中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本组件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件实施例中各种***组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。

Claims (52)

1.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,根据基于包括所述当前视频块的当前区域和包括所述当前视频块的非紧邻临近块的临近区域之间的重叠条件的规则,确定所述当前视频块的所述非紧邻临近块对于基于块矢量(BV)的编解码的可用性;以及
基于所述确定来执行所述转换。
2.根据权利要求1所述的方法,其中,由于所述重叠条件指定所述当前区域与所述临近区域不重叠,所述非紧邻临近块可用,并且其中,所述当前区域是第一编解码树单元(CTU),并且所述临近区域是第二CTU。
3.根据权利要求1所述的方法,其中,由于所述非紧邻临近块的块矢量标识所述当前视频块的参考块并且所述重叠条件指定所述参考块和所述当前区域部分重叠,所述非紧邻临近块可用。
4.根据权利要求1所述的方法,其中,由于所述临近区域包括直接在所述当前视频块上方的N个临近行并且排除在所述N个临近行上方的行,所述非紧邻临近块可用,并且其中,N是正整数。
5.根据权利要求1所述的方法,其中,由于所述临近区域包括直接在所述当前视频块左侧的N个临近列并且排除在所述N个临近列左侧的列,所述非紧邻临近块可用,并且其中,N是正整数。
6.根据权利要求4或5所述的方法,其中,N=8。
7.根据权利要求1所述的方法,其中,由于所述临近区域包括与所述当前视频块直接紧邻的第一L形临近区域并且排除第二L形区域,所述非紧邻临近块可用,并且其中,所述第一L形区域在所述第二L形区域和所述当前视频块之间。
8.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,确定所述当前视频块的样点串矢量是否被用于预测与所述当前视频块相关联的后续视频块的块矢量和/或串矢量;以及
基于所述确定来执行转换。
9.根据权利要求8所述的方法,其中,所述当前视频块使用样点串预测模式被编解码,并且其中,所述样点串矢量是为所述当前视频块存储的代表性串矢量。
10.根据权利要求9所述的方法,其中,所述代表性串矢量包括第一个样点串的串矢量。
11.根据权利要求9所述的方法,其中,所述代表性串矢量包括最后一个样点串的串矢量。
12.根据权利要求9所述的方法,其中,所述代表性串矢量包括覆盖所述当前视频块的中心位置的样点串的串矢量。
13.根据权利要求9所述的方法,其中,所述代表性串矢量包括具有最大长度的样点串的串矢量。
14.根据权利要求8所述的方法,其中,所述当前视频块使用样点串预测模式被编解码,并且其中,为所述当前视频块存储了多个串矢量。
15.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,确定非紧邻临近块的一个或多个样点串矢量对于所述当前视频块的块矢量的预测可用;以及
基于所述确定来执行转换。
16.根据权利要求15所述的方法,其中,所述一个或多个样点串矢量被***到帧间块复制(IBC)merge列表或IBC高级运动矢量预测(AMVP)列表中。
17.根据权利要求15所述的方法,其中,所述当前视频块的块矢量的预测还基于紧邻临近块的一个或多个样点串矢量。
18.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,确定非紧邻临近块的一个或多个块矢量对于所述当前视频块的样点串矢量的预测可用;以及
基于所述确定来执行转换。
19.根据权利要求18所述的方法,其中,所述当前视频块的样点串矢量的预测还基于所述非紧邻临近块的一个或多个样点串矢量。
20.根据权利要求18所述的方法,其中,所述当前视频块的样点串矢量的预测还基于紧邻临近块的一个或多个块矢量或者一个或多个样点串矢量。
21.一种视频处理的方法,包括:
执行包括当前视频块的视频和所述视频的比特流之间的转换,
其中,根据格式规则,一个或多个语法元素在比特流中被用于指示块矢量或样点串矢量,所述块矢量或所述样点串矢量用于所述当前视频块的预测。
22.根据权利要求21所述的方法,其中,所述格式规则规定,所述一个或多个语法元素包括指示所述样点串矢量的语法元素。
23.根据权利要求21所述的方法,其中,所述格式规则规定,所述一个或多个语法元素包括指示所述块矢量的语法元素。
24.根据权利要求21所述的方法,其中,所述格式规则规定,所述一个或多个语法元素包括指示所述块矢量或所述样点串矢量是否分别被包括在预定义的块矢量集合或预定义的样点串矢量集合中的语法元素。
25.根据权利要求21所述的方法,其中,所述当前视频块以帧内块复制(IBC)模式被编解码,并且其中,所述格式规则规定,所述一个或多个语法元素包括指示所述块矢量是否来自块矢量预测列表的语法元素。
26.根据权利要求21所述的方法,其中,所述当前视频块以帧内块复制(IBC)模式被编解码,并且其中,所述块矢量基于帧内历史运动矢量预测列表被编解码。
27.根据权利要求21所述的方法,其中,所述当前视频块以帧内块复制(IBC)模式被编解码,并且其中,所述格式规则规定,所述一个或多个语法元素包括指示所述块矢量是否来自帧内历史运动矢量预测列表的语法元素。
28.根据权利要求21所述的方法,其中,所述块矢量是没有被***到块矢量预测列表中的(0,0)块矢量。
29.一种视频处理的方法,包括:
执行包括视频块的视频和所述视频的比特流之间的转换,
其中,所述转换符合规则,并且
其中,所述规则规定,相同的列表构建过程在所述转换期间被用于确定所述视频块的块矢量预测列表或样点串矢量预测列表。
30.根据权利要求29所述的方法,其中,所述相同的列表构建过程与块矢量预测列表构建过程对齐。
31.根据权利要求29所述的方法,其中,所述相同的列表构建过程与样点串矢量预测列表构建过程对齐。
32.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,根据规则来确定是相关联块的样点串矢量还是所述相关联块的块矢量被用于预测所述当前视频块的块矢量;以及
基于所述确定来执行转换,
其中,所述相关联块包括所述当前视频块的父块或至少一个兄弟块,其中,所述样点串矢量在样点串预测模式下被推导,并且所述块矢量在帧内块复制模式下被推导。
33.根据权利要求32所述的方法,其中,所述规则规定,所述样点串矢量或所述块矢量是所述当前视频块的块矢量的估计过程中的候选。
34.根据权利要求33所述的方法,其中,在确定所述样点串矢量或所述块矢量实现最小代价时,所述规则规定,对于所述估计过程跳过所有其他候选块矢量。
35.根据权利要求32所述的方法,其中,所述相关联块还包括所述父块或所述至少一个兄弟块的至少一个后代。
36.一种视频处理的方法,包括:
对于包括当前视频块的视频和所述视频的比特流之间的转换,确定从用于编解码所述当前视频块的帧内块复制模式生成的至少一个块矢量被用于所述当前视频块的样点串矢量的估计过程;以及
基于所述确定来执行转换,
其中,所述当前视频块使用样点串预测模式被进一步编解码。
37.根据权利要求36所述的方法,其中,所述当前视频块使用所述帧内块复制模式被编解码,随后使用所述样点串预测模式被编解码。
38.根据权利要求36所述的方法,其中,所述当前视频块使用所述样点串预测模式被编解码,随后使用所述帧内块复制模式被编解码。
39.根据权利要求36至38中任一项所述的方法,其中,所述至少一个块矢量包括在所述帧内块复制模式下实现最小代价的N个块矢量,并且其中,N是正整数。
40.根据权利要求39所述的方法,其中,N的值是基于所述当前视频块的一个或多个尺寸。
41.一种视频处理的方法,包括:
执行包括当前视频块的视频和所述视频的比特流之间的转换,
其中,所述比特流符合格式规则,并且
其中,所述格式规则规定,指示由所述当前视频块使用的块矢量预测列表中的块矢量的块矢量索引被约束为小于所述块矢量预测列表中的块矢量的数量。
42.根据权利要求41所述的方法,其中,所述块矢量预测列表包括N个块矢量,并且其中,所述块矢量索引小于或等于(N-1)。
43.根据权利要求41或42所述的方法,其中,所述块矢量索引为cbvp_index。
44.一种视频处理的方法,包括:
执行包括当前视频块的视频和所述视频的比特流之间的转换,
其中,所述比特流符合格式规则,并且
其中,所述格式规则规定,指示由所述当前视频块使用的帧内历史运动矢量预测列表中的块矢量或样点串矢量的样点串矢量索引被约束为小于所述帧内历史运动矢量预测列表中的元素的数量。
45.根据权利要求44所述的方法,其中,所述样点串矢量索引为sv_recent_idx。
46.根据权利要求1至45中任一项所述的方法,其中,所述转换包括从所述比特流解码所述视频。
47.根据权利要求1至45中任一项所述的方法,其中,所述转换包括将所述视频编码为所述比特流。
48.一种将表示视频的比特流存储到计算机可读记录介质的方法,包括:
根据权利要求1至45中的任何一项或多项中描述的方法从所述视频生成所述比特流;以及
将所述比特流存储在所述计算机可读记录介质中。
49.一种视频处理装置,包括被配置为实施根据权利要求1至48中的任何一项或多项所述的方法的处理器。
50.一种其上存储有指令的计算机可读介质,所述指令在被执行时使得处理器实施根据权利要求1至48中的一项或多项所述的方法。
51.一种计算机可读介质,存储根据权利要求1至48中的任何一项或多项而生成的比特流。
52.一种用于存储比特流的视频处理装置,其中,所述视频处理装置被配置为实施根据权利要求1至48中的任何一项或多项所述的方法。
CN202180050329.7A 2020-08-20 2021-08-19 帧内块复制编解码中的块矢量处理 Pending CN116195253A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2020110325 2020-08-20
CNPCT/CN2020/110325 2020-08-20
PCT/CN2021/113427 WO2022037628A1 (en) 2020-08-20 2021-08-19 Block vector processing in intra block copy coding

Publications (1)

Publication Number Publication Date
CN116195253A true CN116195253A (zh) 2023-05-30

Family

ID=80322567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180050329.7A Pending CN116195253A (zh) 2020-08-20 2021-08-19 帧内块复制编解码中的块矢量处理

Country Status (2)

Country Link
CN (1) CN116195253A (zh)
WO (1) WO2022037628A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024104407A1 (en) * 2022-11-17 2024-05-23 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI536811B (zh) * 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
CN104219531B (zh) * 2014-09-29 2018-02-06 北方工业大学 基于线状帧内块拷贝的hevc屏幕内容编码
CN111541896B (zh) * 2020-04-27 2022-03-29 中南大学 一种基于vvc的帧内预测模式的优化方法及***

Also Published As

Publication number Publication date
WO2022037628A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
KR102649200B1 (ko) 인트라 블록 복제-코딩된 블록에 대한 블록 벡터의 코딩
KR102630415B1 (ko) 코딩 된 비디오의 양자화된 잔차 차동 펄스 코드 변조 표현의 제약
US11438602B2 (en) Coding mode based on a coding tree structure type
US11490089B2 (en) Transform bypass coded residual blocks in digital video
US11431966B2 (en) Intra coded video using quantized residual differential pulse code modulation coding
JP7453374B2 (ja) 幾何学的分割を用いた簡易インター予測
US20230097850A1 (en) Intra block copy using non-adjacent neighboring blocks
WO2021129685A1 (en) Spatial-temporal motion vector prediction
WO2021204190A1 (en) Motion vector difference for block with geometric partition
WO2022037628A1 (en) Block vector processing in intra block copy coding
CN113892267A (zh) 使用编解码树结构类型控制编解码模式
CN115176463A (zh) 具有几何分割的块的运动矢量差
US20230276044A1 (en) Constraints on intra block copy using non-adjacent neighboring blocks
US20230262226A1 (en) Sample string processing in intra coding
WO2022083631A1 (en) Video coding using sample string vector
CN114598882A (zh) 对称帧内块复制模式
CN114287134A (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