CN114128295A - 视频编解码中几何分割模式候选列表的构建 - Google Patents

视频编解码中几何分割模式候选列表的构建 Download PDF

Info

Publication number
CN114128295A
CN114128295A CN202080051086.4A CN202080051086A CN114128295A CN 114128295 A CN114128295 A CN 114128295A CN 202080051086 A CN202080051086 A CN 202080051086A CN 114128295 A CN114128295 A CN 114128295A
Authority
CN
China
Prior art keywords
block
merge
equal
codec
candidates
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
CN202080051086.4A
Other languages
English (en)
Other versions
CN114128295B (zh
Inventor
张莉
张凯
刘鸿彬
王悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of CN114128295A publication Critical patent/CN114128295A/zh
Application granted granted Critical
Publication of CN114128295B publication Critical patent/CN114128295B/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

一种视觉媒体处理方法,包括:执行视觉媒体数据的当前视频块和该当前视频块的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定在比特流表示中有选择地包括或不包括表示编解码工具的Merge候选的最大数量的语法元素,从而指示对于该转换是否启用或禁用该编解码工具,其中,该编解码工具的Merge候选的最大数量为零或正数。

Description

视频编解码中几何分割模式候选列表的构建
相关申请的交叉引用
根据适用的《专利法》和/或《巴黎公约》的规定,本申请及时要求于2019年7月14日提交的国际专利申请号PCT/CN2019/095921的优先权和利益。根据美国法律的所有目的,将上述申请的全部公开以引用方式并入本文,作为本申请公开的一部分。
技术领域
本文涉及视频和图像的编码和解码技术。
背景技术
数字视频在互联网和其他数字通信网络上的带宽使用量最大。随着能够接收和显示视频的连接用户设备数量的增加,预期数字视频使用的带宽需求将继续增长。
发明内容
在一个示例方面,公开了一种视觉媒体处理方法。该方法包括执行视觉媒体数据的当前视频块和该当前视频块的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定在比特流表示中有选择地包括或不包括表示编解码工具的Merge候选的最大数量的语法元素,从而指示对于该转换是否启用或禁用编解码工具,其中,编解码工具的Merge候选的最大数量为零或正数。
在一个示例方面,公开了一种视觉媒体处理方法。该方法包括执行视频和该视频的比特流表示之间的转换,该视频包括一个或多个包含多个视频块的视频区域,其中,该比特流表示符合格式规则,该格式规则规定视频区域的允许的几何分割模式(GPM)运动候选的数量决定该比特流表示中是否包括与编解码工具对该视频区域的适用性相关的语法元素,其中,该编解码工具不同于GPM编解码工具,其中,GPM包括将视频块分割为多个预测分区以分别应用运动预测,并且至少一个分区具有非矩形形状。
在一个示例方面,公开了一种视觉媒体处理方法。该方法包括执行视觉媒体数据的当前视频单元和该视觉媒体数据的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定最大变换块尺寸等于或小于用于转换的最大编解码树单元(CTU)尺寸。
在一个示例方面,公开了一种视觉媒体处理方法。该方法包括执行视觉媒体数据的当前视频块和该当前视频块的比特流表示之间的转换,其中,该转换使用自适应环路滤波器(ALF),其中ALF滤波器的系数基于当前视频块的视频区域中的样点的深度。
在一个示例方面,公开了一种视觉媒体处理方法。该方法包括使用自适应环路滤波器(ALF)执行视觉媒体数据的当前视频块和该当前视频块的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定在比特流表示中包括表示基于自适应参数集(APS)还是基于固定滤波器集来确定应用于当前视频块的ALF滤波器的一个或多个语法元素。
在另一个示例方面,上述方法可以由包括处理器的视频解码器装置实现。
在另一个示例方面,上述方法可以由包括处理器的视频编码器设备实现。
在又一个示例方面,这些方法可以体现为处理器可执行指令并存储在计算机可读程序介质上。
本文献中进一步描述了这些和其他方面。
附图说明
图1示出了Merge候选列表构建的推导过程。
图2示出了空间Merge候选的位置的示例。
图3示出了被考虑用于空间Merge候选的冗余校验的候选对的示例。
图4示出了N×2N和2N×N分区的第二PU的位置的示例。
图5示出了用于时间Merge候选的运动矢量缩放的说明的示例。
图6示出了时间Merge候选C0和C1的候选位置的示例。
图7示出了组合的双向预测Merge候选的示例。
图8示出了运动矢量预测候选的推导过程的示例。
图9示出了空间运动矢量候选的运动矢量缩放的示例性说明。
图10示出了用于4参数仿射模型(左)和6参数仿射模型(右)的示例性简化仿射运动模型。
图11示出了每个子块的仿射运动向量场的示例。
图12示出了仿射Merge模式的示例候选位置。
图13示出了修改的Merge列表构建过程的示例。
图14示出了基于三角形分割的帧间预测的示例。
图15示出了应用第一加权因子组的CU的示例。
图16示出了运动矢量存储的示例。
图17示出了最终运动矢量表达(UMVE)搜索处理的示例。
图18示出了UMVE搜索点的示例。
图19示出了在DMVR中的列表0和列表1之间镜像的MVD(0,1)的示例。
图20示出了可以在一次迭代中检查的MV。
图21是帧内块复制的示例。
图22是视频处理装置的示例的框图。
图23是用于视频处理方法的示例的流程图。
图24是可以实现本公开的技术的示例性视频处理系统的框图。
图25是视觉媒体处理方法的示例的流程图。
图26是视觉媒体处理方法的示例的流程图。
图27是视觉媒体处理方法的示例的流程图。
图28是视觉媒体处理方法的示例的流程图。
图29是视觉媒体处理方法的示例的流程图。
具体实施方式
本文提供了图片或视频比特流解码器可以使用的各种技术,以提高解压缩或解码数字视频或图片的质量。为简洁起见,术语“视频”在本文中用于包括一连串图片(传统上称为视频)和单个图像。此外,视频编码器还可以在编码处理中实现这些技术,以便重建用于进一步编码的解码帧。
在本文中,使用章节标题用于提高可读性,实施例和技术不限于相应的章节。这样,一个章节的实施例可以与其他章节的实施例组合。
1.概述
本文涉及视频编解码技术。具体地,涉及包括三角预测模式的Merge编解码。该技术可以应用于现有的视频编解码标准,例如HEVC,或要最终确定的(通用视频编解码)标准。该技术也可以适用于未来的视频编解码标准或视频编解码器。
2.初步讨论
视频编解码标准主要是通过开发著名的ITU-T和ISO/IEC标准而发展起来的。ITU-T制定了H.261和H.263,ISO/IEC制定了MPEG-1和MPEG-4视频,并且两个组织联合制定了H.262/MPEG-2视频和H.264/MPEG-4高级视频编解码(AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中采用了时域预测加变换编解码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年共同成立了联合视频探索小组(JVET)。此后,JVET采用了许多新的方法,并将其应用于名为联合探索模型(JEM)的参考软件。2018年4月,VCEG(Q6/16)与ISO/IEC JTC1 SC29/WG11(MPEG)之间成立联合视频专家团队(JVET),致力于开发VVC标准,目标是比HEVC降低50%的比特率。
最新版本的VVC草案,即通用视频编解码(草案5)可以在以下地址找到:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v7.zip
被称为VTM的VVC的最新参考软件可以在以下地址找到:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0
2.1HEVC/H.265中的帧间预测
对于帧间编解码的编解码单元(CU),可以根据分割模式用一个预测单元(PU)或2个PU进行编解码。每个帧间预测的PU具有用于一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知两个参考图片列表之一的使用。运动矢量可以显式地编解码为相对于预测子(predictor)的增量。
当CU以跳过模式编解码时,一个PU与该CU相关联,并且不存在明显的残差系数,不存在编解码的运动矢量增量或参考图片索引。指定Merge模式,由此从包括空间和时间候选的相邻PU中获得当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅适用于跳过模式。Merge模式的替代方法是运动参数的显式发送,其中运动矢量(更准确地说,与运动矢量预测子相比的运动矢量差(MVD))、每个参考图片列表的对应参考图片索引、以及参考图片列表的使用显式地信令通知给每个PU。在本公开中,这种模式被称为高级运动矢量预测(AMVP)。
当信令指示将使用两个参考图片列表之一时,从一个样点块中产生PU。这称为“单向预测”。单向预测适用于P条带和B条带。
当信令指示两个参考图片列表都将被使用时,PU由两个样点块产生。这称为“双向预测”。双向预测仅适用于B条带。
下文描述了在HEVC中规定的帧间预测模式的细节。将从Merge模式开始说明。
2.1.1参考图片列表
在HEVC中,术语帧间预测用于表示从除当前解码图片之外的参考图片的数据元素(例如,样点值或运动矢量)中导出的预测。如在H.264/AVC中一样,可以从多个参考图片中预测图片。用于帧间预测的参考图片被组织在一个或多个参考图片列表中。参考索引标识应使用列表中的哪些参考图片来创建预测信号。
单个参考图片列表,列表0,用于P条带,两个参考图片列表(列表0和列表1)用于B条带。应当注意的是,就拍摄/显示顺序而言,列表0/1中包含的参考图片可能来自过去和将来的图片。
2.1.2 Merge模式
2.1.2.1推导Merge模式的候选
当使用Merge模式预测PU时,从比特流中解析出指向Merge候选列表中的条目的索引,并将其用于检索运动信息。HEVC标准中规定了此列表的构建,并且可以根据以下步骤顺序进行概述:
·步骤1:推导初始候选
ο步骤1.1:推导空间候选
ο步骤1.2:空间候选的冗余校验
ο步骤1.3:推导时间候选
·步骤2:插入额外候选
ο创建双向预测候选
ο插入零运动候选
图1中也示意性地示出了这些步骤。对于空间Merge候选的推导,在位于五个不同位置的候选中最多选择四个Merge候选。对于时间Merge候选的推导,在两个候选中最多选择一个Merge候选。由于在解码器中假定每个PU的候选的数量恒定,所以当从步骤1中获得的候选的数量没有达到条带报头中信令通知的Merge候选的最大数量(MaxNumMergeCand)时,会生成额外候选。由于候选的数量是恒定的,因此最佳Merge候选的索引使用截断的一元二值化(TU)进行编码。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,其与2N×2N预测单元的Merge候选列表相同。
在下文中,详细描述了与前述步骤相关联的操作。
2.1.2.2推导空间候选
在空间Merge候选的推导中,在位于图2所示位置的候选中最多选择四个Merge候选。推导顺序为A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0处的任何PU都不可用(例如,因为其属于另一个条带或片)或是帧内编解码时,才考虑位置B2。在添加了位置A1上的候选之后,对剩余的候选的添加进行冗余校验,以确保将具有相同运动信息的候选从列表中排除,从而提高编解码效率。为了降低计算复杂度,在提到的冗余校验中并未考虑所有可能的候选对。相反,仅考虑图3中箭头连接的对,并且仅当用于冗余校验的相应候选不具有相同运动信息时,才将候选添加到列表中。重复运动信息的另一个来源是与不同于2N×2N的分区相关联的“第二PU”。例如,图4分别示出了在N×2N和2N×N的情况下的第二PU。在当前PU被分割为N×2N时,不考虑将位置A1的候选用于列表构建。实际上,添加该候选将导致具有相同运动信息的两个预测单元,这对于在编解码单元中仅具有一个PU来说是多余的。类似地,在当前PU被分割为2N×N时,不考虑位置B1
2.1.2.3推导时间候选
在此步骤中,只有一个候选被添加到列表中。特别是,在该时间Merge候选的推导中,基于并置图片中的并置PU来推导缩放的运动矢量。用于时间Merge候选的缩放的运动矢量如图5中的虚线所示,该运动矢量是使用POC距离tb和td从并置PU的运动矢量缩放得到的,其中tb被定义为当前图片的参考图片和当前图片之间的POC差,td被定义为并置图片的参考图片和并置图片之间的POC差异。将时间Merge候选的参考图片索引设置为零。HEVC规范[1]中描述了缩放过程的具体实现。对于B条带,获得两个运动矢量,一个运动矢量用于参考图片列表0,另一个运动矢量用于参考图片列表1,并将其组合以得到双向预测Merge候选。
2.1.2.4并置图片和并置PU
当启用TMVP(即slice_temporal_mvp_enabled_flag等于1)时,表示并置图片的变量ColPic推导如下:
–如果当前条带是B条带,并且信令通知的collocated_from_l0_flag等于0,则将ColPic设置为等于RefPicList1[collocated_ref_idx]。
–否则(slice_type等于B且collocated_from_l0_flag等于1,或者
slice_type等于P),将ColPic设置为等于RefPicList0
[collocated_ref_idx]。
其中,collocated_ref_idx和collocated_from_l0_flag是可以在条带报头中信令通知的两个语法元素。
在属于参考帧的并置PU(Y)中,在候选C0和C1之间选择时间候选的位置,如图6所示。如果位置C0处的PU不可用、是帧内编解码的、或在当前编解码树单元(CTU,又称LCU,最大编解码单元)行的外部,则使用位置C1。否则,在时间Merge候选的推导中使用位置C0
相关语法元素描述如下:
7.3.6.1通用条带段报头语法
Figure BDA0003468650200000071
Figure BDA0003468650200000081
2.1.2.5推导TMVP候选的MV
更具体地,执行以下步骤以便推导出TMVP候选:
1)设置参考图片列表X=0,目标参考图片为列表X中索引等于0的参考图片(即,curr_ref)。调用并置运动矢量的推导过程,以获得指向curr_ref的列表X的MV。
2)如果当前条带是B条带,则设置参考图片列表X=1,目标参考图片为列表X中索引等于0的参考图片(即,curr_ref)。调用并置运动矢量的推导过程,以获得指向curr_ref的列表X的MV。
在下一个小节2.1.2.5.1中描述了并置运动矢量的推导过程。
2.1.2.5.1并置运动矢量的推导过程
对于并置块,可以使用单向预测或双向预测对其进行帧内或帧间编解码。如果是帧内编解码,则TMVP候选被设置为不可用。
如果是来自列表A的单向预测,则将列表A的运动矢量缩放到目标参考图片列表X。
如果是双向预测并且目标参考图片列表为X,则列表A的运动矢量缩放为目标参考图片列表X,并且根据以下规则确定A:
–如果没有参考图片具有比当前图片更大的POC值,则将A设置为等于X。
–否则,将A设置为等于collocated_from_l0_flag。
JCTVC-W1005-v4中的相关工作草案描述如下:
8.5.3.2.9并置运动矢量的推导过程
该过程的输入是:
–变量currPb,指示当前预测块,
–变量colPb,指示由ColPic指示的并置图片内的并置预测块,
–亮度位置(xColPb,yColPb),指示ColPic指示的并置图片的左上亮度样点相对于colPb指示的并置亮度预测块的左上样点的相对位置,
–参考索引refIdxLX,其中X为0或1。
该过程的输出是:
–运动矢量预测mvLXCol,
–可用性标志availableFlagLXCol。
变量currPic指示当前图片。
将数组predFlagL0Col[x][y]、mvL0Col[x][y]和refIdxL0Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL0[x][y]、MvL0[x][y]、以及RefIdxL0[x][y],并将数组predFlagL1Col[x][y]、mvL1Col[x][y]和refIdxL1Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL1[x][y]、MvL1[x][y]和RefIdxL1[x][y]。
变量mvLXCol和availableFlagLXCol推导如下:
–如果以帧内预测模式对colPb进行编解码,则mvLXCol的两个分量均设置为等于0,availableFlagLXCol设置为等于0。
–否则,运动矢量mvCol、参考索引refIdxCol和参考列表标识符listCol推导如下:
–如果predFlagL0Col[xColPb][yColPb]等于0,则将mvCol、refIdxCol和listCol分别设置为等于mvL1Col[xColPb][yColPb]、refIdxL1Col[xColPb][yColPb]和L1。
–否则,如果predFlagL0Col[xColPb][yColPb]等于1并且predFlagL1Col[xColPb][yColPb]等于0,则将mvCol、refIdxCol和listCol设置为等于mvL0Col[xColPb][yColPb]、refIdxL0Col[xColPb][yColPb]和L0。
–否则,(predFlagL0Col[xColPb][yColPb]等于1并且
predFlagL1Col[xColPb][yColPb]等于1),进行以下赋值:
–如果NoBackwardPredFlag等于1,则将mvCol、refIdxCol和listCol分别设置为等于mvLXCol[xColPb][yColPb]、refIdxLXCol[xColPb][yColPb]和LX。
–否则,将mvCol、refIdxCol和listCol分别设置为等于mvLNCol[xColPb][yColPb]、refIdxLNCol[xColPb][yColPb]和LN,其中N是collocated_from_l0_flag的值。
并且,mvLXCol和availableFlagLXCol推导如下:
–如果LongTermRefPic(currPic、currPb、refIdxLX、LX)不等于LongTermRefPic(ColPic、colPb、refIdxCol、listCol),则将mvLXCol的两个分量均设置为0,并且将availableFlagLXCol设置为0。
–否则,变量availableFlagLXCol设置为等于1,将refPicListCol[refIdxCol]设置为在由ColPic指示的并置图片中包含预测块colPb的条带的参考图片列表listCol中具有参考索引refIdxCol的图片,并且以下适用:
colPocDiff=DiffPicOrderCnt(ColPic,refPicListCol[refIdxCol]) (2-1)
currPocDiff=DiffPicOrderCnt(currPic,RefPicListX[refIdxLX]) (2-2)
–如果RefPicListX[refIdxLX]是长期参考图片,或者colPocDiff等于currPocDiff,则mvLXCol推导如下:
mvLXCol=mvCol (2-3)
–否则,将mvLXCol推导为运动矢量mvCol的缩放版本,如下所示:
tx=(16384+(Abs(td)>>1))/td (2-4)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6)(2-5)
mvLXCol=Clip3(-32768,32767,Sign(distScaleFactor*mvCol)*((Abs(distScaleFactor*mvCol)+127)>>8)) (2-6)
其中,td和tb推导如下:
td=Clip3(-128,127,colPocDiff) (2-7)
tb=Clip3(-128,127,currPocDiff) (2-7)
NoBackwardPredFlag的定义是:
变量NoBackwardPredFlag推导如下:
–如果当前条带的RefPicList0或RefPicList1中的每个图片aPic的DiffPicOrderCnt(aPic,CurrPic)小于或等于0,则将NoBackwardPredFlag设置为等于1。
–否则,将NoBackwardPredFlag设置为等于0。
2.1.2.6插入额外候选
除了空间和时间Merge候选之外,还有两种额外类型的Merge候选:组合双向预测Merge候选和零Merge候选。通过利用空间和时间Merge候选来生成组合双向预测Merge候选。组合双向预测Merge候选仅用于B条带。通过组合初始候选的第一参考图片列表运动参数和另一个候选的第二参考图片列表运动参数来生成组合双向预测候选。如果这两个元组(tuples)提供不同的运动假设,则它们将形成新的双向预测候选。作为一个示例,图7示出了使用原始列表(左侧)中具有mvL0和refIdxL0或mvL1和refIdxL1的两个候选来创建添加到最终列表(右侧)中的组合双向预测Merge候选的情况。[1]中定义了许多有关组合的规则,这些规则被认为可以生成这些额外的Merge候选。
插入零运动候选以填充Merge候选列表中的其余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空间位移和参考图片索引,该参考图片索引从零开始,并且每次将新的零运动候选添加到列表时都会增加。最后,不对这些候选执行冗余校验。
2.1.3 AMVP
AMVP利用运动矢量与相邻PU的时空相关性,其被用于运动参数的显式发送。对于每个参考图片列表,通过首先检查左上侧时间上相邻的PU位置的可用性,去除冗余候选并添加零矢量以使候选列表为恒定长度,来构建运动矢量候选列表。然后,编码器可以从候选列表中选择最佳预测子,并发送指示所选候选的相应索引。与Merge索引信令类似,最佳运动矢量候选的索引使用截断的一元码进行编码。在这种情况下,要编码的最大值是2(参见图8)。在以下各章节中,详细描述了有关运动矢量预测候选的推导过程。
2.1.3.1推导AMVP候选
图8概述了运动矢量预测候选的推导过程。
在运动矢量预测中,考虑了两种类型的运动矢量候选:空间运动矢量候选和时间运动矢量候选。对于空间运动矢量候选的推导,基于位于如图2所示的五个不同位置中的每个PU的运动矢量最终推导两个运动矢量候选。
对于时间运动矢量候选的推导,从基于不同的两个并置位置得到的两个候选中选择一个运动矢量候选。在制作时空候选的第一个列表后,删除列表中重复的运动矢量候选。如果潜在候选的数量大于两个,则从列表中删除其关联的参考图片列表中的参考图片索引大于1的运动矢量候选。如果时空运动矢量候选的数量小于两个,则将额外的零运动矢量候选添加到列表中。
2.1.3.2空间运动矢量候选
在空间运动矢量候选的推导中,从位于图2所示位置的PU中导出的五个潜在候选中最多考虑两个候选,这些位置与运动merge的位置相同。当前PU左侧的推导顺序定义为A0、A1,缩放的A0、缩放的A1。当前PU的上方的推导顺序定义为B0、B1、B2、缩放的B0、缩放的B1、缩放的B2。因此,对于每一侧,有四种情况可用作运动矢量候选,其中两种情况不需要使用空间缩放,而两种情况则使用空间缩放。四种不同的情况概述如下。
·无空间缩放
–(1)参考图片列表相同,且参考图片索引相同(POC相同)
–(2)参考图片列表不同,但参考图片相同(POC相同)
·空间缩放
–(3)参考图片列表相同,但参考图片不同(POC不同)
–(4)参考图片列表不同,且参考图片不同(POC不同)
首先检查无空间缩放的情况,然后再进行空间缩放。当相邻PU的参考图片与当前PU的参考图片之间的POC不同时,不管参考图片列表如何,都考虑空间缩放。如果左侧候选的所有PU都不可用或是帧内编解码的,则允许对上方运动矢量进行缩放以帮助左侧和上方MV候选的平行推导。否则,不允许对上方运动矢量进行空间缩放。
在空间缩放过程中,以与时间缩放类似的方式缩放相邻PU的运动矢量,如图9所示。主要区别在于,给出了当前PU的参考图片列表和索引作为输入;实际缩放过程与时间缩放过程相同。
2.1.3.3时间运动矢量候选
除了参考图片索引的推导之外,用于时间Merge候选的推导的所有过程都与用于空间运动矢量候选的推导的过程相同(见图6)。参考图片索引被信令通知给解码器。
2.2 VVC中的帧间预测方法
有几种用于帧间预测改进的新编解码工具,例如,用于信令通知MVD的自适应运动矢量差分辨率(AMVR)、使用运动矢量差(MMVD)的Merge、三角预测模式(TPM)、组合帧内帧间预测(CIIP)、高级TMVP(ATMVP,又称SbTMVP)、仿射预测模式、广义双向预测(GBI)、解码器侧运动矢量细化(DMVR)和双向光流(BIO,又称BDOF)。
VVC中支持三种不同的Merge列表构建过程:
1)子块Merge候选列表:其包括ATMVP和仿射Merge候选。仿射模式和ATMVP模式共享一个Merge列表构建过程。这里,可以按顺序添加ATMVP和仿射Merge候选。在条带报头中信令通知子块Merge列表的大小,最大值为5。
2)常规Merge列表:对于帧间编解码的块,共享一个Merge列表构建过程。这里,可以按顺序插入空间/时间Merge候选、HMVP、成对Merge候选,以及零运动候选。在条带报头中信令通知常规Merge列表的大小,最大值为6。MMVD、TPM、CIIP依赖于常规Merge列表。
3)IBC Merge列表:以与常规Merge列表类似的方式完成。
类似地,VVC中支持三个AMVP列表:
1)仿射AMVP候选列表
2)常规AMVP候选列表
3)IBC AMVP候选列表:由于JVET-N0843的采纳,因此与IBC Merge列表的构建过程相同
2.2.1 VVC中的编解码块结构
在VVC中,采用四叉树/二叉树/三叉树(QT/BT/TT)结构将图片划分为正方形块或矩形块。
除了QT/BT/TT,在VVC中还为I帧采用了单独的树(又称为双编解码树)。对于单独的树,针对亮度分量和色度分量分别信令通知编解码块结构。
另外,除了用几种特定编解码方法编解码的块(例如,其中PU等于TU但小于CU的帧内子分割预测,以及,其中PU等于CU但TU小于PU的帧间编解码块的子块变换),将CU设置为等于PU和TU。
2.2.2仿射预测模式
在HEVC中,仅将平移运动模型应用于运动补偿预测(MCP)。但在现实世界中,有多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在VVC中,简化的仿射变换运动补偿预测被应用于4参数仿射模型和6参数仿射模型。如图10所示,通过用于4参数仿射模型的两个控制点运动矢量(CPMV)和用于6参数仿射模型的三个CPMV来描述块的仿射运动场。
块的运动向量场(MVF)分别由以下方程式描述,方程(1)中是4参数仿射模型(其中,4参数定义为变量a、b、e和f),方程(2)中是6参数仿射模型(其中,6参数定义为变量a、b、c、d、e和f):
Figure BDA0003468650200000141
Figure BDA0003468650200000142
其中,(mvh 0,mvh 0)是左上角控制点的运动矢量,(mvh 1,mvh 1)是右上角控制点的运动矢量,(mvh 2,mvh 2)是左下角控制点的运动矢量,所有这三个运动矢量都称为控制点运动矢量(CPMV),(x,y)表示相对于当前块内左上样点的代表点的坐标,以及(mvh(x,y),mvv(x,y))是为位于(x,y)的样点推导出的运动矢量。CP运动矢量可以信令通知(如在仿射AMVP模式中那样)或被动态(on-the-fly)推导出(如在仿射Merge模式中那样)。w和h是当前块的宽度和高度。实际上,除法是通过带有舍入的向右移位操作来实现的。在VTM中,代表点被定义为子块的中心位置,例如,当相对于当前块的左上样点的子块的左上坐标为(xs,ys),代表点的坐标被定义为(xs+2,ys+2)。对于每个子块(即VTM中的4x4),代表点用于推导整个子块的运动矢量。
为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。为了推导出每个M×N(在当前VVC中,M和N都设置为4)子块的运动矢量,如图11所示,根据方程(1)和(2)计算每个子块的中心样点的运动矢量,并四舍五入至1/16分数精度。然后,将应用1/16像素的运动补偿插值滤波器来通过导出的运动矢量生成每个子块的预测。仿射模式引入了1/16像素的插值滤波器。
在MCP之后,将每个子块的高精度运动矢量四舍五入并保存为与正常运动矢量相同的精度。
2.2.3整块Merge
2.2.3.1平移的常规Merge模式的Merge列表构建
2.2.3.1.1基于历史的运动矢量预测(HMVP)
与Merge列表设计不同,在VVC中,采用了基于历史的运动矢量预测(HMVP)方法。
在HMVP中,存储了先前编解码的运动信息。将先前编解码的块的运动信息定义为HMVP候选。多个HMVP候选存储在一个名为HMVP表的表中,并且该表在动态编码/解码过程中被维护。当开始对新的片/LCU行/条带进行编码/解码时,将清空HMVP表。每当存在帧间编解码块并且非子块、非TPM模式时,关联的运动信息就会作为新的HMVP候选被添加该表的最后一项。总体编解码流程在图12中示出。
2.2.3.1.2常规Merge列表构建过程
常规Merge列表(用于平移运动)的构建可以根据以下步骤顺序进行概述:
·步骤1:推导空间候选
·步骤2:插入HMVP候选
·步骤3:插入成对平均候选
·步骤4:默认运动候选
HMVP候选既可以在AMVP候选列表构建过程中使用,又可以在Merge候选列表构建过程中使用。图13示出了修改的Merge候选列表构建过程(以点状图案显示)。当在插入TMVP候选之后Merge候选列表未满时,可以利用存储在HMVP表中的HMVP候选来填充Merge候选列表。考虑到在运动信息方面通常一个块与最近的相邻块具有较高的相关性,所以以索引的降序插入表中的HMVP候选。首先,将表中的最后一个条目添加到列表中,而最后添加第一个条目。类似地,对HMVP候选去除冗余。一旦可用Merge候选的总数量达到允许信令通知的Merge候选的最大数量,则Merge候选列表构建过程终止。
应注意的是,所有的空间/时间/HMVP候选都应当以非IBC模式进行编解码。否则,不允许将其添加到常规Merge候选列表中。
HMVP表包含多达5个常规运动候选,并且每个候选都是唯一的。
2.2.3.1.2.1修剪过程(Pruning Processes)
仅当用于冗余校验的相应候选具有不同的运动信息时,才将候选添加到列表中。这种比较过程称为修剪过程。
空间候选之间的修剪过程取决于当前块的TPM的使用。
当不使用TPM模式对当前块进行编解码(例如,常规Merge、MMVD、CIIP)时,利用空间Merge候选的HEVC修剪过程(即五个修剪)。
2.2.4三角预测模式(TPM)
在VVC中,支持三角分割模式用于帧间预测。三角分割模式仅适用于8×8或更大且以Merge模式而非MMVD或CIIP模式编解码的CU。对于满足这些条件的CU,信令通知CU级别的标志,以指示是否应用了三角分割模式。
当使用此模式时,使用对角线分割或反对角线分割,将CU均分为两个三角形分区,如图14所示。CU中的每个三角形分区都是使用自己的运动进行帧间预测的;每个分区仅允许单向预测,即,每个分区具有一个运动矢量和一个参考索引。应用单向预测运动约束以确保与传统双向预测相同,每个CU仅需要两个运动补偿预测。
如果CU级别标志指示使用三角分割模式对当前CU进行编解码,则进一步信令通知表示三角形分区的方向的标志(对角线或反对角线)和两个Merge索引(每个分区一个Merge索引)。在预测每个三角形分区后,使用具有自适应权重的混合处理来调整沿对角线或反对角线边缘的样点值。这是整个CU的预测信号,并且像其他预测模式一样,变换和量化过程将应用于整个CU。最后,使用三角分割模式预测的CU的运动场存储在4×4单元中。
常规Merge候选列表被重新用于三角分割Merge预测,而没有额外的运动矢量修剪。对于常规Merge候选列表中的每个Merge候选,仅将L0或L1运动矢量中的一个用于三角预测。另外,基于其Merge索引奇偶校验,确定选择L0与L1运动矢量的相对顺序。通过此方案,可以直接使用常规Merge列表。
2.2.4.1 TPM的Merge列表构建过程
基本上,如JVET-N0340中所建议的,应用常规Merge列表构建过程。但是,添加了一些修改。
具体地,适用以下方法:
1)如何执行修剪过程取决于当前块的TPM使用情况。
–如果当前块未用TPM编解码,则调用应用于空间Merge候选的HEVC 5修剪。
–否则(如果当前块用TPM编解码),在添加新的空间Merge候选时应用完整修剪。也就是说,将B1与A1进行比较;将B0与A1和B1进行比较;将A0与A1、B1和B0进行比较;将B2与A1、B1、A0和B0进行比较。
2)是否检查来自B2的运动信息的条件取决于当前块的TPM使用情况。
–如果当前块未用TPM编解码,则仅在检查B2之前具有少于4个空间Merge候选时访问和检查B2
–否则(如果当前块用TPM编解码),则在添加B2之前,始终访问和检查B2,无论有多少可用空间Merge候选。
2.2.4.2自适应加权过程
在预测每个三角形预测单元之后,对两个三角形预测单元之间的对角线边缘进行自适应加权处理,以得出整个CU的最终预测。两个加权因子组定义如下:
·第一加权因子组:{7/8、6/8、4/8、2/8、1/8}和{7/8、4/8、1/8}分别用于亮度样点和色度样点;
·第二个加权因子组:{7/8、6/8、5/8、4/8、3/8、2/8、1/8}和{6/8、4/8、2/8}分别用于亮度样点和色度样点。
基于两个三角形预测单元的运动矢量的比较来选择加权因子组。如果满足以下任一条件,则使用第二加权因子组:
–两个三角形预测单元的参考图片互不相同。
–两个运动矢量的水平值之差的绝对值大于16个像素。
–两个运动矢量的垂直值之差的绝对值大于16个像素。
否则,使用第一加权因子组。图15中示出了一个示例。
2.2.4.3运动矢量的存储
三角形预测单元的运动矢量(图16中的Mv1和Mv2)存储在4×4网格中。对于每个4×4网格,根据CU中4×4网格的位置,或存储单向预测矢量,或双向预测运动矢量。如图16所示,对于位于非加权区域(即,不位于对角线边缘)中的4×4网格,存储单向预测运动矢量,或者是Mv1,或者是Mv2。另一方面,对于位于加权区域中的4×4网格,存储双向预测运动矢量。根据以下规则,从Mv1和Mv2中推导双向预测运动矢量:
1)在Mv1和Mv2具有来自不同方向(L0或L1)的运动矢量的情况下,只需将Mv1和Mv2简单组合起来即可形成双向预测运动矢量。
2)如果Mv1和Mv2都来自相同的L0(或L1)方向,
–如果Mv2的参考图片与L1(或L0)参考图片列表中的图片相同,则将Mv2缩放到该图片。将Mv1和缩放后的Mv2组合形成双向预测运动矢量。
–如果Mv1的参考图片与L1(或L0)参考图片列表中的图片相同,则将Mv1缩放到该图片。将缩放后的Mv1和Mv2组合形成双向预测运动矢量。
–否则,仅为加权区域存储Mv1。
2.2.4.4 Merge模式的语法表、语义和解码过程
7.3.5.1通用条带报头语法
Figure BDA0003468650200000191
Figure BDA0003468650200000201
7.3.7.5编解码单元语法
Figure BDA0003468650200000202
Figure BDA0003468650200000211
7.3.7.7 Merge数据语法
Figure BDA0003468650200000212
Figure BDA0003468650200000221
7.4.6.1通用条带报头语义
six_minus_max_num_merge_cand规定了从6中减去条带中支持的Merging运动矢量预测(MVP)候选的最大数量。Merging MVP候选的最大数量推导如下:
MaxNumMergeCand=6-six_minus_max_num_merge_cand (7-57)
MaxNumMergeCand的值应在1到6的范围内(包括1和6)。
five_minus_max_num_subblock_merge_cand规定了从5中减去条带中支持的基于子块的Merging运动矢量预测(MVP)候选的最大数量。当five_minus_max_num_subblock_merge_cand不存在时,推断其等于5-sps_sbtmvp_enabled_flag。基于子块的Merging MVP候选的最大数量MaxNumSubblockMergeCand推导如下:
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand (7-58)
MaxNumSubblockMergeCand的值应在0到5的范围内(包括0和5)。
7.4.8.5编解码单元语义
pred_mode_flag等于0指示当前编解码单元是以帧间预测模式进行编解码的。pred_mode_flag等于1指示当前编解码单元是以帧内预测模式进行编解码的。
当pred_mode_flag不存在时,推断如下:
–如果cbWidth等于4且cbHeight等于4,则推断pred_mode_flag等于1。
–否则,在解码I条带时,推断pred_mode_flag等于1;在解码P或B条带时,推断pred_mode_flag等于0。
对于x=x0..x0+cbWidth–1,并且y=y0..y0+cbHeight-1,变量CuPredMode[x][y]推导如下:
–如果pred_mode_flag等于0,则将CuPredMode[x][y]设置为等于MODE_INTER。
–否则(pred_mode_flag等于1),将CuPredMode[x][y]设置为等于MODE_INTRA。
pred_mode_ibc_flag等于1指示当前编解码单元是在IBC预测模式下编解码的。pred_mode_ibc_flag等于0指示当前编解码单元未在IBC预测模式下编解码。
当pred_mode_ibc_flag不存在时,推断如下:
–如果cu_skip_flag[x0][y0]等于1,cbWidth等于4,并且cbHeight等于4,则推断pred_mode_ibc_flag等于1。
–否则,如果cbWidth和cbHeight都等于128,则推断pred_mode_ibc_flag等于0。
–否则,当解码I条带时,推断pred_mode_ibc_flag等于sps_ibc_enabled_flag的值;在解码P或B条带时,推断pred_mode_ibc_flag等于0。
当pred_mode_ibc_flag等于1时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,将变量CuPredMode[x][y]设置为等于MODE_IBC。
general_merge_flag[x0][y0]指示是否从相邻的帧间预测分区中推断出当前编解码单元的帧间预测参数。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当general_merge_flag[x0][y0]不存在时,推断如下:
–如果cu_skip_flag[x0][y0]等于1,则推断general_merge_flag[x0][y0]等于1。
–否则,推断general_merge_flag[x0][y0]等于0。
mvp_l0_flag[x0][y0]指示list0的运动矢量预测子索引,其中x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当mvp_l0_flag[x0][y0]不存在时,推断其等于0。
mvp_l1_flag[x0][y0]具有与mvp_l0_flag相同的语义,其中l0和list0分别由l1和list1代替。
inter_pred_idc[x0][y0]根据表7-10指示是否将list0、list1或双向预测用于当前编解码单元。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
表7-10帧间预测模式的相关名称
Figure BDA0003468650200000241
当inter_pred_idc[x0][y0]不存在时,推断其等于PRED_L0。
7.4.8.7 Merge数据语义
regular_merge_flag[x0][y0]等于1指示使用常规Merge模式生成当前编解码单元的帧间预测参数。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当regular_merge_flag[x0][y0]不存在时,推断如下:
–如果以下所有条件为真,则推断regular_merge_flag[x0][y0]等于1:
–sps_mmvd_enabled_flag等于0。
–general_merge_flag[x0][y0]等于1。
–cbWidth*cbHeight等于32。
–否则,推断regular_merge_flag[x0][y0]等于0。
mmvd_merge_flag[x0][y0]等于1指示将通过运动矢量差的Merge模式用于生成当前编解码单元的帧间预测参数。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当mmvd_merge_flag[x0][y0]不存在时,推断如下:
–如果以下所有条件为真,则推断mmvd_merge_flag[x0][y0]等于1:
–sps_mmvd_enabled_flag等于1。
–general_merge_flag[x0][y0]等于1。
–cbWidth*cbHeight等于32。
–normal_merge_flag[x0][y0]等于0。
–否则,推断mmvd_merge_flag[x0][y0]等于0。
mmvd_cand_flag[x0][y0]指示是否将Merge候选列表中的第一(0)或第二(1)候选与从mmvd_distance_idx[x0][y0]和mmvd_direction_idx[x0][y0]推导出的运动矢量差一起使用。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当mmvd_cand_flag[x0][y0]不存在时,推断其等于0。
mmvd_distance_idx[x0][y0]指示用于推导出如表7-12所规定的MmvdDistance[x0][y0]的索引。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
表7-12基于mmvd_distance_idx[x0][y0]的MmvdDistance[x0][y0]的规范
Figure BDA0003468650200000251
Figure BDA0003468650200000261
mmvd_direction_idx[x0][y0]指示了用于导出如表7-13所规定的MmvdSign[x0][y0]的索引。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
表7-13基于mmvd_direction_idx[x0][y0]的MmvdSign[x0][y0]的规范
Figure BDA0003468650200000262
Merge加MVD偏移MmvdOffset[x0][y0]的两个分量推导如下:
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0] (7-124)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1] (7-125)
merge_subblock_flag[x0][y0]指示是否从相邻块中推断出当前编解码单元的基于子块的帧间预测参数。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。当merge_subblock_flag[x0][y0]不存在时,则推断其等于0。
merge_subblock_idx[x0][y0]指示基于子块的Merge候选列表的Merge候选索引,其中,x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当merge_subblock_idx[x0][y0]不存在时,推断其等于0。
ciip_flag[x0][y0]指示是否将组合的图片间Merge和图片内预测应用于当前编解码单元。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当ciip_flag[x0][y0]不存在时,推断其等于0。
当ciip_flag[x0][y0]等于1时,变量IntraPredMode[x][y]设置为等于INTRA_PLANAR,其中x=xCb..xCb+cbWidth-1且y=yCb..yCb+cbHeight–1。
变量MergeTriangleFlag[x0][y0]指示在解码B条带时,是否使用基于三角形的运动补偿来生成当前编解码单元的预测样点,其推导如下:
–如果以下所有条件为真,则将MergeTriangleFlag[x0][y0]设置为等于1:
–sps_triangle_enabled_flag等于1。
–slice_type等于B。
–general_merge_flag[x0][y0]等于1。
–MaxNumTriangleMergeCand大于或等于2。
–cbWidth*cbHeight大于或等于64。
–regular_merge_flag[x0][y0]等于0。
–mmvd_merge_flag[x0][y0]等于0。
–merge_subblock_flag[x0][y0]等于0。
–ciip_flag[x0][y0]等于0。
–否则,将MergeTriangleFlag[x0][y0]设置为等于0。
merge_triangle_split_dir[x0][y0]指示Merge三角模式的分割方向。数组索引x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当merge_triangle_split_dir[x0][y0]不存在时,推断其等于0。
merge_triangle_idx0[x0][y0]指示基于三角形的运动补偿候选列表的第一个Merge候选索引,其中,x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当merge_triangle_idx0[x0][y0]不存在时,推断其等于0。
merge_triangle_idx1[x0][y0]指示基于三角形的运动补偿候选列表的第二个Merge候选索引,其中,x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当merge_triangle_idx1[x0][y0]不存在时,推断其等于0。
merge_idx[x0][y0]指示Merge候选列表的Merge候选索引,其中,x0,y0指示所考虑的编解码块的左上亮度样点相对于图片的左上亮度样点的位置(x0,y0)。
当merge_idx[x0][y0]不存在时,推断如下:
–如果mmvd_merge_flag[x0][y0]等于1,则推断merge_idx[x0][y0]等于mmvd_cand_flag[x0][y0]。
–否则(mmvd_merge_flag[x0][y0]等于0),推断merge_idx[x0][y0]等于0。
2.2.4.4.1解码过程
在JVET-N0340中提供的解码过程定义如下:
8.5.2.2 Merge模式下亮度运动矢量的推导过程
仅当general_merge_flag[xCb][yCb]等于1时,才调用该过程,其中,xCb,yCb)指示相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点。
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出是:
–具有1/16分数样点精度的亮度运动矢量mvL0[0][0]和mvL1[0][0],
–参考索引refIdxL0和refIdxL1,
–预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],
–双向预测权重索引bcwIdx,
–Merge候选列表mergeCandList。
将双向预测权重索引bcwIdx设置为等于0。
运动矢量mvL0[0][0]和mvL1[0][0],参考索引refIdxL0和refIdxL1,以及预测使用标志predFlagL0[0][0]和predFlagL1[0][0]通过以下有序步骤推导:
1.调用第8.5.2.3节中规定的从相邻编解码单元获得的空间Merge候选的推导过程,将亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,而输出为:可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2,参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2,预测列表使用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2,运动矢量mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2(其中X为0或1),以及双向预测权重索引bcwIdxA0、bcwIdxA1、bcwIdxB0、bcwIdxB1、bcwIdxB2
2.将时间Merge候选Col的参考索引refIdxLXCol(X为0或1)和双向预测权重索引bcwIdxCol设置为等于0。
3.调用第8.5.2.11节中规定的时间亮度运动矢量预测的推导过程,将亮度位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight和变量refIdxL0Col作为输入,输出是:可用性标志availableFlagL0Col和时间运动矢量mvL0Col。变量availableFlagCol、predFlagL0Col和predFlagL1Col推导如下:
availableFlagCol=availableFlagL0Col (8-263)
predFlagL0Col=availableFlagL0Col (8-264)
predFlagL1Col=0 (8-265)
4.当slice_type等于B时,调用第8.5.2.11节中规定的时间亮度运动矢量预测的推导过程,将亮度位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight和变量refIdxL1Col作为输入,输出是:可用性标志availableFlagL1Col和时间运动矢量mvL1Col。变量availableFlagCol和predFlagL1Col推导如下:
availableFlagCol=availableFlagL0Col||availableFlagL1Col (8-266)
predFlagL1Col=availableFlagL1Col (8-267)
5.Merge候选列表mergeCandList构建如下:
Figure BDA0003468650200000291
Figure BDA0003468650200000301
6.将变量numCurrMergeCand和numOrigMergeCand设置为等于mergeCandList中Merge候选的数量。
7.当numCurrMergeCand小于(MaxNumMergeCand-1)并且NumHmvpCand大于0时,以下适用:
–调用第8.5.2.6节中规定的基于历史的Merge候选的推导过程,将mergeCandList和numCurrMergeCand作为输入,并将修改的mergeCandList和numCurrMergeCand作为输出。
–将numOrigMergeCand设置为等于numCurrMergeCand。
8.当numCurrMergeCand小于MaxNumMergeCand且大于1时,以下适用:
–调用第8.5.2.4节中规定的成对平均Merge候选的推导过程,将mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表使用标志predFlagL0N和predFlagL1N、mergeCandList中每个候选N的运动矢量mvL0N和mvL1N,以及numCurrMergeCand作为输入,并且将输出赋值给mergeCandList、numCurrMergeCand、参考索引refIdxL0avgCand和refIdxL1avgCand、预测列表使用标志predFlagL0avgCand和predFlagL1avgCand,以及添加到mergeCandList中的候选amangCand的运动矢量mvL0avgCand和mvL1avgCand。将添加到mergeCandList中的候选avgCand的双向预测权重索引bcwIdx设置为等于0。
–将numOrigMergeCand设置为等于numCurrMergeCand。
9.调用第8.5.2.5条规定的零运动矢量Merge候选的推导过程,将mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表使用标志predFlagL0N和predFlagL1N、mergeCandList中每个候选N的运动矢量mvL0N和mvL1N,以及numCurrMergeCand作为输入,并且将输出赋值给mergeCandList、numCurrMergeCand、参考索引refIdxL0zeroCandm和refIdxL1zeroCandm、预测列表使用标志predFlagL0zeroCandm和predFlagL1zeroCandm,以及添加到mergeCandList中的每个新候选zeroCandm的运动矢量mvL0zeroCandm和mvL1zeroCandm。将添加到mergeCandList中的每个新候选zeroCandm的双向预测权重索引bcwIdx设置为等于0。将添加的候选的数量numZeroMergeCand设置为等于(numCurrMergeCand-numOrigMergeCand)。当numZeroMergeCand大于0时,m的范围为0到numZeroMergeCand–1(包括0和numZeroMergeCand–1)。
10.进行以下赋值,其中,N为Merge候选列表mergeCandList中位置merge_idx[xCb][yCb]处的候选(N=mergeCandList[merge_idx[xCb][yCb]]),并且X被替换为0或1:
refIdxLX=refIdxLXN (8-269)
predFlagLX[0][0]=predFlagLXN (8-270)
mvLX[0][0][0]=mvLXN[0] (8-271)
mvLX[0][0][1]=mvLXN[1] (8-272)
bcwIdx=bcwIdxN (8-273)
11.当mmvd_merge_flag[xCb][yCb]等于1时,以下适用:
–调用8.5.2.7中规定的Merge运动矢量差的推导过程,将亮度位置(xCb,yCb)、参考索引refIdxL0、refIdxL1、预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0]作为输入,并将运动矢量差mMvdL0和mMvdL1作为输出。
–将X为0和1的运动矢量差mMvdLX添加到Merge运动矢量mvLX中,如下所示:
mvLX[0][0][0]+=mMvdLX[0] (8-274)
mvLX[0][0][1]+=mMvdLX[1] (8-275)
mvLX[0][0][0]=Clip3(-217,217-1,mvLX[0][0][0]) (8-276)
mvLX[0][0][1]=Clip3(-217,217-1,mvLX[0][0][1]) (8-277)
8.5.2.3空间Merge候选的推导过程
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出如下,其中X为0或1:
–相邻编解码单元的可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–相邻编解码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–相邻编解码单元的预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–相邻编解码单元的1/16分数样点精度mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下适用:
–将相邻亮度编解码块内部的亮度位置(xNbA1,yNbA1)设置为等于(xCb-1,yCb+cbHeight-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbA1,yNbA1)作为输入,并将输出赋值给块可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1推导如下:
–如果availableA1等于FALSE,将availableFlagA1设置为等于0,mvLXA1的两个分量都设置为等于0,将refIdxLXA1设置为等于-1,将predFlagLXA1设置为等于0,其中X为0或1,并将gbiIdxA1设置为等于0。
–否则,将availableFlagA1设置为等于1,并进行以下赋值:
mvLXA1=MvLX[xNbA1][yNbA1] (8-294)
refIdxLXA1=RefIdxLX[xNbA1][yNbA1] (8-295)
predFlagLXA1=PredFlagLX[xNbA1][yNbA1] (8-296)
gbiIdxA1=GbiIdx[xNbA1][yNbA1] (8-297)
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB1,yNbB1)设置为等于(xCb+cbWidth-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB1,yNbB1)作为输入,并将输出赋值给块可用性标志availableB1
–变量availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1推导如下:
–如果以下一个或多个条件为真,则将availableFlagB1设置为等于0,mvLXB1的两个分量都设置为等于0,refIdxLXB1设置为等于-1,predFlagLXB1设置为等于0,其中X为0或1,并且将gbiIdxB1设置为等于0:
–availableB1等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的运动矢量和相同的参考索引。
–否则,将availableFlagB1设置为等于1,并进行以下赋值:
mvLXB1=MvLX[xNbB1][yNbB1] (8-298)
refIdxLXB1=RefIdxLX[xNbB1][yNbB1] (8-299)
predFlagLXB1=PredFlagLX[xNbB1][yNbB1] (8-300)
gbiIdxB1=GbiIdx[xNbB1][yNbB1] (8-301)
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB0,yNbB0)作为输入,并将输出赋值给块可用性标志availableB0
–变量availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0推导如下:
–如果以下一个或多个条件为真,则将availableFlagB0设置为等于0,mvLXB0的两个分量都设置为等于0,refIdxLXB0设置为等于-1,predFlagLXB0设置为等于0,其中X为0或1,并且将gbiIdxB0设置为等于0:
–availableB0等于FALSE。
–availableB1等于TRUE,并且亮度位置(xNbB1,yNbB1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引。
–availableA1等于TRUE,亮度位置(xNbA1,yNbA1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–否则,将availableFlagB0设置为等于1,并进行以下赋值:
mvLXB0=MvLX[xNbB0][yNbB0] (8-302)
refIdxLXB0=RefIdxLX[xNbB0][yNbB0] (8-303)
predFlagLXB0=PredFlagLX[xNbB0][yNbB0] (8-304)
gbiIdxB0=GbiIdx[xNbB0][yNbB0] (8-305)
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbA0,yNbA0)设置为等于(xCb-1,yCb+cbWidth)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbA0,yNbA0)作为输入,并将输出赋值给块可用性标志availableA0
–变量availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0推导如下:
–如果以下一个或多个条件为真,则将availableFlagA0设置为等于0,mvLXA0的两个分量都设置为等于0,refIdxLXA0设置为等于-1,predFlagLXA0设置为等于0,其中X为0或1,并且将gbiIdxA0设置为等于0:
–availableA0等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–否则,将availableFlagA0设置为等于1,并进行以下赋值:
mvLXA0=MvLX[xNbA0][yNbA0] (8-306)
refIdxLXA0=RefIdxLX[xNbA0][yNbA0] (8-307)
predFlagLXA0=PredFlagLX[xNbA0][yNbA0] (8-308)
gbiIdxA0=GbiIdx[xNbA0][yNbA0] (8-309)
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB2,yNbB2)设置为等于(xCb-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB2,yNbB2)作为输入,并将输出赋值给块可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2推导如下:
–如果以下一个或多个条件为真,则将availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于-1,predFlagLXB2设置为等于0,其中X为0或1,并且将gbiIdxB2设置为等于0:
–availableB2等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableA0等于TRUE,亮度位置(xNbA0,yNbA0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableFlagA0+availableFlagA1+availableFlagB0+availableFla gB1等于4,并且merge_triangle_flag[xCb][yCb]等于0。
–否则,将availableFlagB2设置为等于1,并进行以下赋值:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
2.2.5 MMVD
在JVET-L0054中,提出了最终运动矢量表达(UMVE,也称为MMVD)。UMVE可通过提出的运动矢量表达方法用于跳过或Merge模式。
UMVE重复使用与VVC中的常规Merge候选列表中包含的Merge候选相同的Merge候选。在Merge候选中,可以选择基本候选,并通过提出的运动矢量表达方法进一步扩展。
UMVE提供了一种新的运动矢量差(MVD)表示方法,其中,使用起点、运动幅度和运动方向来表示MVD。
该提出的技术照原样使用Merge候选列表。但是,只考虑将默认Merge类型(MRG_TYPE_DEFAULT_N)的候选用于UMVE的扩展。
基本候选索引定义了起点。基本候选索引指示列表中的候选中的最佳候选,如下所示。
表4基本候选IDX
Figure BDA0003468650200000371
如果基本候选的数量等于1,则不信令通知基本候选IDX。
距离索引是运动幅度信息。距离索引表示距起点信息的预定义距离。预定义距离如下所示:
表5距离IDX
距离IDX 0 1 2 3 4 5 6 7
像素距离 1/4像素 1/2像素 1像素 2像素 4像素 8像素 16像素 32像素
方向索引表示MVD相对于起点的方向。方向索引可以代表四个方向,如下所示。
表6方向IDX
方向IDX 00 01 10 11
X轴 + N/A N/A
Y轴 N/A N/A +
在发送跳过标志或Merge标志之后立即信令通知UMVE标志。如果跳过标志或Merge标志为真,则解析UMVE标志。如果UMVE标志等于1,则解析UMVE语法。但是,如果不是1,则解析AFFINE标志。如果AFFINE标志等于1,即为AFFINE模式。但是,如果不等于1,则为VTM的跳过/Merge模式解析跳过/Merge索引。
由于UMVE候选,不需要额外的行缓冲区。因为软件的跳过/Merge候选直接用作基本候选,使用输入的UMVE索引,可以在运动补偿之前确定MV的补充。无需为此保留长的行缓冲区。
在当前的常用测试条件下,可以将Merge候选列表中的第一或第二Merge候选选择为基本候选。
UMVE也被称为具有MV差的Merge(MMVD)。
2.2.6组合帧内帧间预测(CIIP)
在JVET-L0100中,提出了多假设预测,其中组合帧内帧间预测是生成多个假设的一种方法。
当将多假设预测应用于改善帧内模式时,多假设预测将一个帧内预测和一个Merge索引预测结合起来。在Merge CU中,信令通知一个标志用于Merge模式以从帧内候选列表中选择帧内模式(当该标志为真时)。对于亮度分量,仅从一种帧内预测模式,即,平面模式中,导出帧内候选列表。由两个相邻块(A1和B1)的编解码模式(帧内或非帧内)确定应用于帧内和帧间预测的预测块的权重。
2.2.7用于基于子块的技术的Merge
建议将除了与非子块Merge候选的常规Merge列表之外的所有子块相关运动候选放入到单独的Merge列表中。
子块相关运动候选被放入的单独的Merge列表被命名为“子块Merge候选列表”。
在一个示例中,子块Merge候选列表包括ATMVP候选和仿射Merge候选。
子块Merge候选列表按以下顺序填充候选:
a.ATMVP候选(可能可用,也可能不可用);
b.仿射Merge列表(包括继承的仿射候选和构建的仿射候选)
c.填充,作为零MV 4参数仿射模型
2.2.7.1.1 ATMVP(又称子块时间运动矢量预测子、SbTMVP)
ATMVP的基本思想是为一个块导出多组时间运动矢量预测子。每个子块分配有一组运动信息。当生成ATMVP Merge候选时,将以8×8级别而不是整个块级别进行运动补偿。
在当前设计中,ATMVP分两步预测CU中子CU的运动矢量,这分别在以下两个小节2.2.7.1.1.1和2.2.7.1.1.2中进行了描述。
2.2.7.1.1.1初始化的运动矢量的推导
用tempMv表示初始化的运动矢量。当块A1可用并且未被帧内编解码(即,以帧间或IBC模式编解码)时,应用以下内容以推导出初始化的运动矢量。
–如果以下所有条件为真,则将tempMv设置为等于列表1中块A1的运动矢量,用mvL1A1表示:
–列表1的参考图片索引可用(不等于-1),并且具有与并置图片相同的POC值(即,DiffPicOrderCnt(ColPic,RefPicList[1][refIdxL1A1])等于0),
–与当前图片相比,所有参考图片的POC均不大于当前图片的POC(即,当前条带的每个参考图片列表中的每个图片aPic的DiffPicOrderCnt(aPic,currPic)均小于或等于0),
–当前条带等于B条带,
–collocated_from_l0_flag等于0。
–否则,如果以下所有条件为真,则将tempMv设置为等于列表0中块A1的运动矢量,用mvL0A1表示:
–列表0的参考图片索引可用(不等于-1),
–具有与并置图片相同的POC值(即,DiffPicOrderCnt(ColPic,RefPicList[0][refIdxL0A1])等于0)。
–否则,将零运动矢量用作初始化的MV。
在具有初始化的运动矢量的条带报头处信令通知的并置图片中,标识相应的块(在必要时,将当前块的中心位置加上四舍五入的MV剪切到特定范围内)。
如果块是帧间编解码的,则转到第二步。否则,将ATMVP候选设置为不可用。
2.2.7.1.1.2子CU运动推导
第二步骤是将当前CU分割为子CU,并从与并置图片中的每个子CU相对应的块中获取每个子CU的运动信息。
如果子CU的相应块以帧间模式编解码,则通过调用用于并置MV的推导过程,利用运动信息来推导当前子CU的最终运动信息,该推导过程与常规TMVP处理的过程没有什么不同。基本上,如果从目标列表X中预测对应的块以用于单向预测或双向预测,则使用运动矢量;否则,如果从列表Y(Y=1-X)预测对应的块以用于单向预测或双向预测,且NoBackwardPredFlag等于1,则使用列表Y的MV。否则,找不到运动候选。
如果由初始化的MV和当前子CU的位置标识的并置图片中的块是帧内或IBC编解码的,或者如上所述找不到运动候选,则进一步应用以下步骤:
将用于提取并置图片Rcol中的运动字段的运动矢量表示为MVcol。为了最小化由于MV缩放所造成的影响,按以下方式选择用于导出MVcol的空间候选列表中的MV:如果候选MV的参考图片是并置图片,则选择该MV并将其用作MVcol,无需任何缩放。否则,选择具有最接近并置图片的参考图片的MV,以导出缩放的MVcol
JVET-N1001中的并置运动矢量推导过程的相关解码过程描述如下,其中与ATMVP有关的部分用粗体和大写字体突出显示:
8.5.2.12并置运动矢量的推导过程
该过程的输入是:
–变量currCb,指示当前编解码块,
–变量colCb,指示由ColPic指示的并置图片内的并置编解码块,
–亮度位置(xColCb,yColCb),指示相对于由ColPic指示的并置图片的左上亮度样点,由colCb指示的并置亮度编解码块的左上样点,
–参考索引refIdxLX,其中X为0或1。
–指示子块时间Merge候选的标志sbFlag。
该过程的输出如下:
–1/16的分数样点精度的运动矢量预测mvLXCol,
–可用性标志availableFlagLXCol。
变量currPic指示当前图片。
将数组predFlagL0Col[x][y]、mvL0Col[x][y]和refIdxL0Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL0[x][y]、MvDmvrL0[x][y]和RefIdxL0[x][y];并将数组predFlagL1Col[x][y]、mvL1Col[x][y]和refIdxL1Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL1[x][y]、MvDmvrL1[x][y]和RefIdxL1[x][y]。
变量mvLXCol和availableFlagLXCol推导如下:
–如果colCb以帧内或IBC预测模式进行编解码,则将mvLXCol的两个分量均设置为等于0,将availableFlagLXCol设置为等于0。
–否则,运动矢量mvCol、参考索引refIdxCol和参考列表标识符listCol的推导如下:
–如果sbFlag等于0,则将availableFlagLXCol设置为1,以下适用:
–如果predFlagL0Col[xColCb][yColCb]等于0,则将mvCol、refIdxCol和listCol分别设置为等于mvL1Col[xColCb][yColCb]、refIdxL1Col[xColCb][yColCb]和L1。
–否则,如果predFlagL0Col[xColCb][yColCb]等于1且predFlagL1Col[xColCb][yColCb]等于0,则将mvCol、refIdxCol和listCol分别设置为等于mvL0Col[xColCb][yColCb]、refIdxL0Col[xColCb][yColCb]和L0。
–否则(predFlagL0Col[xColCb][yColCb]等于1且predFlagL1Col[xColCb][yColCb]等于1),进行以下赋值:
–如果NoBackwardPredFlag等于1,则将mvCol、refIdxCol和listCol分别设置为等于mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]和LX。
–否则,将mvCol、refIdxCol和listCol分别设置为等于mvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]
和LN,其中N为collocated_from_l0_flag的值。
Figure BDA0003468650200000411
Figure BDA0003468650200000421
–当availableFlagLXCol等于TRUE时,mvLXCol和availableFlagLXCol推导如下:
–如果LongTermRefPic(currPic,currCb,refIdxLX,LX)不等于LongTermRefPic(ColPic,colCb,refIdxCol,listCol),则将mvLXCol的两个分量均设置为等于0,并且将availableFlagLXCol设置为等于0。
–否则,将变量availableFlagLXCol设置为等于1,将refPicList[listCol][refIdxCol]设置为在由ColPic指示的并置图片中包含编解码块colCb的条带的参考图片列表listCol中具有参考索引refIdxCol的图片,以下适用:
colPocDiff=DiffPicOrderCnt(ColPic,refPicList[listCol][refIdxCol]) (8-402)
currPocDiff=DiffPicOrderCnt(currPic,RefPicList[X][refIdxLX]) (8-403)
–调用第8.5.2.15节中规定的用于并置运动矢量的时间运动缓冲区压缩过程,将mvCol作为输入,将修改后的mvCol作为输出。
–如果RefPicList[X][refIdxLX]是一个长期参考图片,或者colPocDiff等于currPocDiff,则mvLXCol推导如下:
mvLXCol=mvCol (8-404)
–否则,将mvLXCol导出为运动矢量mvCol的缩放版本,如下所示:
tx=(16384+(Abs(td)>>1))/td (8-405)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (8-406)
mvLXCol=Clip3(-131072,131071,(distScaleFactor*mvCol+128-(distScaleFactor*mvCol>=0))>>8)) (8-407)
其中,td和tb推导如下:
td=Clip3(-128,127,colPocDiff) (8-408)
tb=Clip3(-128,127,currPocDiff) (8-409)
2.2.8常规帧间模式(AMVP)
2.2.8.1 AMVP运动候选列表
与HEVC中的AMVP设计类似,最多可以导出2个AMVP候选。但是,也可以在TMVP候选之后添加HMVP候选。以索引的升序(即,从等于0的索引开始,从最旧的索引开始)开始遍历HMVP表中的HMVP候选。最多可以检查4个HMVP候选,以找到其参考图片是否与目标参考图片相同(即,相同的POC值)。
2.2.8.2 AMVR
在HEVC中,当条带报头中的use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知(在PU的运动矢量与预测运动矢量之间)运动矢量差(MVD)。在VVC中,引入了局部自适应运动矢量分辨率(AMVR)。在VVC中,可以以四分之一亮度样点、整数亮度样点、或四个亮度样点(即1/4个像素、1个像素、4个像素)为单位对MVD进行编解码。MVD分辨率被控制在编解码单元(CU)级别,并且对于具有至少一个非零MVD分量的每个CU,有条件地信令通知MVD分辨率标志。
对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示在CU中是否使用四分之一亮度样点MV精度。当第一标志(等于1)指示不使用四分之一亮度样点MV精度时,信令通知另一个标志来指示是使用整数亮度样点MV精度还是使用四个亮度样点MV精度。
当CU的第一个MVD分辨率标志为零或没有为CU编解码时(表示CU中的所有MVD均为零),四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四个亮度样点的MV精度时,CU的AMVP候选列表中的MVP被四舍五入到相应的精度。
2.2.8.3 JVET-N1001-v2中的对称运动矢量差
在JVET-N1001-v2中,对称运动矢量差(SMVD)用于双向预测中的运动信息编解码。
首先,在条带级别,通过N1001-v2中规定的以下步骤来导出分别指示在SMVD模式下使用的列表0/1的参考图片索引的变量RefIdxSymL0和RefIdxSymL1。当两个变量中的至少一个等于-1时,应禁用SMVD模式。
2.2.9运动信息的细化
2.2.9.1解码器侧运动矢量细化(DMVR)
在双向预测操作中,对于一个块区域的预测,将分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块进行组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,进一步对双向预测的两个运动矢量进行细化。
对于VVC中的DMVR,如图19所示,假设列表0和列表1之间的MVD镜像,并进行双边匹配以细化MV,即,在几个MVD候选中找到最佳的MVD。用MVL0(L0X,L0Y)和MVL1(L1X,L1Y)表示两个参考图片列表的MV。将列表0的(MvdX,MvdY)表示的MVD定义为最佳MVD,它可以使成本函数(例如SAD)最小化。对于SAD函数,其定义了通过列表0参考图片中的运动矢量(L0X+MvdX,L0Y+MvdY)导出的列表0的参考块与通过列表1参考图片中的(L1X-MvdX,L1Y-MvdY)导出的列表1的参考块之间的SAD。
运动矢量细化过程可以迭代两次。在每次迭代中,可以分两步检查最多6个MVD(具有整数像素精度),如图20所示。在第一步骤中,检查MVD(0,0)、(-1,0)、(1,0)、(0,-1)、(0,1)。在第二步骤中,可以选择MVD(-1,-1)、(-1、1)、(1,-1)或(1、1)中的一个来进一步检查。假设函数Sad(x,y)返回MVD(x,y)的SAD值。在第二步中检查的由(MvdX,MvdY)表示的MVD决定如下:
Figure BDA0003468650200000441
Figure BDA0003468650200000451
在第一次迭代中,起点是用信令通知的MV,并且在第二次迭代中,起点是信令通知的MV加上在第一次迭代中选择的最佳MVD。仅当一个参考图片为前一图片而另一参考图片为后一图片并且两个参考图片与当前图片的图片顺序计数距离相同时,才应用DMVR。
为了进一步简化DMVR的过程,JVET-M0147对JEM中的设计提出了几点更改。更具体地说,VTM-4.0(即将发布)采用的DMVR设计具有以下主要特征:
Figure BDA0003468650200000452
当列表0和列表1之间的(0,0)位置SAD小于阈值时,提前终止。
Figure BDA0003468650200000453
当针对某个位置的列表0和列表1之间的SAD为零时,提前终止。
Figure BDA0003468650200000454
DMVR的块尺寸:W*H>=64&&H>=8,其中W和H是块的宽度和高度。
Figure BDA0003468650200000455
对于CU尺寸>16*16的DMVR,将CU分割成多个16×16子块。如果只有CU的宽度或高度大于16,则仅在垂直或水平方向上进行分割。
Figure BDA0003468650200000456
参考块尺寸(W+7)*(H+7)(用于亮度)。
Figure BDA0003468650200000457
25点基于SAD的整数像素搜索(即(+-)2细化搜索范围,单级)。
Figure BDA0003468650200000458
基于双线性插值的DMVR。
Figure BDA0003468650200000459
基于“参数误差曲面方程”的子像素细化。仅当最小SAD成本不等于零且最佳MVD在上一次MV细化迭代中为(0,0)时,才执行此过程。
Figure BDA00034686502000004510
亮度/色度MC w/参考块填充(如果需要)。
Figure BDA00034686502000004511
仅用于MC和TMVP的细化的MV。
2.2.9.1.1 DMVR的使用
当以下所有条件都为真时,可以启用DMVR:
–SPS中的DMVR启用标志(即sps_dmvr_enabled_flag)等于1
–TPM标志、帧间-仿射标志和子块Merge标志(ATMVP或仿射Merge)、MMVD标志均等于0
–Merge标志等于1
–当前块是双向预测的,并且列表1中的当前图片与参考图片之间的POC距离等于列表0中的参考图片与当前图片之间的POC距离
–当前CU的高度大于或等于8
–亮度样点的数量(CU宽度*高度)大于或等于64
2.2.9.1.2基于“参数误差曲面方程”的子像素细化
该方法概述如下:
1.仅当中心位置是给定迭代中的最佳成本位置时,才计算参数误差曲面拟合。
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上以获得子像素精度的细化的MV变化量。
2.3帧内块复制
HEVC屏幕内容编解码扩展(HEVC-SCC)和当前VVC测试模型(VTM-4.0)中采用了帧内块复制(IBC)(又称为当前图片参考)。IBC将运动补偿的概念从帧间编解码扩展到了帧内编解码。如图21所示,当应用IBC时,当前块由同一图片中的参考块预测。在对当前块进行编码或解码之前,必须已经重构了参考块中的样点。尽管IBC对于大多数摄像机拍摄的序列而言效率不高,但对屏幕内容表现出显著的编解码增益。原因是屏幕内容图片中有很多重复的图案,例如图标和文本字符。IBC可以有效地消除这些重复模式之间的冗余。在HEVC-SCC中,如果帧间编解码的编解码单元(CU)选择当前图片作为参考图片,则其可以应用IBC。在这种情况下,MV被重命名为块矢量(BV),并且BV始终具有整数像素精度。为了与主配置文件HEVC兼容,当前图片在解码图片缓冲区(DPB)中被标记为“长期”参考图片。应当注意的是,类似地,在多视点/3D视频编解码标准中,视点间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。可以通过从原始信号中减去参考像素来获得残差。然后可以像在其他编解码模式中一样应用变换和量化。
然而,当参考块在图片之外,或与当前块重叠,或在重构区域之外,或在受某些约束限制的有效区域之外时,部分或全部像素值没有被定义。基本上,有两种解决此类问题的方法。一种是禁止这种情况,例如在比特流一致性上。另一种是对那些未定义的像素值应用填充。以下小节详细描述了解决方案。
2.3.1 VVC测试模型(VTM4.0)中的IBC
在当前的VVC测试模型(即VTM-4.0设计)中,整个参考块应具有当前编解码树单元(CTU),并且不与当前块重叠。因此,不需要填充参考或预测块。将IBC标志编解码为当前CU的预测模式。因此,对于每个CU,总共存在三种预测模式:MODE_INTRA、MODE_INTER和MODE_IBC。
2.3.1.1 IBC Merge模式
在IBC Merge模式中,从比特流中解析指向IBC Merge候选列表中的条目的索引。IBC Merge列表的构建可以根据以下步骤顺序进行概述:
Figure BDA0003468650200000471
步骤1:推导空间候选
Figure BDA0003468650200000472
步骤2:插入HMVP候选
Figure BDA0003468650200000473
步骤3:插入成对平均候选
在空间Merge候选的推导中,如图2所示,在位于A1、B1、B0、A0和B2所示的位置的候选中最多选择四个Merge候选。推导顺序为A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任何PU不可用(例如,因为其属于另一个条带或片)或未使用IBC模式编解码时,才考虑位置B2。在添加位置A1上的候选后,其余候选的插入要进行冗余校验,以确保将具有相同运动信息的候选从列表中排除,从而提高编解码效率。
在插入空间候选之后,如果IBC Merge列表大小仍小于最大IBC Merge列表大小,则可以插入来自HMVP表的IBC候选。插入HMVP候选时执行冗余校验。
最后,将成对平均候选插入IBC Merge列表。
当由Merge候选标识的参考块在图片之外,或者与当前块重叠,或者在重构区域之外,或者在受某些约束限制的有效区域之外时,Merge候选被称为无效Merge候选。
注意,可以将无效Merge候选插入到IBC Merge列表中。
2.3.1.2 IBC AMVP模式
在IBC AMVP模式下,从比特流解析指向IBC AMVP列表中的条目的AMVP索引。IBCAMVP列表的构建可以根据以下步骤顺序进行概述:
Figure BDA0003468650200000481
步骤1:推导空间候选
ο检查A0、A1,直到找到可用的候选。
ο检查B0、B1、B2,直到找到可用的候选。
Figure BDA0003468650200000482
步骤2:插入HMVP候选
Figure BDA0003468650200000483
步骤3:插入零候选
在插入空间候选之后,如果IBC AMVP列表大小仍然小于最大IBCAMVP列表大小,则可以插入来自HMVP表的IBC候选。
最后,将零候选插入到IBC AMVP列表中。
2.3.1.3色度IBC模式
在当前VVC中,在子块级别执行色度IBC模式下的运动补偿。色度块将被分割成若干个子块。每个子块确定相应的亮度块是否具有块矢量以及有效性(如果存在)。当前VTM中存在编码器约束,如果当前色度CU中的所有子块都具有有效的亮度块矢量,则将测试色度IBC模式。例如,对于YUV420视频,色度块为NxM,则并置的亮度区域为2Nx2M。色度块的子块尺寸为2x2。有几个步骤来执行色度MV推导,然后执行块复制过程。
1)色度块将首先被划分为(N>>1)*(M>>1)个子块。
2)坐标为(x,y)的左上样点的每个子块提取对应的亮度块,该亮度块覆盖了坐标为(2x,2y)同一左上样点。
3)编码器检查提取的亮度块的块矢量(bv)。如果满足以下条件之一,则bv被视为无效。
a.相应亮度块的bv不存在。
b.由bv标识的预测块尚未重构。
c.由bv标识的预测块与当前块部分或完全重叠。
4)将子块的色度运动矢量设置为对应的亮度子块的运动矢量。
当所有子块都找到有效的bv时,在编码器处允许IBC模式。
2.3.2 IBC的单个BV列表(在VTM5.0中)
VCC采用JVET-N0843。在JVET-N0843中,IBC中用于Merge模式和AMVP模式的BV预测子将共享一个公共的预测子列表,该列表包含以下元素:
Figure BDA0003468650200000491
2个空间相邻位置(如图2中的A1、B1)
Figure BDA0003468650200000492
5个HMVP条目
Figure BDA0003468650200000493
默认为零矢量
列表中的候选的数量由从条带报头中导出的变量控制。对于Merge模式,最多将使用此列表的前6个条目;对于AMVP模式,将使用该列表的前2个条目。并且该列表符合共享的Merge列表区域要求(在SMR中共享相同的列表)。
除了上述BV预测子候选列表之外,JVET-N0843还提出简化HMVP候选与现有Merge候选(A1、B1)之间的修剪操作。在简化中,将最多进行2次修剪操作,因为其仅将第一个HMVP候选与空间Merge候选进行比较。
3问题
当前的Merge模式设计可能存在以下问题:
1.常规Merge列表的构建过程取决于当前块的TPM使用情况。
a.对于TPM编解码的块,在空间Merge候选之间应用完全修剪。
b.对于非TPM编解码的块,在空间Merge候选之间应用部分修剪。
2.根据当前的设计,所有与Merge相关的工具(包括IBC Merge、常规Merge、MMVD、子块Merge、CIIP、TPM)均由一个命名为general_merge_flag的标志信令通知。但是,有可能当此标志为真时,所有与Merge相关的工具被信令通知,或者被推导为禁用。如何处理这种情况是未知的。另外,不允许关闭Merge模式,也就是说,Merge候选的最大数量应不等于0。但是,对于高吞吐量的编码器/解码器,可能需要强制禁用Merge模式。
3.ATMVP过程的初始化MV的决定取决于条带类型、所有参考图片的POC值、collocated_from_l0_flag等,这会延迟MV的吞吐量。
4.并置MV的推导过程取决于子块技术的使用,例如,常规的TMVP过程或需要附加逻辑的ATMVP过程。
5.对于ATMVP编解码的块中的子CU,甚至其对应的并置块是帧间编解码的,有可能无法从对应的并置块中推导出子CU的运动信息,但会填充其他运动信息。对于编解码效率和吞吐量而言,这种设计都是次优的。
6.HEVC规范基于是构建块还是在不同的CTU行/条带等中定义当前或参考图片中一个相邻块的可用性。但是,在VVC中,已经引入了多种编解码方法。可能需要给出块的可用性的不同定义。
7.JVET-O0545提出通过发送sps_sbt_max_size_64_flag来信令通知最大变换块尺寸的指示。
sps_sbt_max_size_64_flag等于0指示允许子块变换的最大CU宽度和高度为32个亮度样点。sps_sbt_max_size_64_flag等于1指示允许子块变换的最大CU宽度和高度为64个亮度样点。
MaxSbtSize=sps_sbt_max_size_64_flag?64:32 (7 31)
为了支持小于64的最大变换大小(由MaxTransformSize表示),对MaxSbtSize的推导进行了如下修改,
MaxSbtSize=min(MaxTransformSize,sps_sbt_max_size_64_flag?64:32)
8.自适应环路滤波器(ALF)系数被限制在固定范围内。例如:用AlfCoeffC表示的色度ALF滤波系数和用AlfCoeffL表示的亮度ALF滤波系数应在-27到27-1的范围内(包括-27和27-1)。这种限制是基于8位深度的假设。
9.ALF滤波器的预测子的指示被信令通知如下:
Figure BDA0003468650200000501
Figure BDA0003468650200000511
由此可知,这种方法需要解析多个语法元素来确定使用APS设置的滤波器还是固定的滤波器。
10.Merge相关的编解码工具如下所示:
Figure BDA0003468650200000512
Figure BDA0003468650200000521
注意,首先信令通知与子块Merge相关的语法元素;随后信令通知常规Merge模式(如HEVC中一样控制MMVP和常规Merge)的指示。当这种指示为假时,可以进一步信令通知附加比特,以指示其是CIIP模式还是TPM模式。
但是,此类信息未考虑允许的TPM候选的数量小于2的情况。
4技术和实施例的示例
下面详细列出的内容应被视为一般概念的示例。这些实施例不应以狭义的方式解释。此外,可以以任何方式组合这些技术。
表示为A0、A1、B0、B1、B2等的相邻块在图2中示出。
1.用于常规Merge和TPM编解码的块的常规Merge列表构建过程与当前块的编解码方法分离开。
a.在一个示例中,当将TPM应用于一个块时,对空间Merge候选应用部分修剪。
i.在一个示例中,以与用于非TPM Merge编解码的块相同的方式来确定是否将两个候选相互比较。
ii.在一个示例中,将B1与A1比较,将B0与B1比较,将A0与A1比较,将B2与B1和A1比较。
iii.可替代地,即使一个块未使用TPM,也对空间Merge候选应用完全修剪。
iv.可替代地,此外,可以对某些特定的块尺寸应用完全修剪。
1.例如,可以对允许使用TPM的块尺寸进行完全修剪。
2.例如,当块尺寸包含少于M*H个样点(例如16个或32个或64个亮度样点)时,不允许完全修剪。
3.例如,当块的宽度>th1或>=th1和/或块的高度>th2或>=th2时,不允许完全修剪。
b.在一个示例中,当对一个块应用TPM时,在检查B2之前基于可用Merge候选的数量确定是否检查B2
i.可替代地,总是检查B2,而不管用于非TPM Merge编解码的块的可用Merge候选的数量如何。
2.用于识别块以确定ATMVP是否可用的初始化MV可以仅依赖于空间相邻块(例如,A1)的列表X信息,并且将X设置为从其中导出用于时间运动矢量预测的并置图片(例如,collocated_from_l0_flag)。
a.可替代地,根据与当前图片相比所有参考列表中的所有参考图片具有小于当前图片的POC值或者不大于当前图片的POC值来确定X。
i.在一个示例中,如果以上为真,则将X设置为1。否则,将X设置为0。
b.可替代地,如果与空间相邻块(例如,A1)的列表X相关联的参考图片是可用的并且具有与并置图片相同的POC值,则将初始化的MV设置为与空间相邻块的列表X相关联的MV。否则,使用默认的MV(例如,(0,0))。
c.可替代地,可以将存储在HMVP表中的运动信息用作ATMVP中的初始化MV。
i.例如,可以使用存储在HMVP表中的第一可用运动信息。
ii.例如,可以使用存储在与特定参考图片(例如,并置图片)相关联的HMVP表中的第一可用运动信息。
d.可替代地,X是固定数值,例如0或1。
3.用于基于子块的编解码工具和基于非子块的编解码工具的并置MV的推导过程可以是一致的,即,该过程与特定编解码工具的使用无关。
a.在一个示例中,用于基于子块的编解码工具的并置MV的整个或部分推导过程与用于TMVP的过程相一致。
i.在一个示例中,如果是来自列表Y的单向预测,则列表Y的运动矢量被缩放到目标参考图片列表X;
ii.在一个示例中,如果是双向预测,并且目标参考图片列表为X,则列表Y的运动矢量缩放为目标参考图片列表X,可以根据以下规则确定Y:
–如果与当前图片相比,没有参考图片具有比当前图片更大的POC值,或者所有参考图片都具有比当前图片小的POC值,则将Y设置为等于X。
–否则,将Y设置为等于collocated_from_l0_flag。
b.在一个示例中,用于TMVP的并置MV的整个或部分推导过程与用于基于子块的编解码工具的推导过程一致。
4.运动候选列表构建过程(例如,常规Merge列表、IBC Merge/AMVP列表)可以取决于块尺寸和/或Merge共享条件。将块的宽度和高度分别表示为W和H。条件C可以取决于W和H和/或Merge共享条件。
a.在一个示例中,如果满足条件C,则跳过空间Merge候选的推导。
b.在一个示例中,如果满足条件C,则跳过HMVP候选的推导。
c.在一个示例中,如果满足条件C,则跳过成对Merge候选的推导。
d.在一示例中,如果满足条件C,则最大修剪操作的数量减少或设置为0。
e.在一示例中,当W*H小于或不大于阈值(例如,64或32)时,满足条件C。
f.在一示例中,当W和/或H小于或不大于阈值(例如,4或8)时,满足条件C。
g.在一示例中,在当前块是在共享节点下时,满足条件C。
5.可以将允许的常规Merge候选的最大数量/允许的IBC候选的最大数量/允许的子块Merge候选的最大数量设置为0。因此,可以禁用某些工具,并且不需要信令通知相关的语法元素。
a.在一个示例中,当所允许的常规Merge候选的最大数量等于0时,可以禁用依赖于常规Merge列表的编解码工具。编解码工具可以是常规Merge、MMVD、CIIP、TPM、DMVR等。
b.在一个示例中,当所允许的IBC候选的最大数量等于0时,可以禁用IBC AMVP和/或IBC Merge。
c.在一个示例中,当所允许的基于子块的Merge候选的最大数量等于0时,可以禁用基于子块的技术,例如ATMVP、仿射Merge模式。
d.当根据允许的候选的最大数量禁用工具时,将跳过相关语法元素的信令通知。
i.此外,可替代地,信令通知Merge相关的工具可能需要检查所允许候选的最大数量是否不等于0。
ii.此外,可替代地,调用与Merge相关的工具的过程可能需要检查所允许候选的最大数量是否不等于0。
6.信令通知general_merge_flag和/或cu_skip_flag可以取决于所允许的常规Merge候选的最大数量/所允许的IBC候选的最大数量/所允许的子块Merge候选的最大数量/与Merge相关的编解码工具的使用。
a.在一个示例中,与Merge相关的编解码工具可包括IBC Merge、常规Merge、MMVD、子块Merge、CIIP、TPM、DMVR等。
b.在一个示例中,当允许的最大规则Merge候选的最大数目、允许的IBC Merge/AMVP候选的最大数目、允许的子块Merge候选的最大数目等于0时,不信令通知general_merge_flag和/或cu_skip_flag。i.此外,可替代地,将general_merge_flag和/或cu_skip_flag推断为0。
7.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)时,启用与Merge相关的工具的至少一个,包括IBC Merge、常规Merge、MMVD、子块Merge、CIIP、TPM、DMVR等。
8.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)且针对一个条带/片/砖/图片/当前块禁用IBC时,启用与Merge相关的工具中的至少一个,包括常规Merge、MMVD、子块Merge、CIIP、TPM、DMVR等。
9.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)且针对一个条带/片/砖/图片/当前块禁用MMVD时,启用与Merge相关的工具中的至少一个,包括IBC Merge、常规Merge、子块Merge、CIIP、TPM。
10.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)且针对一个条带/片/砖/图片/当前块禁用CIIP时,启用与Merge相关的工具中的至少一个,包括IBC Merge、常规Merge、MMVD、子块Merge、TPM。
11.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)且针对一个条带/片/砖/图片/当前块禁用TPM时,启用与Merge相关的工具中的至少一个,包括IBC Merge、常规Merge、MMVD、子块Merge、CIIP。
12.一致性比特流应满足:当当前块的general_merge_flag或cu_skip_flag为真(true)时,将应用所启用的与Merge相关的工具中的至少一个,包括IBC Merge、常规Merge、MMVD、子块Merge、CIIP、TPM。在对第一块进行编解码时,第二块的可用性检查可能取决于第一块的编解码模式信息,例如,如果在第一块和第二块中使用了不同的模式,甚至不用考虑其他条件检查结果(例如已被构建),就可以将第二块视为不可用。
a.在一个示例中,当第一块被帧间编解码并且第二块被IBC编解码时,第二块被标记为不可用。
b.在一个示例中,当第一块被IBC编解码并且第二块被帧间编解码时,第二块被标记为不可用。
c.当第二块被标记为不可用时,不允许将相关的编解码信息(例如,运动信息)用于对第一块进行编解码。
13.与TPM侧的信息无关的语法元素的信令通知也可能取决于所允许的TPM候选的数量的条件检查。
a.在一个示例中,与CIIP相关的语法元素(例如,ciip_flag)的信令通知可以取决于所允许的TPM候选的数量大于阈值K。
b.在一个示例中,常规Merge模式标志(例如,regular_merge_flag)的信令可以取决于所允许的TPM候选的数量大于阈值K。
c.在一个示例中,K设置为1。
d.此外,可替代地,当允许的TPM候选地数量不大于阈值K时,可以不信令通知某些语法元素。
14.一致性比特流应满足:最大变换块尺寸不应超过最大CTU尺寸。
a.可替代地,当可以在最大CTU尺寸下有条件地信令通知最大变换块尺寸时(反之亦然),
i.在一个示例中,如果最大CTU尺寸不大于或等于M×N(例如,M=N=32),则不需要用信令通知最大变换块尺寸。
15.ALF滤波器系数范围可以取决于样点深度(例如,内部位深度或输入位深度),而不是在固定范围内。
16.可以直接信令通知一个标志,以指示使用ALF APS中的ALF滤波器还是使用固定滤波器。
a.另外,可以在可用ALF APS的数量大于0的条件下信令通知此标志。
b.此外,可替代地,当信令通知来自APS的ALF滤波器时,可以进一步信令通知一个附加语法元素以指示ALF APS的索引。此索引可以通过固定长度编解码、一元编解码、截断一元编解码、截断二元编解码、指数哥伦布编解码进行编解码。
5实施例
对最新的VVC工作草案(JVET-N1001_v7)的建议的更改如下。删除的文本用带下划线的斜体标记。新添加的部分以粗体大写字体突出显示。
5.1实施例1
该实施例是使针对非TPM编解码的块的修剪过程与针对TPM编解码的块的修剪过程相一致,即,针对非TPM编解码的块的完整修剪操作。
8.5.2.3空间Merge候选的推导过程
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出如下,其中X为0或1:
–相邻编解码单元的可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–相邻编解码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–相邻编解码单元的预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–相邻编解码单元的1/16分数样点精度mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下适用:
–将相邻亮度编解码块内部的亮度位置(xNbA1,yNbA1)设置为等于(xCb-1,yCb+cbHeight-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbA1,yNbA1)作为输入,并将输出赋值给块可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1推导如下:
–如果availableA1等于FALSE,将availableFlagA1设置为等于0,mvLXA1的两个分量都设置为等于0,refIdxLXA1设置为等于-1,predFlagLXA1设置为等于0,其中X为0或1,将gbiIdxA1设置为等于0。
–否则,将availableFlagA1设置为等于1,并进行以下赋值:
mvLXA1=MvLX[xNbA1][yNbA1] (8-294)
refIdxLXA1=RefIdxLX[xNbA1][yNbA1] (8-295)
predFlagLXA1=PredFlagLX[xNbA1][yNbA1] (8-296)
gbiIdxA1=GbiIdx[xNbA1][yNbA1] (8-297)
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB1,yNbB1)设置为等于(xCb+cbWidth-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB1,yNbB1)作为输入,并将输出赋值给块可用性标志availableB1
–变量availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1推导如下:
–如果以下一个或多个条件为真(true),则将availableFlagB1设置为等于0,mvLXB1的两个分量都设置为等于0,refIdxLXB1设置为等于-1,predFlagLXB1设置为等于0,其中X为0或1,并且将gbiIdxB1设置为等于0:
–availableB1等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的运动矢量和相同的参考索引。
–否则,将availableFlagB1设置为等于1,并进行以下赋值:
mvLXB1=MvLX[xNbB1][yNbB1] (8-298)
refIdxLXB1=RefIdxLX[xNbB1][yNbB1] (8-299)
predFlagLXB1=PredFlagLX[xNbB1][yNbB1] (8-300)
gbiIdxB1=GbiIdx[xNbB1][yNbB1] (8-301)
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbB0,yNbB0)作为输入,并将输出赋值给块可用性标志availableB0
–变量availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0推导如下:
–如果以下一个或多个条件为真,则将availableFlagB0设置为等于0,mvLXB0的两个分量都设置为等于0,refIdxLXB0设置为等于-1,predFlagLXB0设置为等于0,其中X为0或1,并且将gbiIdxB0设置为等于0:
–availableB0等于FALSE。
–availableB1等于TRUE,并且亮度位置(xNbB1,yNbB1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引。
–availableA1等于TRUE,亮度位置(xNbA1,yNbA1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引,
Figure BDA0003468650200000601
Figure BDA0003468650200000602
–否则,将availableFlagB0设置为等于1,并进行以下赋值:
mvLXB0=MvLX[xNbB0][yNbB0] (8-302)
refIdxLXB0=RefIdxLX[xNbB0][yNbB0] (8-303)
predFlagLXB0=PredFlagLX[xNbB0][yNbB0] (8-304)
gbiIdxB0=GbiIdx[xNbB0][yNbB0] (8-305)
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbA0,yNbA0)设置为等于(xCb-1,yCb+cbWidth)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbA0,yNbA0)作为输入,并将输出赋值给块可用性标志availableA0
–变量availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0推导如下:
–如果以下一个或多个条件为真,则将availableFlagA0设置为等于0,mvLXA0的两个分量都设置为等于0,refIdxLXA0设置为等于-1,predFlagLXA0设置为等于0,其中X为0或1,并且将gbiIdxA0设置为等于0:
–availableA0等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,
Figure BDA0003468650200000611
Figure BDA0003468650200000612
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引,
Figure BDA0003468650200000613
Figure BDA0003468650200000614
–否则,将availableFlagA0设置为等于1,并进行以下赋值:
mvLXA0=MvLX[xNbA0][yNbA0] (8-306)
refIdxLXA0=RefIdxLX[xNbA0][yNbA0] (8-307)
predFlagLXA0=PredFlagLX[xNbA0][yNbA0] (8-308)
gbiIdxA0=GbiIdx[xNbA0][yNbA0] (8-309)
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB2,yNbB2)设置为等于(xCb-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbB2,yNbB2)作为输入,并将输出赋值给块可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2推导如下:
–如果以下一个或多个条件为真,则将availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于-1,predFlagLXB2设置为等于0,其中X为0或1,并且将gbiIdxB2设置为等于0:
–availableB2等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,
Figure BDA0003468650200000621
Figure BDA0003468650200000622
–availableA0等于TRUE,亮度位置(xNbA0,yNbA0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,
Figure BDA0003468650200000623
Figure BDA0003468650200000624
–availableFlagA0+availableFlagA1+availableFlagB0+availableFlagB1等于4,并且merge_triangle_flag[xCb][yCb]等于0。
–否则,将availableFlagB2设置为等于1,并进行以下赋值:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
5.2实施例2
该实施例将用于TPM编解码块的修剪过程与用于非TPM编解码块的修剪过程对齐,即,对TPM编解码块的有限修剪操作。
8.5.2.3空间Merge候选的推导过程
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出如下,其中X为0或1:
–相邻编解码单元的可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–相邻编解码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–相邻编解码单元的预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–相邻编解码单元的1/16分数样点精度mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下适用:
–将相邻亮度编解码块内部的亮度位置(xNbA1,yNbA1)设置为等于(xCb-1,yCb+cbHeight-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbA1,yNbA1)作为输入,并将输出赋值给块可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1推导如下:
–如果availableA1等于FALSE,将availableFlagA1设置为等于0,mvLXA1的两个分量都设置为等于0,refIdxLXA1设置为等于-1,predFlagLXA1设置为等于0,其中X为0或1,将gbiIdxA1设置为等于0。
–否则,将availableFlagA1设置为等于1,并进行以下赋值:
mvLXA1=MvLX[xNbA1][yNbA1] (8-294)
refIdxLXA1=RefIdxLX[xNbA1][yNbA1] (8-295)
predFlagLXA1=PredFlagLX[xNbA1][yNbA1] (8-296)
gbiIdxA1=GbiIdx[xNbA1][yNbA1] (8-297)
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB1,yNbB1)设置为等于(xCb+cbWidth-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbB1,yNbB1)作为输入,并将输出赋值给块可用性标志availableB1
–变量availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1推导如下:
–如果以下一个或多个条件为真(true),则将availableFlagB1设置为等于0,mvLXB1的两个分量都设置为等于0,refIdxLXB1设置为等于-1,predFlagLXB1设置为等于0,其中X为0或1,并且将gbiIdxB1设置为等于0:
–availableB1等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的运动矢量和相同的参考索引。
–否则,将availableFlagB1设置为等于1,并进行以下赋值:
mvLXB1=MvLX[xNbB1][yNbB1] (8-298)
refIdxLXB1=RefIdxLX[xNbB1][yNbB1] (8-299)
predFlagLXB1=PredFlagLX[xNbB1][yNbB1] (8-300)
gbiIdxB1=GbiIdx[xNbB1][yNbB1] (8-301)
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbB0,yNbB0)作为输入,并将输出赋值给块可用性标志availableB0
–变量availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0推导如下:
–如果以下一个或多个条件为真,则将availableFlagB0设置为等于0,mvLXB0的两个分量都设置为等于0,refIdxLXB0设置为等于-1,predFlagLXB0设置为等于0,其中X为0或1,并且将gbiIdxB0设置为等于0:
–availableB0等于FALSE。
–availableB1等于TRUE,并且亮度位置(xNbB1,yNbB1)和(xNbB0,yNbB0)具有相同的运动矢量和相同的参考索引。
Figure BDA0003468650200000651
–否则,将availableFlagB0设置为等于1,并进行以下赋值:
mvLXB0=MvLX[xNbB0][yNbB0] (8-302)
refIdxLXB0=RefIdxLX[xNbB0][yNbB0] (8-303)
predFlagLXB0=PredFlagLX[xNbB0][yNbB0] (8-304)
gbiIdxB0=GbiIdx[xNbB0][yNbB0] (8-305)
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbA0,yNbA0)设置为等于(xCb-1,yCb+cbWidth)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbA0,yNbA0)作为输入,将输出赋值给块可用性标志availableA0
–变量availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0推导如下:
–如果以下一个或多个条件为真,则将availableFlagA0设置为等于0,mvLXA0的两个分量都设置为等于0,refIdxLXA0设置为等于-1,predFlagLXA0设置为等于0,其中X为0或1,并且将gbiIdxA0设置为等于0:
–availableA0等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbA0,yNbA0)具有相同的运动矢量和相同的参考索引。
Figure BDA0003468650200000661
–否则,将availableFlagA0设置为等于1,并进行以下赋值:
mvLXA0=MvLX[xNbA0][yNbA0] (8-306)
refIdxLXA0=RefIdxLX[xNbA0][yNbA0] (8-307)
predFlagLXA0=PredFlagLX[xNbA0][yNbA0] (8-308)
gbiIdxA0=GbiIdx[xNbA0][yNbA0] (8-309)
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB2,yNbB2)设置为等于(xCb-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB2,yNbB2)作为输入,并将输出赋值给块可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2推导如下:
–如果以下一个或多个条件为真,则将availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于-1,predFlagLXB2设置为等于0,其中X为0或1,并且将gbiIdxB2设置为等于0:
–availableB2等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
Figure BDA0003468650200000671
–availableFlagA0+availableFlagA1+availableFlagB0+availableFlagB1等于4,并且merge_triangle_flag[xCb][yCb]等于0。
–否则,将availableFlagB2设置为等于1,并进行以下赋值:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
5.3实施例3
该实施例将对齐用于调用B2的检查的条件。
8.5.2.3空间Merge候选的推导过程
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出如下,其中X为0或1:
–相邻编解码单元的可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–相邻编解码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–相邻编解码单元的预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–相邻编解码单元的1/16分数样点精度mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下适用:
–将相邻亮度编解码块内部的亮度位置(xNbA1,yNbA1)设置为等于(xCb-1,yCb+cbHeight-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbA1,yNbA1)作为输入,并将输出赋值给块可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1推导如下:
……
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB1,yNbB1)设置为等于(xCb+cbWidth-1,yCb-1)。
……
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb-1)。
……
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbA0,yNbA0)设置为等于(xCb-1,yCb+cbWidth)。
……
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB2,yNbB2)设置为等于(xCb-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)(设置为等于(xCb,yCb))和相邻亮度位置(xNbB2,yNbB2)作为输入,并将输出赋值给块可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2推导如下:
–如果以下一个或多个条件为真,则将availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于-1,predFlagLXB2设置为等于0,其中X为0或1,并且将gbiIdxB2设置为等于0:
–availableB2等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableA0等于TRUE,亮度位置(xNbA0,yNbA0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableFlagA0+availableFlagA1+availableFlagB0+availableFlagB1等于4,
Figure BDA0003468650200000701
–否则,将availableFlagB2设置为等于1,并进行以下赋值:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
5.4实施例4
该实施例将对齐用于调用B2的检查的条件。
8.5.2.3空间Merge候选的推导过程
该过程的输入是:
–相对于当前图片的左上亮度样点的当前亮度编解码块的左上样点的亮度位置(xCb,yCb),
–变量cbWidth,指示亮度样点中当前编解码块的宽度,
–变量cbHeight,指示亮度样点中当前编解码块的高度。
该过程的输出如下,其中X为0或1:
–相邻编解码单元的可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2
–相邻编解码单元的参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2
–相邻编解码单元的预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2
–相邻编解码单元的1/16分数样点精度mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2
–双向预测权重索引gbiIdxA0、gbiIdxA1、gbiIdxB0、gbiIdxB1和gbiIdxB2
对于availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1的推导,以下适用:
–将相邻亮度编解码块内部的亮度位置(xNbA1,yNbA1)设置为等于(xCb-1,yCb+cbHeight-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbA1,yNbA1)作为输入,并将输出赋值给块可用性标志availableA1
–变量availableFlagA1、refIdxLXA1、predFlagLXA1和mvLXA1推导如下:
……
对于availableFlagB1、refIdxLXB1、predFlagLXB1和mvLXB1的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB1,yNbB1)设置为等于(xCb+cbWidth-1,yCb-1)。
……
对于availableFlagB0、refIdxLXB0、predFlagLXB0和mvLXB0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB0,yNbB0)设置为等于(xCb+cbWidth,yCb-1)。
……
对于availableFlagA0、refIdxLXA0、predFlagLXA0和mvLXA0的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbA0,yNbA0)设置为等于(xCb-1,yCb+cbWidth)。
……
对于availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2的推导,以下适用:
–相邻亮度编解码块内部的亮度位置(xNbB2,yNbB2)设置为等于(xCb-1,yCb-1)。
–调用第6.4.X节【Ed.(BB):相邻块可用性检查过程tbd】规定的块的可用性推导过程,将当前亮度位置(xCurr,yCurr)设置为等于(xCb,yCb),并将其和相邻亮度位置(xNbB2,yNbB2)作为输入,并将输出赋值给块可用性标志availableB2
–变量availableFlagB2、refIdxLXB2、predFlagLXB2和mvLXB2推导如下:
–如果以下一个或多个条件为真,则将availableFlagB2设置为等于0,mvLXB2的两个分量都设置为等于0,refIdxLXB2设置为等于-1,predFlagLXB2设置为等于0,其中X为0或1,并且将gbiIdxB2设置为等于0:
–availableB2等于FALSE。
–availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB1等于TRUE,亮度位置(xNbB1,yNbB1)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引。
–availableB0等于TRUE,亮度位置(xNbB0,yNbB0)和(xNbB2,yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
–availableA0等于TRUE,亮度位置(xNbA0,yNbA0)和(xNbB2
yNbB2)具有相同的运动矢量和相同的参考索引,并且merge_triangle_flag[xCb][yCb]等于1。
Figure BDA0003468650200000731
–否则,将availableFlagB2设置为等于1,并进行以下赋值:
mvLXB2=MvLX[xNbB2][yNbB2] (8-310)
refIdxLXB2=RefIdxLX[xNbB2][yNbB2] (8-311)
predFlagLXB2=PredFlagLX[xNbB2][yNbB2] (8-312)
gbiIdxB2=GbiIdx[xNbB2][yNbB2] (8-313)
5.5实施例5
该实施例是为了简化在ATMVP过程中的初始化MV的决定。
8.5.5.4基于子块的时间Merge基本运动数据的推导过程
该过程的输入是:
–包含当前编解码块的亮度编解码树块的左上样点的位置(xCtb,yCtb),
–覆盖右下中心样点的并置亮度编解码块的左上样点的位置(xColCtrCb,yColCtrCb),
–相邻编解码单元的可用性标志availableFlagA1
–相邻编解码单元的参考索引refIdxLXA1
–相邻编解码单元的预测列表利用标志predFlagLXA1
–相邻编解码单元的1/16分数样点精度mvLXA1中的运动矢量。
该过程的输出是:
–运动矢量ctrMvL0和ctrMvL1,
–预测列表利用标志ctrPredFlagL0和ctrPredFlagL1,
–时间运动矢量tempMv。
变量tempMv设置如下:
tempMv[0]=0 (8-529)
tempMv[1]=0 (8-530)
变量currPic指示当前图片。
当availableFlagA1等于TRUE时,以下适用:
将变量X设置为COLLOCATED_FROM_L0_FLAG。
如果PREDFLAGLXA1等于1并且DIFFPICORDERCNT(COLPIC,REFPICLIST[X][REFIDXLXA1])等于0为真,则将TEMPMV设置为等于MVLXA1。
Figure BDA0003468650200000741
ColPic内部的并置块的位置(xColCb,yColCb)推导如下。
xColCb=Clip3(xCtb,Min(CurPicWidthInSamplesY-1,xCtb+(1<<CtbLog2SizeY)+3),(8-531)xColCtrCb+(tempMv[0]>>4))
yColCb=Clip3(yCtb,Min(CurPicHeightInSamplesY-1,yCtb+(1<<CtbLog2SizeY)-1),(8-532)yColCtrCb+(tempMv[1]>>4))
将数组colPredMode设置为等于由ColPic指示的并置图片的预测模式数组CuPredMode。
运动矢量ctrMvL0和ctrMvL1,以及预测列表利用标志ctrPredFlagL0和ctrPredFlagL1推导如下:
……
5.6实施例6
对齐用于基于子块和非子块的方法的并置MV的推导过程的示例。
8.5.2.12并置运动矢量的推导过程
该过程的输入是:
–变量currPb,指示当前编解码块,
–变量colPb,指示由ColPic指示的并置图片内的并置编解码块,
–亮度位置(xColPb,yColPb),指示相对于由ColPic指示的并置图片的左上亮度样点而由colPb指示的并置亮度编解码块的左上样点,
–参考索引refIdxLX,其中X为0或1。
–指示子块时间Merge候选的标志sbFlag。
该过程的输出如下:
–1/16的分数样点精度的运动矢量预测mvLXCol,
–可用性标志availableFlagLXCol。
变量currPic指示当前图片。
将数组predFlagL0Col[x][y]、mvL0Col[x][y]和refIdxL0Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL0[x][y]、MvDmvrL0[x][y]和RefIdxL0[x][y];并将数组predFlagL1Col[x][y]、mvL1Col[x][y]和refIdxL1Col[x][y]分别设置为等于由ColPic指示的并置图片的PredFlagL1[x][y]、MvDmvrL1[x][y]和RefIdxL1[x][y]。
变量mvLXCol和availableFlagLXCol推导如下:
–如果colCb以帧内或IBC预测模式进行编解码,则将mvLXCol的两个分量均设置为等于0,并将availableFlagLXCol设置为等于0。
–否则,运动矢量mvCol、参考索引refIdxCol和参考列表标识符listCol的推导如下:
–如果
Figure BDA0003468650200000751
则将availableFlagLXCol设置为1,以下适用:
–如果predFlagL0Col[xColCb][yColCb]等于0,则将mvCol、refIdxCol和listCol分别设置为等于mvL1Col[xColCb][yColCb]、refIdxL1Col[xColCb][yColCb]和L1。
–否则,如果predFlagL0Col[xColCb][yColCb]等于1且predFlagL1Col[xColCb][yColCb]等于0,则将mvCol、refIdxCol和listCol分别设置为等于mvL0Col[xColCb][yColCb]、refIdxL0Col[xColCb][yColCb]和L0。
–否则(predFlagL0Col[xColCb][yColCb]等于1且predFlagL1Col[xColCb][yColCb]等于1),进行以下赋值:
–如果NoBackwardPredFlag等于1,则将mvCol、refIdxCol和listCol分别设置为等于mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]和LX。
–否则,将mvCol、refIdxCol和listCol分别设置为等于mvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]和LN,其中N为collocated_from_l0_flag的值。
Figure BDA0003468650200000761
–当availableFlagLXCol等于TRUE时,mvLXCol和availableFlagLXCol推导如下:
–如果LongTermRefPic(currPic,currCb,refIdxLX,LX)不等于LongTermRefPic(ColPic,colCb,refIdxCol,listCol),则将mvLXCol的两个分量均设置为等于0,并且将availableFlagLXCol设置为等于0。
–否则,将变量availableFlagLXCol设置为等于1,将refPicList[listCol][refIdxCol]设置为在由ColPic指示的并置图片中包含编解码块colCb的条带的参考图片列表listCol中具有参考索引refIdxCol的图片,以下适用:
……
图22是视频处理装置2200的框图。装置2200可以用于实现本文描述的一种或多种方法。装置2200可以被实施在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2200可以包括一个或多个处理器2202、一个或多个存储器2204和视频处理硬件2206。处理器2202可以被配置为实现本文中描述的一种或多种方法。存储器(一个或多个)2204可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件2206可以用于在硬件电路中实现本文中描述的一些技术。视频处理硬件2206可以以专用硬件或图形处理器单元(GPU)或专用信号处理模块的形式部分或完全包括在处理器2202中。
可以使用以下基于条款的描述来描述一些实施例。
在第4节的第1项中描述的技术的一些示例实施例包括:
1.一种视频处理方法(例如,图23中所示的方法2300),包括:将修剪过程应用(2302)于使用三角分割模式(TMP)进行分割的当前视频块的Merge列表构建中,当前视频块被分割成至少两个非矩形子块,其中,修剪过程与使用非TMP分割模式分割的另一个视频块的另一个修剪过程相同;并基于Merge列表构建执行当前视频块和当前视频块的比特流表示之间的转换(2304)。
2.根据权利要求1所述的方法,其中,该修剪过程包括对当前视频块的空间Merge候选使用部分修剪。
3.根据权利要求1所述的方法,其中,该修剪过程包括基于块尺寸规则对当前视频块应用全部或部分修剪,该块尺寸规则规定基于当前视频块的尺寸使用全部或部分修剪。
4.根据权利要求1所述的方法,其中,该修剪过程包括在所述Merge列表构建过程中使用不同顺序的相邻块。
在第4节的第2项中描述的技术的一些示例实施例包括:
1.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,基于当前视频块的相邻块的列表X,确定用于转换的替代时间运动矢量预测子编解码(ATMVP)模式的可用性,其中X是整数,X的值取决于当前视频块的编码条件,并根据ATMVP模式的可用性执行转换。
2.根据权利要求1所述的方法,其中,X指示并置视频图片的位置,从该位置处执行用于当前视频块和比特流表示之间的转换的时间运动矢量预测。
3.根据权利要求1所述的方法,其中,通过将当前视频块的所有参考列表中的所有参考图片中的图片顺序计数(POC)与该当前视频块的当前视频图片的POC进行比较来确定X。
4.根据权利要求3所述的方法,其中,在该比较显示所有POC<=当前图片的POC的情况下,则设置X=1,否则设置X=0。
5.根据权利要求1所述的方法,其中,将存储在基于历史的运动矢量预测子表中的运动信息用于在所述ATMVP模式下初始化运动矢量。
在第4节的第3项中描述的技术的一些示例实施例包括:
1.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,确定将当前视频块分割成至少两个子块的基于子块的编解码技术,其中,能够导出自身运动信息的每个子块用于转换;并使用Merge列表构建过程对当前视频块执行转换,该过程与用于并置运动矢量的基于块的推导过程相一致。
2.根据权利要求1所述的方法,其中,该Merge列表构建过程和所述推导过程包括:对列表Y执行单向预测,并且其中,列表Y的运动矢量被缩放为目标参考图片列表X。
3.根据权利要求1所述的方法,其中,所述Merge列表构建过程和所述推导过程包括:对目标参考图片列表X执行双向预测,然后将列表Y的运动矢量缩放为列表X的运动矢量,其中,Y是根据规则确定的。
在第4节的第4项中描述的技术的一些示例实施例包括:
1.一种视频处理方法,包括:基于视频图片的当前视频块的尺寸和/或在其中共享来自不同编解码工具的Merge候选的Merge共享状态的启用,来确定满足条件还是不满足条件;并基于该条件执行当前视频块与当前视频块的比特流表示之间的转换。
2.根据权利要求1所述的方法,其中,执行转换包括:在满足条件的情况下,跳过推导空间Merge候选的步骤。
3.根据权利要求1所述的方法,其中,执行转换包括:在满足条件的情况下,跳过推导基于历史的运动矢量候选的步骤。
4.根据权利要求1-3中的任一项所述的方法,其中,基于当前视频块在视频图片中的共享节点之下,确定满足条件。
在第4节的第5项中描述的技术的一些示例实施例包括:
1.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,确定对该转换禁用一编解码工具,其中,该比特流表示被配置为提供用于所述编解码工具的Merge候选的最大数量为零的指示;并且使用禁用编解码工具的决定来执行转换。
2.根据权利要求1所述的方法,其中,该编解码工具对应于帧内块复制,在帧内块复制中,从当前视频块的视频区域中的其他像素对该当前视频块的像素进行编解码。
3.根据权利要求1所述的方法,其中,该编解码工具是子块编解码工具。
4.根据权利要求3所述的方法,其中,该子块编解码工具是仿射编解码工具或交替运动矢量预测子工具。
5.根据权利要求1-4中任一项所述的方法,其中,执行转换包括:通过跳过与该编解码工具相关的语法元素来处理比特流。
在第4节的第6项中描述的技术的一些示例实施例包括:
1.一种视频处理方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,使用基于第二语法元素规定第一语法元素有条件地存在于比特流表示中的规则来做出确定,其中第二语法元素指示在转换期间使用的编解码工具使用的Merge候选的最大数量;基于该确定,执行当前视频块与当前视频块的比特流表示之间的转换。
2.如权利要求1所述的方法,其中,该第一语法元素对应于Merge标志。
3.根据权利要求1所述的方法,其中,该第一语法元素对应于跳过标志。
4.根据权利要求1-3中的任一项所述的方法,其中,该编解码工具是子带编解码工具,并且该第二语法元素对应于该子带编解码工具的最多允许的Merge候选。
34.根据条款1至33中的任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
35.根据条款1至33中的任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块的样点。
36.一种视频处理装置,包括:处理器,被配置为实现条款1至35中的任一项或多项所述的方法。
37.一种计算机可读介质,其上存储有代码,该代码在执行时使处理器实现条款1至35中任一项或多项所述的方法。
图24是示出示例视频处理系统2400的框图,其中可以实施本文公开的各种技术。各种实现可包括系统2400的部分或全部组件。系统2400可包括用于接收视频内容的输入2402。视频内容可以原始或未压缩格式接收,例如8比特或10比特多分量像素值,或者可以压缩或编码格式接收。输入2402可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口,以及诸如Wi-Fi或蜂窝接口的无线接口。
系统2400可包括编解码组件2404,其可实现本文中所描述的各种编码或编码方法。编解码组件2404可以降低从输入2402到编解码组件2404的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件2404的输出可以被存储,也可以通过连接的通信进行传输,如组件2406所示。输入2402处接收的视频的存储或通信比特流(或编解码)表示可由组件2408用于生成像素值或发送到显示接口2410的可显示视频。从比特流表示生成用户可观看视频的处理有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但应当理解的是,编解码工具或操作被用于编码器处,并且逆向编码结果的相应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清晰度多媒体接口(HDMI)或显示端口等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文中所述的技术可实施在各种电子设备中,例如移动电话、笔记本电脑、智能手机或其他能够执行数字数据处理和/或视频显示的设备。
图25是视觉媒体处理方法的示例的流程图。结合本文第4节中的示例5d讨论此流程图的步骤。在步骤2502中,该处理执行视觉媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定在比特流表示中有选择地包括或不包括表示一编解码工具的Merge候选的最大数量的语法元素,从而指示是否对转换启用或禁用该编解码工具,其中,该编解码工具的Merge候选的最大数量为零或正数。
图26是视觉媒体处理方法的示例的流程图。结合本文第4节中的示例13讨论此流程图的步骤。在步骤2602中,该处理执行视频和该视频的比特流表示之间的转换,该视频包括一个或多个包含多个视频块的视频区域,其中,比特流表示符合一格式规则,该格式规则规定视频区域的允许的几何分割模式(GPM)运动候选的数量确定在比特流表示中是否包括与编解码工具对视频区域的适用性相关的语法元素,其中该编解码工具不同于GPM编解码工具,其中GPM包括将视频块分割成多个预测分区以分别应用运动预测,且至少一个分区为非矩形。
图27是视觉媒体处理方法的一个示例的流程图。结合本文第4节中的示例14讨论此流程图的步骤。在步骤2702中,该处理执行视觉媒体数据的当前视频单元和视觉媒体数据的比特流表示之间的转换,其中,比特流表示根据一格式规则配置,该格式规则规定最大变换块尺寸等于或小于用于转换的最大编解码树单元(CTU)尺寸。
图28是视觉媒体处理方法的示例的流程图。结合本文第4节中的示例15讨论此流程图的步骤。在步骤2802中,该处理执行视觉媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换使用自适应环路滤波器(ALF),其中ALF滤波器的系数是基于当前视频块的视频区域中的样点的深度。
图29是视觉媒体处理方法的示例的流程图。结合本文第4节中的示例16讨论此流程图的步骤。在步骤2902中,该处理使用自适应环路滤波器(ALF)执行视觉媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,比特流表示根据格式规则配置,该格式规则规定比特流表示中包括一个或多个语法元素,该一个或多个语法元素指示应用于当前视频块的ALF滤波器是基于自适应参数集(APS)还是基于固定滤波器集来确定的。
本文的一些实施例以基于条款的格式呈现。
A1.一种视觉媒体处理方法,包括:
执行视觉媒体数据的当前视频块和该当前视频块的比特流表示之间的转换,其中,该比特流表示根据格式规则配置,该格式规则规定在比特流表示中有选择地包括或不包括表示一编解码工具的Merge候选的最大数量的语法元素,从而指示对于所述转换是否启用或禁用该编解码工具,
其中,该编解码工具的Merge候选的最大数量为零或正数。
A2.根据条款A1所述的方法,其中,该格式规则规定响应于确定为转换禁用该编解码工具而在比特流表示中不包括该语法元素。
A3.根据条款A2所述的方法,其中,在该编解码工具的Merge候选的最大数量为零的情况下,该格式规则规定在比特流表示中不包括该语法元素。
A4.根据条款A3所述的方法,其中,该编解码工具对应于帧内块复制,在所述帧内块复制中,当前视频块的像素由当前视频块的视频区域的其他像素编解码。
A5.根据条款A1-A4中任一项或多项所述的方法,其中,该编解码工具对应于常规Merge、具有运动矢量差的Merge(MMVD)、组合帧内帧间预测(CIIP)、三角分割模式(TPM)、解码器侧运动矢量细化(DMVR)。
A6.根据条款A1-A4中任一项或多项所述的方法,其中,编解码工具是子块编解码工具。
A7.根据条款A6所述的方法,其中,子块编解码工具是仿射编解码工具或交替运动矢量预测子工具。
A8.根据条款A1-A4中任一项或多项所述的方法,其中,执行转换包括:通过跳过与编解码工具相关的语法元素来处理比特流。
A9.根据条款A1-A4中任一项或多项所述的方法,其中,执行转换包括:处理比特流,以确定编解码工具的Merge候选的最大数量不等于零。
A10.根据条款A1-A9中任一项或多项所述的方法,其中,该转换包括:确定编解码工具的Merge候选的最大数量不等于零。
E1.一种视觉媒体处理方法,包括:
执行视频和视频的比特流表示之间的转换,该视频包括一个或多个包含多个视频块的视频区域,
其中,比特流表示符合一格式规则,该格式规则指示视频区域的允许的几何分割模式(GPM)运动候选的数量确定比特流表示中是否包括与一编解码工具对视频区域的适用性相关的语法元素,其中,该编解码工具不同于GPM编解码工具,其中,GPM包括将视频块分割为多个预测分区以分别应用运动预测,且至少一个分区具有非矩形形状。
E2.根据条款E1所述的方法,其中,编解码工具对应于组合帧内帧间预测(CIIP)模式,并且其中,在允许的GPM运动候选的数量超过阈值的情况下,该格式规则规定在比特流表示中包括一个或多个语法元素。
E3.根据条款E1-E2中任一项或多项所述的方法,其中,阈值等于1。
E4.根据条款E1-E3中任一项或多项所述的方法,其中,在允许的GPM运动候选的数量小于或等于阈值的情况下,格式规则规定在比特流表示中不包括该语法元素。
B1.一种视觉媒体处理方法,包括:
执行视觉媒体数据的当前视频单元和视觉媒体数据的比特流表示之间的转换,其中,该比特流表示根据一格式规则配置,该格式规则规定最大变换块尺寸等于或小于用于转换的最大编解码树单元(CTU)尺寸。
B2.根据条款B1所述的方法,其中,该格式规则规定基于最大CTU尺寸在比特流表示中选择性地包括指示最大变换块尺寸的语法元素。
B3.根据条款B2所述的方法,其中,该格式规则基于最大CTU尺寸小于或等于定义的MxN块的尺寸的确定规定在比特流表示中不包括表示最大变换块尺寸的语法元素。
B4.根据条款B3所述的方法,其中,M=32,N=32。
C1.一种视觉媒体处理方法,包括:
执行视觉媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换使用自适应环路滤波器(ALF),其中ALF滤波器的系数基于当前视频块的视频区域中的样点的深度。
C2.根据条款C1所述的方法,其中,ALF滤波器系数对应于色度ALF滤波器系数。
C3.根据条款C1所述的方法,其中,ALF滤波器系数对应于亮度ALF滤波器系数。
D1.一种视觉媒体处理方法,包括:
使用自适应环路滤波器(ALF)执行视觉媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该比特流表示根据一格式规则配置,该格式规则规定在比特流表示中包括一个或多个语法元素,该一个或多个语法元素表示应用于当前视频块的ALF滤波器是基于自适应参数集(APS)还是基于固定滤波器集来确定的。
D2.根据条款D1所述的方法,其中,在可用的ALF APS的数量大于零的情况下,格式规则还规定在比特流表示中包括一个或多个语法元素。
D3.根据条款D1所述的方法,其中,在ALF基于APS的情况下,该格式规则还规定在比特流表示中包括指示APS的索引的一个或多个语法元素。
D4.根据条款D3所述的方法,其中,使用编解码技术将APS的索引包括在比特流表示中。
D5.根据条款D1所述的方法,其中,编解码技术包括以下之一:固定长度编解码、一元编解码、截断一元编解码、截断二元编解码、或指数哥伦布编解码。
L1.根据条款A1至D5中的任一项或多项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
L2.根据条款A1至D5中的任一项或多项所述的方法,其中,该转换包括从比特流表示生成当前视频块的样点。
L3.一种视频处理设备,包括:处理器,其被配置为实现根据条款A1至D5中的任一项或多项所述的方法。
L4.一种计算机可读介质,其上存储有代码,该代码在执行时使处理器实现根据条款A1至D5中的任一项或多项所述的方法。
在本文中,术语“视频处理”或“视觉媒体处理”可以指视频编码、视频解码、视频压缩、或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换过程中,可以应用视频压缩算法,反之亦然。如语法元素所定义的,例如,当前视频块的比特流表示可以对应于在比特流内并置的或分布在比特流中不同位置的比特。例如,可以根据变换的和编解码的误差残差值并且还使用比特流中的报头和其他字段来对宏块进行编码。此外,如以上解决方案中所描述的,在转换期间,解码器可以基于确定通过一些字段可能存在或不存在的知识来解析比特流。类似地,编码器可以确定某些语法字段将被包括或不被包括,并且通过在编解码表示中包括或不包括语法字段来相应地生成编解码的表示。可以理解的是,所公开的技术可以体现在视频编码器或解码器中,以使用包括使用基于子块的运动矢量细化的技术来提高压缩效率。
根据前述内容,可以理解的是,出于说明的目的,本文已经描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下可以进行各种修改。因此,除了所附权利要求书外,当前公开的技术不受任何限制。
本文中公开的和其他描述的解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本文中所公开的结构及其结构等效体,或其中一个或多个的组合。公开的实施例和其他实施例可以实现为一个或多个计算机程序产品,即一个或多个编码在计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。传播信号是人为产生的信号,例如机器产生的电信号、光学信号或电磁信号,生成这些信号以对信息进行编码,以便传输到适当的接收装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本文中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光磁盘;以及CDROM和DVD-ROM光盘。处理器和存储器可以由专用逻辑电路来补充,或集成到专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何实现或权利要求范围的限制,而应解释为对特定实施例的特征的描述。本专利文件在单独实施例的上下文描述的一些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特征可以描述为在一些组合中起作用,甚至最初要求是这样,但在一些情况下,可以从组合中移除权利要求组合中的一个或多个特征,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管图纸中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。

