CN113924778A - 具有三角形分割的帧内块复制 - Google Patents

具有三角形分割的帧内块复制 Download PDF

Info

Publication number
CN113924778A
CN113924778A CN202080041723.XA CN202080041723A CN113924778A CN 113924778 A CN113924778 A CN 113924778A CN 202080041723 A CN202080041723 A CN 202080041723A CN 113924778 A CN113924778 A CN 113924778A
Authority
CN
China
Prior art keywords
sub
block
mode
regions
ibc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080041723.XA
Other languages
English (en)
Inventor
张莉
刘鸿彬
张凯
王悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN113924778A publication Critical patent/CN113924778A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

描述了具有三角形分割的帧内块复制。一种示例性方法包括:针对视频的块和该块的比特流表示之间的转换,确定对该块的多个子区域应用帧内块复制(IBC)模式、帧内模式、帧间模式和调色板模式中的至少一者,其中该块被划分成两个或更多个三角形或楔形子区域;以及基于该确定执行转换。

Description

具有三角形分割的帧内块复制
相关申请的交叉引用
根据适用的《专利法》和/或《巴黎公约》的规定,本申请及时要求于2019年6月3日提交的国际专利申请号PCT/CN2019/089795的优先权和利益。将国际专利申请号PCT/CN2019/089795的全部公开以引用方式并入本文,作为本申请公开的一部分。
技术领域
本文涉及视频和图像编解码和解码技术。
背景技术
数字视频占据了因特网和其他数字通信网络上最大的带宽使用。随着连接在一起的能够接收和显示视频的用户设备的数量增大,预计数字视频使用的带宽需求将持续增长。
发明内容
可以由其中使用非矩形分割将块划分成多个子块的视频或图像解码器或编码器实施例中使用公开的技术。例如,非矩形分割可以包括楔形分割或三角形分割。
在一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示的转换期间,决定(2402)每个子区域的转换基于使用当前图片作为参考图片的编解码方法;基于该决定,确定(2404)用于多个子区域的IBC编解码的运动矢量;以及使用两种不同的运动矢量执行(2406)转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于使用当前图片作为参考图片的编解码方法,另一个子区域的转换基于与IBC编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于帧内编解码模式,另一个子区域的转换基于与帧内编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,确定基于调色板编解码模式对子区域进行编解码,用于至少两个子区域的调色板彼此不同;以及基于该确定执行转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于调色板编解码模式,另一个子区域的转换基于与调色板编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:使用以上条款中任一项中所述的方法执行视频分量的块和该块的比特流表示之间的转换,使得该视频的另一分量的对应块之间的转换是使用与该块的转换所用的不同编解码技术执行的。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,使用每个子区域的预测确定针对该当前视频块的最终预测;以及基于该决定执行转换。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,将一子区域的运动信息存储为当前视频块的运动信息;以及使用该运动信息转换当前视频块或后续视频块。
在另一个示例性方面中,公开了一种处理视频的方法。该方法包括:针对视频的块和该块的比特流表示之间的转换,确定对该块的多个子区域应用帧内块复制(IBC)模式、帧内模式、帧间模式和调色板模式中的至少一者,其中该块被划分成两个或更多个三角形或楔形子区域;以及基于该确定执行转换。
在另一个示例性方面中,可以由包括处理器的视频解码器装置实施上述方法。
在另一个示例性方面中,可以由包括处理器的视频编码器装置实施上述方法。
在又一示例性方面中,这些方法可以被体现为处理器可执行指令的形式并存储于计算机可读程序介质上。
在本文中进一步描述了这些和其他方面。
附图说明
图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示出了最终运动矢量表达(UMVE)搜索过程的示例。
图16示出了UMVE搜索点的示例。
图17示出了DMVR中列表0和列表1之间成镜像的MVD(0,1)的示例。
图18示出了可以在一次迭代中检查的MV。
图19是帧内块复制(IBC)模式的图示。
图20示出了将块划分成四个子区域的示例。
图21示出了将块划分成两个楔形子区域的示例。
图22示出了将块划分成两个楔形子区域的示例。
图23是视频处理装置的示例的框图。
图24是视频处理方法的示例的流程图。
图25是视频处理方法的示例的流程图。
具体实施方式
本文提供了图像或视频比特流的解码器可以使用的各种技术,以提高解压缩或解码数字视频或图像的质量。为了简洁起见,“视频”一词在本文当中被用来既包含图片的序列(常规上被称为视频),又包含单独图像。此外,视频编码器还可以在编码过程期间实施这些技术,以便重构用于进一步的编码的解码帧。
本文中使用了章节标题,其目的是便于理解,而非使实施例和技术局限于对应的章节。照此,来自一个章节的实施例可以与来自其他章节的实施例相结合。
1简要总结
本专利文献涉及视频编解码技术。具体地,本专利文献涉及视频编解码中的调色板模式。其可以应用于现有的视频编解码标准,如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),其致力于研究以相较于HEVC有50%的比特率下降为目标的VVC标准。
2.1 HEVC/H.265中的帧间预测
对于帧间编解码的编解码单元(CU),根据分割模式,可以将其编解码成具有一个预测单元(PU)、2个PU。每一帧间预测PU具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。还可以使用inter_pred_idc对两个参考图片列表之一的使用进行信令通知。运动矢量可以被显式编解码成相对于预测子(predictor)的Δ。
在采用skip模式对CU编解码时,一个PU与该CU相关联,并且没有显著的残差系数,没有编解码运动矢量Δ或参考图片索引。merge模式被规定为使得当前PU的运动参数是从包括空域候选和时域候选的相邻PU获得的。merge模式可以被应用于任何帧间预测PU,而不仅针对skip模式的那些。merge模式的一种替代方案是运动参数的显式传输,其中,根据每一PU对运动矢量(更确切而言,相较于运动矢量预测子的运动矢量差(MVD))、每一参考图片列表的对应参考图片索引和参考图片列表使用进行显式信令通知。在本公开中将这样的模式称为高级运动矢量预测(AMVP)。
在信令表明将采用这两个参考图片列表之一时,PU由一个样点块生成。这种做法被称为“单向预测”。对于P条带和B条带两者而言,单向预测都是可用的。
在信令表明这两个参考图片列表都要使用时,PU由两个样点块生成。
这种做法被称为“双向预测”。双向预测只对B条带可用。
下文将提供有关在HEVC中规定的这些帧间预测模式的细节。描述将开始于merge模式。
2.1.1参考图片列表
在HEVC中,帧间预测一词用于表示从参考图片(而非当前解码图片)的数据元(例如,样点值或运动矢量)推导的预测。与H.264/AVC中类似,一个图片可以是由多个参考图片预测的。用于帧间预测的参考图片被组织到一个或多个参考图片列表当中。参考索引识别出应当将列表中的哪个参考图片用于创建预测信号。
单个参考图片列表,即List 0被用于P条带,两个参考图片列表,即List 0和List1被用于B条带。应当指出,包含在List 0/1中的参考图片可以参照俘获/显示顺序来自于过去图片和未来图片。
2.1.2 Merge模式
2.1.2.1 merge模式的候选的推导
在使用merge模式预测PU时,从比特流中解析出指向merge候选列表中的条目的索引,并采用其检索运动信息。在HEVC标准中规定了对这一列表的构建,可以根据下述步骤序列对其做出总结:
·步骤1:初始候选推导
ο步骤1.1:空域候选推导
ο步骤1.2:对空域候选的冗余检查
ο步骤1.3:时域候选推导
·步骤2:额外候选插入
ο步骤2.1:双向预测候选的创建
ο步骤2.2:零运动候选的插入
还在图1中示意性示出了这些步骤。对于空域merge候选推导而言,从位于五个不同位置上的候选当中选出最多四个merge候选。对于时域merge候选推导而言,从两个候选当中选出最多一个merge候选。由于在解码器处对于每一PU采取恒定数量的候选,因而在从步骤1获得的候选的数量未达到在条带标头中信令通知的merge候选最大数量(MaxNumMergeCand)时,生成额外的候选。由于候选的数量是恒定的,因而采用截断一元二值化(TU)对最佳merge候选的索引编码。如果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候选的推导当中,在属于处在既定参考图片列表内的与当前图片之间具有最小POC差的图片的并置PU的基础上推导出缩放运动矢量。在条带标头内对将用于并置PU的推导的参考图片列表进行显式信令通知。用于时域merge候选的缩放运动矢量是如图5中的虚线所示获得的,其利用POC差(即tb和td)由并置PU的运动矢量缩放而成,其中,tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为并置图片的参考图片与并置图片之间的POC差。时域merge候选的参考图片索引被设为等于零。在HEVC规范中描述了缩放过程的实际实现。对于B条带而言,获得两个运动矢量(一个针对参考图片列表0,另一个针对参考图片列表1),并且将其结合产生双向预测merge候选。
在属于参考帧的并置PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6所示。如果位置C0处的PU不可用,是帧内编解码的,或者处于当前编解码树单元(CTU,又名LCU,最大编解码单元)行之外,则采用位置C1。否则,将位置C0用到时域merge候选的推导当中。
2.1.2.4额外候选插入
除了空域和时域merge候选之外,还有两种额外类型的merge候选:组合式双向预测merge候选和零merge候选。组合式双向预测merge候选是通过使用空域merge候选和时域merge候选生成的。组合式双向预测merge候选仅用于B条带。组合式双向预测候选是通过使初始候选的第一参考图片列表运动参数与另一个的第二参考图片列表运动参数相结合而生成的。如果这两个元组提供不同的运动假设,那么它们将形成新的双向预测候选。作为示例,图7示出了采用处于原始列表(左侧)内的两个候选(它们具有mvL0和refIdxL0或者mvL1和refIdxL1)来创建被添加至最终列表(右侧)的组合式双向预测merge候选时的情况。关于所考虑的用以生成这些额外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)
首先检查无空域缩放情况,随后继之以空域缩放。当POC在相邻PU的参考图片和当前PU的参考图片之间存在不同时,不管参考图片列表如何,都考虑空域缩放。如果左侧候选的所有PU都不可用或者是帧内编解码的,那么允许针对上侧运动矢量的缩放,从而有助于左侧MV候选和上侧MV候选的并行推导。否则,不允许针对上侧运动矢量的空域缩放。
在空域缩放过程中,按照与时域缩放的类似的方式对相邻PU的运动矢量进行缩放,如图9所示。主要差异在于当前PU的参考图片列表和索引是作为输入给出的;实际缩放过程与时域缩放的相同。
2.1.3.3时域运动矢量候选
撇除参考图片索引推导之外,时域merge候选的推导的所有过程均与空域运动矢量候选的推导(参见图6)相同。将参考图片索引信令通知给解码器。
2.2 VVC中的帧间预测方法
有几种新的编解码工具用于帧间预测的改进,例如用于信令通知MVD的自适应运动矢量分辨率(AMVR)、具有运动矢量差的Merge(MMVD)、三角形预测模式(TPM)、组合式帧内帧间预测(CIIP)、高级TMVP(ATMVP,也称为SbTMVP)、仿射预测模式、通用双向预测(GBI)、解码器侧运动矢量细化(DMVR)和双向光流(BIO,又称BDOF)。
VVC中支持三种不同的merge列表构建过程:
1)子块merge候选列表:包括ATMVP和仿射merge候选。针对仿射模式和ATMVP模式都共享一种merge列表构建过程。这里,可以按顺序添加ATMVP和仿射merge候选。子块merge列表尺寸在条带标头中被信令通知,最大值为5。
2)常规merge列表:对于剩余的编解码块,共享一种merge列表构建过程。这里,可以按顺序插入空域/时域/HMVP、成对组合式双向预测merge候选和零运动候选。正规merge列表尺寸在条带标头中被信令通知,最大值为6。MMVD、TPM、CIIP依赖于正规merge列表。
3)IBC merge列表:与正规merge列表以类似方式完成。
类似地,VVC中支持三种AMVP列表:
1)仿射AMVP候选列表
2)常规AMVP候选列表
3)IBC AMVP候选列表:与IBC merge列表相同的构建过程
2.2.1 VVC中的编解码块结构
在VVC中,采取四叉树/二叉树/三叉树(QT/BT/TT)结构将图片划分成方形或矩形块。
除了QT/BT/TT之外,在VVC中还对I帧采取分离(separate)树(又称双重编解码树)。借助于分离树,针对亮度分量和色度分量单独地信令通知编解码块结构。
另外,除了对于利用一些特定编解码方法(例如,帧内子分割预测,其中,PU等于TU,但小于CU,以及用于帧间编解码块的子块变换,其中PU等于CU,但TU小于PU)编解码的块之外,将CU设置为等于PU和TU。
2.2.2仿射预测模式
在HEVC中,仅应用平移运动模型进行运动补偿预测(MCP)。而在现实世界中,则有很多种类的运动,例如,拉近/拉远、旋转、透视运动和其他不规则运动。在VVC中,采用4参数仿射模型和6参数仿射模型应用简化的仿射变换运动补偿预测。如图10所示,通过4参数仿射模型的两个控制点运动矢量(CPMV)和6参数仿射模型的3个CPMV描述块的仿射运动场。
分别通过下述方程描述块的运动矢量场(MVF),其中,4参数仿射模型(其中,4个参数被定义为变量a、b、e和f)处于方程(1)当中,并且6参数仿射模型(其中,6个参数被定义为a、b、c、d、e和f)处于方程(2)中:
Figure BDA0003393799610000111
Figure BDA0003393799610000112
其中,(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模式当中)或者可以是即时推导的(比如在仿射merge模式当中)。w和h是当前块的宽度和高度。在实践当中,通过右移连同取整运算实施该除法。在VTM中,代表点被定义为子块的中心位置,例如,在子块的左上角相对于当前块内的左上样点的坐标为(xs,ys)时,那么代表点的坐标被定义为(xs+2,ys+2)。对于每一子块(例如,VTM中的4x4),均采用该代表点推导整个子块的运动矢量。
为了进一步简化运动补偿预测,应用基于子块的仿射变换预测。为了推导每一M×N(在当前VVC中,M和N两者都被设置为4)子块的运动矢量,根据方程(1)和方程(2)计算每一子块的中心样点的运动矢量(如图11所示),并且被取整为达到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:默认运动候选
可以在AMVP和merge候选列表构建过程中都使用HMVP候选。图13绘示了修改的merge候选列表构建过程(以蓝色突出显示)。在插入TMVP候选之后merge候选列表不完整时,可以利用HVMP表中存储的HMVP候选填充merge候选列表。考虑到就运动信息而言,一个块通常与最近的相邻块具有更高相关性,所以按照索引的降序插入表格中的HMVP候选。表格中的最后条目首先被插入列表中,而最后条目最后被添加。类似地,对HMVP候选应用冗余消除。一旦可用merge候选的总数达到允许信令通知的merge候选的最大数量,则终止merge候选列表的构建过程。
要指出的是,所有空域/时域/HMVP候选都应利用非IBC模式编解码。否则,不允许将其添加到常规merge候选列表。
HMVP表包含最多5个常规运动候选,它们中的每个都是唯一的。
2.2.3.2三角形预测模式(TPM)
在VTM4中,对于帧间预测支持三角形分割模式。仅对8x8或更大的并且在merge模式下而非MMVD或CIIP模式下编解码的CU应用三角形分割模式。对于满足这些条件的CU,信令通知CU级别的标志以指示是否应用三角形分割模式。
在使用这种模式时,如图13所示,使用对角线划分或反对角线划分将CU均匀划分成两个三角形形状的分割。该CU中的每个三角形分割都利用其自身的运动进行帧间预测;对于每个分割,仅允许单向预测,亦即,每个分割都具有一个运动矢量和一个参考索引。应用单向预测运动约束来确保:与常规双向预测相同,每个CU只需两项运动补偿预测。
如果CU级别的标志指示当前CU是使用三角形分割模式编解码的,则进一步信令通知指示三角形分割的方向(对角线或反对角线)的标志和两个merge索引(每个用于一种分割)。在预测三角形分割的每种之后,使用具有自适应权重的混合处理来调节沿对角线或反对角线边缘的样点值。这是用于整个CU的预测信号,变换和量化过程将如其他预测模式中一样被应用于整个CU。最后,使用三角形分割模式预测的CU的运动场被存储到各4x4单元内。
常规merge候选列表被重复用于三角形分割merge预测,而无需额外的运动矢量剪枝。对于常规merge候选列表中的每个merge候选,其L0或L1运动矢量中有且仅有一者被用于三角形预测。另外,选择L0和L1运动矢量的顺序基于其merge索引的奇偶性。利用这种方案,可以直接使用常规merge列表。
2.2.3.3 MMVD
将介绍最终运动矢量表达(UMVE,又称为MMVD)。UMVE用于与所提出的运动矢量表达方法相结合的skip模式或merge模式。
UMVE重新使用与包含在VVC中的常规merge候选列表当中的那些merge候选相同的merge候选。在这些merge候选当中,可以选择基础候选,并且通过所提出的运动矢量表达方法对基础候选做进一步扩充。
UMVE提供了一种新的运动矢量差(MVD)表示方法,其中,采用起始点、运动幅度和运动方向表示MVD。
所提出的这种技术照原样使用merge候选列表。但是仅考虑将默认merge类型(MRG_TYPE_DEFAULT_N)的候选用于UMVE的扩充。
基础候选索引定义起始点。基础候选索引指示列表内的候选当中的最佳候选,如下文所述。
表1。基础候选IDX
基础候选IDX 0 1 2 3
第N MVP 第1MVP 第2MVP 第3MVP 第4MVP
如果基础候选的数量等于1,那么不对基础候选IDX进行信令通知。
距离索引是运动幅度信息。距离索引由起始点信息指示预定义距离。预定义距离如下:
表2。距离IDX
Figure BDA0003393799610000141
方向索引表示MVD相对于起始点的方向。方向索引可以表示如下文所示的四个方向。
表3。方向IDX
方向IDX 00 01 10 11
x轴 + N/A N/A
y轴 N/A N/A +
在发送skip标志或merge标志之后立即信令通知UMVE标志。如果skip或merge标志为真,那么对UMVE标志进行解析。如果UMVE标志等于1,那么对UMVE语法进行解析。但是,如果不等于1,那么对AFFINE标志进行解析。如果AFFINE标志等于1,其为AFFINE模式,但是如果不等于1,那么对skip/merge索引进行针对VTM的skip/merge模式的解析。
不需要因UMVE候选引起的额外行缓存。因为软件的skip/merge候选被直接用作基础候选。在使用输入UMVE索引的情况下,对MV的补充是刚好在运动补偿之前决定的。没有必要为此保持长行缓存。
在当前的普通测试条件下,可以选择merge候选列表内的第一merge候选或者第二merge候选作为基础候选。
UMVE又被称为采用MV差的Merge(MMVD)。
2.2.3.4组合式帧内和帧间预测(CIIP)
提出了多假设预测,其中,组合式帧内和帧间预测是一种生成多个假设的方式。
在应用多假设预测改善帧内模式时,多假设预测结合了一种帧内预测和一种merge索引预测。在merge CU中,针对merge模式信令通知一个标志,从而在该标志为真时从帧内候选列表选择帧内模式。对于亮度分量而言,仅从一种帧内预测模式,即平面模式推导帧内候选列表。通过两个相邻块(A1和B1)的编解码模式(帧内或非帧内)来确定应用于来自帧内和帧间预测的预测块的权重。
2.2.4用于基于子块的技术的MERGE
建议除了用于非子块merge候选的常规merge列表之外,将所有子块相关的运动候选放在独立的merge列表中。
放置子块相关运动候选的独立merge列表被称为“子块merge候选列表”。
在一个示例中,子块merge候选列表包括ATMVP候选和仿射merge候选。
按以下顺序利用候选填充子块merge候选列表:
a.ATMVP候选(可能可用或不可用);
b.仿射merge列表(包括继承的仿射候选;以及构建的仿射候选)
c.填补为零MV 4参数仿射模型
2.2.4.1.1 ATMVP(又名子块时域运动矢量预测子,SbTMVP)
ATMVP的基本理念是针对一个块推导多组时域运动矢量预测子。为每个子块分配一组运动信息。在生成ATMVP merge候选时,在8×8级别而不是整个块的级别上进行运动补偿。
2.2.5常规帧间模式(AMVP)
2.2.5.1 AMVP运动候选列表
类似于HEVC中的AMVP设计,可以推导最多2个AMVP候选。不过,也可以在TMVP候选之后添加HMVP候选。按照索引的升序(即,从等于0的索引,即最早的索引开始)遍历HMVP表中的HMVP候选。可以检查最多达4个HMVP候选以查明其参考图片是否与目标参考图片相同(即,相同的POC值)。
2.2.5.2 AMVR
在HEVC中,在条带标头中use_integer_mv_flag等于0时,以四分之一亮度样点为单位信令通知运动矢量差值(MVD)(在PU的运动矢量和预测运动矢量之间)。在VVC中,引入了局部自适应运动矢量分辨率(AMVR)。在VVC中,能够以四分之一亮度样点、整亮度样点和四亮度样点(即,1/4像素、1像素、4像素)为单位对MVD编解码。在编解码单元(CU)级上控制该MVD分辨率,并且针对每一个具有至少一个非零MVD分量的CU以常规方式信令通知MVD分辨率标志。
对于具有至少一个非零MVD分量的CU而言,信令通知第一标志,以指示在CU中是否使用四分之一亮度样点MV精确度。在第一标志(等于1)指示不使用四分之一亮度样点MV精确度时,信令通知另一标志,以指示是否采用整亮度样点MV精确度或四亮度样点MV精确度。
在CU的第一MVD分辨率标志为零时,或者未对CU编解码该标志时(意味着CU内的所有MVD均为零),对该CU使用四分之一亮度样点MV分辨率。在CU使用整亮度样点MV精确度或者四亮度样点MV精确度时,该CU的AMVP候选列表中的MVP被相对于对应的精确度取整。
2.2.5.3对称运动矢量差
对双向预测中的运动信息编解码应用对称运动矢量差(SMVD)。
首先,如N1001-v2中规定的,在条带级上,采用下述步骤推导出分别指示SMVD模式中使用的列表0/1的参考图片索引的变量RefIdxSymL0和RefIdxSymL1。在这两个变量中的至少一者等于-1时,应当禁用SMVD模式。
2.2.6运动信息的细化
2.2.6.1解码器侧运动矢量细化(DMVR)
在双向预测操作中,对于一个块区的预测而言,结合分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块,以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,进一步细化双向预测的两个运动矢量。
对于VVC中的DMVR,采取列表0和列表1之间的MVD镜像,如图17所示,并且执行双边匹配来细化MV,即在几个MVD候选当中找到最佳MVD。通过MVL0(L0X,L0Y)和MVL1(L1X,L1Y)来表示两个参考图片列表的MV。列表0的可以使成本函数(例如,SAD)最小化的由(MvdX,MvdY)表示的MVD被定义为最佳MVD。对于SAD函数而言,其被定义为列表0的参考块和列表1的参考块之间的SAD,列表0的参考块是采用列表0参考图片中的运动矢量(L0X+MvdX,L0Y+MvdY)推导的,列表1参考块是采用列表1参考图片内的运动矢量(L1X-MvdX,L1Y-MvdY)推导的。
运动矢量细化过程可以迭代两次。在每次迭代中,可以按照两个步骤检查最多6个MVD(具有整像素精确度),如图18所示,第一步骤,检查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:
MvdX=-1;
MvdY=-1;
If(Sad(1,0)<Sad(-1,0))
MvdX=1;
If(Sad(0,1)<Sad(0,-1))
MvdY=1;
在第一次迭代中,起始点是信令通知MV,并且在第二次迭代中,起始点是信令通知MV加第一次迭代中的选定最佳MVD。DMVR仅在一个参考图片是在先图片并且另一参考图片是随后图片并且这两个参考图片相对于当前图片具有相同的图片顺序计数距离时适用。
为了进一步简化DMVR的过程,提出了对JEM中的设计的几项变化。更具体地,被VTM-4.0(将很快发布)采纳的DMVR设计具有下述主要特征:
·在列表0和列表1之间的(0,0)位置SAD小于阈值时提早终止。
·当对于某一位置而言列表0和列表1之间的SAD为零时提早终止。
·DMVR的块尺寸:W*H>=64&&H>=8,其中,W和H是块的宽度和高度。
·对于CU尺寸>16*16的DMVR而言,将CU划分成多个16x16子块。当只有CU的宽度或高度大于16时,仅在垂直方向或水平方向内对其进行划分。
·参考块尺寸(W+7)*(H+7)(对于亮度而言)。
·基于25点SAD的整像素搜索(即,(+-)2细化搜索范围,单阶段)
·基于双线性插值的DMVR。
·基于“参数误差表面方程”的亚像素细化。仅当在最后一次MV细化迭代中最低SAD成本不等于零并且最佳MVD为(0,0)时执行这一过程。
·亮度/色度MC w/参考块填充(如果需要的话)。
·仅用于MC和TMVP的经细化MV。
2.2.6.1.1 DMVR的使用
在下述条件均为真时,可以启用DMVR:
–SPS中的DMVR启用标志(即,sps_dmvr_enabled_flag)等于1
–TPM标志、帧间仿射标志和子块merge标志(要么ATMVPmerge,要么仿射merge)标志全都等于0
–merge标志等于1
–对当前块进行双向预测,并且当前图片与列表1中的参考图片之间的POC距离等于列表0中的参考图片与当前图片之间的POC距离
–当前CU高度大于或等于8
–亮度样点的数量(CU宽度*高度)大于或等于64
2.2.6.1.2基于“参数误差表面方程”的亚像素细化
下面将总结该方法:
1.仅当中心位置是既定迭代中的最佳位置时才计算所拟合的参数误差表面。
2.中心位置成本和相距中心处于(-1,0)、(0,-1)、(1,0)和(0,1)位置上的成本用于拟合下述形式的2-D抛物线误差表面方程
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.2.6.2双向光流(BDOF)
2.3帧内块复制
帧内块复制(IBC),又名当前图片引用,已经被采纳到HEVC屏幕内容编解码扩展(HEVC-SCC)和当前VVC测试模型(VTM-4.0)中。IBC将运动补偿的概念从帧间编解码扩展到帧内编解码。如图18中所示,在应用IBC时,通过同一图片中的参考块预测当前块。在对当前块进行编解码或解码之前,必须已经重构了参考块中的样点。尽管IBC并非对于大部分相机捕获序列都那么高效率,但其展现出对于屏幕内容显著的编解码增益。原因在于在屏幕内容图片中存在大量的重复图案,例如图标和文本字符。IBC能够有效地消除这些重复图案之间的冗余。在HEVC-SCC中,如果IBC选择当前图片作为其参考图片,则帧间编解码的编解码单元(CU)可以应用IBC。在这种情况下,MV被重新命名为块矢量(BV),BV始终具有整像素的精度。为了与主要档次HEVC兼容,在解码图片缓冲区(DPB)中将当前图片标记为“长期”参考图片。应当指出,类似地,在多种视图/3D视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
遵循BV找到其参考块,可以通过复制参考块来生成预测。可以通过从初始信号减去参考像素来获得残差。然后可以如其他编解码模式中那样,应用变换和量化。
不过,在参考块在图片外部,或与当前块重叠,或在重构区域外部,或在某些约束限制的有效区域外部时,不定义部分或全部像素值。基本上,有两种方案来处理此类问题。一种方案是例如在比特流一致性中不允许此类状况。另一种方案是为那些未定义的像素值应用填补。以下小节详细描述方案。
2.3.1 VCC测试模型中的IBC(VTM4.0)
在当前的VCC测试模型中,即,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列表的构建:
·步骤1:空域候选的推导
·步骤2:HMVP候选的插入
·步骤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候选。
要指出的是,可以向IBC merge列表中插入无效merge候选。
2.3.1.2 IBC AMVP模式
在IBC AMVP模式中,从比特流解析指向IBC AMVP列表中的条目的AMVP索引。可以根据以下步骤序列总结IBC AMVP列表的构建:
·步骤1:空域候选的推导
ο检查A0、A1,直到发现可用候选。
ο检查B0、B1、B2,直到发现可用候选。
·步骤2:HMVP候选的插入
·步骤3:零候选的插入
在插入空域候选之后,如果IBC AMVP列表尺寸仍然小于最大IBC AMVP列表尺寸,则可以插入来自HMVP表的IBC候选。
最后,向IBC AMVP列表中插入零个候选。
2.3.1.3色度IBC模式
在当前VVC中,在子块级别执行色度IBC模式中的运动补偿。色度块将被分割成几个子块。每个子块判断对应亮度块是否具有块矢量,并且如果存在,判断其有效性。在当前的VTM中存在编码器约束,其中,如果当前色度CU中的所有子块都具有有效亮度块矢量,将测试色度IBC模式。例如,在YUV 420视频上,色度块为N×M,则共位的亮度区域为2N×2M。色度块的子块尺寸为2×2。有几个步骤来执行色度mv推导,然后执行块复制过程。
1)色度块首先将被分割成(N>>1)*(M>>1)个子块。
2)左上样点坐标为(x,y)的每个子块获取覆盖坐标为(2x,2y)的相同左上样点的对应亮度块。
3)编码器检查所获取亮度块的块矢量(bv)。如果符合以下条件之一,则认为bv是无效的。
a.对应亮度块的bv不存在。
b.由bv标识的预测块尚未被重构。
c.由bv标识的预测块部分或全部与当前块重叠。
4)子块的色度运动矢量被设置为对应亮度子块的运动矢量。
在所有子块都找到有效bv时,在编码器处允许IBC模式。
下文列出了IBC块的解码过程。与IBC模式中的色度mv推导相关的部分被突出表示为灰色
8.6.1用于IBC预测中编解码的编解码单元的通用解码过程
这一过程的输入为:
–亮度位置(xCb,yCb),相对于当前图片的左上亮度样点指定当前编解码块的左上样点,
–变量cbWidth,以亮度样点为单位指定当前编解码块的宽度,
–变量cbHeight,以亮度样点为单位指定当前编解码块的高度,
-变量treeType,指定使用一元树还是二元树,如果使用二元树,指定当前树对应于亮度分量还是色度分量。
这一过程的输出是环路滤波之前的修改重构图片。
调用条款8.7.1中规定的用于量化参数的推导过程,以亮度位置(xCb,yCb)、当前编解码块以亮度样点为单位的宽度cbWidth和当前编解码块以亮度样点为单位的高度cbHeight以及变量treeType作为输入。
在ibc预测模式中编解码的编解码单元的解码过程由以下有序步骤构成:
1.如下推导当前编解码单元的运动矢量分量:
1.如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,以下适用:
-调用条款8.6.2.1中规定的运动矢量分量的推导过程,以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,以亮度运动矢量mvL[0][0]作为输出。
-在treeType等于SINGLE_TREE时,调用条款8.6.2.9中的色度运动矢量的推导过程,以亮度运动矢量mvL[0][0]作为输入,以色度运动矢量mvC[0][0]作为输出。
-亮度编解码子块在水平方向上的数量numSbX以及在垂直方向上的数量numSbY都被设置为等于1。
1.否则,如果treeType等于DUAL_TREE_CHROMA,则以下适用:
-如下推导水平方向上亮度编解码子块的数量numSbX和垂直方向上的数量numSbY:
numSbX=(cbWidth>>2) (8886)
numSbY=(cbHeight>>2) (8887)
-针对xSbIdx=0..BumSbX-1、ySbIdx=0..numSbY-1,如下推导色度运动矢量mvC [xSbIdx][ySbIdx]:
-如下推导亮度运动矢量mvL[xSbIdx][ySbIdx]:
-如下推导共位亮度编解码单元的位置(xCuY,yCuY):
xCuY=xCb+xSbIdx*4 (8888)
yCuY=yCb+ySbIdx*4 (8889)
-如果CuPredMode[xCuY][yCuY]等于MODE INTRA,以下适用:
mvL[xSbIdx][ySbIdx][0]=0 (8890)
mvL[xSbIdx][ySbIdx][1]=0 (8891)
predFlagL0[xSbIdx][ySbIdx]=0 (8892)
predFlagL1[xSbIdx][ySbIdx]=0 (8893)
否则(CuPredMode[xCuY][yCuY]等于MODE_IBC),以下适用:
mvL[xSbIdx][ySbIdx][0]=MvL0[xCuY][yCuY][0] (8894)
mvL[xSbIdx][ySbIdx][1]=MvL0[xCuY][yCuY][1] (8895)
predFlagL0[xSbIdx][ySbIdx]=1 (8896)
predFlagL1[xSbIdx][ySbIdx]=0 (8897)
–调用条款8.6.2.9中的色度运动矢量的推导过程,以mvL[xSbIdx][ySbIdx]作为输入,并以mvC[xSbIdx][ySbIdx]作为输出。
–比特流一致性的要求是色度运动矢量mvC[xSbIdx][ySbIdx]应当遵守以下约束:
–在调用条款6.4.X[Ed.(BB):相邻块可用性检查过程tbd]中规定的块可用性的推导过程时,以设置成等于(xCb/SubWidthC,yCb/SubHeightC)的当前色度位置(xCurr,yCurr)和相邻色度位置(xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5),yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5))作为输入,输出应当等于真。
–在调用条款6.4.X[Ed.(BB):相邻块可用性检查过程tbd]中规定的块可用性的推导过程时,以设置成等于(xCb/SubWidthC,yCb/SubHeightC)的当前色度位置(xCurr,yCurr)和相邻色度位置(xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5)+cbWidth/SubWidthC-1,yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5)+cbHeight/SubHeightC-1)作为输入,输出应当等于真。
–以下状况之一或两者应当为真:
–(mvC[xSbIdx][ySbIdx][0]>>5)+xSbIdx*2+2小于或等于0。
–(mvC[xSbIdx][ySbIdx][1]>>5)+ySbIdx*2+2小于或等于0。
2.如下推导当前编解码单元的预测样点:
–如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则如下推导当前编解码单元的预测样点:
–调用条款8.6.3.1中规定的ibc块的解码过程,以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、亮度编解码子块在水平方向上的数量numSbX和在垂直方向上的数量numSbY、其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1的亮度运动矢量mvL[xSbIdx][ySbIdx]、被设置为等于0的变量cIdx作为输入,并以作为预测亮度样点的(cbWidth)x(cbHeight)阵列predSamplesL的ibc预测样点(predSamples)作为输出。
–否则,如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则如下推导当前编解码单元的预测样点:
–调用条款8.6.3.1中规定的ibc块的解码过程,以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、亮度编解码子块在水平方向上的数量numSbX和在垂直方向上的数量numSbY、其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1的色度运动矢量mvC[xSbIdx][ySbIdx],以及被设置为等于1的变量cIdx作为输入,并以作为用于色度分量Cb的预测色度样点的(cbWidth/2)x(cbHeight/2)阵列predSamplesCb的ibc预测样点(predSamples)作为输出。
–调用条款8.6.3.1中规定的ibc块的解码过程,以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight、亮度编解码子块在水平方向上的数量numSbX和在垂直方向上的数量numSbY、其中xSbIdx=0..numSbX-1且ySbIdx=0..numSbY-1的色度运动矢量mvC[xSbIdx][ySbIdx],以及被设置为等于2的变量cIdx作为输入,并以作为用于色度分量Cr的预测色度样点的(cbWidth/2)x(cbHeight/2)阵列predSamplesCr的ibc预测样点(predSamples)作为输出。
3.变量NumSbX[xCb][yCb]和NumSbY[xCb][yCb]被设置为分别等于numSbX和numSbY。
4.如下推导当前编解码单元的残差样点:
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,调用条款8.5.8中规定的在帧间预测模式中编解码的编解码块的残差信号的解码过程,以被设置为等于亮度位置(xCb,yCb)的位置(xTb0,yTb0)、被设置为等于亮度编解码块宽度cbWidth的宽度nTbW、被设置为等于亮度编解码块高度cbHeight的高度nTbH,以及被设置为等于0的变量cIdx作为输入,并以阵列resSamplesL作为输出。
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_CHROMA时,调用条款8.5.8中规定的在帧间预测模式中编解码的编解码块的残差信号的解码过程,以被设置为等于色度位置(xCb/2,yCb/2)的位置(xTb0,yTb0)、被设置为等于色度编解码块宽度cbWidth/2的宽度nTbW、被设置为等于色度编解码块高度cbHeight/2的高度nTbH,以及被设置为等于1的变量cIdx作为输入,并以阵列resSamplesCb作为输出。
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_CHROMA时,调用条款8.5.8中规定的在帧间预测模式中编解码的编解码块的残差信号的解码过程,以被设置为等于色度位置(xCb/2,yCb/2)的位置(xTb0,yTb0)、被设置为等于色度编解码块宽度cbWidth/2的宽度nTbW、被设置为等于色度编解码块高度cbHeight/2的高度nTbH,以及被设置为等于2的变量cIdx作为输入,并以阵列resSamplesCr作为输出。
5.如下推导当前编解码单元的重构样点:
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_LUMA时,调用条款8.7.5中规定的用于颜色分量的图片重构过程,以被设置为等于(xCb,yCb)的块位置(xB,yB)、被设置为等于cbWidth的块宽度bWidth、被设置为等于cbHeight的块高度bHeight、被设置为等于0的变量cIdx、被设置为等于predSamplesL的(cbWidth)x(cbHeight)阵列predSamples和被设置为等于resSamplesL的(cbWidth)x(cbHeight)阵列resSamples作为输入,并且输出是环路滤波之前的修改重构图片。
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_CHROMA时,调用条款8.7.5中规定的用于颜色分量的图片重构过程,以被设置为等于(xCb/2,yCb/2)的块位置(xB,yB)、被设置为等于cbWidth/2的块宽度bWidth、被设置为等于cbHeight/2的块高度bHeight、被设置为等于1的变量cIdx、被设置为等于predSamplesCb的(cbWidth/2)x(cbHeight/2)阵列predSamples和被设置为等于resSamplesCb的(cbWidth/2)x(cbHeight/2)阵列resSamples作为输入,并且输出是环路滤波之前的修改重构图片。
–在treeType等于SINGLE_TREE或treeType等于DUAL_TREE_CHROMA时,调用条款8.7.5中规定的用于颜色分量的图片重构过程,以被设置为等于(xCb/2,yCb/2)的块位置(xB,yB)、被设置为等于cbWidth/2的块宽度bWidth、被设置为等于cbHeight/2的块高度bHeight、被设置为等于2的变量cIdx、被设置为等于predSamplesCr的(cbWidth/2)x(cbHeight/2)阵列predSamples和被设置为等于resSamplesCr的(cbWidth/2)x(cbHeight/2)阵列resSamples作为输入,并且输出是环路滤波之前的修改重构图片。
2.3.2 IBC的最近进展(VTM5.0中)
2.3.2.1单一BV列表
IBC中用于merge模式和AMVP模式的BV预测子将共享公共预测子列表,该公共预测子列表由以下元素构成:
·2个空域相邻的位置(图2中的A1、B1)
·5个HMVP条目
·默认零个矢量
列表中候选的数量受到从条带标头导出的变量的控制。对于merge模式而言,将使用这一列表的高达前6个条目;对于AMVP模式而言,将使用这一列表的前2个条目。该列表符合共享merge列表区域要求(共享SMR之内的同一列表)。
除了上述BV预测子候选列表之外,还提出简化HMVP候选和现有merge候选(A1,B1)之间的剪枝操作。在简化中,将有最多2次剪枝操作,因为它仅将第一HMVP候选与空域merge候选进行比较。
2.3.2.1.1解码过程
8.6.2.2用于IBC亮度运动矢量预测的推导过程
仅在CuPredMode[xCb][yCb]等于MODE_IBC时调用这个过程,其中(xCb,yCb)相对于当前图片的左上亮度样点指定当前亮度编解码块的左上样点。
这一过程的输入为:
–当前亮度编解码块的左上样点相对于当前图片的左上亮度样点的亮度位置(xCb,yCb),
–变量cbWidth,以亮度样点为单位指定当前编解码块的宽度,
–变量cbHeight,以亮度样点为单位指定当前编解码块的高度,这个过程的输出为:
–1/16分数样点精度的亮度运动矢量mvL。
如下推导变量xSmr、ySmr、smrWidth、smrHeight和smrNumHmvpIbcCand:
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8910)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8911)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth
(8912)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight
(8913)
smrNumHmvpIbcCand=IsInSmr[xCb][yCb]?NumHmvpSmrIbcCand:NumHmvpIbcCand(8914)
通过以下有序步骤推导亮度运动矢量mvL:
1.调用条款8.6.2.3中规定的来自相邻编解码单元的空域运动矢量候选的推导过程,以被设置为等于(xSmr,ySmr)的亮度编解码块位置(xCb,yCb)、被设置为等于smrWidth和smrHeight的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,并且输出为可用性标志availableFlagA1、availableFlagB1和运动矢量mvA1和mvB1
2.如下构建运动矢量候选列表mvCandList:
i=0
if(availableFlagA1)
mvCandList[i++]=mvA1 (8915)
if(availableFlagB1)
mvCandList[i++]=mvB1
3.变量numCurrCand被设置为等于mvCandList中的merging候选的数量。
4.在numCurrCand小于MaxNumMergeCandand且smrNumHmvpIbcCand大于0时,调用8.6.2.4中规定的基于IBC历史的运动矢量候选的推导过程,以mvCandList、被设置为等于IsInSmr[xCb][yCb]的isInSmr和numCurrCand作为输入,并且以修改的mvCandList和numCurrCand作为输出。
5.在numCurrCand小于MaxNumMergeCand时,以下适用,直到numCurrCand等于MaxNumMergeCand:
1.将mvCandList[numCurrCand][0]设置为等于0。
2.将mvCandList[numCurrCand][1]设置为等于0。
3.将numCurrCand增加1。
6.如下推导变量mvIdx:
mvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:mvp_l0_flag[xCb][yCb] (8916)
7.作出如下赋值:
mvL[0]=mergeCandList[mvIdx][0] (8917)
mvL[1]=mergeCandList[mvIdx][1] (8918)
2.3.2.2 IBC的尺寸限制
在最新的VVC和VTM5中,提出在此前VTM和VVC版本中的当前比特流约束之上显式地使用语法约束来禁用128x128 IBC模式,这使得IBC标志的存在取决于CU尺寸<128x128。
2.3.2.3用于IBC的共享merge列表
为了降低解码器复杂度并支持并行编码,提出为CU划分树中的一个祖先节点的所有叶编解码单元(CU)共享相同的merging候选列表,用于实现skip/merge编解码的小CU的并行处理。祖先节点被命名为merge共享节点。在merge共享节点处生成共享merging候选列表,假装merge共享节点为叶CU。
更具体而言,以下可以适用:
-如果块具有不大于32的亮度样点,并且被划分成2个4×4子块,则在非常小的块(例如,两个相邻4×4块)之间使用共享merge列表。
-不过,如果该块具有大于32个亮度样点,在划分之后,至少一个子块小于阈值(32),则该划分的所有子块共享同一个merge列表(例如,16×4或4×16三元划分或8×8四元划分)。
这样的限制仅应用于IBC merge模式。
2.4用于编解码单元和merge模式的语法表和语义
7.3.5.1一般条带标头语法
Figure BDA0003393799610000291
Figure BDA0003393799610000301
7.3.7.5 Coding unit syntax
Figure BDA0003393799610000302
Figure BDA0003393799610000311
Figure BDA0003393799610000321
7.3.7.7 Merge data syntax
Figure BDA0003393799610000322
Figure BDA0003393799610000331
Figure BDA0003393799610000341
7.4.6.1一般条带标头语义
six_minus_max_num_merge_cand指定从6减去的条带中支持的merging运动矢量预测(MVP)候选的最大数量。如下推导merging MVP候选的最大数量MaxNumMergeCand:
MaxNumMergeCand=6-six_minus_max_num_merge_cand (757)
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(758)
MaxNumSubblockMergeCand的值应当处于0到5的范围内,包括0和5。
7.4.8.5编解码单元语义
等于0的pred_mode_flag指示当前编解码单元是以帧间预测模式编解码的。等于1的pred_mode_flag指示当前编解码单元是以帧内预测模式编解码的。
当pred_mode_flag不存在时,对其作如下推断:
–如果cbWidth等于4且cbHeight等于4,推断pred_mode_flag等于1。
–否则,在对I条带解码时,推断pred_mode_flag等于1,在对P或B条带解码时,推断其等于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。
等于1的pred_mode_ibc_flag指示当前编解码单元是以IBC预测模式编解码的。等于0的pred_mode_ibc_flag指示当前编解码单元不是以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条带解码时,推断其等于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]指定列表0的运动矢量预测子索引,其中,x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
在mvp_l0_flag[x0][y0]不存在时,推断其等于0。
mvp_l1_flag[x0][y0]具有与mvp_l0_flag相同的语义,其中l0和列表0分别被l1和列表1替代。
inter_pred_idc[x0][y0]指定根据Table 710对当前编解码单元使用列表0、列表1还是双向预测。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
表7-10—与帧间预测模式的名称关联
Figure BDA0003393799610000361
在inter_pred_idc[x0][y0]不存在时,推断其等于PRED_L0。
7.4.8.7 Merge数据语义
等于1的regular_merge_flag[x0][y0]指定使用常规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。
等于1的mmvd_merge_flag[x0][y0]指定使用具有运动矢量差的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。
–regular_merge_flag[x0][y0]等于0。
–否则,推断mmvd_merge_flag[x0][y0]等于0。
mmvd_cand_flag[x0][y0]指定将merging候选列表中的第一(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]指定用于如Table 712中规定的那样推导MmvdDistance[x0][y0]的索引。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
表7-12—基于mmvd_distance_idx[x0][y0]的MmvdDistance[x0][y0]的规范。
Figure BDA0003393799610000371
mmvd_direction_idx[x0][y0]指定用于如Table 713中规定的那样推导MmvdSign[x0][y0]的索引。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
表7-13—基于mmvd_direction_idx[x0][y0]的MmvdSign[x0][y0]的规范
Figure BDA0003393799610000372
Figure BDA0003393799610000381
如下推导merge加MVD偏移MmvdOffset[x0][y0]的两个分量:
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0](7124)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1](7125)
merge_subblock_flag[x0][y0]指定用于当前编解码单元的基于子块的帧间预测参数是否是从相邻块推断出的。阵列索引x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。在merge_subblock_flag[x0][y0]不存在时,推断其等于0。
merge_subblock_idx[x0][y0]指定基于子块的merging候选列表的merging候选索引,其中,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时,将变量IntraPredModeY[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]指定基于三角形形状的第一merging候选索引的运动补偿候选列表,其中,x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
在merge_triangle_idx0[x0][y0]不存在时,推断其等于0。
merge_triangle_idx1[x0][y0]指定基于三角形形状的第二merging候选索引的运动补偿候选列表,其中,x0、y0指定所考虑的编解码块的左上亮度样点相对于该图片的左上亮度样点位置(x0,y0)。
在merge_triangle_idx1[x0][y0]不存在时,推断其等于0。
merge_idx[x0][y0]指定merging候选列表的merging候选索引,其中,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。
3实施例解决的技术问题示例
当前IBC可能具有下述问题:
1.IBC仅适用于正方形或矩形的编解码单元。对IBC编解码块使用类似于TPM的技术可能带来额外编解码增益。
4各种技术和实施例
下文的详细技术应被视为解释一般概念的示例。不应狭义地解释这些技术。此外,这些发明可以以任何方式组合。
在本节中,帧内块复制(IBC)可以不限于当前IBC技术,而是可以被解释为使用当前条带/片/砖块/图片/其他视频单元(例如,CTU行)之内的参考样点的技术。
可以对划分成两个或更多个三角形或楔形子区域的块之内的N(N>1)个子区域应用IBC/帧内。
1.如下给出了三角形/楔形分割生成的子区域的一些示例。
a.图20中绘示了被划分成两个三角形区域的块的示例。
b.图21中绘示了被划分成四个三角形区域的块的示例。
c.图22中绘示了被划分成两个三角形区域的块的示例。
针对子区域的模式组合
2.在一个块被划分成多个子区域时,所有子区域都可以是IBC模式编解码的,不过,它们中的至少两个是利用不同运动矢量(又名BV)编解码的。
a.在一个示例中,可以对运动矢量(MV)或根据子区域的MV预测子推导的运动矢量的运动矢量差(MVD)进行编解码。
i.在一个示例中,可以使用子区域相对于运动矢量预测子的运动矢量的预测性编解码。
ii.在一个示例中,运动矢量预测子可以是从常规IBC AMVP候选列表推导的。
iii.在一个示例中,可以使用一个子区域相对于另一个子区域的运动矢量的预测性编解码。
iv.在一个示例中,子区域可以共享单个AMVP候选列表。
v.在一个示例中,子区域可以利用不同的AMVP候选列表。
b.在一个示例中,子区域的运动矢量可以是继承的或从MV候选索引推导的。
i.在一个示例中,子区域的运动矢量可以是从常规IBC merge候选列表推导的。
ii.在一个示例中,子区域的运动矢量可以是从MV候选列表推导的,这可能与常规IBC merge候选列表构建过程不同。
1.在一个示例中,可以在MV候选列表中检查不同的空域相邻(邻接或不邻接)块。
iii.可以信令通知或推导候选索引。
1.可以应用候选索引的预测性编解码。例如,一个子区域的候选索引可以是从另一个子区域的候选索引的。
iv.在一个示例中,各子区域可以共享单个merge候选列表。
v.在一个示例中,各子区域可以利用不同的merge候选列表。
c.在一个示例中,一个子区域的运动矢量可以是继承的或从MV候选索引推导的;另一个子区域的MV/MVD可以是编解码得到的。
d.在一个示例中,子区域的运动矢量(MV)可以是从MV候选列表(例如,常规IBCmerge候选列表)推导的。
i.在一个示例中,可以利用候选列表中的前M(例如,M=N)个候选。
3.在一个块被划分成多个子区域时,子区域中的至少一个可以是利用IBC模式编解码的,另一个子区域可以是利用非IBC模式编解码的。
a.在一个示例中,该另一个子区域可以是利用帧内模式编解码的。
b.在一个示例中,该另一个子区域可以是利用帧间模式编解码的。
c.在一个示例中,该另一个子区域可以是利用调色板模式编解码的。
d.在一个示例中,该另一个子区域可以是利用PCM模式编解码的。
e.在一个示例中,该另一个子区域可以是利用RDPCM模式编解码的。
f.可以使用项目符号2中的子项目符号获得IBC编解码的子区域的运动矢量。
4.在一个块被划分成多个子区域时,子区域中的至少一个可以是利用帧内模式对编解码额,另一个子区域可以是利用非帧内模式编解码的。
a.在一个示例中,该另一个子区域可以是利用帧间模式编解码的。
b.可以使用针对常规帧间编解码块的方式获得帧间编解码的子区域的运动矢量。
5.在一个块被划分成多个子区域时,所有子区域都可以是利用调色板模式编解码的,不过,它们中的至少两个是利用不同调色板编解码的。
6.在一个块被划分成多个子区域时,子区域中的至少一个可以是利用调色板模式编解码的,另一个子区域可以是利用非调色板模式编解码的。
7.可以将所提出的方法仅应用于某一分量(或某些分量),例如亮度分量。
a.可选地,此外,在将所提出的方法应用于一个颜色分量而不应用于另一颜色分量时,可以将该另一颜色分量中的对应块编编解码为没有划分的整个块。
i.可选地,此外,用于该另一颜色分量中的整个块的编解码方法可以是预定义的,例如IBC/帧间/帧内方法。
b.或者,可以将所提出的方法应用于所有分量。
i.在一个示例中,可以遵循与亮度分量相同的划分模式来划分色度块。
ii.在一个示例中,可以利用与亮度分量不同的划分模式来划分色度块。
最终预测块的生成
8.在将一个块划分成多个子区域时,可以首先生成每个子区域的预测,并利用所有预测来获得最终预测块。
a.或者,可以生成使用每个子区域的信息的中间预测块。可以通过中间预测块的加权平均来获得最终预测块。
i.在一个示例中,可以使用相等的权重。
ii.在一个示例中,可以应用不相等的权重,包括(0,…,0,1)权重。
iii.在一个示例中,可以预定义一组或多组权重以组合中间预测块。
iv.在一个示例中,可以将IBC当成帧间模式来对待,并可以应用CIIP权重来组合帧内预测和IBC预测。
v.在一个示例中,样点上的权重可以取决于该样点在当前块之内的相对位置。
vi.在一个示例中,样点上的权重可以取决于相对于子区域边缘的样点位置。
vii.在一个示例中,权重可以取决于当前块的编解码信息,诸如帧内预测模式、块维度、颜色分量、颜色格式。
编解码信息的存储
9.在应用以上方法时,可以将一个子区域的运动信息存储为整个块的运动信息。
a.或者,可以像正常帧间模式那样,针对每个基本单元(例如,最小CU尺寸)来存储运动信息。
i.对于覆盖多个子区域的基本单元,可以选择/推导一组运动信息并存储该组运动信息。
b.在一个示例中,可以在环路滤波过程(例如,去方块滤波器)中利用所存储的运动信息。
c.在一个示例中,可以在后续块的编解码中利用所存储的运动信息。
与其他工具的交互
10.在应用以上方法时,可以不更新IBC HMVP表。
a.或者,用于IBC编解码的子区域的运动矢量中的一个或多个运动矢量可以用于更新IBC HMVP表。
11.在应用以上方法时,可以不更新非IBC HMVP表。
a.或者,用于帧间编解码的子区域的运动矢量中的一个或多个运动矢量可以用于更新非IBC HMVP表。
12.环路滤波过程(例如,去方块流程)可以取决于以上方法的使用。
a.在一个示例中,可以不对利用以上方法编解码的块中的样点进行滤波。
b.在一个示例中,可以以与常规IBC编解码的块类似的方式对待利用以上方法编解码的块。
13.对于利用以上方法编解码的块,可以禁用某些编解码方法(例如,子块变换、仿射运动预测、多参考线帧内预测、基于矩阵的帧内预测、对称MVD编解码、具有MVD解码器侧运动推导/细化的merge、双向光流、化简的二次变换、多变换集合等)。
14.可以在序列/图片/条带/片组/片/砖块/CTU/CTB/CU/PU/TU/其他视频单元级中信令通知或在运行中推导以上方法和/或加权值的使用的指示。
a.在一个示例中,可以将上述方法当做特殊IBC模式对待。
i.可选地,此外,如果一个块是按照IBC模式编解码的,则可以信令通知或推导使用常规的基于整块的IBC方法或上述方法的进一步指示。
ii.在一个示例中,后续的IBC编解码的块可以利用当前块的运动信息作为MV预测子。
1.或者,可以不允许后续的IBC编解码的块利用当前块的运动信息作为MV预测子。
b.在一个示例中,可以将以上方法当做特殊三角形模式对待。亦即,如果一个块是按照三角形模式编解码的,则可以信令通知或推导使用常规TPM模式或上述方法的进一步指示。
c.在一个示例中,可以将以上方法当做新的预测模式对待。亦即,可以进一步扩展所允许的模式,诸如帧内、帧间和IBC模式,以包括这种新模式。
15.是否和/或如何应用上述方法可以取决于以下信息:
a.在DPS/SPS/VPS/PPS/APS/图片标头/条带标头/片组标头/最大编解码单元(LCU)/编解码单元(CU)/LCU行/LCU组/TU/PU块/视频编解码单元中信令通知的消息
b.CU/PU/TU/块/视频编解码单元的位置
c.当前块和/或其相邻块的块维度
d.当前块和/或其相邻块的块形状
e.当前块和/或其相邻块的帧内模式
f.其相邻块的运动/块矢量
g.颜色格式的指示(例如4:2:0、4:4:4)
h.编解码树结构
i.条带/片组类型和/或图片类型
j.颜色分量(例如,可以仅应用于色度分量或亮度分量)
k.时域层ID
l.标准的简档/级别/层
图23是视频处理装置2300的框图。装置2300可以用于实施本文描述的方法中的一者或多者。装置2300可以被体现到智能手机、平板电脑、计算机、物联网(IoT)接收器等当中。装置2300可包括一个或多个处理器2302、一个或多个存储器2304和视频处理硬件2306。处理器2302可以配置为实施本文件中描述的一种或多种方法。(一个或多个)存储器2304可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2306可以用于在硬件电路中实施本文件中描述的一些技术。视频处理硬件2306可以部分或完全地包括在处理器2302之内,处理器的形式为专用硬件或图形处理单元(GPU)或专用信号处理块。
以下条款描述了一些实施例和技术。图20到22中给出了楔形和三角形分割的一些示例。例如,楔形分割可以将块分割成多个部分,其中各部分的边界形成阶梯图案,或者具有在角部汇合的垂直部分和水平部分。例如,三角形分割可以包括分割成子块,使得相邻子块通过非水平或非垂直分割来分离。
1.一种视频处理方法(例如,图24中所示的方法2400),包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示的转换期间,决定(2402)每个子区域的转换基于使用当前图片作为参考图片的编解码方法;基于该决定,确定(2404)用于多个子区域的IBC编解码的运动矢量;以及使用两种不同的运动矢量执行(2406)转换。
2.根据条款1所述的方法,其中,该比特流表示包括用于多个子区域的给定子区域的运动矢量的指示,或者从对应运动矢量预测子导出的用于给定子区域的运动矢量差。
3.根据条款2所述的方法,其中,该运动矢量预测子是从IBC运动矢量预测子列表导出的。
4.根据条款1-2中任一项所述的方法,其中,使用继承操作或推导操作来确定该运动矢量,其中,运动矢量被继承或推导。
5.根据条款4所述的方法,其中,该推导操作包括基于IBC merge候选列表推导用于子区域的运动矢量。
6.根据条款1-2中任一项所述的方法,其中,子区域的一个子集的运动矢量是继承或推导的,子区域的另一个子集的运动矢量是在比特流表示中信令通知的。
7.根据条款1所述的方法,其中,该编解码方法包括帧内块复制(IBC)。
前一节中的项目2提供了以上条款的附加示例和变体。
8.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于使用当前图片作为参考图片的编解码方法,另一个子区域的转换基于与IBC编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
9.根据条款1所述的方法,其中,该另一种编解码模式为帧内编解码模式。
10.根据条款1所述的方法,其中,该另一种编解码模式为帧间编解码模式。
11.根据条款1所述的方法,其中,该另一种编解码模式为调色板编解码模式。
12.根据条款8-11所述的方法,其中,该编解码方法包括(IBC)。
前一节中的项目3提供了以上条款的附加示例和变体。
12.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于帧内编解码模式,另一个子区域的转换基于与帧内编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
13.根据条款12所述的方法,其中,该另一种编解码模式为帧间编解码模式。
前一节中的项目4提供了以上条款的附加示例和变体。
14.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,确定基于调色板编解码模式对子区域进行编解码,用于至少两个子区域的调色板彼此不同;以及基于该确定执行转换。
前一节中的项目5提供了以上条款的附加示例和变体。
15.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,决定一个子区域的转换基于调色板编解码模式,另一个子区域的转换基于与调色板编解码模式不同的另一种编解码模式;以及基于该决定执行转换。
前一节中的项目6提供了以上条款的附加示例和变体。
16.一种视频处理方法,包括:使用以上条款中任一项中所述的方法执行视频分量的块和该块的比特流表示之间的转换,使得该视频的另一分量的对应块之间的转换是使用与该块的转换所用的不同编解码技术执行的。
前一节中的项目7提供了以上条款的附加示例和变体。
17.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,使用每个子区域的预测确定针对该当前视频块的最终预测;以及基于该决定执行转换。
18.根据条款17所述的方法,其中,该确定基于每个子区域的预测的加权预测。
19.根据条款18所述的方法,其中,对每个子区域的预测应用相等权重,用于确定加权预测。
前一节中的项目8提供了以上条款的附加示例和变体。
20.一种视频处理方法,包括:在基于楔形分割或三角形分割而被分割成至少两个子区域的当前视频块和该当前视频块的比特流表示之间的转换期间,将一子区域的运动信息存储为当前视频块的运动信息;以及使用该运动信息转换当前视频块或后续视频块。
21.根据条款20所述的方法,其中,使用该运动信息包括使用该运动信息在转换期间进行环路滤波。
前一节中的项目9提供了以上条款的附加示例和变体。
22.根据条款1到21中任一项所述的方法,还包括:在执行当前视频块的转换之后,基于更新规则选择性地更新运动矢量预测子表。
23.根据条款22所述的方法,其中,该规则规定不更新基于帧内块复制历史的运动矢量预测子。
24.根据条款22所述的方法,其中,该规则规定使用特定子区域的运动矢量更新基于帧内块复制历史的运动矢量预测子。
前一节中的项目10提供了以上条款的附加示例和变体。
25.根据条款22所述的方法,其中,该规则规定不更新用于非帧内块复制模式的基于历史的运动矢量预测子表。
前一节中的项目11提供了以上条款的附加示例和变体。
26.根据条款1到25中任一项所述的方法,其中,该转换包括在转换期间抑制当前视频块的去方块。
27.根据条款1到25中任一项所述的方法,其中,通过在执行该方法期间禁用另一种视频编解码方法而执行转换。
28.根据条款27所述的方法,其中,该另一种视频编解码方法子块变换方法、仿射运动预测方法、多参考线帧内预测方法、基于矩阵的帧内预测方法、对称运动矢量差(MVD)编解码、具有MVD解码器侧运动推导/细化的merge、双向光流、化简的二次变换或多变换集合编解码方法。
29.根据条款1到28中任一项所述的方法,其中,转换期间该方法的使用对应于比特流表示中条带级或图片级或序列级或片组级或片级或砖块级或编解码树单元级或编解码树块级或编解码单元级或预测单元级或变换单元级的信令。
前一节中的项目12、13和14提供了以上条款的附加示例和变体。
30.根据条款1到29中任一项所述的方法,其中,楔形分割包括将当前视频块分割成多个部分,该多个部分的边界具有在角部汇合的至少一个水平部分和至少一个垂直部分。
31.根据条款1到30中任一项所述的方法,其中,三角形分割包括将当前视频块分割成多个部分,该多个部分具有沿非水平和非垂直方向的边界。
32.根据条款1到31中任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
33.根据条款1到31中任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块的样点。
34.一种视频处理装置,包括处理器,该处理器被配置为实现条款1至33中任一项或多项中所述的方法。
35.一种其上存储有代码的计算机可读介质,代码在执行时,令处理器实施根据条款1至33中任一项或多项所述的方法。
图25是视频处理的示例性方法2500的流程图。方法2500包括:在2502,针对视频的块和该块的比特流表示之间的转换,确定对该块的多个子区域应用帧内块复制(IBC)模式、帧内模式、帧间模式和调色板模式中的至少一者,其中该块被划分成两个或更多个三角形或楔形子区域;以及在2504,基于该确定执行转换。
在一些示例中,IBC模式使用当前条带、片、砖块、图片、包括编解码树单元(CTU)行的其他视频单元中的至少一者之内的参考样点。
在一些示例中,通过对块应用对角线划分或反对角线划分,将该块划分成两个三角形子区域。
在一些示例中,通过对块应用对角线划分和反对角线划分两者,将该块划分成四个三角形子区域。
在一些示例中,该块被划分成两个具有预定形状的楔形子区域。
在一些示例中,在该块被划分成多个子区域时,所有子区域都是利用IBC模式编解码的,其中,多个子区域中的至少两个是利用不同运动矢量(MV)编解码的。
在一些示例中,对MV或根据子区域的运动矢量预测子推导的MV的运动矢量差(MVD)进行编解码。
在一些示例中,使用子区域相对于运动矢量预测子的运动矢量的预测性编解码。
在一些示例中,运动矢量预测子是从常规IBC高级运动矢量预测(AMVP)候选列表推导的。
在一些示例中,使用一个子区域相对于另一个子区域的运动矢量的预测性编解码。
在一些示例中,多个子区域共享单个AMVP候选列表。
在一些示例中,多个子区域使用不同的AMVP候选列表。
在一些示例中,子区域的运动矢量是继承的或从MV候选索引推导的。
在一些示例中,子区域的运动矢量是从常规IBC merge候选列表推导的。
在一些示例中,子区域的运动矢量是从MV候选列表推导的,这与常规IBC merge候选列表构建过程不同。
在一些示例中,在MV候选列表中检查不同的空域相邻的邻接或不邻接块。
在一些示例中,候选索引是信令通知或推导的。
在一些示例中,应用候选索引的预测性编解码。
在一些示例中,一个子区域的候选索引是从另一个子区域的候选索引预测的。
在一些示例中,多个子区域共享单个merge候选列表。
在一些示例中,多个子区域使用不同的merge候选列表。
在一些示例中,一个子区域的运动矢量是继承的或从MV候选索引推导的;另一个子区域的MV和/或MVD是编解码得到的。
在一些示例中,子区域的MV是从MV候选列表推导的。
在一些示例中,MV候选列表是常规IBC merge候选列表。
在一些示例中,利用候选列表中的前M个候选。
在一些示例中,在该块被划分成多个子区域时,子区域中的至少一个是利用IBC模式编解码的,另一个子区域是利用非IBC模式编解码的。
在一些示例中,该另一个子区域是利用帧内模式编解码的。
在一些示例中,该另一个子区域是利用帧间模式编解码的。
在一些示例中,该另一个子区域是利用调色板模式编解码的。
在一些示例中,该另一个子区域是利用脉冲编解码调制(PCM)模式编解码的。
在一些示例中,该另一个子区域是利用残差差分脉冲编解码调制(RDPCM)模式编解码的。
在一些示例中,使用与利用IBC模式编解码的上方子区域相同的方式获得利用IBC模式编解码的子区域的运动矢量。
在一些示例中,在该块被划分成多个子区域时,子区域中的至少一个是利用帧内模式编解码的,另一个子区域是利用非帧内模式编解码的。
在一些示例中,该另一个子区域是利用帧间模式编解码的。
在一些示例中,使用针对常规帧间编解码的块的方式获得帧间编解码的子区域的运动矢量。
在一些示例中,在该块被划分成多个子区域时,所有子区域都是利用调色板模式编解码的,其中,子区域中的至少两个是利用不同调色板编解码的。
在一些示例中,在该块被划分成多个子区域时,子区域中的至少一个是利用调色板模式编解码的,另一个子区域是利用非调色板模式编解码的。
在一些示例中,对一个或多个特定分量应用该方法。
在一些示例中,该特定分量为亮度分量。
在一些示例中,在将该方法应用于一个颜色分量而不应用于另一颜色分量时,将该另一颜色分量中的对应块编解码为没有划分的整个块。
在一些示例中,用于另一种颜色分量中的整个块的编解码方法是预定义的,并且是IBC模式、帧间模式和帧内模式之一。
在一些示例中,对所有分量应用该方法。
在一些示例中,遵循与亮度分量相同的划分模式来划分该视频的该块的色度块。
在一些示例中,利用与亮度分量不同的划分模式来划分该视频的该块的色度块。
在一些示例中,在将一个块划分成多个子区域时,首先生成每个子区域的预测,并利用所有预测来获得最终预测块。
在一些示例中,在将一个块划分成多个子区域时,生成使用每个子区域的信息的中间预测块,并通过中间预测块的加权平均来获得最终预测块。
在一些示例中,使用相等的权重。
在一些示例中,应用不相等的权重。
在一些示例中,预定义一组或多组权重以组合中间预测块。
在一些示例中,可以将IBC模式当成帧间模式来对待,并可以应用组合式帧内和帧间预测(CIIP)权重来组合帧内预测和IBC预测。
在一些示例中,样点上的权重取决于该样点在当前块之内的相对位置。
在一些示例中,样点上的权重取决于相对于子区域边缘的样点位置。
在一些示例中,权重取决于当前块的编解码信息,该编解码信息包括帧内预测模式、块维度、颜色分量和颜色格式中的至少一者。
在一些示例中,在应用以上方法时,将一个子区域的运动信息存储为整个块的运动信息。
在一些示例中,在应用方法时,针对每个基本单元存储子区域的运动信息,基本单元具有最小CU尺寸。
在一些示例中,对于覆盖多个子区域的基本单元,选择或推导一组运动信息并存储该组运动信息。
在一些示例中,在环路滤波过程中利用所存储的运动信息。
在一些示例中,在后续块的编解码中利用所存储的运动信息。
在一些示例中,在应用这些方法时,不能更新基于IBC历史的运动矢量预测(HMVP)表。
在一些示例中,用于IBC编解码的子区域的运动矢量中的一个或多个运动矢量被用于更新IBC HMVP表。
在一些示例中,在应用这些方法时,不能更新非基于IBC历史的运动矢量预测(HMVP)表。
在一些示例中,在应用这些方法时,用于帧间编解码的子区域的运动矢量中的一个或多个运动矢量被用于更新非IBC HMVP表。
在一些示例中,用于块的环路滤波过程取决于这些方法的使用。
在一些示例中,不对利用这些方法编解码的块中的样点进行滤波。
在一些示例中,以与常规IBC编解码的块类似的方式对待利用这些方法编解码的块。
在一些示例中,针对利用这些方法编解码的块,禁用某些编解码方法。
在一些示例中,该某些编解码方法包括子块变换、仿射运动预测、多参考线帧内预测、基于矩阵的帧内预测、对称MVD编解码、具有MVD解码器侧运动推导/细化的merge、双向光流、化简的二次变换、多变换集合中的一种或多种。
在一些示例中,可以在序列、图片、条带、片组、片、砖块、CTU、CTB、CU、PU、TU、其他视频单元级中的至少一者中信令通知或在运行中推导这些方法和/或加权值的使用的指示。
在一些示例中,将上述方法当做特殊IBC模式对待。
在一些示例中,如果一个块是按照IBC模式编解码的,则信令通知或推导使用常规的基于整块的IBC方法或上述方法的进一步指示。
在一些示例中,后续的IBC编解码的块利用当前块的运动信息作为MV预测子。
在一些示例中,不允许后续的IBC编解码的块利用当前块的运动信息作为MV预测子。
在一些示例中,上述方法被当做特殊三角形模式对待。
在一些示例中,如果一个块如三角形模式那样被编解码,则信令通知或推导使用常规三角形预测模式(TPM)方法或以上方法的进一步指示。
在一些示例中,将以上方法当做新的预测模式。
在一些示例中,进一步扩展包括帧内模式、帧间模式和IBC模式的允许模式以包括新的预测模式。
在一些示例中,是否和/或如何应用上述方法取决于以下信息:
a.在DPS、SPS、VPS、PPS、APS、图片标头、条带标头、片组标头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、TU、PU块、视频编解码单元中信令通知的消息;
b.CU、PU、TU、块、视频编解码单元的位置;
c.当前块和/或其相邻块的块维度;
d.当前块和/或其相邻块的块形状;
e.当前块和/或其相邻块的帧内模式;
f.其相邻块的运动矢量或块矢量;
g.包括4:2:0、4:4:4之一的颜色格式的指示;
h.编解码树结构;以及
i.条带或片组类型和/或图片类型。
在一些示例中,该转换由比特流表示生成视频的块。
在一些示例中,该转换由视频的块生成比特流表示。
本文件中描述的所公开的以及其他的解决方案、示例、实施例、模块和功能操作可以在数字电子电路、或计算机软件、固件或硬件中实施,其包括本文中所公开的结构及其结构等价方案,或其中一者或多者的组合。所公开的实施例和其他实施例可以被实施成一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质组成或其中一个或其中多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或者它们当中的一者或多者的组合。传播的信号是人为生成的信号,例如,机器生成的电、光或电磁信号,其被生成为对信息编解码,以便传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以按照任何形式部署,包括作为独立程序或作为模块、部件、子例程或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的部分中,专用于该程序的单个文件中,或者多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以将计算机程序部署为在一个或多个计算机上执行,这一个或多个计算机位于一个站点上,或者跨越多个站点分布并通过通信网络互连。
本说明书中描述的过程和逻辑流可以通过由一个或多个可编程处理器执行一个或多个计算机程序来执行,从而通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流也可以通过专用逻辑电路来执行,并且装置也可以被实施成专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。一般来讲,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件是执行指令的处理器以及存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或被操作性地耦接为从一个或多个大容量存储设备接收数据或向其传输数据,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动硬盘;磁光盘;以及CD ROM和DVD ROM盘。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
虽然本专利文件包含许多细节,但不应将其解释为对任何主题或权利要求范围的限制,而应解释为对特定技术的特定实施例专有特征的描述。本专利文件在各单独实施例的语境下描述的某些特征也可以在单个实施例中组合实施。相反地,在单个实施例的语境下描述的各种特征也可单独地或者以任何合适的子组合的形式在多个实施例中实现。此外,虽然某些特征可能在上面被描述为以某些组合来起作用并且甚至最初也这样地来要求对其的权利保护,但是来自要求权利保护的组合的一个或多个特征在某些情况下可从该组合中去除,并且要求权利保护的组合可涉及子组合或子组合的变型。
类似地,虽然操作在附图中以特定次序示出,但不应将这种情况理解为需要以相继次序或所示的特定次来执行此类操作,或者需要执行所有所示的操作以实现期望的结果。此外,在本专利文件中描述的实施例当中对各种系统部件的划分不应被理解为在所有实施例中都要求这样的划分。
仅描述了一些实施方式和示例,其他实施方式、增强和变化可以基于本专利文件中描述和说明的内容做出。

