CN113841408A - 用于视频处理的运动信息确定和存储 - Google Patents

用于视频处理的运动信息确定和存储 Download PDF

Info

Publication number
CN113841408A
CN113841408A CN202080036650.5A CN202080036650A CN113841408A CN 113841408 A CN113841408 A CN 113841408A CN 202080036650 A CN202080036650 A CN 202080036650A CN 113841408 A CN113841408 A CN 113841408A
Authority
CN
China
Prior art keywords
motion
motion information
candidates
partitions
prediction
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
CN202080036650.5A
Other languages
English (en)
Other versions
CN113841408B (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 CN113841408A publication Critical patent/CN113841408A/zh
Application granted granted Critical
Publication of CN113841408B publication Critical patent/CN113841408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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

Landscapes

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

Abstract

描述了包括几何分割的用于数字视频编解码的设备、系统和方法。一种用于视频处理的示例性方法包括:基于优先级规则,做出关于将运动候选插入到用于在视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码;以及基于该决定和运动候选列表来执行转换。

Description

用于视频处理的运动信息确定和存储
相关申请的交叉引用
根据适用的专利法和/或巴黎公约的规则,本申请旨在及时要求2019年5月17日提交的国际专利申请PCT/CN2019/087372、2019年6月5日提交的国际专利申请PCT/CN2019/090127和2019年6月20日提交的国际专利申请PCT/CN2019/092151的优先权和利益。出于美国法律的所有目的,上述申请的全部公开内容通过引用而并入,作为本专利文献公开内容的一部分。
技术领域
本文档涉及视频编码和解码技术、系统和设备。
背景技术
尽管视频压缩有所进步,但数字视频仍占互联网和其它数字通信网络上的最大的带宽使用。随着能够接收和显示视频的联网用户设备数量的增加,预计对于数字视频用途的带宽需求将继续增长。
发明内容
描述了与包括几何分割的数字视频编解码有关的设备、系统和方法。所描述的方法可以应用于现有的视频编解码标准(例如,高效视频编解码(High Efficiency VideoCoding,HEVC)和/或多功能视频编解码(Versatile Video Coding,VVC))以及将来的视频编解码标准或视频编解码器。
在一个代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码;以及基于该决定和运动候选列表,执行转换。
在另一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将从一个规则运动候选推导的来自列表0和列表1的一个或多个平均单向预测运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码;以及基于运动候选列表执行转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将从具有单向预测的规则运动候选推导的一个或多个具有单向预测的平均运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码;以及基于运动候选列表执行转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将从可用运动候选推导的一个或多个虚拟运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码;以及基于运动候选列表执行转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:基于优先级规则,做出关于将运动候选插入到用于使用几何分割模式来编解码的视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中优先级规则基于从其推导出运动候选中的运动候选的位置或者与运动候选相关联的一个或多个参考图片列表;以及基于该决定和运动候选列表执行转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码,其中插入的顺序在序列到序列、图片到图片、条带到条带、片组到片组之间或者从当前块到视频的后续块是可变的;以及基于该决定和运动候选列表执行转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将使用几何分割模式编解码的视频的当前块分割成多个分区;构建多个运动候选列表,每个运动候选列表对应于多个分区中的每个分区;以及基于多个运动候选列表,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将使用几何分割模式来编解码的视频的当前块分割成多个分割;构建多个运动候选列表,其中多个分区中的每个分区被配置为选择多个运动候选列表中的相同运动候选列表;以及基于所选择的相同运动候选列表,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:执行视频单元中的视频的当前块和视频的比特流表示之间的转换,其中比特流表示包括指示在用于视频区域中启用的几何分割模式的运动候选列表中允许的运动候选的最大数量的字段。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于使用几何分割模式分割成多个分区的视频的当前块,从多个加权因子组中选择加权因子组,其中至少基于当前块的宽度或高度来选择加权因子组;以及作为当前块和视频的比特流表示之间的转换的一部分,将加权因子组应用于沿着多个分区中的至少两个分区的公共边界的样点。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于使用几何分割模式分割成多个分区的视频的当前块内的样点,基于多个分区中的至少两个分区的公共边界的角度来确定至少一个加权因子;以及基于至少一个加权因子,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于使用几何分割模式分割成多个分区的视频的当前块,对沿着多个分区中的至少两个分区的公共边界的、样点尺寸不同于4×4的样点尺寸的样点执行运动补偿过程;以及基于运动补偿过程,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:使用几何分割模式将视频的当前块分割成多个分区;存储从与多个分区相关联的运动信息推导的在当前块内的K×L区域的单个运动信息集;以及使用与多个分区中的至少一个分区相关联的至少一个运动信息集来执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将视频的当前块分割成多个分区;以及执行使用几何分割模式来编解码的当前块和视频的比特流表示之间的转换,其中为当前块的每个M×N块单元存储单个运动信息集,其中该单个运动信息集从与多个分区中的每个分区相关联的运动信息中推导,其中M或N不等于4,并且其中该M×N块单元中的每个样点共享相同的运动信息。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将视频的当前块分割成多个分区;以及作为当前块和视频的比特流表示之间的转换的一部分,基于不同于要存储的与第一子区域相关联的第二运动信息的第一运动信息,对当前块的第一子区域执行运动补偿过程。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:使用几何分割模式将视频的当前块分割成多个分区;基于与多个分区相关联的划分方向或解码Merge索引或Merge候选列表,存储第一样点集和第二样点集的运动信息,其中第一样点集位于多个分区中的至少两个分区的公共边界上,并且第二样点集位于多个分区中的至少两个分区之一的内部;以及基于存储的运动信息,执行当前块和视频的比特流表示之间的转换或者视频的后续块和比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将视频的当前块分割成多个分区;存储基于多个分区中的至少两个分区的运动信息的虚拟双向预测运动信息;以及基于虚拟双向预测运动信息,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:将视频的当前块分割成多个分区;基于低延迟检查标志,存储多个分区中的第一分区的运动信息(MvInfo1)和多个分区中的第二分区的运动信息(MvInfo2),其中低延迟检查标志指示图片顺序计数(POC)值不大于包括当前块的当前图片的POC值的所有参考图片;以及基于存储的运动信息,执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:使用几何分割模式将视频的当前块分割成多个分区;以及使用与多个分区中的至少两个分区相关联的至少两个运动信息集来执行当前块和视频的比特流表示之间的转换,其中,单个运动信息集是针对位于该至少两个分区的公共边界上的K×L区域而存储的,其中,该单个运动信息集包括从与该至少两个分区中的每个分区相关联的运动信息推导的单向预测运动信息。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:维护一个或多个基于历史的运动矢量预测(HMVP)表;执行视频的当前块和视频的比特流表示之间的转换,其中,当前块使用几何分割模式被分割成多个分区;以及基于条件并在执行该转换之后,选择性更新一个或多个HMVP表。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,其中,该转换是基于多个分区中的第一分区的第一运动信息的,并且其中,第一运动信息是基于多个分区中的第二分区的第二运动信息而推导出的。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,其中,多个分区中的多于一个分区的运动信息不是从相同参考图片列表推导出的。
在又一代表性方面,所公开的技术可以用于提供一种用于视频处理的方法。该方法包括:基于使用几何分割模式被分割成多个分区的当前块的条件,选择性启用从相同参考图片对第一分区和第二分区的运动信息的推导;以及基于该选择性启用来执行当前块和视频的比特流表示之间的转换。
在又一代表性方面,上述方法以处理器可执行代码的形式体现并存储在计算机可读程序介质中。
在又一代表性方面,公开了一种被配置为或可操作以执行上述方法的设备。该设备可以包括被编程为实施该方法的处理器。
在又一代表性方面,视频解码器装置可以实施如本文所述的方法。
在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其它方面以及特征。
附图说明
图1是用于Merge候选列表构建的推导过程的示例。
图2示出了空域Merge候选的示例位置。
图3示出了考虑用于空域Merge候选的冗余检查的候选对的示例。
图4A和图4B示出了N×2N和2N×N分割的第二预测单元(Prediction Unit,PU)的示例位置。
图5是时域Merge候选的运动矢量缩放的示例图示。
图6示出了时域Merge候选C0和C1的示例候选位置。
图7示出了组合的双向预测Merge候选的示例。
图8示出了运动矢量预测候选的示例推导过程。
图9是空域运动矢量候选的运动矢量缩放的示例图示。
图10示出了用于CU(Coding Unit,编解码单元)的可选时域运动矢量预测(Alternative Temporal Motion Vector Prediction,ATMVP)运动预测的示例。
图11示出了具有四个子块(A-D)的一个CU及其临近块(a-d)的示例。
图12是用不同MV(Motion Vector,运动矢量)精度进行编码的示例的流程图。
图13A和图13B示出了135度分割类型(从左上角向右下角划分)和45度划分模式。将CU划分成两个三角形预测单元(两种划分模式)的图示。
图14示出了临近块的位置的示例。
图15A和图15B示出了运动矢量存储的示例。
图16A和图16B示出了三角形预测模式(Triangular Prediction Mode,TPM)的信令的示例。
图17示出了在TPM标志编解码中用于上下文选择的临近块(A和L)的示例。
图18A和图18B是应用重叠块运动补偿OBMC(Overlapped Block MotionCompensation)的子块的示例图示。
图18C示出了用于三角形预测模式的单向预测MV选择的示例。
图19示出了用于推导IC(Illumination Compensation,照明补偿)参数的临近样点的示例。
图20A和图20B示出了简化仿射运动模型4参数仿射模型和6参数仿射模型。
图21示出了每一子块的仿射运动矢量场MVF(Motion Vector Field)的示例。
图22A和图22B示出了4参数仿射模型和6参数仿射模型的示例。
图23示出了AF_INTER的运动矢量预测量MVP(Motion Vector Predictor)的示例。
图24A和图24B示出了AF_MERGE的示例候选。
图25示出仿射Merge模式的候选位置的示例。
图26示出了光流轨迹的示例。
图27A和图27B示出了不具有块扩展的BIO(Bi-directional Optical flow,双向光流)的示例:a)块的外部的访问位置;b)使用填充以便避免额外的存储器访问和计算。
图28示出了基于双边模板匹配的解码器侧运动矢量细化(Decoder-side MotionVector Refinement,DMVR)的示例。
图29示出了用于不同分割的运动候选列表构建过程的块的示例。
图30A-图30C示出了三角形Dir等于0的MV存储区域的三个示例。
图31-图53是视频处理方法的示例的流程图。
图54是用于实施本文档中描述的视觉媒体解码或视觉媒体编码技术的硬件平台的示例的框图。
图55是在其中可以实施所公开的技术的示例视频处理系统的框图。
具体实施方式
本文档提供了视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频的质量。此外,视频编码器还可以在编码的过程期间实施这些技术,以便重构用于进一步编码的解码帧。
为了便于理解,在本文档中使用了章节标题,并且不将实施例和技术限制于对应的章节。如此以来,来自一个章节的实施例可以与来自其它章节的实施例组合。
1.概述
本专利文档涉及视频编解码技术。具体地,它涉及视频编解码中几何分割下的运动矢量编解码和信令。它可以应用于现有的视频编解码标准,如HEVC,或即将要定案的标准(例如,多功能视频编解码(VVC))。它也可以应用于未来的视频编解码标准或视频编解码器。
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高级视频编解码(Advanced Video Coding,AVC)和H.265/HEVC标准。自H.262以来,视频编解码标准基于混合视频编解码结构,其中使用时域预测加变换编解码。为了探索HEVC以外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索组(Joint Video Exploration Team,JVET)。此后,JVET采用了许多新方法,并将其放入名为联合探索模型(Joint Exploration Model,JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1 SC29/WG11(MPEG)之间的联合视频专家组(JVET)成立,以致力于多功能视频编解码(VVC)标准,目标是与HEVC相比比特率降低50%。
VVC草案的最新版本,即多功能视频编解码(草案2),可在以下网址找到:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K1001-v7.zip。
VVC的最新参考软件名为VTM,可在以下网址找到:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-2.1。
2.1 HEVC/H.265的帧间预测
每个帧间预测的PU具有针对一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc信令通知对两个参考图片列表之一的使用。运动矢量可以被显式地编解码为相对于预测量的增量。
当用跳过模式对CU进行编解码时,一个PU与该CU相关联,并且不存在显著的残差系数、没有编解码的运动矢量增量或参考图片索引。规定Merge模式,由此从包括空域和时域候选的临近PU获得当前PU的运动参数。Merge模式可以应用于任何帧间预测的PU,而不仅仅对于跳跃模式。Merge模式的可选方案是运动参数的显式传输,其中每一PU显式地信令通知运动矢量(更准确地,与运动矢量预测量相比的运动矢量差)、每个参考图片列表的对应参考图片索引和参考图片列表的使用。在本公开中,这种模式被称为高级运动矢量预测(Advanced Motion Vector Prediction,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:初始候选推导
o步骤1.1:空域候选推导
o步骤1.2:空域候选的冗余检查
o步骤1.3:时域候选推导
·步骤2:附加候选插入
o步骤2.1:创建双向预测候选
o步骤2.2:插入零运动候选
这些步骤也示意性地描绘在图1中。对于空域Merge候选推导,在位于五个不同位置的候选当中选择最多四个Merge候选。对于时域Merge候选推导,在两个候选当中选择最多一个Merge候选。由于在解码器处假设每个PU的恒定数量的候选,因此当从步骤1获得的候选的数量未达到在条带头中信令通知的Merge候选的最大数量(MaxNumMergeCand)时,生成附加候选。由于候选的数量是恒定的,因此使用截断一元二值化(Truncated Unarybinarization,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”。作为示例,图4A和图4B分别描绘了N×2N和2N×N的情况下的第二PU。当当前PU被分割为N×2N时,位置A1处的候选不被考虑用于列表构建。事实上,通过添加该候选将导致两个预测单元具有相同的运动信息,这对于在编解码单元中只具有一个PU是冗余的。类似地,当当前PU被分割为2N×N时,不考虑位置B1
2.1.2.3时域候选推导
在该步骤中,仅一个候选被添加到列表。具体地,在该时域Merge候选的推导中,基于属于与给定参考图片列表内的当前图片具有最小POC(Picture Order Count,图片顺序计数)差的图片的并置(co-located)PU来推导缩放运动矢量。在条带头中显式地信令通知要用于推导并置PU的参考图片列表。如在图5中由虚线所示的,获得了对时域Merge候选的缩放运动矢量,该缩放运动矢量是使用POC距离tb和td从并置PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片与当前图片之间的POC差,并且td被定义为并置图片的参考图片与并置图片之间的POC差。时域Merge候选的参考图片索引被设置为等于零。HEVC规范中描述了缩放过程的实际实现。对于B条带,两个运动矢量(一个用于参考图片列表0,并且另一个用于参考图片列表1)被获得并组合,以生成双向预测Merge候选。
在属于参考帧的并置PU(Y)中,在候选C0和C1之间选择时域候选的位置,如图6所描绘的。如果位置C0处的PU不可用、是帧内编解码的、或者在当前CTU行(row)的外部,则使用位置C1。否则,在时域Merge候选的推导中使用位置C0
2.1.2.4附加候选插入
除了空域和时域的Merge候选之外,存在两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。通过利用空域和时域的Merge候选来生成组合的双向预测Merge候选。组合的双向预测Merge候选仅用于B条带。通过将初始候选的第一参考图片列表运动参数与另一初始候选的第二参考图片列表运动参数组合来生成组合的双向预测候选。如果这两个元组提供不同的运动假设,则它们将形成新的双向预测候选。作为示例,图7示出了当原始列表(在左边)中的两个候选(其具有mvL0和refIdxL0或mvL1和refIdxL1)用于创建被添加到最终列表(在右边)的组合的双向预测Merge候选。存在许多关于组合的规则,这些规则被考虑以生成这些附加Merge候选。
插入零运动候选以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该索引从零开始并且每次向列表中添加新的零运动候选时增加。这些候选使用的参考帧的数量对于单向预测和双向预测分别是1和2。最后,不对这些候选执行冗余检查。
2.1.2.5用于并行处理的运动估计区域
为了加速编码过程,可以并行执行运动估计,由此同时推导给定区域内部的所有预测单元的运动矢量。从空域邻域推导Merge候选可能干扰并行处理,因为一个预测单元不能从邻近PU推导运动参数,直到其相关联的运动估计完成。为了缓和编解码效率和处理时延之间的折衷(trade-off),HEVC定义了运动估计区域(Motion Estimation Region,MER),使用“log2_parallel_merge_level_minus2”语法元素在图片参数集中信令通知MER的尺寸。当定义MER时,落入相同区域的Merge候选被标记为不可用,并且因此在列表构建中不被考虑。
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候选的并行推导。否则,针对上边运动矢量不允许空域缩放。
如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式来缩放临近PU的运动矢量。主要差异在于参考图片列表和当前PU的索引被给定作为输入;实际缩放过程与时域缩放的过程相同。
2.1.3.3时域运动矢量候选
除了参考图片索引推导之外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知给解码器。
2.2 JEM中的新的帧间预测方法
2.2.1基于子CU的运动矢量预测
在具有QTBT(QuadTrees plus Binary Trees,四叉树加二叉树)的JEM中,每个CU对于每个预测方向最多可以有一个运动参数集。通过将大CU划分成子CU并且推导大CU的所有子CU的运动信息,在编码器中考虑两个子CU级别运动矢量预测方法。可选时域运动矢量预测(ATMVP)方法允许每个CU从比并置参考图片中的当前CU小的多个块中提取运动信息的多个集合。在时空运动矢量预测(Spatial-Temporal Motion Vector Prediction,STMVP)方法中,通过使用时域运动矢量预测量和空域临近运动矢量来递归地推导子CU的运动矢量。
为了保持对于子CU运动预测的更准确的运动场,当前禁用参考帧的运动压缩。
2.2.1.1可选时域运动矢量预测
参考图10,在可选时域运动矢量预测(ATMVP)方法中,通过从比当前CU小的块提取运动信息(包括运动矢量和参考索引)的多个集合来修改时域运动矢量预测(TemporalMotion Vector Prediction,TMVP)。在示例中,子CU是正方形的N×N块(N默认被设置为4)。
ATMVP分两个步骤来预测CU内的子CU的运动矢量。第一步骤是用所谓的时域矢量来识别参考图片中的对应块。参考图片也称为运动源图片。第二步骤是将当前CU划分成子CU,并从与每个子CU相对应的块中获得运动矢量以及每个子CU的参考索引。
在第一步骤中,参考图片和对应块由当前CU的空域临近块的运动信息确定。为了避免临近块的反复的扫描过程,使用当前CU的Merge候选列表中的第一Merge候选。第一可用运动矢量以及其相关联的参考索引被设置为时域矢量和运动源图片的索引。这样,在ATMVP中,与TMVP相比,可以更准确地识别对应块,其中对应块(有时称为并置块)总是相对于当前CU处于右下或中心位置。
在第二步骤中,通过向当前CU的坐标添加时域矢量,通过运动源图片中的时域矢量来识别子CU的对应块。对于每个子CU,其对应块的运动信息(覆盖中心样点的最小运动网格)用于推导子CU的运动信息。在识别对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换成当前子CU的运动矢量和参考索引,其中运动缩放和其它过程适用。例如,解码器检查是否满足低延迟条件(即当前图片的所有参考图片的POC小于当前图片的POC),并且可能使用运动矢量MVx(例如,与参考图片列表X相对应的运动矢量)来预测每个子CU的运动矢量MVy(例如,其中X等于0或1,并且Y等于1-X)。
2.2.1.2时空运动矢量预测(STMVP)
在该方法中,按照光栅扫描顺序递归地推导子CU的运动矢量。图11示出了这个概念。让我们考虑8×8的CU,它包含4个4×4的子CU:A、B、C和D。当前帧中的临近的4×4块被标记为a、b、c和d。
子CU A的运动推导通过识别其两个空域邻居(neighbour)开始。第一邻居是子CUA上边的N×N块(块c)。如果这个块c不可用或是帧内编解码的,则检查子CU A上边的其它N×N块(从左到右,从块c开始)。第二邻居是子CU A左边的块(块b)。如果块b不可用或是帧内编解码的,则检查子CU A左边的其它块(从上到下,从块b开始)。从每个列表的临近块中获得的运动信息被缩放到给定列表的第一参考帧。接下来,通过遵循如HEVC规定的TMVP推导的相同过程来推导子块A的时域运动矢量预测量(TMVP)。在位置D处的并置块的运动信息被相应地提取和缩放。最后,在检索和缩放运动信息之后,对每个参考列表单独地平均所有可用的运动矢量(最多3个)。平均运动矢量被分配为当前子CU的运动矢量。
2.2.1.3子CU运动预测模式信令
子CU模式被启用作为附加Merge候选,并且不需要附加语法元素来信令通知这些模式。两个附加Merge候选被添加到每个CU的Merge候选列表以表示ATMVP模式和STMVP模式。如果序列参数集指示启用了ATMVP和STMVP,则可以使用多达七个Merge候选。附加Merge候选的编码逻辑与HM中的Merge候选的编码逻辑相同,这意味着,对于P条带或B条带中的每个CU,针对两个附加Merge候选可能还需要两次RD检查。
在JEM中,Merge索引的所有二进制数(bin)都由CABAC进行上下文编解码。而在HEVC中,仅对第一二进制数进行上下文编解码,并且对其余二进制数进行上下文旁路编解码。
2.2.2自适应运动矢量差分辨率
在HEVC中,当在条带头中的use_integer_mv_flag等于0时,以四分之一(quarter)亮度样点为单位信令通知(PU的运动矢量和预测运动矢量之间的)运动矢量差(MotionVector Difference,MVD)。在JEM中,引入了局部自适应运动矢量分辨率(LocallyAdaptive Motion Vector Resolution,LAMVR)。在JEM中,可以以四分之一亮度样点、整数亮度样点或四亮度样点为单位对MVD进行编解码。以编解码单元(CU)级别控制MVD分辨率,并且对于具有至少一个非零MVD分量的每个CU,有条件地信令通知MVD分辨率标志。
对于具有至少一个非零MVD分量的CU,信令通知第一标志以指示在CU中是否使用四分之一亮度样点MV精度。当第一标志(等于1)指示未使用四分之一亮度样点MV精度时,信令通知另一个标志以指示使用整数亮度样点MV精度还是四亮度样点MV精度。
当CU的第一MVD分辨率标志为零或未针对CU进行编解码(意味着CU中的所有MVD均为零)时,四分之一亮度样点MV分辨率用于CU。当CU使用整数亮度样点MV精度或四亮度样点MV精度时,CU的AMVP候选列表中的MVP被取整到对应精度。
在编码器中,CU级别的RD检查用于确定哪个MVD分辨率要用于CU。也就是说,对于每个MVD分辨率,执行三次CU级别的RD检查。为了加快编码器速度,在JEM中应用以下编码方案:
·在具有正常四分之一亮度样点MVD分辨率的CU的RD检查期间,存储当前CU(整数亮度样点准度)的运动信息。存储的运动信息(取整之后)被用作在针对具有整数亮度样点和4亮度样点MVD分辨率的相同CU的RD检查期间的进一步的小范围运动矢量细化的起始点,使得耗时的运动估计过程不会重复三次。
·有条件地调用具有4亮度样点MVD分辨率的CU的RD检查。对于CU,当整数亮度样点MVD分辨率的RD代价远大于四分之一亮度样点MVD分辨率的RD代价时,跳过对于CU的4亮度样点MVD分辨率的RD检查。
编码过程如图12所示。首先,测试1/4像素MV,计算RD代价并表示为RDCost0,然后测试整数MV,并且RD代价表示为RDCost1。如果RDCost1<th*RDCost0(其中th为正值),则测试4像素MV;否则,跳过4像素MV。基本上,在检查整数或4像素MV时已知对于1/4像素MV的运动信息和RD代价等,可重复使用该运动信息和RD代价以加速整数或4像素MV的编码过程。
2.2.3三角形预测模式
三角形预测模式(TPM)的概念是为运动补偿预测引入一种新的三角形分割。如图13A和图13B所示,它沿对角线或相反的对角线方向将CU划分成两个三角形预测单元。CU中的每个三角形预测单元使用其自己的单向预测运动矢量和参考帧索引而被帧间预测,该单向预测运动矢量和参考帧索引从单个单向预测候选列表中推导。在预测三角形预测单元之后,对对角线边缘执行自适应加权过程。然后,将变换和量化过程应用于整个CU。注意,该模式仅适用于Merge模式(包括跳过模式,其中跳过模式被视为特殊Merge模式)。
在本文档中,三角形预测模式(TPM)可替换地被称为三角形分割模式、三角预测模式、三角形分割模式、几何分区模式或几何分割模式。
在一些实施例中,对于非TPM(也称为非几何)Merge模式,信令通知对Merge列表的Merge索引。包括多个规则Merge候选的Merge列表被构造为:空域Merge候选(从多达五个空域邻居中推导)、时域Merge候选(TMVP)、HMVP、成对平均候选和默认Merge候选(具有一些分配的参考图片的零MV)。在一些实施例中,规则Merge候选是针对使用非几何(非TPM)分割模式进行编解码的视频块而推导出的运动候选。
相反,对于TPM编解码块,信令通知对Merge列表的两个Merge索引(具有预测编解码)。
ο在一种情况下,可以以类似于上述非TPM分割模式的方式构建Merge列表,这导致生成TPM运动候选。
ο在另一种情况下,可以使用奇偶性来选择两个分区的单向预测运动信息。两个选择的Merge索引可以表示为idx0和idx1。对于每个Merge候选,如果其参考图片列表X=(idx0&idx1)为真,则分区的运动信息被设置为Merge候选的列表X信息。否则,分区的运动信息被设置为Merge候选列表的Y(Y=1-X)信息。这导致具有单向预测的最终运动信息作为TPM候选,并且第一种情况下的候选是规则Merge候选(其使用针对非TPM模式编解码块描述的Merge列表构建过程而生成)。
2.2.3.1 TPM的单向预测候选列表
单向预测候选列表,称为TPM运动候选列表,包括五个单向预测运动矢量候选。如图14所示,它是从CU的七个临近块推导的,包括五个空域临近块(1到5)和两个时域并置块(6到7)。收集七个临近块的运动矢量并按照单向预测运动矢量、双向预测运动矢量的L0运动矢量、双向预测运动矢量的L1运动矢量以及双向预测运动矢量的L0运动矢量和L1运动矢量的平均运动矢量的顺序,将其放入单向预测候选列表。如果候选的数量少于五个,则零运动矢量被添加到列表中。添加到该TPM列表中的运动候选被称为TPM候选,从空域/时域块推导的运动信息被称为规则运动候选(regular motion candidate)。
更具体地,涉及以下步骤:
1)从A1、B1、B0、A0、B2、Col和Col2(对应于图14中的块1-7)中获得规则运动候选, 需任何修剪操作
2)设置变量numCurrMergeCand=0。
3)对于从A1、B1、B0、A0、B2、Col和Col2中推导的每个规则运动候选以及numCurrMergeCand小于5,如果规则运动候选是单向预测(来自列表0或列表1),则将其作为TPM候选直接添加到Merge列表中,numCurrMergeCand增加1。这种TPM候选被称为“原始单向预测候选(originally uni-predicted candidate)”。
应用完全修剪(full pruning)。
4)对于从A1、B1、B0、A0、B2、Col和Col2中推导的每个运动候选以及numCurrMergeCand小于5,如果规则运动候选是双向预测,则来自列表0的运动信息作为新的TPM候选被添加到TPM Merge列表(即被修改为来自列表0的单向预测),并且numCurrMergeCand增加1。这种TPM候选被称为“截断列表0预测候选(Truncated List0-predicted candidate)”。
应用完全修剪
5)对于从A1、B1、B0、A0、B2、Col和Col2中推导的每个运动候选以及numCurrMergeCand小于5,如果规则运动候选是双向预测,则来自列表1的运动信息被添加到TPM Merge列表(即被修改为来自列表1的单向预测),并且numCurrMergeCand增加1。这种TPM候选被称为“截断列表1预测候选(Truncated List1-predicted candidate)”。
应用完全修剪
6)对于从A1、B1、B0、A0、B2、Col和Col2中推导的每个运动候选以及numCurrMergeCand小于5,如果规则运动候选是双向预测,
–如果列表0参考图片的条带QP小于列表1参考图片的条带QP,则首先将列表1的运动信息缩放到列表0参考图片,并将两个MV(一个来自原始列表0,并且另一个是来自列表1的缩放的MV)的平均添加到TPM Merge列表中,这样的候选称为来自列表0的平均单向预测运动候选(averaged uni-prediction from List 0motion candidate),并且numCurrMergeCand增加1。
–否则,首先将列表0的运动信息缩放到列表1参考图片,并将两个MV(一个来自原始列表1,并且另一个是来自列表0的缩放的MV)的平均添加到TPM Merge列表中,这样的TPM候选被称为来自列表1的平均单向预测运动候选(averaged uni-prediction from List 1motion candidate),并且numCurrMergeCand增加1。
应用完全修剪
7)如果numCurrMergeCand小于5,则添加零运动矢量候选。
2.2.3.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像素时,使用第二加权因子组。否则,使用第一加权因子组。示例如图15A-图15B所示。
2.2.3.3运动矢量存储
三角形预测单元的运动矢量(图16A和图16B中的Mv1和Mv2)存储在4×4网格中。对于每个4×4网格,存储单向预测运动矢量或双向预测运动矢量取决于4×4网格在CU中的位置。如图16A-图16B所示,单向预测运动矢量Mv1或Mv2,存储在位于非加权区域(即不位于对角线边缘)的4×4网格。另一方面,双向预测运动矢量存储在为位于加权区域的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.3.4三角形预测模式(TPM)的信令
可以首先信令通知指示TPM是否被使用的一个比特标志。此后,进一步信令通知两种划分模式(如图13A和图13B所描绘的)的指示,以及为两个分区中的每一个选择的Merge索引。
2.2.3.4.1 TPM标志的信令
让我们分别用W和H来表示一个亮度块的宽度和高度。如果W*H<64,则禁用三角形预测模式。
当一个块用仿射模式进行编解码时,也禁用三角形预测模式。
当一个块用Merge模式进行编解码时,可以信令通知一个比特标志来指示对于该块是启用还是禁用三角形预测模式。
基于以下等式,该标志用3个上下文进行编解码(见图17)。
Ctx索引=((左边的块L可用&&L是用TPM进行编解码的?)1:0)
+((上边的块A可用&&A是用TPM进行编解码的?)1:0);
2.2.3.4.2两种划分模式(如图13A-图13B所描绘的)的指示以及为两个分区中的每个分区选择的Merge索引的信令
注意,划分模式、两个分区的Merge索引是联合编解码的。在示例中,限制两个分区不能使用相同的参考索引。因此,存在2(划分模式)*N(最大Merge候选数量)*(N-1)种可能性,其中N被设置为5。一个指示被编解码,并且划分模式、两个Merge索引和编解码指示之间的映射从下面定义的数组中推导:
const uint8_t g_TriangleCombination[TRIANGLE_MAX_NUM_CANDS][3]={{0,1,0},{1,0,1},{1,0,2},{0,0,1},{0,2,0},{1,0,3},{1,0,4},{1,1,0},{0,3,0},{0,4,0},{0,0,2},{0,1,2},{1,1,2},{0,0,4},{0,0,3},{0,1,3},{0,1,4},{1,1,4},{1,1,3},{1,2,1},{1,2,0},{0,2,1},{0,4,3},{1,3,0},{1,3,2},{1,3,4},{1,4,0},{1,3,1},{1,2,3},{1,4,1},{0,4,1},{0,2,3},{1,4,2},{0,3,2},{1,4,3},{0,3,1},{0,2,4},{1,2,4},{0,4,2},{0,3,4}};
划分模式(45度或135度)=g_TriangleCombination[信令通知的指示][0];
候选A的Merge索引=g_TriangleCombination[信令通知的指示];
候选B的Merge索引=g_TriangleCombination[信令通知的指示];
一旦推导出了两个运动候选A和B,就可以根据A或B设置两个分区(PU1和PU2)的运动信息。PU1是否使用Merge候选A或B的运动信息取决于两个运动候选的预测方向。表1示出了两个推导出的运动候选A和B与两个分区之间的关系。
表1:从推导出的两个Merge候选(A、B)中推导分区的运动信息
Figure BDA0003358739940000201
Figure BDA0003358739940000211
2.2.3.4.3指示的熵编解码(由merge_triangle_idx表示)
merge_triangle_idx在[0,39]的范围内。K阶指数哥伦布(Exponential Golomb,EG)码用于merge_triangle_idx的二值化,其中K被设置为1。
K阶EG
为了用更少的比特来编码更大的数字(以用更多的比特来编码更小的数字为代价),这可以使用非负整数参数k来概括。为了用k阶指数哥伦布码对非负整数x进行编码:
1.使用上述0阶指数哥伦布码对
Figure BDA0003358739940000213
进行编码,然后
2.用二进制对x mod 2k进行编码
表2:指数哥伦布-k编解码示例
Figure BDA0003358739940000212
2.2.3.5 TPM的最新进展
规则Merge候选列表被重新用于三角形分割Merge预测,而没有额外的运动矢量修剪。对于规则Merge候选列表中的每个Merge候选,其L0或L1运动矢量中的一个且仅一个被用于三角形预测。另外,选择L0对(vs.)L1运动矢量的顺序基于其Merge索引奇偶性。利用该方案,可以直接使用规则Merge列表。
一旦构建了规则Merge列表,对于规则Merge候选列表中的每个Merge候选,其L0或L1运动矢量中的一个且仅一个被用于三角形预测。另外,选择L0对L1运动矢量的顺序基于其Merge索引奇偶性。更具体地,如图18C所示,对于具有偶数值索引的候选,首先选择其L0运动矢量用于三角形预测。如果不可用,则转而使用其L1运动矢量。对于具有奇数值索引的候选,首先选择其L1运动矢量用于三角形预测。如果不可用,则转而使用其L0运动矢量。在图18C中,对应于每个Merge索引,首先选择用“x”标记的运动矢量用于三角形预测。
7.3.7.7 Merge数据语法
Figure BDA0003358739940000221
Figure BDA0003358739940000231
2.2.4重叠块运动补偿
重叠块运动补偿(OBMC)先前在H.263中使用过。在JEM中,与H.263不同,可以使用CU级别的语法来打开和关闭OBMC。当在JEM中使用OBMC时,除了CU的右边界和下边界之外,对于所有运动补偿(Motion Compensation,MC)块边界都执行OBMC。此外,它被应用于亮度和色度分量。在JEM中,MC块对应于编解码块。当用子CU模式(包括子CU Merge、仿射和FRUC(Frame Rate Up Conversion,帧速率上转换)模式)对CU进行编解码时,CU的每个子块是MC块。为了以统一的方式处理CU边界,在子块级别对于所有MC块边界执行OBMC,其中子块尺寸被设置为等于4×4,如图18A-图18B所示。
当OBMC应用于当前子块时,除了当前运动矢量之外,四个相连的临近子块的运动矢量(如果可用并且与当前运动矢量不相同)还用于推导当前子块的预测块。基于多个运动矢量的这些多个预测块被组合以生成当前子块的最终预测信号。
基于临近子块的运动矢量的预测块被表示为PN,其中N表示用于临近的上边、下边、左边和右边的子块的索引,并且基于当前子块的运动矢量的预测块被表示为PC。当PN基于包含临近子块的与当前子块相同的运动信息的运动信息时,OBMC不是从PN执行的。否则,将PN的每个样点添加到PC中的相同样点中,即PN的四行/列被添加到PC中。加权因子{1/4,1/8,1/16,1/32}用于PN,并且加权因子{3/4,7/8,15/16,31/32}用于PC。例外情况是小的MC块(即当编解码块的高度或宽度等于4或者CU用子CU模式进行编解码时),对于这样的块,只有PN的两行/列被添加到PC中。在这种情况下,加权因子{1/4,1/8}用于PN,并且加权因子{3/4,7/8}用于PC。对于基于垂直(水平)临近子块的运动矢量生成的PN,将PN的相同的行(列)中的样点以相同的加权因子添加到PC
在JEM中,对于尺寸小于或等于256个亮度样点的CU,信令通知CU级别标志,以指示对于当前CU是否应用了OBMC。对于尺寸大于256个亮度样点或未用AMVP模式编解码的CU,默认应用OBMC。在编码器处,当OBMC应用于CU时,其影响在运动估计阶段期间被考虑在内。使用上临近块和左临近块的运动信息由OBMC形成的预测信号用于补偿当前CU的原始信号的上边界和左边界,然后应用正常运动估计过程。
2.2.5局部照明补偿
局部照明补偿(Local Illumination Compensation,LIC)基于照明变化的线性模型,使用缩放因子a和偏移b。并且对于每个帧间模式编解码的编解码单元(CU)自适应地启用或禁用它。
当LIC应用于CU时,采用最小平方误差法以通过使用当前CU的临近样点及其对应的参考样点来推导参数a和b。更具体地,如图19所示,使用参考图片中的CU的子采样(2:1子采样)临近样点和对应的样点(由当前CU或子CU的运动信息识别)。IC参数被单独地推导并应用于每个预测方向。
当用Merge模式对CU进行编解码时,以类似于Merge模式下的运动信息复制的方式,从临近块复制LIC标志;否则,为CU信令通知LIC标志,指示LIC是否适用。
当对于图片启用LIC时,需要附加的CU级别RD检查来确定是否将LIC应用于CU。当对于CU启用LIC时,绝对差的均值移除和(Mean-Removed Sum of Absolute Difference,MR-SAD)和绝对哈达玛(Hadamard)变换差的均值移除和(Mean-Removed Sum of AbsoluteHadamard-Transformed Difference,MR-SATD)(而不是SAD和SATD)分别用于整数像素运动搜索和分数像素运动搜索。
为了降低编码复杂度,在JEM中应用以下编码方案。
·当当前图片及其参考图片之间没有明显的照明变化时,对于整个图片禁用LIC。为了识别这种情况,在编码器处计算当前图片和当前图片的每个参考图片的直方图。如果当前图片和当前图片的每个参考图片之间的直方图差小于给定阈值,则对于当前图片禁用LIC;否则,对于当前图片启用LIC。
2.2.6仿射运动补偿预测
在HEVC中,只有平移运动模型被应用于运动补偿预测(Motion CompensationPrediction,MCP)。而在现实世界中,存在许多种运动,例如,放大/缩小、旋转、透视运动和其它不规则运动。在JEM中,应用简化的仿射变换运动补偿预测。如图20A-图20B所示,块的仿射运动场由两个控制点运动矢量来描述。
块的运动矢量场(Motion Vector Field,MVF)由以下等式描述:
Figure BDA0003358739940000251
对于6参数仿射,
Figure BDA0003358739940000252
其中(v0x,v0y)是左上角控制点的运动矢量,并且(v1x,v1y)是右上角控制点的运动矢量,并且(v2x,v2y)是左下角控制点的运动矢量,(x,y)表示当前块内代表点(representative point)相对于左上样点的坐标。在VTM中,代表点被定义为子块的中心位置,例如,当子块的左上角相对于当前块内的左上样点的坐标是(xs,ys)时,代表点的坐标被定义为(xs+2,ys+2)。
为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。子块尺寸M×N由等式2推导,其中MvPre是运动矢量分数精度(在JEM中为1/16),(v2x,v2y)是根据等式1计算的左下控制点的运动矢量。
Figure BDA0003358739940000253
在由等式2推导出之后,如果需要,应该向下调整M和N,使其分别为w和h的因数(divisor)。
为了推导每个M×N子块的运动矢量,如图20A-图20B所示,根据等式1计算每个子块的中心样点的运动矢量,并取整到1/16的分数精度。然后,应用2.2.3节中提到的运动补偿插值滤波器来用推导出的运动矢量生成每个子块的预测。
图21示出了每一子块的仿射运动矢量场MVF的示例。
在MCP之后,每个子块的高精度运动矢量被取整并保存为与正常运动矢量相同的精度。
2.2.6.1 AF_INTER模式
在JEM中,有两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度都大于8的CU,可以应用AF_INTER模式。在比特流中信令通知CU级别的仿射标志,以指示是否使用AF_INTER模式。在这种模式下,使用临近块构建具有运动矢量对{(v0,v1)|v0={vA,vB,vc},v1={vD,vE}}的候选列表。如图22A-图22B所示,从块A、块B或块C的运动矢量中选择v0。根据参考列表以及临近块的参考的POC、当前块的参考的POC和当前CU的POC之间的关系,缩放来自临近块的运动矢量。并且从临近块D和E中选择v1的方法是类似的。如果候选列表的数量小于2,则该列表由通过复制每个AMVP候选而组成的运动矢量对来填充。当候选列表大于2时,首先根据临近运动矢量的一致性(一对候选中两个运动矢量的相似性)对候选进行排序,并且仅保留前两个候选。RD代价检查用于确定选择哪个运动矢量对候选作为当前CU的控制点运动矢量预测(Control Point Motion Vector Prediction,CPMVP)。并且在比特流中信令通知指示候选列表中的CPMVP位置的索引。在确定当前仿射CU的CPMVP之后,应用仿射运动估计并找到控制点运动矢量(Control Point Motion Vector,CPMV)。然后,在比特流中信令通知CPMV和CPMVP的差。
图23示出了AF_INTER的运动矢量预测量MVP的示例。
在AF_INTER模式下,当使用4/6参数仿射模式时,需要2/3个控制点,并且因此需要为这些控制点编解码2/3个MVD,如图22A-图22B所示。在现有的实施方式中,提出按如下方式来推导MV,即从mvd0中预测mvd1和mvd2
Figure BDA0003358739940000261
Figure BDA0003358739940000262
Figure BDA0003358739940000263
其中,
Figure BDA0003358739940000264
mvdi和mv1分别是左上像素(i=0)、右上像素(i=1)或左下像素(i=2)的预测运动矢量、运动矢量差和运动矢量,如图22B所示。请注意,两个运动矢量(例如,mvA(xA,yA)和mvB(xB,yB))的相加等于两个分量的单独求和,即newMV=mvA+mvB,newMV的两个分量分别设置为(xA+xB)和(yA+yB)。
2.2.6.2 AF_MERGE模式
当在AF_MERGE模式下应用CU时,它从有效的临近重建块中获得用仿射模式编解码的第一块。并且候选块的选择顺序是从左、上、右上、左下到左上,如图24A所示。如果临近的左下块A以仿射模式编解码,如图24B所示,则推导包含块A的CU的左上角、右上角和左下角的运动矢量v2、v3和v4。并且根据v2、v3和v4来计算当前CU上左上角的运动矢量v0。其次,计算当前CU右上的运动矢量v1
在推导出当前CU的CPMV v0和v1之后,根据简化的仿射运动模型等式1,生成当前CU的MVF。为了识别当前CU是否用AF_MERGE模式编解码,当存在至少一个临近块以仿射模式编解码时,在比特流中信令通知仿射标志。
在一些实施方式中,仿射Merge候选列表由以下步骤构建:
插入继承的仿射候选
继承的仿射候选是指该候选是从其有效临近仿射编解码块的仿射运动模型中推导的。在公共基础中,如图24A-图24B所示,候选位置的扫描顺序是:A1、B1、B0、A0和B2。
在推导出候选之后,执行完全修剪过程,以检查是否已将相同候选插入列表。如果存在相同候选,则丢弃推导出的候选。
插入构建的仿射候选
如果仿射Merge候选列表中的候选的数量小于MaxNumAffineCand(在此稿中设置为5),则将构建的仿射候选插入候选列表中。构建的仿射候选是指通过组合每个控制点的临近运动信息来构建候选。
控制点的运动信息首先从图24A-图24B所示的指定的空域邻居和时域邻居中推导。CPk(k=1,2,3,4)代表第k个控制点。A0、A1、A2、B0、B1、B2和B3是预测CPk(k=1,2,3)的空域位置;T是预测CP4的时域位置。
CP1、CP2、CP3和CP4的坐标分别是(0,0)、(W,0)、(H,0)和(W,H),其中W和H是当前块的宽度和高度。
图25示出了仿射Merge模式的候选位置的示例。
根据以下优先级顺序获得每个控制点的运动信息:
对于CP1,检查优先级是B2->B3->A2。如果B2可用,则使用B2。否则,如果B2可用,则使用B3。如果B2和B3都不可用,则使用A2。如果三个候选全部都不可用,则无法获得CP1的运动信息。
对于CP2,检查优先级是B1->B0
对于CP3,检查优先级是A1->A0
对于CP4,使用T。
其次,使用控制点的组合来构建仿射Merge候选。
构建6参数仿射候选需要三个控制点的运动信息。三个控制点可以从以下四个组合中选择一个({CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}、{CP1,CP3,CP4})。组合{CP1,CP2,CP3}、{CP2,CP3,CP4}、{CP1,CP3,CP4}将转换为由左上、右上和左下控制点表示的6参数运动模型。
构建4参数仿射候选需要两个控制点的运动信息。这两个控制点可以从以下六个组合中选择一个({CP1,CP4}、{CP2,CP3}、{CP1,CP2}、{CP2,CP4}、{CP1,CP3}、{CP3,CP4})。组合{CP1,CP4}、{CP2,CP3}、{CP2,CP4}、{CP1,CP3}、{CP3,CP4}将被转换为由左上和右上控制点表示的4参数运动模型。
构建的仿射候选的组合按以下顺序插入候选列表:
{CP1,CP2,CP3}、{CP1,CP2,CP4}、{CP1,CP3,CP4}、{CP2,CP3,CP4}、{CP1,CP2}、{CP1,CP3}、{CP2,CP3}、{CP1,CP4}、{CP2,CP4}、{CP3,CP4}。
对于组合的参考列表X(X为0或1),在控制点中具有最高使用率的参考索引被选择作为列表X的参考索引,并且指向差异参考图片的运动矢量将被缩放。
在推导出候选之后,执行完全修剪过程,以检查是否已将相同候选插入列表。如果存在相同候选,则推导出的候选将被丢弃。
用零运动矢量进行填充
如果仿射Merge候选列表中的候选的数量少于5,则具有零参考索引的零运动矢量被插入到候选列表中,直到列表满为止。
2.2.7双向光流
双向光流(Bi-directional Optical flow,BIO)是按样点的运动细化,其在用于双向预测的按块的运动补偿的基础上进行。样点级别运动细化不使用信令。
图26示出了光流轨迹的示例。
假设I(k)是块运动补偿之后来自参考k(k=0,1)的亮度值,并且
Figure BDA0003358739940000281
Figure BDA0003358739940000291
分别是I(k)梯度的水平分量和垂直分量。假设光流是有效的,运动矢量场(vx,vy)由等式给出:
Figure BDA0003358739940000292
将该光流等式与Hermite插值相结合以获得每个样点的运动轨迹,最终得到与函数值I(k)和导数
Figure BDA0003358739940000293
相匹配的唯一的三阶多项式。t=0时该多项式的值是BIO预测:
Figure BDA0003358739940000294
这里,τ0和τ1表示到参考帧的距离,如图28所示。距离τ0和τ1是基于Ref0和Ref1的POC计算的:τ0=POC(当前)-POC(Ref0),τ1=POC(Ref1)-POC(当前)。如果两个预测来自相同的时间方向(要么都来自过去,要么都来自未来),则信号是不同的(即τ0·τ1<0)。在这种情况下,只有当预测不是来自相同时刻(即τ0≠τ1)、两个参考区域都具有非零运动(MVx0,MVy0,MVx1,MVy1≠0)、并且块运动矢量与时间距离成比例(MVx0/MVx1=MVy0/MVy1=-τ01)时,才应用BIO。
通过最小化点A和点B(图26上运动轨迹和参考帧平面的交点)的值之间的差Δ来确定运动矢量场(vx,vy)。模型只使用对于Δ的局部Taylor展开的第一线性项:
Figure BDA0003358739940000295
等式5中的所有值都取决于样点位置(i′,j′),到目前为止从符号中忽略该位置。假设运动在局部周围区域中是一致的,我们最小化以当前预测点(i,j)为中心的(2M+1)×(2M+1)正方形窗口Ω内的Δ,其中M等于2:
Figure BDA0003358739940000296
对于这个优化问题,JEM使用简化的方法,首先在垂直方向最小化,然后在水平方向最小化。这得到:
Figure BDA0003358739940000297
Figure BDA0003358739940000298
其中,
Figure BDA0003358739940000299
为了避免除以零或非常小的值,正则化参数r和m被引入等式7和8中。
r=500·4d-8 (10)
m=700·4d-8 (11)
这里d是视频样点的比特深度。
为了保持BIO的存储器访问与规则双向预测运动补偿的相同,所有预测和梯度值I(k)
Figure BDA0003358739940000301
都仅针对当前块内部的位置进行计算。在等式9中,以预测块的边界上的当前预测点为中心的(2M+1)×(2M+1)正方形窗口Ω需要访间块的外部的位置(如图27A所示)。在JEM中,块外部的I(k)
Figure BDA0003358739940000302
的值被设置为等于块内部最近的可用值。例如,这可以实施为填充,如图27B所示。
利用BIO,有可能针对每个样点细化运动场。为了降低计算复杂度,在JEM中使用基于块的BIO设计。基于4×4块来计算运动细化。在基于块的BIO中,聚合4×4块中所有样点的等式9中的sn值,然后sn的聚合值用于推导4×4块的BIO运动矢量偏移。更具体地,以下公式用于基于块的BIO推导:
Figure BDA0003358739940000303
其中bk表示属于预测块的第k个4×4块的样点集。等式7和8中的sn被((sn,bk)>>4)代替,以推导相关联的运动矢量偏移。
在某些情况下,由于噪音或不规则的运动,BIO的MV细化可能不可靠。因此,在BIO中,MV细化的幅度被限幅到阈值thBIO。阈值基于当前图片的参考图片是否都来自一个方向来确定。如果当前图片的所有参考图片都来自一个方向,则阈值被设置为12×214-d;否则,它被设置为12×213-d
使用与HEVC运动补偿过程(2D可分离FIR)一致的操作,与运动补偿插值同时计算BIO的梯度。该2D可分离FIR的输入是与运动补偿过程和根据块运动矢量的分数部分的分数位置(fracX,fracY)相同的参考帧样点。在水平梯度
Figure BDA0003358739940000304
的情况下,首先使用与具有去缩放(de-scaling)偏移d-8的分数位置fracY相对应的BIOfilterS对信号垂直插值,然后在水平方向上应用与具有去缩放偏移18-d的分数位置fracX相对应的梯度滤波器BIOfilterG。在垂直梯度
Figure BDA0003358739940000311
的情况下,首先使用与具有去缩放偏移d-8的分数位置fracY相对应的BIOfilterG来垂直地应用梯度滤波器,然后在水平方向上使用与具有去缩放偏移18-d的分数位置fracX相对应的BIOfilterS来执行信号位移。用于梯度计算的插值滤波器BIOfilterG和信号位移BIOfilterF的长度较短(6抽头),以便维持合理的复杂性。表3示出了用于BIO中块运动矢量的不同分数位置的梯度计算的滤波器。表4示出了用于BIO中预测信号生成的插值滤波器。
表3:用于BIO中梯度计算的滤波器
分数像素位置 梯度的插值滤波器(BIOfilterG)
0 {8,-39,-3,46,-17,5}
1/16 {8,-32,-13,50,-18,5}
1/8 {7,-27,-20,54,-19,5}
3/16 {6,-21,-29,57,-18,5}
1/4 {4,-17,-36,60,-15,4}
5/16 {3,-9,-44,61,-15,4}
3/8 {1,-4,-48,61,-13,3}
7/16 {0,1,-54,60,-9,2}
1/2 {-1,4,-57,57,-4,1}
表4:用于BIO中预测信号生成的插值滤波器
分数像素位置 预测信号的插值滤波器(BIOfilterS)
0 {0,0,64,0,0,0}
1/16 {1,-3,64,4,-2,0}
1/8 {1,-6,62,9,-3,1}
3/16 {2,-8,60,14,-5,1}
1/4 {2,-9,57,19,-7,2}
5/16 {3,-10,53,24,-8,2}
3/8 {3,-11,50,29,-9,2}
7/16 {3,-11,44,35,-10,3}
1/2 {3,-10,35,44,-11,3}
在JEM中,当两个预测来自不同的参考图片时,BIO应用于所有双向预测块。当对于CU启用LIC时,BIO被禁用。
在JEM中,OBMC应用于正常MC过程之后的块。为了降低计算复杂性,BIO没有在OBMC过程期间被应用。这意味着当使用自己的MV时,BIO仅应用于块的MC过程,而当在OBMC过程期间使用临近块的MV时,BIO不应用于MC过程。
2.2.8解码器侧运动矢量细化
在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,双向预测的两个运动矢量通过双边模板匹配过程进一步细化。双边模板匹配应用于解码器中,以在双边模板和参考图片中的重构样点之间执行基于失真的搜索,以便在不发送附加运动信息的情况下获得细化的MV。
在DMVR中,从列表0的初始MV0和列表1的MV1分别生成双边模板作为两个预测块的加权组合(即平均值),如图28所示。模板匹配操作包括计算生成的模板和参考图片中的(初始预测块周围的)样点区域之间的成本度量。对于两个参考图片中的每一个,产生最小模板成本的MV被认为是该列表中用以替换原始MV的更新后的MV。在JEM中,对于每个列表搜索9个MV候选。9个候选MV包括原始MV和8个周围MV,其中一个亮度样点在水平或垂直方向或两者上相对于原始MV偏移的亮度样点。最后,两个新的MV(即如图28所示的MV0′和MV1′)用于生成最终的双向预测结果。绝对差之和(sum of absolute differences,SAD)被用作成本度量。请注意,当计算由一个周围MV生成的预测块的成本时,取整的MV(取整到整数像素)实际上用于获得预测块,而不是实际的MV。
DMVR应用于双向预测的Merge模式,其中一个MV来自过去的参考图片,并且另一个来自未来的参考图片,而无需传输附加语法元素。在JEM中,当对于CU启用LIC、仿射运动、FRUC或子CU Merge候选时,不应用DMVR。
2.2.9子块Merge候选列表
建议将除了用于非子块Merge候选的规则Merge列表之外的所有子块相关的运动候选放入单独的Merge列表中。
子块相关的运动候选被放入单独的Merge列表中,该列表被称为“子块Merge候选列表”。
在一个示例中,子块Merge候选列表包括仿射Merge候选、ATMVP候选和/或基于子块的STMVP候选。
2.2.9.1仿射Merge列表构建的另一示例
在此稿中,正常Merge列表中的ATMVP Merge候选被移动到仿射Merge列表的第一位置。使得新列表(即基于子块的Merge候选列表)中的所有Merge候选都基于子块编解码工具。
3.实施例克服的问题的示例
在三角形分割的设计中,一个块可以被划分成两个分区。为了节省由于运动补偿而导致的存储带宽,需要对两个分区进行单向预测。在运动补偿过程期间,双向预测用于对角线边缘,并且单向预测用于所有其余部分。如果每个分区都允许双向预测,则位于对角线边缘的样点将具有四个MV,其中两个来自一个分区,以及两个来自另一分区。这种设计有以下问题:
1)单向预测Merge列表的设计取决于参考图片列表,即给定了与来自参考图片列表0的参考图片相关联的MV的更高优先级。也就是说,从所有单向预测规则运动候选推导的TPM候选在从所有双向预测规则运动候选推导的TPM候选之前被插入。然而,典型地,空域临近块的位置在MV信息的相似性方面具有更强的相关性。
2)允许两个分区选择不同的TPM候选索引,然而,对它们两者使用相同的Merge候选列表,这不是最佳的,因为两个分区可能与当前块的临近块具有不同的相关性。
3)TPM候选的最大数量被固定为5,这至少对软件设计来说是不友好的。
4)加权因子组是对于所有类型的块预先定义的。
5)运动信息以4×4级别存储,这增加了存储器需求。如何压缩它们是一个需要研究的问题。
6)TPM运动信息取决于两个解码的Merge索引的奇偶性。对于具有偶数值索引的候选,首先选择其L0运动矢量以用于三角形预测。如果不可用,则转而使用其L1运动矢量。对于具有奇数值索引的候选,首先选择其L1运动矢量以用于三角形预测。如果不可用,则转而使用其L0运动矢量。因此,两个候选可能来自相同的参考图片列表。
4.示例实施例
所提出的方法可以应用于任何非正方形/非矩形分割,例如,几何分割。在下面的描述中,我们使用“三角形分割模式”来表示非正方形/非矩形分割模式(TPM)的一个示例,并且插入到TPM候选列表中的运动矢量预测候选被称为“TPM候选”。并且与任何先前编解码的块相关联的运动信息被称为“规则运动候选”。应当注意,其它类型的分割也可以适用。
下面技术的详细列表应被视为解释一般概念的示例。这些技术不应该被狭义地解释。此外,这些技术可以以任何方式组合。
具有不同顺序的TPM候选列表(AMVP/Merge/其它)构建过程
1.代替总是在从所有双向预测规则运动候选推导的TPM候选之前插入从所有单向预测规则运动候选推导的TPM候选,提出了使用预测方向作为优先级准则来决定应该首先添加哪些TPM候选。
a.在一个示例中,在具有来自列表Y的单向预测的候选之前,将具有来自列表X的单向预测的所有规则运动候选作为TPM候选插入到候选列表中。
b.在一个示例中,从双向预测规则运动候选(例如,截断列表0预测候选、截断列表1预测候选)推导的所有TPM候选被赋予更高的优先级,也就是说,它们可以在从单向预测规则运动候选推导的TPM候选之前被插入。
c.在一个示例中,顺序被定义为:从双向预测规则运动候选列表X推导的所有TPM候选(例如,截断列表X预测候选)、从双向预测规则运动候选列表Y推导的所有TPM候选(例如,截断列表Y预测候选)、从单向预测规则运动候选推导的所有TPM候选(例如,原始单向预测候选)。
d.在一个示例中,从一个双向预测规则运动候选推导的TPM候选可以在从另一双向预测规则运动候选推导的TPM候选之前被添加到列表中。
e.在一个示例中,从一个双向预测规则运动候选推导的TPM候选可以以交织的方式与从另一双向预测规则运动候选推导的TPM候选一起添加。
i.当存在两个规则运动候选CA和CB,以及四个TPM候选时,包括分别从CA和CB推导的截断列表0/1预测候选。列表的添加顺序可以定义为:从CA推导的截断列表0预测候选、从CB推导的截断列表1预测候选、从CA推导的截断列表1预测候选,从CB推导的截断列表0预测候选。
ii.可替代地,当存在两个规则运动候选CA和CB,以及四个TPM候选时,包括分别从CA和CB推导的截断列表0/1预测候选。列表的添加顺序可以定义为:从CA推导的截断列表1预测候选、从CB推导的截断列表0预测候选、从CA推导的截断列表0预测候选、从CB推导的截断列表1预测候选。
2.代替总是在从所有双向预测规则运动候选推导的TPM候选之前插入从所有单向预测规则运动候选推导的TPM候选,提出了使用与规则运动候选相关联的编解码模式信息作为优先准则来决定应该首先添加哪些TPM候选。
a.编解码信息可以包括AMVP或Merge模式。
i.在一个示例中,如果一个规则运动候选CA是从块A推导的,另一个CB是从块B推导的,并且块A用AMVP模式编解码,而块B用Merge模式编解码,则从CA推导的TPM候选可以在从CB推导的TPM候选之前添加到列表中。可替代地,从CB推导的TPM候选可以在从CA推导的TPM候选之前添加到列表中。
b.编解码信息可以包括参考索引和/或POC差。
i.在一个示例中,与另一个TPM候选C’B相比,如果一个TPM候选C’A与更小的参考索引相关联,则C’A可以在C’B之前被添加到列表中。
ii.在一个示例中,与另一个TPM候选C’B相比,如果一个TPM候选C’A与一个更小的参考图片和当前图片之间的POC距离相关联,则C’A可以在C’B之前被添加到列表中。
c.编解码信息可以包括参考图片的图片/条带/片组量化参数(quantizationparameter,QP)和/或参考图片的时域层索引。
i.在一个示例中,与另一个TPM候选C’B相比,如果一个TPM候选C’A与具有更小的QP的参考图片相关联,则C’A可以在C’B之前被添加到列表中。
3.代替总是在从所有双向预测规则运动候选推导的TPM候选之前插入从所有单向预测规则运动候选推导的TPM候选,提出了使用运动候选被推导的位置作为优先级准则来决定应该首先添加哪些TPM候选。
a.在一个示例中,如果一个规则运动候选CA是从块A推导的,以及另一个CB是从块B推导的,并且在A之后检查B,则从CA推导(例如,如果CA是单向预测,或者两个TPM候选中每个候选是从与CA相关联的一个预测方向复制而来的,则直接继承)的那些TPM运动候选可以在从块CB推导的候选之前添加到列表中。
b.可替代地,此外,位置和参考图片列表(或预测方向)都可以用作优先级准则。例如,如果一个规则运动候选CA是从块A推导的,以及另一个CB是从块B推导的,并且在A之后检查B,则从列表X的CA推导的那些TPM运动候选可以在从列表X的CB推导的那些TPM运动候选之前被添加到列表中。从列表Y的CA推导的那些TPM运动候选可以在从列表Y的CB推导的那些TPM运动候选之前被添加到列表中。X等于0或1,Y等于(1–X)。
4.提出了将所有截断列表1预测候选添加在截断列表0预测候选之前。
a.可替代地,截断列表0预测候选和截断列表1预测候选的顺序可以自适应地改变,例如,基于可用的TPM运动候选而改变。
i.在一个示例中,如果第一TPM运动候选是具有来自列表1的单向预测的原始单向预测候选,则截断列表1预测候选可以添加在截断列表0预测候选之前。
ii.可替代地,如果原始单向预测候选更多地来自列表1,则截断列表1预测候选可以在截断列表0预测候选之前被添加。
b.可替代地,从一个双向预测运动候选(例如,一个截断列表0预测候选和一个截断列表0预测候选)推导的所有TPM候选可以在从另一双向预测运动候选推导的所有TPM候选之前添加到列表中。
i.可替代地,此外,对于从一个运动候选推导的那些TPM候选,添加它们的顺序可以进一步取决于列表中可用的TPM运动候选的信息,例如,4.a。
具有更多TPM候选的TPM候选列表(AMVP/Merge/其他)构建流程
5.从一个规则运动候选推导的来自列表0和列表1的多个平均单向预测的运动候选可以都被添加到TPM运动候选列表中。
a.可替代地,可以只添加其中一个,并且添加哪一个取决于列表中可用的TPM候选的信息,例如,4.a。
b.可替代地,可以只添加其中一个,并且添加哪一个取决于两个预测列表的参考图片索引。将保持与较小参考图片索引相关联的运动矢量,并且最终预测方向与这样的参考图片相关联。
c.可替代地,可以只添加其中一个,并且添加哪一个取决于两个预测列表的参考图片和当前图片之间的POC距离。将保持与较小POC距离相关联的运动矢量,并且最终预测方向与这样的参考图片相关联。
d.在一个示例中,所有来自列表0的平均单向预测的运动候选可以在所有来自列表1的平均单向预测的运动候选之前被插入。可替代地,所有来自列表1的平均单向预测的运动候选可以在所有来自列表0的平均单向预测的运动候选之前被插入。
6.提出了可以使用单向预测规则运动候选来推导平均单向预测TPM候选。
a.来自列表LX的单向预测规则运动候选可以用于生成列表LX的平均单向预测候选,例如,与双向预测规则运动候选一起或与来自列表X的其它单向预测规则运动候选一起生成列表LX的平均单向预测候选。
b.来自列表LX的单向预测规则运动候选可以首先被缩放到LY(Y=1-X),并且缩放的运动矢量可以用于生成列表LY的平均单向预测候选,例如,与双向预测规则运动候选一起或者与来自列表X的其它单向预测规则运动候选一起。
7.从可用的TPM运动候选推导的虚拟TPM运动候选也可以被添加到TPM候选列表中。
a.在一个示例中,在某个步骤之后(例如,在生成截断列表1预测候选之后),虚拟候选可以从那些已经被添加到Merge列表中的候选推导。
b.在一个示例中,虚拟候选可以仅从原始单向预测候选推导。
c.在一个示例中,虚拟候选可以仅从原始单向预测候选和截断列表1预测候选推导。
d.在一个示例中,虚拟候选可以仅从具有特定参考图片索引(即等于0)和/或具有在参考图片和当前图片之间特定范围的POC距离的候选推导或者从一个参考图片列表推导。
e.在一个示例中,虚拟候选可以仅从前K个TPM运动候选推导,例如,K被设置为1。
i.例如,可以对两个TPM运动候选的MV求平均,以获得虚拟候选。
f.对于其运动矢量由Cmv表示、参考索引由Crefidx表示的TPM运动候
选,可以使用以下方法推导虚拟:
i.向Cmv的水平或垂直分量添加偏移,并使用相同的Crefidx
ii.向Cmv的水平和垂直分量添加偏移,并使用相同的Crefidx
iii.将Cmv缩放至Crefidx未指向的另一参考图片。使用缩放的运动矢量和参考图片(其中Cmv被缩放到其)的索引作为新的TPM运动候选。
g.当添加虚拟TPM候选时,可以不应用修剪。
i.可替代地,修剪可以应用于候选,不包括从其中生成虚拟TPM候选的那些候选。
具有自适应插入顺序的TPM候选列表(AMVP/Merge/其它)构建过程
8.TPM候选的插入顺序(优先级准则)可以从序列到序列、图片到图片、条带到条带、片组到片组、块到块等而改变。
a.在一个示例中,它可以取决于块尺寸/块形状/划分模式。
b.可替代地,可以在VPS/SPS/PPS/条带头/片组头/片/CTU/CU中从编码器向解码器信令通知该顺序。
TPM编解码块中分区的多个TPM列表
9.对于每个几何分区,可以构建一个单独的运动候选列表,而不是对所有分区使用一个列表。
a.在一个示例中,对于一个分区,其相关联的候选列表仅包含从列表X预测的运动候选,而对于另一分区,其相关联的候选列表仅包含从列表Y预测的运动候选,其中Y不等于X。
b.在一个示例中,可以访问不同的空域和/或时域块来推导要添加到Merge列表中的运动候选。
c.在一个示例中,一个几何分区的空域和/或时域块的位置可以取决于分区的位置。
d.在一个示例中,一个几何分区的空域和/或时域块的位置可以取决于划分方式(从左上到右下(45度)或者从右上到左下(135度))。
e.在一个示例中,对于135度划分模式(如图13A-图13B所描绘),可以检查更多上边的块来构建PU1的Merge列表。图29中描绘了上边的块(用灰色标记)的一些示例。
f.在一个示例中,对于135度划分模式(如图13A-图13B所描绘),可以检查更多的左边的块来构建PU2的Merge列表。图29中描绘了左边的块(用灰色标记)的一些示例。
g.在一个示例中,对于45度划分模式(如图13A-图13B所描绘),可以检查更多的左边的块和上边的块来构建PU1的Merge列表。图29中描绘了左边的块和上边的块(用灰色标记)的一些示例。
h.在一个示例中,对于45度划分模式(如图13A-图13B所描绘),可以检查更多的时域块来构建PU2的Merge列表。
i.在一个示例中,对于每个分区信令通知TPM列表的索引。
10.可以对于所有分区构建和共享多个TPM列表,并且每个分区可以选择其中一个TPM列表(例如,每个分区可以从多个TPM列表中选择相同的TPM列表)。
a.在一个示例中,可以首先信令通知TPM列表的索引。然后可以进一步信令通知TPM候选的索引。
b.在另一示例中,TPM列表的索引和TPM候选的索引可以被联合编解码。
最大允许TPM候选的信令通知
11.用于Merge/AMVP的最大允许TPM候选在SPS/VPS/PPS/图片头/条带头/片组头/LCU行/LCU组中信令通知。
a.可替代地,最大允许TPM运动候选被设置为用于非TPM编解码块,例如,非TPMMerge候选列表尺寸或子块Merge候选列表尺寸。
b.最大数量在信令通知时用一元编解码或截断一元编解码来二进制化。
c.代替直接信令通知最大数量,可以信令通知(M-最大数量),例如,M=5或6。
d.可以信令通知一个比特标志,以指示TPM候选的最大数量是否与规则运动候选/子块运动候选的最大数量相同。
加权因子组
12.加权因子组的选择可以取决于当前块的宽度和/或高度。
a.在一个示例中,如果宽度和高度之间的比率大于阈值,则可以选择特定的加权因子组(例如,组1)。
b.在一个示例中,如果高度和宽度之间的比率大于阈值,则可以选择特定的加权因子组(例如,组1)。
c.可以预先定义多个加权因子组的集合,对于不同的块宽度和/或高度,可以从它们中的一个或两个中选择一个加权因子组。
13.加权因子可以基于样点的位置实时(on-the-fly)改变。
a.在一个示例中,它可以取决于区分两个分区的边缘的角度。
b.在一个示例中,加权因子可以被定义为样点位置的函数。
c.在一个示例中,一个TPM编解码块的最终预测块被设置为(f(x,y)*P1(x,y)+(2M–f(x,y))*P2(x,y)+偏移)>>M,其中P1、P2是位于(x,y)的样点的两个预测值,M是整数值,偏移可以被设置为(1<<(M-1)),f(x,y)是返回应用于第一预测值的权重的函数。
14.对于位于加权区域的块,运动补偿以8×8级别而不是4×4级别执行,以减少存储带宽。
a.可替代地,对于位于加权区域的块,运动补偿以8×4或4×8级别而不是4×4级别来执行,以降低存储带宽。
b.可替代地,如果允许基于8×4或4×8的运动补偿,则对8×4或4×8的选择可能取决于
i.块宽度和/或高度。
ii.划分模式(例如,45度或135度)。
运动信息的存储
15.在解码TPM编解码块之后,可以更新一个或多个HMVP表。
a.在一个示例中,可以根据一个分区的运动信息(不包括其他分区的运动信息)来更新一个或多个HMVP表。
b.在一个示例中,可以根据所存储的针对不包括非加权区域的加权区域或不包括加权区域的非加权区域的运动信息来更新一个或多个HMVP表。
c.在一个示例中,可以根据Merge候选列表中的一个Merge候选来更新一个或多个HMVP表,该Merge候选列表用于推导TPM编解码块的运动信息。
i.在一个示例中,一个Merge候选与解码Merge索引的Merge索引相关联(例如,merge_triangle_idx0或merge_triangle_idx1)。
ii.在一个示例中,一个Merge候选与等于k(例如,k=0)的Merge索引相关联。
16.一个分区的三角形运动信息的推导过程可以取决于来自另一个分区的解码运动信息,例如,根据另一个分区的预测方向。
d.在一个示例中,假设选择索引等于merge_triangle_idx0的一个解码候选的第一参考图片列表(表示为LX)(例如,根据merge_triangle_idx0的奇偶性和LX的可用性)。不管第二解码候选索引的奇偶性如何,选择与第二候选的第二参考图片列表(表示为LY)(Y=1-X)相关联的运动信息(如果可用的话)作为三角形分区的运动信息。在下面的讨论中,与参考图片列表LX或LY相关联的运动信息也可以被称为LX运动信息或LY运动信息。
i.可替代地,此外,如果具有merge_triangle_idx1的第二候选的LY(Y=1-X)运动信息不可用,则可以转而使用第二候选的LX运动信息。
ii.可替代地,此外,如果具有merge_triangle_idx1的第二候选的LY(Y=1-X)运动信息不可用,则可以使用第二候选的LX运动信息来推导LY的运动信息。并且推导出的LY运动信息可以用于TPM编解码。
1)在一个示例中,推导过程可以包括将参考LX中的参考图片的运动矢量缩放到LY中的参考图片。
e.在一个示例中,假设选择索引等于merge_triangle_idx1的一个解码候选的第一参考图片列表(表示为LX)(例如,根据merge_triangle_idx1的奇偶性和LX的可用性)。不管第二解码候选索引的奇偶性如何,选择LY(Y=1-X)运动信息(如果可用的话)作为三角形分区的运动信息。
i.可替换地,此外,如果具有merge_triangle_idx0的候选的LY(Y=1-X)运动信息不可用,则可以转而使用LX运动信息。
ii.可替换地,此外,如果具有merge_triangle_idx0的候选的LY(Y=1-X)运动信息不可用,则可以使用具有merge_triangle_idx0的候选的LX运动信息来推导LY的运动信息。并且推导出的LY运动信息可以用于TPM编解码。
1)在一个示例中,推导过程可以包括将参考LX中的参考图片的运动矢量缩放到LY中的参考图片。
17.对于多个三角形分区,不允许使用来自相同的参考图片列表的运动信息。
f.在一个示例中,一致性(conformance)比特流应该满足从不同的参考图片列表预测两个三角形分区。
g.可替代地,根据Merge索引的奇偶性推导运动信息的推导过程可以总是输出两个分区从两个不同的列表预测,例如,使用项目符号15中公开的方法来预测。
18.如何存储运动信息和/或如何推导要针对加权区域和/或非加权区域存储的运动信息可以取决于三角形分区的划分方向和/或解码Merge索引,和/或用于推导三角形分区的运动信息的Merge候选列表,和/或参考图片列表中的参考图片(例如,与当前图片相比,所有参考图片具有更小或没有更大的POC值)。
a.在一个示例中,可以存储与一个分区的所选择的解码Merge索引相关联的Merge候选的运动信息。
i.在一个示例中,所选择的解码Merge索引可以被设置为解码Merge候选索引之一,例如,merge_triangle_idx0或merge_triangle_idx1。
ii.在一个示例中,所选择的解码Merge索引被设置为变量k。
1)在一个示例中,k被设置为0。
2)在一个示例中,可以继承和存储第k个Merge候选的所有信息。
3)在一个示例中,可以继承第k个Merge候选的部分信息,并且可以在存储之前修改其余信息。
(a)在一个示例中,可以不继承第k个Merge候选的广义双向预测(Generalized-Biprediction,GBi)中使用的加权因子的指示。可替代地,此外,特定的GBi加权索引可以被分配(例如,0)给TPM存储的运动信息。
(b)在一个示例中,可以不继承第k个Merge候选的运动矢量精度的指示。
iii.可替代地,此外,所选择的解码Merge索引可以取决于划分方向。
iv.在一个示例中,如果索引等于所选择的解码Merge索引的Merge候选是双向预测候选,则可以存储双向预测运动信息。
v.在一个示例中,如果索引等于所选择的解码Merge索引的Merge候选是单向预测,则可以存储单向预测运动信息。
1)可替代地,可以存储双向预测运动信息,并且可以从Merge候选中推导所存储的运动信息。
vi.可替代地,可以存储关于两个分区的运动信息的函数。
1)例如,可以存储两个分区的运动矢量的平均值。
b.在一个示例中,假设MvInfo1和MvInfo2指示两个分区的运动信息,可以通过将一个预测方向从MvInfoA(A为1或2)中的LX修改为LY(Y=1-X)来存储虚拟双向预测运动信息。
i.在一个示例中,MvInfoA的运动矢量和参考索引保持不变。
ii.在一个示例中,此外,MvInfoA的参考索引保持不变,而MvInfoA的运动矢量被设置为相反的值。
iii.虚拟双向预测运动信息可以包括修改的MvInfoA和未修改的MvInfoB(其中B=3-A)。
iv.在一个示例中,这种修改可以仅在MvInfo1和MvInfo2都来自相同预测方向时才应用。
c.在一个示例中,假设MvInfo1和MvInfo2指示两个分区的运动信息,如何存储运动信息可以取决于低延迟检查标志,该标志指示所有参考图片是否具有与当前图片相比更小或没有更大的POC值。
i.在一个示例中,依次应用以下过程:
如果MvInfo1和MvInfo2来自不同的参考图片列表,则MvInfo0和MvInfo1可以被组合并存储为双向预测运动信息。
ii.如果MvInfo1和MvInfo2来自相同的LX(X=0或1)方向,则可以应用以下过程:
如果低延迟检查标志为真(例如,所有参考图片具有与当前图片相比更小或没有更大的POC值),则可以通过将预测方向列表从LX设置为LY(Y=1-X)来修改MvInfoA(例如,A=2),将修改的MvInfoA和未修改的MVInfoC(C=3-A)组合以形成虚拟双向预测运动信息并存储。
否则,存储MvInfoB(例如,B=2)。即存储单向预测运动信息。
iii.在一个示例中,MvInfo1与图13A中的PU1和图13B中的PU1相关联;MvInfo2与图13A中的PU2和图13B中的PU2相关联。
d.在一个示例中,上述方法可以应用于存储一个块内某些子块的运动信息。
i.在一个示例中,某些子块可以是加权区域中的那些子块。
ii.在一个示例中,某些子块可以是块中的包含对角线或反对角线的那些子块。
iii.在一个示例中,某些子块可以是在块的右下角的那些子块。
iv.在一个示例中,某些子块可以是在块的右列或底行的那些子块。
v.可替代地,上述方法可以应用于存储一个块内所有子块的运动信息。
19.对于TPM模式,提出了,块内的子区域的运动信息可以不同于在该子区域的重建的运动补偿过程中使用的运动信息。
a.在一个示例中,对于位于加权区域的M×N子区域(例如,利用三角形预测模式的当前编解码单元中的4×4),运动补偿可以作为双向预测来完成,但是可以仅存储双向预测的列表0或列表1中的一个运动信息集。
i.可替代地,对于位于加权区域的M×N子区域(例如,利用三角形预测模式的当前编解码单元中的4×4),运动补偿可以作为双向预测来完成,但是可以仅存储来自列表X的单向预测信息,并且所存储的信息不同于在运动补偿过程中使用的来自列表X的运动信息。
ii.可替代地,对于位于加权区域的M×N子区域(例如,利用三角形预测模式的当前编解码单元中的4×4),运动补偿可以作为双向预测来完成,但是可以存储与在运动补偿过程中使用的信息不同(例如,不同的MV和/或不同的参考图片)的双向预测信息。
b.在一个示例中,对于位于非加权区域的M×N子区域(例如,利用三角形预测模式的当前编解码单元中的4×4),运动补偿可以作为单向预测来完成,但是可以存储双向预测运动信息。
i.可替代地,对于位于非加权区域的M×N子区域(例如,利用三角形预测模式的当前编解码单元中的4×4),运动补偿可以作为单向预测来完成,但是可以存储单向预测运动信息,并且该单向预测运动信息可以不同于在运动补偿过程中使用的信息。
c.所存储的运动信息可以用于对其他块进行编解码(例如,作为临近块的Merge/AMVP模式下的空域运动候选)。
d.所存储的运动信息可以用于对不同图片中的未来块进行编解码(例如,用于推导时域运动矢量候选)。
e.所存储的运动信息可以用于环内(in-loop)处理,诸如去方块(de-blocking)或ALF(adaptive loop filtering,自适应环路滤波)。
f.在一个示例中,块内第一子区域的运动信息可以不同于在用于重建第一子区域的运动补偿过程中使用的运动信息,而块内第二子区域的运动信息可以与在用于重建第二子区域的运动补偿过程中使用的运动信息相同,并且第一子区域和第二子区域可以位于利用三角形预测模式的相同编解码单元中。
20.提出了存储整个块的相同的运动信息集,不管这个块是否位于加权区域。假设MvInfo1和MvInfo2分别指示两个分区的运动信息(例如,根据解码/推导出的两个Merge候选索引)。
a.在一个示例中,可以存储单向预测运动信息(例如,从两个分区之一继承或者从两个分区的运动信息推导的运动信息)。
i.在一个示例中,可以对于整个块存储MvInfo1。
1.在一个示例中,可以对于块内的所有子区域存储MvInfo1。ii.在一个示例中,可以对于整个块存储MvInfo2。
1.在一个示例中,可以对于块内的所有子区域存储MvInfo1。iii.在一个示例中,要存储哪个分区的运动信息可以取决于相对于当前图片的POC距离。
1.例如,如果当前图片和MvInfo1所参考的参考图片之间的POC距离的绝对值小于当前图片和MvInfo2所参考的参考图片之间的POC距离值,则可以存储MvInfo1。
iv.在一个示例中,要存储哪个分区的运动信息可以取决于参考图片的QP。
1.例如,MvInfo1所参考的参考图片的QP小于MvInfo2所参考的参考图片的值时,则可以存储MvInfo1。
v.在一个示例中,要存储哪个分区的运动信息可以取决于参考图片的参考索引。
1.例如,MvInfo1所参考的参考图片的QP小于MvInfo2所参考的参考图片的值时,则可以存储MvInfo1。
2.例如,如果MvInfo1所参考的参考图片的参考索引小于MvInfo2所参考的参考图片的参考索引值,则可以存储MvInfo1。
vi.在一个示例中,要存储哪个分区的运动信息可以取决于与一个分区相关联的Merge索引。
1.例如,如果推导MvInfo1的相关联Merge索引小于推导MvInfo2的相关联Merge索引,则可以存储MvInfo1。
2.例如,如果merge_triangle_idx0小于merge_triangle_idx1,则可以存储从merge_triangle_idx0推导的运动信息。
vii.在一个示例中,可以存储从MvInfo1和MvInfo2推导出的第三运动信息集(表示为MvInfo3)。
1.在一个示例中,可以将MvInfo3的MV作为MvInof1和MvInfo2的两个MV的平均值而推导出,或者可以对来自MvInof1和MvInfo2的一个MV和另一MV的缩放或映射的运动矢量进行平均,以生成MvInfo3的MV。
2.在一个示例中,MvInfo3的参考图片可以是MvInfo1和MvInfo2的两个参考图片之一。
viii.在一个示例中,MvInfoX(X为0或1)中的一个运动矢量可以被缩放到MvInfoY(其中Y为1-X)中的参考图片,然后它可以用于推导要存储的运动信息。
1.在一个示例中,缩放的MvInfo1和MvInfo2可以用于推导要存储的运动信息,诸如在项目符号vii中规定的运动信息。
ix.上述方法可以仅适用于位于加权区域的子区域。
1.可替代地,上述方法可以仅适用于位于未加权区域的子区域。
2.可替代地,上述方法可以仅适用于位于加权区域的某些子区域。
a.例如,它们可以应用于位于加权区域的右上和/或左下的子区域。
b.例如,它们可以应用于位于加权区域的左上和/或右下的子区域。
c.要应用于哪个子区域可以取决于划分方向。
b.在一个示例中,双向预测运动矢量从MvInfo1和MvInfo2推导并存储。
i.在MvInfo1和MvInfo2具有来自不同方向(L0或L1)的运动矢量的情况下,MvInfo1和MvInfo2被简单地组合以形成双向预测运动矢量。
ii.在MvInfo1和MvInfo2都来自相同的LX(X=0或1)方向的情况下,
1.对于LX的所存储的MV可以从MvInfo1和MvInfo2的一个运动矢量或者从它们的两个运动矢量推导(例如,通过求平均值)。
2.如果MvInfo1或MvInfo2的参考图片被包括在LY中(Y=1-X),则MvInfo1和MvInfo2被简单地组合以形成双向预测运动矢量,并且预测方向之一被设置为LY。
3.一个运动矢量可以被缩放到LY(Y=1-X)中的参考图片,并且缩放的MV以及另一MV被组合以形成双向预测运动矢量。在一个示例中,缩放的MV所参考的LY中的目标参考图片可以是预定义的(例如,参考图片索引等于0),或者可以被信令通知。
4.一个运动矢量可以被映射到LY(Y=1-X)中的参考图片,并且映射的MV以及另一MV被组合以形成双向预测运动矢量。在一个示例中,映射的MV所参考的LY中的目标参考图片可以是预定义的(例如,参考图片索引等于0),或者可以被信令通知。在一个示例中,映射过程可以在没有缩放的情况下完成。例如,映射的MV可以等于或相反于原始MV。
i.上述方法仅适用于位于加权区域的子区域。
1)可替代地,上述方法可以仅适用于位于未加权区域的子区域
2)可替代地,上述方法可以仅适用于位于加权区域的某些子区域。
(a)例如,它们可以应用于位于加权区域的右上和/或左下的子区域。
(b)例如,它们可以应用于位于加权区域的左上和/或右下的子区域。
(c)要应用于哪个子区域可以取决于划分方向。
c.是存储单向还是双向预测运动信息取决于两个分区的解码运动信息。
i.在一个示例中,如果MvInfo1和MvInfo2都来自相同的LX参考列表,则可以存储单向预测运动信息。
ii在一个示例中,如果MvInfo1和MvInfo2来自不同的参考列表(一个来自L0,而另一个来自L1),则可以存储双向预测运动信息。
iii.在一个示例中,如果MvInfo1和MvInfo2都来自相同的LX参考列表,但是MvInfo1或MvInfo2所参考的参考图片中的至少一个也在另一个参考列表LY中(Y=1-X),则可以存储双向预测运动信息。
d.可替代地,运动信息的存储仍然基于一个子块是否位于加权区域。对于位于加权区域的那些子块,存储的运动信息遵循以下规则来推导:
i.在一个示例中,如果MvInfo1和MvInfo2来自相同的LX(X=0或1)方向,
1.如果MvInfo1或MvInfo2的参考图片被包括在LY中(Y=1-X),则MvInfo1和MvInfo2被简单地组合以形成双向预测运动矢量,并且预测方向之一被设置为LY。
2.一个运动矢量可以被缩放到LY(Y=1-X)中的参考图片,并且缩放的MV以及另一MV被组合以形成双向预测运动矢量。在一个示例中,缩放的MV所参考的LY中的目标参考图片可以是预定义的(例如,参考图片索引等于0)或者可以被信令通知。
3.一个运动矢量可以被映射到LY(Y=1-X)中的参考图片,并且映射的MV以及另一MV被组合以形成双向预测运动矢量。在一个示例中,映射的MV所参考的LY中的目标参考图片可以是预定义的(例如,参考图片索引等于0)或者可以被信令通知。在一个示例中,映射过程可以在没有缩放的情况下完成。例如,映射的MV可以与原始MV相等或相反。
ii.在一个示例中,如果MvInfo1或MvInfo2来自相同的LX(X=0或1)方向,则存储MvInfo1或MvInfo2。也就是说,存储单向预测运动矢量。
iii.在一个示例中,如果MvInfo1和MvInfo2来自相同的LX(X=0或1)方向,则一个运动矢量可以被缩放到另一个运动矢量的参考图片,并且可以存储缩放的运动矢量和另一个运动矢量的平均值或加权平均值。
iv.在一个示例中,如果MvInfo1和MvInfo2来自相同的LX(X=0或1)方向,并且可以存储两个运动矢量的平均值或加权平均值,则参考图片可以是MvInof1和MvInfo2的两个参考图片之一。
v.在一个示例中,可以从每个子块中的运动信息推导对于整个块的所存储的运动信息。例如,对所有或一些子块中的MV进行加权求和,以推导对于整个块的所存储的MV。
vi.对于以上示例,不同的子区域可以存储不同的运动信息。
vii.对于以上示例,加权区域中的子区域可以存储单向预测或双向预测运动信息。
e.可替代地,运动信息的存储仍然基于子块的位置。然而,对于每个子块,只能存储单向预测运动信息。
i.在一个示例中,加权区域中的子区域的运动信息可以从MvInfo1和/或MvInfo2继承或推导,其可以被存储。
f.在一个示例中,所存储的运动信息仅在一些模块中使用。
i.在一个示例中,所存储的运动信息用于时域运动预测。
ii.可替代地,此外,所存储的运动信息用于空域运动预测。
iii.可替代地,此外,所存储的运动信息用于滤波(例如,去方块)过程。
g.在一个示例中,所存储的运动信息可以用于块的运动补偿过程。
h.在一个示例中,可以根据所存储的运动信息更新一个或多个HMVP表。
21.提出了运动信息的存储基于M×N块单元(其中,M和N不能同时等于4)。每个M×N块共享相同的运动信息。
a.在一个示例中,M和N被设置为8。
b.在一个示例中,对于M×N块,如果它的一部分属于加权区域,它的一部分属于非加权区域,则这样的块遵循加权区域的规则以进行运动矢量存储。
c.可替代地,对于M×N块,如果它的第一部分属于加权区域,但是它的第二部分属于非加权区域,则这样的块可以遵循非加权区域的规则来存储运动信息。
22.对要从同一个参考图片预测的两个分区是启用还是禁用TPM可以是在诸如两个分区的运动矢量应该足够不同的条件下进行的。
a.在一个示例中,两个分区的参考样点不应该重叠。
b.在一个示例中,abs(MV0[0]–MV1[0])应该小于TH,其中MV0和MV1是两个分区的运动矢量,MVX[0]和MVX[1]分别是MVX的水平分量和垂直分量。函数abs(x)返回x的绝对值。
c.在一个示例中,abs(MV0[1]–MV1[1])应该小于TH。
d.在一个示例中,abs(MV0[0]–MV1[0])+abs(MV0[1]–MV1[1])应该小于TH。
e.在一个示例中,Max(abs(MV0[0]–MV1[0]),abs(MV0[1]–MV1[1])应该小于TH,其中函数Max(x,y)返回x和y中较大的一个
f.一致性比特流应该满足当对块启用TPM时,一个或多个上述项目符号为真。
23.在所公开的方法中,所存储的运动信息可以用于预测在当前图片中或其他要解码的图片中的随后要解码的块的运动信息。
a.所存储的运动信息可以包括:
vii.运动矢量
vii.参考索引
ix.单向预测或双向预测的指示
x.帧间预测方向的指示
xi.广义双向预测(GBi)的指示
xii.运动矢量分辨率
xiii.仿射预测的指示
5.所公开技术的示例性实施例
5.1实施例#1
三角形Merge模式的运动矢量存储过程
变量numSbX和numSbY规定当前编解码块中在水平和垂直方向上的4×4块的数量被设置为等于numSbX=cbWidth>>2和numSbY=cbHeight>>2。
其中cbWidth和cbHeight规定亮度样点中当前编解码块的宽度和高度,
变量minSb被设置为min(numSbX,numSbY)-1。
变量cbRatio的推导如下:
cbRatio=(cbWidth>cbHeight)?(cbWidth/cbHeight):(cbHeight/cbWidth)
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用于以下情况:
–变量xidX和yIdx的推导如下:
xIdx=(cbWidth>cbHeight)?(xSbIdx/cbRatio):xSbIdx
yIdx=(cbWidth>cbHeight)?ySbIdx:(ySbIdx/cbRatio)
–变量sType的推导如下:
–如果triangleDir等于0时,则适用以下情况:
sType=(xIdx==yIdx)?2((xIdx>yIdx)?0:1)
–否则(triangleDir等于1),则适用以下情况:
sType=(xIdx+yIdx==minSb)?2:((xIdx+yIdx<minSb)?0:1)
其中triangleDir规定分割方向。
如图30A-图30C所示,sType等于0对应于P1区域;sType等于1对应于P2区域;sType等于2对应于加权区域。
P1区域的运动信息表示为(Mv1,refIdx1);P2区域的运动信息被表示为(Mv2,refIdx2)。
–取决于sType的值,进行以下分配:
–如果sType等于0,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,并且当前块位于具有向后参考图片的条带中(slice.getCheckLDC()为假),则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.2实施例#2
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.3实施例#3
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
–如果Mv1和Mv2来自不同的参考列表,则
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.4实施例#4
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,并且当前块位于具有向后参考图片的条带中(slice.getCheckLDC()为假),则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.5实施例#5
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
–如果Mv1和Mv2来自不同的参考列表,则
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.6实施例#6
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
–如果Mv1和Mv2来自不同的参考列表,则
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
–否则,4×4子块的运动信息为((Mv1+Mv2)/2,refIdx1)
5.7实施例7
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),4×4子块的运动信息为与merge_triangle_idx0相对应的原始Merge候选的运动信息。
5.8实施例#8
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,ySbIdx=0…numSbY-1,适用以下情况:
–取决于sType的值,进行以下分配:
–如果sType等于0或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,并且triangleDir等于0且ySbIdx<numSbY-1,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果sType等于1或sType等于2,并且如果Mv1和Mv2都来自相同的参考列表,并且triangleDir等于0且ySbIdx=numSbY–1或者triangleDir等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则(sType等于2),适用以下情况:
–如果Mv1和Mv2来自不同的参考列表
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.9实施例#9
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2都来自相同的参考列表,并且当前块位于具有向后参考图片的条带中(slice.getCheckLDC()为假),则4×4子块的运动信息为(Mv2,refIdx2)。
–否则,适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.10实施例#10
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.11实施例#11
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2都来自相同的参考列表,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则,适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.12实施例#12
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2都来自相同的参考列表,并且当前块位于具有向后参考图片的条带中(slice.getCheckLDC()为假),则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.13实施例#13
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2都来自相同的参考列表,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,适用以下情况:
–如果Mv1和Mv2来自不同的参考列表,则
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
5.14实施例#14
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2来自不同的参考列表,则
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
–否则,4×4子块的运动信息为((Mv1+Mv2)/2,refIdx1)。
5.15实施例#15
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,4×4子块的运动信息为与merge_triangle_idx0相对应的原始Merge候选的运动信息。
5.16实施例#16
对于子块索引(xSbIdx,ySbIdx)处的每个4×4子块,其中xSbIdx=0…numSbx-1,并且ySbIdx=0…numSbY-1,适用以下情况:
–如果Mv1和Mv2都来自相同的参考列表,并且triangleDir等于0且ySbIdx<numSbY-1,则4×4子块的运动信息为(Mv1,refIdx1)。
–否则,如果Mv1和Mv2都来自相同的参考列表,并且triangleDir等于0且ySbIdx=numSbY-1或triangleDir等于1,则4×4子块的运动信息为(Mv2,refIdx2)。
–否则,适用以下情况:
refIdxL0=(predListFlagA==0)?refIdx1:refIdx2
refIdxL1=(predListFlagA==0)?refIdx2:refIdx1
mvL0=(predListFlagA==0)?Mv1:Mv2
mvL1=(predListFlagA==0)?Mv2:Mv1
predListFlagA是P1区域的预测列表标志。
图31是用于视频处理的方法3100的流程图。方法3100包括,在操作3102,基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中,当前块使用几何分割模式来编解码。
方法3100包括,在操作3104,基于该决定和运动候选列表执行转换。
图32是用于视频处理的方法3200的流程图。方法3200包括,在操作3202,将从一个规则运动候选推导的来自列表0和列表1的一个或多个平均单向预测运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中,使用几何分割模式对当前块进行编解码。
方法3200包括,在操作3204,基于运动候选列表执行转换。
图33是用于视频处理的方法3300的流程图。方法3300包括,在操作3302,将从具有单向预测的规则运动候选推导的一个或多个具有单向预测的平均运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码。
方法3300包括,在操作3304,基于该运动候选列表执行转换。
图34是用于视频处理的方法3400的流程图。方法3400包括,在操作3402,将从可用运动候选推导的一个或多个虚拟运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码。
方法3400包括,在操作3404,基于运动候选列表执行转换。
图35是用于视频处理的方法3500的流程图。方法3500包括,在操作3502,基于优先级规则,做出关于将运动候选插入到用于使用几何分割模式来编解码的视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中优先级规则基于从其推导出运动候选中的运动候选的位置或者与运动候选相关联的一个或多个参考图片列表。
方法3500包括,在操作3504,基于该决定和运动候选列表执行转换。
图36是用于视频处理的方法3600的流程图。方法3600包括,在操作3602,基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码,其中插入顺序在序列到序列、图片到图片、条带到条带、片组到片组之间或者从当前块到视频的后续块是可变的。
方法3600包括,在操作3604,基于该决定和运动候选列表执行转换。
图37是用于视频处理的方法3700的流程图。方法3700包括,在操作3702,将使用几何分割模式编解码的视频的当前块分割成多个分区。
方法3700包括,在操作3704,构建多个运动候选列表,每个运动候选列表对应于多个分区中的每个分区。
方法3700包括,在操作3706,基于多个运动候选列表,执行当前块和视频的比特流表示之间的转换。
图38是用于视频处理的方法3800的流程图。方法3800包括,在操作3802,将使用几何分割模式编解码的视频的当前块分割成多个分区。
方法3800包括,在操作3804,构建多个运动候选列表,其中多个分区中的每个分区被配置为选择多个运动候选列表中的相同运动候选列表。
方法3800包括,在操作3806,基于所选择的相同运动候选列表,执行当前块和视频的比特流表示之间的转换。
图39是用于视频处理的方法3900的流程图。方法3900包括,在操作3902,执行视频单元中的视频的当前块和视频的比特流表示之间的转换,其中比特流表示包括指示在用于在视频区域中启用的几何分割模式的运动候选列表中允许的运动候选的最大数量的字段。
图40是用于视频处理的方法4000的流程图。方法4000包括,在操作4002,对于使用几何分割模式分割成多个分区的视频的当前块,从多个加权因子组中选择加权因子组,其中至少基于当前块的宽度或高度来选择加权因子组。
方法4000包括,在操作4004,作为当前块和视频的比特流表示之间的转换的一部分,将加权因子组应用于沿着多个分区中的至少两个分区的公共边界的样点。
图41是用于视频处理的方法4100的流程图。方法4100包括,在操作4102,对于使用几何分割模式分割成多个分区的视频的当前块内的样点,基于多个分区中的至少两个分区的公共边界的角度来确定至少一个加权因子。
方法4100包括,在操作4104,基于至少一个加权因子,执行当前块和视频的比特流表示之间的转换。
图42是用于视频处理的方法4200的流程图。方法4200包括,在操作4202,对于使用几何分割模式分割成多个分区的视频的当前块,对沿着多个分区中的至少两个分区的公共边界的、样点尺寸不同于4×4的样点尺寸的样点执行运动补偿过程。
方法4200包括,在操作4204,基于运动补偿过程,执行当前块和视频的比特流表示之间的转换。
图43是用于视频处理的方法4300的流程图。方法4300包括,在操作4302,使用几何分割模式将视频的当前块分割成多个分区。
方法4300包括,在操作4304,存储从与多个分区相关联的运动信息推导的在当前块内的K×L区域的单个运动信息集。
方法4300包括,在操作4306,使用与多个分区中的至少一个分区相关联的至少一个运动信息集,执行当前块和视频的比特流表示之间的转换。
图44是用于视频处理的方法4400的流程图。方法4400包括,在操作4402,将视频的当前块分割成多个分区。
方法4400包括,在操作4404,执行使用几何分割模式来编解码的当前块和视频的比特流表示之间的转换,其中为当前块的每个M×N块单元存储单个运动信息集,其中该单个运动信息集从与多个分区中的每个分区相关联的运动信息推导,其中M或N不等于4,并且其中该M×N块单元中的每个样点共享相同的运动信息。
图45是用于视频处理的方法4500的流程图。方法4500包括,在操作4502,将视频的当前块分割成多个分区。
方法4500包括,在操作4504,作为当前块和视频的比特流表示之间的转换的一部分,基于不同于要存储的与第一子区域相关联的第二运动信息的第一运动信息,对当前块的第一子区域执行运动补偿过程。
图46是用于视频处理的方法4600的流程图。方法4600包括,在操作4602,使用几何分割模式将视频的当前块分割成多个分区。
方法4600包括,在操作4604,基于与多个分区相关联的划分方向或解码Merge索引或Merge候选列表,存储第一样点集和第二样点集的运动信息,其中第一样点集位于多个分区中的至少两个分区的公共边界上,并且第二样点集位于多个分区中的至少两个分区之一的内部。
方法4600包括,在操作4606,基于存储的运动信息,执行当前块和视频的比特流表示之间的转换或者视频的后续块和比特流表示之间的转换。
图47是用于视频处理的方法4700的流程图。方法4700包括,在操作4702,将视频的当前块分割成多个分区。
方法4700包括,在操作4704,存储基于多个分区中的至少两个分区的运动信息的虚拟双向预测运动信息。
方法4700包括,在操作4706,基于虚拟双向预测运动信息,执行当前块和视频的比特流表示之间的转换。
图48是用于视频处理的方法4800的流程图。方法4800包括,在操作4802,将视频的当前块分割成多个分区。
方法4800包括,在操作4804,基于低延迟检查标志,存储多个分区中的第一分区的运动信息(MvInfo1)和多个分区中的第二分区的运动信息(MvInfo2),其中低延迟检查标志指示图片顺序计数(POC)值不大于包括当前块的当前图片的POC值的所有参考图片。
方法4800包括,在操作4806,基于存储的运动信息,执行当前块和视频的比特流表示之间的转换。
图49是用于视频处理的方法4900的流程图。方法4900包括,在操作4902,使用几何分割模式将视频的当前块分割成多个分区。
方法4900包括,在操作4904,使用与多个分区中的至少两个分区相关联的至少两个运动信息集来执行当前块和视频的比特流表示之间的转换,其中,单个运动信息集是针对位于该至少两个分区的公共边界上的K×L区域而存储的,其中,该单个运动信息集包括从与该至少两个分区中的每个分区相关联的运动信息推导的单向预测运动信息。
图50是用于视频处理的方法5000的流程图。方法5000包括,在操作5002,维护一个或多个基于历史的运动矢量预测(HMVP)表。
方法5000包括,在操作5004,执行视频的当前块和视频的比特流表示之间的转换,其中,当前块使用几何分割模式被分割成多个分区。
方法5000包括,在操作5006,基于条件并在执行该转换之后,选择性更新一个或多个HMVP表。
图51是用于视频处理的方法5100的流程图。方法5100包括,在操作5102,对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,该转换是基于多个分区中的第一分区的第一运动信息的,并且第一运动信息是基于多个分区中的第二分区的第二运动信息而推导出的。
图52是用于视频处理的方法5200的流程图。方法5200包括,在操作5202,对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,多个分区中的多于一个分区的运动信息不是从相同参考图片列表推导出的。
图53是用于视频处理的方法5300的流程图。方法5300包括,在操作5302,基于使用几何分割模式被分割成多个分区的当前块的条件,选择性启用从相同参考图片对第一分区和第二分区的运动信息的推导。
方法5300包括,在操作5304,基于该选择性启用来执行当前块和视频的比特流表示之间的转换。
在一些实施例中,可以实施以下技术方案:
A1.一种用于视频处理的方法,包括:基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码;以及基于该决定和该运动候选列表来执行转换。
A2.根据方案A1的方法,其中,优先级规则基于至少一个运动候选的预测方向。
A3.根据方案A2的方法,其中,插入的顺序包括在插入具有来自列表Y的单向预测的任何规则运动候选之前,插入具有来自列表X的单向预测的规则运动候选。
A4.根据方案A2的方法,其中,插入的顺序包括在插入具有单向预测的任何运动候选之前插入具有双向预测的运动候选。
A5.根据方案A2的方法,其中,插入的顺序被定义为:从具有双向预测的规则运动候选推导的列表X的运动候选,接着是从具有双向预测的规则运动候选推导的列表X的运动候选,接着是具有单向预测的规则运动候选,其中X=0或X=1。
A6.根据方案A2的方法,其中,插入的顺序包括在插入从具有双向预测的第二规则运动候选推导的运动候选之前,插入从具有双向预测的第一规则运动候选推导的运动候选,并且其中,当前块的插入的顺序与使用非几何分割模式来编解码的视频块的插入的顺序相同。
A7.根据方案A2的方法,其中,插入的顺序包括以交织方式插入从具有双向预测的第一规则运动候选推导的运动候选和从具有双向预测的第二规则运动候选推导的运动候选。
A8.根据方案A7的方法,其中,交织方式包括插入从CA推导的截断列表0预测候选、从CB推导的截断列表1预测候选、从CA推导的截断列表1预测候选和从CB推导的截断列表0预测候选,其中CA和CB是两个规则运动候选。
A9.根据方案A7的方法,其中,交织方式包括插入从CA推导的截断列表1预测候选、从CB推导的截断列表0预测候选、从CA推导的截断列表0预测候选和从CB推导的截断列表1预测候选,其中CA和CB是两个规则运动候选。
A10.根据方案A1至A9中任一项的方法,其中,规则运动候选是针对使用非几何分割模式来编解码的视频块推导的运动候选。
A11.根据方案A1的方法,其中,优先级规则基于与规则运动候选相关联的编解码模式信息。
A12.根据方案A11的方法,其中,编解码模式信息包括使用Merge模式或高级运动矢量预测(AMVP)模式进行的编解码。
A13.根据方案A12的方法,其中,插入的顺序包括在插入从用Merge模式编解码的块推导的运动候选之前,插入从用AMVP模式编解码的块推导的运动候选。
A14.根据方案A12的方法,其中,插入的顺序包括在插入从用AMVP模式编解码的块推导的运动候选之前,插入从用Merge模式编解码的块推导的运动候选。
A15.根据方案A11的方法,其中,编解码模式信息包括参考索引或图片顺序计数(POC)差。
A16.根据方案A15的方法,其中,插入的顺序包括在插入与大于第一参考索引的第二参考索引相关联的运动候选之前,插入与第一参考索引相关联的运动候选。
A17.根据方案A15的方法,其中插入的顺序包括在插入与大于第一POC差的第二POC差的参考索引相关联的运动候选之前,插入与第一POC差相关联的运动候选。
A18.根据方案A11的方法,其中,编解码模式信息包括与包括当前块的图片、条带或片组相关联的参考图片的量化参数(QP)或时域层索引。
A19.根据方案A18的方法,其中,插入的顺序包括在插入与大于第一QP的第二QP相关联的运动候选之前,插入与第一QP相关联的运动候选。
A20.根据方案A1的方法,其中,插入的顺序包括在任何截断列表0预测候选之前,插入所有截断列表1预测候选。
A21.根据方案A1的方法,其中,插入的顺序包括基于可用的几何运动候选,插入一个或多个截断列表0预测候选和一个或多个截断列表1预测候选。
A22.根据方案A1的方法,其中,插入的顺序包括在插入具有双向预测的第二运动候选之前,基于可用的几何运动候选插入具有双向预测的第一运动候选。
A23.一种用于视频处理的方法,包括:将从一个规则运动候选推导的、来自列表0和列表1的一个或多个平均单向预测运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中,使用几何分割模式对当前块进行编解码;以及基于该运动候选列表执行转换。
A24.根据方案A23的方法,还包括:从一个或多个平均单向预测运动候选中选择单个平均单向预测运动候选,以插入到运动候选列表中。
A25.根据方案A24的方法,其中,该选择基于运动候选列表中的可用几何运动候选。
A26.根据方案A24的方法,其中,该选择基于列表0和列表1的参考图片索引。
A27.根据方案A24的方法,其中,该选择基于列表0和列表1的参考图片和当前图片之间的图片顺序计数(POC)距离。
A28.根据方案A23的方法,其中,在插入来自列表1的任何平均单向预测运动候选之前,插入来自列表0的所有平均单向预测运动候选。
A29.根据方案A23的方法,其中,在插入来自列表0的任何平均单向预测运动候选之前,插入来自列表1的所有平均单向预测运动候选。
A30.一种用于视频处理的方法,包括:将从具有单向预测的规则运动候选推导的、具有单向预测的一个或多个平均运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,具有单向预测的一个或多个平均运动候选从具有单向预测的规则运动候选推导,其中当前块使用几何分割模式来编解码;以及基于该运动候选列表执行转换。
A31.根据方案A30的方法,其中,从具有来自列表LX的单向预测的规则运动候选推导具有来自列表LX的单向预测的平均运动候选,其中X=0或X=1。
A32.根据方案A30的方法,其中,从缩放的规则运动候选中推导具有来自列表LY的单向预测的平均运动候选,其中来自列表LX的规则运动候选被缩放到列表LY以生成缩放的规则运动候选,其中X=0或X=1,并且其中Y=1-X。
A33.一种用于视频处理的方法,包括:将从可用运动候选推导的一个或多个虚拟运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中,其中当前块使用几何分割模式来编解码;以及基于运动候选列表执行转换。
A34.根据方案A33的方法,其中,通过在运动候选列表中首先生成运动候选的截断列表来推导一个或多个虚拟运动候选。
A35.根据方案A33的方法,其中,仅基于具有单向预测的运动候选来推导一个或多个虚拟运动候选。
A36.根据方案A33的方法,其中,仅基于具有单向预测的运动候选和从列表1预测的运动候选的截断列表来推导一个或多个虚拟运动候选。
A37.根据方案A33的方法,其中,基于具有预定参考图片索引或具有特定范围内的图片顺序计数(POC)距离的运动候选来推导一个或多个虚拟运动候选。
A38.根据方案A33的方法,其中,一个或多个虚拟运动候选是在不应用修剪操作的情况下推导得到的。
A39.根据方案A1至A38中任一项的方法,其中,基于划分模式将当前块划分成多个分区。
A40.根据方案A1至A39中任一项的方法,其中,多个分区中的至少一个分区是非正方形和非矩形的。
A41.根据方案A1至A39中任一项的方法,其中,几何分割模式包括三角形分割模式。
A42.根据方案A1至A41中任一项的方法,其中,该转换从比特流表示生成当前块。
A43.根据方案A1至A41中任一项的方法,其中,该转换从当前块生成比特流表示。
A44.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案A1至A43中任一项的方法。
A45.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案A1至A43中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
B1.一种视频处理的方法,包括:基于优先级规则,做出关于将运动候选插入到用于使用几何分割模式来编解码的视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中优先级规则基于从其推导出运动候选中的运动候选的位置或者与运动候选相关联的一个或多个参考图片列表;以及基于该决定和该运动候选列表来执行转换。
B2.根据方案B1的方法,其中在确定从块A推导第一运动候选CA、从块B推导第二运动候选CB、并且在块A之后检查块B时,插入的顺序包括在将从CA推导的运动候选插入到运动候选列表中之后,插入从CB推导的运动候选。
B3.根据方案B2的方法,还包括:在规则运动候选列表的构建过程中,在块A之后检查块B。
B4.根据方案B2的方法,插入的顺序还包括在插入从CA推导的具有来自列表X的预测的运动候选之后,插入从CB推导的具有来自列表X的预测的运动候选,其中X=0或X=1。
B5.根据方案B2的方法,其中,插入的顺序还包括在插入从CA推导的具有来自列表Y的预测的运动候选之后,插入从CB推导的具有来自列表Y的预测的运动候选,其中X=0或X=1,并且其中Y=(1-X)。
B6.根据方案B2的方法,其中,插入的顺序还包括在插入从CA推导的具有来自列表Y的预测的运动候选之后,插入从CB推导的具有来自列表X的预测的运动候选,其中X=0或X=1,并且其中Y=(1-X)。
B7.根据方案B1至B6中任一项的方法,其中,基于划分模式将当前块分割成多个分区。
B8.根据方案B1至B6中任一项的方法,其中,几何分割模式包括三角形分割模式。
B9.根据方案B1至B6中任一项的方法,其中,当前块被分割成多个分区,其中至少一个分区是非正方形且非矩形的。
B10.根据方案B1至B9中任一项的方法,其中,该转换从比特流表示生成当前块。
B11.根据方案B1至B9中任一项的方法,其中,该转换从当前块生成比特流表示。
B12.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案B1至B11中任一项的方法。
B13.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案B1至B11中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
C1.一种视频处理的方法,包括:基于优先级规则,做出关于将运动候选插入到用于视频的当前块和视频的比特流表示之间的转换的运动候选列表中的顺序的决定,其中当前块使用几何分割模式来编解码,其中插入的顺序或在序列到序列、图片到图片、条带到条带、片组到片组之间或者从当前块到视频的后续块是可变的;以及基于该决定和该运动候选列表来执行转换。
C2.根据方案C1的方法,其中,插入的顺序基于当前块或者基于包括当前块的序列、图片、条带或片组。
C3.根据方案C2的方法,其中,优先级规则基于当前块的尺寸、形状或划分模式中的至少一个。
C4.根据方案C1至C3中任一项的方法,其中,插入的顺序在比特流表示中以序列参数集(SPS)、视频参数集(VPS)、图片参数集(PPS)、条带头、片组头、片、编解码树单元(CTU)或编解码单元(CU)从编码器信令通知给解码器。
C5.一种视频处理的方法,包括:将使用几何分割模式编解码的视频的当前块分割成多个分区;构建多个运动候选列表,每个运动候选列表对应于多个分区中的每个分区;以及基于多个运动候选列表,执行当前块和视频的比特流表示之间的转换。
C6.根据方案C5的方法,其中,多个分区中的第一分区的多个运动候选列表中的第一运动候选列表仅包括从列表X预测的运动候选,其中多个分区中的第二分区的多个运动候选列表中的第二运动候选列表仅包括从列表Y预测的运动候选,其中X=0或X=1,并且其中Y=(1-X)。
C7.根据方案C5的方法,其中,插入到多个运动候选列表中的一个或多个运动候选基于与不同空域或时域块相关联的运动信息。
C8.根据方案C7的方法,其中,用于推导多个分区中的第一分区的一个或多个运动候选的不同空域或时域块的位置基于当前块中多个分区中的第一分区或第二分区的位置。
C9.根据方案C7的方法,其中,用于推导多个分区中的第一分区或第二分区的一个或多个运动候选的不同空域或时域块的位置基于当前块的划分模式。
C10.根据方案C9的方法,其中,划分模式包括从右上角到左下角或从左上角到右下角的划分,分别由45度划分模式或135度划分模式表示。
C11.根据方案C10的方法,其中,划分模式包括135度划分模式,并且其中该方法还包括:检查更多上边的块是否有包括当前块右上角的分区。
C12.根据方案C10的方法,其中,划分模式包括135度划分模式,并且其中该方法还包括:检查更多左边的块是否有包括当前块左下角的分区。
C13.根据方案C5的方法,其中,与多个分区相对应的多个运动候选列表中的每个运动候选列表的索引被信令通知。
C14.根据方案C5的方法,其中,包括多个运动候选列表中的每个运动候选列表的索引的比特流表示被解析以用于该转换。
C15.一种视频处理的方法,包括:将使用几何分割模式编解码的视频的当前块分割成多个分区;构建多个运动候选列表,其中多个分区中的每个分区被配置为选择多个运动候选列表中的相同运动候选列表;以及基于所选择的相同运动候选列表,执行当前块和视频的比特流表示之间的转换。
C16.根据方案C15的方法,其中,比特流表示包括多个运动候选列表中的第一运动候选列表的索引。
C17.根据方案C16的方法,其中,比特流表示还包括来自第一运动候选列表的运动候选的索引,并且其中运动候选的索引在第一运动候选列表的索引之后被信令通知。
C18.根据方案C16的方法,其中,比特流表示还包括在第一运动候选列表的索引之后的来自第一运动候选列表的运动候选的索引,并且其中比特流表示被解析以用于该转换。
C19.根据方案C15的方法,其中,第一运动候选列表的索引与比特流表示中来自第一运动候选列表的运动候选的索引联合编解码。
C20.根据方案C15的方法,其中,包括与来自第一运动候选列表的运动候选的索引联合编解码的第一运动候选列表的索引的比特流表示被解析以用于该转换。
C21.根据方案C1至C20中任一项的方法,其中,至少基于划分模式将当前块划分成多个分区。
C22.根据方案C1至C21中任一项的方法,其中,几何分割模式包括三角形分割模式。
C23.根据方案C1至C21中任一项的方法,其中,当前块被划分成多个分区,其中至少一个分区是非正方形且非矩形的。
C24.根据方案C1至C23中任一项的方法,其中,该转换从比特流表示生成当前块。
C25.根据方案C1至C23中任一项的方法,其中,该转换从当前块生成比特流表示。
C26.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案C1至C25中任一项的方法。
C27.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案C1至C25中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
D1.一种视频处理的方法,包括:执行视频单元中的视频的当前块和视频的比特流表示之间的转换,其中比特流表示包括指示在视频区域中启用的几何分割模式的运动候选列表中允许的运动候选的最大数量的字段。
D2.根据方案D1的方法,其中,该字段包括指示比特流表示中允许的运动候选的最大数量的显式信令。
D3.根据方案D1的方法,其中,该字段隐式地指示允许的运动候选的最大数量等于使用非几何分割模式来编解码的另一个块的运动候选列表中的、允许的运动候选的最大数量。
D4.根据方案D1至D3中任一项的方法,其中,当前块使用Merge模式或高级运动矢量预测(AMVP)模式来进一步编解码。
D5.根据方案D1至D3中任一项的方法,其中,视频单元包括序列、视频、图片、条带、片组、最大编解码单元(LCU)行或最大编解码单元(LCU)组。
D6.根据方案D1至D3中任一项的方法,其中,在序列参数集(SPS)、视频参数集(VPS)、图片参数集(PPS)、图片头、条带头、片组头、最大编解码单元(LCU)行或最大编解码单元(LCU)组中信令通知字段中的、允许的运动候选的最大数量的指示。
D7.根据方案D1至D6中任一项的方法,其中,用一元编解码或截断一元编解码对字段中的、允许的运动候选的最大数量的指示进行二值化。
D8.根据方案D2的方法,其中,显式地信令通知字段中的、允许的运动候选的最大数量的指示包括信令通知M和允许的运动候选的最大数量之间的差,其中M是整数。
D9.根据方案D8的方法,其中,对于使用几何分割模式进行编解码的块的允许的运动候选的最大数量被设置为M减去解析的指示符。
D10.根据方案D8或D9的方法,其中,M=5或M=6。
D11.根据方案D1至D8中任一项的方法,其中,包括字段中的、允许的运动候选的最大数量的指示的比特流表示被解析以用于该转换。
D12.根据方案D1的方法,其中,比特流表示包括一个比特标志,其指示对于使用几何分割模式来编解码的视频块的允许的运动候选的最大数量与允许的规则运动候选或子块运动候选的最大数量相同。
D13.根据方案D12的方法,其中,包括一个比特标志的比特流表示被解析以用于该转换。
D14.根据方案D1至D13中任一项的方法,其中,根据划分模式将当前块划分成多个分区。
D15.根据方案D1至D14中任一项的方法,其中,几何分割模式包括三角形分割模式。
D16.根据方案D1至D14中任一项的方法,其中,当前块被划分成多个分区,多个分区中的至少一个分区是非正方形和非矩形的。
D17.根据方案D1至D16中任一项的方法,其中,该转换从比特流表示生成当前块。
D18.根据方案D1至D16中任一项的方法,其中,该转换从当前块生成比特流表示。
D19.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案D1至D18中任一项的方法。
D20.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案D1至D18中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
E1.一种视频处理的方法,包括:对于使用几何分割模式分割成多个分区的视频的当前块,从多个加权因子组中选择加权因子组,其中至少基于当前块的宽度或高度来选择加权因子组;以及作为当前块和视频的比特流表示之间的转换的一部分,将加权因子组应用于沿着多个分区中的至少两个分区的公共边界的样点。
E2.根据方案E1的方法,其中,该选择基于宽度和高度之间的比率大于阈值。
E3.根据方案E1的方法,其中,该选择基于高度和宽度之间的比率大于阈值。
E4.根据方案E1的方法,其中,多个加权因子组是基于当前块的宽度或高度预定义的。
E5.根据方案E4的方法,其中,从多个加权因子组中选择一个或两个加权因子组。
E6.一种视频处理的方法,包括:对于使用几何分割模式分割成多个分区的视频的当前块内的样点,基于多个分区中的至少两个分区的公共边界的角度,确定至少一个加权因子;以及基于至少一个加权因子,执行当前块和视频的比特流表示之间的转换。
E7.根据方案E6的方法,其中,该确定还基于样点的位置。
E8.根据方案E1至E7中任一项的方法,其中,当前块中的样点的最终预测值被推导为基于至少一个加权因子的两个预测值的加权和。
E9.根据方案E8的方法,其中,当前块的最终预测块是(f(x,y)×P1(x,y)+(2M–f(x,y))×P2(x,y)+偏移)>>M,其中P1(x,y)和P2(x,y)分别是坐标为(x,y)的样点的第一预测值和第二预测值,其中M和偏移是整数,并且其中f(x,y)是返回应用于第一预测值的权重的函数。
E10.根据方案E9的方法,其中,偏移=(1<<(M-1))。
E11.根据方案E1至E10中任一项的方法,其中,基于划分模式将当前块划分成多个分区。
E12.根据方案E1至E11中任一项的方法,其中,几何分割模式包括三角形分割模式。
E13.根据方案E12的方法,其中,几何分割模式包括将一个块划分成两个分区。
E12.根据方案E1至E10中任一项的方法,其中,当前块被划分成多个分区,多个分区中的至少一个分区是非正方形和非矩形的。
E13.根据方案E1至E12中任一项的方法,其中,该转换从比特流表示生成当前块。
E14.根据方案E1至E12中任一项的方法,其中,该转换从当前块生成比特流表示。
E15.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案E1至E14中任一项的方法。
E16.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案E1至E14中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
F1.一种视频处理的方法,包括:对于使用几何分割模式分割成多个分区的视频的当前块,对沿着多个分区中的至少两个分区的公共边界的、样点尺寸不同于4×4的样点尺寸的样点执行运动补偿过程;以及基于运动补偿过程,执行当前块和视频的比特流表示之间的转换。
F2.根据方案F1的方法,其中,运动补偿过程以8×8的样点尺寸执行,以减少转换所需的存储带宽。
F3.根据方案F1的方法,其中,运动补偿过程以8×4的样点尺寸或4×8的样点尺寸来执行,以减少转换所需的存储带宽。
F4.根据方案F3的方法,其中,样点尺寸基于当前块的高度或宽度。
F5.根据方案F3的方法,其中,样点尺寸基于当前块的多个分区的划分模式。
F6.根据方案F5的方法,其中,划分模式包括从右上角到左下角或从左上角到右下角的划分,分别由45度划分模式或135度划分模式表示。
F7.一种视频处理的方法,包括:使用几何分割模式将视频的当前块分割成多个分区;存储从与多个分区相关联的运动信息推导的在当前块内的K×L区域的单个运动信息集;以及使用与多个分区中的至少一个分区相关联的至少一个运动信息集来执行当前块和视频的比特流表示之间的转换。
F8.根据方案F7的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2,其中在确定MVInfo1来自第一参考图片列表LX并且MVInfo2来自第二参考图片列表LY时,单个运动信息集包括基于组合MVInfo1和MVInfo2的当前块的双向预测和相关联的运动信息,其中X=0或X=1,并且其中Y=(1-X)。
F9.根据方案F7的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2,其中在确定MVInfo1和MVInfo2都来自参考列表LX时,单个运动信息集包括基于MVInfoj的当前块的单向预测和相关联的运动信息,其中j=1或j=2,并且其中X=0或X=1。
F10.根据方案F8的方法,其中,包括双向预测的单个运动信息集是通过组合MVInfo1和MVInfo2的运动矢量和参考图片索引来推导的。
F11.根据方案F9的方法,其中,包括单向预测的单个运动信息集基于MVInfo1。
F12.根据方案F9的方法,其中,包括单向预测的单个运动信息集基于MVInfo2。
F13.根据方案F1至F12中任一项的方法,其中,在确定右上角样点和左下角样点在两个不同的分区中时,MVInfo1包括与覆盖右上角样点的分区相关联的运动信息集,并且MVInfo2包括与覆盖左下角样点的分区相关联的运动信息集。
F14.根据方案F13的方法,其中,当前块的划分方向是从左上角到右下角。
F15.根据方案F1至F12中任一项的方法,其中,在确定左上角样点和右下角样点在两个不同的分区中时,MVInfo1包括与覆盖左上角样点的分区相关联的运动信息集,并且MVInfo2包括与覆盖右下角样点的分区相关联的运动信息集。
F16.根据方案F15的方法,其中,当前块的划分方向是从右上角到左下角。
F17.根据方案F7的方法,其中,所存储的单个运动信息集被用于视频的后续块的时域运动预测、空域运动预测、或当前块的滤波过程中的一个。
F18.根据方案F7的方法,其中,所存储的单个运动信息集被用于处理不同图片中的其他块。
F19.根据方案F17的方法,其中,滤波过程包括去方块或自适应环路滤波(ALF)。
F20.根据方案F7的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中,MVInfoi和MVInfoj都来自参考图片列表LX,其中X=0或X=1,并且其中单个运动信息集基于组合MVInfoi和通过将MVInfoj缩放到参考图片列表LY而生成的缩放运动矢量,其中Y=(1-X)。
F21.根据方案F20的方法,其中,预先确定或在比特流表示中信令通知X的值。
F22.根据方案F7的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中,MVInfoi和MVInfoj都来自参考图片列表LX,其中X=0或X=1,并且其中,单个运动信息集基于组合MVInfoi和通过将MVInfoj映射到参考图片列表LY而生成的映射运动矢量,其中Y=(1-X)。
F23.根据方案F22的方法,其中单个运动信息集包括双向预测运动矢量。
F24.根据方案F22的方法,其中,将MVInfoj映射到列表LY中的参考图片不包括缩放操作。
F25.根据方案F7的方法,其中,存储单个运动信息集基于与多个分区相关联的解码运动信息。
F26.根据方案F25的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中MVInfoi和MVInfoj都来自相同参考图片列表LX,其中X=0或X=1,并且其中,单个运动信息集包括单向预测运动信息。
F27.根据方案F25的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中,MVInfoi来自参考图片列表LX,并且MVInfoj来自参考图片列表LY,其中X=0或X=1,其中Y=(1-X),并且其中单个运动信息集包括双向预测运动信息。
F28.根据方案F25的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中MVInfoi和MVInfoj都来自参考图片列表LX,其中X=0或X=1,其中参考图片列表LY包括MVInfoi或MVInfoj,其中Y=(1-X),并且其中,单个运动信息集包括双向预测运动信息。
F29.根据方案F7的方法,其中,存储单个运动信息集基于沿着多个分区中的至少两个分区的公共边界定位的当前块的子区域。
F30.根据方案F29的方法,其中,不同的子区域存储不同的运动信息。
F31.根据方案F29的方法,其中,子区域存储单向预测运动信息或双向预测运动信息。
F32.根据方案F7的方法,其中,存储单个运动信息集基于当前块中的子块的位置,并且其中子块仅存储单向预测运动信息。
F33.根据方案F1至F32中任一项的方法,其中,在应用于当前块的运动补偿过程中使用单个运动信息集。
F34.根据方案F7的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中MVInfoi和MVInfoj都来自参考图片列表LX,其中X=0或X=1,并且其中,单个运动信息集包括从(a)MVInfoi、(b)MVInfoj或(c)MVInfoi和MVInfoj的平均中推导的对于参考图片列表LX的双向预测运动矢量。
F35.根据方案F7的方法,其中,MVInfoi和MVInfoj分别表示第i个分区和第j个分区的运动信息,其中MVInfoi和MVInfoj都来自参考图片列表LX,其中X=0或X=1,并且其中,单个运动信息集包括MVInfoi和MVInfoj的平均或加权平均,并且其中,与单个运动信息集相关联的参考图片包括MVInfoi的参考图片或MVInfoj的参考图片。
F36.根据方案F1至F35中任一项的方法,其中,K×L区域包含在多个分区中的至少两个分区之间的公共边界上的至少一个样点。
F37.根据方案F1至F36中任一项的方法,其中,几何分割模式包括三角形分割模式。
F38.根据方案F1至F36中任一项的方法,其中,多个分区中的至少一个分区是非正方形和非矩形的。
F39.根据方案F1至F38中任一项的方法,其中,该转换从比特流表示生成当前块。
F40.根据方案F1至F38中任一项的方法,其中,该转换从当前块生成比特流表示。
F41.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案F1至F40中任一项的方法。
F42.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案F1至F40中任一项的方法的程序代码。
在一些实施例中,可以实施以下技术方案:
G1.一种视频处理的方法,包括:将视频的当前块分割成多个分区;以及执行使用几何分割模式来编解码的当前块和视频的比特流表示之间的转换,其中为当前块的每个M×N块单元存储单个运动信息集,其中该单个运动信息集从与多个分区中的每个分区相关联的运动信息中推导,其中M或N不等于4,并且其中该M×N块单元中的每个样点共享相同的运动信息。
G2.根据方案G1的方法,其中,M=8,并且N=8。
G3.根据方案G1的方法,其中,M×N块单元的第一部分包括在多个分区中的至少两个分区的公共边界上的第一样点集,并且其中M×N块单元的第二部分包括在多个分区中的至少两个分区之一的内部的第二样点集。
G4.根据方案G3的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2,其中在确定MVInfo1来自第一参考图片列表LX并且MVInfo2来自第二参考图片列表LY时,相同的运动信息包括基于多个分区的MVInfoi的对于当前块的双向预测和相关联的运动信息,其中X=0或X=1,并且其中Y=(1-X)。
G5.根据方案G3的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2,其中在确定MVInfo1和MVInfo2都来自参考图片列表LX时,相同的运动信息包括基于MVInfoj的对于当前块的单向预测和相关联的运动信息,其中j=1或j=2,并且其中X=0或X=1。
G6.根据方案G3的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2,并且其中相同的运动信息包括基于MVInfoj的对于当前块的单向预测和相关联的运动信息,其中j=1或j=2。
G7.一种视频处理的方法,包括:将视频的当前块分割成多个分区;以及作为当前块和视频的比特流表示之间的转换的一部分,基于不同于要存储的与第一子区域相关联的第二运动信息的第一运动信息,对当前块的第一子区域执行运动补偿过程。
G8.根据方案G7的方法,其中,第一子区域包括在多个分区中的至少两个分区的公共边界上的M×N个样点的集合,其中运动补偿过程包括双向预测,并且其中仅存储来自双向预测的列表0或列表1的一个运动信息集。
G9.根据方案G8的方法,其中,该一个运动信息集被用于推导使用Merge模式或高级运动矢量预测(AMVP)模式进行编解码的临近块的空域运动候选。
G10.根据方案G8的方法,其中,该一个运动信息集被用于推导出与包括当前块的当前图片不同的图片中的后续块的时域运动候选。
G11.根据方案G8的方法,其中,该一个运动信息集被用于当前块的环内处理。
G12.根据方案G11的方法,其中,环内处理包括去方块或自适应环路滤波。
G13.根据方案G7的方法,其中,基于与第二子区域相关联的第三运动信息对当前块的第二子区域执行运动补偿过程,并且其中第一子区域和第二子区域在包括多个分区的相同编解码单元(CU)中。
G14.一种视频处理方法,包括:使用几何分割模式将视频的当前块分割成多个分区;基于与多个分区相关联的划分方向或解码Merge索引或Merge候选列表,存储第一样点集和第二样点集的运动信息,其中第一样点集位于多个分区中的至少两个分区的公共边界上,并且第二样点集位于多个分区中的至少两个分区之一的内部;以及基于存储的运动信息,执行当前块和视频的比特流表示之间的转换或者视频的后续块和比特流表示之间的转换。
G15.根据方案G14的方法,其中,所存储的运动信息对应于与和所选择的解码Merge索引相关联的多个分区之一相关联的运动信息。
G16.根据方案G14的方法,其中,所存储的运动信息对应于运动候选列表中具有被设置为变量k的所选择的Merge索引的运动候选。
G17.根据方案G16的方法,其中,k=0。
G18.根据方案G16的方法,其中,所存储的运动信息对应于Merge候选列表之一中的第k个Merge候选的运动信息。
G19.根据方案G15的方法,其中,所选择的解码Merge索引基于划分方向。
G20.根据方案G15的方法,其中,在确定索引等于所选择的解码Merge索引的Merge候选是基于双向预测的时,所存储的运动信息包括双向预测运动信息。
G21.根据方案G15的方法,其中,在确定索引等于所选择的解码Merge索引的Merge候选是基于单向预测的时,所存储的运动信息包括单向预测运动信息。
G22.根据方案G6的方法,其中,第一子区域包括在多个分区中的至少两个分区的公共边界上的M×N个样点,其中运动补偿过程包括双向预测,并且其中仅存储来自双向预测的列表0或列表1的一个运动信息集。
G23.根据方案G6的方法,其中,第一子区域包括在多个分区中的至少两个分区的公共边界上的M×N个样点,其中运动补偿过程包括双向预测,其中仅存储来自列表X的单向预测信息,并且其中X=0和X=1。
G24.根据方案G6的方法,其中,第一子区域包括在多个分区中的至少两个分区的公共边界上的M×N个样点,其中运动补偿过程包括单向预测,其中第二运动信息包括存储的来自列表X的单向预测信息,并且其中X=0和X=1。
G25.一种视频处理方法,包括:将视频的当前块分割成多个分区;存储基于多个分区中的至少两个分区的运动信息的虚拟双向预测运动信息;以及基于虚拟双向预测运动信息,执行当前块和视频的比特流表示之间的转换。
G26.根据方案G25的方法,其中,MvInfo1和MvInfo2分别是第一分区和第二分区的运动信息,并且其中虚拟双向预测运动信息基于将MvInfoA的预测方向从列表X修改为列表Y,其中A=1或A=2,其中X=0或X=1,并且其中Y=(1-X)。
G27.根据方案G26的方法,其中,MvInfoA的运动矢量和参考索引保持不变。
G28.根据方案G26的方法,其中,MvInfoA的参考索引保持不变,而MvInfoA的运动矢量被设置为相反的值。
G29.根据方案G26至G28中任一项的方法,其中,MvInfo1和MvInfo2来自相同的预测方向。
G30.一种视频处理方法,包括:将视频的当前块分割成多个分区;基于低延迟检查标志,存储多个分区中的第一分区的运动信息(MvInfo1)和多个分区中的第二分区的运动信息(MvInfo2),其中低延迟检查标志指示图片顺序计数(POC)值不大于包括当前块的当前图片的POC值的所有参考图片;以及基于所存储的运动信息,执行当前块和视频的比特流表示之间的转换。
G31.根据方案G30的方法,其中,MvInfo1和MvInfo2来自不同的预测方向,并且其中存储运动信息包括存储通过组合MvInfo1和MvInfo2生成的双向预测运动信息。
G32.根据方案G30的方法,其中,MvInfo1和MvInfo2来自相同的预测方向(列表X),其中X=0或X=1,并且其中,该方法还包括:通过将MvInfo2的预测方向列表从列表X设置为列表Y来修改MvInfo2,其中Y=(1-X),并且其中存储运动信息包括存储通过组合MvInfo1和修改的MvInfo2生成的双向预测运动信息。
G33.根据方案G25至G32中任一项的方法,其中,存储运动信息包括存储当前块的子块的运动信息。
G34.根据方案G33的方法,其中,子块包括多个分区中的至少两个分区的公共边界上的样点。
G35.根据方案G33的方法,其中,子块包括当前块中的对角线或反对角线。
G36.根据方案G33的方法,其中,子块在当前块的右下角中。
G37.根据方案G33的方法,其中,子块在当前块的右列或底行中。
G38.根据方案G1至G37中任一项的方法,其中,多个分区中的至少一个分区是非正方形和非矩形的。
G39.根据方案G1至G38中任一项的方法,其中,该转换从比特流表示生成当前块。
G40.根据方案G1至G38中任一项的方法,其中,该转换从当前块生成比特流表示。
G41.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器运行时,使得处理器实施方案G1至G40中任一项的方法。
G42.一种存储在非暂时性计算机可读介质上的计算机程序产品,该计算机程序产品包括用于执行方案G1至G40中任一项的方法的程序代码。
H1.一种用于视频处理的方法,包括:使用几何分割模式将视频的当前块分割成多个分区;以及使用与所述多个分区中的至少两个分区相关联的至少两个运动信息集来执行所述当前块和视频的比特流表示之间的转换,其中,单个运动信息集是针对位于所述至少两个分区的公共边界上的K×L区域而存储的,其中,所述单个运动信息集包括从与所述至少两个分区中的每个分区相关联的运动信息推导的单向预测运动信息。
H2.根据方案H1所述的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2。
H3.根据方案H2所述的方法,其中,存储单个运动信息集包括存储当前块中的K×L区域的MVInfo1。
H4.根据方案H2所述的方法,其中,存储单个运动信息集包括存储当前块内所有子区域的MVInfo1。
H5.根据方案H2所述的方法,其中,存储单个运动信息集包括存储当前块中的K×L区域的MVInfo2。
H6.根据方案H2所述的方法,其中,存储单个运动信息集包括存储当前块内所有子区域的MVInfo2。
H7.根据方案H1或H2所述的方法,其中,单个运动信息集包括来自多个分区中的一个所选择的分区的运动信息。
H8.根据方案H7所述的方法,其中,一个所选择的分区是基于相对于包括当前块的当前图片的图片顺序计数(POC)距离来选择的。
H9.根据方案H7所述的方法,其中,一个所选择的分区是基于与当前块相关联的参考图片的量化参数(QP)来选择的。
H10.根据方案H7所述的方法,其中,一个所选择的分区是基于与当前块相关联的参考图片的参考索引来选择的。
H11.根据方案H2所述的方法,其中,单个运动信息集包括MVInfoA和MVInfoB的平均值,其中(A=1,B=2)或(A=2,B=1)。
H12.根据方案H2所述的方法,其中,单个运动信息集包括MVInfoA和缩放版本的MVInfoB的平均值,其中(A=1,B=2)或(A=2,B=1)。
H13.根据方案H2所述的方法,其中,单个运动信息集包括MVInfoA和映射版本的MVInfoB的平均值,其中(A=1,B=2)或(A=2,B=1)。
H14.根据方案H2所述的方法,其中,当确定与MVInfo1相关联的参考图片的参考索引小于与MVInfo2相关联的参考图片的参考索引时,单个运动信息集包括MVInfo1。
H15.根据方案H2所述的方法,其中,当确定与MVInfo1相关联的Merge索引小于与MVInfo2相关联的Merge索引时,单个运动信息集包括MVInfo1。
H16.根据方案H1至H15中任一项所述的方法,其中,K×L区域是包括至少两个分区的公共边界上的样点的子区域。
H17.根据方案H1至H16中任一项所述的方法,其中,至少两个分区中的一个分区是基于当前块的划分方向来选择的。
H18.根据方案H1至H17中任一项所述的方法,其中,右上角样点和左下角样点位于不同的分区中,并且其中,MVInfo1是与覆盖右上角样点的分区相关联的运动信息集,并且MVInfo2是与覆盖左下角样点的分区相关联的运动信息集。
H19.根据方案H18所述的方法,其中,划分方向是从左上角样点到右下角样点。
H20.根据方案H1至H17中任一项所述的方法,其中,左上角样点和右下角样点位于不同的分区中,并且其中,MVInfo1是与覆盖左上角样点的分区相关联的运动信息集,并且MVInfo2是与覆盖右下角样点的分区相关联的运动信息集。
H21.根据方案H20所述的方法,其中,划分方向是从右上角样点到左下角样点。
H22.根据方案H1至H21中任一项所述的方法,其中,几何分割模式包括三角形分割模式。
H23.根据方案H1至H21中任一项所述的方法,其中,多个分区中的至少一个分区是非正方形和非矩形的。
H24.根据方案H1至H23中任一项所述的方法,其中,对一个或多个其他块的编解码是基于单个运动信息集的。
H25.根据方案H24所述的方法,还包括:将单个运动信息集解释为空域运动候选,其中,对一个或多个其他块的编解码包括临近块的Merge模式或高级运动矢量预测(AMVP)模式。
H26.根据方案H1至H23中任一项所述的方法,其中,对不同图片中的后续块的编解码是基于单个运动信息集的。
H27.根据方案H26所述的方法,还包括:将单个运动信息集解释为时域运动矢量候选。
H28.根据方案H1至H23中任一项所述的方法,其中,当前块的环内处理是基于单个运动信息集的。
H29.根据方案H28所述的方法,其中,环内处理包括去方块或自适应环路滤波(ALF)。
H30.根据方案H1至H29中任一项所述的方法,其中,该转换从比特流表示生成当前块。
H31.根据方案H1至H29中任一项所述的方法,其中,该转换从当前块生成比特流表示。
H32.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时,使处理器实施根据方案H1至H31中的一项或多项所述的方法。
H33.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行根据方案H1至H31中的一项或多项所述的方法的程序代码。
J1.一种视频处理的方法,包括:维护一个或多个基于历史的运动矢量预测(HMVP)表;执行视频的当前块和视频的比特流表示之间的转换,其中,当前块使用几何分割模式被分割成多个分区;以及基于条件并在执行转换之后,选择性更新一个或多个HMVP表。
J2.根据方案J1所述的方法,其中,通过包括多个分区中的第一分区的运动信息并且排除多个分区中的第二分区的运动信息,来更新一个或多个HMVP表。
J3.根据方案J1所述的方法,其中,通过包括与多个分区中的至少两个分区之间的公共边界上的样点相关联的运动信息并且排除与多个分区中的一个分区的内部的样点相关联的运动信息,来更新一个或多个HMVP表。
J4.根据方案J1所述的方法,其中,通过包括与多个分区中的一个分区的内部的样点相关联的运动信息并且排除与多个分区中的至少两个分区之间的公共边界上的样点相关联的运动信息,来更新一个或多个HMVP表。
J5.根据方案J1所述的方法,其中,基于来自与被分割成多个分区的当前块的运动信息相关联的Merge候选列表的Merge候选,来更新一个或多个HMVP表。
J6.一种视频处理方法,包括:对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,其中,转换是基于所述多个分区中的第一分区的第一运动信息的,并且其中,第一运动信息是基于多个分区中的第二分区的第二运动信息而推导出的。
J7.根据方案J6所述的方法,其中,第二运动信息包括第二分区的预测方向。
J8.根据方案J6所述的方法,其中,第二运动信息包括与参考图片列表LX相关联的运动信息,其中X=0或X=1。
J9.根据方案J6所述的方法,其中,当确定与参考图片列表LX相关联的运动信息不可用时,第二运动信息包括与参考图片列表LY相关联的运动信息,其中X=0或X=1,并且其中Y=(1-X)。
J10.一种视频处理方法,包括:对于使用几何分割模式被分割成多个分区的当前块,执行当前块和视频的比特流表示之间的转换,其中,多个分区中的多于一个分区的运动信息不是从相同参考图片列表推导出的。
J11.根据方案J10所述的方法,其中,一致性比特流包括对多个分区中的两个分区的运动信息是从不同参考图片列表推导出的的指示。
J12.根据方案J10所述的方法,其中,Merge索引的奇偶性总是指示多个分区中的两个分区的运动信息是从不同参考图片列表推导出的。
J13.根据方案J6至J12中任一项所述的方法,还包括:存储包括第一运动信息或第二运动信息的运动信息,其中,一个或多个基于历史的运动矢量预测(HMVP)表是基于存储的运动信息来更新的。
J14.一种视频处理方法,包括:基于使用几何分割模式被分割成多个分区的当前块的条件,选择性启用从相同参考图片对第一分区和第二分区的运动信息的推导;以及基于选择性启用来执行当前块和视频的比特流表示之间的转换。
J15.根据方案J14所述的方法,其中,两个分区的参考样点不重叠。
J16.根据方案J14所述的方法,其中,MV0和MV1分别是第一分区和第二分区的运动矢量,并且其中,MVX[0]和MVX[1]分别是MVX的水平分量和垂直分量。
J17.根据方案J16所述的方法,其中,该条件包括abs(MV0[0]–MV1[0])小于阈值,并且其中,abs(x)返回x的绝对值。
J18.根据方案J16所述的方法,其中,该条件包括abs(MV0[1]–MV1[1])小于阈值,并且其中,abs(x)返回x的绝对值。
J19.根据方案J16所述的方法,其中,该条件包括abs(MV0[0]–MV1[0])+abs(MV0[1]–MV1[1])小于阈值,并且其中,abs(x)返回x的绝对值。
J20.根据方案J16所述的方法,其中,该条件包括Max(abs(MV0[0]–MV1[0]),abs(MV0[1]–MV1[1]))小于阈值,其中,abs(x)返回x的绝对值,并且其中,如果x>y则Max(a,b)返回x,如果y>x则返回y。
J21.根据方案J1至J20中任一项所述的方法,其中,该转换基于存储的运动信息,该运动信息包括运动矢量、参考索引、单向预测或双向预测的指示、帧间预测方向的指示、广义双向预测(GBi)的指示、运动矢量分辨率、或仿射预测的指示中的至少一个。
J22.根据方案J1至J21中任一项所述的方法,其中,多个分区中的至少一个分区是非正方形和非矩形的。
J23.根据方案J1至J22中任一项所述的方法,其中,该转换从比特流表示生成当前块。
J24.根据方案J1至J22中任一项所述的方法,其中,该转换从当前块生成比特流表示。
J25.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中指令在由处理器执行时,使得处理器实施根据方案J1至J24中的任一项所述的方法。
J26.一种存储在非暂时性计算机可读介质上的计算机程序产品,计算机程序产品包括用于执行根据方案J1至J24中任一项所述的方法的程序代码。
图54是视频处理装置5400的框图。装置5400可以用于实施本文描述的一个或多个方法。装置5400可以包含在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置5400可以包括一个或多个处理器5402、一个或多个存储器5404和视频处理硬件5406。(多个)处理器5402可以被配置为实施本文档中描述的一个或多个方法。存储器(多个存储器)5404可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件5406可以用于在硬件电路中实施本文档中描述的一些技术。
在一些实施例中,视频编解码方法可以使用如参考图54所述的在硬件平台上实施的装置来实施。
所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在一个示例中,当视频处理工具或模式被启用时,编码器将在视频块的处理中使用或实施该工具或模式,但是不一定基于该工具或模式的使用来修改得到的比特流。也就是说,当基于决定或确定来启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式被修改的情况下处理比特流。也就是说,将使用基于决定或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频的块的转换。
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不使用该工具或模式将视频的块转换成视频的比特流表示。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知道比特流还没有使用基于决定或确定而启用的视频处理工具或模式被修改的情况下处理比特流。
图55是示出其中可以实施本文公开的各种技术的示例视频处理系统5500的框图。各种实施方式可以包括系统5500的一些或所有组件。系统5500可以包括用于接收视频内容的输入5502。视频内容可以以原始或未压缩格式接收,例如,8或10比特多分量像素值,或者可以是压缩或编码格式。输入5502可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(passive optical network,PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。
系统5500可以包括编解码组件5504,其可以实施本文档中描述的各种编解码或编码方法。编解码组件5504可以降低从编解码组件5504的输入5502到输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件5504的输出可以被存储,或者经由连接的通信来传输,如组件5506所示。组件5508可以使用在输入5502处接收到的所存储或传达的视频的比特流(或编解码)表示来生成发送到显示接口5510的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是应当理解,编解码工具或操作在编码器处使用,并且将由解码器执行反转编解码结果的、对应的解码工具或操作。
外围总线接口或显示接口的示例可以包括通用串行总线(universal serialbus,USB)或高清多媒体接口(high definition multimedia interface,HDMI)或显示端口等。存储接口的示例包括SATA(serial advanced technology attachmen,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
关于本文档中的描述,视频的当前块的比特流表示不一定是连续比特的形式,而是可以基于比特流语法的不同位置中出现的比特(例如,头字段和参数集)。
此外,在一些公开的实施例中,对于子块编解码模式,包括ATMVP和仿射Merge,共享一个Merge列表构建过程。这里,可以按顺序添加ATMVP和仿射Merge候选。
在一些实施例中,对于三角形预测模式,两个分区的一个Merge列表构建过程是共享的,甚至两个分区也可以选择它们自己的Merge候选索引。当构建该Merge列表时,检查块的空域临近块和两个时域块。从空域邻居和时域块推导的运动信息在我们的IDF中被称为规则运动候选。这些规则运动候选被进一步用于导出多个TPM候选。变换可以在整个块的级别执行,甚至两个分区也可以使用不同的运动矢量来生成它们自己的预测块。
对于其余的编解码块,共享一个Merge列表构建过程。这里,可以按顺序插入空域/时域/HMVP、成对组合的双向预测Merge候选和零运动候选。
本领域技术人员将理解,公开了视频编码或解码方法(压缩/解压缩)。视频块的几何(或几何的)分区可用于精确跟踪运动信息并提高视频编解码的压缩性能。还应当理解,与当今的视频编解码/解码技术相比,所公开的方法的使用可以使得实施例能够实现进一步的编解码增益和/或降低实施的复杂性。
本文档中描述的所公开的和其它方案、示例、实施例、模块和功能操作可以在数字电子电路中实施,或者在计算机软件、固件或硬件中实施,包括本文档中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。所公开的和其它实施例可以实施为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电信号、光信号或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一个或多个计算机上执行。
本文中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或者被可操作地耦合以从一个或多个大容量存储设备接收数据或向其传送数据或两者兼有。然而,计算机不需要这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括半导体存储器设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
虽然本专利文档包含许多细节,但这些不应被解释为对任何主题或所要求保护的范围的限制,而是对特定技术的特定实施例所特有的特征的描述。本专利文件中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上述特征可以被描述为以某些组合起作用,甚至最初被要求这样来保护,但是在某些情况下,可以从所要求保护的组合中删除该组合中的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变体。
类似地,尽管在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或顺序地执行这些操作,或者要求执行所有所示的操作,以获得期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应该理解为在所有实施例中都需要这种分离。
仅描述了几个实施方式和示例,并且可以基于本专利文件中描述和图示的内容进行其它实施、增强和变化。

Claims (33)

1.一种用于视频处理的方法,包括:
使用几何分割模式将视频的当前块分割成多个分区;以及
使用与所述多个分区中的至少两个分区相关联的至少两个运动信息集来执行所述当前块和视频的比特流表示之间的转换,其中,单个运动信息集是针对位于所述至少两个分区的公共边界上的K×L区域而存储的,其中,所述单个运动信息集包括从与所述至少两个分区中的每个分区相关联的运动信息推导的单向预测运动信息。
2.根据权利要求1所述的方法,其中,MVInfoi表示第i个分区的运动信息,其中i=1和i=2。
3.根据权利要求2所述的方法,其中,存储所述单个运动信息集包括存储所述当前块中的K×L区域的MVInfo1。
4.根据权利要求2所述的方法,其中,存储所述单个运动信息集包括存储所述当前块内所有子区域的MVInfo1。
5.根据权利要求2所述的方法,其中,存储所述单个运动信息集包括存储所述当前块中的K×L区域的MVInfo2。
6.根据权利要求2所述的方法,其中,存储所述单个运动信息集包括存储所述当前块内所有子区域的MVInfo2。
7.根据权利要求1或2所述的方法,其中,所述单个运动信息集包括来自所述多个分区中的一个所选择的分区的运动信息。
8.根据权利要求7所述的方法,其中,所述一个所选择的分区是基于相对于包括所述当前块的当前图片的图片顺序计数(POC)距离来选择的。
9.根据权利要求7所述的方法,其中,所述一个所选择的分区是基于与所述当前块相关联的参考图片的量化参数(QP)来选择的。
10.根据权利要求7所述的方法,其中,所述一个所选择的分区是基于与所述当前块相关联的参考图片的参考索引来选择的。
11.根据权利要求2所述的方法,其中,所述单个运动信息集包括MVInfoA和MVInfoB的平均值,其中,(A=1,B=2)或(A=2,B=1)。
12.根据权利要求2所述的方法,其中,所述单个运动信息集包括MVInfoA和缩放版本的MVInfoB的平均值,其中,(A=1,B=2)或(A=2,B=1)。
13.根据权利要求2所述的方法,其中,所述单个运动信息集包括MVInfoA和映射版本的MVInfoB的平均值,其中,(A=1,B=2)或(A=2,B=1)。
14.根据权利要求2所述的方法,其中,当确定与MVInfo1相关联的参考图片的参考索引小于与MVInfo2相关联的参考图片的参考索引时,所述单个运动信息集包括MVInfo1。
15.根据权利要求2所述的方法,其中,当确定与MVInfo1相关联的Merge索引小于与MVInfo2相关联的Merge索引时,所述单个运动信息集包括MVInfo1。
16.根据权利要求1至15中任一项所述的方法,其中,所述K×L区域是包括所述至少两个分区的公共边界上的样点的子区域。
17.根据权利要求1至16中任一项所述的方法,其中,所述至少两个分区中的一个分区是基于所述当前块的划分方向来选择的。
18.根据权利要求1至17中任一项所述的方法,其中,右上角样点和左下角样点位于不同的分区中,并且其中,MVInfo1是与覆盖所述右上角样点的分区相关联的运动信息集,并且MVInfo2是与覆盖所述左下角样点的分区相关联的运动信息集。
19.根据权利要求18所述的方法,其中,所述划分方向是从左上角样点到右下角样点。
20.根据权利要求1至17中任一项所述的方法,其中,左上角样点和右下角样点位于不同的分区中,并且其中,MVInfo1是与覆盖所述左上角样点的分区相关联的运动信息集,并且MVInfo2是与覆盖所述右下角样点的分区相关联的运动信息集。
21.根据权利要求20所述的方法,其中,所述划分方向是从右上角样点到左下角样点。
22.根据权利要求1至21中任一项所述的方法,其中,所述几何分割模式包括三角形分割模式。
23.根据权利要求1至21中任一项所述的方法,其中,所述多个分区中的至少一个分区是非正方形和非矩形的。
24.根据权利要求1至23中任一项所述的方法,其中,对一个或多个其他块的编解码是基于所述单个运动信息集的。
25.根据权利要求24所述的方法,还包括:
将所述单个运动信息集解释为空域运动候选,其中,所述对一个或多个其他块的编解码包括临近块的Merge模式或高级运动矢量预测(AMVP)模式。
26.根据权利要求1至23中任一项所述的方法,其中,对不同图片中的后续块的编解码是基于所述单个运动信息集的。
27.根据权利要求26所述的方法,还包括:
将所述单个运动信息集解释为时域运动矢量候选。
28.根据权利要求1至23中任一项所述的方法,其中,所述当前块的环内处理是基于所述单个运动信息集的。
29.根据权利要求28所述的方法,其中,所述环内处理包括去方块或自适应环路滤波(ALF)。
30.根据权利要求1至29中任一项所述的方法,其中,所述转换从所述比特流表示生成所述当前块。
31.根据权利要求1至29中任一项所述的方法,其中,所述转换从所述当前块生成所述比特流表示。
32.一种视频系统中的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时,使所述处理器实施根据权利要求1至31中的一项或多项所述的方法。
33.一种存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括用于执行根据权利要求1至31中的一项或多项所述的方法的程序代码。
CN202080036650.5A 2019-05-17 2020-05-15 用于视频处理的运动信息确定和存储 Active CN113841408B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
CN2019087372 2019-05-17
CNPCT/CN2019/087372 2019-05-17
CNPCT/CN2019/090127 2019-06-05
CN2019090127 2019-06-05
CN2019092151 2019-06-20
CNPCT/CN2019/092151 2019-06-20
PCT/CN2020/090481 WO2020233513A1 (en) 2019-05-17 2020-05-15 Motion information determination and storage for video processing

Publications (2)

Publication Number Publication Date
CN113841408A true CN113841408A (zh) 2021-12-24
CN113841408B CN113841408B (zh) 2024-02-06

Family

ID=73459482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080036650.5A Active CN113841408B (zh) 2019-05-17 2020-05-15 用于视频处理的运动信息确定和存储

Country Status (2)

Country Link
CN (1) CN113841408B (zh)
WO (1) WO2020233513A1 (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103636223A (zh) * 2011-06-29 2014-03-12 高通股份有限公司 用于视频译码的多区扫描次序
WO2014081261A1 (ko) * 2012-11-23 2014-05-30 인텔렉추얼 디스커버리 주식회사 움직임 정보 병합을 이용한 비디오 부호화/복호화 방법 및 장치
CN104935938A (zh) * 2015-07-15 2015-09-23 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
CN107079161A (zh) * 2014-09-01 2017-08-18 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
WO2018012886A1 (ko) * 2016-07-12 2018-01-18 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
US20180098063A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
CN107948646A (zh) * 2017-09-26 2018-04-20 北京字节跳动网络技术有限公司 一种视频摘要生成方法与视频再编码方法
CN108605137A (zh) * 2016-03-01 2018-09-28 联发科技股份有限公司 利用仿射运动补偿的视频编码方法与装置
WO2018226015A1 (ko) * 2017-06-09 2018-12-13 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019039323A1 (en) * 2017-08-22 2019-02-28 Panasonic Intellectual Property Corporation Of America IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5887764B2 (ja) * 2011-08-29 2016-03-16 株式会社Jvcケンウッド 動き補償フレーム生成装置及び方法
EP3078196B1 (en) * 2013-12-06 2023-04-05 MediaTek Inc. Method and apparatus for motion boundary processing
WO2015139762A1 (en) * 2014-03-20 2015-09-24 Huawei Technologies Co., Ltd. An apparatus and a method for associating a video block partitioning pattern to a video coding block
CN110249628B (zh) * 2017-02-06 2021-08-20 华为技术有限公司 用于预测分区的视频编码器和解码器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103636223A (zh) * 2011-06-29 2014-03-12 高通股份有限公司 用于视频译码的多区扫描次序
WO2014081261A1 (ko) * 2012-11-23 2014-05-30 인텔렉추얼 디스커버리 주식회사 움직임 정보 병합을 이용한 비디오 부호화/복호화 방법 및 장치
CN107079161A (zh) * 2014-09-01 2017-08-18 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
CN104935938A (zh) * 2015-07-15 2015-09-23 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
CN108605137A (zh) * 2016-03-01 2018-09-28 联发科技股份有限公司 利用仿射运动补偿的视频编码方法与装置
WO2018012886A1 (ko) * 2016-07-12 2018-01-18 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
US20180098063A1 (en) * 2016-10-05 2018-04-05 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
WO2018226015A1 (ko) * 2017-06-09 2018-12-13 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2019039323A1 (en) * 2017-08-22 2019-02-28 Panasonic Intellectual Property Corporation Of America IMAGE ENCODER, IMAGE DECODER, IMAGE ENCODING METHOD, AND IMAGE DECODING METHOD
CN107948646A (zh) * 2017-09-26 2018-04-20 北京字节跳动网络技术有限公司 一种视频摘要生成方法与视频再编码方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MAX BLÄSER: "Crosscheck of JVET-L0124: CE10.3.1.b Triangular prediction unit mode", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 03–12 OCT. 2018,JVET-L0124-V *
RU-LING LIAO: "CE10.3.1.b: Triangular prediction unit mode", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 03–12 OCT. 2018,JVET-L0124-V2, pages 1 - 2 *
YONGJO AHN: "CE10: Diagonal motion partitions with uni-prediction constraint (Test 10.3.3)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 03–12 OCT. 2018, JVET-L0125 *

Also Published As

Publication number Publication date
WO2020233513A1 (en) 2020-11-26
CN113841408B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
CN111434110B (zh) 用于视频处理的方法、装置和存储介质
US11700371B2 (en) Table maintenance for HMVP candidate storage
CN113906760A (zh) 用于帧间预测的运动信息推导
CN113841408B (zh) 用于视频处理的运动信息确定和存储
CN112997496A (zh) 仿射预测模式的改进
CN111418205B (zh) 用于帧间预测的运动候选
US20220078476A1 (en) HMVP Table Improvements

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