Claims (18)

1.一种视觉媒体处理方法,包括:
执行视觉媒体数据的当前视频块和所述当前视频块的比特流表示之间的转换,其中,所述比特流表示根据格式规则配置,该格式规则规定在比特流表示中有选择地包括或不包括表示编解码工具的Merge候选的最大数量的语法元素,从而指示对于所述转换是否启用或禁用编解码工具,
其中,所述编解码工具的Merge候选的最大数量为零或正数。
2.根据权利要求1所述的方法,其中,所述格式规则规定:响应于确定为所述转换禁用所述编解码工具,在所述比特流表示中不包括所述语法元素。
3.根据权利要求2所述的方法,其中,在所述编解码工具的Merge候选的最大数量为零的情况下,所述格式规则规定在所述比特流表示中不包括所述语法元素。
4.根据权利要求3所述的方法,其中,所述编解码工具对应于帧内块复制,在所述帧内块复制中,所述当前视频块的像素由所述当前视频块的视频区域的其他像素编解码。
5.根据权利要求1至4中任一项或多项所述的方法,其中,所述编解码工具对应于常规Merge、具有运动矢量差的Merge(MMVD)、组合帧内帧间预测(CIIP)、三角分割模式(TPM)、解码器侧运动矢量细化(DMVR)。
6.根据权利要求1至4中任一项或多项所述的方法,其中,所述编解码工具是子块编解码工具。
7.根据权利要求6所述的方法,其中,所述子块编解码工具是仿射编解码工具或交替运动矢量预测子工具。
8.根据权利要求1至4中任一项或多项所述的方法,其中,所述执行所述转换包括:通过跳过与所述编解码工具相关的语法元素来处理所述比特流。
9.根据权利要求1至4中任一项或多项所述的方法,其中,所述执行所述转换包括:处理所述比特流,以确定用于所述编解码工具的Merge候选的最大数量不等于零。
10.根据权利要求1至9中任一项或多项所述的方法,其中,所述转换包括:确定所述编解码工具的Merge候选的最大数量不等于零。
11.一种视觉媒体处理方法,包括:
执行视频和所述视频的比特流表示之间的转换,所述视频包括一个或多个包含多个视频块的视频区域,
其中,所述比特流表示符合格式规则,该格式规则指示视频区域的允许的几何分割模式(GPM)运动候选的数量决定所述比特流表示是否包括与编解码工具对所述视频区域的适用性相关的语法元素,其中,所述编解码工具不同于GPM编解码工具,其中,所述GPM包括将视频块分割为多个预测分区以分别应用运动预测,且至少一个分区具有非矩形形状。
12.根据权利要求11所述的方法,其中,所述编解码工具对应于组合帧内帧间预测(CIIP)模式,并且其中,在所述允许的GPM运动候选的数量超过所述阈值的情况下,所述格式规则规定在所述比特流表示中包括所述一个或多个语法元素。
13.根据权利要求11至12中任一项或多项所述的方法,其中,所述阈值等于1。
14.根据权利要求11至13中任一项或多项所述的方法,其中,在所述允许的GPM运动候选的数量小于或等于所述阈值的情况下,所述格式规则规定在所述比特流表示中不包括所述语法元素。
15.根据权利要求1至14中的任一项或多项所述的方法,其中,所述转换包括从所述当前视频块生成所述比特流表示。
16.根据权利要求1至14中的任一项或多项所述的方法,其中,所述转换包括从所述比特流表示生成所述当前视频块的样点。
17.一种视频处理装置,包括:处理器,其被配置为执行根据权利要求1至14中的任一项或多项所述的方法。
18.一种计算机可读介质,其上存储有代码,该代码在执行时使处理器执行权利要求1至14中的任一项或多项所述的方法。
CN202080051086.4A 2019-07-14 2020-07-14 视频编解码中几何分割模式候选列表的构建 Active CN114128295B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019095921 2019-07-14
CNPCT/CN2019/095921 2019-07-14
PCT/CN2020/101805 WO2021008511A1 (en) 2019-07-14 2020-07-14 Geometric partition mode candidate list construction in video coding

