CN117354507A - 视频编解码的运动候选列表构建 - Google Patents

视频编解码的运动候选列表构建 Download PDF

Info

Publication number
CN117354507A
CN117354507A CN202311508163.6A CN202311508163A CN117354507A CN 117354507 A CN117354507 A CN 117354507A CN 202311508163 A CN202311508163 A CN 202311508163A CN 117354507 A CN117354507 A CN 117354507A
Authority
CN
China
Prior art keywords
block
motion
video
sub
blocks
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
CN202311508163.6A
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 CN117354507A publication Critical patent/CN117354507A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Abstract

描述了视频编解码的运动候选列表构建。提供了一种视频处理的方法、装置和介质,该方法包括:为视频的视频块和视频的比特流之间的转换构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中预定条件与视频块的维度有关;以及基于视频块的运动信息来执行转换;其中,基于历史的预测值表包括运动候选集合,运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。

Description

视频编解码的运动候选列表构建
相关申请的交叉引用
本申请是申请日为2020年6月8日、申请号为202080041808.8、发明名称为“视频编解码的运动候选列表构建”的发明专利申请的分案申请,其要求于2019年6月6日提交的国际专利申请No.PCT/CN2019/090409、2019年6月22日提交的国际专利申请No.PCT/CN2019/092438和2019年9月10日提交的国际专利申请No.PCT/CN2019/105180的优先权和权益。前述申请的全部公开通过引用并入而作为本申请的公开的一部分。
技术领域
本文档涉及视频和图像编码和解码技术。
背景技术
数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计数字视频使用的带宽需求将继续增长。
发明内容
所公开的技术可以由视频或图像解码器或编码器实施例用于在子块级别执行视频比特流帧内块复制分割技术的编码或解码。
在一个示例方面,公开了一种视频处理的方法,包括:为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及基于视频块的运动信息来执行转换;其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
在一个示例方面,公开了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及基于视频块的运动信息来执行转换;其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
在一个示例方面,公开了一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及基于视频块的运动信息来执行转换;其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
在一个示例方面,公开了一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:为视频的视频块构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及基于视频块的运动信息来生成所述比特流;其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
在一个示例方面,公开了一种用于存储视频的比特流的方法,包括:为视频的视频块构建运动候选列表;基于运动候选列表来确定视频块的运动信息;基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;基于视频块的运动信息来生成所述比特流;以及将所述比特流存储在非暂时性计算机可读记录介质中,其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
在一个示例方面,公开了一种处理视频数据的方法,包括:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:确定所述视频的当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及基于所述确定来生成所述比特流。
在一个示例方面,公开了一种用于存储视频的比特流的方法,包括:确定所述视频的当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;基于所述确定来生成所述比特流;以及将所述比特流存储在非暂时性计算机可读记录介质中。
在一个示例方面,公开了一种处理视频数据的方法,包括:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及基于所述确定来执行所述转换。
在一个示例方面,公开了一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:确定所述视频的当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及基于所述确定来生成所述比特流。
在一个示例方面,公开了一种用于存储视频的比特流的方法,包括:确定所述视频的当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;基于所述确定来生成所述比特流;以及将所述比特流存储在非暂时性计算机可读记录介质中。
在一个示例方面,公开了一种用于视频处理的方法,包括:为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及基于所述构建来执行所述转换;其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
在一个示例方面,公开了一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及基于所述构建来执行所述转换;其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
在一个示例方面,公开了一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及基于所述构建来执行所述转换;其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
在一个示例方面,公开了一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:确定第一预测模式被应用于当前块;为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及基于所述构建来生成所述比特流;其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
在一个示例方面,公开了一种用于存储视频的比特流的方法,包括:确定第一预测模式被应用于当前块;为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;基于所述构建来生成所述比特流;以及将所述比特流存储在非暂时性计算机可读记录介质中;其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
在一个示例方面,公开了一种视频处理的方法。该方法包括为视频的当前块和视频的比特流表示之间的转换确定当前块被划分为多个子块。多个块中的至少一个使用修改的帧内块复制(IBC)编解码技术进行编解码,其中该技术使用来自当前块的当前图片的一个或多个视频区域的参考样点。该方法还包括基于该确定来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括为视频的当前块和视频的比特流表示之间的转换确定当前块被划分为多个子块。根据模式,多个子块中的每一个子块使用对应的编解码技术在编解码表示中被编解码。该方法还包括基于该确定来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括为视频的当前块和视频的比特流表示之间的转换,基于与当前块的特性有关的条件来确定与运动候选列表相关联的操作。运动候选列表是针对编解码技术或基于来自视频的先前处理块的信息来构建的。该方法还包括基于该确定来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括为视频的当前块和视频的比特流表示之间的转换确定使用基于时域信息的帧间编解码技术进行编解码的当前块被划分为多个子块。多个块中的至少一个使用修改的帧内块复制(IBC)编解码技术进行编解码,其中该技术使用来自包括当前块的当前图片的一个或多个视频区域的参考样点。该方法还包括基于该确定来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码,其中子块的尺寸基于划分规则,以及使用sbIBC编解码模式用于多个子块来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码,以及使用sbIBC编解码模式用于多个子块来执行转换,其中该转换包括确定给定子块的初始化运动矢量(initMV),从initMV识别参考块,以及使用参考块的运动矢量(MV)信息推导给定子块的MV信息。
另一个示例方面,公开了一种视频处理的方法。该方法包括确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码,以及使用sbIBC编解码模式用于多个子块来执行转换,其中该转换包括生成子块IBC候选。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内块编解码(sbIBC)模式处理多个子块中的第一子块以及使用帧内编解码模式处理多个子块中的第二子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用帧内编解码模式处理多个子块中的所有子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对每个子块进行编解码的调色板编解码模式来处理多个子块中的所有子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对多个子块中的第一子块进行编解码的调色板模式来处理第一子块,以及使用帧内块复制编解码模式处理多个子块中的第二子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对多个子块中的第一子块进行编解码的调色板模式来处理第一子块,以及使用帧内编解码模式处理多个子块中的第二子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内块编解码(sbIBC)模式处理多个子块中的第一子块以及使用帧间编解码模式处理多个子块中的第二子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内编解码模式处理多个子块中的第一子块以及使用帧间编解码模式处理多个子块中的第二子块。
在另一个示例方面,公开了一种视频处理的方法。该方法包括决定使用以上示例方面中任一项所述的方法将当前视频块编码为比特流表示;以及在解码器参数集级别或序列参数集级别或视频参数集级别或图片参数集级别或图片头级别或条带头级别或片组头级别或最大编解码单元级别或编解码单元级别或最大编解码单元行级别或LCU组级别或变换单元级别或预测单元级别或视频编解码单元级别在比特流表示中包括指示该决定的信息。
在另一个示例方面,公开了一种视频处理的方法。该方法包括决定使用以上示例方面中任一项所述的方法,基于编码条件将当前视频块编码为比特流表示;以及使用以上示例方面中任一项所述的方法执行编码,其中该条件基于以下中的一个或多个:编解码单元、预测单元、变换单元、当前视频块或当前视频块的视频编解码单元的位置。
在另一个示例方面,公开了一种视频处理的方法。该方法包括确定使用帧内块复制模式和帧间预测模式用于视频区域中的块和视频区域的比特流表示之间的转换;以及使用帧内块复制模式和帧间预测模式用于视频区域中的块来执行转换。
在另一个示例方面,公开了一种视频处理的方法。该方法包括在当前视频块和当前视频块的比特流表示之间的转换期间,基于编解码条件来执行运动候选列表构建过程和/或用于更新基于历史的运动矢量预测值表的表更新过程,以及基于运动候选列表构建过程和/或表更新过程来执行转换。
在另一个示例方面,上述方法可以由包括处理器的视频解码器装置实施。
在另一个示例方面,上述方法可以由包括处理器的视频编码器装置实施。
在又一个示例方面,这些方法可以以处理器可执行指令的形式体现,并被存储在计算机可读程序介质上。
在本文档中进一步描述了这些和其他方面。
附图说明
图1示出了Merge候选列表构建的推导过程。
图2示出了空域Merge候选的位置的示例。
图3示出了考虑用于空域Merge候选的冗余检查的候选对的示例。
图4示出了N×2N和2N×N分割的第二PU的示例位置。
图5示出了时域Merge候选的运动矢量缩放的图示的示例。
图6示出了时域Merge候选C0和C1的候选位置的示例。
图7示出了组合双向预测Merge候选的示例。
图8示出了运动矢量预测候选的推导过程的示例。
图9示出了空域运动矢量候选的运动矢量缩放的示例图示。
图10示出了4参数仿射模式(左)和6参数仿射模型(右)的示例简化仿射运动模型。
图11示出了每个子块的仿射运动矢量场的示例。
图12示出了仿射Merge模式的示例候选位置。
图13示出了修改的Merge列表构建过程的示例。
图14示出了基于三角形分割的帧间预测的示例。
图15示出了应用第一加权因子组的CU的示例。
图16示出了运动矢量存储的示例。
图17示出了最终运动矢量表达(UMVE)搜索过程的示例。
图18示出了UMVE搜索点的示例。
图19示出了DMVR中在列表0和列表1之间镜像的MVD(0,1)的示例
图20示出了可以在一次迭代中检查的MV。
图21是帧内块复制的示例。
图22是视频处理装置的示例的框图。
图23是视频处理方法的示例的流程图。
图24是所公开的技术可以被实施的示例视频处理系统的框图。
图25是根据本技术的用于视频处理的方法的流程图表示。
图26是根据本技术的用于视频处理的另一方法的流程图表示。
图27是根据本技术的用于视频处理的另一方法的流程图表示。
图28是根据本技术的用于视频处理的又一方法的流程图表示。
具体实施方式
本文档提供了图像或视频比特流的解码器可以使用的各种技术,以提高解压缩或解码的数字视频或图像的质量。为简洁起见,术语“视频”在本文用于包括图片序列(传统上称为视频)和单独图像。此外,视频编码器也可以在编码过程期间实施这些技术,以便重构用于进一步编码的解码帧。
为了便于理解,在本文档中使用了章节标题,并且不将实施例和技术限制于对应章节。这样,来自一个章节的实施例可以与来自其他章节的实施例组合。
1.摘要
本文档与视频编解码技术有关。具体地,它与帧内块复制(又名当前图片参考,CPR)编解码有关。它可以被应用于现有的视频编解码标准(如HEVC)、或要最终确定的标准(多功能视频编解码)。它也可以适用于未来的视频编解码标准或视频编解码器。
2.背景
视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展而演变的。ITU-T产生了H.261和H.263,ISO/IEC产生了MPEG-1和MPEG-4Visual,并且这两个组织联合产生了H.262/MPEG-2视频和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)之间的联合视频专家小组(Joint Video Expert Team,JVET)以致力于VVC标准,目标是与HEVC相比的50%比特率降低。
2.1HEVC/H.265中的帧间预测
对于帧间编解码的编解码单元(CU),它可以根据分割模式用一个预测单元(PU)、2个PU进行编解码。每个帧间预测PU具有一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。对两个参考图片列表之一的使用也可以使用inter_pred_idc进行信令通知。运动矢量可以被显示地编解码为相对于预测值的增量。
当以跳过模式对CU进行编解码时,一个PU与CU相关联,并且没有显著的残差系数,没有编解码的运动矢量增量或参考图片索引。指定了Merge模式,由此从包括空域和时域候选的邻近PU获得当前PU的运动参数。Merge模式可以被应用于任何帧间预测PU,而不仅是针对跳过模式。Merge模式的替代方案是运动参数的显式传输,其中,运动矢量(更确切地说,与运动矢量预测值相比的运动矢量差(Motion Vector Difference,MVD))、每个参考图片列表的对应参考图片索引和参考图片列表使用按每PU被显式地信令通知。这样的模式在本公开中被命名为高级运动矢量预测(Advanced Motion VectorPrediction,AMVP)。
当信令指示要使用两个参考图片列表之一时,从一个样点块产生PU。这被称为“单向预测”。单向预测适用于P条带和B条带两者。
当信令指示要使用两个参考图片列表时,从两个样点块产生PU。这被称为“双向预测”。双向预测仅适用于B条带。
2.1.1参考图片列表
在HEVC中,术语帧间预测用于表示从除当前解码的图片之外的参考图片的数据元素(例如,样点值或运动矢量)推导的预测。如在H.264/AVC中,可以从多个参考图片预测图片。用于帧间预测的参考图片被组织在一个或多个参考图片列表中。参考索引标识列表中的哪个参考图片应该用于创建预测信号。
单个参考图片列表(列表0)用于P条带,并且两个参考图片列表(列表0和列表1)用于B条带。应该注意的是,列表0/1中包括的参考图片在捕捉/显示顺序方面可以来自过去和将来的图片。
2.1.2Merge模式
2.1.2.1Merge模式的候选的推导
当使用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)时生成附加候选。由于候选数量是恒定的,所以最佳Merge候选的索引使用截断一元二值化(Truncated Unary,TU)进行编码。如果CU的尺寸等于8,则当前CU的所有PU共享单个Merge候选列表,这与2N×2N预测单元的Merge候选列表相同。
在下文中,详细描述了与前述步骤相关联的操作。
2.1.2.2空域候选推导
在空域Merge候选的推导中,从位于图2中描绘的位置的候选当中选择最多四个Merge候选。推导的顺序是A1、B1、B0、A0和B2。仅当位置A1、B1、B0、A0的任一PU不可用(例如,因为它属于另一条带或片)或是帧内编解码的时,才考虑位置B2。在位置A1处的候选被添加之后,对剩余候选的添加进行冗余检查,该冗余检查确保具有相同运动信息的候选被排除在列表之外,从而提高编解码效率。为了降低计算复杂度,在提到的冗余检查中不考虑所有可能的候选对。相反,仅考虑在图3中用箭头链接的对,并且仅当用于冗余检查的候选没有相同的运动信息时,才向列表添加对应候选。重复运动信息的另一源是与不同于2N×2N的分区相关联的“第二PU”。作为示例,图4描绘了N×2N和2N×N的情况的第二PU。当当前PU被分割为N×2N时,位置A1处的候选不被考虑用于列表构建。事实上,通过添加该候选将导致两个预测单元具有相同的运动信息,这对于在编解码单元中仅具有一个PU是冗余的。类似地,当当前PU被分割为2N×N时,不考虑位置B1
2.1.2.3时域候选推导
在该步骤中,只有一个候选被添加到列表中。具体地,在该时域Merge候选的推导中,基于并置图片中的并置PU来推导缩放的运动矢量。在条带头中显示地信令通知将用于并置PU的推导的参考图片列表。如图5中的虚线所示获得时域Merge候选的缩放运动矢量,该运动矢量是使用POC距离tb和td从并置PU的运动矢量缩放的,其中tb被定义为当前图片的参考图片和当前图片之间的POC差,td被定义为并置图片的参考图片和并置图片之间的POC差。时域Merge候选的参考图片索引被设置为零。在HEVC规范中描述了缩放过程的实际实现。对于B条带,获得两个运动矢量,一个用于参考图片列表0,另一个用于参考图片列表1,并将其组合以形成双向预测Merge候选。
2.1.2.4并置图片和并置PU
当TMVP被启用时(例如,slice_temporal_mvp_enabled_flag等于1),表示并置图片的变量ColPic被推导如下:
-如果当前条带是B条带,并且信令通知的collocated_from_l0_flag等于0,则ColPic被设置为等于RefPicList1[collocated_ref_idx]。
-否则(slice_type等于B,并且collocated_from_l0_flag等于1,或者slice_type等于P),ColPic被设置为等于RefPicList0[collocated_ref_idx]。
这里,collocated_ref_idx和collocated_from_l0_flag是可以在条带头中信令通知的两个语法元素。
如图6所描绘的,在属于参考帧的并置PU(Y)中,在候选C0和C1之间选择时域候选的位置。如果位置C0处的PU不可用、是帧内编解码的或在当前编解码树单元(CTU,又名LCU,最大编解码单元)行之外,则使用位置C1。否则,在时域Merge候选的推导中使用位置C0
相关语法元素描述如下:
7.3.6.1通用条带段头语法
2.1.2.5TMVP候选的MV的推导
更具体地,执行以下步骤以推导TMVP候选:
(1)设置参考图片列表X=0,目标参考图片为列表X中索引等于0的参考图片(例如,curr_ref)。调用并置运动矢量的推导过程,以得到列表X指向curr_ref的MV。
(2)如果当前条带是B条带,设置参考图片列表X=1,目标参考图片为列表X中索引等于0的参考图片(例如,curr_ref)。调用并置运动矢量的推导过程,以得到列表X指向curr_ref的MV。
并置运动矢量的推导过程在下一小节中描述。
2.1.2.5.1并置运动矢量的推导过程
对于并置块,可以用单向预测或双向预测对其进行帧内或帧间编解码。如果它被帧内编解码,则TMVP候选被设置为不可用。
如果是来自列表A的单向预测,则列表A的运动矢量被缩放到目标参考图片列表X。
如果是双向预测,并且目标参考图片列表为X,则列表A的运动矢量被缩放到目标参考图片列表X,并且根据以下规则确定A:
-如果与当前图片相比,没有参考图片具有更大的POC值,则A被设置为等于X。
-否则,A被设置为等于collocated_from_l0_flag。
一些相关描述被包括如下:
8.5.3.2.9并置运动矢量的推导过程
该过程的输入为:
-变量currPb,指定当前预测块,
-变量colPb,指定由ColPic指定的并置图片内的并置预测块,
-亮度位置(xColPb,yColPb),指定由colPb指定的并置亮度预测块相对于由ColPic指定的并置图片的左顶部亮度样点的左顶部样点,
-参考索引refIdxLX,其中X为0或1。
该过程的输出为:
-运动矢量预测mvLXCol,
-可用性标志availableFlagLXCol。
变量currPic指定当前图片。
阵列predFlagL0Col[x][y]、mvL0Col[x][y]和refIdxL0Col[x][y]分别被设置为等于由ColPic指定的并置图片的PredFlagL0[x][y]、MvL0[x][y]和RefIdxL0[x][y],并且阵列predFlagL1Col[x][y]、mvL1Col[x][y]和refIdxL1Col[x][y]分别被设置为等于由ColPic指定的并置图片的PredFlagL1[x][y]、MvL1[x][y]和RefIdxL1[x][y]。
变量mvLXCol和availableFlagLXCol被推导如下:
-如果在帧内预测模式下对colPb进行编解码,则mvLXCol的两个分量都被设置为等于0,并且availableFlagLXCol被设置为等于0。
-否则,运动矢量mvCol、参考索引refIdxCol和参考列表标识符listCol被推导如下:
-如果predFlagL0Col[xColPb][yColPb]等于0,则mvCol、refIdxCol和listCol分别被设置为等于mvL1Col[xColPb][yColPb]、refIdxL1Col[xColPb][yColPb]和L1。
-否则,如果predFlagL0Col[xColPb][yColPb]等于1,并且predFlagL1Col[xColPb][yColPb]等于0,则mvCol、refIdxCol和listCol分别被设置为等于mvL0Col[xColPb][yColPb]、refIdxL0Col[xColPb][yColPb]和L0。
-否则(predFlagL0Col[xColPb][yColPb]等于1,并且predFlagL1Col[xColPb][yColPb]等于1),进行以下赋值:
-如果NoBackwardPredFlag等于1,则mvCol、refIdxCol和listCol分别被设置为等于mvLXCol[xColPb][yColPb]、refIdxLXCol[xColPb][yColPb]和LX。
-否则,mvCol、refIdxCol和listCol分别被设置为等于mvLNCol[xColPb][yColPb]、refIdxLNCol[xColPb][yColPb]和LN,其中N是collocated_from_l0_flag的值。
并且mvLXCol和availableFlagLXCol被推导如下:
-如果LongTermRefPic(currPic,currPb,refIdxLX,LX)不等于LongTermRefPic(ColPic,colPb,refIdxCol,listCol),则mvLXCol的两个分量都被设置为等于0,并且availableFlagLXCol被设置为等于0。
-否则,变量availableFlagLXCol被设置为等于1,refPicListCol[refIdxCol]被设置为包含由ColPic指定的并置图片中的预测块colPb的条带的参考图片列表listCol中具有参考索引refIdxCol的图片,并且以下适用:
colPocDiff=DiffPicOrderCnt(ColPic,refPicListCol[refIdxCol]) (2-1)
currPocDiff=DiffPicOrderCnt(currPic,RefPicListX[refIdxLX]) (2-2)
-如果RefPicListX[refIdxLX]是长期参考图片,或者colPocDiff等于currPocDiff,则mvLXCol被推导如下:
mvLXCol=mvCol (2-3)
-否则,mvLXCol被推导为运动矢量mvCol的缩放版本,如下所示:
tx=(16384+(Abs(td)>>1))/td (2-4)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (2-5)
mvLXCol=Clip3(-32768,32767,Sign(distScaleFactor*mvCol)*((Abs(distScaleFactor*mvCol)+127)>>8)) (2-6)
其中td和tb被推导如下:
td=Clip3(-128,127,colPocDiff) (2-7)
tb=Clip3(-128,127,currPocDiff) (2-8)
NoBackwardPredFlag的定义为:
变量NoBackwardPredFlag被推导如下:
-如果当前条带的RefPicList0或RefPicList1中的每个图片aPic的DiffPicOrderCnt(aPic,CurrPic)小于或等于0,则NoBackwardPredFlag被设置为等于1。
-否则,NoBackwardPredFlag被设置为等于0。
2.1.2.6附加候选插入
除了空时Merge候选以外,还有两种附加类型的Merge候选:组合的双向预测Merge候选和零Merge候选。组合的双向预测Merge候选通过利用空时Merge候选而生成。组合的双向预测Merge候选仅用于B条带。组合的双向预测候选通过将初始候选的第一参考图片列表运动参数与另一个的第二参考图片列表运动参数进行组合而生成。如果这两个元组提供不同的运动假设,它们将形成新的双向预测候选。作为示例,图7描绘了原始列表(在左侧)中的具有mvL0和refIdxL0或mvL1和refIdxL1的两个候选用于创建添加到最终列表(在右侧)的组合的双向预测Merge候选的情况。有被考虑以生成这些附加Merge候选的关于组合的许多规则。
零运动候选被插入以填充Merge候选列表中的剩余条目,并因此达到MaxNumMergeCand容量。这些候选具有零空域位移和参考图片索引,该参考图片索引从零开始,并且每当新的零运动候选被添加到该列表时就增加。最后,不对这些候选执行冗余检查。
2.1.3AMVP
AMVP利用运动矢量与邻近PU的空时相关性,其用于运动参数的显式传输。对于每个参考图片列表,通过首先检查左侧、上方时域邻近PU位置的可用性、移除冗余候选、以及添加零矢量以使候选列表为恒定长度,构建运动矢量候选列表。然后,编码器可以从候选列表选择最佳预测值,并发送指示所选择的候选的对应索引。类似于Merge索引信令,最佳运动矢量候选的索引使用截断一元编码。在这种情况下,要编码的最大值是2(参见图8)。在以下章节中,提供了关于运动矢量预测候选的推导过程的细节。
2.1.3.1AMVP候选的推导
图8总结了运动矢量预测候选的推导过程。
在运动矢量预测中,考虑两种类型的运动矢量候选:空域运动矢量候选和时域运动矢量候选。对于空域运动矢量候选推导,基于位于如图2所描绘的五个不同位置的每个PU的运动矢量来最终推导两个运动矢量候选。
对于时域运动矢量候选推导,从两个候选选择一个运动矢量候选,这两个候选是基于两个不同的并置位置而推导的。在生成第一个空时候选列表之后,移除列表中的重复运动矢量候选。如果潜在候选的数量大于2,则从相关联的参考图片列表移除列表内参考图片索引大于1的运动矢量候选。如果空时运动矢量候选的数量小于两个,则将附加的零运动矢量候选添加到列表中。
2.1.3.2空域运动矢量候选
在空域运动矢量候选的推导中,在五个潜在候选当中考虑最多两个候选,这五个潜在候选是从位于如图2所描绘的位置的PU推导的,这些位置与运动Merge的位置相同。当前PU左侧的推导顺序被定义为A0、A1和缩放的A0、缩放的A1。当前PU的上方的推导顺序被定义为B0、B1、B2、缩放的B0、缩放的B1、缩放的B2。因此,对于每一侧,有四种情况可以用作运动矢量候选,其中两种情况不需要使用空域缩放,并且两种情况使用空域缩放。这四种不同的情况总结如下:
*无空域缩放
(1)相同的参考图片列表和相同的参考图片索引(相同的POC)
(2)不同的参考图片列表但相同的参考图片(相同的POC)
*空域缩放
(3)相同的参考图片列表但不同的参考图片(不同的POC)
(4)不同的参考图片列表和不同的参考图片(不同的POC)
首先检查无空域缩放情况,随后检查空域缩放。不管参考图片列表如何,当邻近PU的参考图片和当前PU的参考图片之间的POC不同时,考虑空域缩放。如果左侧候选的所有PU都不可用或者是帧内编解码的,则允许对上方运动矢量进行缩放,以帮助左侧和上方MV候选的并行推导。否则,不允许对上方运动矢量进行空域缩放。
如图9所描绘的,在空域缩放过程中,以与时域缩放类似的方式缩放邻近PU的运动矢量。主要差别在于,参考图片列表和当前PU的索引作为输入被给出;实际缩放过程与时域缩放的缩放过程相同。
2.1.3.3时域运动矢量候选
除了参考图片索引推导以外,用于推导时域Merge候选的所有过程与用于推导空域运动矢量候选的过程相同(参见图6)。参考图片索引被信令通知给解码器。
2.2VVC中的帧间预测方法
有几种用于帧间预测改进的新编解码工具,诸如用于信令通知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列表构建过程。这里,可以按顺序插入空域/时域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.1VVC中的编解码块结构
在VVC中,采用四叉树/二叉树/三叉树(QT/BT/TT)结构将图片分为正方形或矩形块。
除了QT/BT/TT以外,单独树(又名双编解码树)在VVC中也用于I帧。在单独树的情况下,编解码块结构是针对亮度和色度分量而分开信令通知的。
此外,除了用几个特定编解码方法进行编解码的块(诸如,帧内子分割预测,其中PU等于TU但小于CU,以及帧间编解码块的子块变换,其中PU等于CU但TU小于PU)之外,CU被设置为等于PU和TU。
2.2.2仿射预测模式
在HEVC中,只有平移运动模型被应用于运动补偿预测(MotionCompensationPrediction,MCP)。虽然在真实世界中,有许多种类的运动,例如放大/缩小、旋转、透视运动和其它不规则运动。在VVC中,使用4参数仿射模型和6参数仿射模型来应用简化的仿射变换运动补偿预测。如图10所示,块的仿射运动场由4参数仿射模型的两个控制点运动矢量(CPMV)和6参数仿射模型的3个CPMV描述。
块的运动矢量场(MVF)分别用等式(1)中的4参数仿射模型(其中4参数被定义为变量a、b、e和f)和等式(2)中的6参数仿射模型(其中4参数被定义为变量a、b、c、d、e和f)通过以下等式进行描述:
其中(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中为4×4),利用代表点来推导整个子块的运动矢量。
为了进一步简化运动补偿预测,应用了基于子块的仿射变换预测。为了推导每个M×N(在当前VVC中,M和N都被设置为4)子块的运动矢量,每个子块的中心样点的运动矢量(如图11所示)可以根据等式(1)和(2)进行计算,并被取整到1/16分数精度。然后,可以应用1/16像素的运动补偿插值滤波器来生成具有推导的运动矢量的每个子块的预测。仿射模式引入了1/16像素的插值滤波器。
在MCP之后,每个子块的高精度运动矢量被取整并保存为与标准运动矢量相同的精度。
2.2.3整个块的Merge
2.2.3.1平移常规Merge模式的Merge表构建
2.2.3.1.1基于历史的运动矢量预测(HMVP)
与Merge列表设计不同,在VVC中,采用了基于历史的运动矢量预测(HMVP)方法。
在HMVP中,存储先前编解码的运动信息。先前编解码块的运动信息被定义为HMVP候选。多个候选HMVP被存储在名为HMVP表的表中,并且该表在编码/解码过程期间动态保持。当开始对新片/LCU行/条带进行编解码/解码时,HMVP表被清空。每当存在帧间编解码块和非子块、非TPM模式时,相关联的运动信息被添加到表的最后一个条目作为新的HMVP候选。图12中描绘了整个编解码流程。
2.2.3.1.2常规Merge列表构建过程
常规Merge列表(用于平移运动)的构建可以根据以下步骤顺序进行总结:
步骤1:推导空域候选
步骤2:插入HMVP候选
步骤3:插入成对平均候选
步骤4:默认运动候选
HMVP候选可以用于AMVP和Merge候选列表构建过程。图13描绘了修改的Merge候选列表构建过程。当在TMVP候选插入之后Merge候选列表未满时,存储在HMVP表中的HMVP候选可以用于填充Merge候选列表。考虑到就运动信息而言,一个块通常与最近的邻近块具有较高的相关性,表中的HMVP候选以索引的降序插入。表中的最后一个条目首先被添加到列表,而第一个条目被添加到最后。类似地,冗余移除也被应用于HMVP候选。一旦可用Merge候选的总数达到允许信令通知的Merge候选的最大数量,Merge候选列表构建过程就终止。
请注意,所有空域/时域/HMVP候选都应当以非IBC模式进行编解码。否则,不允许将其添加到常规Merge候选列表。
HMVP表包含多达5个常规运动候选,并且它们中的每一个都是唯一的。
2.2.3.1.2.1修剪过程
如果用于冗余检查的对应候选不具有相同的运动信息时,则候选仅被添加到列表。这样的比较过程称为修剪过程。
空域候选当中的修剪过程取决于对当前块的TPM的使用。
当当前块不以TPM模式(例如,常规Merge、MMVD、CIIP)进行编解码时,利用空域Merge候选的HEVC修剪过程(例如,五修剪)。
2.2.4三角形预测模式
在VVC中,对于帧间预测支持三角形分割模式。三角形分割模式仅应用于8x8或更大的并且在Merge模式下但不在MMVD或CIIP模式下编解码的CU。对于满足这些条件的CU,信令通知CU级别标志,以指示是否应用三角形分割模式。
当使用该模式时,使用对角线划分或反对角线划分,CU被均匀地划分为两个三角形分割,如图14所描绘的。CU中的每个三角形分割都是使用其自身的运动进行帧间预测的;对于每个分割仅允许单向预测,也就是说,每个分割具有一个运动矢量和一个参考索引。应用单向预测运动约束以确保与传统双向预测相同,对于每个CU仅需要两个运动补偿预测。
如果CU级别标志指示当前CU使用三角形分割模式进行编解码,则指示三角形分割方向(对角线或反对角线)的标志和两个Merge索引(每个分割一个)被进一步信令通知。在预测每个三角形分割之后,使用具有自适应权重的融合(blend)处理来调整沿着对角线或反对角线边缘的样点值。这是整个CU的预测信号,并且变换和量化过程将像在其他预测模式下一样应用于整个CU。最后,使用三角形分割模式预测的CU的运动场以4x4单元存储。
常规Merge候选列表重用于三角形分割Merge预测,而没有额外的运动矢量修剪。对于常规Merge候选列表中的每个Merge候选,其L0或L1运动矢量中的一个且仅一个用于三角形预测。此外,选择L0对L1运动矢量的顺序基于其Merge索引奇偶性。利用该方案,可以直接使用常规Merge列表。
2.2.4.1TPM的Merge列表构建过程
在一些实施例中,常规Merge列表构建过程可以包括以下修改:
(1)如何进行修剪过程取决于对当前块的TPM的使用
-如果当前块没有用TPM编解码,则调用应用于空域Merge候选的HEVC5修剪
-否则(如果当前块用TPM编解码),在添加新的空域Merge候选时将应用完全修剪。也就是说,B1与A1进行比较;B0与A1和B1进行比较;A0与A1、B1和B0进行比较;B2与A1、B1、A0和B0进行比较。
(2)是否检查来自B2的运动信息的条件取决于对当前块的TPM的使用
-如果当前块没有用TPM编解码,则在检查B2之前,只有当存在少于4个空域Merge候选时,才会访问和检查B2。
-否则(如果当前块用TPM编解码),在添加B2之前,无论有多少可用的空域Merge候选,都始终访问和检查B2。
2.2.4.2自适应加权过程
在预测每个三角形预测单元之后,将自适应加权过程应用于两个三角形预测单元之间的对角线边缘,以推导整个CU的最终预测。两个加权因子组被定义如下:
第1加权因子组:{7/8,6/8,4/8,2/8,1/8}和{7/8,4/8,1/8}分别用于亮度和色度样点;
第2加权因子组:{7/8,6/8,5/8,4/8,3/8,2/8,1/8}和{6/8,4/8,2/8}分别用于亮度和色度样点。
基于两个三角形预测单元的运动矢量的比较来选择加权因子组。当以下条件中的任何一个为真时,使用第二加权因子组:
-两个三角形预测单元的参考图片彼此不同
-两个运动矢量的水平值之差的绝对值大于16个像素。
-两个运动矢量的垂直值之差的绝对值大于16个像素。
否则,使用第一加权因子组。图15中示出了示例。
2.2.4.3运动矢量存储
三角形预测单元的运动矢量(图16中的Mv1和Mv2)存储在4×4网格中。对于每个4×4网格,取决于4×4网格在CU中的位置,存储单向预测运动矢量或双向预测运动矢量。如图16所示,为位于非加权区域(即,不位于对角线边缘)的4×4网格存储单向预测运动矢量Mv1或Mv2。另一方面,为位于加权区域的4×4网格存储双向预测运动矢量。双向预测运动矢量根据以下规则从Mv1和Mv2中推导:
(1)在Mv1和Mv2具有来自不同方向(L0或L1)的运动矢量的情况下,Mv1和Mv2被简单地组合以形成双向预测运动矢量。
(2)在Mv1和Mv2都来自相同的L0(或L1)方向的情况下,
-如果Mv2的参考图片与L1(或L0)参考图片列表中的图片相同,则Mv2被缩放到该图片。Mv1和缩放的Mv2被组合以形成双向预测运动矢量。
-如果Mv1的参考图片与L1(或L0)参考图片列表中的图片相同,则Mv1被缩放到该图片。缩放的Mv1和Mv2被组合以形成双向预测运动矢量。
-否则,对于加权区域只存储Mv1。
2.2.4.4Merge模式的语法表、语义和解码过程
添加的改变以下划线粗体斜体突出显示。删除部分用[[]]标记。
7.3.5.1通用条带头语法
/>
7.3.7.5编解码单元语法
/>
7.3.7.7Merge数据语法
/>
7.4.6.1通用条带头语义
six_minus_max_num_merge_cand指定从6减去的条带中支持的Merge运动矢量预测(MVP)候选的最大数量。Merge MVP候选的最大数量MaxNumMergeCand被推导如下:
MaxNumMergeCand=6-six_minus_max_num_merge_cand (7-57)
MaxNumMergeCand的值应当在1至6(含)的范围内。
five_minus_max_num_subblock_merge_cand指定从5减去的条带中支持的基于子块的Merge运动矢量预测(MVP)候选的最大数量。当five_minus_max_num_subblock_merge_cand不存在时,它被推断为等于5-sps_sbtmvp_enabled_flag。基于子块的Merge MVP候选的最大数量MaxNumSubblockMergeCand被推导如下:
MaxNumSubblockMergeCand=5-five_minus_max_num_subblock_merge_cand (7-58)
MaxNumSubblockMergeCand的值应当在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条带时,pred_mode_flag被推断为等于0。
对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,变量CuPredMode[x][y]被推导如下:
-如果pred_mode_flag等于0,则CuPredMode[x][y]被设置为等于MODE_INTER。
-否则(pred_mode_flag等于1),CuPredMode[x][y]被设置为等于MODE_INTRA。
等于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]根据表7-10指定列表0、列表1还是双向预测用于当前编解码单位。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
表7-10–帧间预测模式的名称关联
当inter_pred_idc[x0][y0]不存在时,其被推断为等于PRED_L0。
7.4.8.7Merge数据语义
等于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]指定Merge候选列表中的第一(0)或第二(1)候选是否与从mmvd_distance_idx[x0][y0]和mmvd_direction_idx[x0][y0]推导的运动矢量差一起使用。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当mmvd_cand_flag[x0][y0]不存在时,其被推断为等于0。
mmvd_distance_idx[x0][y0]指定用于推导如表7-12指定的MmvdDistance[x0][y0]的索引。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
表7-12–基于mmvd_distance_idx[x0][y0]的MmvdDistance[x0][y0]的规范
mmvd_direction_idx[x0][y0]指定用于推导如表7-13指定的MmvdSign[x0][y0]的索引。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
表7-13–基于mmvd_direction_idx[x0][y0]的MmvdSign[x0][y0]的规范
mmvd_direction_idx[x0][y0] MmvdSign[x0][y0][0] MmvdSign[x0][y0][1]
0 +1 0
1 -1 0
2 0 +1
3 0 -1
Merge的两个分量加上MVD偏移MmvdOffset[x0][y0]被推导如下:
MmvdOffset[x0][y0][0]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][0] (7-124)
MmvdOffset[x0][y0][1]=(MmvdDistance[x0][y0]<<2)*MmvdSign[x0][y0][1] (7-125)
merge_subblock_flag[x0][y0]指定当前编解码单元的基于子块的帧间预测参数是否是从邻近块推断的。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。当merge_subblock_flag[x0][y0]不存在时,其被推断为等于0。
merge_subblock_idx[x0][y0]指定基于子块的Merge候选列表的Merge候选索引,其中x0,y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当merge_subblock_idx[x0][y0]不存在时,其被推断为等于0。
ciip_flag[x0][y0]指定组合的帧间图片Merge和帧内图片预测是否被应用于当前编解码单元。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当ciip_flag[x0][y0]不存在时,其被推断为等于0。
当ciip_flag[x0][y0]等于1时,变量IntraPredModeY[x][y](其中x=xCb..xCb+cbWidth-1并且y=yCb..yCb+cbHeight-1)被设置为等于INTRA_PLANAR。
变量MergeTriangleFlag[x0][y0](其指定解码B条带时,基于三角形形状的运动补偿是否用于生成当前编解码单元的预测样点)被推导如下:
-如果所有以下条件都为真,则MergeTriangleFlag[x0][y0]被设置为等于1:
-sps_triangle_enabled_flag等于1。
-slice_type等于B。
-general_merge_flag[x0][y0]等于1。
-MaxNumTriangleMergeCand大于或等于2。
-cbWidth*cbHeight大于或等于64。
-regular_merge_flag[x0][y0]等于0。
-mmvd_merge_flag[x0][y0]等于0。
-merge_subblock_flag[x0][y0]等于0。
-ciip_flag[x0][y0]等于0。
-否则,MergeTriangleFlag[x0][y0]被设置为等于0。
merge_triangle_split_dir[x0][y0]指定Merge三角形模式的划分方向。阵列索引x0、y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当merge_triangle_split_dir[x0][y0]不存在时,其被推断为等于0。
merge_triangle_idx0[x0][y0]指定基于三角形形状的运动补偿候选列表的第一Merge候选索引,其中x0,y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当merge_triangle_idx0[x0][y0]不存在时,其被推断为等于0。
merge_triangle_idx1[x0][y0]指定基于三角形形状的运动补偿候选列表的第二Merge候选索引,其中x0,y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当merge_triangle_idx1[x0][y0]不存在时,其被推断为等于0。
merge_idx[x0][y0]指定Merge候选列表的Merge候选索引,其中x0,y0指定所考虑的编解码块的左顶部亮度样点相对于图片的左顶部亮度样点的位置(x0,y0)。
当merge_idx[x0][y0]不存在时,其被推断如下:
-如果mmvd_merge_flag[x0][y0]等于1,则merge_idx[x0][y0]被推断为等于mmvd_cand_flag[x0][y0]。
-否则(mmvd_merge_flag[x0][y0]等于0),merge_idx[x0][y0]被推断为等于0。
2.2.4.4.1解码过程
在一些实施例中,解码过程被定义如下:
8.5.2.2Merge模式的亮度运动矢量的推导过程
仅当general_merge_flag[xCb][yCb]等于1时,才调用该过程,其中(xCb,yCb)指定当前亮度编解码块相对于当前图片的左顶部亮度样点的左顶部样点。
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度运动矢量mvL0[0][0]和mvL1[0][0],
-参考索引refIdxL0和refIdxL1,
-预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0],
-双向预测权重索引bcwIdx,
-Merge候选列表mergeCandList。
双向预测权重索引bcwIdx被设置为等于0。
运动矢量mvL0[0][0]和mvL1[0][0]、参考索引refIdxL0和refIdxL1以及预测利用标志predFlagL0[0][0]和predFlagL1[0][0]通过以下有序步骤推导:
1.调用如条款8.5.2.4所指定的来自邻近编解码单元的空域Merge候选的推导过程,其中以亮度编解码块位置(xCb,yCb)、亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,并且输出为可用性标志availableFlagA0、availableFlagA1、availableFlagB0、availableFlagB1和availableFlagB2、参考索引refIdxLXA0、refIdxLXA1、refIdxLXB0、refIdxLXB1和refIdxLXB2、预测列表利用标志predFlagLXA0、predFlagLXA1、predFlagLXB0、predFlagLXB1和predFlagLXB2、运动矢量mvLXA0、mvLXA1、mvLXB0、mvLXB1和mvLXB2(其中X为0或1)、以及双向预测权重索引bcwIdxA0、bcwIdxA1、bcwIdxB0、bcwIdxB1、bcwIdxB2
2.时域Merge候选Col的参考索引refIdxLXCol(其中X为0或1)和双向预测权重索引bcwIdxCol被设置为等于0。
3.调用如条款8.5.2.11所指定的时域亮度运动矢量预测的推导过程,其中以亮度位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight和变量refIdxL0Col作为输入,并且输出为可用性标志availableFlagL0Col和时域运动矢量mvL0Col。变量availableFlagCol、predFlagL0Col和predFlagL1Col被推导如下:
availableFlagCol=availableFlagL0Col (8-263)
predFlagL0Col=availableFlagL0Col (8-264)
predFlagL1Col=0 (8-265)
4.当slice_type等于B时,调用如条款8.5.2.11所指定的时域亮度运动矢量预测的推导过程,其中以亮度位置(xCb,yCb)、亮度编解码块宽度cbWidth、亮度编解码块高度cbHeight和变量refIdxL1Col作为输入,并且输出为可用性标志availableFlagL1Col和时域运动矢量mvL1Col。变量availableFlagCol和predFlagL1Col被推导如下:
availableFlagCol=availableFlagL0Col||availableFlagL1Col (8-266)
predFlagL1Col=availableFlagL1Col (8-267)
5.Merge候选列表mergeCandList的构建如下:
i=0
if(availableFlagA1)
mergeCandList[i++]=A1
if(availableFlagB1)
mergeCandList[i++]=B1
if(availableFlagB0)
mergeCandList[i++]=B0 (8-268)
if(availableFlagA0)
mergeCandList[i++]=A0
if(availableFlagB2)
mergeCandList[i++]=B2
if(availableFlagCol)
mergeCandList[i++]=Col
6.变量numCurrMergeCand和numOrigMergeCand被设置为等于mergeCandList中的Merge候选的数量。
7.当numCurrMergeCand小于(MaxNumMergeCand-1)并且NumHmvpCand大于0时,以下适用:
-调用如8.5.2.6中指定的基于历史的Merge候选的推导过程,其中以mergeCandList和numCurrMergeCand作为输入,并且以修改的mergeCandList和numCurrMergeCand作为输出。
-numOrigMergeCand被设置为等于numCurrMergeCand。
8.当numCurrMergeCand小于MaxNumMergeCand且大于1时,以下适用:
-调用如条款8.5.2.4所指定的成对平均Merge候选的推导过程,其中以mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表利用标志predFlagL0N和predFlagL1N、mergeCandList中的每个候选N的运动矢量mvL0N和mvL1N、以及numCurrMergeCand作为输入,并且输出被赋值给mergeCandList、numCurrMergeCand、参考索引refIdxL0avgCand和refIdxL1avgCand、预测列表利用标志predFlagL0avgCand和predFlagL1avgCand、以及被添加到mergeCandList中的候选avgCand的运动矢量mvL0avgCand和mvL1avgCand。被添加到mergeCandList中的候选avgCand的双向预测权重索引bcwIdx被设置为等于0。
-numOrigMergeCand被设置为等于numCurrMergeCand。
9.调用如条款8.5.2.5所指定的零运动矢量Merge候选的推导过程,其中以mergeCandList、参考索引refIdxL0N和refIdxL1N、预测列表利用标志predFlagL0N和predFlagL1N、mergeCandList中的每个候选N的运动矢量mvL0N和mvL1N、以及numCurrMergeCand作为输入,并且输出被赋值给mergeCandList、numCurrMergeCand、参考索引refIdxL0zeroCandm和refIdxL1zeroCandm、预测列表利用标志predFlagL0zeroCandm和predFlagL1zeroCandm、以及被添加到mergeCandList中的每个新候选zeroCandm的运动矢量mvL0zeroCandm和mvL1zeroCandm。被添加到mergeCandList中的每个新候选zeroCandm的双向预测权重索引bcwIdx被设置为等于0。被添加的候选的数量numZeroMergeCand被设置为等于(numCurrMergeCand-numOrigMergeCand)。当numZeroMergeCand大于0时,m的范围从0到numZeroMergeCand-1,包括0和numZeroMergeCand-1。
10.进行以下赋值,其中N为Merge候选列表mergeCandList中位置merge_idx[xCb][yCb]处的候选(N=mergeCandList[merge_idx[xCb][yCb]]),并且X被0或1替换:
refIdxLX=refIdxLXN (8-269)
predFlagLX[0][0]=predFlagLXN (8-270)
mvLX[0][0][0]=mvLXN[0] (8-271)
mvLX[0][0][1]=mvLXN[1] (8-272)
bcwIdx=bcwIdxN (8-273)
11.当mmvd_merge_flag[xCb][yCb]等于1时,以下适用:
-调用如8.5.2.7中指定的Merge运动矢量差的推导过程,其中以亮度位置(xCb,yCb)、参考索引refIdxL0、refIdxL1、以及预测列表利用标志predFlagL0[0][0]和predFlagL1[0][0]作为输入,并且以运动矢量差mMvdL0和mMvdL1作为输出。
-运动矢量差mMvdLX被添加到Merge运动矢量mvLX,对于X为0和1,如下所示:
mvLX[0][0][0]+=mMvdLX[0] (8-274)
mvLX[0][0][1]+=mMvdLX[1] (8-275)
mvLX[0][0][0]=Clip3(-217,217-1,mvLX[0][0][0]) (8-276)
mvLX[0][0][1]=Clip3(-217,217-1,mvLX[0][0][1]) (8-277)
2.2.5MMVD
在一些实施例中,呈现最终运动矢量表达(UMVE,也称为MMVD)。UMVE通过运动矢量表达方法用于跳过或Merge模式。
在VVC中,UMVE重用与被包括在常规Merge候选列表中的那些相同的Merge候选。在这些Merge候选当中,可以选择基本候选,并通过运动矢量表达方法被进一步扩展。
UMVE提供了一种新的运动矢量差(MVD)表示方法,其中,用起始点、运动幅度和运动方向来表示MVD。
在一些实施例中,按原样使用Merge候选列表。但是只有默认Merge类型(MRG_TYPE_DEFAULT_N)的候选才被考虑用于UMVE的扩展。
基本候选索引定义了起始点。基本候选索引指示列表中的候选当中的最佳候选,如下所示。
表4.基本候选IDX
基本候选IDX 0 1 2 3
第N MVP 第1MVP 第2MVP 第3MVP 第4MVP
如果基本候选的数量等于1,则基本候选IDX不被信令通知。
距离索引是运动幅度信息。距离索引指示距起始点信息的预定义距离。预定义距离如下所示:
表5.距离IDX
方向索引表示MVD相对于起始点的方向。方向索引可以表示如下所示的四个方向。
表6.方向IDX
方向IDX 00 01 10 11
x轴 + - N/A N/A
y轴 N/A N/A + -
在传送跳过标志或Merge标志之后立即信令通知UMVE标志。如果跳过或Merge标志为真(true),则解析UMVE标志。如果UMVE标志等于1,则解析UMVE语法。但如果不是1,则解析AFFINE(仿射)标志。如果AFFINE标志等于1,即是AFFINE模式,但如果不是1,跳过/Merge索引被解析为VTM的跳过/Merge模式。
不需要由于UMVE候选的附加线缓冲器。因为软件的跳过/Merge候选被直接用作基本候选。使用输入的UMVE索引,在运动补偿之前立即决定MV的补充。没有必要为此保留长的线缓冲器。
在当前的通用测试条件下,可以选择Merge候选列表中的第一个或第二个Merge候选作为基本候选。
UMVE也被称为具有MV差的Merge(MMVD)。
2.2.6组合帧内-帧间预测(CIIP)
在一些实施例中,提出了多假设预测,其中组合帧内和帧间预测是生成多假设的一种方式。
当应用多假设预测来改进帧内模式时,多假设预测组合一个帧内预测和一个Merge索引预测。在Merge CU中,当标志为真时,针对Merge模式信令通知一个标志,以从帧内候选列表中选择帧内模式。对于亮度分量,帧内候选列表仅从一种帧内预测模式(例如,平面模式)推导。从帧内和帧间预测应用于预测块的权重通过两个邻近块(A1和B1)的编解码模式(帧内或非帧内)确定。
2.2.7基于子块的技术的Merge
建议除了非子块Merge候选的常规Merge列表之外,将所有子块相关的运动候选放入单独的Merge列表中。
子块相关的运动候选被放入单独的Merge列表中,其被命名为“子块Merge候选列表”。
在一个示例中,子块Merge候选列表包括ATMVP候选和仿射Merge候选。
子块Merge候选列表按以下顺序填充候选:
1.ATMVP候选(可能可用或不可用);
2.仿射Merge列表(包括继承仿射候选;和构建仿射候选)
3.填充为零MV 4参数仿射模型
2.2.7.1ATMVP(也称为子块时域运动矢量预测值,sbTMVP)
ATMVP的基本思想是为一个块推导多个时域运动矢量预测值集合。每个子块被分配一个运动信息集合。当生成ATMVP Merge候选时,在8×8级别而不是整个块级别进行运动补偿。
在当前的设计中,ATMVP分两步预测CU内的子CU的运动矢量,这将分别在下面的两个子章节中描述。
2.2.7.1.1初始化运动矢量的推导
以tempMv表示初始化运动矢量。当块A1可用并且被非帧内编解码(例如,以帧间或IBC模式进行编解码)时,应用以下来推导初始化运动矢量。
-如果所有以下条件为真,则tempMv被设置为等于来自列表1的块A1的运动矢量,以mvL1A1表示:
-列表1的参考图片索引可用(不等于-1),并且它具有与并置图片相同的POC值(例如,DiffPicOrderCnt(ColPic,RefPicList[1][refIdxL1A1])等于0),
-所有参考图片与当前图片相比没有更大的POC(例如,对于当前条带的每个参考图片列表中的每个图片aPic,DiffPicOrderCnt(aPic,currPic)小于或等于0),
-当前条带等于B条带,
-collocated_from_l0_flag等于0。
-否则,如果所有以下条件为真,则tempMv被设置为等于来自列表0的块A1的运动矢量,以mvL0A1表示:
-列表0的参考图片索引可用(不等于-1),
-它具有与并置图片相同的POC值(例如,DiffPicOrderCnt(ColPic,RefPicList[0][refIdxL0A1])等于0)。
-否则,零运动矢量用作初始化MV。
对应块(具有当前块的中心位置加上取整的MV,必要时被裁剪以在特定范围内)在与初始化运动矢量一起在条带头信令通知的并置图片中被识别。
如果块被帧间编解码,则进入第二步。否则,ATMVP候选被设置为不可用。
2.2.7.1.2子CU运动推导
第二步是将当前CU划分为子CU,并且从并置图片中对应于每个子CU的块中获得每个子CU的运动信息。
如果子CU的对应块以帧间模式进行编解码,则通过调用与传统TMVP过程的过程没有不同的并置运动矢量的推导过程,利用运动信息来推导当前子CU的最终运动信息。基本上,如果从用于单向预测或双向预测的目标列表X预测对应块,则利用运动矢量;否则,如果它从用于单向预测或双向预测的列表Y(Y=1-X)预测,并且NoBackwardPredFlag等于1,则利用列表Y的MV。否则,不能找到运动候选。
如果通过初始化MV和当前子CU的位置识别的并置图片中的块被帧内编解码或IBC编解码,或者如上所述不能找到运动候选,则以下进一步适用:
将用于提取并置图片Rcol中的运动场的运动矢量表示为MVcol。为了最小化由于MV缩放导致的影响,空域候选列表中用于推导MVcol的MV以以下方式选择:如果候选MV的参考图片是并置图片,则选择该MV并将其用作MVcol,而不进行任何缩放。否则,选择具有最接近并置图片的参考图片的MV,以利用缩放推导MVcol
并置运动矢量推导过程的示例解码过程描述如下:
8.5.2.12并置运动矢量的推导过程
该过程的输入为:
-变量currCb,指定当前编解码块,
-变量colCb,指定由ColPic指定的并置图片内部的并置编解码块,
-亮度位置(xColCb,yColCb),指定由ColCb指定的并置亮度编解码块相对于由ColPic指定的并置图片的左顶部亮度样点的左顶部样点,
-参考索引refIdxLX,其中X为0或1,
-标志,指示子块时域Merge候选sbFlag。
该过程的输出为:
-1/16分数样点精度的运动矢量预测,
-可用性标志availableFlagLXCol。
变量currPic指定当前图片。
阵列predFlagL0Col[x][y]、mvL0Col[x][y]和refIdxL0Col[x][y]分别被设置为等于由ColPic指定的并置图片的PredFlagL0[x][y]、MvDmvrL0[x][y]和RefIdxL0[x][y],并且阵列predFlagL1Col[x][y],mvL1Col[x][y]and refIdxL1Col[x][y]分别被设置为等于由ColPic指定的并置图片的PredFlagL1[x][y]、MvDmvrL1[x][y]和RefIdxL1[x][y]。
变量mvLXCol和availableFlagLXCol被推导如下:
-如果以帧内或IBC预测模式对colCb进行编解码,则mvLXCol的两个分量都被设置为0,并且availableFlagLXCol被设置为等于0。
-否则,运动矢量mvCol、参考索引refIdxCol和参考列表标识符listCol被推导如下:
-如果sbFlag等于0,则availableFlagLXCol被设置为1,并且以下适用:
-如果predFlagL0Col[xColCb][yColCb]等于0,则mvCol、refIdxCol和listCol分别被设置为等于mvL1Col[xColCb][yColCb]、refIdxL1Col[xColCb][yColCb]和L1。
-否则,如果predFlagL0Col[xColCb][yColCb]等于1,并且predFlagL1Col[xColCb][yColCb]等于0,则mvCol、refIdxCol和listCol分别被设置为等于mvL0Col[xColCb][yColCb]、refIdxL0Col[xColCb][yColCb]和L0。
-否则(predFlagL0Col[xColCb][yColCb]等于1,并且predFlagL1Col[xColCb][yColCb]等于1),进行以下赋值:
-如果NoBackwardPredFlag等于1,则mvCol、refIdxCol和listCol分别被设置为等于mvLXCol[xColCb][yColCb]、
refIdxLXCol[xColCb][yColCb]和LX。
-否则,mvCol、refIdxCol和listCol分别被设置为等于mvLNCol[xColCb][yColCb]、refIdxLNCol[xColCb][yColCb]和LN,其中N是collocated_from_l0_flag的值。
-否则(sbFlag等于1),以下适用:
-如果PredFlagLXCol[xColCb][yColCb]等于1,则mvCol、refIdxCol和listCol分别被设置为等于mvLXCol[xColCb][yColCb]、refIdxLXCol[xColCb][yColCb]和LX,availableFlagLXCol被设置为1。
-否则(PredFlagLXCol[xColCb][yColCb]等于0),以下适用:
-如果对于当前条带的每个参考图片列表中的每个图片aPic,DiffPicOrderCnt(aPic,currPic)小于或等于0,并且PredFlagLYCol[xColCb][yColCb]等于1,则mvCol、refIdxCol和listCol分别被设置为mvLYCol[xColCb][yColCb]、refIdxLYCol[xColCb][yColCb]和LY,其中Y等于!X,其中X是针对其调用该过程的X的值。availableFlagLXCol被设置为1。
-mvLXCol的两个分量都被设置为0,并且availableFlagLXCol被设置为0。
-当availableFlagLXCol等于TRUE时,mvLXCol和availableFlagLXCol被推导如下:
-如果LongTermRefPic(currPic,currCb,refIdxLX,LX)不等于LongTermRefPic(ColPic,colCb,refIdxCol,listCol),则mvLXCol的两个分量都被设置为等于0,并且availableFlagLXCol被设置为等于0。
-否则,变量availableFlagLXCol被设置为等于1,refPicList[listCol][refIdxCol]被设置为包含由ColPic指定的并置图片中的编解码块colCb的条带的参考图片列表listCol中具有参
考索引refIdxCol的图片,并且以下适用:
colPocDiff=DiffPicOrderCnt(ColPic,refPicList[listCol][refIdxCol]) (8-402)
currPocDiff=DiffPicOrderCnt(currPic,RefPicList[X][refIdxLX]) (8-403)
-调用如条款8.5.2.15所指定的并置运动矢量的时域运动缓冲区压缩过程,其中以mvCol作为输入,并且以修改的mvCol
作为输出。
-如果RefPicList[X][refIdxLX]是长期参考图片,或者colPocDiff等于currPocDiff,则mvLXCol被推导如下:
mvLXCol=mvCol (8-404)
-否则,mvLXCol被推导为运动矢量mvCol的缩放版本,如下所示:
tx=(16384+(Abs(td)>>1))/td (8-405)
distScaleFactor=Clip3(-4096,4095,(tb*tx+32)>>6) (8-406)
mvLXCol=Clip3(-131072,131071,(distScaleFactor*mvCol+128-(distScaleFactor*mvCol>=0))>>8)) (8-407)
其中td和tb被推导如下:
td=Clip3(-128,127,colPocDiff) (8-408)
tb=Clip3(-128,127,currPocDiff) (8-409)
2.2.8运动信息的细化
2.2.8.1解码器侧运动矢量细化(DMVR)
在双向预测操作中,对于一个块区域的预测,分别使用列表0的运动矢量(MV)和列表1的MV形成的两个预测块被组合以形成单个预测信号。在解码器侧运动矢量细化(DMVR)方法中,双向预测的两个运动矢量被进一步细化。
对于VVC中的DMVR,假设在列表0和列表1之间镜像的MVD,如图19所示,并且执行双边匹配以细化MV,例如,在几个MVD候选当中找到最佳MVD。以MVL0(L0X,L0Y)和MVL1(L1X,L1Y)表示两个参考图片列表的MV。列表0的由(MvdX,MvdY)表示的能够最小化代价函数(例如,SAD)的MVD被定义为最佳MVD。对于SAD函数,它被定义为列表0的参考块和列表1的参考块之间的SAD,其中列表0的参考块是用列表0参考图片中的运动矢量(L0X+MvdX,L0Y+MvdY)推导的,列表1的参考块是用列表1参考图片中的运动矢量(L1X-MvdX,L1Y-MvdY)推导的。
运动矢量细化过程可以迭代两次。在每次迭代中,可以以两步检查最多6个MVD(具有整数像素精度),如图20所示。在第一步骤中,检查MVD(0,0)、(-1,0)、(1,0)、(0,-1)、(0,1)。在第二步骤中,可以选择并进一步检查MVD(-1,-1)、(-1,1)、(1,-1)或(1,1)中的一个。假设函数Sad(x,y)返回MVD(x,y)的SAD值。在第二步骤中检查的由(MvdX,MvdY)表示的MVD决定如下:
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的过程,在一些实施例中,所采用的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。
-基于“参数误差曲面方程”的子像素细化。仅当最小SAD代价不等于零并且在最后一次MV细化迭代中最佳MVD为(0,0)时,才执行该过程。
-亮度/色度MC w/参考块填充(如果需要)。
-仅用于MC和TMVP的细化MV。
2.2.8.1.1DMVR的使用
当以下条件全部为真时,可以启用DMVR:
-SPS中的DMVR启用标志(例如,sps_dmvr_enabled_flag)等于1
-TPM标志、帧间仿射标志和子块Merge标志(ATMVP或仿射Merge)、MMVD标志都等于0
-Merge标志等于1
-当前块是双向预测的,并且当前图片和列表1中的参考图片之间的POC距离等于列表0中的参考图片和当前图片之间的POC距离
-当前CU高度大于或等于8
-亮度样点的数量(CU宽度*高度)大于或等于64
2.2.8.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/16th像素精度,仅需计算商的绝对值中的4比特,这使其适合于每个CU需要的2个除法的基于快速移位减法的实施。
3.将计算出的(x0,y0)加到整数距离细化MV,以得到子像素精确的细化增量MV。
2.3帧内块复制
HEVC屏幕内容编解码扩展(HEVC-SCC)和当前VVC测试模型(VTM-4.0)中已经采用了帧内块复制(IBC),也称为当前图片参考。IBC将运动补偿的概念从帧间编解码扩展到帧内编解码。如图21所示,当应用IBC时,当前块通过相同图片中的参考块预测。在当前块被编码或解码之前,参考块中的样点必须已经被重构。尽管IBC对大多数相机捕捉的序列并不那么有效,但它显示出对屏幕内容的显著编解码增益。原因是有很多重复的图案,诸如屏幕内容图片中的图标和文字字符。IBC可以有效地移除这些重复图案之间的冗余。在HEVC-SCC中,如果帧间编解码单元(CU)选择当前图片作为其参考图片,则它可以应用IBC。在这种情况下,MV被重命名为块矢量(BV),并且BV总是具有整数像素精度。为了与主简表(profile)HEVC兼容,当前图片在解码图片缓冲区(DPB)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3D视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。残差可以通过从原始信号中减去参考像素得到。然后,可以像在其他编解码模式下一样应用变换和量化。
然而,当参考块在图片之外,或与当前块重叠,或在重构区域之外,或在受一些约束限制的有效区域之外时,部分或全部像素值没有被定义。基本上,有两种解决方案来处理这样的问题。一种是不允许这样的情况,例如在比特流一致性中。另一种是对那些未定义的像素值应用填充。以下子章节详细描述了解决方案。
2.3.1VVC测试模型(VTM4.0)中的IBC
在当前VVC测试模型(例如,VTM-4.0设计)中,整个参考块应该与当前编解码树单元(CTU)一起,并且不与当前块重叠。因此,不需要填充参考或预测块。IBC标志被编解码为当前CU的预测模式。因此,对于每个CU,总共有三种预测模式,MODE_INTRA、MODE_INTER和MODE_IBC。
2.3.1.1IBC 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候选。
应该注意,无效Merge候选可以被插入到IBC Merge列表中。
2.3.1.2·IBC·AMVP模式
在IBC AMVP模式下,从比特流中解析指向IBC AMVP列表中的条目的AMVP索引。IBCAMVP列表的构建可以根据以下步骤顺序进行总结:
步骤1:推导空域候选
-检查A0、A1,直到找到可用候选。
-检查B0、B1、B2,直到找到可用候选。
步骤2:插入HMVP候选
步骤3:插入零候选
在插入空域候选之后,如果IBC AMVP列表尺寸仍然小于最大IBCAMVP列表尺寸,则可以插入HMVP表中的IBC候选。
最后,零候选被插入到IBC AMVP列表中。
2.3.1.3色度IBC模式
在当前的VVC中,色度IBC模式下的运动补偿是在子块级别执行的。色度块将被分割成几个子块。每个子块确定相应的亮度块是否有块矢量,如果有,则确定其有效性。当前VTM存在编码器约束,如果当前色度CU中的所有子块都具有有效的亮度块矢量,则将测试色度IBC模式。例如,在YUV420视频上,色度块是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模式。
2.3.2IBC的最近进展
2.3.2.1单个BV列表
在一些实施例中,IBC中的Merge模式和AMVP模式的BV预测值共享公共预测值列表,该列表由以下元素组成:
(1)2个空域邻近位置(如图2中的A1、B1)
(2)5个HMVP条目
(3)默认为零矢量
列表中的候选的数量由从条带头推导的变量控制。对于Merge模式,最多可以使用该列表的前6个条目;对于AMVP模式,可以使用该列表的前2个条目。并且该列表符合共享Merge列表区域要求(在SMR内共享相同的列表)。
除了上述BV预测值候选列表之外,可以简化HMVP候选和现有Merge候选(A1、B1)之间的修剪操作。在简化中,将最多有2个修剪操作,因为它只比较第一个候选HMVP和(多个)空域Merge候选。
2.3.2.2IBC的尺寸限制
在一些实施例中,用于禁用128x128 IBC模式的语法约束可以被显式用在先前的VTM和VVC版本中的当前比特流约束之上,这使得IBC标志的存在依赖于CU尺寸<128x128。
2.3.2.3IBC的共享Merge列表
为了降低解码器复杂度并支持并行编码,在一些实施例中,可以共享用于CU划分树中的一个祖先节点的所有叶编解码单元(CU)的相同Merge候选列表,以用于启用小的跳过/Merge编解码单元的并行处理。祖先节点被命名为Merge共享节点。共享Merge候选列表在Merge共享节点处生成,假装Merge共享节点是叶CU。
更具体地,以下可以适用:
-如果块具有不大于32的亮度样点,并且被划分为2个4x4子块,则使用非常小的块(例如,两个相邻的4x4块)之间的共享Merge列表。
-如果块具有大于32的亮度样点,但是,在划分之后,至少一个子块小于阈值(32),则该划分的所有子块共享相同的Merge列表(例如,16x4或4x16划分三元或利用四元划分的8x8)。
这样的限制仅被应用于IBC Merge模式。
3.实施例解决的问题
一个块可以以IBC模式进行编解码。然而,块内的不同子区域可以具有不同的内容。需要研究如何进一步探索与当前帧内的先前编解码块的相关性。
4.实施例的示例
在本文档中,帧内块复制(IBC)可以不限于当前IBC技术,而是可以被解释为排除传统的帧内预测方法的使用当前条带/片/图砖(brick)/图片/其他视频单元(例如,CTU行)内的参考样点的技术。
为了解决上述问题,提出了基于子块的IBC(sbIBC)编解码方法。在sbIBC中,当前的IBC编解码视频块(例如,CU/PU/CB/PB)被划分为多个子块。子块中的每一个可以具有小于视频块的尺寸的尺寸。对于多个子块中的每个相应子块,视频编解码器可以在当前图片/条带/片/图砖/片组中识别相应子块的参考块。视频编解码器可以使用所识别的相应子块的参考块的运动参数来确定相应子块的运动参数。
此外,不限于仅将IBC应用于单向预测编解码块。也可以支持双向预测,其中两个参考图片都是当前图片。可替代地,也可以支持双向预测,其中一个来自当前图片,并且另一个来自不同的图片。在又一示例中,也可以应用多假设。
下面的列表应该被认为是解释一般概念的示例。不应该狭隘地解释这些技术。此外,这些技术可以以任何方式组合。图2中示出了邻近块A0、A1、B0、B1和B2。
1.在sbIBC中,尺寸等于M×N的一个块可以被划分为多于一个子块。
a.在一个示例中,子块尺寸被固定为L×K,例如L=K=4。
b.在一个示例中,子块尺寸被固定为最小编解码单元/预测单元/变换单元/用于运动信息存储的单元。
c.在一个示例中,一个块可以被划分为具有不同尺寸或相等尺寸的多个子块。
d.在一个示例中,可以信令通知子块尺寸的指示。
e.在一个示例中,子块尺寸的指示可以例如根据块维度来逐块改变。
f.在一个示例中,子块尺寸必须是(N1×minW)×(N2×minH)的形式,其中minW×minH表示最小编解码单元/预测单元/变换单元/用于运动信息存储的单元,并且N1和N2是正整数。
g.在一个示例中,子块维度可以取决于色彩格式和/或色彩分量。
i.例如,不同色彩分量的子块尺寸可以不同。
1)可替代地,不同色彩分量的子块尺寸可以相同。
ii.例如,当色彩格式为4:2:0时,亮度分量的2L×2K子块可以对应于色度分量的L×K子块。
1)可替代地,当色彩格式为4:2:0时,亮度分量的四个2L×2K子块可以对应于色度分量的2L×2K子块。
iii.例如,当色彩格式为4:2:2时,亮度分量的2L×2K子块可以对应于色度分量的2L×K子块。
1)可替代地,当色彩格式为4:2:2时,亮度分量的两个2L×2K子块可以对应于色度分量的2L×2K子块。
iv.例如,当色彩格式为4:4:4时,亮度分量的2L×2K子块可以对应于色度分量的2L×2K子块。
h.在一个示例中,第一色彩分量的子块的MV可以从第二色彩分量的一个对应子块或多个对应子块推导。
i.例如,第一色彩分量的子块的MV可以被推导为第二色彩分量的多个对应子块的平均MV。
ii.此外,可替代地,当利用单树时,可以应用上述方法。
iii.此外,可替代地,当对于特定块尺寸(诸如4×4色度块)时,可以应用上述方法。
i.在一个示例中,子块尺寸可以取决于编解码模式,诸如IBCMerge/AMVP模式。
j.在一个示例中,子块可以为非矩形,诸如三角形/楔形(wedgelet)。2.利用两个阶段(包括用初始化运动矢量(表示为initMV)识别对应的参考块、以及根据参考块推导子CU的一个或多个运动矢量)来获得子CU的运动信息,其中的至少一个参考图片等于当前图片。
a.在一个示例中,参考块可以在当前图片中。
b.在一个示例中,参考块可以在参考图片中。
i.例如,它可以在并置参考图片中。
ii.例如,它可以在通过使用并置块或并置块的邻近块的运动信息而识别的参考图片中。
阶段1.a关于initMV(vx,vy)的设置
c.在一个示例中,可以从当前块或当前子块的一个或多个邻近块(相邻或非相邻)推导initMV。
i.邻近块可以是相同图片中的一个块。
1)可替代地,它可以是参考图片中的一个块。
a.例如,它可以在并置参考图片中。
b.例如,它可以通过使用并置块或并置块的邻近块的运动信息来识别。
ii.在一个示例中,它可以从邻近块Z推导
1)例如,initMV可以被设置为等于存储在邻近块Z
中的MV。例如,邻近块Z可以是块A1。
iii.在一个示例中,它可以从按顺序检查的多个块推导。
1)在一个示例中,作为来自检查块的参考图片的与当前图片相关联的第一识别的运动矢量可以被设置为initMV。
d.在一个示例中,可以从运动候选列表推导initMV。
i.在一个示例中,它可以从IBC候选列表中的第k个(例如,第1个)候选推导。
1)在一个示例中,IBC候选列表是Merge/AMVP候选列表。
2)在一个示例中,可以利用不同于现有IBC Merge候选列表构建过程的IBC候选列表,诸如使用不同的空域邻近块。
ii.在一个示例中,它可以从IBC HMVP表中的第k个(例如,第1个)候选推导。
e.在一个示例中,它可以基于当前块的位置来推导。
f.在一个示例中,它可以根据当前块的维度来推导。
g.在一个示例中,它可以被设置为默认值。
h.在一个示例中,可以在视频单元级别(诸如片/条带/图片/图砖
/CTU行/CTU/CTB/CU/PU/TU等)信令通知initMV的指示。
i.初始MV对于当前块内的两个不同子块可以不同。
j.如何推导初始MV可以逐块、逐片、逐条带等改变。
阶段1.b关于使用initMV识别子CU的对应参考块
k.在一个示例中,可以首先将initMV转换为1像素整数精度,并且可以利用经转换的MV来识别子块的对应块。通过(vx’,vy’)表示经转换的MV。
i.在一个示例中,如果(vx,vy)处于F像素整数精度,则通过(vx’,vy’)表示的经转换的MV可以被设置为(vx*F,vy*F)(例如,F=2或4)。
ii.可替代地,(vx’,vy’)被直接设置为等于(vx,vy)。
l.假设一个子块的左顶部位置为(x,y),并且子块尺寸为K×L。子块的对应块被设置为覆盖坐标(x+offsetX+vx’,y+offsetY+vy’)的CU/CB/PU/PB,其中offsetX和offsetY用于指示相对于当前子块的所选择的坐标。
i.在一个示例中,offsetX和/或offsetY被设置为0。
ii.在一个示例中,offsetX可以被设置为(L/2)或(L/2+1)或(L/2-1),其中L可以是子块的宽度。
iii.在一个示例中,offsetY可以被设置为(K/2)或(K/2+1)或(K/2-1),其中K可以是子块的高度。
iv.可替代地,水平和/或垂直偏移可以被进一步裁剪到一范围,诸如在图片/条带/片/图砖边界/IBC参考区域等内。
阶段2关于使用所识别的对应参考块的运动信息推导子块的运动矢量(通过subMV (subMVx,subMVy)表示)
m.子块的subMV从对应块的运动信息推导。
i.在一个示例中,如果对应块具有指向当前图片的运动矢量,则subMV被设置为等于MV。
ii.在一个示例中,如果对应块具有指向当前图片的运动矢量,则subMV被设置为等于MV加上initMV。
n.推导的subMV可以被进一步裁剪到给定的范围,或者被裁剪以确保它指向IBC参考区域。
o.在一致性比特流中,推导的subMV必须是子块的IBC的有效MV。
3.可以生成具有子块运动矢量的一个或多个IBC候选,其可以被表示为子块IBC候选。
4.子块IBC候选可以被插入到包括ATMVP、仿射Merge候选的子块Merge候选。
a.在一个示例中,它可以被添加在所有其他子块Merge候选之前。
b.在一个示例中,它可以被添加在ATMVP候选之后。
c.在一个示例中,它可以被添加在继承的仿射候选或构建的仿射候选之后。
d.在一个示例中,它可以被添加到IBC Merge/AMVP候选列表
i.可替代地,是否添加它可以取决于当前块的模式信息。例如,如果它是IBC AMVP模式,则它可以不添加。
e.哪个候选列表要被添加可以取决于分割结构,例如双树或单树。
f.可替代地,可以将多个子块IBC候选插入到子块Merge候选。
5.IBC子块运动(例如,AMVP/Merge)候选列表可以用至少一个子块IBC候选来构建。
a.可替代地,可以将一个或多个子块IBC候选插入到IBC子块
Merge候选,例如,使用不同的初始化MV。
b.此外,可替代地,构建IBC子块运动候选列表还是现有的IBC
AMVP/Merge候选列表可以通过指示符来信令通知,或者被动态(on-the-fly)推导。
c.此外,可替代地,如果当前块以IBC Merge模式进行编解码,则可以信令通知IBC子块Merge候选列表的索引。
d.此外,可替代地,如果当前块以IBC AMVP模式进行编解码,则可以信令通知IBC子块AMVP候选列表的索引。
i.此外,可替代地,IBC AMVP模式的信令通知/推导的MVD
可以被应用于一个或多个子块。
6.子块的参考块和子块可以属于相同的色彩分量。
通过混合使用应用于相同块中的不同子块的其他工具的sbIBC的扩展
7.一个块可以被划分为多个子块,其中至少一个用IBC进行编解码,并且至少一个以帧内模式进行编解码。
a.在一个示例中,对于子块,可以不推导运动矢量。相反,可以针对子块推导一个或多个帧内预测模式。
b.可替代地,可以推导调色板模式或/和调色板表。
c.在一个示例中,可以针对整个块推导一种帧内预测模式。
8.一个块可以被划分为多个子块,其中所有子块以帧内模式进行编解码。
9.一个块可以被划分为多个子块,其中所有子块以调色板模式进行编解码。
10.一个块可以被划分为多个子块,其中至少一个子块以IBC模式进行编解码,并且至少一个子块以调色板模式进行编解码。
11.一个块可以被划分为多个子块,其中至少一个子块以帧内模式进行编解码,并且至少一个子块以调色板模式进行编解码。
12.一个块可以被划分为多个子块,其中至少一个子块以IBC模式进行编解码,并且至少一个子块以帧间模式进行编解码。
13.一个块可以被划分为多个子块,其中至少一个子块以帧内模式进行编解码,并且至少一个子块以帧间模式进行编解码。
与其他工具的交互
14.当应用上述方法中的一种或多种时,可以不更新IBC HMVP表。
a.可替代地,IBC编解码子区域的运动矢量中的一个或多个可以用于更新IBCHMVP表。
15.当应用上述方法中的一种或多种时,可以不更新非IBC HMVP表。
b.可替代地,帧间编解码子区域的运动矢量中的一个或多个可以用于更新非IBCHMVP表。
16.环路滤波过程(例如,去方块过程)可以取决于上述方法的使用。
a.在一个示例中,当应用上述方法中的一种或多种时,可以对子块边界进行滤波。
a.可替代地,当应用上述方法中的一种或多种时,可以对子块边界进行滤波。
b.在一个示例中,用上述方法编解码的块可以以与传统的IBC编解码块类似的方式来处理。
17.可以对用上述方法中的一种或多种编解码的块禁用特定编解码方法(例如,子块变换、仿射运动预测、多参考线帧内预测、基于矩阵的帧内预测、对称MVD编解码、利用MVD解码器侧运动推导/细化的Merge、双向光流、简化二次变换、多重变换集等)。
18.上述方法和/或子块尺寸的使用的指示可以在序列/图片/条带/片组/片/图砖/CTU/CTB/CU/PU/TU/其他视频单元级别被信令通知或者被动态推导。
a.在一个示例中,上述方法中的一种或多种可以被视为特殊的IBC模式。
i.此外,可替代地,如果一个块被编解码为IBC模式,则可以信令通知或推导使用传统的基于整个块的IBC方法或sbIBC的进一步指示。
ii.在一个示例中,后续IBC编解码块可以利用当前sbIBC编解码块的运动信息作为MV预测值。
1.可替代地,可以不允许后续IBC编解码块利用当前sbIBC编解码块的运动信息作为MV预测值。
b.在一个示例中,sbIBC可以通过运动候选列表的候选索引来指示。
i.在一个示例中,特定的候选索引被分配给sbIBC编解码块。
c.在一个示例中,IBC候选可以被分类为两个类别:一个用于整个块编解码,并且另一个用于子块编解码。一个块是否以sbIBC模式进行编解码可以取决于IBC候选的类别。
工具的使用
19.是否和/或如何应用上述方法可以取决于以下信息:
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.标准的简表/级别/层级(tier)
与Merge列表构建过程和IBC使用有关的思想
20.对于帧间编解码图片/条带/片组/片中的块,IBC模式可以与帧间预测模式一起使用。
a.在一个示例中,对于IBC AMVP模式,可以信令通知语法元素以指示当前块是否从当前图片和与当前图片不相同的参考图片(表示为时域参考图片)预测。
i.此外,可替代地,如果当前块也从时域参考图片预测,则可以信令通知语法元素以指示使用哪个时域参考图片及其相关联的MVP索引、MVD、MV精度等。
ii.在一个示例中,对于IBC AMVP模式,一个参考图片列表可以仅包括当前图片,并且另一个参考图片列表可以仅包括时域参考图片。
b.在一个示例中,对于IBC Merge模式,运动矢量和参考图片可以从邻近块推导。
i.例如,如果邻近块仅从当前图片预测,则来自邻近块的推导的运动信息可以仅参考当前图片。
ii.例如,如果邻近块从当前图片和时域参考图片预测,则推导的运动信息可以参考当前图片和时域参考图片。
1)可替代地,推导的运动信息可以仅参考当前图片。
iii.例如,如果邻近块仅从时域参考图片预测,则当构建IBCMerge候选时,它可以被认为“无效”或“不可用”。
c.在一个示例中,固定加权因子可以被分配给来自当前图片的参考块和来自时域参考图片的参考块,以用于双向预测。
i.此外,可替代地,可以信令通知加权因子。
21.运动候选列表构建过程(例如,常规Merge列表、IBC Merge/AMVP列表、子块Merge列表、IBC子块候选列表)和/或是否/如何更新HMVP表可以取决于块维度和/或Merge共享条件。将块的宽度和高度分别表示为W和H。条件C可以取决于块维度和/或编解码信息。
a.运动候选列表构建过程(例如,常规Merge列表、IBCMerge/AMVP列表、子块Merge列表、IBC子块候选列表)和/或是否/如何更新HMVP表可以取决于条件C。
b.在一个示例中,条件C可以取决于当前块和/或其邻近(相邻或非相邻)块的编解码信息。
c.在一个示例中,条件C可以取决于Merge共享条件。
d.在一个示例中,条件C可以取决于当前块的块维度、和/或邻近(相邻或非相邻)块的块维度和/或当前和/或邻近块的编解码模式。
e.在一个示例中,如果满足条件C,则跳过空域Merge候选的推导。
f.在一个示例中,如果满足条件C,则跳过从空域邻近(相邻或非相邻)块推导候选。
g.在一个示例中,如果满足条件C,则跳过从特定空域邻近(相邻或非相邻)块(例如,块B2)推导候选。
h.在一个示例中,如果满足条件C,则跳过HMVP候选的推导。
i.在一个示例中,如果满足条件C,则跳过成对Merge候选的推导。
j.在一个示例中,如果满足条件C,则最大修剪操作的数量被减少或设置为0。
i.此外,可替代地,可以减少或移除空域Merge候选当中的修剪操作。
ii.此外,可替代地,可以减少或移除HMVP候选和其他Merge候选当中的修剪操作。
k.在一个示例中,如果满足条件C,则跳过HMVP候选的更新。i.在一个示例中,HMVP候选可以被直接添加到运动列表而不被修剪。
l.在一个示例中,如果满足条件C,则不添加默认运动候选(例如,IBC Merge/AVMP列表中的零运动候选)。
m.在一个示例中,当满足条件C时,不同的检查顺序(例如,从第一个到最后一个而不是从最后一个到第一个)和/或要被检查/添加的不同数量的HMVP候选。
n.在一个示例中,当W*H大于或不小于阈值(例如,1024)时,可以满足条件C。
o.在一个示例中,当W和/或H大于或不小于阈值(例如,32)时,可以满足条件C。
p.在一个示例中,当W大于或不小于阈值(例如,32)时,可以满足条件C。
q.在一个示例中,当H大于或不小于阈值(例如,32)时,可以满足条件C。
r.在一个示例中,当W*H大于或不小于阈值(例如,1024)并且当前块以IBC AMVP和/或Merge模式进行编解码时,可以满足条件C。
s.在一个示例中,当W*H小于或不大于阈值(例如,16或32或64)并且当前块以IBCAMVP和/或Merge模式进行编解码时,可以满足条件C。
i.此外,可替代地,当满足条件C时,IBC运动列表构建过程可以包括来自空域邻近块(例如,A1、B1)的候选以及默认候选。也就是说,HMVP候选的插入被跳过。
ii.此外,可替代地,当满足条件C时,IBC运动列表构建过程可以包括来自IBCHMVP表的HMVP候选的候选以及默认候选。也就是说,来自空域邻近块的候选的插入被跳过。
iii.此外,可替代地,在满足条件C的情况下解码块之后,IBCHMVP表的更新被跳过。
iv.可替代地,当以下情况中的一个/一些/全部为真时,可以满足条件C:
1)当W*H等于或不大于T1(例如,16)并且当前块以IBC AMVP和/或Merge模式进行编解码时
2)当W等于T2并且H等于T3(例如,T2=4,T3=8)
时,其上方块可用,并且尺寸等于AxB;并且当前块及其上方块都以特定模式进行编解码
a.可替代地,当W等于T2并且H等于T3(例如,T2=4,T3=8)时,其上方块可用,在相同的CTU中,并且尺寸等于AxB,并且当前块及其上方块都以相同的模式进行编解码
b.可替代地,当W等于T2并且H等于T3(例如,T2=4,T3=8)时,其上方块可用,并且尺寸等于AxB,并且当前块及其上方块都以相同的模式进行编解码
c.可替代地,当W等于T2并且H等于T3(例如,T2=4,T3=8)时,其上方块不可用
d.可替代地,当W等于T2并且H等于T3(例如,T2=4,T3=8)时,其上方块不可用,或者上方块在当前CTU之外
3)当W等于T4并且H等于T5(例如,T4=8,T5=4)
时,其左侧块可用,并且尺寸等于AxB;当前块及其左侧块都以特定模式进行编解码
a.可替代地,当W等于T4并且H等于T5(例如,T4=8,T5=4)时,其左侧块不可用
4)当W*H不大于T1(例如,32)时,当前块以IBCAMVP和/或Merge模式进行编解码;其上方和左侧邻近块都可用,并且尺寸等于AxB,并且以特定模式进行编解码。
a.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块可用,尺寸等于AxB,并且是IBC编解码的;并且其上方邻近块可用,在相同的CTU内,并且尺寸等于AxB,并且以相同的模式进行编解码。
b.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块不可用;并且其上方邻近块可用,在相同的CTU内,并且尺寸等于AxB,并且以相同的模式进行编解码。
c.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块不可用;并且其上方邻近块不可用。
d.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块可用,尺寸等于AxB,并且以相同的模式进行编解码;并且其上方邻近块不可用。
e.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块不可用;并且其上方邻近块不可用或者在当前CTU之外。
f.当W*H不大于T1(例如,32)时,当前块以特定模式进行编解码;其左侧邻近块可用,尺寸等于AxB,并且以相同的模式进行编解码;并且其上方邻近块不可用或者在当前CTU之外。
5)在以上示例中,“特定模式”是IBC模式。
6)在以上示例中,“特定模式”是帧间模式。
7)在以上示例中,“AxB”可以被设置为4x4。
8)在以上示例中,“邻近块尺寸等于AxB”可以替换为“邻近块尺寸不大于或不小于AxB”。
9)在以上示例中,上方和左侧邻近块是为空域Merge候选推导而访问的两个块。
a.在一个示例中,假设当前块中的左顶部样点的坐标为(x,y),左侧块是覆盖(x-1,y+H-1)的一个块。
b.在一个示例中,假设当前块中的左顶部样点的坐标为(x,y),左侧块是覆盖(x+W-1,y-1)的一个块。
t.上述阈值可以被预定义或信令通知。
i.此外,可替代地,阈值可以取决于块的编解码信息,诸如编解码模式。
u.在一个示例中,当当前块在共享节点下并且当前块以IBCAMVP和/或Merge模式进行编解码时,满足条件C。
i.此外,可替代地,当满足条件C时,IBC运动列表构建过程可以包括来自空域邻近块(例如,A1、B1)的候选以及默认候选。也就是说,HMVP候选的插入被跳过。
ii.此外,可替代地,当满足条件C时,IBC运动列表构建过程可以包括来自IBCHMVP表的HMVP候选的候选以及默认候选。也就是说,来自空域邻近块的候选的插入被跳过。
iii.此外,可替代地,在满足条件C的情况下解码块之后,IBCHMVP表的更新被跳过。
v.在一个示例中,条件C可以被自适应地改变,诸如根据块的编解码信息。
i.在一个示例中,条件C可以基于编解码模式(IBC或非IBC模式)、块维度来定义。
w.是否应用上述方法可以取决于块的编解码信息,诸如它是否是IBC编解码块。
i.在一个示例中,当块被IBC编解码时,可以应用上述方法。
IBC运动列表
22.提出IBC HMVP表中的运动候选以整数像素精度而不是1/16像素精度被存储。
a.在一个示例中,所有运动候选以1像素精度被存储。
b.在一个示例中,当使用来自空域邻近(相邻或非相邻)块和/或来自IBC HMVP表的运动信息时,MV的取整过程被跳过。
23.提出IBC议案列表只能包含来自一个或多个IBC HMVP表的议案候选。
a.此外,可替代地,IBC运动列表中的候选的信令通知可以取决于HMVP表中的可用HMVP候选的数量。
b.此外,可替代地,IBC运动列表中的候选的信令通知可以取决于HMVP表中的HMVP候选的最大数量。
c.可替代地,HMVP表中的HMVP候选按顺序被添加到列表,而无需修剪。
i.在一个示例中,该顺序基于表的条目索引的升序。
ii.在一个示例中,该顺序基于表的条目索引的降序。
iii.在一个示例中,可以跳过表中的前N个条目。
iv.在一个示例中,可以跳过表中的后N个条目。
v.在一个示例中,可以跳过具有(多个)无效BV的条目。
vi.
d.此外,可替代地,可以进一步修改从来自一个或多个HMVP表的HMVP候选推导的运动候选,诸如通过向水平矢量添加偏移和
/或向垂直矢量添加偏移。
i.具有(多个)无效BV的HMVP候选可以被修改以提供(多个)有效BV。
e.此外,可替代地,默认运动候选可以被添加在一个或多个HMVP候选之后或之前。
f.如何/是否将HMVP候选添加到IBC运动列表中可以取决于块的维度。
i.例如,当块维度(代表宽度和高度的W和H)满足条件C时,IBC运动列表可以仅包含来自一个或多个HMVP表的运动候选。
1)在一个示例中,条件C是W<=T1并且H<=T2,例如T1=T2=4。
2)在一个示例中,条件C是W<=T1或H<=T2,例如T1=T2=4。
3)在一个示例中,条件C是W*H<=T,例如T=16。
5.实施例
添加的改变以下划线粗体斜体突出显示。删除部分用[[]]标记。
5.1实施例#1
当当前块在共享节点下时,不更新HMVP表。只对共享节点下的块使用单个IBCHMVP表。
7.4.8.5编解码单元语义
[[当所有以下条件都为真时,通过将NumHmvpSmrIbcCand设置为等于NumHmvpIbcCand,并将HmvpSmrIbcCandList[i]设置为等于HmvpIbcCandList[i](对于i=0..NumHmvpIbcCand-1)来更新共享Merge候选列表区域的基于历史的运动矢量预测值列表:
-IsInSmr[x0][y0]等于TRUE。
-SmrX[x0][y0]等于x0。
-SmrY[x0][y0]等于y0。]]
8.6.2IBC块的运动矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度运动矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度运动矢量mvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
1.变量mvd被推导如下:
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
2.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift、以及设置为等于MvShift+2的leftShift作为输入,并且以取整的mvL作为输出。
3.亮度运动矢量mvL被修改如下:
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-如上指定的mvL[0]和mvL[1]的结果值将始终在-217至217-1(含)的范围内。
利用亮度运动矢量mvL调用如条款8.6.2.6所指定的基于历史的运动矢量预测值列表的更新过程。
参考块内部的左顶部位置(xRefTL,yRefTL)和参考块内部的右底部位置(xRefBR,yRefBR)被推导如下:
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))(8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1)(8-890)比特流一致性的要求是亮度运动矢量mvL应当遵守以下约束:
-...
8.6.2.4IBC基于历史的运动矢量候选的推导过程
该过程的输入为:
-运动矢量候选列表mvCandList,
-列表中的可用运动矢量候选数量numCurrCand。
该过程的输出为:
-修改的运动矢量候选列表mvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
阵列smrHmvpIbcCandList和变量smrNumHmvpIbcCand被推导如下:
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
[[smr]]NumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
对于smrHmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1..[[smr]]NumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumMergeCand:
1.变量sameMotion被推导如下:
-如果所有以下条件对于任何运动矢量候选N(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]等于运动矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
2.当sameMotion等于FALSE时,候选[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]被添加到运动矢量候选列表,如下所示:
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
5.2实施例#2
当块尺寸满足特定条件(诸如宽度*高度<K)时,移除IBC运动列表构建过程中的空域Merge/AMVP候选的检查。在以下描述中,阈值K可以被预定义,诸如16。
7.4.8.2编解码树单元语义
CTU是编解码树结构的根节点。
[[指定(x,y)处的样点是否位于共享Merge候选列表区域内部的阵列IsInSmr[x][y]被初始化如下,对于x=0..CtbSizeY-1并且y=0..CtbSizeY-1:
IsInSmr[x][y]=FALSE(7-96)]]
7.4.8.4编解码树语义
[[当所有以下条件都为真时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,IsInSmr[x][y]被设置为等于TRUE:
-IsInSmr[x0][y0]等于FALSE
-cbWidth*cbHeight/4小于32
-treeType不等于DUAL_TREE_CHROMA
当IsInSmr[x0][y0]等于TRUE时。对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,阵列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]和SmrH[x][y]被推导如下:
SmrX[x][y]=x0 (7-98)
SmrY[x][y]=y0 (7-99)
SmrW[x][y]=cbWidth (7-100)
SmrH[x][y]=cbHeight (7-101)
当所有以下条件都为真时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,IsInSmr[x][y]被设置为等于TRUE:
-IsInSmr[x0][y0]等于FALSE
-以下条件之一为真:
-mtt_split_cu_binary_flag等于1,并且cbWidth*cbHeight/2小于32
-mtt_split_cu_binary_flag等于0,并且cbWidth*cbHeight/4小于32
-treeType不等于DUAL_TREE_CHROMA
当IsInSmr[x0][y0]等于TRUE时。对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,阵列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]和SmrH[x][y]被推导如下:
SmrX[x][y]=x0 (7-102)
SmrY[x][y]=y0 (7-103)
SmrW[x][y]=cbWidth (7-104)
SmrH[x][y]=cbHeight (7-105)]]
7.4.8.5编解码单元语义
[[当所有以下条件都为真时,通过将NumHmvpSmrIbcCand设置为等于NumHmvpIbcCand,并将HmvpSmrIbcCandList[i]设置为等于HmvpIbcCandList[i](对于i=0..NumHmvpIbcCand-1)来更新共享Merge候选列表区域的基于历史的运动矢量预测值列表:
-IsInSmr[x0][y0]等于TRUE。
-SmrX[x0][y0]等于x0。
-SmrY[x0][y0]等于y0。]]
对x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,进行以下赋值:
CbPosX[x][y]=x0 (7-106)
CbPosY[x][y]=y0 (7-107)
CbWidth[x][y]=cbWidth (7-108)
CbHeight[x][y]=cbHeight (7-109)
8.6.2IBC块的运动矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度运动矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度运动矢量mvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
4.变量mvd被推导如下:
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
5.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift、以及设置为等于MvShift+2的leftShift作为输入,并且以取整的mvL作为输出。
6.亮度运动矢量mvL被修改如下:
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-如上指定的mvL[0]和mvL[1]的结果值将始终在-217至217-1(含)的范围内。
利用亮度运动矢量mvL调用如条款8.6.2.6所指定的基于历史的运动矢量预测值列表的更新过程。
参考块内部的左顶部位置(xRefTL,yRefTL)和参考块内部的右底部位置(xRefBR,yRefBR)被推导如下:
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4)) (8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1) (8-890)
比特流一致性的要求是亮度运动矢量mvL应当遵守以下约束:
-...
8.6.2.2IBC亮度运动矢量预测的推导过程
仅当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 (8-895)
ySmr=[[IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:]]yCb (8-896)
smrWidth=[[IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:]]cbWidth (8-897)
smrHeight=[[IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:]]cbHeight (8-898)
smrNumHmvpIbcCand=[[IsInSmr[xCb][yCb]?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-899)
亮度运动矢量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 (8-900)
if(availableFlagB1)
mvCandList[i++]=mvB1
3.当smrWidth*smrHeight大于K时,变量numCurrCand被设置为等于mvCandList中的Merge候选的数量。
4.当numCurrCand小于MaxNumMergeCand并且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] (8-901)
7.进行以下赋值:
mvL[0]=mergeCandList[mvIdx][0] (8-902)
mvL[1]=mergeCandList[mvIdx][1] (8-903)
8.6.2.4IBC基于历史的运动矢量候选的推导过程该过程的输入为:
-运动矢量候选列表mvCandList,
-列表中的可用运动矢量候选数量numCurrCand。
该过程的输出为:
-修改的运动矢量候选列表mvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
阵列smrHmvpIbcCandList和变量smrNumHmvpIbcCand被推导如下:
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
[[smr]]NumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
对于[[smr]]HmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1..smrNumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumMergeCand:
1.变量sameMotion被推导如下:
-如果所有以下条件对于任何运动矢量候选N(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选
[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]等于运动矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
2.当sameMotion等于FALSE时,候选
[[smr]]HmvpIbcCandList[smrNumHmvpIbcCand-hMvpIdx]被添加到运动矢量候选列表,如下所示:
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
5.3实施例#3
当块尺寸满足特定条件时,诸如当前块在共享节点下,则移除IBC运动列表构建过程中的空域Merge/AMVP候选的检查,并且不更新HMVP表。
8.6.2.2IBC亮度运动矢量预测的推导过程
仅当CuPredMode[xCb][yCb]等于MODE_IBC时,才调用该过程,其中(xCb,yCb)指定当前亮度编解码块相对于当前图片的左顶部亮度样点的左顶部样点。
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度运动矢量mvL。
变量xSmr、ySmr、smrWidth、smrHeight和smrNumHmvpIbcCand被推导如下:
变量xSmr、ySmr、smrWidth、smrHeight和smrNumHmvpIbcCand被推导如下:
xSmr=[[IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:]]xCb (8-895)
ySmr=[[IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:]]yCb (8-896)
smrWidth=[[IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:]]cbWidth (8-897)
smrHeight=[[IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:]]cbHeight (8-898)
smrNumHmvpIbcCand=[[IsInSmr[xCb][yCb]?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-899)
亮度运动矢量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(8-900)
if(availableFlagB1)
mvCandList[i++]=mvB1
3.变量numCurrCand被设置为等于mvCandList中的Merge候选的数量。
4.当numCurrCand小于MaxNumMergeCand并且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](8-901)
7.进行以下赋值:
mvL[0]=mergeCandList[mvIdx][0](8-902)
mvL[1]=mergeCandList[mvIdx][1](8-903)8.6.2.4IBC基于历史的运动矢量候选的推导过程该过程的输入为:
-运动矢量候选列表mvCandList,
-列表中的可用运动矢量候选数量numCurrCand。
该过程的输出为:
-修改的运动矢量候选列表mvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
阵列smrHmvpIbcCandList和变量smrNumHmvpIbcCand被推导如下:
[[smr]]HmvpIbcCandList=[[isInSmr?HmvpSmrIbcCandList:]]HmvpIbcCandList (8-906)
[[smr]]NumHmvpIbcCand=[[isInSmr?NumHmvpSmrIbcCand:]]NumHmvpIbcCand (8-907)
对于[[smr]]HmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1..smrNumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumMergeCand:
3.变量sameMotion被推导如下:
-如果所有以下条件对于任何运动矢量候选N(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选[[smr]]HmvpIbcCandList[[smr]]NumHmvpIbcCand-hMvpIdx]等于运动矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
4.当sameMotion等于FALSE时,候选[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx]被添加到运动矢量候选列表,如下所示:
mvCandList[numCurrCand++]=[[smr]]HmvpIbcCandList[[[smr]]NumHmvpIbcCand-hMvpIdx] (8-908)
8.6.2IBC块的运动矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度运动矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度运动矢量mvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
7.变量mvd被推导如下:
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
8.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift、以及设置为等于MvShift+2的leftShift作为输入,并且以取整的mvL作为输出。
9.亮度运动矢量mvL被修改如下:
u[0]=(mvL[0]+mvd[0]+218)%218 (8-885)
mvL[0]=(u[0]>=217)?(u[0]-218):u[0] (8-886)
u[1]=(mvL[1]+mvd[1]+218)%218 (8-887)
mvL[1]=(u[1]>=217)?(u[1]-218):u[1] (8-888)
注1-如上指定的mvL[0]和mvL[1]的结果值将始终在-217至217-1(含)的范围内。
利用亮度运动矢量mvL调用如条款8.6.2.6所指定的基于历史的运动矢量预测值列表的更新过程。
参考块内部的左顶部位置(xRefTL,yRefTL)和参考块内部的右底部位置(xRefBR,yRefBR)被推导如下:
(xRefTL,yRefTL)=(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4)) (8-889)
(xRefBR,yRefBR)=(xRefTL+cbWidth-1,yRefTL+cbHeight-1) (8-890)
比特流一致性的要求是亮度运动矢量mvL应当遵守以下约束:
-...
5.4实施例#4
当块尺寸满足特定条件(诸如宽度*高度<=K,或者宽度=N、高度=4并且左侧邻近块为4x4并在IBC模式下进行编解码,或者宽度=4、高度=N并且上方邻近块为4x4并在IBC模式下进行编解码)时,移除IBC运动列表构建过程中的空域Merge/AMVP候选的检查,并且不更新HMVP表。在以下描述中,阈值K可以被预定义,诸如16,N可以被预定义,诸如8。
7.4.9.2编解码树单元语义
CTU是编解码树结构的根节点。
指定(x,y)处的样点是否可用于如条款6.4.4所指定的邻近块可用性的推导过程的阵列IsAvailable[cIdx][x][y]被初始化如下,对于cIdx=0..2,x=0..CtbSizeY-1,以及y=0..CtbSizeY-1:
IsAvailable[cIdx][x][y]=FALSE(7-123)
[[指定(x,y)处的样点是否位于共享Merge候选列表区域内部的阵列IsInSmr[x][y]被初始化如下,对于x=0..CtbSizeY-1并且y=0..CtbSizeY-1:
IsInSmr[x][y]=FALSE(7-124)]]
7.4.9.4编解码树语义
[[当所有以下条件都为真时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,IsInSmr[x][y]被设置为等于TRUE:
-IsInSmr[x0][y0]等于FALSE
-cbWidth*cbHeight/4小于32
-treeType不等于DUAL_TREE_CHROMA
当IsInSmr[x0][y0]等于TRUE时。对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,阵列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]和SmrH[x][y]被推导如下:
SmrX[x][y]=x0(7-126)
SmrY[x][y]=y0(7-127)
SmrW[x][y]=cbWidth(7-128)
SmrH[x][y]=cbHeight(7-129)]]
8.6.2IBC块的块矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
亮度块矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度块矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度块矢量bvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
1.变量bvd被推导如下:
bvd[0]=MvdL0[xCb][yCb][0] (8-900)
bvd[1]=MvdL0[xCb][yCb][1] (8-901)
2.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于bvL的mvX、设置为等于AmvrShift的rightShift、以及设置为等于AmvrShift的leftShift作为输入,并且以取整的bvL作为输出。
3.亮度块矢量bvL被修改如下:
u[0]=(bvL[0]+bvd[0]+218)%218 (8-902)
bvL[0]=(u[0]>=217)?(u[0]—218):u[0] (8-903)
u[1]=(bvL[1]+bvd[1]+218)%218 (8-904)
bvL[1]=(u[1]>=217)?(u[1]218:u[1] (8-905)
注1-如上指定的bvL[0]和bvL[1]的结果值将始终在-217至217-1
(含)的范围内。
(或者,可替代地:
为真[[IsInSmr[xCb][yCb]等于假]]时,利用亮度块矢量bvL调用如条款8.6.2.6所指定的基于历史的块矢量预测值列表的更新过程。
比特流一致性的要求是亮度块矢量bvL应当遵守以下约束:
-CtbSizeY大于或等于((yCb+(bvL[1]>>4))&(CtbSizeY-1))+cbHeight。
-对于x=xCb..xCb+cbWidth-1并且y=yCb..yCb+cbHeight-1,IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)]不应当等于-1。
8.6.2.2IBC亮度块矢量预测的推导过程
仅当CuPredMode[0][xCb][yCb]等于MODE_IBC时,才调用该过程,其中(xCb,yCb)指定当前亮度编解码块相对于当前图片的左顶部亮度样点的左顶部样点。
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
[[变量xSmr、ySmr、smrWidth和smrHeight被推导如下:
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb (8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb (8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth (8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight (8-909)]]
(可替代地:
亮度块矢量bvL通过以下有序步骤推导:
1.调用如条款8.6.2.3所指定的来自邻近编解码单元的空域块矢量候选的推导过程,其中以设置为等于(/>[[xSmr,ySmr]])的亮度编解码块位置(xCb,yCb)、设置为等于[[smr]]/>Width和[[smr]]/>Height的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,并且输出为可用性标志availableFlagA1、availableFlagB1以及块矢量bvA1和bvB1
2.块矢量候选列表bvCandList被构建如下:
i=0
if(availableFlagA1)
bvCandList[i++]=bvA1 (8-910)
if(availableFlagB1)
bvCandList[i++]=bvB1
3.变量numCurrCand被设置为等于bvCandList中的Merge候选的数量。
4.当numCurrCand小于MaxNumIbcMergeCand并且NumHmvpIbcCand大于0时,调用如8.6.2.4中指定的IBC基于历史的块矢量候选的推导过程,其中以bvCandList、以及numCurrCand作为输入,并且以修改的bvCandList和numCurrCand作为输出。
5.当numCurrCand小于MaxNumIbcMergeCand时,以下适用,直到numCurrCand等于MaxNumIbcMergeCand:
1.bvCandList[numCurrCand][0]被设置为等于0。
2.bvCandList[numCurrCand][1]被设置为等于0。
3.numCurrCand增加1。
6.变量bvIdx被推导如下:
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:
mvp_l0_flag[xCb][yCb](8-911)
7.进行以下赋值:
bvL[0]=bvCandList[mvIdx][0](8-912)
bvL[1]=bvCandList[mvIdx][1](8-913)8.6.2.3IBC空域块矢量候选的推导过程该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出如下:
-邻近编解码单元的可用性标志availableFlagA1和availableFlagB1,-邻近编解码单元的1/16分数样点精度的块矢量bvA1和bvB1,对于availableFlagA1和mvA1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbA1,yNbA1)被设置为等于(xCb-1,yCb+cbHeight-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbA1,yNbA1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableA1
-变量availableFlagA1和bvA1被推导如下:
-如果availableA1等于FALSE,则availableFlagA1被设置为等于0,并且bvA1的两个分量都被设置为等于0。
-否则,availableFlagA1被设置为等于1,并且进行以下赋值:
bvA1=MvL0[xNbA1][yNbA1](8-914)对于availableFlagB1和bvB1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbB1,yNbB1)被设置为等于(xCb+cbWidth-1,yCb-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbB1,yNbB1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableB1
-变量availableFlagB1和bvB1被推导如下:
-如果以下条件中的一个或多个为真,则availableFlagB1被设置为等于0,并且bvB1的两个分量都被设置为等于0:
-availableB1等于FALSE。
-availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的块矢量。
-否则,availableFlagB1被设置为等于1,并且进行以下赋值:
bvB1=MvL0[xNbB1][yNbB1] (8-915)
8.6.2.4IBC基于历史的块矢量候选的推导过程
该过程的输入为:
-块矢量候选列表bvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-
-列表中的可用块矢量候选数量numCurrCand。
该过程的输出为:
-修改的块矢量候选列表bvCandList,
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
对于[[smr]]HmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1.[[smr]]NumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumIbcMergeCand:
1.变量sameMotion被推导如下:
-如果所有以下条件对于任何候选块矢量N(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]等于块矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
2.当sameMotion等于FALSE时,候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]被添加到块矢量候选列表,如下所示:
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
(8-916)
5.5实施例#5
当块尺寸满足特定条件(诸如宽度=N、高度=4并且左侧邻近块为4x4并在IBC模式下进行编解码,或者宽度=4、高度=N并且上方邻近块为4x4并在IBC模式下进行编解码)时,移除IBC运动列表构建过程中的空域Merge/AMVP候选的检查,并移除HMVP表的更新。在以下描述中,N可以被预定义,诸如4或8。
7.4.9.2编解码树单元语义
CTU是编解码树结构的根节点。
指定(x,y)处的样点是否可用于如条款6.4.4所指定的邻近块可用性的推导过程的阵列IsAvailable[cIdx][x][y]被初始化如下,对于cIdx=0..2,x=0..CtbSizeY-1,以及y=0..CtbSizeY-1:
IsAvailable[cIdx][x][y]=FALSE(7-123)
[[指定(x,y)处的样点是否位于共享Merge候选列表区域内部的阵列IsInSmr[x][y]被初始化如下,对于x=0..CtbSizeY-1并且y=0..CtbSizeY-1:
IsInSmr[x][y]=FALSE(7-124)]]
7.4.9.4编解码树语义
[[当所有以下条件都为真时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,IsInSmr[x][y]被设置为等于TRUE:
-IsInSmr[x0][y0]等于FALSE
-cbWidth*cbHeight/4小于32
-treeType不等于DUAL_TREE_CHROMA
当IsInSmr[x0][y0]等于TRUE时。对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,阵列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]和SmrH[x][y]被推导如下:
SmrX[x][y]=x0(7-126)
SmrY[x][y]=y0(7-127)
SmrW[x][y]=cbWidth(7-128)
SmrH[x][y]=cbHeight(7-129)]]
8.6.2IBC块的块矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
亮度块矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度块矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度块矢量bvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
1.变量bvd被推导如下:
bvd[0]=MvdL0[xCb][yCb][0](8-900)
bvd[1]=MvdL0[xCb][yCb][1](8-901)
2.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于bvL的mvX、设置为等于AmvrShift的rightShift、以及设置为等于AmvrShift的leftShift作为输入,并且以取整的bvL作为输出。
3.亮度块矢量bvL被修改如下:
u[0]=(bvL[0]+bvd[0]+218)%218(8-902)
bvL[0]=(u[0]>=217)?(u[0]—218):u[0](8-903)
u[1]=(bvL[1]+bvd[1]+218)%218(8-904)
bvL[1]=(u[1]>=217)?(u[1]218:u[1](8-905)
注1-如上指定的bvL[0]和bvL[1]的结果值将始终在-217至217-1(含)的范围内。
(或者,可替代地:
[[IsInSmr[xCb][yCb]等于假]]时,利用亮度块矢量bvL调用如条款8.6.2.6所指定的基于历史的块矢量预测值列表的更新过程。
比特流一致性的要求是亮度块矢量bvL应当遵守以下约束:
-CtbSizeY大于或等于((yCb+(bvL[1]>>4))&(CtbSizeY-1))+
cbHeight。
-对于x=xCb..xCb+cbWidth-1并且y=yCb..yCb+cbHeight-1,IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[
1]>>4))&(CtbSizeY-1)]不应当等于-1。
8.6.2.2IBC亮度块矢量预测的推导过程
仅当CuPredMode[0][xCb][yCb]等于MODE_IBC时,才调用该过程,其中(xCb,yCb)指定当前亮度编解码块相对于当前图片的左顶部亮度样点的左顶部样点。
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
[[变量xSmr、ySmr、smrWidth和smrHeight被推导如下:
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb(8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb(8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth(8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight(8-909)]]
(或者,可替代地:
亮度块矢量bvL通过以下有序步骤推导:
1.调用如条款8.6.2.3所指定的来自邻近编解码单元的空域块矢量候选的推导过程,其中以设置为等于(/>[[xSmr,ySmr]])的亮度编解码块位置(xCb,yCb)、设置为等于[[smr]]/>Width和[[smr]]/>Height的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,并且输出为可用性标志availableFlagA1、availableFlagB1以及块矢量bvA1和bvB1
2.块矢量候选列表bvCandList被构建如下:
i=0
if(availableFlagA1)
bvCandList[i++]=bvA1(8-910)
if(availableFlagB1)
bvCandList[i++]=bvB1
3.变量numCurrCand被设置为等于bvCandList中的Merge候选的数量。
4.当numCurrCand小于MaxNumIbcMergeCand并且NumHmvpIbcCand大于0时,调用如8.6.2.4中指定的IBC基于历史的块矢量候选的推导过程,其中以bvCandList、以及numCurrCand作为输入,并且以修改的bvCandList和numCurrCand作为输出。
5.当numCurrCand小于MaxNumIbcMergeCand时,以下适用,直到numCurrCand等于MaxNumIbcMergeCand:
1.bvCandList[numCurrCand][0]被设置为等于0。
2.bvCandList[numCurrCand][1]被设置为等于0。
3.numCurrCand增加1。
6.变量bvIdx被推导如下:
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:
mvp_l0_flag[xCb][yCb](8-911)
7.进行以下赋值:
bvL[0]=bvCandList[mvIdx][0](8-912)
bvL[1]=bvCandList[mvIdx][1](8-913)8.6.2.3IBC空域块矢量候选的推导过程
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出如下:
-邻近编解码单元的可用性标志availableFlagA1和availableFlagB1,-邻近编解码单元的1/16分数样点精度的块矢量bvA1和bvB1,对于availableFlagA1和mvA1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbA1,yNbA1)被设置为等于(xCb-1,yCb+cbHeight-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbA1,yNbA1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableA1
-变量availableFlagA1和bvA1被推导如下:
-如果availableA1等于FALSE,则availableFlagA1被设置为等于0,并且bvA1的两个分量都被设置为等于0。
-否则,availableFlagA1被设置为等于1,并且进行以下赋值:
bvA1=MvL0[xNbA1][yNbA1](8-914)对于availableFlagB1和bvB1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbB1,yNbB1)被设置为等于(xCb+cbWidth-1,yCb-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbB1,yNbB1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableB1
-变量availableFlagB1和bvB1被推导如下:
-如果以下条件中的一个或多个为真,则availableFlagB1被设置为等于0,并且bvB1的两个分量都被设置为等于0:
-availableB1等于FALSE。
-availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的块矢量。
-否则,availableFlagB1被设置为等于1,并且进行以下赋值:
bvB1=MvL0[xNbB1][yNbB1](8-915)8.6.2.4IBC基于历史的块矢量候选的推导过程该过程的输入为:
-块矢量候选列表bvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-
-列表中的可用块矢量候选数量numCurrCand。
该过程的输出为:
-修改的块矢量候选列表bvCandList,
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
对于[[smr]]HmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1.[[smr]]NumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumIbcMergeCand:
1.变量sameMotion被推导如下:
-如果所有以下条件对于任何候选块矢量N
(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]等于块矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
2.当sameMotion等于FALSE时,候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]被添加到块矢量候选列表,如下所示:
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]- (8-916)
5.6实施例#6
当块尺寸满足特定条件(诸如宽度*高度<=K,并且左侧或上方邻近块为4x4并在IBC模式下进行编解码)时,移除IBC运动列表构建过程中的空域Merge/AMVP候选的检查,并移除HMVP表的更新。在以下描述中,阈值K可以被预定义,诸如16或32。
7.4.9.2编解码树单元语义
CTU是编解码树结构的根节点。
指定(x,y)处的样点是否可用于如条款6.4.4所指定的邻近块可用性的推导过程的阵列IsAvailable[cIdx][x][y]被初始化如下,对于cIdx=0..2,x=0..CtbSizeY-1,以及y=0..CtbSizeY-1:
IsAvailable[cIdx][x][y]=FALSE(7-123)
[[指定(x,y)处的样点是否位于共享Merge候选列表区域内部的阵列IsInSmr[x][y]被初始化如下,对于x=0..CtbSizeY-1并且y=0..CtbSizeY-1:
IsInSmr[x][y]=FALSE(7-124)]]
7.4.9.4编解码树语义
[[当所有以下条件都为真时,对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,IsInSmr[x][y]被设置为等于TRUE:
-IsInSmr[x0][y0]等于FALSE
-cbWidth*cbHeight/4小于32
-treeType不等于DUAL_TREE_CHROMA
当IsInSmr[x0][y0]等于TRUE时。对于x=x0..x0+cbWidth-1并且y=y0..y0+cbHeight-1,阵列SmrX[x][y]、SmrY[x][y]、SmrW[x][y]和SmrH[x][y]被推导如下:
SmrX[x][y]=x0(7-126)
SmrY[x][y]=y0(7-127)
SmrW[x][y]=cbWidth(7-128)
SmrH[x][y]=cbHeight(7-129)]]
8.6.2IBC块的块矢量分量的推导过程
8.6.2.1通用
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
亮度块矢量mvL被推导如下:
-调用如条款8.6.2.2所指定的IBC亮度块矢量预测的推导过程,其中以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入,并且输出为亮度块矢量bvL。
-当general_merge_flag[xCb][yCb]等于0时,以下适用:
1.变量bvd被推导如下:
bvd[0]=MvdL0[xCb][yCb][0](8-900)
bvd[1]=MvdL0[xCb][yCb][1](8-901)
2.调用如条款8.5.2.14所指定的运动矢量的取整过程,其中以设置为等于bvL的mvX、设置为等于AmvrShift的rightShift、以及设置为等于AmvrShift的leftShift作为输入,并且以取整的bvL作为输出。
3.亮度块矢量bvL被修改如下:
u[0]=(bvL[0]+bvd[0]+218)%218(8-902)
bvL[0]=(u[0]>=217)?(u[0]—218):u[0](8-903)
u[1]=(bvL[1]+bvd[1]+218)%218(8-904)
bvL[1]=(u[1]>=217)?(u[1]218:u[1](8-905)
注1-如上指定的bvL[0]和bvL[1]的结果值将始终在-217至217-1(含)的范围内。
(或者,可替代地,
[[IsInSmr[xCb][yCb]等于假]]时,利用亮度块矢量bvL调用如条款8.6.2.6所指定的基于历史的块矢量预测值列表的更新过程。
比特流一致性的要求是亮度块矢量bvL应当遵守以下约束:
-CtbSizeY大于或等于((yCb+(bvL[1]>>4))&(CtbSizeY-1))+
cbHeight。
-对于x=xCb..xCb+cbWidth-1并且y=yCb..yCb+cbHeight-1,IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcVirBufWidth-1)][(y+(bvL[
1]>>4))&(CtbSizeY-1)]不应当等于-1。
8.6.2.2IBC亮度块矢量预测的推导过程
仅当CuPredMode[0][xCb][yCb]等于MODE_IBC时,才调用该过程,其中(xCb,yCb)指定当前亮度编解码块相对于当前图片的左顶部亮度样点的左顶部样点。
该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,
-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出为:
-1/16分数样点精度的亮度块矢量bvL。
[[变量xSmr、ySmr、smrWidth和smrHeight被推导如下:
xSmr=IsInSmr[xCb][yCb]?SmrX[xCb][yCb]:xCb(8-906)
ySmr=IsInSmr[xCb][yCb]?SmrY[xCb][yCb]:yCb(8-907)
smrWidth=IsInSmr[xCb][yCb]?SmrW[xCb][yCb]:cbWidth(8-908)
smrHeight=IsInSmr[xCb][yCb]?SmrH[xCb][yCb]:cbHeight(8-909)]]
(或者,可替代地,
/>
亮度块矢量bvL通过以下有序步骤推导:
1.调用如条款8.6.2.3所指定的来自邻近编解码单元的空域块矢量候选的推导过程,其中以设置为等于(/>[[xSmr,ySmr]])的亮度编解码块位置(xCb,yCb)、设置为等于[[smr]]/>Width和[[smr]]/>Height的亮度编解码块宽度cbWidth和亮度编解码块高度cbHeight作为输入,并且输出为可用性标志availableFlagA1、availableFlagB1以及块矢量bvA1和bvB1
2.块矢量候选列表bvCandList被构建如下:
i=0
if(availableFlagA1)
bvCandList[i++]=bvA1(8-910)
if(availableFlagB1)
bvCandList[i++]=bvB1
3.变量numCurrCand被设置为等于bvCandList
中的Merge候选的数量。
4.当numCurrCand小于MaxNumIbcMergeCand并且NumHmvpIbcCand大于0时,调用如8.6.2.4中指定的IBC基于历史的块矢量候选的推导过程,其中以bvCandList、以及numCurrCand作为输入,并且以修改的bvCandList和numCurrCand作为输出。
5.当numCurrCand小于MaxNumIbcMergeCand时,以下适用,直到numCurrCand等于MaxNumIbcMergeCand:
1.bvCandList[numCurrCand][0]被设置为等于0。
2.bvCandList[numCurrCand][1]被设置为等于0。
3.numCurrCand增加1。
6.变量bvIdx被推导如下:
bvIdx=general_merge_flag[xCb][yCb]?merge_idx[xCb][yCb]:
mvp_l0_flag[xCb][yCb](8-911)
7.进行以下赋值:
bvL[0]=bvCandList[mvIdx][0](8-912)
bvL[1]=bvCandList[mvIdx][1](8-913)8.6.2.3IBC空域块矢量候选的推导过程该过程的输入为:
-当前亮度编解码块的左顶部样点相对于当前图片的左顶部亮度样点的亮度位置(xCb,yCb),
-变量cbWidth,指定亮度样点中的当前编解码块的宽度,-变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出如下:
-邻近编解码单元的可用性标志availableFlagA1和availableFlagB1,-邻近编解码单元的1/16分数样点精度的块矢量bvA1和bvB1,对于availableFlagA1和mvA1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbA1,yNbA1)被设置为等于(xCb-1,yCb+cbHeight-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbA1,yNbA1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableA1
-变量availableFlagA1和bvA1被推导如下:
-如果availableA1等于FALSE,则availableFlagA1被设置为等于0,并且bvA1的两个分量都被设置为等于0。
-否则,availableFlagA1被设置为等于1,并且进行以下赋值:
bvA1=MvL0[xNbA1][yNbA1](8-914)对于availableFlagB1和bvB1的推导,以下适用:
-邻近亮度编解码块内部的亮度位置(xNbB1,yNbB1)被设置为等于(xCb+cbWidth-1,yCb-1)。
-调用如条款6.4.4所指定的邻近块可用性的推导过程,其中以设置为等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)、邻近亮度位置(xNbB1,yNbB1)、设置为等于TRUE的checkPredModeY、以及设置为等于0的cIdx作为输入,并且将输出赋值给块可用性标志availableB1
-变量availableFlagB1和bvB1被推导如下:
-如果以下条件中的一个或多个为真,则availableFlagB1被设置为等于0,并且bvB1的两个分量都被设置为等于0:
-availableB1等于FALSE。
-availableA1等于TRUE,并且亮度位置(xNbA1,yNbA1)和(xNbB1,yNbB1)具有相同的块矢量。
-否则,availableFlagB1被设置为等于1,并且进行以下赋值:
bvB1=MvL0[xNbB1][yNbB1] (8-915)
8.6.2.4IBC基于历史的块矢量候选的推导过程
该过程的输入为:
-块矢量候选列表bvCandList,
-[[变量isInSmr,指定当前编解码单元是否在共享Merge候选区域内部,]]
-
-列表中的可用块矢量候选数量numCurrCand。
该过程的输出为:
-修改的块矢量候选列表bvCandList,
-列表中的修改的运动矢量候选数量numCurrCand。
变量isPrunedA1和isPrunedB1都被设置为等于FALSE。
对于[[smr]]HmvpIbcCandList[hMvpIdx](其中索引hMvpIdx=1.[[smr]]NumHmvpIbcCand)中的每个候选,重复以下有序步骤,直到numCurrCand等于MaxNumIbcMergeCand:
1.变量sameMotion被推导如下:
-如果所有以下条件对于任何候选块矢量N
(其中N为A1或B1)都为真,则sameMotion和isPrunedN都被设置为等于TRUE:
-hMvpIdx小于或等于1。
-候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]等于块矢量候选N。
-isPrunedN等于FALSE。
-否则,sameMotion被设置为等于FALSE。
2.当sameMotion等于FALSE时,候选HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]被添加到块矢量候选列表,如下所示:
bvCandList[numCurrCand++]=HmvpIbcCandList[NumHmvpIbcCand-hMvpIdx]
-(8-916)
图22是视频处理装置2200的框图。装置2200可以用来实施本文描述的方法中的一种或多种。装置2200可以体现在智能电话、平板电脑、计算机、物联网(IoT)接收器等中。装置2200可以包括一个或多个处理器2202、一个或多个存储器2204、以及视频处理硬件2206。(多个)处理器2202可以被配置为实施本文档中描述的一种或多种方法。存储器(多个存储器)2204可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件2206可以用于在硬件电路中实施本文档中描述的一些技术。视频处理硬件2206可以以专用硬件或图形处理器单元(GPU)或专用信号处理块的形式部分地或完全地包括在(多个)处理器2202内。
图23是视频处理方法2300的示例的流程图。方法2300包括,在操作2302,确定使用子块帧内块复制(sbIBC)编解码模式。方法2300还包括,在操作2304,使用sbIBC编解码模式来执行转换。
可以使用以下基于条款的描述来描述一些实施例。
以下条款示出了在前一章节的第1项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码,其中子块的尺寸基于划分规则;以及使用sbIBC编解码模式用于多个子块来执行转换。
2.根据条款1所述的方法,其中,当前视频块是MxN块,其中M和N是整数,并且其中划分规则指定每个子块具有相同的尺寸。
3.根据条款1所述的方法,其中,比特流表示包括指示划分规则或者子块的尺寸的语法元素。
4.根据条款1-3中任一项所述的方法,其中,划分规则根据当前视频块的色彩分量来指定子块的尺寸。
5.根据条款1-4中任一项所述的方法,其中,第一色彩分量的子块可以从对应于当前视频块的第二色彩分量的子块推导它们的运动矢量信息。
以下条款示出了在前一章节的第2项和第6项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码;以及使用sbIBC编解码模式用于多个子块来执行转换,其中该转换包括:确定给定子块的初始化运动矢量(initMV);从initMV识别参考块;以及使用参考块的运动矢量(MV)信息推导给定子块的MV信息。
2.根据条款1所述的方法,其中,确定initMV包括从给定子块的一个或多个邻近块确定initMV。
3.根据条款2所述的方法,其中,一个或多个邻近块按顺序被检查。
4.根据条款1所述的方法,其中,确定initMV包括从运动候选列表推导initMV。
5.根据条款1-4中任一项所述的方法,其中,识别参考块包括将initMV转换为一个像素精度,并基于经转换的initMV来识别参考块。
6.根据条款1-4中任一项所述的方法,其中,识别参考块包括将initMV应用于给定块内的偏移位置,其中偏移位置被表示为从给定子块的预定位置偏移(offsetX,offsetY)。
7.根据条款1至6中任一项所述的方法,其中,推导给定子块的MV包括裁剪参考块的MV信息。
8.根据条款1至7中任一项所述的方法,其中,参考块处于与当前视频块的色彩分量不同的色彩分量。
以下条款示出了在前一章节的第3项、第4项和第5项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:确定在视频区域中的当前视频块和当前视频块的比特流表示之间的转换中使用子块帧内块复制(sbIBC)编解码模式,其中当前视频块被划分为多个子块并且每个子块基于来自视频区域的参考样点进行编解码;以及使用sbIBC编解码模式用于多个子块来执行转换,其中该转换包括生成子块IBC候选。
2.根据条款1所述的方法,其中,子块IBC候选被添加到包括可选运动矢量预测值候选的候选列表。
3.根据条款1所述的方法,其中,子块IBC候选被添加到包括仿射Merge候选的列表。
以下条款示出了在前一章节的第7项、第8项、第9项、第10项、第11项、第12项和第13项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内块编解码(sbIBC)模式处理多个子块中的第一子块以及使用帧内编解码模式处理多个子块中的第二子块。
2.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用帧内编解码模式处理多个子块中的所有子块。
3.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对每个子块进行编解码的调色板编解码模式来处理多个子块中的所有子块。
4.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对多个子块中的第一子块进行编解码的调色板模式来处理第一子块,以及使用帧内块复制编解码模式处理多个子块中的第二子块。
5.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用代表性像素值的调色板用于对多个子块中的第一子块进行编解码的调色板模式来处理第一子块,以及使用帧内编解码模式处理多个子块中的第二子块。
6.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内块编解码(sbIBC)模式处理多个子块中的第一子块以及使用帧间编解码模式处理多个子块中的第二子块。
7.一种视频处理的方法,包括:执行当前视频块的比特流表示和被划分为多个子块的当前视频块之间的转换,其中该转换包括使用子块帧内编解码模式处理多个子块中的第一子块以及使用帧间编解码模式处理多个子块中的第二子块。
以下条款示出了在前一章节的第14项中讨论的技术的示例实施例。
8.根据条款1-7中任一项所述的方法,其中,该方法还包括避免在当前视频块的转换之后更新IBC基于历史的运动矢量预测值表。
以下条款示出了在前一章节的第15项中讨论的技术的示例实施例。
9.根据条款1-7中任一项或多项所述的方法,还包括避免在当前视频块的转换之后更新非IBC基于历史的运动矢量预测值表。
以下条款示出了在前一章节的第16项中讨论的技术的示例实施例。
10.根据条款1-7中任一项所述的方法,其中,该转换包括基于该处理的环路滤波器的选择性使用。
以下条款示出了在前一章节的第1项中讨论的技术的示例实施例。
17.根据条款1-7中任一项所述的方法,其中,执行转换包括通过由于使用该方法而对当前视频块禁用特定编解码模式来执行转换,其中特定编解码模式包括子块变换、仿射运动预测、多参考线帧内预测、基于矩阵的帧内预测、对称运动矢量差(MVD)编解码、利用MVD解码器侧运动推导/细化的Merge、双向光流、简化二次变换或多重变换集中的一个或多个。
以下条款示出了在前一章节的第18项中讨论的技术的示例实施例。
1.根据以上条款中任一项所述的方法,其中,比特流表示中的指示符包括关于如何将该方法应用于当前视频块的信息。
以下条款示出了在前一章节的第19项中讨论的技术的示例实施例。
1.一种视频编码的方法,包括:决定使用以上条款中任一项所述的方法将当前视频块编码为比特流表示;以及在解码器参数集级别或序列参数集级别或视频参数集级别或图片参数集级别或图片头级别或条带头级别或片组头级别或最大编解码单元级别或编解码单元级别或最大编解码单元行级别或LCU组级别或变换单元级别或预测单元级别或视频编解码单元级别在比特流表示中包括指示该决定的信息。
2.一种视频编码的方法,包括:决定使用以上条款中任一项所述的方法,基于编码条件将当前视频块编码为比特流表示;以及使用以上条款中任一项所述的方法执行编码,其中该条件基于以下中的一个或多个:编解码单元、预测单元、变换单元、当前视频块或当前视频块的视频编解码单元的位置,
当前视频块和/或其邻近块的块维度,
当前视频块和/或其邻近块的块形状,
当前视频块和/或其邻近块的帧内模式,
当前视频块的邻近块的运动/块矢量;
当前视频块的色彩格式;
编解码树结构;
当前视频块的条带或片组类型或图片类型;
当前视频块的色彩分量;
当前视频块的时域层ID;
用于比特流表示的简表或级别或标准。
以下条款示出了在前一章节的第20项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:确定使用帧内块复制模式和帧间预测模式用于视频区域中的块和视频区域的比特流表示之间的转换;以及使用帧内块复制模式和帧间预测模式用于视频区域中的块来执行转换。
2.根据条款1所述的方法,其中,视频区域包括视频图片或视频条带或视频片组或视频片。
3.根据条款1-2中任一项所述的方法,其中,帧间预测模式使用可选运动矢量预测值(AMVP)编解码模式。
4.根据条款1-3中任一项所述的方法,其中,执行转换包括从邻近块推导帧内块复制模式的Merge候选。
以下条款示出了在前一章节的第21项中讨论的技术的示例实施例。
1.一种视频处理的方法,包括:在当前视频块和当前视频块的比特流表示之间的转换期间,基于编解码条件来执行运动候选列表构建过程和/或用于更新基于历史的运动矢量预测值表的表更新过程,以及基于运动候选列表构建过程和/或表更新过程来执行转换。
2.根据条款1所述的方法,当满足或不满足编解码条件时,不同的过程可以被应用。
3.根据条款1所述的方法,当满足编解码条件时,不应用基于历史的运动矢量预测值表的更新。
4.根据条款1所述的方法,当满足编解码条件时,来自空域邻近(相邻或非相邻)块的候选的推导被跳过。
5.根据条款1所述的方法,当满足编解码条件时,HMVP候选的推导被跳过。
6.根据条款1所述的方法,编解码条件包括块宽度乘以高度不大于16或32或64。
7.根据条款1所述的方法,编解码条件包括该块以IBC模式进行编解码。
8.根据条款1所述的方法,其中,编解码条件如前一章节第21.b.s.iv项所述。
根据以上条款中任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
根据以上条款中任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块的样点。
一种视频处理装置,包括被配置为实施根据以上条款中任一项或多项所述的方法的处理器。
一种其上存储有代码的计算机可读介质,该代码在执行时使得处理器实施根据以上条款中任一项或多项所述的方法。
图24是示出可以在其中实施本文公开的各种技术的示例视频处理系统2400的框图。各种实施方式可以包括系统2400的一些或所有组件。系统2400可以包括用于接收视频内容的输入2402。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入2402可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统2400可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件2404。编解码组件2404可以将来自输入2402的视频的平均比特率减小到编解码组件2404的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件2404的输出可以被存储,或者经由如由组件2406表示的通信连接而发送。在输入2402处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件2408用于生成像素值或传送到显示接口2410的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然特定视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)、或高清晰度多媒体接口(HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
图25是根据本技术的用于视频处理的方法2500的流程图表示。方法2500包括,在操作2510,为视频的当前块和视频的比特流表示之间的转换确定当前块被划分为多个子块。多个块中的至少一个使用修改的帧内块复制(IBC)编解码技术进行编解码,其中该技术使用来自当前块的当前图片的一个或多个视频区域的参考样点。方法2500包括,在操作2520,基于该确定来执行转换。
在一些实施例中,视频区域包括当前图片、条带、片、图砖或片组。在一些实施例中,在当前块具有M×N的维度的情况下,当前块被划分为多个子块,M和N是整数。在一些实施例中,多个子块具有L×K的相同尺寸,L和K是整数。在一些实施例中,L=K。在一些实施例中,L=4或K=4。
在一些实施例中,多个子块具有不同的尺寸。在一些实施例中,多个子块具有非矩形形状。在一些实施例中,多个子块具有三角形或楔形形状。
在一些实施例中,多个子块中的至少一个子块的尺寸基于最小编解码单元、最小预测单元、最小变换单元或用于运动信息存储的最小单元的尺寸来确定。在一些实施例中,至少一个子块的尺寸被表示为(N1×minW)×(N2×minH),其中minW×minH表示最小编解码单元、预测单元、变换单元或用于运动信息存储的单元的尺寸,并且其中N1和N2是正整数。在一些实施例中,多个子块中的至少一个子块的尺寸基于当前块在比特流表示中被编解码的编解码模式。在一些实施例中,编解码模式至少包括帧内块复制(IBC)Merge模式、或子块时域运动矢量预测模式。在一些实施例中,其中多个子块中的至少一个子块的尺寸在比特流表示中被信令通知。
在一些实施例中,该方法包括确定为该转换将视频的后续块划分为多个子块,其中当前块中的第一子块具有与后续块中的第二子块不同的尺寸。在一些实施例中,根据当前块的维度和后续块的维度,第一子块的尺寸不同于第二子块的尺寸。在一些实施例中,多个子块中的至少一个子块的尺寸基于视频的色彩格式或色彩分量。在一些实施例中,第一子块与视频的第一色彩分量相关联,并且第二子块与视频的第二色彩分量相关联,第一子块和第二子块具有不同的维度。在一些实施例中,在视频的色彩格式为4:2:0的情况下,与亮度分量相关联的第一子块具有2L×2K的维度,并且与色度分量相关联的第二子块具有L×K的维度。在一些实施例中,在视频的色彩格式为4:2:2的情况下,与亮度分量相关联的第一子块具有2L×2K的维度,并且与色度分量相关联的第二子块具有2L×K的维度。在一些实施例中,第一子块与视频的第一色彩分量相关联,并且第二子块与视频的第二色彩分量相关联,第一子块和第二子块具有相同的维度。在一些实施例中,在视频的色彩格式为4:2:0或4:4:4的情况下,与亮度分量相关联的第一子块具有2L×2K的维度,并且与色度分量相关联的第二子块具有2L×2K的维度。
在一些实施例中,与视频的第一色彩分量相关联的第一子块的运动矢量基于与视频的第二色彩分量相关联的一个或多个子块来确定。在一些实施例中,第一子块的运动矢量是与第二色彩分量相关联的一个或多个子块的运动矢量的平均值。在一些实施例中,当前块基于单树分割结构被分割为多个子块。在一些实施例中,当前块与视频的色度分量相关联。在一些实施例中,当前块具有4×4的尺寸。
在一些实施例中,多个子块中的至少一个子块的运动信息基于基于初始运动矢量识别参考块和基于参考块确定子块的运动信息来确定。在一些实施例中,参考块位于当前图片内。在一些实施例中,参考块位于一个或多个参考图片中的参考图片内。在一些实施例中,一个或多个参考图片中的至少一个参考图片是当前图片。在一些实施例中,参考块位于根据时域信息与一个或多个参考图片之一并置的并置参考图片内。在一些实施例中,参考图片基于并置块或并置块的邻近块的运动信息来确定。并置块根据时域信息与当前块并置。在一些实施例中,参考块的初始运动矢量基于当前块的一个或多个邻近块或子块的一个或多个邻近块来确定。在一些实施例中,一个或多个邻近块包括当前块或子块的相邻块和/或非相邻块。在一些实施例中,一个或多个邻近块中的至少一个邻近块和参考块位于相同的图片内。在一些实施例中,一个或多个邻近块中的至少一个邻近块位于一个或多个参考图片中的参考图片内。在一些实施例中,一个或多个邻近块中的至少一个邻近块位于根据时域信息与一个或多个参考图片之一并置的并置参考图片内。在一些实施例中,参考图片基于并置块或并置块的邻近块的运动信息来确定,其中并置块根据时域信息与当前块并置。
在一些实施例中,初始运动矢量等于存储在一个或多个邻近块之一中的运动矢量。在一些实施例中,初始运动矢量基于为该转换检查一个或多个邻近块的顺序来确定。在一些实施例中,初始运动矢量是与当前图片相关联的第一识别的运动矢量。在一些实施例中,参考块的初始运动矢量基于运动候选列表来确定。在一些实施例中,运动候选列表包括帧内块复制(IBC)候选列表、Merge候选列表、子块时域运动矢量预测候选列表或者基于过去运动预测结果确定的基于历史的运动候选列表。在一些实施例中,初始运动矢量基于列表中的所选择的候选来确定。在一些实施例中,所选择的候选是列表中的第一候选。在一些实施例中,候选列表基于使用与传统构建过程中的空域邻近块不同的空域邻近块的过程来构建。
在一些实施例中,参考块的初始运动矢量基于当前图片中的当前块的位置来确定。在一些实施例中,参考块的初始运动矢量基于当前块的维度来确定。在一些实施例中,初始运动矢量被设置为默认值。在一些实施例中,初始运动矢量在视频单元级别在比特流表示中被指示。在一些实施例中,视频单元包括片、条带、图片、图砖、编解码树单元(CTU)行、CTU、编解码树块(CTB)、编解码单元(CU)、预测单元(PU)或变换单元(TU)。在一些实施例中,子块的初始运动矢量不同于当前块的第二子块的另一初始运动块。在一些实施例中,当前块的多个子块的初始运动矢量根据视频单元来不同地确定。在一些实施例中,视频单元包括块、片或条带。
在一些实施例中,在识别参考块之前,初始运动矢量被转换为F像素整数精度,F是大于或等于1的正整数。在一些实施例中,F为1、2或4。在一些实施例中,初始运动矢量被表示为(vx,vy),并且其中经转换的运动矢量(vx’,vy’)被表示为(vx×F,vy×F)。在一些实施例中,子块的左顶部位置被表示为(x,y),并且子块具有L×K的尺寸,L是当前子块的宽度,并且K是子块的高度。参考块被识别为覆盖(x+offsetX+vx’,y+offsetY+vy’)的区域,offsetX和offset是非负值。在一些实施例中,offsetX为0和/或offsetY为0。在一些实施例中,offsetX等于L/2、L/2+1或L/2-1。在一些实施例中,offsetY等于K/2、K/2+1或K/2-1。在一些实施例中,offsetX和/或offsetY被裁剪在一范围内,该范围包括图片、条带、片、图砖或帧内块复制参考区域。
在一些实施例中,子块的运动矢量进一步基于参考块的运动信息来确定。在一些实施例中,在参考块的运动矢量指向当前图片的情况下,子块的运动矢量与参考块的运动矢量相同。在一些实施例中,在参考块的运动矢量指向当前图片的情况下,子块的运动矢量基于将初始运动矢量添加到参考块的运动矢量来确定。在一些实施例中,子块的运动矢量被裁剪在一范围内,使得子块的运动矢量指向帧内块复制参考区域。在一些实施例中,子块的运动矢量是子块的帧内块复制候选的有效运动矢量。
在一些实施例中,子块的一个或多个帧内块复制候选被确定,以用于确定子块的运动信息。在一些实施例中,一个或多个帧内块复制候选被添加到运动候选列表,其中该运动候选列表包括以下之一:子块的Merge候选、子块的子块时域运动矢量预测候选、或子块的仿射Merge候选。在一些实施例中,一个或多个帧内块复制候选位于列表中子块的任何Merge候选之前。在一些实施例中,一个或多个帧内块复制候选位于列表中子块的任何子块时域运动矢量预测候选之后。在一些实施例中,一个或多个帧内块复制候选位于列表中子块的任何继承的或构建的仿射候选之后。在一些实施例中,一个或多个帧内块复制候选是否被添加到运动候选列表基于当前块的编解码模式。在一些实施例中,在使用帧内块复制(IBC)子块时域运动矢量预测模式对当前块进行编解码的情况下,一个或多个帧内块复制候选从运动候选列表中排除。
在一些实施例中,一个或多个帧内块复制候选是否被添加到运动候选列表基于当前块的分割结构。在一些实施例中,一个或多个帧内块复制候选被添加作为列表中的子块的Merge候选。在一些实施例中,一个或多个帧内块复制候选基于不同的初始运动矢量被添加到运动候选列表。在一些实施例中,一个或多个帧内块复制候选是否被添加到运动候选列表在比特流表示中被指示。在一些实施例中,指示运动候选列表的索引是否在比特流表示中被信令通知基于当前块的编解码模式。在一些实施例中,在使用帧内块复制Merge模式对当前块进行编解码的情况下,指示包括帧内块复制Merge候选的运动候选列表的索引在比特流表示中被信令通知。在一些实施例中,在使用帧内块复制子块时域运动矢量预测模式对当前块进行编解码的情况下,指示包括帧内块复制子块时域运动矢量预测候选的运动候选列表的索引在比特流表示中被信令通知。在一些实施例中,帧内块复制子块时域运动矢量预测模式的运动矢量差被应用于多个子块。
在一些实施例中,参考块和子块与视频的相同色彩分量相关联。在一些实施例中,当前块是否被划分为多个子块是基于与当前块相关联的编解码特性。在一些实施例中,编解码特性包括解码器参数集、序列参数集、视频参数集、图片参数集、APS、图片头、条带头、片组头、最大编解码单元(LCU)、编解码单元(CU)、LCU行、LCU组、变换单元、预测单元、预测单元块或视频编解码单元中的比特流表示中的语法标志。在一些实施例中,编解码特性包括编解码单元、预测单元、变换单元、块或视频编解码单元的位置。在一些实施例中,编解码特性包括当前块或当前块的邻近块的维度。在一些实施例中,编解码特性包括当前块或当前块的邻近块的形状。在一些实施例中,编解码特性包括当前块或当前块的邻近块的帧内编解码模式。在一些实施例中,编解码特性包括当前块的邻近块的运动矢量。在一些实施例中,编解码特性包括视频的色彩格式的指示。在一些实施例中,编解码特性包括当前块的编解码树结构。在一些实施例中,编解码特性包括与当前块相关联的条带类型、片组类型或图片类型。在一些实施例中,编解码特性包括与当前块相关联的色彩分量。在一些实施例中,编解码特性包括与当前块相关联的时域层标识符。在一些实施例中,编解码特性包括比特流表示的标准的简表、级别或层级。
图26是根据本技术的用于视频处理的方法2600的流程图表示。方法2600包括,在操作2610,为视频的当前块和视频的比特流表示之间的转换确定当前块被划分为多个子块。根据模式,多个子块中的每一个子块使用对应的编解码技术在编解码表示中被编解码。该方法还包括,在操作2620,基于该确定来执行转换。
在一些实施例中,模式指定使用其中来自视频区域的参考样点被使用的修改的帧内块复制(IBC)编解码技术对多个子块中的第一子块进行编解码。在一些实施例中,模式指定使用其中来自相同子块的样点被使用的帧内预测编解码技术对多个子块中的第二子块进行编解码。在一些实施例中,模式指定使用其中代表性像素值的调色板被使用的调色板编解码技术对多个子块中的第二子块进行编解码。在一些实施例中,模式指定使用其中时域信息被使用的帧间编解码技术对多个子块中的第二子块进行编解码。
在一些实施例中,模式指定使用其中来自相同子块的样点被使用的帧内预测编解码技术对多个子块中的第一子块进行编解码。在一些实施例中,模式指定使用其中代表性像素值的调色板被使用的调色板编解码技术对多个子块中的第二子块进行编解码。在一些实施例中,模式指定使用其中时域信息被使用的帧间编解码技术对多个子块中的第二子块进行编解码。
在一些实施例中,模式指定使用单编解码技术对多个子块中的所有子块进行编解码。在一些实施例中,单编解码技术包括来自相同子块的样点用于对多个子块进行编解码的帧内预测编解码技术。在一些实施例中,单编解码技术包括代表性像素值的调色板用于对多个子块进行编解码的调色板编解码技术。
在一些实施例中,在一种或多种编解码技术的模式适用于当前块的情况下,子块时域运动矢量预测模式的运动候选的基于历史的表对于转换保持相同,运动候选的基于历史的表是基于过去转换中的运动信息来确定的。在一些实施例中,基于历史的表用于IBC编解码技术或非IBC编解码技术。
在一些实施例中,在模式指定使用IBC编解码技术对多个子块中的至少一个子块进行编解码的情况下,至少一个子块的一个或多个运动矢量用于更新IBC子块时域运动矢量预测模式的运动候选的基于历史的表,运动候选的基于历史的表是基于过去转换中的运动信息来确定的。在一些实施例中,在模式指定使用帧间编解码技术对多个子块中的至少一个子块进行编解码的情况下,至少一个子块的一个或多个运动矢量用于更新非IBC子块时域运动矢量预测模式的运动候选的基于历史的表,运动候选的基于历史的表是基于过去转换中的运动信息来确定的。
在一些实施例中,多个子块的边界被滤波的滤波过程的使用是基于根据模式的至少一种编解码技术的使用。在一些实施例中,在应用至少一种编解码技术的情况下,对多个子块的边界进行滤波的滤波过程被应用。在一些实施例中,在应用至少一种编解码技术的情况下,对多个子块的边界进行滤波的滤波过程被省略。
在一些实施例中,根据模式,为该转换对当前块禁用第二编解码技术。在一些实施例中,第二编解码技术包括以下中的至少一种:子块变换编解码技术、仿射运动预测编解码技术、多参考线帧内预测编解码技术、基于矩阵的帧内预测编解码技术、对称运动矢量差(MVD)编解码技术、利用MVD解码器侧运动推导或细化编解码技术的Merge、双向光流编解码技术、具有基于当前块的维度的降维的二次变换编解码技术、或多重变换集编解码技术。
在一些实施例中,根据模式的至少一种编解码技术的使用在比特流表示中被信令通知。在一些实施例中,该使用在序列级别、图片级别、条带级别、片组级别、片级别、图砖级别、编解码树单元(CTU)级别、编解码树块(CTB)级别、编解码单元(CU)级别、预测单元(PU)级别、变换单元(TU)或在另一视频单元级别被信令通知。在一些实施例中,至少一种编解码技术包括修改的IBC编解码技术,并且修改的IBC编解码技术基于指示运动候选列表中的候选的索引值在比特流表示中被指示。在一些实施例中,预定义值被分配给使用修改的IBC编解码技术进行编解码的当前块。
在一些实施例中,根据模式的至少一种编解码技术的使用在转换期间被确定。在一些实施例中,来自当前块的参考样点被使用的用于对当前块进行编解码的帧内块复制(IBC)编解码技术的使用在比特流中被信令通知。在一些实施例中,来自当前块的参考样点被使用的用于对当前块进行编解码的帧内块复制(IBC)编解码技术的使用在转换期间被确定。
在一些实施例中,当前块的多个子块的运动信息用作视频的后续块和比特流表示之间的转换的运动矢量预测值。在一些实施例中,当前块的多个子块的运动信息不被允许用于视频的后续块和比特流表示之间的转换。在一些实施例中,确定当前块被划分为使用至少一种编解码技术进行编解码的多个子块是基于运动候选是否是适用于视频的块或块内的子块的候选。
图27是根据本技术的用于视频处理的方法2700的流程图表示。方法2700包括,在操作2710,为视频的当前块和视频的比特流表示之间的转换,基于与当前块的特性有关的条件来确定与运动候选列表相关联的操作。运动候选列表是针对编解码技术或基于来自视频的先前处理块的信息来构建的。方法2700还包括,在操作2720,基于该确定来执行转换。
在一些实施例中,编解码技术包括Merge编解码技术、帧内块复制(IBC)子块时域运动矢量预测编解码技术、子块Merge编解码技术、IBC编解码技术或使用来自当前块的视频区域的参考样点以用于对当前块的至少一个子块进行编解码的修改的IBC编解码技术。
在一些实施例中,当前块具有W×H的维度,W和H是正整数。条件与当前块的维度有关。在一些实施例中,条件与当前块的编解码信息或当前块的邻近块的编解码信息有关。在一些实施例中,条件与用于在当前块和另一块之间共享运动候选列表的Merge共享条件有关。
在一些实施例中,操作包括使用Merge编解码技术推导运动候选列表的空域Merge候选。在一些实施例中,操作包括基于当前块的空域邻近块来推导运动候选列表的运动候选。在一些实施例中,空域邻近块包括当前块的相邻块或非相邻块。
在一些实施例中,操作包括推导基于来自视频的先前处理块的信息而构建的运动候选列表的运动候选。在一些实施例中,操作包括推导运动候选列表的成对Merge候选。在一些实施例中,操作包括移除运动候选列表中的冗余条目的一个或多个修剪操作。在一些实施例中,一个或多个修剪操作用于运动候选列表中的空域Merge候选。
在一些实施例中,操作包括在转换之后更新基于来自视频的先前处理块的信息而构建的运动候选列表。在一些实施例中,更新包括将推导的候选添加到运动候选列表中,而无需移除运动候选列表中的冗余的修剪操作。在一些实施例中,操作包括在运动候选列表中添加默认运动候选。在一些实施例中,默认运动候选包括使用IBC子块时域运动矢量预测编解码技术的零运动候选。在一些实施例中,在满足条件的情况下,操作被跳过。
在一些实施例中,操作包括按预定义顺序检查运动候选列表中的运动候选。在一些实施例中,操作包括检查运动候选列表中的预定义数量的运动候选。在一些实施例中,在W×H大于或等于阈值的情况下,满足条件。在一些实施例中,在W×H大于或等于阈值并且使用IBC子块时域运动矢量预测编解码技术或Merge编解码技术对当前块进行编解码的情况下,满足条件。在一些实施例中,阈值为1024。
在一些实施例中,在W和/或H大于或等于阈值的情况下,满足条件。在一些实施例中,阈值为32。在一些实施例中,在W×H小于或等于阈值并且使用IBC子块时域运动矢量预测编解码技术或Merge编解码技术对当前块进行编解码的情况下,满足条件。在一些实施例中,阈值为16。在一些实施例中,阈值为32或64。在一些实施例中,在满足条件的情况下,包括将基于空域邻近块确定的候选插入运动候选列表的操作被跳过。
在一些实施例中,在W等于T2,H等于T3,并且当前块上方的邻近块可用并使用与当前块相同的编解码技术进行编解码的情况下,满足条件,T2和T3是正整数。在一些实施例中,在邻近块和当前块在相同的编解码树单元中的情况下,满足条件。
在一些实施例中,在W等于T2,H等于T3,并且当前块上方的邻近块不可用或者在当前块所在的当前编解码树单元之外的情况下,满足条件,T2和T3是正整数。在一些实施例中,T2为4,并且T3为8。在一些实施例中,在W等于T4,H等于T5,并且当前块左侧的邻近块可用并使用与当前块相同的编解码技术进行编解码的情况下,满足条件,T4和T5是正整数。在一些实施例中,在W等于T4,H等于T5,并且当前块左侧的邻近块不可用的情况下,满足条件,T4和T5是正整数。在一些实施例中,T4为8,并且T5为4。
在一些实施例中,在W×H小于或等于阈值,使用IBC子块时域运动矢量预测编解码技术或Merge编解码技术对当前块进行编解码,并且使用相同的编解码技术对当前块上方的第一邻近块和当前块左侧的第二邻近块进行编解码的情况下,满足条件。在一些实施例中,第一邻近块和第二邻近块可用并且使用IBC编解码技术进行编解码,并且其中第二邻近块与当前块在相同的编解码树单元内。在一些实施例中,第一邻近块不可用,并且其中第二邻近块可用并与当前块在相同的编解码树单元内。在一些实施例中,第一邻近块和第二邻近块不可用。在一些实施例中,第一邻近块可用,并且第二邻近块不可用。在一些实施例中,第一邻近块不可用,并且第二邻近块在当前块所在的编解码树单元之外。在一些实施例中,第一邻近块可用,并且第二邻近块在当前块所在的编解码树单元之外。在一些实施例中,阈值为32。在一些实施例中,第一邻近块和第二邻近块用于推导空域Merge候选。在一些实施例中,当前块的左顶部样点位于(x,y),并且其中第二邻近块覆盖位于(x-1,y+H-1)的样点。在一些实施例中,当前块的左顶部样点位于(x,y),并且其中第二邻近块覆盖位于(x+W-1,y-1)的样点。
在一些实施例中,相同的编解码技术包括IBC编解码技术。在一些实施例中,相同的编解码技术包括帧间编解码技术。在一些实施例中,当前块的邻近块具有等于A×B的维度。在一些实施例中,当前块的邻近块具有大于A×B的维度。在一些实施例中,当前块的邻近块具有小于A×B的维度。在一些实施例中,A×B等于4×4。在一些实施例中,阈值是预定义的。在一些实施例中,阈值在比特流表示中被信令通知。在一些实施例中,阈值基于当前块的编解码特性,编解码特性包括当前块被编解码的编解码模式。
在一些实施例中,在当前块具有共享运动候选列表的父节点并且使用IBC子块时域运动矢量预测编解码技术或Merge编解码技术对当前块进行编解码的情况下,满足条件。在一些实施例中,条件根据当前块的编解码特性来自适应地改变。
图28是根据本技术的用于视频处理的方法2800的流程图表示。方法2800包括,在操作2810,为视频的当前块和视频的比特流表示之间的转换确定使用基于时域信息的帧间编解码技术进行编解码的当前块被划分为多个子块。多个块中的至少一个使用修改的帧内块复制(IBC)编解码技术进行编解码,其中该技术使用来自包括当前块的当前图片的一个或多个视频区域的参考样点。方法2800包括,在操作2820,基于该确定来执行转换。
在一些实施例中,视频区域包括当前图片、条带、片、图砖或片组。在一些实施例中,帧间编解码技术包括子块时域运动矢量编解码技术,并且其中指示当前块是否基于当前图片和不同于当前图片的参考图片进行编解码的一个或多个语法元素被包括在比特流表示中。在一些实施例中,在基于当前图片和参考图片对当前块进行编解码的情况下,一个或多个语法元素指示用于对当前块进行编解码的参考图片。在一些实施例中,一个或多个语法元素还指示与参考图片相关联的运动信息,运动信息至少包括运动矢量预测索引、运动矢量差或运动矢量精度。在一些实施例中,第一参考图片列表仅包括当前图片,并且第二参考图片列表仅包括参考图片。在一些实施例中,帧间编解码技术包括时域Merge编解码技术,并且运动信息基于当前块的邻近块来确定,运动信息至少包括运动矢量或参考图片。在一些实施例中,在仅基于当前图片确定邻近块的情况下,运动信息仅适用于当前图片。在一些实施例中,在基于当前图片和参考图片确定邻近块的情况下,运动信息适用于当前图片和参考图片。在一些实施例中,仅在基于当前图片和参考图片确定邻近块的情况下,运动信息才适用于当前图片。在一些实施例中,在仅基于参考图片确定邻近块的情况下,对于确定Merge候选,邻近块被丢弃。
在一些实施例中,固定加权因子被分配给来自当前图片的参考块和来自参考图片的参考块。在一些实施例中,固定加权因子在比特流表示中被信令通知。
在一些实施例中,执行转换包括基于视频的块来生成比特流表示。在一些实施例中,执行转换包括从比特流表示生成视频的块。
应当理解,公开了用于视频编码或视频解码的技术。视频编码器或解码器可以采用这些技术来一起使用帧内块复制和基于子块的视频处理,以实现更大的编解码效率和性能。
所公开的技术的一些实施例包括做出启用视频处理工具或模式的决定或确定。在示例中,当启用视频处理工具或模式时,编码器将在视频的块的处理中使用或实施该工具或模式,但是可能不一定基于工具或模式的使用来修改产生的比特流。也就是说,当基于该决定或确定启用视频处理工具或模式时,从视频的块到视频的比特流表示的转换将使用视频处理工具或模式。在另一示例中,当启用视频处理工具或模式时,解码器将在知道比特流已经基于视频处理工具或模式进行修改的情况下处理比特流。也就是说,从视频的比特流表示到视频的块的转换将使用基于该决定或确定而启用的视频处理工具或模式来执行。
所公开的技术的一些实施例包括做出禁用视频处理工具或模式的决定或决定。在示例中,当禁用视频处理工具或模式时,编码器将不在视频的块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当禁用视频处理工具或模式时,解码器将在知道比特流没有使用基于该决定或确定而启用的视频处理工具或模式进行修改的情况下处理比特流。
本文档中描述的所公开的以及其他解决方案、示例、实施例、模块和功能操作可以在数字电子电路中、或者在计算机软件、固件或硬件(包括本文档中公开的结构及其结构等同物)中、或者在它们中的一个或多个的组合中被实施。所公开的以及其他实施例可以被实施为一个或多个计算机程序产品,例如编码在计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。传播信号是被生成以对信息进行编码以用于发送到合适的接收器装置的人工生成的信号,例如机器生成的电信号、光学信号或电磁信号。
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本文档书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可换式磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何主题或可能要求保护的范围的限制,而是作为特定于特定技术的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。

Claims (86)

1.一种视频处理的方法,包括:
为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;
基于运动候选列表来确定视频块的运动信息;
基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及
基于视频块的运动信息来执行转换;
其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
2.根据权利要求1所述的方法,其中,所述运动候选列表和所述基于历史的预测值表在第一预测模式下被应用,所述运动候选列表是视频块的块矢量候选列表,并且所述基于历史的预测值表中的运动候选集合包括块矢量候选,
其中,在第一预测模式下,视频块的预测样点从包括视频块的相同视频区域的样点值的块中推导。
3.根据权利要求2所述的方法,其中,响应于所述视频块的维度大于阈值,所述基于历史的预测值表利用视频块的运动信息来更新。
4.根据权利要求2所述的方法,其中,在所述第一预测模式下,构建块矢量候选列表包括插入从视频块的空域邻近块推导的块矢量候选。
5.根据权利要求4所述的方法,其中,响应于所述视频块的维度大于阈值,从视频块的空域邻近块推导的块矢量候选被插入到块矢量候选列表。
6.根据权利要求4所述的方法,其中,响应于所述空域邻近块的预测模式与所述第一预测模式相同,从所述视频块的空域邻近块推导的块矢量候选被插入到块矢量候选列表。
7.根据权利要求4所述的方法,其中,在所述第一预测模式中,当将所述块矢量候选插入到块矢量候选列表时,一个或多个修剪操作被执行,并且响应于所述视频块的维度不大于阈值,最大修剪操作的数量被减少或设置为0。
8.根据权利要求4所述的方法,其中,响应于所述视频块的维度不大于阈值,所述块矢量候选列表仅包括来自基于历史的预测值表的运动候选和/或默认候选。
9.根据权利要求3所述的方法,其中,大于阈值的视频块的维度为大于16的W×H,其中W是视频块的宽度,并且H是视频块的高度。
10.根据权利要求1所述的方法,其中,所述运动候选列表和所述基于历史的预测值表在第二预测模式下被应用,
其中,在第二预测模式下,视频块的预测样点从不同于包括视频块的图片的解码图片的样点值的块中推导。
11.根据权利要求10所述的方法,其中,响应于满足所述预定条件,所述基于历史的预测值表利用视频块的运动信息来更新,
其中,预定条件与视频块的维度和比特流中包括的阈值之间的关系有关。
12.根据权利要求11所述的方法,其中,来自基于历史的预测值表的运动候选和已经存在于运动候选列表中的其他运动候选之间的修剪操作被移除。
13.根据权利要求1所述的方法,其中,所述转换包括将当前视频块编码为比特流。
14.根据权利要求1所述的方法,其中,所述转换包括从比特流解码当前视频块。
15.一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:
为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;
基于运动候选列表来确定视频块的运动信息;
基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及
基于视频块的运动信息来执行转换;
其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
16.根据权利要求15所述的装置,其中,响应于所述视频块的维度大于阈值,所述基于历史的预测值表利用视频块的运动信息来更新;并且
其中,所述运动候选列表和所述基于历史的预测值表在第一预测模式下被应用,所述运动候选列表是视频块的块矢量候选列表,并且所述基于历史的预测值表中的运动候选集合包括块矢量候选,
其中,在第一预测模式下,视频块的预测样点从包括视频块的相同视频区域的样点值的块中推导。
17.根据权利要求16所述的装置,其中,大于阈值的视频块的维度为大于16的W×H,其中W是视频块的宽度,并且H是视频块的高度。
18.根据权利要求15所述的装置,其中,响应于满足所述预定条件,所述基于历史的预测值表利用视频块的运动信息来更新,其中预定条件与视频块的维度和信令通知的阈值之间的关系有关,并且
其中,所述运动候选列表和所述基于历史的预测值表在第二预测模式下被应用,
其中,在第二预测模式下,视频块的预测样点从不同于包括视频块的图片的解码图片的样点值的块中推导。
19.一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:
为视频的视频块和所述视频的比特流之间的转换构建运动候选列表;
基于运动候选列表来确定视频块的运动信息;
基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及
基于视频块的运动信息来执行转换;
其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
20.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:
为视频的视频块构建运动候选列表;
基于运动候选列表来确定视频块的运动信息;
基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;以及
基于视频块的运动信息来生成所述比特流;
其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
21.一种用于存储视频的比特流的方法,包括:
为视频的视频块构建运动候选列表;
基于运动候选列表来确定视频块的运动信息;
基于预定条件来确定是否利用视频块的运动信息更新基于历史的预测值表,其中所述预定条件与视频块的维度有关;
基于视频块的运动信息来生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中,
其中,基于历史的预测值表包括运动候选集合,所述运动候选中的每一个与先前视频块的对应运动信息相关联,并且基于历史的预测值表中的运动候选的排列基于将运动候选添加到表中的序列。
22.一种处理视频数据的方法,包括:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及
基于所述确定来执行所述转换。
23.根据权利要求22所述的方法,其中,所述多个子块具有L×K的相同尺寸,L和K是整数。
24.根据权利要求22所述的方法,其中,所述多个子块中的至少一个子块的尺寸基于最小编解码单元、最小预测单元、最小变换单元或用于运动信息存储的最小单元的尺寸来确定。
25.根据权利要求22所述的方法,包括:
确定为所述转换将所述视频的后续块划分为多个子块,其中所述当前块中的第一子块具有与所述后续块中的第二子块不同的尺寸。
26.根据权利要求22所述的方法,其中,所述多个子块中的至少一个子块的尺寸基于所述视频的色彩格式或色彩分量。
27.根据权利要求22所述的方法,其中,与所述视频的第一色彩分量相关联的第一子块的运动矢量基于与所述视频的第二色彩分量相关联的一个或多个子块来确定。
28.根据权利要求22所述的方法,其中,所述多个子块中的至少一个子块的运动信息基于以下来确定:
基于初始运动矢量来识别参考块,以及
基于所述参考块确定子块的运动信息。
29.根据权利要求28所述的方法,其中,所述参考块位于一个或多个参考图片中的参考图片内。
30.根据权利要求28所述的方法,其中,所述参考块的初始运动矢量基于所述当前块的一个或多个邻近块或所述子块的一个或多个邻近块来确定。
31.根据权利要求30所述的方法,其中,所述一个或多个邻近块中的至少一个邻近块位于一个或多个参考图片中的参考图片内。
32.根据权利要求28所述的方法,其中,所述参考块的初始运动矢量基于运动候选列表来确定。
33.根据权利要求28所述的方法,其中,在识别所述参考块之前,所述初始运动矢量被转换为F像素整数精度,F是大于或等于1的正整数。
34.根据权利要求33所述的方法,其中,所述初始运动矢量被表示为(vx,vy),并且其中经转换的运动矢量(vx’,vy’)被表示为(vx×F,vy×F)。
35.根据权利要求28所述的方法,其中,所述子块的一个或多个帧内块复制候选被确定,以用于确定所述子块的运动信息。
36.根据权利要求35所述的方法,其中,所述一个或多个帧内块复制候选被添加到运动候选列表,其中所述运动候选列表包括以下之一:所述子块的Merge候选、所述子块的子块时域运动矢量预测候选、或所述子块的仿射Merge候选。
37.根据权利要求36所述的方法,其中,指示所述运动候选列表的索引是否在所述比特流中被信令通知基于所述当前块的编解码模式。
38.根据权利要求22所述的方法,其中,所述转换包括将所述当前块编码为所述比特流。
39.根据权利要求22所述的方法,其中,所述转换包括从所述比特流解码所述当前块。
40.一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及
基于所述确定来执行所述转换。
41.一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及
基于所述确定来执行所述转换。
42.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:
确定所述视频的当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;以及
基于所述确定来生成所述比特流。
43.一种用于存储视频的比特流的方法,包括:
确定所述视频的当前块被划分为多个子块,其中所述多个子块中的至少一个子块使用修改的帧内块复制IBC编解码技术进行编解码,所述修改的IBC编解码技术使用来自所述当前块的当前图片的一个或多个视频区域的参考样点;
基于所述确定来生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
44.一种处理视频数据的方法,包括:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及
基于所述确定来执行所述转换。
45.根据权利要求44所述的方法,其中,所述模式指定使用来自视频区域的参考样点被使用的修改的帧内块复制IBC编解码技术对所述多个子块中的第一子块进行编解码。
46.根据权利要求45所述的方法,其中,所述模式指定通过使用从由以下组成的组中选择的一个对所述多个子块中的第二子块进行编解码:
来自相同子块的样点被使用的帧内预测编解码技术;
代表性像素值的调色板被使用的调色板编解码技术;以及
时域信息被使用的帧间编解码技术。
47.根据权利要求44所述的方法,其中,所述模式指定使用来自相同子块的样点被使用的帧内预测编解码技术对所述多个子块中的第一子块进行编解码。
48.根据权利要求47所述的方法,其中,所述模式指定使用代表性像素值的调色板被使用的调色板编解码技术或使用时域信息被使用的帧间编解码技术对所述多个子块中的第二子块进行编解码。
49.根据权利要求44所述的方法,其中,在一种或多种编解码技术的模式适用于所述当前块的情况下,子块时域运动矢量预测模式的运动候选的基于历史的表对于所述转换保持相同,所述运动候选的基于历史的表是基于过去转换中的运动信息来确定的。
50.根据权利要求44所述的方法,其中,在所述模式指定使用所述IBC编解码技术对所述多个子块中的至少一个子块进行编解码的情况下,所述至少一个子块的一个或多个运动矢量用于更新IBC子块时域运动矢量预测模式的运动候选的基于历史的表,所述运动候选的基于历史的表是基于过去转换中的运动信息来确定的。
51.根据权利要求44所述的方法,其中,在所述模式指定使用所述帧间编解码技术对所述多个子块中的至少一个子块进行编解码的情况下,所述至少一个子块的一个或多个运动矢量用于更新非IBC子块时域运动矢量预测模式的运动候选的基于历史的表,所述运动候选的基于历史的表是基于过去转换中的运动信息来确定的。
52.根据权利要求44所述的方法,其中,所述多个子块的边界被滤波的滤波过程的使用是基于根据所述模式的至少一种编解码技术的使用。
53.根据权利要求52所述的方法,其中,在应用所述至少一种编解码技术的情况下,对所述多个子块的边界进行滤波的滤波过程被应用。
54.根据权利要求44所述的方法,其中,根据所述模式,为所述转换对所述当前块禁用第二编解码技术。
55.根据权利要求44所述的方法,其中,根据所述模式的至少一种编解码技术的使用在所述比特流中被信令通知。
56.根据权利要求55所述的方法,其中,所述至少一种编解码技术包括所述修改的IBC编解码技术,并且所述修改的IBC编解码技术基于指示运动候选列表中的候选的索引值而在所述比特流中被指示。
57.根据权利要求44所述的方法,其中,所述当前块的多个子块的运动信息用作用于所述视频的后续块和所述比特流之间的转换的运动矢量预测值。
58.根据权利要求44所述的方法,其中,所述当前块的多个子块的运动信息不被允许用于所述视频的后续块和所述比特流之间的转换。
59.根据权利要求44所述的方法,其中,确定所述当前块被划分为使用至少一种编解码技术进行编解码的多个子块是基于运动候选是否是适用于视频的块或所述块内的子块的候选。
60.根据权利要求44所述的方法,其中,所述转换包括将所述当前块编码为所述比特流。
61.根据权利要求44所述的方法,其中,所述转换包括从所述比特流解码所述当前块。
62.一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及
基于所述确定来执行所述转换。
63.一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:
为视频的当前块和所述视频的比特流之间的转换确定所述当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及
基于所述确定来执行所述转换。
64.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:
确定所述视频的当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;以及
基于所述确定来生成所述比特流。
65.一种用于存储视频的比特流的方法,包括:
确定所述视频的当前块被划分为多个子块,其中根据模式,所述多个子块中的每一个子块使用对应的编解码技术在所述比特流中被编解码;
基于所述确定来生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中。
66.一种用于视频处理的方法,包括:
为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;
为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及
基于所述构建来执行所述转换;
其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且
其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
67.根据权利要求66所述的方法,其中,来自所述基于历史的运动候选列表的一个或多个运动候选被添加到所述块运动列表,而无需修剪。
68.根据权利要求66所述的方法,其中,来自所述基于历史的运动候选列表的前N个条目添加到所述块运动列表中被跳过,N是非负整数。
69.根据权利要求66所述的方法,其中,来自所述基于历史的运动候选列表的后M个条目添加到所述块运动列表中被跳过,M是非负整数。
70.根据权利要求66所述的方法,其中,来自所述基于历史的运动候选列表的无效块矢量添加到所述块运动列表中被跳过。
71.根据权利要求66所述的方法,其中,来自所述基于历史的运动候选列表的运动候选基于与所述运动候选相对应的块的尺寸而被确定为添加到所述块运动列表中。
72.根据权利要求71所述的方法,其中,响应于与所述运动候选相对应的块的尺寸满足条件,来自所述基于历史的运动候选列表的运动候选被确定为添加到所述块运动列表中。
73.根据权利要求66所述的方法,其中,响应于与所述运动候选相对应的块的尺寸满足条件,所述块运动列表仅包括来自所述基于历史的运动候选列表的一个或多个运动候选。
74.根据权利要求73所述的方法,其中,响应于W*H不大于阈值,所述块运动列表仅包括来自所述基于历史的运动候选列表的一个或多个运动候选,其中W表示所述当前块的宽度,H表示所述当前块的高度。
75.根据权利要求74所述的方法,其中,所述阈值等于16。
76.根据权利要求66所述的方法,其中,所述转换包括将所述当前块编码为所述比特流。
77.根据权利要求66所述的方法,其中,所述转换包括从所述比特流解码所述当前块。
78.一种用于处理视频数据的装置,包括处理器和其上具有指令的非暂时性存储器,其中所述指令在由所述处理器执行时使得所述处理器:
为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;
为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及
基于所述构建来执行所述转换;
其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且
其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
79.根据权利要求78所述的装置,其中,来自所述基于历史的运动候选列表的一个或多个运动候选被添加到所述块运动列表,而无需修剪。
80.根据权利要求78所述的装置,其中,来自所述基于历史的运动候选列表的前N个条目添加到所述块运动列表中被跳过,N是非负整数,或者
其中,来自所述基于历史的运动候选列表的后M个条目添加到所述块运动列表中被跳过,M是非负整数。
81.根据权利要求78所述的装置,其中,来自所述基于历史的运动候选列表的无效块矢量添加到所述块运动列表中被跳过。
82.根据权利要求78所述的装置,其中,响应于与所述运动候选相对应的块的尺寸满足条件,来自所述基于历史的运动候选列表的运动候选被确定为添加到所述块运动列表中。
83.根据权利要求78所述的装置,其中,响应于W*H不大于16,所述块运动列表仅包括来自所述基于历史的运动候选列表的一个或多个运动候选,其中W表示所述当前块的宽度,H表示所述当前块的高度。
84.一种存储指令的非暂时性计算机可读存储介质,所述指令使得处理器:
为视频的当前图片的当前块和所述视频的比特流之间的转换确定第一预测模式被应用于所述当前块;
为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及
基于所述构建来执行所述转换;
其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且
其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
85.一种存储通过由视频处理装置执行的方法生成的视频的比特流的非暂时性计算机可读记录介质,其中所述方法包括:
确定第一预测模式被应用于当前块;
为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;以及
基于所述构建来生成所述比特流;
其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且
其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
86.一种用于存储视频的比特流的方法,包括:
确定第一预测模式被应用于当前块;
为所述当前块构建块运动列表,其中所述块运动列表仅包括来自基于历史的运动候选列表的一个或多个运动候选;
基于所述构建来生成所述比特流;以及
将所述比特流存储在非暂时性计算机可读记录介质中;
其中,所述基于历史的运动候选列表包括根据来自所述视频的先前处理块的信息推导的运动候选,并且
其中,在所述第一预测模式下,来自所述当前块的当前图片的参考样点用于预测所述当前块的至少一部分。
CN202311508163.6A 2019-06-06 2020-06-08 视频编解码的运动候选列表构建 Pending CN117354507A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
CN2019090409 2019-06-06
CNPCT/CN2019/090409 2019-06-06
CN2019092438 2019-06-22
CNPCT/CN2019/092438 2019-06-22
CNPCT/CN2019/105180 2019-09-10
CN2019105180 2019-09-10
PCT/CN2020/094865 WO2020244660A1 (en) 2019-06-06 2020-06-08 Motion candidate list construction for video coding
CN202080041808.8A CN113994699B (zh) 2019-06-06 2020-06-08 视频编解码的运动候选列表构建

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080041808.8A Division CN113994699B (zh) 2019-06-06 2020-06-08 视频编解码的运动候选列表构建

Publications (1)

Publication Number Publication Date
CN117354507A true CN117354507A (zh) 2024-01-05

Family

ID=73652980

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080041808.8A Active CN113994699B (zh) 2019-06-06 2020-06-08 视频编解码的运动候选列表构建
CN202311508163.6A Pending CN117354507A (zh) 2019-06-06 2020-06-08 视频编解码的运动候选列表构建

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080041808.8A Active CN113994699B (zh) 2019-06-06 2020-06-08 视频编解码的运动候选列表构建

Country Status (5)

Country Link
US (2) US11653002B2 (zh)
EP (1) EP3967040A4 (zh)
JP (2) JP7460661B2 (zh)
CN (2) CN113994699B (zh)
WO (1) WO2020244660A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020032531A1 (ko) * 2018-08-06 2020-02-13 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11122260B2 (en) * 2019-02-22 2021-09-14 Mediatek Inc. Method and apparatus of Merge list generation for Intra Block Copy mode
CN113994699B (zh) * 2019-06-06 2024-01-12 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
CN114270862A (zh) 2019-09-03 2022-04-01 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法
US11627328B2 (en) 2020-10-16 2023-04-11 Tencent America LLC Method and apparatus for video coding

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014181A (en) * 1997-10-13 2000-01-11 Sharp Laboratories Of America, Inc. Adaptive step-size motion estimation based on statistical sum of absolute differences
KR20050119422A (ko) * 2004-06-16 2005-12-21 삼성전자주식회사 움직임 보상에 기반한 입력 영상의 노이즈 예측 및 그장치와, 이를 사용한 노이즈 제거 및 동영상 부호화 방법,이를 수행하기 위한 프로그램이 기록된 기록 매체
WO2013077659A1 (ko) * 2011-11-24 2013-05-30 에스케이텔레콤 주식회사 모션 벡터의 예측 부호화/복호화 방법 및 장치
US9549180B2 (en) 2012-04-20 2017-01-17 Qualcomm Incorporated Disparity vector generation for inter-view prediction for video coding
US20130294513A1 (en) * 2012-05-07 2013-11-07 Qualcomm Incorporated Inter layer merge list construction for video coding
US20130329007A1 (en) 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
US20130336406A1 (en) 2012-06-14 2013-12-19 Qualcomm Incorporated Redundancy removal for merge/skip mode motion information candidate list construction
US20140071235A1 (en) 2012-09-13 2014-03-13 Qualcomm Incorporated Inter-view motion prediction for 3d video
US9491461B2 (en) 2012-09-27 2016-11-08 Qualcomm Incorporated Scalable extensions to HEVC and temporal motion vector prediction
US9699450B2 (en) 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US9924168B2 (en) 2012-10-05 2018-03-20 Hfi Innovation Inc. Method and apparatus of motion vector derivation 3D video coding
US9357214B2 (en) 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
US9538180B2 (en) 2012-12-17 2017-01-03 Qualcomm Incorporated Motion vector prediction in video coding
US9253503B2 (en) * 2012-12-18 2016-02-02 Xerox Corporation Computationally efficient motion estimation with learning capabilities for video compression in transportation and regularized environments
CN109982094A (zh) 2013-04-02 2019-07-05 Vid拓展公司 针对可伸缩视频编码的增强型时间运动向量预测
US9609347B2 (en) 2013-04-04 2017-03-28 Qualcomm Incorporated Advanced merge mode for three-dimensional (3D) video coding
US10015515B2 (en) 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
US9800895B2 (en) 2013-06-27 2017-10-24 Qualcomm Incorporated Depth oriented inter-view motion vector prediction
WO2015003383A1 (en) 2013-07-12 2015-01-15 Mediatek Singapore Pte. Ltd. Methods for inter-view motion prediction
CA2909550C (en) 2013-07-15 2018-04-24 Mediatek Singapore Pte. Ltd. Method of disparity derived depth coding in 3d video coding
US9432685B2 (en) 2013-12-06 2016-08-30 Qualcomm Incorporated Scalable implementation for parallel motion estimation regions
CN104754343B (zh) 2013-12-27 2019-07-19 财团法人工业技术研究院 图像处理方法与系统、解码方法、编码器与解码器
AU2014376061B8 (en) 2014-01-03 2019-05-30 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US20150271515A1 (en) * 2014-01-10 2015-09-24 Qualcomm Incorporated Block vector coding for intra block copy in video coding
EP3114839A4 (en) 2014-03-07 2018-02-14 Qualcomm Incorporated Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)
EP3103259A4 (en) 2014-03-13 2017-11-01 Huawei Technologies Co., Ltd. Improved method for screen content coding
EP3140989A4 (en) 2014-05-22 2017-07-05 MediaTek Inc. Method of intra block copy with flipping for image and video coding
EP3155812B1 (en) 2014-06-16 2023-04-05 QUALCOMM Incorporated Simplified shifting merge candidate and merge list derivation in 3d-hevc
KR102034938B1 (ko) * 2014-09-01 2019-10-21 에이치에프아이 이노베이션 인크. 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법
JP2017532885A (ja) 2014-09-26 2017-11-02 ヴィド スケール インコーポレイテッド 時間ブロックベクトル予測を用いたイントラブロックコピー符号化
US9918105B2 (en) * 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
US9854237B2 (en) * 2014-10-14 2017-12-26 Qualcomm Incorporated AMVP and merge candidate list derivation for intra BC and inter prediction unification
US11477477B2 (en) 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
US10306229B2 (en) * 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US10171828B2 (en) 2015-02-27 2019-01-01 Arris Enterprises Llc Modification of unification of intra block copy and inter signaling related syntax and semantics
KR102272971B1 (ko) 2015-04-13 2021-07-05 미디어텍 인크. 비디오 코딩에서 최악의 경우의 대역폭을 줄이기 위한 제약된 인트라 블록 카피 방법
US10148977B2 (en) 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
US10462439B2 (en) 2015-10-02 2019-10-29 Vid Scale, Inc. Color correction with a lookup table
WO2017118409A1 (en) * 2016-01-07 2017-07-13 Mediatek Inc. Method and apparatus for affine merge mode prediction for video coding system
WO2017192898A1 (en) 2016-05-05 2017-11-09 Vid Scale, Inc. Control-point based intra direction representation for intra coding
US10560718B2 (en) 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
US10326986B2 (en) 2016-08-15 2019-06-18 Qualcomm Incorporated Intra video coding using a decoupled tree structure
US10721489B2 (en) 2016-09-06 2020-07-21 Qualcomm Incorporated Geometry-based priority for the construction of candidate lists
US10448010B2 (en) * 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
US11025903B2 (en) 2017-01-13 2021-06-01 Qualcomm Incorporated Coding video data using derived chroma mode
CN110574377B (zh) * 2017-05-10 2021-12-28 联发科技股份有限公司 用于视频编解码的重新排序运动向量预测候选集的方法及装置
US20190014325A1 (en) 2017-07-05 2019-01-10 Industrial Technology Research Institute Video encoding method, video decoding method, video encoder and video decoder
US10785494B2 (en) 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
US20190116374A1 (en) 2017-10-17 2019-04-18 Qualcomm Incorporated Coding motion information of video data using coding structure-based candidate list construction
US11503333B2 (en) 2017-11-14 2022-11-15 Qualcomm Incorporated Unified merge candidate list usage
US11388398B2 (en) 2018-01-11 2022-07-12 Qualcomm Incorporated Video coding using local illumination compensation
CN110419217B (zh) 2018-04-02 2023-09-26 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
MX2020013829A (es) 2018-06-29 2022-05-18 Beijing Bytedance Network Tech Co Ltd Poda parcial/total cuando se añade un candidato a hmvp para fusión/amvp.
EP3791586A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Concept of using one or multiple look up tables to store motion information of previously coded in order and use them to code following blocks
CN114885173A (zh) * 2018-06-29 2022-08-09 抖音视界(北京)有限公司 Lut中的运动候选的检查顺序
TWI704803B (zh) 2018-06-29 2020-09-11 大陸商北京字節跳動網絡技術有限公司 運動信息共享的限制
TWI728389B (zh) 2018-07-01 2021-05-21 大陸商北京字節跳動網絡技術有限公司 基於優先級的非相鄰merge設計
TWI748202B (zh) 2018-07-02 2021-12-01 大陸商北京字節跳動網絡技術有限公司 Lamvr中取整和修剪的順序
BR112021000004A8 (pt) * 2018-07-06 2023-02-07 Mediatek Inc Informações de movimento herdadas para decodificar uma unidade de codificação atual em um sistema de codificação de vídeo
US10440378B1 (en) * 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10362330B1 (en) * 2018-07-30 2019-07-23 Tencent America LLC Combining history-based motion vector prediction and non-adjacent merge prediction
CN112585966B (zh) * 2018-08-13 2023-08-15 Lg电子株式会社 以基于历史的运动向量为基础的帧间预测方法及其装置
WO2020044196A1 (en) 2018-08-26 2020-03-05 Beijing Bytedance Network Technology Co., Ltd. Combined history-based motion vector predictor and multi-motion model decoding
CN111064961B (zh) 2018-09-12 2023-06-09 北京字节跳动网络技术有限公司 视频处理方法和装置
TWI822862B (zh) 2018-09-23 2023-11-21 大陸商北京字節跳動網絡技術有限公司 8參數仿射模型
TWI822863B (zh) 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
US11051034B2 (en) * 2018-10-08 2021-06-29 Qualcomm Incorporated History-based motion vector predictor
WO2020084552A1 (en) 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Motion candidate derivation based on spatial neighboring block in sub-block motion vector prediction
KR20230155014A (ko) 2018-11-02 2023-11-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보 저장을 위한 표 유지
CN111434110B (zh) 2018-11-06 2023-06-20 北京字节跳动网络技术有限公司 用于视频处理的方法、装置和存储介质
JP7157246B2 (ja) 2018-11-06 2022-10-19 北京字節跳動網絡技術有限公司 ジオメトリック分割を用いたインター予測のためのサイド情報信号通知方法
CN112997495B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 当前图片参考中的取整
JP7146086B2 (ja) * 2018-11-12 2022-10-03 北京字節跳動網絡技術有限公司 インター予測のためのバンド幅制御方法
CN112970253A (zh) 2018-11-13 2021-06-15 北京字节跳动网络技术有限公司 用于预测的运动候选列表构建
CN113261293B (zh) 2018-11-13 2023-11-03 北京字节跳动网络技术有限公司 用于帧内块复制的基于历史的运动候选列表构建
CN113016185B (zh) 2018-11-17 2024-04-05 北京字节跳动网络技术有限公司 以运动矢量差分模式控制Merge
CN117528076A (zh) 2018-11-22 2024-02-06 北京字节跳动网络技术有限公司 用于具有几何分割的帧间预测的构建方法
CN113170173B (zh) 2018-11-28 2024-04-12 北京字节跳动网络技术有限公司 变换量化或量化旁路模式的改进方法
CN117880495A (zh) 2018-12-03 2024-04-12 北京字节跳动网络技术有限公司 候选的最大数量的指示方法
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
CN109618157A (zh) * 2018-12-29 2019-04-12 东南大学 一种视频显示流压缩编码的硬件实现系统及方法
JP7343097B2 (ja) 2018-12-29 2023-09-12 エスゼット ディージェイアイ テクノロジー カンパニー リミテッド 動画処理方法、装置、およびコンピュータプログラム
WO2020140242A1 (zh) 2019-01-03 2020-07-09 北京大学 视频处理方法和装置
KR102648159B1 (ko) 2019-01-10 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
US11032560B2 (en) * 2019-01-17 2021-06-08 Tencent America LLC Method and apparatus for video coding without updating the HMVP table
CN113316933A (zh) 2019-01-17 2021-08-27 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波
CN113647109A (zh) 2019-02-17 2021-11-12 北京字节跳动网络技术有限公司 帧内块复制(ibc)模式和非ibc帧间模式的运动候选列表构建
CN113615203A (zh) 2019-03-11 2021-11-05 华为技术有限公司 视频译码中的子图像配置指示
EP3926956A4 (en) 2019-03-13 2022-11-09 SZ DJI Technology Co., Ltd. VIDEO PROCESSING METHOD AND DEVICE
CN113994699B (zh) * 2019-06-06 2024-01-12 北京字节跳动网络技术有限公司 视频编解码的运动候选列表构建
WO2020244659A1 (en) 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Interactions between sub-block based intra block copy and different coding tools
CN114009037A (zh) 2019-06-22 2022-02-01 北京字节跳动网络技术有限公司 帧内块复制模式的运动候选列表构建