Claims (81)

1.一种用于视频处理的方法,包括:
针对视频的块和所述块的比特流表示之间的转换,确定对所述块的多个子区域应用帧内块复制(IBC)模式、帧内模式、帧间模式和调色板模式中的至少一者,其中所述块被划分成两个或更多个三角形或楔形子区域;以及
基于所述确定执行所述转换。
2.根据权利要求1所述的方法,其中,所述IBC模式使用当前条带、片、砖块、图片、包括编解码树单元(CTU)行的其他视频单元中的至少一者之内的参考样点。
3.根据权利要求1或2所述的方法,其中,通过对所述块应用对角线划分或反对角线划分,将所述块划分成两个三角形子区域。
4.根据权利要求1或2所述的方法,其中,通过对所述块应用对角线划分和反对角线划分两者,将所述块划分成四个三角形子区域。
5.根据权利要求1或2所述的方法,其中,所述块被划分成两个具有预定形状的楔形子区域。
6.根据权利要求1-5中任一项所述的方法,其中,在所述块被划分成多个子区域时,所有子区域都是利用所述IBC模式编解码的,其中,多个子区域中的至少两个是利用不同运动矢量(MV)编解码的。
7.根据权利要求6所述的方法,其中,对MV或根据子区域的运动矢量预测子推导的MV的运动矢量差(MVD)进行编解码。
8.根据权利要求7所述的方法,其中,使用子区域相对于运动矢量预测子的运动矢量的预测性编解码。
9.根据权利要求7或8所述的方法,其中,运动矢量预测子是从常规IBC高级运动矢量预测(AMVP)候选列表推导的。
10.根据权利要求7所述的方法,其中,使用一个子区域相对于另一个子区域的运动矢量的预测性编解码。
11.根据权利要求7所述的方法,其中,所述多个子区域共享单个AMVP候选列表。
12.根据权利要求7所述的方法,其中,所述多个子区域使用不同的AMVP候选列表。
13.根据权利要求6所述的方法,其中,所述子区域的运动矢量是继承的或从MV候选索引推导的。
14.根据权利要求13所述的方法,其中,子区域的运动矢量是从常规IBC merge候选列表推导的。
15.根据权利要求13所述的方法,其中,子区域的运动矢量是从MV候选列表推导的,其与所述常规IBC merge候选列表构建过程不同。
16.根据权利要求15所述的方法,其中,在所述MV候选列表中检查不同的空域相邻的邻接或不邻接块。
17.根据权利要求13所述的方法,其中,候选索引是信令通知或推导的。
18.根据权利要求17所述的方法,其中,应用候选索引的预测性编解码。
19.根据权利要求18所述的方法,其中,一个子区域的候选索引是从另一个子区域的候选索引预测的。
20.根据权利要求13所述的方法,其中,所述多个子区域共享单个merge候选列表。
21.根据权利要求13所述的方法,其中,所述多个子区域使用不同的merge候选列表。
22.根据权利要求6所述的方法,其中,一个子区域的运动矢量是继承的或从MV候选索引推导的;另一个子区域的MV和/或MVD是编解码得到的。
23.根据权利要求6所述的方法,其中,子区域的MV是从MV候选列表推导的。
24.根据权利要求23所述的方法,其中,所述MV候选列表是常规IBC merge候选列表。
25.根据权利要求23或24所述的方法,其中,利用所述候选列表中的前M个候选。
26.根据权利要求1-5中任一项所述的方法,其中,在所述块被划分成多个子区域时,所述子区域中的至少一个是利用所述IBC模式编解码的,另一个子区域是利用非IBC模式编解码的。
27.根据权利要求26所述的方法,其中,所述另一个子区域是利用帧内模式编解码的。
28.根据权利要求26所述的方法,其中,所述另一个子区域是利用帧间模式编解码的。
29.根据权利要求26所述的方法,其中,所述另一个子区域是利用调色板模式编解码的。
30.根据权利要求26所述的方法,其中,所述另一个子区域是利用脉冲编解码调制(PCM)模式编解码的。
31.根据权利要求26所述的方法,其中,所述另一个子区域是利用残差差分脉冲编解码调制(RDPCM)模式编解码的。
32.根据权利要求26-31中任一项所述的方法,其中,使用与利用所述IBC模式编解码的上方子区域相同的方式获得利用所述IBC模式编解码的所述子区域的运动矢量。
33.根据权利要求1-5中任一项所述的方法,其中,在所述块被划分成多个子区域时,所述子区域中的至少一个是利用所述帧内模式编解码的,另一个子区域是利用非帧内模式对编解码的。
34.根据权利要求33所述的方法,其中,所述另一个子区域是利用帧间模式编解码的。
35.根据权利要求34所述的方法,其中,使用针对常规帧间编解码的块的方式获得所述帧间编解码的子区域的运动矢量。
36.根据权利要求1-5中任一项所述的方法,其中,在所述块被划分成多个子区域时,所有子区域都是利用所述调色板模式编解码的,其中,所述子区域中的至少两个是利用不同调色板编解码的。
37.根据权利要求1-5中任一项所述的方法,其中,在所述块被划分成多个子区域时,所述子区域中的至少一个是利用所述调色板模式编解码的,另一个子区域是利用非调色板模式编解码的。
38.根据权利要求1-37中任一项所述的方法,其中对一个或多个特定分量应用所述方法。
39.根据权利要求38所述的方法,其中,所述特定分量为亮度分量。
40.根据权利要求38或39所述的方法,其中,在将所述方法应用于一个颜色分量而不应用于另一个颜色分量时,将所述另一个颜色分量中的对应块编解码为没有划分的整个块。
41.根据权利要求40所述的方法,其中,用于所述另一个颜色分量中的所述整个块的编解码方法是预定义的,并且是IBC模式、帧间模式和帧内模式之一。
42.根据权利要求1-37中任一项所述的方法,其中对所有分量应用所述方法。
43.根据权利要求40所述的方法,其中,遵循与所述亮度分量相同的划分模式来划分所述视频的所述块的色度块。
44.根据权利要求40所述的方法,其中,利用与所述亮度分量不同的划分模式来划分所述视频的所述块的色度块。
45.根据权利要求1-44中任一项所述的方法,其中,在将一个块划分成多个子区域时,首先生成每个子区域的预测,并利用所有所述预测来获得最终预测块。
46.根据权利要求1-45中任一项所述的方法,其中,在将一个块划分成多个子区域时,生成使用每个子区域的信息的中间预测块,并通过所述中间预测块的加权平均来获得最终预测块。
47.根据权利要求46所述的方法,其中,使用相等的权重。
48.根据权利要求46所述的方法,其中,应用不相等的权重。
49.根据权利要求46所述的方法,其中,预定义一组或多组权重以组合中间预测块。
50.根据权利要求46所述的方法,其中,将IBC模式当成帧间模式来对待,并应用组合式帧内和帧间预测(CIIP)权重来组合帧内预测和IBC预测。
51.根据权利要求46所述的方法,其中,样点上的权重取决于所述样点在所述当前块之内的相对位置。
52.根据权利要求46所述的方法,其中,样点上的权重取决于相对于子区域边缘的所述样点位置。
53.根据权利要求46所述的方法,其中,所述权重取决于当前块的编解码信息,所述编解码信息包括帧内预测模式、块维度、颜色分量和颜色格式中的至少一者。
54.根据权利要求1-53中任一项所述的方法,其中,在应用所述方法时,将一个子区域的运动信息存储为整个块的运动信息。
55.根据权利要求1-53中任一项所述的方法,其中,在应用所述方法时,针对每个基本单元存储子区域的运动信息,所述基本单元具有最小CU尺寸。
56.根据权利要求55所述的方法,其中,对于覆盖多个子区域的基本单元,选择或推导一组运动信息并存储所述一组运动信息。
57.根据权利要求54-56中任一项所述的方法,其中,在所述环路滤波过程中利用所存储的运动信息。
58.根据权利要求54-57中任一项所述的方法,其中,在后续块的编解码中利用所存储的运动信息。
59.根据权利要求1-58中任一项所述的方法,其中,在应用所述方法时,不能更新基于IBC历史的运动矢量预测(HMVP)表。
60.根据权利要求1-58中任一项所述的方法,其中,用于IBC编解码的子区域的运动矢量中的一个或多个运动矢量被用于更新所述IBC HMVP表。
61.根据权利要求1-58中任一项所述的方法,其中,在应用所述方法时,不能更新非基于IBC历史的运动矢量预测(HMVP)表。
62.根据权利要求1-58中任一项所述的方法,其中,在应用所述方法时,用于帧间编解码的子区域的运动矢量中的一个或多个运动矢量被用于更新所述非IBC HMVP表。
63.根据权利要求1-62中任一项所述的方法,其中,用于所述块的环路滤波过程取决于所述方法的使用。
64.根据权利要求63所述的方法,其中,不对利用所述方法编解码的块中的样点进行滤波。
65.根据权利要求63所述的方法,其中,以与常规IBC编解码的块类似的方式对待利用所述方法编解码的块。
66.根据权利要求1-65中任一项所述的方法,其中,针对利用所述方法编解码的块,禁用某些编解码方法。
67.根据权利要求66所述的方法,其中,所述某些编解码方法包括子块变换、仿射运动预测、多参考线帧内预测、基于矩阵的帧内预测、对称MVD编解码、具有MVD解码器侧运动推导/细化的merge、双向光流、化简的二次变换、多变换集合中的一种或多种。
68.根据权利要求1-65中任一项所述的方法,其中,在序列、图片、条带、片组、片、砖块、CTU、CTB、CU、PU、TU、其他视频单元级中的至少一者中信令通知或在运行中推导所述方法和/或加权值的使用的指示。
69.根据权利要求68所述的方法,其中,上述方法被当做特殊IBC模式对待。
70.根据权利要求69所述的方法,其中,如果一个块是按照IBC模式编解码的,则信令通知或推导使用常规的基于整块的IBC方法或上述方法的进一步指示。
71.根据权利要求69所述的方法,其中,后续的IBC编解码的块利用当前块的运动信息作为MV预测子。
72.根据权利要求69所述的方法,其中,不允许后续的IBC编解码的块利用当前块的运动信息作为MV预测子。
73.根据权利要求68所述的方法,其中,上述方法被当做特殊三角形模式对待。
74.根据权利要求73所述的方法,其中,如果一个块是按照三角形模式编解码的,则信令通知或推导使用常规三角形预测模式(TPM)方法或上述方法的进一步指示。
75.根据权利要求68所述的方法,其中,上述方法被当做新的预测模式对待。
76.根据权利要求75所述的方法,其中,进一步扩展包括帧内模式、帧间模式和IBC模式的所允许模式以包括所述新的预测模式。
77.根据权利要求1-76中任一项所述的方法,其中,是否应用和/或如何应用上述方法取决于以下信息:
a.在DPS、SPS、VPS、PPS、APS、图片标头、条带标头、片组标头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、TU、PU块、视频编解码单元中信令通知的消息;
b.CU、PU、TU、块、视频编解码单元的位置;
c.当前块和/或其相邻块的块维度;
d.当前块和/或其相邻块的块形状;
e.当前块和/或其相邻块的帧内模式;
f.其相邻块的运动矢量或块矢量;
g.包括4:2:0、4:4:4之一的颜色格式的指示;
h.编解码树结构;以及
i.条带或片组类型和/或图片类型。
78.根据权利要求1-77中的任一项所述的方法,其中,所述转换从所述比特流表示生成所述视频的所述块。
79.根据权利要求1-77中的任一项所述的方法,其中,所述转换从所述视频的所述块生成所述比特流表示。
80.一种处于视频系统中的装置,包括处理器以及具有位于其上的指令的非暂态存储器,其中,所述指令在被所述处理器执行时使得所述处理器实施根据权利要求1到79中任一项所述的方法。
81.一种存储在非暂态计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于实施根据权利要求1到79中任一项所述的方法的程序代码。
CN202080041723.XA 2019-06-03 2020-06-02 具有三角形分割的帧内块复制 Pending CN113924778A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/089795 2019-06-03
CN2019089795 2019-06-03
PCT/CN2020/093918 WO2020244503A1 (en) 2019-06-03 2020-06-02 Intra block copy with triangular partitions