Publications (2)

Publication Number Publication Date
CN114128295A true CN114128295A (zh) 2022-03-01
CN114128295B CN114128295B (zh) 2024-04-12

Family

ID=74210199

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202080051112.3A Active CN114128258B (zh) 2019-07-14 2020-07-14 视频编解码中的变换块尺寸的限制
CN202080051086.4A Active CN114128295B (zh) 2019-07-14 2020-07-14 视频编解码中几何分割模式候选列表的构建
CN202080051103.4A Active CN114175636B (zh) 2019-07-14 2020-07-14 自适应参数集中的自适应环路滤波的指示
CN202311469061.8A Pending CN117354547A (zh) 2019-07-14 2020-07-14 自适应参数集中的自适应环路滤波的指示

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080051112.3A Active CN114128258B (zh) 2019-07-14 2020-07-14 视频编解码中的变换块尺寸的限制

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202080051103.4A Active CN114175636B (zh) 2019-07-14 2020-07-14 自适应参数集中的自适应环路滤波的指示
CN202311469061.8A Pending CN117354547A (zh) 2019-07-14 2020-07-14 自适应参数集中的自适应环路滤波的指示

Country Status (6)

Country Link
US (3) US11647186B2 (zh)
EP (1) EP3984215A4 (zh)
JP (2) JP7318099B2 (zh)
KR (1) KR20220030995A (zh)
CN (4) CN114128258B (zh)
WO (3) WO2021008513A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7342118B2 (ja) * 2018-10-12 2023-09-11 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド 多重仮定予測を用いるビデオ信号処理方法及び装置
WO2020244568A1 (en) 2019-06-04 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list with geometric partition mode coding
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
WO2021008513A1 (en) 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Transform block size restriction in video coding
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
WO2023055126A1 (ko) * 2021-10-01 2023-04-06 엘지전자 주식회사 Gpm 기반 영상 코딩 방법 및 장치
WO2023200237A1 (ko) * 2022-04-12 2023-10-19 엘지전자 주식회사 기하 분할된 블록에 대한 영상 부호화/복호화 방법, 비트스트림을 전송하는 방법 및 비트스트림을 저장한 기록 매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090196342A1 (en) * 2006-08-02 2009-08-06 Oscar Divorra Escoda Adaptive Geometric Partitioning For Video Encoding
WO2012097740A1 (zh) * 2011-01-19 2012-07-26 华为技术有限公司 标识图像块几何划分模式的编解码方法和设备
US20180063543A1 (en) * 2016-08-31 2018-03-01 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
WO2018161954A1 (en) * 2017-03-10 2018-09-13 Mediatek Inc. Method and apparatus of implicit intra coding tool settings with intra directional prediction modes for video coding