Also Published As

Publication number Publication date
JP7460661B2 (ja) 2024-04-02
US11653002B2 (en) 2023-05-16
WO2020244660A1 (en) 2020-12-10
EP3967040A4 (en) 2022-11-30
JP2024023522A (ja) 2024-02-21
US20220103828A1 (en) 2022-03-31
KR20220016840A (ko) 2022-02-10
EP3967040A1 (en) 2022-03-16
JP2022535903A (ja) 2022-08-10
CN113994699A (zh) 2022-01-28
US20230059008A1 (en) 2023-02-23
CN113994699B (zh) 2024-01-12

Similar Documents

Publication Publication Date Title
CN113170181B (zh) 块内拷贝模式中的仿射继承方法
CN114097228B (zh) 具有几何分割模式编解码的运动候选列表
CN113853783B (zh) 对帧内块复制编解码的块的块矢量的编解码
CN113994699B (zh) 视频编解码的运动候选列表构建
CN113924771B (zh) 子块Merge模式中的语法信令
CN114009037A (zh) 帧内块复制模式的运动候选列表构建
CN114128295B (zh) 视频编解码中几何分割模式候选列表的构建
CN113940082A (zh) 基于子块的帧内块复制和不同编解码工具之间的交互
CN117336505A (zh) 解码器侧细化工具的尺寸选择性应用
CN113966616B (zh) 使用临近块信息的运动候选列表构建
CN114450959A (zh) 视频编解码中的几何分割模式
CN113924778A (zh) 具有三角形分割的帧内块复制
CN110719476B (zh) 用时间信息扩展基于查找表的运动矢量预测
CN110719464A (zh) 用时间信息扩展基于查找表的运动矢量预测
KR102662603B1 (ko) 비디오 코딩을 위한 움직임 후보 리스트 구성
CN110719465A (zh) 用时间信息扩展基于查找表的运动矢量预测
CN117915083A (zh) 块内拷贝模式和帧间预测工具之间的交互
CN113557720A (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