Publications (1)

Publication Number Publication Date
CN113924778A true CN113924778A (zh) 2022-01-11

Family

ID=73653065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080041723.XA Pending CN113924778A (zh) 2019-06-03 2020-06-02 具有三角形分割的帧内块复制

Country Status (3)

Country Link
US (1) US20220086441A1 (zh)
CN (1) CN113924778A (zh)
WO (1) WO2020244503A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12120289B2 (en) * 2019-08-21 2024-10-15 Lg Electronics Inc. Image encoding/decoding method and device for performing prediction on basis of HMVP candidate, and method for transmitting bitstream
WO2021125751A1 (ko) * 2019-12-16 2021-06-24 현대자동차주식회사 임의의 모양으로 분할되는 블록을 예측하는 방법 및 복호화 장치
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
US20220150471A1 (en) * 2020-11-06 2022-05-12 Ofinno, Llc Decoder Side Displacement Vector Prediction
US11949863B2 (en) * 2021-08-02 2024-04-02 Tencent America LLC Geometric partition mode with intra block copy
US11876978B2 (en) * 2021-08-31 2024-01-16 Tencent America LLC Intra prediction mode information propagation for geometric partition mode with IBC and intra prediction
US20230079743A1 (en) * 2021-09-16 2023-03-16 Qualcomm Incorporated Multiple inter predictors with decoder side motion vector derivation for video coding
US20230135166A1 (en) * 2021-10-28 2023-05-04 Tencent America LLC Intrabc using wedgelet partitioning
WO2023195765A1 (ko) * 2022-04-07 2023-10-12 현대자동차주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2024008093A1 (en) * 2022-07-05 2024-01-11 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing
WO2024081261A1 (en) * 2022-10-10 2024-04-18 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices with intra block copy

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2777286B1 (en) * 2011-11-11 2017-01-04 GE Video Compression, LLC Effective wedgelet partition coding
CN106375764B (zh) * 2016-08-31 2018-04-10 中国科学技术大学 一种结合方向预测和块复制预测的视频帧内编码方法
KR102549178B1 (ko) * 2016-12-07 2023-06-29 주식회사 케이티 비디오 신호 처리 방법 및 장치
US12022095B2 (en) * 2019-03-15 2024-06-25 Qualcomm Incorporated Video coding with unfiltered reference samples using different chroma formats

Also Published As

Publication number Publication date
WO2020244503A1 (en) 2020-12-10
US20220086441A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
CN113853783B (zh) 对帧内块复制编解码的块的块矢量的编解码
CN113924778A (zh) 具有三角形分割的帧内块复制
CN114450959B (zh) 视频编解码中的几何分割模式
JP7446339B2 (ja) 幾何学的分割モードコーディングを用いた動き候補リスト
WO2020244536A1 (en) Combined intra and intra-block copy prediction for video coding
CN114128258B (zh) 视频编解码中的变换块尺寸的限制
CN113994699B (zh) 视频编解码的运动候选列表构建
CN113966616B (zh) 使用临近块信息的运动候选列表构建
WO2020244658A1 (en) Sub-block based intra block copy
CN114009037A (zh) 帧内块复制模式的运动候选列表构建
CN113966612A (zh) 屏幕内容编解码根据与运动信息之间的相互作用
CN113475075B (zh) 基于共享Merge列表的运动预测
CN113994682A (zh) 具有默认参数的基于历史的运动矢量预测
CN115152229A (zh) merge估计区域下IBC块的BV列表构建过程
CN114097219A (zh) 基于历史的运动矢量预测表中的运动信息的存储
CN113557720B (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