Family Cites Families (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050111545A1 (en) 2003-11-25 2005-05-26 Ram Prabhakar Dynamic packet size control for MPEG-4 data partition mode
CN101415121B (zh) 2007-10-15 2010-09-29 华为技术有限公司 一种自适应的帧预测的方法及装置
EP2173101A3 (en) * 2008-10-06 2010-08-18 LG Electronics Inc. A method and an apparatus for decoding a video signal
TWI428023B (zh) * 2008-11-18 2014-02-21 Ind Tech Res Inst 解碼方法及裝置
KR101098739B1 (ko) * 2008-11-24 2011-12-23 한국전자통신연구원 비디오 신호의 부호화/복호화 장치 및 방법
US9036692B2 (en) 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
US8879632B2 (en) 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
KR101500914B1 (ko) 2010-04-09 2015-03-10 미쓰비시덴키 가부시키가이샤 동화상 복호 장치
US9819966B2 (en) * 2010-09-01 2017-11-14 Qualcomm Incorporated Filter description signaling for multi-filter adaptive filtering
US9071851B2 (en) 2011-01-10 2015-06-30 Qualcomm Incorporated Adaptively performing smoothing operations
US9001883B2 (en) * 2011-02-16 2015-04-07 Mediatek Inc Method and apparatus for slice common information sharing
US9826238B2 (en) * 2011-06-30 2017-11-21 Qualcomm Incorporated Signaling syntax elements for transform coefficients for sub-sets of a leaf-level coding unit
JP5884697B2 (ja) 2011-09-28 2016-03-15 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
US20130107973A1 (en) 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130114717A1 (en) 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
US9538200B2 (en) * 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
US9451277B2 (en) 2012-02-08 2016-09-20 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9549180B2 (en) 2012-04-20 2017-01-17 Qualcomm Incorporated Disparity vector generation for inter-view prediction for video coding
US20130294513A1 (en) 2012-05-07 2013-11-07 Qualcomm Incorporated Inter layer merge list construction for video coding
US20130329007A1 (en) 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
US9749645B2 (en) 2012-06-22 2017-08-29 Microsoft Technology Licensing, Llc Coded-block-flag coding and derivation
US9088770B2 (en) 2012-08-15 2015-07-21 Intel Corporation Size based transform unit context derivation
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
US9491461B2 (en) 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
US9699450B2 (en) 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US9924168B2 (en) 2012-10-05 2018-03-20 Hfi Innovation Inc. Method and apparatus of motion vector derivation 3D video coding
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US10334259B2 (en) 2012-12-07 2019-06-25 Qualcomm Incorporated Advanced residual prediction in scalable and multi-view video coding
US9538180B2 (en) 2012-12-17 2017-01-03 Qualcomm Incorporated Motion vector prediction in video coding
EP2982116A1 (en) 2013-04-02 2016-02-10 VID SCALE, Inc. Enhanced temporal motion vector prediction for scalable video coding
US9609347B2 (en) 2013-04-04 2017-03-28 Qualcomm Incorporated Advanced merge mode for three-dimensional (3D) video coding
KR102077900B1 (ko) * 2013-04-17 2020-02-14 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램
US9225991B2 (en) * 2013-05-30 2015-12-29 Apple Inc. Adaptive color space transform coding
US9288507B2 (en) 2013-06-21 2016-03-15 Qualcomm Incorporated More accurate advanced residual prediction (ARP) for texture coding
US9800895B2 (en) 2013-06-27 2017-10-24 Qualcomm Incorporated Depth oriented inter-view motion vector prediction
WO2015003383A1 (en) 2013-07-12 2015-01-15 Mediatek Singapore Pte. Ltd. Methods for inter-view motion prediction
US10045014B2 (en) 2013-07-15 2018-08-07 Mediatek Singapore Pte. Ltd. Method of disparity derived depth coding in 3D video coding
RU2624464C1 (ru) 2013-07-24 2017-07-04 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Порядки сканирования для кодирования без преобразования
US20150078457A1 (en) * 2013-09-13 2015-03-19 Qualcomm Incorporated Representation format signaling in multi-layer 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
KR101670208B1 (ko) * 2013-10-11 2016-10-27 텔레폰악티에볼라겟엘엠에릭슨(펍) 비디오 비트스트림을 트랜스코딩하기 위한 방법 및 어렌지먼트
EP3761641A1 (en) 2013-11-15 2021-01-06 MediaTek Inc. Method of block-based adaptive loop filtering
US9432685B2 (en) 2013-12-06 2016-08-30 Qualcomm Incorporated Scalable implementation for parallel motion estimation regions
CN106464894B (zh) * 2014-02-12 2019-10-18 明达半导体股份有限公司 视频处理方法及装置
EP3114839A4 (en) 2014-03-07 2018-02-14 Qualcomm Incorporated Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)
US10687079B2 (en) 2014-03-13 2020-06-16 Qualcomm Incorporated Constrained depth intra mode coding for 3D video coding
CN103942793B (zh) 2014-04-16 2016-11-16 上海交通大学 基于热扩散的视频一致运动区域检测方法
WO2015165030A1 (en) * 2014-04-29 2015-11-05 Microsoft Technology Licensing, Llc Encoder-side decisions for sample adaptive offset filtering
US10567789B2 (en) 2014-06-16 2020-02-18 Qualcomm Incorporated Simplified shifting merge candidate and merge list derivation in 3D-HEVC
US10897629B2 (en) 2014-06-19 2021-01-19 Vid Scale, Inc. Methods and systems for intra block copy search enhancement
US10327002B2 (en) * 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
US10027981B2 (en) * 2014-09-01 2018-07-17 Hfi Innovation Inc. Method of intra picture block copy for screen content and video coding
KR102051193B1 (ko) 2014-09-12 2019-12-02 브이아이디 스케일, 인크. 비디오 코딩을 위한 성분간 탈상관
KR20170066457A (ko) 2014-09-26 2017-06-14 브이아이디 스케일, 인크. 시간적 블록 벡터 예측을 갖는 인트라 블록 카피 코딩
GB2531003A (en) 2014-10-06 2016-04-13 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
US9854237B2 (en) 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
US11477477B2 (en) 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN107431817B (zh) 2015-01-29 2020-03-24 Vid拓展公司 用于调色板译码的方法及装置
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US10362331B2 (en) * 2015-03-02 2019-07-23 Hfi Innovation Inc. Method and apparatus for intraBC mode with fractional-pel block vector resolution in video coding
US10356416B2 (en) 2015-06-09 2019-07-16 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
CN105141957B (zh) * 2015-07-31 2019-03-15 广东中星电子有限公司 图像和视频数据编解码的方法和设备
CN108028939B (zh) 2015-09-02 2021-10-15 联发科技股份有限公司 用于视频编解码的解码器侧的运动推导的方法和装置
US10218975B2 (en) 2015-09-29 2019-02-26 Qualcomm Incorporated Transform precision manipulation in video coding
CN108141507B (zh) 2015-10-02 2020-02-07 Vid拓展公司 利用查找表进行颜色校正
US10812822B2 (en) 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
US10200719B2 (en) 2015-11-25 2019-02-05 Qualcomm Incorporated Modification of transform coefficients for non-square transform units in video coding
US11563938B2 (en) 2016-02-15 2023-01-24 Qualcomm Incorporated Geometric transforms for filters for video coding
CN114786009A (zh) * 2016-03-16 2022-07-22 寰发股份有限公司 视频编码中限制块尺寸的视频数据处理方法与装置
WO2017192898A1 (en) 2016-05-05 2017-11-09 Vid Scale, Inc. Control-point based intra direction representation for intra coding
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
US11095922B2 (en) 2016-08-02 2021-08-17 Qualcomm Incorporated Geometry transformation-based adaptive loop filtering
US10326986B2 (en) 2016-08-15 2019-06-18 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10721489B2 (en) 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
WO2018099269A1 (en) 2016-11-29 2018-06-07 Mediatek Inc. Method and apparatus of merge mode derivation for video coding
US20180184127A1 (en) 2016-12-22 2018-06-28 Qualcomm Incorporated Determining neighboring samples for bilateral filtering in video coding
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US11025903B2 (en) 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
CN106961606B (zh) * 2017-01-26 2020-04-07 浙江工业大学 基于纹理划分特征的hevc帧内编码模式选择方法
US20180242024A1 (en) * 2017-02-21 2018-08-23 Mediatek Inc. Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
KR102559063B1 (ko) * 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10778974B2 (en) 2017-07-05 2020-09-15 Qualcomm Incorporated Adaptive loop filter with enhanced classification methods
US11172203B2 (en) 2017-08-08 2021-11-09 Mediatek Inc. Intra merge prediction
CN116761001A (zh) 2017-08-29 2023-09-15 Sk电信有限公司 视频编码装置、视频解码装置和存储比特流的方法
CN111567045A (zh) 2017-10-10 2020-08-21 韩国电子通信研究院 使用帧间预测信息的方法和装置
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
CN111213379B (zh) 2017-10-16 2023-11-21 数字洞察力有限公司 用于将图像编码/解码的方法、装置和存储比特流的记录介质
US20190116374A1 (en) 2017-10-17 2019-04-18 Qualcomm Incorporated Coding motion information of video data using coding structure-based candidate list construction
WO2019079611A1 (en) 2017-10-18 2019-04-25 Huawei Technologies Co., Ltd. GENERATION OF MOVEMENT VECTOR CANDIDATES LIST DEPENDING ON THE AVAILABILITY OF A NEIGHBORING BLOCK
JP2021016016A (ja) 2017-10-20 2021-02-12 シャープ株式会社 動画像符号化装置及び動画像復号装置
CN111512632B (zh) 2017-11-01 2023-07-14 Vid拓展公司 用于简化视频译码中的自适应环路滤波器的方法
EP3711299A1 (en) 2017-11-14 2020-09-23 Qualcomm Incorporated Unified merge candidate list usage
US10721469B2 (en) 2017-11-28 2020-07-21 Qualcomm Incorporated Line buffer reduction for adaptive loop filtering in video coding
US20190208225A1 (en) * 2018-01-02 2019-07-04 Qualcomm Incorporated Sign prediction in video coding
CN111567043B (zh) 2018-01-11 2023-03-28 高通股份有限公司 对视频数据进行译码的方法、装置和计算机可读存储介质
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
CN111886861B (zh) 2018-02-22 2023-12-22 Lg电子株式会社 根据图像编码系统中的块划分结构的图像解码方法和设备
CN117135346A (zh) 2018-04-02 2023-11-28 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
US10506251B2 (en) 2018-05-08 2019-12-10 Tencent America LLC Method and apparatus for video coding
US10397603B1 (en) 2018-05-08 2019-08-27 Tencent America LLC Method and apparatus for video coding
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
WO2020003255A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Mer improvements
KR20210024502A (ko) 2018-06-29 2021-03-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
CN110677668B (zh) 2018-07-01 2022-06-21 北京字节跳动网络技术有限公司 空间运动压缩
EP4307679A2 (en) 2018-07-02 2024-01-17 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
US10531090B1 (en) 2018-07-02 2020-01-07 Tencent America LLC Method and apparatus for video coding
US11051010B2 (en) 2018-07-18 2021-06-29 Mediatek Inc. Merge candidates with multiple hypothesis
US10362330B1 (en) 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
US10523963B1 (en) 2018-07-30 2019-12-31 Tencent America LLC Method and apparatus for merge mode in video coding
CN110858905B (zh) 2018-08-26 2023-04-07 北京字节跳动网络技术有限公司 基于多运动模型的跳过和直接模式编解码的视频块中的修剪方法及装置
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
CN112740685A (zh) * 2018-09-19 2021-04-30 韩国电子通信研究院 图像编码/解码方法和装置以及存储有比特流的记录介质
CN110944205A (zh) 2018-09-23 2020-03-31 北京字节跳动网络技术有限公司 8参数仿射模式
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
WO2020084556A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block motion candidate list in video coding
EP3854092A4 (en) 2018-11-02 2021-11-17 Beijing Bytedance Network Technology Co. Ltd. KEEPING TABLES FOR THE STORAGE OF HMVP CANDIDATES
CN113056917B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 为视频处理使用具有几何分割的帧间预测
WO2020094074A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
CN112997480B (zh) 2018-11-10 2023-08-22 北京字节跳动网络技术有限公司 成对平均候选计算中的取整
CN113228635B (zh) 2018-11-13 2024-01-05 北京字节跳动网络技术有限公司 用于帧内块复制的运动候选列表构建方法
WO2020098713A1 (en) 2018-11-13 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for prediction
WO2020098810A1 (en) 2018-11-17 2020-05-22 Beijing Bytedance Network Technology Co., Ltd. Merge with motion vector difference in video processing
WO2020103935A1 (en) 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Blending method for inter prediction with geometry partition
WO2020108571A1 (en) 2018-11-28 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Extension method for motion reference in intra block copy mode
WO2020114407A1 (en) 2018-12-03 2020-06-11 Beijing Bytedance Network Technology Co., Ltd. Partial pruning method for hmvp mode
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
KR20210094082A (ko) 2018-12-29 2021-07-28 에스지 디제이아이 테크놀러지 코., 엘티디 비디오 처리 방법 및 기기
CN116866605A (zh) 2019-01-03 2023-10-10 北京大学 视频处理方法和装置
EP3888355A4 (en) 2019-01-10 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. LOOKUP TABLE UPDATE INVOCATION
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147804A1 (en) 2019-01-17 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Use of virtual candidate prediction and weighted prediction in video processing
US10904557B2 (en) 2019-01-22 2021-01-26 Tencent America LLC Method and apparatus for video coding
WO2020164627A1 (en) 2019-02-17 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
SG11202109287PA (en) 2019-02-27 2021-09-29 Huawei Tech Co Ltd Adaptation parameter set identifier value spaces in video coding
WO2020175893A1 (ko) * 2019-02-28 2020-09-03 엘지전자 주식회사 Aps 시그널링 기반 비디오 또는 영상 코딩
MX2021011025A (es) 2019-03-11 2021-11-12 Huawei Tech Co Ltd Un codificador, un decodificador y métodos correspondientes.
KR20210134038A (ko) 2019-03-13 2021-11-08 에스지 디제이아이 테크놀러지 코., 엘티디 비디오 처리 방법 및 기기
CN113574889B (zh) 2019-03-14 2024-01-12 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
EP3925215A4 (en) 2019-03-24 2022-08-17 Beijing Bytedance Network Technology Co., Ltd. ADAPTABLE MULTIPARAMETER LOOP FILTERING IN VIDEO PROCESSING
CN113647110B (zh) 2019-04-01 2022-11-08 北京字节跳动网络技术有限公司 帧间编码模式中的二分之一像素插值滤波器的指示
JP7405865B2 (ja) 2019-04-15 2023-12-26 北京字節跳動網絡技術有限公司 非線形適応ループフィルタにおけるパラメータの時間的予測
WO2020211810A1 (en) 2019-04-16 2020-10-22 Beijing Bytedance Network Technology Co., Ltd. On adaptive loop filtering for video coding
US11284114B2 (en) * 2019-04-23 2022-03-22 Qualcomm Incorporated Adaptive loop filter set index signaling
KR20210135337A (ko) * 2019-05-14 2021-11-12 엘지전자 주식회사 적응적 루프 필터 기반 비디오 또는 영상 코딩
US11019334B2 (en) * 2019-05-17 2021-05-25 Qualcomm Incorporated Multiple adaptive loop filter sets for video coding
EP3963890A4 (en) 2019-06-04 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. BUILDING A LIST OF MOVEMENT CANDIDATES USING NEIGHBOR BLOCK INFORMATION
WO2020244568A1 (en) 2019-06-04 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list with geometric partition mode coding
US11166033B2 (en) * 2019-06-06 2021-11-02 Qualcomm Incorporated Adaptation parameter set in access unit in video coding
US11736688B2 (en) * 2019-06-21 2023-08-22 Qualcomm Incorporated Adaptive loop filter signalling
WO2021008513A1 (en) 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Transform block size restriction in video coding
WO2021057996A1 (en) 2019-09-28 2021-04-01 Beijing Bytedance Network Technology Co., Ltd. Geometric partitioning mode in video coding
US11432016B2 (en) 2019-12-05 2022-08-30 Hfi Innovation Inc. Methods and apparatuses of syntax signaling constraint for cross-component adaptive loop filter in video coding system
US11563980B2 (en) * 2020-04-02 2023-01-24 Qualcomm Incorporated General constraint information syntax in video coding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090196342A1 (en) * 2006-08-02 2009-08-06 Oscar Divorra Escoda Adaptive Geometric Partitioning For Video Encoding
WO2012097740A1 (zh) * 2011-01-19 2012-07-26 华为技术有限公司 标识图像块几何划分模式的编解码方法和设备
US20180063543A1 (en) * 2016-08-31 2018-03-01 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
WO2018161954A1 (en) * 2017-03-10 2018-09-13 Mediatek Inc. Method and apparatus of implicit intra coding tool settings with intra directional prediction modes for video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN, CHUN-CHI 等: "Non-CE4/8: On disabling blending process in TPM", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 15TH MEETING: GOTHENBURG, SE *
ZHANG, KAI 等: "Non-CE4: Cleanups on syntax design for sub-block coding tools", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 15TH MEETING: GOTHENBURG, SE, pages 1 *

Also Published As

Publication number Publication date
US11509893B2 (en) 2022-11-22
US20220132118A1 (en) 2022-04-28
CN114175636B (zh) 2024-01-12
JP7318099B2 (ja) 2023-07-31
WO2021008514A1 (en) 2021-01-21
KR20220030995A (ko) 2022-03-11
CN114128258A (zh) 2022-03-01
CN114128258B (zh) 2023-12-22
US20230231997A1 (en) 2023-07-20
CN114175636A (zh) 2022-03-11
CN114128295B (zh) 2024-04-12
US11647186B2 (en) 2023-05-09
CN117354547A (zh) 2024-01-05
JP2023126565A (ja) 2023-09-07
EP3984215A1 (en) 2022-04-20
JP2022541012A (ja) 2022-09-21
US20220132119A1 (en) 2022-04-28
WO2021008513A1 (en) 2021-01-21
EP3984215A4 (en) 2022-08-24
WO2021008511A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
CN113424525B (zh) 解码器侧细化工具的尺寸选择性应用
JP7446339B2 (ja) 幾何学的分割モードコーディングを用いた動き候補リスト
CN114128258B (zh) 视频编解码中的变换块尺寸的限制
CN114009037A (zh) 帧内块复制模式的运动候选列表构建
CN114450959A (zh) 视频编解码中的几何分割模式
JP7460661B2 (ja) 映像符号化のための動き候補リストの構成
CN113966616B (zh) 使用临近块信息的运动候选列表构建
CN113940082A (zh) 基于子块的帧内块复制和不同编解码工具之间的交互
CN113994682A (zh) 具有默认参数的基于历史的运动矢量预测
CN114097219A (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