CN113383541B - 用于视频编解码中的帧内块复制的缓冲区访问方法 - Google Patents

用于视频编解码中的帧内块复制的缓冲区访问方法 Download PDF

Info

Publication number
CN113383541B
CN113383541B CN202080012071.7A CN202080012071A CN113383541B CN 113383541 B CN113383541 B CN 113383541B CN 202080012071 A CN202080012071 A CN 202080012071A CN 113383541 B CN113383541 B CN 113383541B
Authority
CN
China
Prior art keywords
block
buffer
current
video
samples
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.)
Active
Application number
CN202080012071.7A
Other languages
English (en)
Other versions
CN113383541A (zh
Inventor
许继征
张莉
张凯
刘鸿彬
王悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of CN113383541A publication Critical patent/CN113383541A/zh
Application granted granted Critical
Publication of CN113383541B publication Critical patent/CN113383541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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/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
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

一种可视媒体处理的方法,包括:确定缓冲区的尺寸以存储用于帧内块复制模式下的预测的参考样点;以及使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。

Description

用于视频编解码中的帧内块复制的缓冲区访问方法
相关申请的交叉引用
根据适用的专利法和/或依据巴黎公约的规则,本申请旨在及时要求2019年2月2日提交的第PCT/CN2019/074598号国际专利申请、2019年3月1日提交的第PCT/CN2019/076695号国际专利申请、2019年3月4日提交的第PCT/CN2019/076848号国际专利申请、2019年3月11日提交的第PCT/CN2019/077725号国际专利申请、2019年3月21日提交的第PCT/CN2019/079151号国际专利申请、2019年5月7日提交的第PCT/CN2019/085862号国际专利申请、2019年5月23日提交的第PCT/CN2019/088129号国际专利申请、2019年6月18日提交的第PCT/CN2019/091691号国际专利申请、2019年6月28日提交的第PCT/CN2019/093552号国际专利申请、2019年7月6日提交的第PCT/CN2019/094957号国际专利申请、2019年7月9日提交的第PCT/CN2019/095297号国际专利申请、2019年7月10日提交的第PCT/CN2019/095504号国际专利申请、2019年7月11日提交的第PCT/CN2019/095656号国际专利申请、2019年7月13日提交的第PCT/CN2019/095913号国际专利申请、2019年7月15日提交的第PCT/CN2019/096048号国际专利申请的优先权和利益。出于根据法律的所有目的,前述申请的全部公开通过引用而并入作为本申请的公开的一部分。
技术领域
本专利文档涉及视频编解码和解码技术、设备以及系统。
背景技术
尽管视频压缩有所进步,但数字视频仍占互联网和其它数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。
发明内容
本文档描述了用于对视频或图像进行解码或编码的帧内块复制模式的缓冲区管理和块矢量编解码的各种实施例和技术。
在一个示例方面,公开了一种视频或图像(可视数据)处理的方法。该方法包括:确定缓冲区的尺寸以存储用于帧内块复制模式下的预测的参考样点;以及使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在另一示例方面,公开了另一种可视数据处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之前的重构样点;以及使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种可视数据处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之后的重构样点;以及使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之前的重构样点和环路滤波步骤之后的重构样点两者;以及使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在另一示例方面,公开了另一种视频处理的方法。该方法包括:使用缓冲区来存储用于帧内块复制模式下的预测的参考样点,其中,缓冲区的第一比特深度不同于用于在比特流表示中表示可视媒体数据的第二比特深度;以及使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:初始化缓冲区以存储用于帧内块复制模式下的预测的参考样点,其中,缓冲区用第一值进行初始化;以及使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:初始化缓冲区以存储用于帧内块复制模式下的预测的参考样点,其中,基于可视媒体数据中的一个或多个视频块的可用性,缓冲区用可视媒体数据中的一个或多个视频块的像素值进行初始化;以及使用存储在缓冲区中的参考样点来执行不属于可视媒体数据的一个或多个视频块的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区;使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;以及对于空域上位于位置(x0,y0)处并具有被包括在运动信息中的块矢量(BVx,BVy)的像素,基于参考位置来计算缓冲区中的对应参考(P mod M,Q mod N),其中“mod”是模运算,并且M和N是表示缓冲区的x维度和y维度的整数,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区;使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;以及对于空域上位于位置(x0,y0)处并具有被包括在运动信息中的块矢量(BVx,BVy)的像素,基于参考位置(P,Q)来计算缓冲区中的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,缓冲区内的像素位置使用x数字和y数字进行寻址;以及基于x数字和y数字,使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;对于空域上位于当前视频块的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的;以及当确定参考位置(P,Q)位于缓冲区之外时,使用缓冲区中的样点重新计算参考位置。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;对于在空域上位于当前视频块相对于包括当前视频块的编解码树单元的左上角位置的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的;以及当确定参考位置(P,Q)位于缓冲区之外时,约束参考位置的至少一部分以位于预定义的范围内。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;对于在空域上位于当前视频块相对于包括当前视频块的编解码树单元的左上角位置的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的;以及当确定块矢量(BVx,BVy)位于缓冲区之外时,根据缓冲区之内的样点值的块矢量来填充块矢量(BVx,BVy)。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:在视频和视频的比特流表示之间的转换期间,重置存储用于视频边界处的帧内块复制模式下的预测的参考样点的缓冲区;以及使用存储在缓冲区中的参考样点来执行该转换,其中,视频的视频块的转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:执行当前视频块和当前视频块的比特流表示之间的转换;以及更新用于存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,缓冲区用于后续视频块和后续视频块的比特流表示之间的转换,其中,后续视频块和后续视频块的比特流表示之间的转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和后续视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于当前视频块和当前视频块的比特流表示之间的转换,确定用于存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片;以及响应于确定存储在缓冲区中的重构样点要在该转换期间用于预测样点值,将预处理操作应用于存储在缓冲区中的重构样点。
在又一示例方面,公开了另一种视频处理的方法。该方法包括:对于视频区域的当前虚拟管道数据单元(VPDU)的当前视频块和当前视频块的比特流表示之间的转换,选择性地确定是否使用来自视频区域的偶数行的K1个先前处理的VPDU和/或来自视频区域的奇数行的K2个先前处理的VPDU;以及执行该转换,其中,该转换不包括使用当前VPDU的剩余部分,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
在又一示例方面,公开了一种视频编码器或解码器装置,包括被配置为实施上述方法的处理器。
在另一示例方面,公开了一种计算机可读程序介质。该介质存储体现用于实施所公开的方法中的一种的处理器可执行指令的代码。
在本文档中更详细地描述了这些和其它方面。
附图说明
图1示出了当前图片参考或帧内块复制视频或图像编解码技术的示例。
图2示出了动态参考区域的示例。
图3示出了对从(x,y)开始的块的编解码的示例。
图4示出了选择先前编解码的64×64块的可能的替代方式的示例。
图5示出了改变64×64块的编解码/解码顺序的可能的替代方式的示例。
图6是视频或图像处理的示例方法的流程图。
图7是用于视频或图像编解码或解码的硬件平台的框图。
图8示出了在64×64块的解码顺序是从顶部到底部、从左到右时选择先前编解码的64×64块的另一种可能的替代方式。
图9示出了选择先前编解码的64×64块的另一种可能的替代方式。
图10示出了具有整形的解码过程的示例流程图。
图11示出了在64×64块的解码顺序是从左到右、从顶部到底部时选择先前编解码的64×64块的另一种可能的替代方式。
图12是IBC参考缓冲区状态的图示,其中块表示64×64CTU。
图13示出了用于IBC的参考区域的一种布置。
图14示出了用于IBC的参考区域的另一种布置。
图15示出了当当前虚拟管道数据单元(Virtual Pipeline Data Unit,VPDU)在图片边界的右侧时的用于IBC的参考区域的另一种布置。
图16示出了当CTU行中的VPDU被顺序地解码时的虚拟缓冲区的状态的示例。
图17是可以在其中实施所公开的技术的示例视频处理系统的框图。
图18是可视数据处理的示例方法的流程图。
图19是可视数据处理的示例方法的流程图。
图20是可视数据处理的示例方法的流程图。
图21是可视数据处理的示例方法的流程图。
图22是可视数据处理的示例方法的流程图。
图23是可视数据处理的示例方法的流程图。
图24是可视数据处理的示例方法的流程图。
图25是可视数据处理的示例方法的流程图。
图26是可视数据处理的示例方法的流程图。
图27是可视数据处理的示例方法的流程图。
图28是可视数据处理的示例方法的流程图。
图29是可视数据处理的示例方法的流程图。
图30是可视数据处理的示例方法的流程图。
图31是可视数据处理的示例方法的流程图。
图32是可视数据处理的示例方法的流程图。
图33是可视数据处理的示例方法的流程图。
图34是可视数据处理的示例方法的流程图。
具体实施方式
为了便于理解,在本文档中使用了章节标题,并且不将每个章节中所公开的实施例的范围仅限制于该章节。本文档描述了用于对视频或图像进行解码或编码的帧内块复制模式的缓冲区管理和块矢量编解码的各种实施例和技术。
1.概要
本专利文档涉及视频编解码技术。具体地,它涉及视频编解码中的帧内块复制。它可以被应用于正在开发的标准,例如,多功能视频编解码。它也可以适用于未来的视频编解码标准或视频编解码器。
2.简短讨论
视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展而演变的。ITU-T产生了H.261和H.263,ISO/IEC产生了MPEG-1和MPEG-4 Visual,并且这两个组织联合产生了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.1 HEVC/H.265中的帧间预测
每个帧间预测PU具有一个或两个参考图片列表的运动参数。运动参数包括运动矢量和参考图片索引。也可以使用inter_pred_idc来信令通知对两个参考图片列表之一的使用。运动矢量可以被显式地编解码为相对于预测值的增量(delta)。
当以跳过模式对CU进行编解码时,一个PU与CU相关联,并且没有显著的残差系数,没有编解码的运动矢量增量或参考图片索引。指定了Merge模式,由此从包括空域和时域候选的邻近PU获得当前PU的运动参数。Merge模式可以被应用于任何帧间预测PU,而不仅是针对跳过模式。Merge模式的替代方案是运动参数的显式传输,其中,运动矢量(更确切地说,与运动矢量预测值相比的运动矢量差(Motion Vector Difference,MVD))、每个参考图片列表的对应参考图片索引和参考图片列表使用按每PU被显式地信令通知。这样的模式在本公开中被称为高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)。
当信令指示将使用两个参考图片列表之一时,从一个样点块产生PU。这被称为“单向预测”。单向预测适用于P条带和B条带两者。
当信令指示要使用两个参考图片列表时,从两个样点块产生PU。这被称为“双向预测”。双向预测仅适用于B条带。
下文提供了关于在HEVC中指定的帧间预测模式的细节。描述将以Merge模式开始。
2.2当前图片参考
已经在HEVC屏幕内容编解码扩展(HEVC Screen Content Coding extension,HEVC-SCC)和当前的VVC测试模型中采用了当前图片参考(Current Picture Referencing,CPR),或一度命名为帧内块复制(Intra Block Copy,IBC)。IBC将运动补偿的概念从帧间编解码扩展到帧内编解码。如图1所示,当应用CPR时,当前块通过相同图片中的参考块进行预测。在对当前块进行编解码或解码之前,参考块中的样点必须已经被重构。尽管CPR对大多数相机捕捉的序列来说效率不高,但它示出了对屏幕内容的显著编解码增益。原因是屏幕内容图片中有许多重复图案,诸如图标和文本字符。CPR可以有效地移除这些重复图案之间的冗余。在HEVC-SCC中,如果帧间编解码的编解码单元(Coding Unit,CU)选择当前图片作为其参考图片,则它可以应用CPR。在这种情况下,MV被重命名为块矢量(Block Vector,BV),并且BV总是具有整数像素精确度。为了与主要简表(profile)HEVC兼容,当前图片在解码图片缓冲区(Decoded Picture Buffer,DPB)中被标记为“长期”参考图片。应当注意,类似地,在多视图/3D视频编解码标准中,视图间参考图片也被标记为“长期”参考图片。
在BV找到其参考块之后,可以通过复制参考块来生成预测。残差可以通过从原始信令中减去参考像素而得到。那么变换和量化可以如在其它编解码模式中被应用。
图1是当前图片参考的示例图示。
然而,当参考块在图片之外、或与当前块重叠、或在重构区域之外、或在受某些约束限制的有效区域之外时,部分或全部像素值未被定义。基本上,有两种解决方案解决这样的问题。一种是不允许这种情况,例如,在比特流一致性中。另一种是对那些未定义的像素值应用填充。以下子段详细描述了解决方案。
2.3 HEVC屏幕内容编解码扩展中的CPR
在HEVC的屏幕内容编解码扩展中,当块使用当前图片作为参考时,它应该保证整个参考块在可用的重构区域内,如在下规格文本所指示的:
变量offsetX和offsetY被推导如下:
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-104)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-105)
比特流一致性的一个要求是,当参考图片是当前图片时,亮度运动矢量mvLX应当遵守以下约束:
–当以设置为等于(xCb,yCb)的(xCurr,yCurr)和设置为等于(xPb+(mvLX[0]>>2)–offsetX,yPb+(mvLX[1]>>2)–offsetY)的邻近亮度位置(xNbY,yNbY)作为输入来调用如在条款6.4.1中指定的z扫描顺序块可用性的推导过程时,输出应当等于TRUE(真)。
–当以设置为等于(xCb,yCb)的(xCurr,yCurr)和设置为等于(xPb+(mvLX[0]>>2)+nPbW–1+offsetX,yPb+(mvLX[1]>>2)+nPbH–1+offsetY)的邻近亮度位置(xNbY,yNbY)作为输入来调用如在条款6.4.1中指定的z扫描顺序块可用性的推导过程时,输出应当等于TRUE。
–以下条件中的一个或两个应当为真:
–(mvLX[0]>>2)+nPbW+xB1+offsetX的值小于或等于0。
–(mvLX[1]>>2)+nPbH+yB1+offsetY的值小于或等于0。
–以下条件应当为真:
(xPb+(mvLX[0]>>2)+nPbSw–1+offsetX)/CtbSizeY–xCb/CtbSizeY<=yCb/CtbSizeY–(yPb+(mvLX[1]>>2)+nPbSh–1+offsetY)/CtbSizeY (8-106)
因此,不会发生参考块与当前块重叠或者参考块在图片之外的情况。不需要填充参考或预测块。
2.4 CPR/IBC的示例
在VVC测试模型中,整个参考块应该具有当前编解码树单元(Coding Tree Unit,CTU),并且不与当前块重叠。因此,不需要填充参考或预测块。
当启用双树(dual tree)时,从亮度CTU到色度CTU,分割结构可以不同。因此,对于4:2:0颜色格式,一个色度块(例如,CU)可以对应于已经被划分为多个亮度CU的一个并置亮度区域。
当以下条件应当为真时,色度块只能以CPR模式进行编解码:
1)并置亮度块内的每个亮度CU都应当以CPR模式进行编解码
2)亮度4×4块的BV中的每一个首先被转换为色度块的BV,并且色度块的BV是有效BV。
如果两个条件中的任何一个为假(false),色度块不应以CPR模式进行编解码。
注意,“有效BV”的定义具有以下约束:
1)由BV标识的参考块内的所有样点应当在受限的搜索范围内(例如,在当前VVC设计中,应当在相同CTU内)。
2)由BV标识的参考块内的所有样点都已经被重构。
2.5 CPR/IBC的示例
在一些示例中,用于CPR/IBC的参考区域被限制到当前CTU,其多达128×128。参考区域被动态地改变以重用内存来存储用于CPR/IBC的参考样点,使得CPR/IBC块可以具有更多的参考候选,而用于CPR/IBC的参考缓冲区可以保持或从一个CTU减少。
图2示出了一种方法,其中块为64×64,并且CTU包含4个64×64块。当对64×64块进行编解码时,先前的3个64×64块可以被用作参考。通过这样做,解码器只需要存储4个64×64块来支持CPR/IBC。
假设当前亮度CU相对于图片的左上角的位置为(x,y),并且块矢量为(BVx,BVy)。在当前设计中,BV是否有效可以通过亮度位置((x+BVx)>>6<<6+(1<<7),(y+BVy)>>6<<6)还未被重构并且((x+BVx)>>6<<6+(1<<7),(y+BVy)>>6<<6)不等于(x>>6<<6,y>>6<<6)进行判断。
2.6环路整形(In-loop Reshaping,ILR)
环路整形(ILR)的基本思想是将原始(在第一域)信号(预测/重构信号)转换到第二域(整形域)。
环路亮度整形器被实施为一对查找表(Look-Up Table,LUT),但是两个LUT中只有一个需要被信令通知,因为另一个LUT可以从信令通知的LUT计算。每个LUT都是一维的、10比特的、1024条目的映射表(1D-LUT)。一个LUT是正向LUT,FwdLUT,其将输入亮度码值Yi映射到变更值Yr:Yr=FwdLUT[Yi]。另一个LUT是逆向LUT,InvLUT,其将变更码值Yr映射到 (/>表示Yi的重构值)。
2.6.1 PWL模型
概念性地,分段线性(Piece-Wise Linear,PWL)以以下方式被实施:
假定x1、x2为两个输入枢轴点,并且y1、y2为它们对于一个段(piece)的对应的输出枢轴点。x1和x2之间的任何输入值x的输出值y可以通过以下等式进行插值:
y=((y2-y1)/(x2-x1))*(x-x1)+y1
在定点实施方式中,等式可以改写为:
y=((m*x+2FP_PREC-1)>>FP_PREC)+c
其中m是标量,c是偏移量,FP_PREC是指定精确度的恒定值。
在一些示例中,PWL模型用于预先计算1024条目的FwdLUT和InvLUT映射表;但是PWL模型也允许在不预先计算LUT的情况下即时计算相同的映射值的实施方式。
2.6.2.1亮度整形
一种环路亮度整形的方法提供了更低复杂度的管道,该管道还消除了帧间条带重构中逐块帧内预测的解码时延。帧内预测在帧间和帧内条带两者的整形域中执行。
无论条带类型如何,帧内预测总是在整形域中执行。在这种布置下,帧内预测可以在先前的TU重构完成之后立即开始。这样的布置还可以为帧内模式提供统一的过程,而不是依赖于条带。图10示出了基于模式的CE12-2解码过程的框图。
针对亮度和色度残差缩放测试了16段分段线性(PWL)模型,而不是32段PWL模型。
利用环路亮度整形器的帧间条带重构(浅绿色阴影块指示整形域中的信令:亮度残差;帧内亮度预测的;和帧内亮度重构的)。
2.6.2.2依赖于亮度的色度残差缩放
依赖于亮度的色度残差缩放是一个用定点整数运算实施的乘法过程。色度残差缩放补偿亮度信号与色度信号的相互作用。色度残差缩放被应用于TU级别。更具体地,以下适用:
–对于帧内,对重构亮度进行平均。
–对于帧间,对预测亮度进行平均。
平均用于标识PWL模型中的索引。该索引标识缩放因子cScaleInv。色度残差乘以该数。
注意,色度缩放因子是根据正向映射的预测亮度值而不是重构亮度值来计算的。
2.6.2.3 ILR边信息的信令通知
参数(当前)在片组头中传送(类似于ALF)。这些据称需要40-100比特。
在一些示例中,添加的语法以斜体进行突出显示。
7.3.2.1中序列参数集RBSP语法
7.3.3.1中通用片组头语法
添加新的语法表片组整形器模型:
在通用序列参数集RBSP语义中,添加以下语义:
sps_reshaper_enabled_flag等于1指定在编解码视频序列(Coded VideoSequence,CVS)中使用整形器。sps_reshaper_enabled_flag等于0指定在CVS中不使用整形器。
在片组头语法中,添加以下语义
tile_group_reshaper_model_present_flag等于1指定tile_group_reshaper_model()存在于片组头中。tile_group_reshaper_model_present_flag等于0指定tile_group_reshaper_model()不存在于片组头中。当tile_group_reshaper_model_present_flag不存在时,它被推断为等于0。
tile_group_reshaper_enabled_flag等于1指定对当前片组启用整形器。tile_group_reshaper_enabled_flag等于0指定不对当前片组启用整形器。当tile_group_reshaper_enable_flag不存在时,它被推断为等于0。
tile_group_reshaper_chroma_residual_scale_flag等于指定对当前片组启用色度残差缩放。tile_group_reshaper_chroma_residual_scale_flag等于0指定不对当前片组启用色度残差缩放。当tile_group_reshaper_chroma_residual_scale_flag不存在时,它被推断为等于0。添加tile_group_reshaper_model()语法
reshape_model_min_bin_idx指定要在整形器构建过程中使用的最小二进制位(或段)索引。reshape_model_min_bin_idx的值应在0至MaxBinIdx的范围内,包括0和MaxBinIdx。MaxBinIdx的值应当等于15。
reshape_model_delta_max_bin_idx指定最大允许的二进制位(或段)索引MaxBinIdx减去要在整形器构建过程中使用的最大二进制位索引。reshape_model_max_bin_idx的值被设置为等于MaxBinIdx–reshape_model_delta_max_bin_idx。
reshaper_model_bin_delta_abs_cw_prec_minus1加1指定用于表示语法reshape_model_bin_delta_abs_CW[i]的比特数。
reshape_model_bin_delta_abs_CW[i]指定第i个二进制位的绝对增量码字值。reshaper_model_bin_delta_sign_CW_flag[i]指定reshape_model_bin_delta_abs_CW[i]的符号,如下所示:
–如果reshape_model_bin_delta_sign_CW_flag[i]等于0,则对应的变量RspDeltaCW[i]为正值。
–否则(reshape_model_bin_delta_sign_CW_flag[i]不等于0),对应的变量RspDeltaCW[i]为负值。
当reshape_model_bin_delta_sign_CW_flag[i]不存在时,它被推断为等于0。变量RspDeltaCW[i]=(1 2*reshape_model_bin_delta_sign_CW[i])*reshape_model_bin_delta_abs_CW[i];
变量RspCW[i]如以下步骤而推导:
变量OrgCW被设置为等于(1<<BitDepthY)/(MaxBinIdx+1)。
–如果reshaper_model_min_bin_idx<=i<=reshaper_model_max_bin_idxRspCW[i]=OrgCW+RspDeltaCW[i]。
–否则,RspCW[i]=0。
如果BitDepthY的值等于10,则RspCW[i]的值应当在32至2*OrgCW-1的范围内。
变量InputPivot[i](i在0至MaxBinIdx+1的范围内,包括0和MaxBinIdx+1)被推导如下
InputPivot[i]=i*OrgCW
变量ReshapePivot[i](i在0至MaxBinIdx+1的范围内,包括0和MaxBinIdx+1)、变量ScaleCoef[i]和InvScaleCoeff[i](i在0至MaxBinIdx的范围内,包括0和MaxBinIdx)被推导如下:
变量ChromaScaleCoef[i](i在0至MaxBinIdx的范围内,包括0和MaxBinIdx)被推导如下:
ChromaResidualScaleLut[64]={16384,16384,16384,16384,16384,16384,16384,8192,8192,8192,8192,5461,5461,5461,5461,4096,4096,4096,4096,3277,3277,3277,3277,2731,2731,2731,2731,2341,2341,2341,2048,2048,2048,1820,1820,1820,1638,1638,1638,1638,1489,1489,1489,1489,1365,1365,1365,1365,1260,1260,1260,1260,1170,1170,1170,1170,1092,1092,1092,1092,1024,1024,1024,1024};
shiftC=11
–如果(RspCW[i]==0)
ChromaScaleCoef[i]=(1<<shiftC)
–否则(RspCW[i]!=0),ChromaScaleCoef[i]=ChromaResidualScaleLut[RspCW[i]>>1]
2.6.2.4 ILR的使用
在编码器侧,每个图片(或片组)首先被转换到整形域。并且所有的编解码过程都是在整形域中执行的。对于帧内预测,邻近块在整形域中;对于帧间预测,(从来自解码图片缓冲区的原始域生成的)参考块首先被转换到整形域。然后残差被生成并被编解码成比特流。
在整个图片(或片组)完成编码/解码之后,整形域中的样点被转换到原始域,然后应用去方块滤波器和其它滤波器。
对于以下情况,禁用对预测信号进行正向整形:
当前块是帧内编解码的
当前块被编解码为CPR(当前图片参考,也被称为帧内块复制,IBC)
当前块被编解码为组合的帧间帧内模式(Combined Inter-Intra Mode,CIIP),并且对帧内预测块禁用正向整形。
3.由各种实施例解决的问题的示例
在CPR/IBC的当前设计中,存在一些问题。
1)参考区域动态改变,这使得编码器/解码器处理复杂。
2)容易生成无效块矢量并且难以检查,这使得编码器和解码器都复杂。
3)不规则的参考区域导致块矢量的低效编解码。
4)如何处理小于128×128的CTU尺寸不清楚。
5)在BV是有效还是无效的确定过程中,对于色度块,判决基于亮度样点的可用性,这可能导致由于双树分割结构的错误判决。
4.示例实施例
在一些实施例中,常规缓冲区可以用于CPR/IBC块以得到参考。
函数isRec(x,y)被定义为指示像素(x,y)是否已经被重构并由IBC模式参考。当(x,y)在图片外、在不同的条带/片/区块(brick)外时,isRec(x,y)返回假(false);当(x,y)未被重构时,isRec(x,y)返回假。在另一示例中,当样点(x,y)已经被重构但满足一些其它条件时,它也可以被标记为不可用,诸如在参考区域外/在不同的VPDU中,并且isRec(x,y)返回假。
函数isRec(c,x,y)被定义为指示分量c的样点(x,y)是否可用。例如,如果样点(x,y)还未被重构,则它被标记为不可用。在另一示例中,当样点(x,y)已经被重构但满足一些其它条件时,它也可以被标记为不可用,诸如在图片外/在不同的条带/片/区块中/在不同的VPDU中、在允许的参考区域外。当样点(x,y)不可用时,isRec(c,x,y)返回假,否则返回真(true)。
在下面的讨论中,参考样点可以是重构样点。注意,“像素缓冲区”可以响应于“一个颜色分量的缓冲区”或“多个颜色分量的缓冲区”。
用于CPR/IBC的参考缓冲区
1.提出使用M×N像素缓冲区来存储用于CPR/IBC的亮度参考样点。
a.在一个示例中,缓冲区尺寸为64×64。
b.在一个示例中,缓冲区尺寸为128×128。
c.在一个示例中,缓冲区尺寸为64×128。
d.在一个示例中,缓冲区尺寸为128×64。
e.在一个示例中,N等于CTU的高度。
f.在一个示例中,N=nH,其中H是CTU的高度,n是正整数。
g.在一个示例中,M等于CTU的宽度。
h.在一个示例中,M=mW,其中W是CTU的宽度,m是正整数。i.在一个示例中,缓冲区尺寸不等于CTU尺寸,诸如96×128或128×96。
j.在一个示例中,缓冲区尺寸等于CTU尺寸。
k.在一个示例中,M=mW并且N=H,其中W和H是CTU的宽度和高度,m是正整数。
l.在一个示例中,M=W并且N=nH,其中W和H是CTU的宽度和高度,n是正整数。
m.在一个示例中,M=mW并且N=nH,其中W和H是CTU的宽度和高度,m和n是正整数。
n.在以上示例中,m和n可以取决于CTU尺寸。
i.在一个示例中,当CTU尺寸为128×128时,m=1并且n=1。
ii.在一个示例中,当CTU尺寸为64×64时,m=4并且n=1。
iii.在一个示例中,当CTU尺寸为32×32时,m=16并且n=1。
iv.在一个示例中,当CTU尺寸为16×16时,m=64并且n=1。
o.可替代地,缓冲区尺寸对应于CTU尺寸。
p.可替代地,缓冲区尺寸对应于虚拟管道数据单元(VPDU)尺寸。
q.可以从编码器向解码器信令通知M和/或N,诸如在VPS/SPS/PPS/图片头/条带头/片组头中。
2.在标准中定义的不同简表/级别/层级中,M和/或N可以不同。提出使用另一个Mc×Nc像素缓冲区来存储用于CPR/IBC的色度参考样点。
a.在一个示例中,对于4:2:0视频,Mc=M/2并且Nc=N/2
b.在一个示例中,对于4:4:4视频,Mc=M并且Nc=N
c.在一个示例中,对于4:2:2视频,Mc=M并且Nc=N/2
d.可替代地,Mc和Nc可以独立于M和N。
e.在一个示例中,色度缓冲区包括两个通道,对应于Cb和Cr。
f.在一个示例中,Mc=M并且Nc=N。
3.提出使用M×N样点缓冲区来存储用于CPR/IBC的RGB参考样点。
a.在一个示例中,缓冲区尺寸为64×64。
b.在一个示例中,缓冲区尺寸为128×128。
c.在一个示例中,缓冲区尺寸为64×128。
d.在一个示例中,缓冲区尺寸为128×64。
e.可替代地,缓冲区尺寸对应于CTU尺寸。
f.可替代地,缓冲区尺寸对应于虚拟管道数据单元(VPDU)尺寸。
4.提出缓冲区可以存储环路滤波之前的重构像素。环路滤波可以指去方块滤波器、自适应环路滤波器(Adaptive Loop Filter,ALF)、样点自适应偏移(Sample AdaptiveOffset,SAO)、跨分量ALF或任何其它滤波器。
a.在一个示例中,缓冲区可以存储当前CTU中的样点。
b.在一个示例中,缓冲区可以存储当前CTU之外的样点。
c.在一个示例中,缓冲区可以存储来自当前图片的任何部分的样点。
d.在一个示例中,缓冲区可以存储来自其它图片的样点。
5.提出缓冲区可以存储环路滤波之后的重构像素。环路滤波可以指去方块滤波器、自适应环路滤波器(ALF)、样点自适应偏移(SAO)、跨分量ALF或任何其它滤波器。
a.在一个示例中,缓冲区可以存储当前CTU中的样点。
b.在一个示例中,缓冲区可以存储当前CTU之外的样点。
c.在一个示例中,缓冲区可以存储来自当前图片的任何部分的样点。
d.在一个示例中,缓冲区可以存储来自其它图片的样点。
6.提出缓冲区可以存储环路滤波之前的重构样点和环路滤波之后的重构样点两者。环路滤波可以指去方块滤波器、自适应环路滤波器(ALF)、样点自适应偏移(SAO)、跨分量ALF或任何其它滤波器。
a.在一个示例中,缓冲区可以存储来自当前图片的样点和来自其它图片的样点两者,取决于这些样点的可用性。
b.在一个示例中,来自其它图片的参考样点来自环路滤波之后的重构样点。
c.在一个示例中,来自其它图片的参考样点来自环路滤波之前的重构样点。
7.提出缓冲区存储具有给定的比特深度(bit-depth)的样点,其中该给定的比特深度可以不同于编解码视频数据的比特深度。
a.在一个示例中,重构缓冲区/编解码视频数据的比特深度大于存储在缓冲区中的IBC参考样点的比特深度。
b.在一个示例中,即使当内部比特深度不同于视频序列的输入比特深度时,诸如(10比特vs 8比特),IBC参考样点也被存储为与输入比特深度对齐。
c.在一个示例中,比特深度与重构缓冲区的比特深度相同。
d.在一个示例中,比特深度与输入图像/视频的比特深度相同。
e.在一个示例中,比特深度与预定义数字相同。
f.在一个示例中,比特深度取决于标准的简表。
g.在一个示例中,比特深度或与输出比特深度/输入比特深度/内部比特深度相比的比特深度差可以在SPS/PPS/序列头/图片头/条带头/片组头/片头或其它种类的视频数据单元中被信令通知。
h.提出的方法可以与在其它项目符合中提到的提出的缓冲区定义一起被应用,可替代地,它们也可以适用于IBC的现有设计。
i.缓冲区的每个颜色分量的比特深度可以不同。
缓冲区初始化
8.提出用给定值初始化缓冲区
a.在一个示例中,缓冲区用给定值进行初始化。
i.在一个示例中,给定值可以取决于输入比特深度和/或内部比特深度。
ii.在一个示例中,缓冲区用中间灰度(mid-grey)值(例如,8比特信号为128,或者10比特信号为512)进行初始化。
iii.在一个示例中,当ILR被使用时,缓冲区用forwardLUT(m)进行初始化。例如m=1<<(Bitdepth-1)。
b.可替代地,缓冲区用在SPS/VPS/APS/PPS/序列头/片组头/图片头/片/CTU/编解码单元/VPDU/区域中信令通知的值进行初始化。
c.在一个示例中,可以从先前解码的图片或条带或CTU行或CTU或CU的样点推导给定值。
d.对于不同的颜色分量,给定值可以不同。
9.可替代地,提出用来自先前编解码的块的解码像素初始化缓冲区。
a.在一个示例中,解码像素是环路滤波之前的那些解码像素。
b.在一个示例中,当缓冲区尺寸为CTU时,如果可用,则缓冲区用先前解码的CTU的解码像素进行初始化。
c.在一个示例中,当缓冲区尺寸为64×64时,如果可用,则其缓冲区尺寸用先前解码的64×64块的解码像素进行初始化。
d.此外,可替代地,如果没有先前编解码的块可用,则可以应用项目符号8中的方法。
对缓冲区的参考
10.对于使用缓冲区中的像素作为参考的块,它可以使用缓冲区内的位置(x,y)来指示在哪里得到参考,其中,x=0,1,2,…,M-1;y=0,1,2,…,N-1。
11.可替代地,参考位置可以被表示为l=y*M+x,l=0,1,…,M*N-1。
12.将与当前CTU相关的块的左上角位置表示为(x0,y0),可以将块矢量(BVx,BVy)=(x-x0,y-y0)传送到解码器,以指示在缓冲区中在哪里得到参考。
13.可替代地,块矢量(BVx,BVy)可以被定义为(x-x0+Tx,y-y0+Ty),其中Tx和Ty是预定义的偏移。
14.对于任何像素(x0,y0)和(BVx,BVy),其在缓冲区中的参考可以在(x0+BVx,y0+BVy)处被找到。
a.在一个示例中,当(x0+BVx,y0+BVy)在缓冲区之外时,它将被裁剪(clip)到边界。
b.可替代地,当(x0+BVx,y0+BVy)在缓冲区之外时,其参考值被预定义为给定值,例如中间灰度。
c.可替代地,参考位置被定义为((x0+BVx)mod M,(y0+BVy)modN),使得它总是在缓冲区内。
15.对于任何像素(x0,y0)和(BVx,BVy),当(x0+BVx,y0+BVy)
在缓冲区之外时,可以从缓冲区中的值推导其参考值。
a.在一个示例中,该值是从缓冲区中的样点((x0+BVx)mod M,(y0+BVy)mod N)推导的。
b.在一个示例中,该值是从缓冲区中的样点((x0+BVx)mod M,clip(y0+BVy,0,N-1))推导的。
c.在一个示例中,该值是从缓冲区中的样点(clip(x0+BVx,0,M-1),(y0+BVy)modN)推导的。
d.在一个示例中,该值是从缓冲区中的样点(clip(x0+BVx,0,M-1),clip(y0+BVy,0,N-1))推导的。
16.它可能不允许缓冲区范围之外的特定坐标。
a.在一个示例中,对于相对于CTU的左上角的任何像素(x0,y0)和块矢量(BVx,BVy),比特流约束是y0+BVy应该在范围[0,…,N-1]中。
b.在一个示例中,对于相对于CTU的左上角的任何像素(x0,y0)和块矢量(BVx,BVy),比特流约束是x0+BVx应该在范围[0,…,M-1]中。
c.在一个示例中,对于相对于CTU的左上角的任何像素(x0,y0)和块矢量(BVx,BVy),比特流约束是y0+BVy应该在范围[0,…,N-1]中,并且x0+BVx应该在范围[0,…,M-1]中。
17.当一个块的信令通知的或推导的块矢量指向缓冲区之外的某处时,可以根据缓冲区来应用填充。
a.在一个示例中,缓冲区之外的任何样点的值用预定义值进行定义。
i.在一个示例中,该值可以是1<<(Bitdepth-1),例如,8比特信号为128,并且10比特信号为512。
ii.在一个示例中,当ILR被使用时,该值可以是forwardLUT(m)。例如m=1<<(Bitdepth-1)。
iii.可替代地,预定义值的指示可以在SPS/PPS/序列头/图片头/条带头/片组/片/CTU/CU级别被信令通知或指示。
b.在一个示例中,缓冲区之外的任何样点被定义为缓冲区中的最近样点的值。
18.处理缓冲区外参考的方法可以在水平和垂直方向上不同,或者可以根据当前块的位置(例如,是否更靠近图片边界)而不同。
a.在一个示例中,当y0+BVy在[0,N-1]之外时,(x0+BVx,y0+BVy)的样点值被指定为预定义值。
b.在一个示例中,当x0+BVx在[0,M-1]之外时,(x0+BVx,y0+BVy)的样点值被指定为预定义值。
c.可替代地,(x0+BVx,y0+BVy)的样点值被指定为((x0+BVx)mod M,y0+BVy)的样点值,如果((x0+BVx)mod M,y0+BVy)仍然在缓冲区之外,则其可以调用其它方法来进一步推导该值。
d.可替代地,(x0+BVx,y0+BVy)的样点值被指定为(x0+BVx,(y0+BVy)mod N)的样点值,如果(x0+BVx,(y0+BVy)modN)仍然在缓冲区之外,则其可以调用其它方法来进一步推导该值。
块矢量表示
19.块矢量(BVx,BVy)的每个分量或分量中的一个可以被归一化到特定范围。
a.在一个示例中,BVx可以由(BVx mod M)替换。
b.可替代地,BVx可以由((BVx+X)mod M)-X替换,其中X是预定义值。
i.在一个示例中,X是64。
ii.在一个示例中,X是M/2;
iii.在一个示例中,X是块相对于当前CTU的水平坐标。
c.在一个示例中,BVy可以由(BVy mod N)替换。
d.可替代地,BVy可以由((BVy+Y)mod N)-Y替换,其中Y是预定义值。
i.在一个示例中,Y是64。
ii.在一个示例中,Y是N/2;
iii.在一个示例中,Y是块相对于当前CTU的垂直坐标。
20.BVx和BVy可以具有不同的归一化范围。
21.块矢量差(BVDx,BVDy)可以被归一化到特定范围。
a.在一个示例中,BVDx可以由(BVDx mod M)替换,其中函数mod返回余数。
b.可替代地,BVDx可以由((BVDx+X)mod M)-X替换,其中X是预定义值。
i.在一个示例中,X是64。
ii.在一个示例中,X是M/2;
c.在一个示例中,BVy可以由(BVDy mod N)替换。
d.可替代地,BVy可以由((BVDy+Y)mod N)-Y替换,其中Y是预定义值。
i.在一个示例中,Y是64。
ii.在一个示例中,Y是N/2;
22.BVDx和BVDy可以具有不同的归一化范围。
块矢量的有效性检查
将IBC缓冲区的宽度和高度表示为Wbuf和Hbuf。对于从相对于图片的左上角的(X,Y)开始的W×H块(可以是亮度块、色度块、CU、TU、4×4、2×2或其它子块),以下可以适用于判断块矢量(BVx,BVy)是否有效。假定Wpic和Hpic为图片的宽度和高度;并且Wctu和Hctu是CTU的宽度和高度。函数floor(x)返回不大于x的最大整数。函数isRec(x,y)返回样点(x,y)是否已经被重构。
23.即使任何参考位置在图片边界之外,块矢量(BVx,BVy)也可以被设置为有效。
a.在一个示例中,即使X+BVx<0,块矢量也可以被设置为有效。
b.在一个示例中,即使X+W+BVx>Wpic,块矢量也可以被设置为有效。
c.在一个示例中,即使Y+BVy<0,块矢量也可以被设置为有效。
d.在一个示例中,即使Y+H+BVy>Hpic,块矢量也可以被设置为有效。
24.即使任何参考位置在当前CTU行之外,块矢量(BVx,BVy)也可以被设置为有效。
a.在一个示例中,即使Y+BVy<floor(Y/Hctu)*Hctu,块矢量也可以被设置为有效。
b.在一个示例中,即使Y+H+BVy>=floor(Y/Hctu)*Hctu+Hctu,块矢量也可以被设置为有效。
25.即使任何参考位置在当前CTU和左侧(n-1)个CTU之外,块矢量(BVx,BVy)也可以被设置为有效,其中n是可以被用作用于IBC的参考区域的CTU(包括或不包括当前CTU)的数量。
a.在一个示例中,即使X+BVx<floor(X/Wctu)*Wctu-(n-1)*Wctu,块矢量也可以被设置为有效。
b.在一个示例中,即使X+W+BVx>floor(X/Wctu)*Wctu+Wctu,块矢量也可以被设置为有效。
26.即使特定样点还未被重构,块矢量(BVx,BVy)也可以被设置为有效。
a.在一个示例中,即使isRec(X+BVx,Y+BVy)为假,块矢量也可以被设置为有效。
b.在一个示例中,即使isRec(X+BVx+W-1,Y+BVy)为假,块矢量也可以被设置为有效。
c.在一个示例中,即使isRec(X+BVx,Y+BVy+H-1)为假,块矢量也可以被设置为有效。
d.在一个示例中,即使isRec(X+BVx+W-1,Y+BVy+H-1)为假,块矢量也可以被设置为有效。
27.当块不是CTU行中的第一个CTU时,块矢量(BVx,BVy)可以总是被设置为有效。
a.可替代地,块矢量可以总是被设置为有效。
28.当满足所有以下3个条件时,块矢量(BVx,BVy)可以总是被设置为有效
·X+BVx>=0
·Y+BVy>=floor(Y/Hctu)
·isRec(X+BVx+W-1,Y+BVy+H-1)==真
a.可替代地,当针对CTU行中的第一个CTU的块满足所有三个条件时,块矢量可以总是被设置为有效。
29.当块矢量(BVx,BVy)有效时,块的样点复制可以基于块矢量。
a.在一个示例中,样点(X,Y)的预测可以根据((X+BVx)%Wbuf,(Y+BVy)%Hbuf)。
缓冲区更新
30.当编解码新图片或片时,缓冲区可以被重置。
a.术语“重置”可以指缓冲区被初始化。
b.术语“重置”可以指缓冲区中的所有样点/像素被设置为给定值(例如,0或-1)。
31.当完成VPDU的编解码时,可以用VPDU的重构值更新缓冲区。
32.当完成CTU的编解码时,可以用CTU的重构值更新缓冲区。
a.在一个示例中,当缓冲区未满时,可以顺序地CTU接CTU地更新缓冲区。
b.在一个示例中,当缓冲区已满时,对应于最老(oldest)的CTU的缓冲区域将被更新。
c.在一个示例中,当M=mW且N=H(W和H是CTU尺寸;M和N是缓冲区尺寸)并且先前更新的区域从(kW,0)开始时,要更新的下一个起始位置将是((k+1)W mod M,0)。
33.缓冲区可以在每个CTU行的开始处被重置。
a.可替代地,缓冲区可以在开始解码每个CTU时被重置。
b.可替代地,缓冲区可以在开始解码一个片时被重置。
c.可替代地,缓冲区可以在开始解码一个片组/图片时被重置。
34.当完成对从(x,y)开始的块进行编解码时,将用根据块的重构更新从(x,y)开始的缓冲区的对应区域。
a.在一个示例中,(x,y)是相对于CTU的左上角的位置。
35.当完成对相对于图片的块进行编解码时,将用根据块的重构更新缓冲区的对应区域。
a.在一个示例中,可以用相对于图片的左上角的位置(x,y)的重构像素值更新缓冲区中的位置(x mod M,y mod N)处的值。
b.在一个示例中,可以用相对于当前片的左上角的位置(x,y)的重构像素值更新缓冲区中的位置(x mod M,y mod N)处的值。
c.在一个示例中,可以用相对于当前CTU行的左上角的位置(x,y)的重构像素值更新缓冲区中的位置(x mod M,y mod N)处的值。
d.在一个示例中,可以用比特深度对齐之后的重构像素值更新缓冲区中的值。
36.当完成对从(x,y)开始的块进行编解码时,将用根据块的重构更新从(xb,yb)开始的缓冲区的对应区域,其中(xb,yb)和(x,y)是两个不同坐标。
a.在一个示例中,(x,y)是与CTU的左上角相关的位置,并且(xb,yb)是(x+update_x,y+update_y),其中update_x和update_y指向缓冲区中的可更新位置。
37.对于以上示例,块的重构值可以指示应用滤波器(例如,去方块滤波器)之前的重构值。
a.可替代地,块的重构值可以指示应用滤波器(例如,去方块滤波器)之后的重构值。
38.当缓冲区根据重构样点而更新时,重构样点可以在被存储之前首先被修改,诸如样点比特深度可以被改变。
a.在一个示例中,缓冲区用与缓冲区的比特深度进行比特深度对齐之后的重构样点值进行更新。
b.在一个示例中,缓冲区值根据值{p+[1<<(b-1)]}>>b而更新,其中p是重构样点值,b是预定义的比特移位值。
c.在一个示例中,缓冲区值根据值clip({p+[1<<(b-1)]}>>b,0,(1<<bitdepth)-1)而更新,其中p是重构样点值,b是预定义的比特移位值,bitdepth是缓冲区比特深度。
d.在一个示例中,缓冲区值根据值{p+[1<<(b-1)-1]}>>b而更新,其中p是重构样点值,b是预定义的比特移位值。
e.在一个示例中,缓冲区值根据值clip({p+[1<<(b-1)-1]}>>b,0,(1<<bitdepth)-1)而更新,其中p是重构样点值,b是预定义的比特移位值,bitdepth是缓冲区比特深度。
f.在一个示例中,缓冲区值根据值p>>b而更新。
g.在一个示例中,缓冲区值根据值clip(p>>b,0,(1<<bitdepth)-1)而更新,其中bitdepth是缓冲区比特深度。
h.在以上示例中,b可以是重构比特深度减去输入样点比特深度。39.当使用缓冲区样点来形成预测时,可以应用预处理。
a.在一个示例中,预测值是p<<b,其中p是缓冲区中的样点值,b是预定义值。
b.在一个示例中,预测值是clip(p<<b,0,1<<bitdepth),其中bitdepth是重构样点的比特深度。
c.在一个示例中,预测值是(p<<b)+(1<<(bitdepth-1)),其中p是缓冲区中的样点值,并且b是预定义值,bitdepth是重构样点的比特深度。
d.在以上示例中,b可以是重构比特深度减去输入样点比特深度。
40.缓冲区可以以给定的顺序被更新。
a.在一个示例中,可以顺序地更新缓冲区。
b.在一个示例中,可以根据重构的块的顺序来更新缓冲区。
41.当缓冲区已满时,可以用最新的重构样点替换缓冲区中的样点。
a.在一个示例中,样点可以以先进先出的方式被更新。
b.在一个示例中,最老的样点将被替换。
c.在一个示例中,样点可以被指定优先级并根据优先级而替换。
d.在一个示例中,样点可以被标记为“长期”,使得其它样点将首先被替换。
e.在一个示例中,可以与块一起传送标志,以指示高优先级。
f.在一个示例中,可以与块一起传送数字,以指示优先级。
g.在一个示例中,来自具有特定特性的重构块的样点将被指定更高的优先级,使得其它样点将首先被替换。
i.在一个示例中,当在IBC模式下编解码的样点的百分比大于阈值时,块的所有样点可以被指定高优先级。
ii.在一个示例中,当在调色板(Palette)模式下编解码的样点的百分比大于阈值时,块的所有样点可以被指定高优先级。
iii.在一个示例中,当在IBC或调色板模式下编解码的样点的百分比大于阈值时,块的所有样点可以被指定高优先级。
iv.在一个示例中,当在变换跳过模式下编解码的样点的百分比大于阈值时,块的所有样点可以被指定高优先级。
v.阈值可以根据块尺寸、颜色分量、CTU尺寸而不同。
vi.阈值可以在SPS/PPS/序列头/条带头/片组/片级别/区域中被信令通知。
h.在一个示例中,缓冲区已满可能意味着缓冲区中的可用样点的数量等于或大于给定阈值。
i.在一个示例中,当缓冲区中的可用样点的数量等于或大于64×64×3个亮度样点时,缓冲区可以被确定为已满。
可选缓冲区组合
42.代替总是使用先前编解码的三个64×64块作为参考区域,提出基于当前块(或VPDU)的位置来自适应地改变它。
a.在一个示例中,当对64×64块进行编解码/解码时,先前3个64×64块可以被用作参考。与图2相比,可以应用先前64×64块的更多种类的组合。图2示出了先前64×64块的不同组合的示例。
43.代替使用z扫描顺序,反而可以利用垂直扫描顺序。
a.在一个示例中,当一个块以z扫描顺序被划分为具有索引0…3的4个VPDU时,编码/解码顺序是0、2、1、3。
b.在一个示例中,当对64×64块进行编解码/解码时,先前3个64×64块可以被用作参考。与图2相比,可以应用64×64块的更多种类的编解码/解码顺序。图4示出了64×64块的不同编解码/解码顺序的示例。
c.可替代地,以上方法可以仅被应用于屏幕内容编解码。
d.可替代地,仅当对一个片/片组/图片启用CPR时,才可以应用以上方法。
e.可替代地,仅当对一个CTU或一个CTU行启用CPR时,才可以应用以上方法。
虚拟IBC缓冲区
下面,VPDU的宽度和高度在亮度样点中分别被表示为WVPDU(例如,64)和HVPDU(例如,64)。可替代地,WVPDU和/或HVPDU可以表示其它视频单元(例如,CTU)的宽度和/或高度。
44.可以维护虚拟缓冲区以保持跟踪IBC参考区域状态。
a.在一个示例中,虚拟缓冲区的尺寸为mWVPDU×nHVPDU。
i.在一个示例中,m等于3并且n等于2。
ii.在一个示例中,m和/或n可以取决于图片分辨率、CTU尺寸。
iii.在一个示例中,m和/或n可以被信令通知或预定义。
b.在一个示例中,在以上项目符号和子项目符号中描述的方法可以被应用于虚拟缓冲区。
c.在一个示例中,相对于图片/条带/片/区块的左上角的样点(x,y)可以被映射到(x%(mWVPDU),y%(nHVPDU))。
45.阵列可以用于跟踪与虚拟缓冲区相关联的每个样点的可用性。
a.在一个示例中,标志可以与虚拟缓冲区中的样点相关联,以指定缓冲区中的样点是否可以被用作IBC参考。
b.在一个示例中,包含亮度样点和色度样点的每个4×4块可以共享标志,以指示与该块相关联的任何样点是否可以被用作IBC参考。
46.在完成对VPDU或视频单元进行解码之后,与虚拟缓冲区相关联的特定样点可以被标记为不可用于IBC参考。
a.在一个示例中,哪些样点可以被标记为不可用取决于最近解码的VPDU的位置。
b.当一个样点被标记为不可用时,根据该样点的预测不被允许。
i.可替代地,可以进一步应用其它方式(例如,使用默认值)来推导预测值以替换不可用的样点。
47.可以记录最近解码的VPDU的位置,以帮助标识与虚拟缓冲区相关联的哪些样点可以被标记为不可用。
a.在一个示例中,在开始解码VPDU时,与虚拟缓冲区相关联的特定样点可以根据最近解码的VPDU的位置而标记为不可用。
i.在一个示例中,将(xPrevVPDU,yPrevVPDU)表示为相对于最近解码的VPDU的图片/条带/片/区块/其它视频处理单元的左上角的左上角位置,如果yPrevVPDU%(nHVPDU)等于0,则特定位置(x,y)可以被标记为不可用。
1.在一个示例中,x可以在一范围内,诸如[xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU,((xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU];
2.在一个示例中,y可以在一范围内,诸如[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU];
3.在一个示例中,x可以在一范围内,诸如[xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU,((xPrevVPDU-2WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU],并且y可以在一范围内,诸如[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]。
ii.在一个示例中,将(xPrevVPDU,yPrevVPDU)表示为相对于最近解码的VPDU的图片/条带/片/区块/其它视频处理单元的左上角的左上角位置,如果yPrevVPDU%(nHVPDU)不等于0,则特定位置(x,y)可以被标记为不可用。
1.在一个示例中,x可以在一范围内,诸如[xPrevVPDU-WVPDU+2mWVPDU)%mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU];
2.在一个示例中,y可以在一范围内,诸如[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU];
3.在一个示例中,x可以在一范围内,诸如[xPrevVPDU-WVPDU+2mWVPDU)%mWVPDU,((xPrevVPDU-WVPDU+2mWVPDU)%mWVPDU)-1+WVPDU],并且y可以在一范围内,诸如[yPrevVPDU%(nHVPDU),(yPrevVPDU%(nHVPDU))-1+HVPDU]。
48.当CU包含多个VPDU时,代替根据VPDU来应用IBC参考可用性标记过程,IBC参考可用性标记过程可以根据CU。
a.在一个示例中,在开始解码包含多个VPDU的CU时,在CU内的VPDU被解码之前,IBC参考可用性标记过程可以被应用于每个VPDU。
b.在这种情况下,128×64和64×128IBC块可能不被允许。
i.在一个示例中,128×64和64×128CU的pred_mode_ibc_flag可能不被传送,并且可以被推断为等于0。
49.对于参考块或子块,可能不需要检查右上角的参考可用性状态来判断与参考块相关联的块矢量是否有效。
a.在一个示例中,将仅检查块/子块的左上角、左下角和右下角,以判断块矢量是否有效。
50.IBC缓冲区尺寸可以取决于VPDU尺寸(其中,宽度/高度由vSize表示)和/或CTB/CTU尺寸(其中,宽度/高度由ctbSize表示)。
a.在一个示例中,缓冲区的高度可以等于ctbSize。
b.在一个示例中,缓冲区的宽度可以取决于min(ctbSize,64)。
i.在一个示例中,缓冲区的宽度可以为(128*128/vSize,min(ctbSize,64))。
51.IBC缓冲区可以包含像素范围之外的值,这指示该位置可能不可用于IBC参考,例如,不用于预测其它样点。
a.样点值可以被设置为指示样点不可用的值。
b.在一个示例中,该值可以是-1。
c.在一个示例中,该值可以是[0,1<<(internal_bit_depth)-1]之外的任何值,其中internal_bit_depth是正整数值。例如,internal_bit_depth是用于对颜色分量的样点进行编码/解码的内部比特深度。
d.在一个示例中,该值可以是[0,1<<(input_bit_depth)-1]之外的任何值,其中input_bit_depth是正整数值。例如,input_bit_depth是用于对颜色分量的样点进行编码/解码的输入比特深度。
52.用于IBC缓冲区中的样点的可用性标记可以取决于当前块的位置、当前块的尺寸、CTU/CTB尺寸和VPDU尺寸。在一个示例中,假定(xCb,yCb)表示块相对于图片的左上角的位置;ctbSize是CTU/CTB的尺寸(即,宽度和/或高度);vSize=min(ctbSize,64);wIbcBuf和hIbcBuf是IBC缓冲区宽度和高度。
a.在一个示例中,如果(xCb%vSize)等于0并且(yCb%vSize)等于0,则IBC缓冲区中的特定的位置集合可以被标记为不可用。
b.在一个示例中,当当前块尺寸小于VPDU尺寸,即min(ctbSize,64)时,标记为不可用的区域可以根据VPDU尺寸。
c.在一个示例中,当当前块尺寸大于VPDU尺寸,即min(ctbSize,64)时,标记为不可用的区域可以根据CU尺寸。
53.在开始解码相对于图片的左上角位置的视频单元(例如,VPDU(xV,yV))时,IBC缓冲区中的对应位置可以被设置为像素范围之外的值。
a.在一个示例中,缓冲区中位置为(x%wIbcBuf,y%hIbcBuf)的缓冲区样点将被设置为值-1,其中x=xV,…,xV+ctbSize-1并且y=yV,…,yV+ctbSize-1。其中,wIbcBuf和hIbcBuf是IBC缓冲区宽度和高度,ctbSize是CTU/CTB的宽度。
i.在一个示例中,hIbcBuf可以等于ctbSize。
54.比特流一致性约束可以根据IBC缓冲区中的样点的值。
a.在一个示例中,如果与IBC缓冲区中的块矢量相关联的参考块包含像素范围之外的值,则比特流可能是不合法的。
55.可以根据IBC缓冲区中的可用性指示来设置比特流一致性约束。
a.在一个示例中,如果映射在IBC缓冲区中的任何参考样点被标记为不可用于对块进行编码/解码,则比特流可能是不合法的。
b.在一个示例中,当使用单树(singletree)时,如果映射在IBC缓冲区中用于对块进行编码/解码的任何亮度参考样点被标记为不可用,则比特流可能是不合法的。
c.一致性比特流可以满足对于IBC编解码块,相关联的块矢量可以指向映射在IBC缓冲区中的参考块,并且位于IBC缓冲区中用于对块进行编码/解码的每个亮度参考样点应当被标记为可用(例如,样点的值在范围[K0,K1]内,其中例如,K0被设置为0,并且K1被设置为(1<<BitDepth-1),其中BitDepth是内部比特深度或输入比特深度)。
56.比特流一致性约束可以取决于分割树类型和当前CU的编解码treeType(树类型)。
a.在一个示例中,如果在高级别(例如,条带/图片/区块/片)中允许双树(dualtree)并且当前视频块(例如,CU/PU/CB/PB)用单树进行编解码,则比特流约束可能需要检查映射在IBC缓冲区中的所有分量的位置是否被标记为不可用。
b.在一个示例中,如果在高级别(例如,条带/图片/区块/片)中允许双树并且当前亮度视频块(例如,CU/PU/CB/PB)用双树进行编解码,则比特流约束可以忽略映射在IBC缓冲区中的色度分量的位置是否被标记为不可用。
i.可替代地,在这种情况下,比特流约束仍然可以检查映射在IBC缓冲区中的所有分量的位置是否被标记为不可用。
c.在一个示例中,如果使用单树,则比特流约束可以忽略映射在IBC缓冲区中的色度分量的位置是否被标记为不可用。
对当前VTM设计的改进
57.用于IBC的预测可能具有比重构更低的精确度。
a.在一个示例中,预测值根据值clip{{p+[1<<(b-1)]}>>b,0,(1<<bitdepth)-1}<<b,其中p是重构样点值,b是预定义的比特移位值,bitdepth是预测样点比特比特深度。
b.在一个示例中,预测值根据值clip{{p+[1<<(b-1)-1]}>>b,0,(1<<bitdepth)-1}<<b,其中p是重构样点值,b是预定义的比特移位值。
c.在一个示例中,预测值根据值((p>>b)+(1<<(bitdepth-1)))<<b,其中bitdepth是预测样点比特比特深度。
d.在一个示例中,预测值根据值(clip((p>>b),0,(1<<(bitdepth-b)))+(1<<(bitdepth-1)))<<b,其中bitdepth是预测样点比特比特深度。
e.在一个示例中,取决于ILR是否被应用,预测值以不同的方式被裁剪。
f.在以上示例中,b可以是重构比特深度减去输入样点比特深度。
g.在一个示例中,比特深度或与输出比特深度/输入比特深度/内部比特深度相比的比特深度差可以在SPS/PPS/序列头/图片头/条带头/片组头/片头或其它种类的视频数据单元中被信令通知。
58.IBC的预测的一部分可能具有更低的精确度,并且另一部分具有与重构相同的精确度。
a.在一个示例中,允许的参考区域可以包含具有不同精确度(例如,比特深度)的样点。
b.在一个示例中,来自除正在被解码的当前64×64块之外的其它64×64块的参考具有低精确度,并且来自当前64×64块的参考具有与重构相同的精确度。
c.在一个示例中,来自除正在被解码的当前CTU之外的其它CTU的参考具有低精确度,并且来自当前CTU的参考具有与重构相同的精确度。
d.在一个示例中,来自特定的颜色分量集合的参考具有低精确度,并且来自其它颜色分量的参考具有与重构相同的精确度。
59.当CTU尺寸为M×M并且参考区域尺寸为nM×nM时,参考区域是CTU行中最近的可用的n×n CTU。
a.在一个示例中,当参考区域尺寸为128×128并且CTU尺寸为64×64时,CTU行中最近的可用的4个CTU可以用于IBC参考。
b.在一个示例中,当参考区域尺寸为128×128并且CTU尺寸为32×32时,CTU行中最近的可用的16个CTU可以用于IBC参考。
60.当CTU尺寸为M并且参考区域尺寸为nM时,参考区域是CTU行/片中最近的可用的n-1个CTU。
a.在一个示例中,当参考区域尺寸为128×128或256×64并且CTU尺寸为64×64时,CTU行中最近的可用的3个CTU可以用于IBC参考。
b.在一个示例中,当参考区域尺寸为128×128或512×32并且CTU尺寸为32×32时,CTU行中最近的可用的15个CTU可以用于IBC参考。
61.当CTU尺寸为M,VPDU尺寸为kM,并且参考区域尺寸为nM时,参考区域是CTU行/片中最近的可用的n-k个CTU。
a.在一个示例中,CTU尺寸为64×64,VPDU尺寸也为64×64,参考区域尺寸为128×128,CTU行中最近的3个CTU可以用于IBC参考值。
b.在一个示例中,CTU尺寸为32×32,VPDU尺寸也为64×64,参考区域尺寸为128×128,CTU行中最近的(16-4)=12个CTU可以用于IBC参考。
62.对于使用IBC的左上角为(x,y)的w×h块,存在使参考块远离特定区域以用于内存重用的约束,其中w和h是当前块的宽度和高度。
a.在一个示例中,当CTU尺寸为128×128并且(x,y)=(m×64,n×64)时,参考块不能与从((m-2)×64,n×64)开始的64×64区域重叠。
b.在一个示例中,当CTU尺寸为128×128时,参考块不能与左上角为(x-128,y)的w×h块重叠。
c.在一个示例中,当CTU尺寸为128×128时,(x+BVx,y+BVy)不能在左上角为(x-128,y)的w*h块内,其中BVx和BVy表示当前块的块矢量。
d.在一个示例中,当CTU尺寸为M×M并且IBC缓冲区尺寸为k×M×M时,参考块不能与左上角为(x-k×M,y)的w×h块重叠,其中BVx和BVy表示当前块的块矢量。
e.在一个示例中,当CTU尺寸为M×M并且IBC缓冲区尺寸为k×M×M时,(x+BVx,y+BVy)不能在左上角为(x-k×M,y)的w×h块内,其中BVx和BVy表示当前块的块矢量。
63.当CTU尺寸不为M×M并且参考区域尺寸为nM×nM时,参考区域是CTU行中最近的可用的n×n-1CTU。
a.在一个示例中,当参考区域尺寸为128×128并且CTU尺寸为64×64时,CTU行中最近的可用的3个CTU可以用于IBC参考。
b.在一个示例中,当参考区域尺寸为128×128并且CTU尺寸为32×32时,CTU行中最近的可用的15个CTU可以用于IBC参考。
64.对于从(2m*64,2n*64)开始的64×64块(即,128×128CTU中的左上角64×64块)内的CU,其IBC预测可以根据从((2m-2)*64,2n*64)开始的64×64块、从((2m-1)*64,2n*64)开始的64×64块、从((2m-1)*64,(2n+1)*64)开始的64×64块和当前64×64块中的重构样点。
65.对于从((2m+1)*64,(2n+1)*64)开始的64×64块(即,128×128CTU中的右下角64×64块)内的CU,其IBC预测可以根据当前128×128CTU。
66.对于从((2m+1)*64,2n*64)开始的64×64块(即,128×128CTU中的右上角64×64块)内的CU,其IBC预测可以根据从((2m-1)*64,2n*64)开始的64×64块、从((2m-1)*64,(2n+1)*64)开始的64×64块、从(2m*64,2n*64)开始的64×64块和当前64×64块中的重构样点。
a.可替代地,如果从(2m*64,(2n+1)*64)开始的64×64块已经被重构,则IBC预测可以根据从((2m-1)*64,2n*64)开始的64×64块、从(2m*64,2n*64)开始的64×64块、从(2m*64,(2n+1)*64)开始的64×64块和当前64×64块中的重构样点。
67.对于从(2m*64,(2n+1)*64)开始的64×64块(即,128×128CTU中的左下角64×64块)内的CU,其IBC预测可以根据从((2m-1)*64,(2n+1)*64)开始的64×64块、从(2m*64,2n*64)开始的64×64块、从((2m+1)*64,2n*64)开始的64×64块和当前64×64块中的重构样点。
a.可替代地,如果从((2m+1)*64,2n*64)开始的64×64块还未被重构,则IBC预测可以根据从((2m-1)*64,2n*64)开始的64×64块、从((2m-1)*64,(2n+1)*64)开始的64×64块、从(2m*64,2n*64)开始的64×64块和当前64×64块中的重构样点。
68.提出基于当前CU属于哪些64×64块来调整参考区域。
a.在一个示例中,对于从(x,y)开始的CU,当(y>>6)&1==0时,从((x>>6<<6)-128,y>>6<<6)和((x>>6<<6)-64,y>>6<<6)开始的两个或多达两个先前的64×64块可以由IBC模式参考。
b.在一个示例中,对于从(x,y)开始的CU,当(y>>6)&1==1时,从((x>>6<<6)-64,y>>6<<6)开始的一个先前的64×64块可以由IBC模式参考。
69.对于从(x,y)开始并具有块矢量(BVx,BVy)的块,如果isRec(((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))为真,则块矢量无效。
a.在一个示例中,该块是亮度块。
b.在一个示例中,该块是4:4:4格式的色度块。
c.在一个示例中,该块包含亮度分量和色度分量两者。
70.对于从(x,y)开始并具有块矢量(BVx,BVy)的4:2:0格式的色度块,如果isRec(((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))为真,则块矢量无效。
71.BV对于分量c的块是否无效的确定可以依赖于分量X的样点的可用性,而不是仅检查亮度样点。
a.对于分量c从(x,y)开始并具有块矢量(BVx,BVy)的块,如果isRec(c,((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))为真,则块矢量可以被视为无效。
i.在一个示例中,该块是亮度块(例如,c是亮度分量,或对于RGB编解码是G分量)。
ii.在一个示例中,该块是4:4:4格式的色度块(例如,c是cb或cr分量,或对于RGB编解码是B/R分量)。
iii.在一个示例中,可以检查亮度分量和色度分量两者的样点的可用性,例如,该块包含亮度分量和色度分量两者。
b.对于从分量c的(x,y)开始并具有块矢量(BVx,BVy)的4:2:0格式的色度块,如果isRec(c,((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))为真,则块矢量可以被视为无效。
c.对于从分量c的(x,y)开始并具有块矢量(BVx,BVy)的色度块或子块,如果色度分量的isRec(c,x+BVx+Chroma_CTU_size,y)为真,则块矢量可以被视为无效,其中Chroma_CTU_size是色度分量的CTU尺寸。
i.在一个示例中,对于4:2:0格式,Chroma_CTU_size可以为64。
ii.在一个示例中,色度子块可以是4:2:0格式的2×2块。
iii.在一个示例中,色度子块可以是4:4:4格式的4×4块。
iv.在一个示例中,色度子块可以对应于亮度分量中的最小CU尺寸。
1.可替代地,色度子块可以对应于色度分量的最小CU尺寸。
72.对于以上提到的所有项目符号,假设参考缓冲区包含多个M×M块(M=64)。然而,它可以扩展到其它情况,诸如参考缓冲区包含多个N×M块(例如,N=128,M=64)。
73.对于以上提到的所有项目符号,可以应用进一步的限制,即参考缓冲区应该在与当前块相同的区块/片/片组/条带内。
a.在一个示例中,如果参考缓冲区的一部分在当前区块/片/片组/条带之外,则可以禁用对IBC的使用。可以跳过对IBC相关的语法元素的信令通知。
b.可替代地,如果参考缓冲区的一部分在当前区块/片/片组/条带之外,则可以仍然对一个块启用IBC,然而,与一个块相关联的块矢量可以仅指向剩余的参考缓冲区。
74.提出将CTU/CTB行的第一个VPDU行中的K1个最近编解码的VPDU(如果可用)和CTU/CTB行的第二个VPDU行中的K2个最近编解码的VPDU(如果可用)作为用于IBC的参考区域,不包括当前VPDU。
a.在一个示例中,K1等于2并且K2等于1。
b.在一个示例中,当CTU/CTB尺寸为128×128并且VPDU尺寸为64×64时,可以应用以上方法。
c.在一个示例中,当CTU/CTB尺寸为64×64并且VPDU尺寸为64×64和/或32×32时,可以应用以上方法。
d.在一个示例中,当CTU/CTB尺寸为32×32并且VPDU尺寸为32×32或更小时,可以应用以上方法。
75.以上方法可以被应用于不同阶段。
a.在一个示例中,块矢量(BV)的模运算(例如,a mod b)可以在BV的可用性检查过程中被调用,以决定BV是否有效。
b.在一个示例中,块矢量(BV)的模运算(例如,a mod b)可以被调用,以(例如,根据当前样点的位置和BV的求模结果)标识IBC虚拟缓冲区或重构图片缓冲区中参考样点的位置(例如,在环路滤波过程之前)。
5.实施例
5.1实施例#1
用于IBC的缓冲区的实施方式描述如下:
缓冲区尺寸为128×128。CTU尺寸也为128×128。对于CTU行中的第一个CTU的编解码,缓冲区用128(对于8比特视频信令)进行初始化。对于CTU行中的第k个CTU的编解码,缓冲区用对第(k-1)个CTU的环路滤波之前的重构进行初始化。
图3示出了对从(x,y)开始的块的编解码的示例。
当对从与当前CTU相关的(x,y)开始的块进行编解码时,块矢量(BVx,BVy)=(x-x0,y-y0)被传送到解码器,以指示参考块来自IBC缓冲区中的(x0,y0)。假设块的宽度和高度分别是w和h。当完成对块的编解码时,从IBC缓冲区中的(x,y)开始的w×h区域将用块在环路滤波之前的重构进行更新。
5.2实施例#2
图4示出了选择先前编解码的64×64块的可能的替代方式的示例。
5.3实施例#3
图5示出了改变64×64块的编解码/解码顺序的可能的替代方式的示例。
5.4实施例#4
图8示出了在64×64块的解码顺序是从顶部到底部、从左到右时选择先前编解码的64×64块的另一种可能的替代方式。
5.5实施例#5
图9示出了选择先前编解码的64×64块的另一种可能的替代方式。
5.6实施例#6
图11示出了在64×64块的解码顺序是从左到右、从顶部到底部时选择先前编解码的64×64块的另一种可能的替代方式。
5.7实施例#7
假设CTU尺寸为W×W,解码器处的尺寸为mM×W并且比特深度为B的IBC缓冲区的实施方式如下。
在开始解码CTU行时,用值(1<<(B-1))初始化缓冲区,并且将要更新的起始点(xb,yb)设置为(0,0)。
当从与CTU左上角相关的(x,y)开始并且尺寸为w×h的CU被解码时,从(xb+x,yb+y)开始并且尺寸为w×h的区域将用CU在比特深度与B比特对齐之后的重构像素值进行更新。
在CTU被解码之后,要更新的起点(xb,yb)将被设置为((xb+W)mod mW,0)。
当解码具有块矢量(BVx,BVy)的IBC CU时,对于与CTU左上角相关的任何像素(x,y),在与预测信号的比特深度进行比特深度对齐之后,在位置((x+BVx)mod mW,(y+BVy)modW)处从缓冲区提取其预测。
在一个示例中,B被设置为7或8,而块的输出/输入比特深度可以等于10。
5.8实施例#8
对于从与图片的左上角相关的(x,y)开始的亮度CU或联合亮度/色度CU以及块矢量(BVx,BVy),当isRec(((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))为真时,块矢量无效。
对于从与图片的左上角相关的(x,y)开始的色度CU以及块矢量(BVx,BVy),当isRec(((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))为真时,块矢量无效。
5.9实施例9
对于从与图片的左上角相关的4:2:0格式的(x,y)开始的色度块或子块以及块矢量(BVx,BVy),当isRec(c,(x+BVx+64,y+BVy)为真时,块矢量无效,其中c是色度分量。
对于从与图片的左上角相关的4:4:4格式的(x,y)开始的色度块或子块以及块矢量(BVx,BVy),当isRec(c,(x+BVx+128,y+BVy)为真时,块矢量无效,其中c是色度分量。
5.10实施例#10
对于从与图片的左上角相关的(x,y)开始的亮度CU或联合亮度/色度CU以及块矢量(BVx,BVy),当isRec(((x+BVx)>>6<<6)+128-(((y+BVy)>>6)&1)*64+(x%64),((y+BVy)>>6<<6)+(y%64))为真时,块矢量无效。
对于从与图片的左上角相关的4:2:0格式的(x,y)开始的色度块或子块以及块矢量(BVx,BVy),当isRec(c,((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))为真时,块矢量无效,其中c是色度分量。
5.11实施例#11
该实施例突出了保持CTU/CTB行的第一个VPDU行中的两个最近编解码的VPDU和第二个VPDU行中的一个最近编解码的VPDU的实施方式,不包括当前VPDU。
当VPDU编解码顺序是从顶部到底部和从左到右时,参考区域如图13所示。
当VPDU编解码顺序是从左到右和从顶部到底部,并且当前VPDU不在图片边界的右侧时,参考区域如图14所示。
当VPDU编解码顺序是从左到右和从顶部到底部,并且当前VPDU在图片边界的右侧时,参考区域可以如图15所示。
给定尺寸为w×h的亮度块(x,y),块矢量(BVx,BVy)是否有效可以通过检查以下条件进行判断:
isRec(((x+BVx+128)>>6<<6)–(refy&0x40)+(x%64),((y+BVy)>>6<<6)+(refy>>6==y>>6)?(y%64):0),其中refy=(y&0x40)?(y+BVy):(y+BVy+w-1)。
如果以上函数返回真,则块矢量(BVx,BVy)无效,否则块矢量可能有效。
5.12实施例#12
如果CTU尺寸为192×128,则维护尺寸为192×128的虚拟缓冲区以跟踪用于IBC的参考样点。
相对于图片的左上角的样点(x,y)与相对于缓冲区的左上角的位置(x%192,y%128)相关联。以下步骤示出了如何标记与用于IBC参考的虚拟缓冲区相关联的样点的可用性。
相对于图片的左上角的位置(xPrevVPDU,yPrevVPDU)被记录,以代表最近解码的VPDU的左上角样点。
1)在开始解码VPDU行时,缓冲区的所有位置都被标记为不可用。(xPrevVPDU,yPrevVPDU)被设置为(0,0)。
2)在开始解码VPDU的第一个CU时,位置(x,y)(其中,x=(xPrevVPDU-2WVPDU+2mWVPDU)%(mWVPDU),..,((xPrevVPDU-2WVPDU+2mWVPDU)%(mWVPDU))-1+WVPDU;并且y=yPrevVPDU%(nHVPDU),..,(yPrevVPDU%(nHVPDU))-1+HVPDU)可以被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
3)在对CU进行解码之后,位置(x,y)(其中,x=xCU%(mWVPDU),...,(xCU+CU_width-1)%(mWVPDU)并且y=yCU%(nHVPDU),…,(yCU+CU_height-1)%(nHVPDU))被标记为可用。
4)对于具有块矢量(xBV,yBV)的IBC CU,如果任何位置(x,y)(其中,x=(xCU+xBV)%(mWVPDU),...,(xCU+xBV+CU_width-1)%(mWVPDU)并且y=(yCU+yBV)%(nHVPDU),…,(yCU+yBV+CU_height-1)%(nHVPDU))被标记为不可用,则块矢量被认为是无效的。
图16示出了缓冲区状态以及图片中的VPDU解码状态。
5.13实施例#13
如果CTU尺寸为128×128或者CTU尺寸大于VPDU尺寸(例如,在当前设计中为64×64)或者CTU尺寸大于VPDU尺寸(例如,在当前设计中为64×64),则维护尺寸为192×128的虚拟缓冲区以跟踪用于IBC的参考样点。下面,当a<0时,(a%b)被定义为floor(a/b)*b,其中返回不大于c的最大整数。
相对于图片的左上角的样点(x,y)与相对于缓冲区的左上角的位置(x%192,y%128)相关联。以下步骤示出了如何标记与用于IBC参考的虚拟缓冲区相关联的样点的可用性。
相对于图片的左上角的位置(xPrevVPDU,yPrevVPDU)被记录,以代表最近解码的VPDU的左上角样点。
1)在开始解码VPDU行时,缓冲区的所有位置都被标记为不可用。(xPrevVPDU,yPrevVPDU)被设置为(0,0)。
2)在开始解码VPDU的第一个CU时,
a.如果yPrevVPDU%64等于0,位置(x,y)(其中,x=(xPrevVPDU–128)%192,..,((xPrevVPDU–128)%192)+63;并且y=yPrevVPDU%128,..,(yPrevVPDU%128)+63)被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
b.否则,位置(x,y)(其中,x=(xPrevVPDU–64)%192,..,((xPrevVPDU–64)%192)+63;并且y=yPrevVPDU%128,..,(yPrevVPDU%128)+63)被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
3)在对CU进行解码之后,位置(x,y)(其中,x=xCU%192,...,(xCU+CU_width-1)%192并且y=yCU%128,…,(yCU+CU_height-1)%128)被标记为可用。
4)对于具有块矢量(xBV,yBV)的IBC CU,如果任何位置(x,y)(其中,x=(xCU+xBV)%192,...,(xCU+xBV+CU_width-1)%192并且y=(yCU+yBV)%128,…,(yCU+yBV+CU_height-1)%128)被标记为不可用,块矢量被认为是无效的。
如果CTU尺寸为S×S,S不等于128,则假定Wbuf等于128*128/S。维护尺寸为Wbuf×S的虚拟缓冲区以跟踪用于IBC的参考样点。在这种情况下,VPDU尺寸等于CTU尺寸。
相对于图片的左上角的位置(xPrevVPDU,yPrevVPDU)被记录,以代表最近解码的VPDU的左上角样点。
1)在开始解码VPDU行时,缓冲区的所有位置都被标记为不可用。(xPrevVPDU,yPrevVPDU)被设置为(0,0)。
2)在开始解码VPDU的第一个CU时,位置(x,y)(其中,x=(xPrevVPDU–Wbuf*S)%S,..,((xPrevVPDU–Wbuf*S)%S)+S-1;并且y=yPrevVPDU%S,..,(yPrevVPDU%S)+S-1)被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
3)在对CU进行解码之后,位置(x,y)(其中,x=xCU%(Wbuf),...,(xCU+CU_width-1)%(Wbuf)并且y=yCU%S,…,(yCU+CU_height-1)%S)被标记为可用。
4)对于具有块矢量(xBV,yBV)的IBC CU,如果任何位置(x,y)(其中,x=(xCU+xBV)%(Wbuf),...,(xCU+xBV+CU_width-1)%(Wbuf)并且y=(yCU+yBV)%S,…,(yCU+yBV+CU_height-1)%S)被标记为不可用,则块矢量被认为是无效的。
5.14实施例#14
如果CTU尺寸为128×128或者CTU尺寸大于VPDU尺寸(例如,在当前设计中为64×64)或者CTU尺寸大于VPDU尺寸(例如,在当前设计中为64×64),则维护尺寸为256×128的虚拟缓冲区以跟踪用于IBC的参考样点。下面,当a<0时,(a%b)被定义为floor(a/b)*b,其中返回不大于c的最大整数。
相对于图片的左上角的样点(x,y)与相对于缓冲区的左上角的位置(x%256,y%128)相关联。以下步骤示出了如何标记与用于IBC参考的虚拟缓冲区相关联的样点的可用性。
相对于图片的左上角的位置(xPrevVPDU,yPrevVPDU)被记录,以代表最近解码的VPDU的左上角样点。
1)在开始解码VPDU行时,缓冲区的所有位置都被标记为不可用。(xPrevVPDU,yPrevVPDU)被设置为(0,0)。
2)在开始解码VPDU的第一个CU时,
a.如果yPrevVPDU%64等于0,则位置(x,y)(其中,x=(xPrevVPDU–128)%256,..,((xPrevVPDU–128)%256)+63;并且y=yPrevVPDU%128,..,(yPrevVPDU%128)+63)被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
b.否则,位置(x,y)(其中,x=(xPrevVPDU–64)%256,..,((xPrevVPDU–64)%256)+63;并且y=yPrevVPDU%128,..,(yPrevVPDU%128)+63)被标记为不可用。然后(xPrevVPDU,yPrevVPDU)被设置为(xCU,yCU),即CU相对于图片的左上角位置。
3)在对CU进行解码之后,位置(x,y)(其中,x=xCU%256,...,(xCU+CU_width-1)%256并且y=yCU%128,…,(yCU+CU_height-1)%128)被标记为可用。
4)对于具有块矢量(xBV,yBV)的IBC CU,如果任何位置(x,y)(其中,x=(xCU+xBV)%256,...,(xCU+xBV+CU_width-1)%256并且y=(yCU+yBV)%128,…,(yCU+yBV+CU_height-1)%128)被标记为不可用,则块矢量被认为是无效的。
当CTU尺寸不为128×128或小于64×64或小于64×64时,与先前实施例(即,实施例#14)中相同的过程适用。
5.15实施例#15
IBC参考可用性标记过程描述如下。在本文档中,改变以粗体、下划线和斜体本文进行指示。
7.3.7.1通用条带数据语法
BufWidth等于(CtbSizeY==128)?256:(128*128/CtbSizeY)并且BufHeight等于 CtbSizeY。
7.3.7.5编解码单元语法
8.6.2 IBC块的运动矢量分量的推导过程
8.6.2.1总体
比特流一致性的要求是,当用块矢量mvL调用条款8.6.3.2中的块矢量有效性检查 过程时,isBVvalid应当为真。
8.6.3 ibc块的解码过程
8.6.3.1总体
当对在ibc预测模式下编解码的编解码单元进行解码时,该过程被调用。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块相对于当前图片的左上角亮度样点的左上角样点,
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度,
–变量numSbX和numSbY,指定水平和垂直方向上亮度编解码子块的数量,
–运动矢量mv[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX–1,并且ySbIdx=0..numSbY–1,
–变量cIdx,指定当前块的颜色分量索引。
(nIbcBufW)×(ctbSize)阵列ibcBuf
对于子块索引(xSbIdx,ySbIdx)(其中,xSbIdx=0..numSbX–1,并且ySbIdx=0..numSbY–1)处的每个编解码子块,以下适用:
–指定当前编解码子块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xSb,ySb)被推导如下:
(xSb,ySb)=(xCb+xSbIdx*sbWidth,yCb+ySbIdx*sbHeight)(8-913)
如果cIdx等于0,则nIbcBufW被设置为ibcBufferWidth,否则nIbcBufW被设置为 (ibcBufferWidth/SubWidthC)。以下适用:
predSamples[xSb+x][ySb+y]=ibcBuf[(xSb+x+(mv[xSb][ySb][0]>>4))% nIbcRefW][ySb+y+(mv[xSb][ySb][1]>>4)]
其中x=0..sbWidth–1并且y=0..sbHeight–1。
8.6.3.2块矢量有效性检查过程
该过程的输入是:
亮度位置(xCb,yCb),指定当前编解码块相对于当前图片的左上角亮度样点的左 上角样点,
变量cbWidth,指定亮度样点中的当前编解码块的宽度,
变量cbHeight,指定亮度样点中的当前编解码块的高度,
变量numSbX和numSbY,指定水平和垂直方向上亮度编解码子块的数量,
块矢量mv[xSbIdx][ySbIdx],其中,xSbIdx=0..numSbX-1,并且ySbIdx= 0..numSbY-1,
变量cIdx,指定当前块的颜色分量索引。
(nIbcBufW)×(ctbSize)阵列ibcBuf
该过程的输出是用以指示块矢量是否有效的标志isBVvalid。
以下适用
1.isBVvalid被设置为等于真。
2.如果((yCb&(ctbSize–1))+mv[0][0][1]+cbHeight)>ctbSize,则isBVvalid被 设置为等于假。
3.否则,对于每个子块索引xSbIdx、ySbIdx(其中,xSbIdx=0..numSbX–1,并且 ySbIdx=0..numSbY–1),其相对于ibcBuf的左上角亮度样点的位置被推导为:
xTL=(xCb+xSbIdx*sbWidth+mv[xSbIdx][ySbIdx][0])&(nIbcBufW–1)
yTL=(yCb&(ctbSize–1))+ySbIdx*sbHeight+mv[xSbIdx][ySbIdx][1]
xBR=(xCb+xSbIdx*sbWidth+sbWidth–1+mv[xSbIdx][ySbIdx][0])&(nIbcBufW– 1)
yBR=(yCb&(ctbSize–1))+ySbIdx*sbHeight+sbHeight–1+mv[xSbIdx][ySbIdx] [1]
如果(isDecoded[xTL>>2][yTL>>2]==0)或(isDecoded[xBR>>2][yTL>>2]== 0)或(isDecoded[xBR>>2][yBR>>2]==0),则isBVvalid被设置为等于假。8.7.5图片重构过程
8.7.5.1总体
该过程的输入是:
–位置(xCurr,yCurr),指定当前块相对于当前图片分量的左上角样点的左上角样点,
–变量nCurrSw和nCurrSh,分别指定当前块的宽度和高度,
–变量cIdx,指定当前块的颜色分量,
–(nCurrSw)x(nCurrSh)阵列predSamples,指定当前块的预测样点,
–(nCurrSw)x(nCurrSh)阵列resSamples,指定当前块的残差样点。
该过程的输出是
–重构图片样点阵列recSamples。
IBC参考阵列ibcBuf。
用nIbcBufW表示ibcBuf的宽度,以下适用:
ibcBuf[(xCurr+i)&(nIbcBufW–1)][(yCurr+j)&(ctbSize–1)]=recSamples [xCurr+i][yCurr+j]
其中i=0..nCurrSw–1,j=0..nCurrSh–1。
5.16实施例#16
除了以下改变以外,与先前的实施例相同。
BufWidth等于(CtbSizeY==128)?192:(128*128/CtbSizeY)并且BufHeight等于 CtbSizeY。
5.17实施例#17
在本文档中,一些示例中的改变以粗体、下划线文本进行指示。
7.3.7条带数据语法
7.3.7.1通用条带数据语法
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-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
将vSize设置为min(ctbSize,64),并且将wIbcBuf设置为(128*128/ctbSize)。 ibcBuf的宽度和高度相应地为wIbcBuf和ctbSize。
如果refreshIbcBuf等于1,则以下适用:
对于x=x0..x0+wIbcBuf–1和y=y0..y0+ctbSize–1,ibcBuf[x%wIbcBuf][y% ctbSize]=-1
resetIbcBuf=0
当对于x=x0..x0+vSize–1和y=y0..y0+vSize–1,(x0%vSize)等于0并且(y0% vSize)等于0时,以下适用:
ibcBuf[x%wIbcBuf][y%ctbSize]=-1
8.6.2 IBC块的运动矢量分量的推导过程
8.6.2.1总体
该过程的输入是:
–当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xCb,yCb),
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出是:
–1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
–以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入来调用如在条款8.6.2.2中指定的IBC亮度运动矢量预测的推导过程,并且输出是亮度运动矢量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.以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift和设置为等于MvShift+2的leftShift作为输入并且以取整后的mvL作为输出来调用如在条款8.5.2.14中指定的运动矢量的取整过程。
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(包括-217和217-1)中。
用亮度运动矢量mvL调用如在条款8.6.2.6中指定的基于历史的运动矢量预测值列表的更新过程。
比特流一致性的要求是,亮度块矢量mvL应当遵守以下约束:
((yCb+(mvL[1]>>4))%wIbcBuf)+cbHeight小于或等于ctbSize
对于x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight–1,ibcBuf[(x+(mvL[0]> >4))%wIbcBuf][(y+(mvL[1]>>4))%ctbSize]不应等于-1。
8.7.5图片重构过程
8.7.5.1总体
该过程的输入是:
–位置(xCurr,yCurr),指定当前块相对于当前图片分量的左上角样点的左上角样点,
–变量nCurrSw和nCurrSh,分别指定当前块的宽度和高度,
–变量cIdx,指定当前块的颜色分量,
–(nCurrSw)x(nCurrSh)阵列predSamples,指定当前块的预测样点,
–(nCurrSw)x(nCurrSh)阵列resSamples,指定当前块的残差样点。
该过程的输出重构图片样点阵列resSamples和IBC缓冲区阵列ibcBuf
取决于颜色分量cIdx的值,进行以下指定:
–如果cIdx等于0,则recSamples对应于重构图片样点阵列SL,并且函数clipCidx1对应于Clip1Y
–否则,如果cIdx等于1,则tuCbfChroma被设置为等于tu_cbf_cb[xCurr][yCurr],recSamples对应于重构色度样点阵列SCb,并且函数clipCidx1对应于Clip1C
–否则(cIdx等于2),tuCbfChroma被设置为等于tu_cbf_cr[xCurr][yCurr],recSamples对应于重构色度样点阵列SCr,并且函数clipCidx1对应于Clip1C
取决于slice_lmcs_enabled_flag的值,以下适用:
–如果slice_lmcs_enabled_flag等于0,则对于i=0..nCurrSw–1,j=0..nCurrSh-1,位置(xCurr,yCurr)处的重构样点recSamples的(nCurrSw)x(nCurrSh)块被推导如下:
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
–否则(slice_lmcs_enabled_flag等于1),以下适用:
–如果cIdx等于0,则以下适用:
–以亮度位置(xCurr,yCurr)、块宽度nCurrSw和高度nCurrSh、预测亮度样点阵列predSamples以及残差亮度样点阵列resSamples作为输入来调用如在条款8.7.5.2中指定的亮度样点的图片重构与映射过程,并且输出是重构亮度样点阵列recSamples。
–否则(cIdx大于0),以色度位置(xCurr,yCurr)、变换块宽度nCurrSw和高度nCurrSh、当前色度变换块的编解码块标志tuCbfChroma、预测色度样点阵列predSamples以及残差色度样点阵列resSamples作为输入来调用如在条款8.7.5.3中指定的色度样点的图片重构与依赖于亮度的色度残差缩放过程,并且输出是重构色度样点阵列recSamples。
在对当前编解码单元进行解码之后,以下适用:
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBuf[(xCurr+i)%wIbcBuf][(yCurr+j)%ctbSize]=recSamples[xCurr+i] [yCurr+j]。
5.18实施例#18
在本文档中,一些示例中的改变以粗体、下划线和斜体文本进行指示。
7.3.7条带数据语法
7.3.7.1通用条带数据语法
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-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
将vSize设置为min(ctbSize,64),并且将wIbcBufY设置为(128*128/CtbSizeY)。 ibcBufL是宽度为wIbcBufY并且高度为CtbSizeY的阵列。
ibcBufCb和ibcBufCr是宽度为wIbcBufC=(wIbcBufY/SubWidthC)并且高度为 (CtbSizeY/SubHeightC)(即,CtbSizeC)的阵列。
如果resetIbcBuf等于1,则以下适用
对于x=x0..x0+wIbcBufY–1和y=y0..y0+CtbSizeY–1,ibcBufL[x%wIbcBufY] [y%CtbSizeY]=-1
对于x=x0..x0+wIbcBufC–1和y=y0..y0+CtbSizeC–1,ibcBufCb[x%wIbcBufC] [y%CtbSizeC]=-1
对于x=x0..x0+wIbcBufC–1和y=y0..y0+CtbSizeC–1,ibcBufCr[x%wIbcBufC] [y%CtbSizeC]=-1
resetIbcBuf=0
当(x0%vSizeY)等于0并且(y0%vSizeY)等于0时,以下适用
对于x=x0..x0+vSize–1和y=y0..y0+vSize–1,ibcBufL[x%wIbcBufY][y% CtbSizeY]=-1
对于x=x0/SubWidthC..x0/SubWidthC+vSize/SubWidthC–1和y=y0/ SubHeightC..y0/SubHeightC+vSize/SubHeightC–1,ibcBufCb[x%wIbcBufC][y% CtbSizeC]=-1
对于x=x0/SubWidthC..x0/SubWidthC+vSize/SubWidthC–1和y=y0/ SubHeightC..y0/SubHeightC+vSize/SubHeightC–1,ibcBufCr[x%wIbcBufC][y% CtbSizeC]=-1
8.6.2 IBC块的运动矢量分量的推导过程
8.6.2.1总体
该过程的输入是:
–当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xCb,yCb),
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出是:
–1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
–以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入来调用如在条款8.6.2.2中指定的IBC亮度运动矢量预测的推导过程,并且输出是亮度运动矢量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.以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift和设置为等于MvShift+2的leftShift作为输入并且以取整后的mvL作为输出来调用如在条款8.5.2.14中指定的运动矢量的取整过程。
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(包括-217和217-1)中。
用亮度运动矢量mvL调用如在条款8.6.2.6中指定的基于历史的运动矢量预测值列表的更新过程。
以mvL作为输入并且以mvC作为输出来调用条款8.6.2.5。
比特流一致性的要求是,亮度块矢量mvL应当遵守以下约束:
((yCb+(mvL[1]>>4))%CtbSizeY)+cbHeight小于或等于CtbSizeY
对于x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight–1,ibcBufL[(x+(mvL[0] >>4))%wIbcBufY][(y+(mvL[1]>>4))%CtbSizeY]不应等于-1。
如果treeType等于SINGLE_TREE,则对于x=xCb..xCb+cbWidth–1和y=yCb..yCb +cbHeight–1,ibcBufCb[(x+(mvC[0]>>5))%wIbcBufC][(y+(mvC[1]>>5))%CtbSizeC]]不 应等于-1。
8.6.3 ibc块的解码过程
8.6.3.1总体
当对在ibc预测模式下编解码的编解码单元进行解码时,该过程被调用。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块相对于当前图片的左上角亮度样点的左上角样点,
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度,
–当前块的颜色分量索引。
运动矢量mv,
(wIbcBufY)×(CtbSizeY)阵列ibcBufL,(wIbcBufC)×(CtbSizeC)阵列ibcBufCb (wIbcBufC)×(CtbSizeC)阵列ibcBufCr
该过程的输出是:
–预测样点的阵列predSamples。
对于x=xCb..xCb+Width–1和y=yCb..yCb+Height-1,以下适用如果cIdx等于0
predSamples[x][y]=ibcBufL[(x+mv[0]>>4))%wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
如果cIdx等于1
predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
如果cIdx等于2
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
8.7.5图片重构过程
8.7.5.1总体
该过程的输入是:
–位置(xCurr,yCurr),指定当前块相对于当前图片分量的左上角样点的左上角样点,
–变量nCurrSw和nCurrSh,分别指定当前块的宽度和高度,
–变量cIdx,指定当前块的颜色分量,
–(nCurrSw)x(nCurrSh)阵列predSamples,指定当前块的预测样点,
–(nCurrSw)x(nCurrSh)阵列resSamples,指定当前块的残差样点。
该过程的输出重构图片样点阵列recSamples和IBC缓冲区阵列ibcBufL ibcBufCb、ibcBufCr
取决于颜色分量cIdx的值,进行以下指定:
–如果cIdx等于0,则recSamples对应于重构图片样点阵列SL,并且函数clipCidx1对应于Clip1Y
–否则,如果cIdx等于1,则tuCbfChroma被设置为等于tu_cbf_cb[xCurr][yCurr],recSamples对应于重构色度样点阵列SCb,并且函数clipCidx1对应于Clip1C
–否则(cIdx等于2),tuCbfChroma被设置为等于tu_cbf_cr[xCurr][yCurr],recSamples对应于重构色度样点阵列SCr,并且函数clipCidx1对应于Clip1C
取决于slice_lmcs_enabled_flag的值,以下适用:
–如果slice_lmcs_enabled_flag等于0,则对于i=0..nCurrSw–1,j=0..nCurrSh-1,位置(xCurr,yCurr)处的重构样点recSamples的(nCurrSw)x(nCurrSh)块被推导如下:
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
–否则(slice_lmcs_enabled_flag等于1),以下适用:
–如果cIdx等于0,则以下适用:
–以亮度位置(xCurr,yCurr)、块宽度nCurrSw和高度nCurrSh、预测亮度样点阵列predSamples以及残差亮度样点阵列resSamples作为输入来调用如在条款8.7.5.2中指定的亮度样点的图片重构与映射过程,并且输出是重构亮度样点阵列recSamples。
–否则(cIdx大于0),以色度位置(xCurr,yCurr)、变换块宽度nCurrSw和高度nCurrSh、当前色度变换块的编解码块标志tuCbfChroma、预测色度样点阵列predSamples以及残差色度样点阵列resSamples作为输入来调用如在条款8.7.5.3中指定的色度样点的图片重构与依赖于亮度的色度残差缩放过程,并且输出是重构色度样点阵列recSamples。
在对当前编解码单元进行解码之后,以下可以适用:
如果cIdx等于0,并且如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则以下 适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufL[(xCurr+i)%wIbcBufY][(yCurr+j)%CtbSizeY]=recSamples[xCurr+ i][yCurr+j]。
如果cIdx等于1,并且如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则以 下适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCb[(xCurr+i)%wIbcBufC][(vCurr+j)%CtbSizeC]=recSamples[xCurr+ i][yCurr+j]。
如果cIdx等于2,并且如果treeTvpe等于SINGLETREE或DUALTREECHROMA,则以下适
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCr[(xCurr+i)%wIbcBufC][(yCurr+j)%CtbSizeC]=recSamples[xCurr+ i][vCurr+j]。
5.19实施例#19
在本文档中,一些示例中的改变以粗体、下划线文本进行指示。
7.3.7条带数据语法
7.3.7.1通用条带数据语法
/>
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-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
将vSize设置为min(ctbSize,64),并且将wIbcBufY设置为(128*128/CtbSizeY)。 ibcBufL是宽度为wIbcBufY并且高度为CtbSizeY的阵列。
ibcBufCb和ibcBufCr是宽度为wIbcBufC=(wIbcBufY/SubWidthC)并且高度为 (CtbSizeY/SubHeightC)(即,CtbSizeC)的阵列。
如果resetIbcBuf等于1,则以下适用
对于x=x0..x0+wIbcBufY–1和v=v0..v0+CtbSizeY–1,ibcBufL[x%wIbcBufY] [v%CtbSizeY]=-1
对于x=x0..x0+wIbcBufC–1和v=v0..v0+CtbSizeC–1,ibcBufCb[x%wIbcBufC] [y%CtbSizeC]=-1
对于x=x0..x0+wIbcBufC–1和y=y0..y0+CtbSizeC–1,ibcBufCr[x%wIbcBufC] [y%CtbSizeC]=-1
resetIbcBuf=0
当(x0%vSizeY)等于0并且(y0%vSizeY)等于0时,以下适用
对于x=x0..x0+min(vSize,cbWidth)–1和y=y0..y0+min(vSize,cbHeight)–1, ibcBufL[x%wIbcBufY][y%CtbSizeY]=-1
对于x=x0/SubWidthC..x0/SubWidthC+min(vSize/SubWidthC,cbWidth)-1和y =y0/SubHeightC..v0/SubHeightC+min(vSize/SubHeightC,cbHeight)–1,ibcBufCb[x% wIbcBufC][y%CtbSizeC]=-1
对于x=x0/SubWidthC..x0/SubWidthC+min(vSize/SubWidthC,cbWidth)–1和v =y0/SubHeightC..y0/SubHeightC+min(vSize/SubHeightC,cbHeight)–1,ibcBufCr[x% wIbcBufC][v%CtbSizeC]=-1
8.6.2 IBC块的运动矢量分量的推导过程
8.6.2.1总体
该过程的输入是:
–当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xCb,yCb),
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出是:
–1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
–以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入来调用如在条款8.6.2.2中指定的IBC亮度运动矢量预测的推导过程,并且输出是亮度运动矢量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.以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift和设置为等于MvShift+2的leftShift作为输入并且以取整后的mvL作为输出来调用如在条款8.5.2.14中指定的运动矢量的取整过程。
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(包括-217和217-1)中。
用亮度运动矢量mvL调用如在条款8.6.2.6中指定的基于历史的运动矢量预测值列表的更新过程。
以mvL作为输入并且以mvC作为输出来调用条款8.6.2.5。
比特流一致性的要求是,亮度块矢量mvL应当遵守以下约束:
((yCb+(mvL[1]>>4))%CtbSizeY)+cbHeight小于或等于CtbSizeY
对于x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight–1,ibcBufL[(x+(mvL[0] >>4))%wIbcBufY][(y+(mvL[1]>>4))%CtbSizeY]不应等于-1。
如果treeType等于SINGLE_TREE,则对于x=xCb..xCb+cbWidth–1和y=yCb..yCb +cbHeight–1,ibcBufCb[(x+(mvC[0]>>5))%wIbcBufC][(y+(mvC[1]>>5))%CtbSizeC]]不 应等于-1。
8.6.3 ibc块的解码过程
8.6.3.1总体
当对在ibc预测模式下编解码的编解码单元进行解码时,该过程被调用。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块相对于当前图片的左上角亮度样点的左上角样点,
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度,
变量cIdx,指定当前块的颜色分量索引。
运动矢量mv,
(wIbcBufY)×(CtbSizeY)阵列ibcBufL,(wIbcBufC)×(CtbSizeC)阵列ibcBufCb (wIbcBufC)×(CtbSizeC)阵列ibcBufCr
该过程的输出是:
预测样点的阵列predSamples。
对于x=xCb..xCb+Width–1和y=yCb..yCb+Height-1,以下适用如果cIdx等于0
predSamples[x][y]=ibcBufL[(x+mv[0]>>4))%wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
如果cIdx等于1
predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
如果cIdx等于2
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
8.7.5图片重构过程
8.7.5.1总体
该过程的输入是:
–位置(xCurr,yCurr),指定当前块相对于当前图片分量的左上角样点的左上角样点,
–变量nCurrSw和nCurrSh,分别指定当前块的宽度和高度,
–变量cIdx,指定当前块的颜色分量,
–(nCurrSw)x(nCurrSh)阵列predSamples,指定当前块的预测样点,
–(nCurrSw)x(nCurrSh)阵列resSamples,指定当前块的残差样点。
该过程的输出是重构图片样点阵列recSamples和IBC缓冲区阵列ibcBufL、ibcBufCb、ibcBufCr
取决于颜色分量cIdx的值,进行以下指定:
–如果cIdx等于0,则recSamples对应于重构图片样点阵列SL,并且函数clipCidx1对应于Clip1Y
–否则,如果cIdx等于1,则tuCbfChroma被设置为等于tu_cbf_cb[xCurr][yCurr],recSamples对应于重构色度样点阵列SCb,并且函数clipCidx1对应于Clip1C
–否则(cIdx等于2),tuCbfChroma被设置为等于tu_cbf_cr[xCurr][yCurr],recSamples对应于重构色度样点阵列SCr,并且函数clipCidx1对应于Clip1C
取决于slice_lmcs_enabled_flag的值,以下适用:
–如果slice_lmcs_enabled_flag等于0,则对于i=0..nCurrSw–1,j=0..nCurrSh-1,位置(xCurr,yCurr)处的重构样点recSamples的(nCurrSw)x(nCurrSh)块被推导如下:recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
–否则(slice_lmcs_enabled_flag等于1),以下适用:
–如果cIdx等于0,则以下适用:
–以亮度位置(xCurr,yCurr)、块宽度nCurrSw和高度nCurrSh、预测亮度样点阵列predSamples以及残差亮度样点阵列resSamples作为输入来调用如在条款8.7.5.2中指定的亮度样点的图片重构与映射过程,并且输出是重构亮度样点阵列recSamples。
–否则(cIdx大于0),以色度位置(xCurr,yCurr)、变换块宽度nCurrSw和高度nCurrSh、当前色度变换块的编解码块标志tuCbfChroma、预测色度样点阵列predSamples以及残差色度样点阵列resSamples作为输入来调用如在条款8.7.5.3中指定的色度样点的图片重构与依赖于亮度的色度残差缩放过程,并且输出是重构色度样点阵列recSamples。
在对当前编解码单元进行解码之后,以下可以适用:
如果cIdx等于0,并且如果treeType等于SINGLE_TREE或DUALTREELUMA,则以下适
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufL[(xCurr+i)%wIbcBufY][(vCurr+j)%CtbSizeY]=recSamples[xCurr+ i][yCurr+j]。
如果cIdx等于1,并且如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则以 下适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCb[(xCurr+i)%wIbcBufC][(vCurr+j)%CtbSizeC]=recSamples[xCurr+ i][vCurr+j]。
如果cIdx等于2,并且如果treeTvpe等于SINGLE_TREE或DUAL_TREE_CHROMA,则以 下适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCr[(xCurr+i)%wIbcBufC][(yCurr+j)%CtbSizeC]=recSamples[xCurr+ i][yCurr+j]。
5.20实施例#20
在本文档中,一些示例中的改变以粗体、下划线和斜体文本进行指示。
7.3.7条带数据语法
7.3.7.1通用条带数据语法
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-135)
CbPosY[x][y]=y0 (7-136)
CbWidth[x][y]=cbWidth (7-137)
CbHeight[x][y]=cbHeight (7-138)
将vSize设置为min(ctbSize,64),并且将wIbcBufY设置为(128*128/CtbSizeY)。 ibcBufL是宽度为wIbcBufY并且高度为CtbSizeY的阵列。
ibcBufCb和ibcBufCr是宽度为wIbcBufC=(wIbcBufY/SubWidthC)并且高度为 (CtbSizeY/SubHeightC)(即,CtbSizeC)的阵列。
如果resetIbcBuf等于1,则以下适用
对于x=x0..x0+wIbcBufY–1和y=y0..y0+CtbSizeY–1,ibcBufL[x%wIbcBufY] [y%CtbSizeY]=-1
对于x=x0..x0+wIbcBufC–1和y=y0..y0+CtbSizeC–1,ibcBufCb[x%wIbcBufC] [y%CtbSizeC]=-1
对于x=x0..x0+wIbcBufC–1和y=y0..y0+CtbSizeC–1,ibcBufCr[x%wIbcBufC] [y%CtbSizeC]=-1
resetIbcBuf=0
当(x0%vSizeY)等于0并且(y0%vSizeY)等于0时,以下适用
对于x=x0..x0+max(vSize,cbWidth)–1和y=y0..y0+max(vSize,cbHeight)–1, ibcBufL[x%wIbcBufY][y%CtbSizeY]=-1
对于x=x0/SubWidthC..x0/SubWidthC+max(vSize/SubWidthC,cbWidth)-1和y =y0/SubHeightC..y0/SubHeightC+max(vSize/SubHeightC,cbHeight)–1,ibcBufCb[x% wIbcBufC][y%CtbSizeC]=-1
对于x=x0/SubWidthC..x0/SubWidthC+max(vSize/SubWidthC,cbWidth)–1和y =y0/SubHeightC..y0/SubHeightC+max(vSize/SubHeightC,cbHeight)–1,ibcBufCr[x% wIbcBufC][y%CtbSizeC]=-1
8.6.2 IBC块的运动矢量分量的推导过程
8.6.2.1总体
该过程的输入是:
–当前亮度编解码块相对于当前图片的左上角亮度样点的左上角样点的亮度位置(xCb,yCb),
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度。
该过程的输出是:
–1/16分数样点精度的亮度运动矢量mvL。
亮度运动矢量mvL被推导如下:
–以亮度位置(xCb,yCb)、变量cbWidth和cbHeight作为输入来调用如在条款8.6.2.2中指定的IBC亮度运动矢量预测的推导过程,并且输出是亮度运动矢量mvL。
–当general_merge_flag[xCb][yCb]等于0时,以下适用:
10.变量mvd被推导如下:
mvd[0]=MvdL0[xCb][yCb][0] (8-883)
mvd[1]=MvdL0[xCb][yCb][1] (8-884)
11.以设置为等于mvL的mvX、设置为等于MvShift+2的rightShift和设置为等于MvShift+2的leftShift作为输入并且以取整后的mvL作为输出来调用如在条款8.5.2.14中指定的运动矢量的取整过程。
12.亮度运动矢量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(包括-217和217-1)中。
用亮度运动矢量mvL调用如在条款8.6.2.6中指定的基于历史的运动矢量预测值列表的更新过程。
以mvL作为输入并且以mvC作为输出来调用条款8.6.2.5。
比特流一致性的要求是,亮度块矢量mvL应当遵守以下约束:
((yCb+(mvL[1]>>4))%CtbSizeY)+cbHeight小于或等于CtbSizeY
对于x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight–1,ibcBufL[(x+(mvL[0] >>4))%wIbcBufY][(y+(mvL[1]>>4))%CtbSizeY]不应等于-1。
8.6.3 ibc块的解码过程
8.6.3.1总体
当对在ibc预测模式下编解码的编解码单元进行解码时,该过程被调用。
该过程的输入是:
–亮度位置(xCb,yCb),指定当前编解码块相对于当前图片的左上角亮度样点的左上角样点,
–变量cbWidth,指定亮度样点中的当前编解码块的宽度,
–变量cbHeight,指定亮度样点中的当前编解码块的高度,
–变量cIdx,指定当前块的颜色分量索引。
运动矢量mv,
(wIbcBufY)×(CtbSizeY)阵列ibcBufL,(wIbcBufC)×(CtbSizeC)阵列ibcBufCb (wIbcBufC)×(CtbSizeC)阵列ibcBufCr
该过程的输出是:
预测样点的阵列predSamples。
对于x=xCb..xCb+Width–1和y=yCb..yCb+Height-1,以下适用如果cIdx等于0
predSamples[x][y]=ibcBufL[(x+mv[0]>>4))%wIbcBufY][(y+(mv[1]>>4))% CtbSizeY]
如果cIdx等于1
predSamples[x][y]=ibcBufCb[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
如果cIdx等于2
predSamples[x][y]=ibcBufCr[(x+mv[0]>>5))%wIbcBufC][(y+(mv[1]>>5))% CtbSizeC]
8.7.5图片重构过程
8.7.5.1总体
该过程的输入是:
–位置(xCurr,yCurr),指定当前块相对于当前图片分量的左上角样点的左上角样点,
–变量nCurrSw和nCurrSh,分别指定当前块的宽度和高度,
–变量cIdx,指定当前块的颜色分量,
–(nCurrSw)x(nCurrSh)阵列predSamples,指定当前块的预测样点,
–(nCurrSw)x(nCurrSh)阵列resSamples,指定当前块的残差样点。
该过程的输出重构图片样点阵列recSamples和IBC缓冲区阵列ibcBufL ibcBufCb、ibcBufCr
取决于颜色分量cIdx的值,进行以下指定:
–如果cIdx等于0,则recSamples对应于重构图片样点阵列SL,并且函数clipCidx1对应于Clip1Y
–否则,如果cIdx等于1,则tuCbfChroma被设置为等于tu_cbf_cb[xCurr][yCurr],recSamples对应于重构色度样点阵列SCb,并且函数clipCidx1对应于Clip1C
–否则(cIdx等于2),tuCbfChroma被设置为等于tu_cbf_cr[xCurr][yCurr],recSamples对应于重构色度样点阵列SCr,并且函数clipCidx1对应于Clip1C
取决于slice_lmcs_enabled_flag的值,以下适用:
–如果slice_lmcs_enabled_flag等于0,则对于i=0..nCurrSw–1,j=0..nCurrSh-1,位置(xCurr,yCurr)处的重构样点recSamples的(nCurrSw)x(nCurrSh)块被推导如下:
recSamples[xCurr+i][yCurr+j]=clipCidx1(predSamples[i][j]+resSamples[i][j]) (8-992)
–否则(slice_lmcs_enabled_flag等于1),以下适用:
–如果cIdx等于0,则以下适用:
–以亮度位置(xCurr,yCurr)、块宽度nCurrSw和高度nCurrSh、预测亮度样点阵列predSamples以及残差亮度样点阵列resSamples作为输入来调用如在条款8.7.5.2中指定的亮度样点的图片重构与映射过程,并且输出是重构亮度样点阵列recSamples。
–否则(cIdx大于0),以色度位置(xCurr,yCurr)、变换块宽度nCurrSw和高度nCurrSh、当前色度变换块的编解码块标志tuCbfChroma、预测色度样点阵列predSamples以及残差色度样点阵列resSamples作为输入来调用如在条款8.7.5.3中指定的色度样点的图片重构与依赖于亮度的色度残差缩放过程,并且输出是重构色度样点阵列recSamples。
在对当前编解码单元进行解码之后,以下可以适用:
如果cIdx等于0,并且如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则以下 适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufL[(xCurr+i)%wIbcBufY][(yCurr+j)%CtbSizeY]=recSamples[xCurr+ i][yCurr+j]。
如果cIdx等于1,并且如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则以 下适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCb[(xCurr+i)%wIbcBufC][(yCurr+j)%CtbSizeC]=recSamples[xCurr+ i][yCurr+j]。
如果cIdx等于2,并且如果treeType等于SINGLE_TREE或DUAL_TREE_CHROMA,则以 下适用
对于i=0..nCurrSw–1,j=0..nCurrSh–1
ibcBufCr[(xCurr+i)%wIbcBufC][(yCurr+j)%CtbSizeC]=recSamples[xCurr+ i][yCurr+j]。
图6是可视媒体(视频或图像)处理的示例方法600的流程图。方法600包括:对于当前视频块和当前视频块的比特流表示之间的转换,确定(602)缓冲区的尺寸以存储使用帧内块复制编解码模式的当前视频块的参考样点;以及使用存储在缓冲区中的参考样点来执行(604)该转换。
以下条款描述了由方法600和其它方法的实施例实施的一些示例优选特征。在本文档的第4章节中提供了附加示例。
1.一种视频处理的方法,包括:对于当前视频块和当前视频块的比特流表示之间的转换,确定缓冲区的尺寸以存储使用帧内块复制编解码模式的当前视频块的参考样点;以及使用存储在缓冲区中的参考样点来执行该转换。
2.根据条款1所述的方法,其中,缓冲区的尺寸为预定常数。
3.根据条款1-2中任一项所述的方法,其中,尺寸为M×N,其中M和N为整数。
4.根据条款3所述的方法,其中,M×N等于64×64或128×128或64×128。
5.根据条款1所述的方法,其中,缓冲区的尺寸等于当前视频块的编解码树单元的尺寸。
6.根据条款1所述的方法,其中,缓冲区的尺寸等于在该转换期间使用的虚拟管道数据单元的尺寸。
7.根据条款1所述的方法,其中,缓冲区的尺寸对应于比特流表示中的字段。
8.根据条款7所述的方法,其中,该字段被包括在视频参数集或序列参数集或图片参数集或图片头或条带头或片组头级别的比特流表示中。
9.根据条款1-8中任一项所述的方法,其中,对于亮度分量的参考样点和色度分量的参考样点,缓冲区的尺寸不同。
10.根据条款1-8中任一项所述的方法,其中,缓冲区的尺寸取决于当前视频块的色度子采样格式。
11.根据条款1-8中任一项所述的方法,其中,参考样点以RGB格式被存储。
12.根据条款1-11中任一项所述的方法,其中,缓冲区用于存储环路滤波之前的重构样点和环路滤波之后的重构样点。
13.根据条款12所述的方法,其中,环路滤波包括去方块滤波或自适应环路滤波(ALF)或样点自适应偏移(SAO)滤波。
14.一种视频处理的方法,包括:对于当前视频块和当前视频块的比特流表示之间的转换,使用参考样点的初始值来初始化缓冲区,以存储使用帧内块复制编解码模式的当前视频块的参考样点;以及使用存储在缓冲区中的参考样点来执行该转换。
15.根据条款14所述的方法,其中,初始值对应于常数。
16.根据条款14-15中任一项所述的方法,其中,初始值是当前视频块的比特深度的函数。
17.根据条款15所述的方法,其中,常数对应于中间灰度值。
18.根据条款14所述的方法,其中,初始值对应于先前解码的视频块的像素值。
19.根据条款18所述的方法,其中,先前解码的视频块对应于环路滤波之前的解码块。
20.根据条款14-19中任一项所述的方法,其中,缓冲区的尺寸如条款1-13中的一项所述。
21.根据条款1-20中任一项所述的方法,其中,缓冲区内的像素位置使用x数字和y数字进行寻址。
22.根据条款1-20中任一项所述的方法,其中,缓冲区内的像素位置使用从0扩展到M*N-1的单个数字进行寻址,其中M和N是缓冲区的像素宽度和像素高度。
23.根据条款1-20中任一项所述的方法,其中,当前比特流表示包括用于该转换的块矢量,其中,表示为(BVx,BVy)的块矢量等于(x-x0,y-y0),其中(x0,y0)对应于当前视频块的编解码树单元的左上角位置。
24.根据条款1-20中任一项所述的方法,其中,当前比特流表示包括用于该转换的块矢量,其中,表示为(BVx,BVy)的块矢量等于(x-x0+Tx,y-y0+Ty),其中(x0,y0)对应于当前视频块的编解码树单元的左上角位置,并且其中,Tx和Ty是偏移值。
25.根据条款24所述的方法,其中,Tx和Ty是预定义的偏移值。
26.根据条款1-20中任一项所述的方法,其中,在该转换期间,对于在位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,缓冲区中的对应参考在参考位置(x0+BVx,y0+BVy)处被找到。
27.根据条款26所述的方法,其中,在参考位置在缓冲区之外的情况下,缓冲区中的参考通过在缓冲区的边界处进行裁剪而确定。
28.根据条款26所述的方法,其中,在参考位置在缓冲区之外的情况下,缓冲区中的参考被确定为具有预定值。
29.根据条款1-20中任一项所述的方法,其中,在该转换期间,对于在位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,缓冲区中的对应参考在参考位置((x0+BVx)mod M,(y0+BVy)mod N)处被找到,其中“mod”是模运算,并且M和N是表示缓冲区的x维度和y维度的整数。
30.一种视频处理的方法,包括:在视频和当前视频块的比特流表示之间的转换期间,重置存储用于视频边界处的帧内块复制编解码的参考样点的缓冲区;以及使用存储在缓冲区中的参考样点来执行该转换。
31.根据条款30所述的方法,其中,视频边界对应于新图片或新片。
32.根据条款30所述的方法,其中,该转换通过在重置之后用虚拟管道数据单元(VPDU)的重构值更新缓冲区而执行。
33.根据条款30所述的方法,其中,该转换通过在重置之后用编解码树单元的重构值更新缓冲区而执行。
34.根据条款30所述的方法,其中,重置在每个编解码树单元行的开始处被执行。
35.根据条款1所述的方法,其中,缓冲区的尺寸对应于L个64×64的先前解码的块,其中L为整数。
36.根据条款1-35中任一项所述的方法,其中,垂直扫描顺序用于在该转换期间读取缓冲区中的样点或将样点存储在缓冲区中。
37.一种视频处理的方法,包括:对于当前视频块和当前视频块的比特流表示之间的转换,使用缓冲区来存储使用帧内块复制编解码模式的当前视频块的参考样点,其中,缓冲区的第一比特深度不同于编解码数据的第二比特深度;以及使用存储在缓冲区中的参考样点来执行该转换。
38.根据条款37所述的方法,其中,第一比特深度大于第二比特深度。
39.根据条款37-38中任一项所述的方法,其中,第一比特深度与在该转换期间使用的重构缓冲区的比特深度相同。
40.根据条款37-39中任一项所述的方法,其中,第一比特深度作为值或差值在比特流表示中被信令通知。
41.根据条款37-40中任一项所述的方法,其中,对于色度分量和亮度分量,该转换使用不同的比特深度。
在第4章节的第7项中描述了条款37至41的附加实施例和示例。
42.一种视频处理的方法,包括:执行使用帧内块复制模式的当前视频块和当前视频块的比特流表示之间的转换,其中在该帧内块复制模式下,在该转换期间用于预测计算的第一精确度低于在该转换期间用于重构计算的第二精确度。
43.根据条款43所述的方法,其中,预测计算包括使用clip{{p+[1<<(b-1)]}>>b,0,(1<<bitdepth)-1}<<b从重构样点值确定预测样点值,其中p是重构样点值,b是预定义的比特移位值,并且bitdepth是预测样点精确度。
在第4章节的第28至31项和第34项中描述了条款42至43的附加实施例和示例。
44.一种视频处理的方法,包括:执行使用帧内块复制模式的当前视频块和当前视频块的比特流表示之间的转换,其中在该帧内块复制模式下,尺寸为nM×nM的参考区域用于尺寸为M×M的编解码树单元,其中n和M为整数,并且其中,当前视频块位于编解码树单元中,并且其中,参考区域是对应于当前视频块的编解码树单元行中的最近的可用的n×n编解码树单元。
在第4章节的第35项中描述了条款4的附加实施例和示例。
45.一种视频处理的方法,包括:执行使用帧内块复制模式的当前视频块和当前视频块的比特流表示之间的转换,其中在该帧内块复制模式下,尺寸为nM×nM的参考区域用于尺寸为除M×M之外的编解码树单元,其中n和M为整数,并且其中,当前视频块位于编解码树单元中,并且其中,参考区域是对应于当前视频块的编解码树单元行中的最近的可用的n×n-1编解码树单元。
在第4章节的第36项中描述了条款4的附加实施例和示例。图8和图9示出了附加的示例实施例。
46.根据权利要求3所述的方法,其中,M=mW并且N=H,其中W和H是当前视频块的编解码树单元(CTU)的宽度和高度,并且m是正整数。
47.根据权利要求3所述的方法,其中,M=W并且N=nH,其中W和H是编解码树单元(CTU)的宽度和高度,并且n是正整数。
48.根据权利要求3所述的方法,其中,M=mW并且N=nH,其中W和H是编解码树单元(CTU)的宽度和高度,m和n是正整数。
49.根据权利要求46-48中任一项所述的方法,其中,n和m取决于CTU的尺寸。
50.一种视频处理的方法,包括:对于视频的当前视频块和当前视频块的比特流表示之间的转换,使用视频的分量X来确定与视频的分量c的当前视频块相对应的块矢量的有效性,其中,分量X不同于视频的亮度分量;以及当确定块矢量对于当前视频块有效时,使用块矢量来执行该转换。这里,表示为(BVx,BVy)的块矢量等于(x-x0,y-y0),其中(x0,y0)对应于当前视频块的编解码树单元的左上角位置。
51.根据条款50所述的方法,其中,分量c对应于视频的亮度分量。
52.根据条款50所述的方法,其中,当前视频块是色度块,并且视频为4:4:4格式。
53.根据条款50所述的方法,其中,视频为4:2:0格式,并且其中,当前视频块是在位置(x,y)处开始的色度块,并且其中,该确定包括将块矢量确定为对于其中isRec(c,((x+BVx)>>5<<5)+64-(((y+BVy)>>5)&1)*32+(x%32),((y+BVy)>>5<<5)+(y%32))为真的情况无效。
54.根据条款50所述的方法,其中,视频为4:2:0格式,并且其中,当前视频块是在位置(x,y)处开始的色度块,并且其中,该确定包括将块矢量确定为对于如果isRec(c,x+BVx+Chroma_CTU_size,y)为真的情况无效。
55.一种视频处理的方法,包括:对于视频区域的当前虚拟管道数据单元(VPDU)的当前视频块和当前视频块的比特流表示之间的转换,选择性地确定使用来自视频区域的第一行的K1个先前处理的VPDU和来自视频区域的第二行的K2个先前处理的VPDU;以及执行该转换,其中,该转换不包括使用当前VPDU的剩余部分。
56.根据条款55所述的方法,其中,K1=1并且K2=2。
57.根据条款55-56中任一项所述的方法,其中,当前视频块基于视频区域的大小或当前VPDU的大小而选择性地处理。
58.一种视频处理的方法,包括:为当前视频块和当前视频块的比特流表示之间的转换执行块矢量的有效性检查,其中,块矢量用于帧内块复制模式;以及在该转换期间使用有效性检查的结果来选择性地使用块矢量。
59.根据条款58所述的方法,其中,帧内块复制(IBC)缓冲区在该转换期间被使用,其中,IBC缓冲区的宽度和高度为Wbuf和Hbuf,当前视频块的大小为W×H,并且其中,块矢量被表示为(BVx,BVy),并且其中,当前视频块在具有大小Wpic和Hpic的当前图片以及具有Wctu和Hctu作为宽度和高度的编解码树单元中,并且其中,有效性检查使用预定规则。
60.根据条款58-59中任一项所述的方法,其中,当前视频块是从像素坐标(X,Y)开始的亮度块、色度块、编解码单元CU、变换单元TU、4×4块、2×2块或父块的子块。
61.根据条款58-60中任一项所述的方法,其中,有效性检查将落在当前图片的边界之外的块矢量视为有效。
62.根据条款58-60中任一项所述的方法,其中,有效性检查将落在编解码树单元的边界之外的块矢量视为有效。
先前章节中的第23-30项提供了以上条款58-62的附加示例和变型。
63.根据条款1-62中任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
64.根据条款1-62中任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块的像素值。
65.一种视频编码器装置,包括被配置为实施根据条款1-62中任一项或多项所述的方法的处理器。
66.一种视频解码器装置,包括被配置为实施根据条款1-62中任一项或多项所述的方法的处理器。
67.一种其上存储有代码的计算机可读介质,该代码体现用于实施根据条款1-62中任一项或多项所述的方法的处理器可执行指令。
图7是视频/图像处理装置700的硬件平台的框图。装置700可以用于实施本文描述的方法中的一种或多种。装置700可以体现在智能电话、平板电脑、计算机、物联网(Internet of Things,IoT)接收器等中。装置700可以包括一个或多个处理器702、一个或多个存储器704、以及视频处理硬件706。(多个)处理器702可以被配置为实施本文档中描述的一种或多种方法(包括但不限于方法600)。存储器(多个存储器)704可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件706可以用于以硬件电路实施本文档中描述的一些技术。
对应于当前视频块的比特流表示不需要是连续的比特集合,并且可以跨头、参数集和网络抽象层(Network Abstraction Layer,NAL)分组而分布。
章节A:另一附加示例实施例
在章节A中,我们呈现了另一示例实施例,其中可以修改VVC标准的当前版本,以实施在本文档中描述的技术中的一些。
本章节分析当前IBC参考缓冲区设计中的几个问题,并呈现不同的设计来解决问题。代替与解码内存混合,提出了一种独立的IBC参考缓冲区来。与当前锚(anchor)相比,所提出的方案示出了类F的-0.99%/-0.71%/-0.79%的AI/RA/LD-B亮度BD率和4:2:0TGM的-2.57%/-1.81%/-1.36%的AI/RA/LD-B亮度BD率,其中6.7%的内存减少;或类F的-1.31%/-1.01%/-0.81%的AI/RA/LD-B亮度BD率和4:2:0TGM的-3.23%/-2.33%/-1.71%的AI/RA/LD-B亮度BD率,其中6.7%的内存增加。
A1.介绍
采用帧内块复制,即IBC(或当前图片参考,即先前的CPR)编解码模式。已经意识到,IBC参考样点应该被存储在片上内存中,因此定义了一个CTU的有限参考区域。为了限制用于缓冲区的额外片上内存,当前设计重用64×64内存以用于对当前VPDU进行解码,使得仅需要3个附加的64×64块的内存来支持IBC。当CTU尺寸为128×128时,参考区域当前在图2中被示出。
在当前草案(VVC草案4)中,区域被定义为:
因此,总的参考尺寸为CTU。
A2.当前设计的潜在问题
当前设计假设重用64×64内存以用于对当前VPDU进行解码,并且相应地将IBC参考与VPDU内存重用对齐。这样的设计将VPDU解码内存与IBC缓冲区捆绑在一起。可能存在几个问题:
1.处理更小的CTU可能是个问题。假设CTU尺寸为32×32,不清楚用于对当前VPDU进行解码的当前64×64内存是否可以在不同的架构中有效地支持32×32级别内存重用。
2.参考区域显著变化。因此,引入了过多的比特流一致性约束。它给编码器有效地利用参考区域并避免生成合法的比特流增加了额外的负担。这也增加了在不同模块(例如,Merge列表)中具有无效BV的可能性。为了处理那些无效BV,可能会引入额外的逻辑或额外的一致性约束。它不仅会给编码器或解码器引入负担,还可能会造成BV编解码和MV编解码之间的差异。
3.该设计不能很好地扩展。由于VPDU解码与IBC缓冲区混合,相对于当前的一个128×128CTU的设计增加或减少参考区域并不容易。这可能会限制在以后的开发(例如,更低或更高的简表)中利用更好的编解码效率对片上内存的折衷的灵活性。
4.IBC参考缓冲区的比特深度与解码缓冲区相关联。即使屏幕内容通常具有比内部解码比特深度更低的比特深度,缓冲区仍然需要花费内存来存储主要表示取整或量化噪声的比特。当考虑更高的解码比特深度配置时,这个问题变得更加严重。
A3.清晰的IBC缓冲区设计
为了解决以上小节中列出的问题,我们提出利用专用IBC缓冲区,它不与解码内存混合。
对于128×128CTU,缓冲区被定义为具有8比特样点的128×128,当尺寸为w×h的CU(x,y)已经被解码时,其在环路滤波之前的重构被转换为8比特,并被写入从位置(x%128,y%128)开始的w×h块区域。这里,模运算符%总是返回正数,即对于x<0,例如-3%128=125。
假设用BV=(BVx,BVy)在IBC模式下对像素(x,y)进行编解码,它在IBC参考缓冲区中的预测样点位于((x+BVx)%128,(y+BVy)%128)处,并且像素值将在预测之前被转换为10比特。
当缓冲区被认为是(W,H)时,在对从(x,y)开始的CTU或CU进行解码之后,环路滤波之前的重构像素将被存储在从(x%W,y%H)开始的缓冲区中。因此,在对CTU进行解码之后,对应的IBC参考缓冲区将被相应地更新。当CTU尺寸不为128×128时,这样的设置可能会发生。例如,对于64×64CTU,在当前缓冲区尺寸的情况下,它可以被认为是256×64缓冲区。对于64×64CTU,图2示出了缓冲区状态。
图12是IBC参考缓冲区状态的图示,其中块表示64×64CTU。
在这样的设计中,因为IBC缓冲区不同于VPDU解码内存,所以所有的IBC参考缓冲区都可以被用作参考。
当IBC缓冲区的比特深度为8比特时,与需要3个附加的10比特64×64缓冲区的当前设计相比,片上内存增加为(8*4)/(10*3)-100%=6.7%。
如果我们进一步降低比特深度。可以进一步降低内存需求。例如,对于7比特缓冲区,片上内存节省为100%-(7*4)/(10*3)=6.7%。
在该设计的情况下,唯一的比特流一致性约束是参考块应当在当前片的当前CTU行中的重构区域内。
当在每个CTU行的开始处允许初始化到512时,可以移除所有比特流一致性约束。
A4.实验结果
在一些实施例中,所公开的方法可以使用VTM-4.0软件而实施。
对于10比特缓冲区实施方式和CTC,解码器与当前的VTM4.0编码器完全兼容,这意味着所提出的解码器可以正确地解码VTM-4.0CTC比特流。
对于7比特缓冲区实施方式,结果如表I所示
对于8比特缓冲区实施方式,结果如表II所示。
表I.7比特缓冲区的性能。锚是VTM-4.0,其中IBC对所有序列开启。
/>
表II.8比特缓冲区的性能。锚是VTM-4.0,其中IBC对所有序列开启。
/>
图17是示出可以在其中实施本文公开的各种技术的示例视频处理系统1700的框图。各种实施方式可以包括系统1700的一些或所有组件。系统1700可以包括用于接收视频内容的输入1702。视频内容可以以例如8或10比特多分量像素值的原始或未压缩格式而接收,或者可以是压缩或编码格式。输入1702可以表示网络接口、外围总线接口或存储接口。网络接口的示例包括诸如以太网、无源光网络(Passive Optical Network,PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统1700可以包括可以实施本文档中描述的各种编解码或编码方法的编解码组件1704。编解码组件1704可以将来自输入1702的视频的平均比特率减小到编解码组件1704的输出,以产生视频的编解码表示。编解码技术因此有时被称为视频压缩或视频转码技术。编解码组件1704的输出可以被存储,或者经由如由组件1706表示的通信连接而发送。在输入1702处接收的视频的存储或通信传送的比特流(或编解码)表示可以由组件1708用于生成像素值或传送到显示接口1710的可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编解码”操作或工具,但是将理解,编解码工具或操作在编码器处被使用,并且反转编解码结果的对应的解码工具或操作将由解码器执行。
外围总线接口或显示接口的示例可以包括通用串行总线(Universal SerialBus,USB)、或高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)、或显示端口(Displayport)等。存储接口的示例包括SATA(Serial Advanced TechnologyAttachment,串行高级技术附件)、PCI、IDE接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型电脑、智能电话、或能够执行数字数据处理和/或视频显示的其他设备。
图18是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例1进行讨论。在步骤1802处,该过程确定缓冲区的尺寸以存储用于帧内块复制模式下的预测的参考样点。在步骤1804处,该过程使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图19是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例4进行讨论。在步骤1902处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之前的重构样点。在步骤1904处,该过程使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图20是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例5进行讨论。在步骤2002处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之后的重构样点。在步骤2004处,该过程使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图21是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例6进行讨论。在步骤2102处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,缓冲区用于存储环路滤波步骤之前的重构样点和环路滤波步骤之后的重构样点两者。在步骤2104处,该过程使用存储在缓冲区中的重构样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图22是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例7进行讨论。在步骤2202处,该过程使用缓冲区来存储用于帧内块复制模式下的预测的参考样点,其中,缓冲区的第一比特深度不同于用于在比特流表示中表示可视媒体数据的第二比特深度。在步骤2204处,该过程使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图23是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例8进行讨论。在步骤2302处,该过程初始化缓冲区以存储用于帧内块复制模式下的预测的参考样点,其中,缓冲区用第一值进行初始化。在步骤2304处,该过程使用存储在缓冲区中的参考样点来执行可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图24是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例9进行讨论。在步骤2402处,该过程初始化缓冲区以存储用于帧内块复制模式下的预测的参考样点,其中,基于可视媒体数据中的一个或多个视频块的可用性,缓冲区用可视媒体数据中的一个或多个视频块的像素值进行初始化。在步骤2404处,该过程使用存储在缓冲区中的参考样点来执行不属于可视媒体数据的一个或多个视频块的当前视频块和当前视频块的比特流表示之间的转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图25是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例14c进行讨论。在步骤2502处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区。在步骤2504处,该过程使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤2506处,该过程对于空域上位于位置(x0,y0)处并具有被包括在运动信息中的块矢量(BVx,BVy)的像素,基于参考位置来计算缓冲区中的对应参考(P mod M,Q mod N),其中“mod”是模运算,并且M和N是表示缓冲区的x维度和y维度的整数,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。
图26是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例14a-14b进行讨论。在步骤2602处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区。在步骤2604处,该过程使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤2606处,该过程对于空域上位于位置(x0,y0)处并具有被包括在运动信息中的块矢量(BVx,BVy)的像素,基于参考位置(P,Q)来计算缓冲区中的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。
图27是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例10进行讨论。在步骤2702处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,缓冲区内的像素位置使用x数字和y数字进行寻址。在步骤2704处,该过程基于x数字和y数字,使用存储在缓冲区中的参考样点来执行该转换,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图28是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例15进行讨论。在步骤2802处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤2804处,该过程对于空域上位于当前视频块的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。在步骤2806处,该过程在确定参考位置(P,Q)位于缓冲区之外时,使用缓冲区中的样点重新计算参考位置。
图29是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例16进行讨论。在步骤2902处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤2904处,该过程对于在空域上位于当前视频块相对于包括当前视频块的编解码树单元的左上角位置的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。在步骤2906处,该过程在确定参考位置(P,Q)位于缓冲区之外时,约束参考位置的至少一部分以位于预定义的范围内。
图30是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例17进行讨论。在步骤3002处,该过程对于可视媒体数据的当前视频块和当前视频块的比特流表示之间的转换,确定存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤3004处,该过程对于在空域上位于当前视频块相对于包括当前视频块的编解码树单元的左上角位置的位置(x0,y0)处并具有块矢量(BVx,BVy)的像素,计算缓冲区中在参考位置(P,Q)处的对应参考,其中,参考位置(P,Q)是使用块矢量(BVx,BVy)和位置(x0,y0)而确定的。在步骤1706处,该过程在确定块矢量(BVx,BVy)位于缓冲区之外时,根据缓冲区之内的样点值的块矢量来填充块矢量(BVx,BVy)。
图31是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例30进行讨论。在步骤3102处,该过程在视频和视频的比特流表示之间的转换期间,重置存储用于视频边界处的帧内块复制模式下的预测的参考样点的缓冲区。在步骤3104处,该过程使用存储在缓冲区中的参考样点来执行该转换,其中,视频的视频块的转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图32是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例34进行讨论。在步骤3202处,该过程执行当前视频块和当前视频块的比特流表示之间的转换。在步骤3204处,该过程更新用于存储用于帧内块复制模式下的预测的参考样点的缓冲区,其中,缓冲区用于后续视频块和后续视频块的比特流表示之间的转换,其中,后续视频块和后续视频块的比特流表示之间的转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和后续视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
图33是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例39进行讨论。在步骤3302处,该过程对于当前视频块和当前视频块的比特流表示之间的转换,确定用于存储用于帧内块复制模式下的预测的重构样点的缓冲区,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。在步骤3304处,该过程响应于确定存储在缓冲区中的重构样点要在该转换期间用于预测样点值,将预处理操作应用于存储在缓冲区中的重构样点。
图34是可视数据处理的示例方法的流程图。该流程图的步骤结合本文档的第4章节中的示例实施例42进行讨论。在步骤3402处,该过程对于视频区域的当前虚拟管道数据单元(VPDU)的当前视频块和当前视频块的比特流表示之间的转换,选择性地确定是否使用来自视频区域的偶数行的K1个先前处理的VPDU和/或来自视频区域的奇数行的K2个先前处理的VPDU。在步骤3404处,该过程执行该转换,其中,该转换不包括使用当前VPDU的剩余部分,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
本文档的一些实施例现在以基于条款的格式呈现。
1.一种可视媒体处理的方法,包括:
对于视频区域的当前虚拟管道数据单元(VPDU)的当前视频块和当前视频块的比特流表示之间的转换,选择性地确定是否使用来自视频区域的偶数行的K1个先前处理的VPDU和/或来自视频区域的奇数行的K2个先前处理的VPDU;以及
执行该转换,其中,该转换不包括使用当前VPDU的剩余部分,其中,该转换在帧内块复制模式下被执行,其中该帧内块复制模式基于与和视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
2.根据条款1所述的方法,其中,K1=1并且K2=2。
3.根据条款1所述的方法,其中,K1=0并且K2=2。
4.根据条款1所述的方法,其中,K1=0并且K2=1。
5.根据条款1所述的方法,其中,K1=0并且K2=0。
6.根据条款1-5中任一项或多项所述的方法,其中,当前视频块基于视频区域的大小或当前VPDU的大小而选择性地处理。
7.根据条款1所述的方法,还包括:
以垂直扫描顺序扫描K1个先前处理的VPDU和/或K2个先前处理的VPDU,其中,该转换不包括利用z扫描顺序。
8.根据条款7所述的方法,其中,垂直扫描顺序被表示为0、2、1、3,其中0..3表示视频区域的VPDU的索引。
9.根据条款1-8中任一项或多项所述的方法,其中,该方法仅在启用屏幕内容编解码模式时适用。
10.根据条款1-8中任一项或多项所述的方法,其中,该方法仅在启用帧内块复制模式时适用。
11.根据条款1-10中任一项所述的方法,其中,该转换包括从当前视频块生成比特流表示。
12.根据条款1-10中任一项所述的方法,其中,该转换包括从比特流表示生成当前视频块的像素值。
13.一种视频编码器装置,包括被配置为实施根据条款1-10中任一项或多项所述的方法的处理器。
14.一种视频解码器装置,包括被配置为实施根据条款1-10中任一项或多项所述的方法的处理器。
15.一种其上存储有代码的计算机可读介质,该代码体现用于实施根据条款1-10中任一项或多项所述的方法的处理器可执行指令。
在本文档中,术语“视频处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,视频压缩算法可以在从视频的像素表示到对应的比特流表示的转换期间被应用,反之亦然。当前视频块的比特流表示可以例如对应于比特流内并置的或分散在不同地方的比特,如通过语法定义的。例如,宏块可以根据变换和编解码误差残差值而编码,并且也可以使用比特流中的头和其它字段中的比特进行编码。
从前面可以理解,为了说明的目的,本文已经描述了当前公开的技术的特定实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,当前公开的技术不受除了所附权利要求之外的限制。
本专利文档中描述的主题和功能操作的实施方式可以在各种系统、数字电子电路中被实施,或者在计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)中被实施,或者在它们中的一个或多个的组合中被实施。本说明书中描述的主题的实施方式可以被实施为一个或多个计算机程序产品,即编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,该计算机程序指令用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”包含用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或多个的组合的代码。
计算机程序(也已知为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)编写,并且其可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署以在一个计算机上或在位于一个站点上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(Field Programmable Gate Array,现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit,专用集成电路)。
适合于执行计算机程序的处理器包括例如通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦合以从该一个或多个大容量存储设备接收数据或向该一个或多个大容量存储设备传递数据、或者从其接收数据并向其传递数据。然而,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
本说明书以及附图旨在被认为仅是示例性的,其中示例性意味着示例。如本文所使用的,“或”的使用旨在包括“和/或”,除非上下文另外清楚地指示。
虽然本专利文档包含许多细节,但这些细节不应被解释为对任何发明或可能要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本专利文档中在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合实施。此外,尽管特征可以在上面描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为需要以所示的特定顺序或以先后顺序执行这样的操作或者执行所有示出的操作以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离。
仅描述了一些实施方式和示例,并且可以基于本专利文档中描述和示出的内容来进行其他实施方式、增强和变化。

Claims (15)

1.一种可视媒体处理的方法,包括:
对于视频区域的当前虚拟管道数据单元(VPDU)的当前视频块和所述当前视频块的比特流表示之间的转换,选择性地确定是否使用来自所述视频区域的偶数行的K1个先前处理的VPDU和/或来自所述视频区域的奇数行的K2个先前处理的VPDU;以及
执行所述转换,其中,所述转换不使用在所述当前VPDU之后处理的VPDU,其中,所述转换在帧内块复制模式下被执行,其中所述帧内块复制模式基于与和所述当前视频块位于相同视频区域中的重构块相关的运动信息且不参考参考图片。
2.根据权利要求1所述的方法,其中,K1=1并且K2=2。
3.根据权利要求1所述的方法,其中,K1=0并且K2=2。
4.根据权利要求1所述的方法,其中,K1=0并且K2=1。
5.根据权利要求1所述的方法,其中,K1=0并且K2=0。
6.根据权利要求1-5中任一项所述的方法,其中,所述当前视频块基于所述视频区域的大小或所述当前VPDU的大小而选择性地处理。
7.根据权利要求1所述的方法,还包括:
以垂直扫描顺序扫描所述K1个先前处理的VPDU和/或所述K2个先前处理的VPDU,其中,所述转换不包括利用z扫描顺序。
8.根据权利要求7所述的方法,其中,所述垂直扫描顺序被表示为0、2、1、3,其中0、2、1、3表示所述视频区域的VPDU的索引。
9.根据权利要求1-4、7-8中任一项所述的方法,其中,所述方法仅在启用屏幕内容编解码模式时适用。
10.根据权利要求1-4、7-8中任一项所述的方法,其中,所述方法仅在启用帧内块复制模式时适用。
11.根据权利要求1-4、7-8中任一项所述的方法,其中,所述转换包括从所述当前视频块生成所述比特流表示。
12.根据权利要求1-4、7-8中任一项所述的方法,其中,所述转换包括从所述比特流表示生成所述当前视频块的像素值。
13.一种视频编码器装置,包括被配置为实施根据权利要求1-10中任一项所述的方法的处理器。
14.一种视频解码器装置,包括被配置为实施根据权利要求1-10中任一项所述的方法的处理器。
15.一种其上存储有代码的计算机可读介质,所述代码体现用于实施根据权利要求1-10中任一项所述的方法的处理器可执行指令。
CN202080012071.7A 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区访问方法 Active CN113383541B (zh)

Applications Claiming Priority (31)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/074598 2019-02-02
CN2019074598 2019-02-02
CNPCT/CN2019/076695 2019-03-01
CN2019076695 2019-03-01
CN2019076848 2019-03-04
CNPCT/CN2019/076848 2019-03-04
CNPCT/CN2019/077725 2019-03-11
CN2019077725 2019-03-11
CN2019079151 2019-03-21
CNPCT/CN2019/079151 2019-03-21
CN2019085862 2019-05-07
CNPCT/CN2019/085862 2019-05-07
CN2019088129 2019-05-23
CNPCT/CN2019/088129 2019-05-23
CN2019091691 2019-06-18
CNPCT/CN2019/091691 2019-06-18
CN2019093552 2019-06-28
CNPCT/CN2019/093552 2019-06-28
CNPCT/CN2019/094957 2019-07-06
CN2019094957 2019-07-06
CN2019095297 2019-07-09
CNPCT/CN2019/095297 2019-07-09
CNPCT/CN2019/095504 2019-07-10
CN2019095504 2019-07-10
CN2019095656 2019-07-11
CNPCT/CN2019/095656 2019-07-11
CN2019095913 2019-07-13
CNPCT/CN2019/095913 2019-07-13
CNPCT/CN2019/096048 2019-07-15
CN2019096048 2019-07-15
PCT/CN2020/074164 WO2020156549A1 (en) 2019-02-02 2020-02-02 Buffer access methods for intra block copy in video coding

Publications (2)

Publication Number Publication Date
CN113383541A CN113383541A (zh) 2021-09-10
CN113383541B true CN113383541B (zh) 2024-02-20

Family

ID=71840275

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202080012060.9A Pending CN113383543A (zh) 2019-02-02 2020-02-02 使用用于视频编解码中的帧内块复制的额外缓冲区样点的预测
CN202080012071.7A Active CN113383541B (zh) 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区访问方法
CN202080012003.0A Pending CN113366848A (zh) 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区重置
CN202080012070.2A Pending CN113383549A (zh) 2019-02-02 2020-02-02 使用用于视频编解码中的帧内块复制的帧内缓冲区样点的预测
CN202080012002.6A Pending CN113366846A (zh) 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区更新

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080012060.9A Pending CN113383543A (zh) 2019-02-02 2020-02-02 使用用于视频编解码中的帧内块复制的额外缓冲区样点的预测

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN202080012003.0A Pending CN113366848A (zh) 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区重置
CN202080012070.2A Pending CN113383549A (zh) 2019-02-02 2020-02-02 使用用于视频编解码中的帧内块复制的帧内缓冲区样点的预测
CN202080012002.6A Pending CN113366846A (zh) 2019-02-02 2020-02-02 用于视频编解码中的帧内块复制的缓冲区更新

Country Status (5)

Country Link
US (7) US11438613B2 (zh)
CN (5) CN113383543A (zh)
AU (1) AU2020214083B2 (zh)
CA (1) CA3127848A1 (zh)
WO (8) WO2020156545A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9900615B2 (en) * 2011-12-28 2018-02-20 Microsoft Technology Licensing, Llc Representative motion information for temporal motion prediction in video encoding and decoding
WO2020017910A1 (ko) * 2018-07-18 2020-01-23 한국전자통신연구원 지역 조명 보상을 통한 효과적인 비디오 부호화/복호화 방법 및 장치
CN112585976A (zh) * 2018-08-06 2021-03-30 韩国电子通信研究院 用于对图像进行编码/解码的方法和设备以及用于存储比特流的记录介质
WO2020156545A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
KR20210123301A (ko) 2019-02-02 2021-10-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼내 데이터 저장
US11924431B2 (en) * 2019-03-01 2024-03-05 Lg Electronics Inc. LMCS-based image coding method and device therefor
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
CN114391254A (zh) * 2019-06-28 2022-04-22 弗劳恩霍夫应用研究促进协会 视频解码器、视频编码器、用于编码和解码视频信号的方法以及调整一个或多个去噪操作的计算机程序
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
JP7359934B2 (ja) 2019-07-10 2023-10-11 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのためのサンプル識別
CN117579816A (zh) * 2019-07-11 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
WO2021025165A1 (en) 2019-08-08 2021-02-11 Panasonic Intellectual Property Corporation Of America System and method for video coding
WO2021047544A1 (en) 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Intra block copy coding and decoding
WO2021049593A1 (en) * 2019-09-11 2021-03-18 Panasonic Intellectual Property Corporation Of America System and method for video coding
KR20220061108A (ko) 2019-09-19 2022-05-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 레퍼런스 샘플 위치 유도
US11375219B2 (en) * 2019-09-24 2022-06-28 Tencent America LLC Coding method and system with improved dynamic internal bit depth
WO2021252530A1 (en) 2020-06-08 2021-12-16 Bytedance Inc. Constraints on decoding picture buffer
US11601642B2 (en) * 2020-08-18 2023-03-07 Tencent America LLC String matching with a single value from reference locations
US20220086385A1 (en) 2020-09-17 2022-03-17 Lemon Inc. Profile, tier, level and general constraints indication in coded video
US11683529B2 (en) 2020-09-17 2023-06-20 Lemon Inc. Operational point sample group in coded video
WO2023034748A1 (en) * 2021-08-31 2023-03-09 Bytedance Inc. Method, apparatus, and medium for video processing
WO2023056360A1 (en) * 2021-09-30 2023-04-06 Bytedance Inc. Method, apparatus and medium for video processing
WO2023091290A1 (en) * 2021-11-17 2023-05-25 Tencent America LLC Adaptive application of generalized sample offset
US11849129B2 (en) * 2022-03-18 2023-12-19 Qualcomm Incorporated Intra-block copy decoding using dynamic re-mapping of on-chip memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2533905A (en) * 2014-10-06 2016-07-13 Canon Kk Method and apparatus for video coding and decoding
CN107646195A (zh) * 2015-06-08 2018-01-30 Vid拓展公司 用于屏幕内容编码的帧内块复制模式
CN107852490A (zh) * 2015-07-27 2018-03-27 联发科技股份有限公司 使用帧内块复制模式的视频编解码方法及系统
WO2019022843A1 (en) * 2017-07-28 2019-01-31 Microsoft Technology Licensing, Llc EFFICIENT INTRA CODING FOR SCREEN DATA

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA03006715A (es) * 2001-11-29 2003-10-24 Matsushita Electric Ind Co Ltd Metodo para la remocion de la distorsion de la codificacion, metodo codificador de video, metodo descodificador de video y aparato y programa para los mismos.
CN100499788C (zh) * 2003-01-09 2009-06-10 加利福尼亚大学董事会 视频编码设备
JP4360093B2 (ja) * 2003-02-05 2009-11-11 ソニー株式会社 画像処理装置および符号化装置とそれらの方法
US7403660B2 (en) * 2003-04-30 2008-07-22 Nokia Corporation Encoding picture arrangement parameter in picture bitstream
AU2003903448A0 (en) * 2003-06-26 2003-07-17 Canon Kabushiki Kaisha A method for tracking depths in a scanline based raster image processor
CN1589028B (zh) * 2004-07-29 2010-05-05 展讯通信(上海)有限公司 基于像素流水的帧内预测装置及预测方法
US20060233237A1 (en) * 2005-04-15 2006-10-19 Apple Computer, Inc. Single pass constrained constant bit-rate encoding
US7801223B2 (en) 2006-07-27 2010-09-21 Lsi Corporation Method for video decoder memory reduction
JP4592656B2 (ja) 2006-08-17 2010-12-01 富士通セミコンダクター株式会社 動き予測処理装置、画像符号化装置および画像復号化装置
AU2007311489B2 (en) 2006-10-20 2012-05-24 Nokia Technologies Oy Virtual decoded reference picture marking and reference picture list
CN100551073C (zh) 2006-12-05 2009-10-14 华为技术有限公司 编解码方法及装置、分像素插值处理方法及装置
JP4254866B2 (ja) * 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP2008227702A (ja) 2007-03-09 2008-09-25 Oki Electric Ind Co Ltd 動きベクトル探索装置、動きベクトル探索方法及び動きベクトル探索プログラム
US7916728B1 (en) * 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
JP2009272724A (ja) * 2008-04-30 2009-11-19 Panasonic Corp ビデオ符号化・復号化装置
WO2010007590A2 (en) * 2008-07-17 2010-01-21 Amimon Ltd. Methods circuits and systems for transmission and reconstruction of a video block
US8259794B2 (en) * 2008-08-27 2012-09-04 Alexander Bronstein Method and system for encoding order and frame type selection optimization
TWI383688B (zh) 2009-03-11 2013-01-21 Quanta Comp Inc 視訊壓縮電路與其方法
US20110249754A1 (en) 2010-04-12 2011-10-13 Qualcomm Incorporated Variable length coding of coded block pattern (cbp) in video compression
WO2011127964A2 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US8917774B2 (en) * 2010-06-30 2014-12-23 Warner Bros. Entertainment Inc. Method and apparatus for generating encoded content using dynamically optimized conversion
US9161056B2 (en) 2010-11-24 2015-10-13 Texas Instruments Incorporated Method for low memory footprint compressed video decoding
US20120236931A1 (en) 2010-12-23 2012-09-20 Qualcomm Incorporated Transform coefficient scan
CN102595118B (zh) 2011-01-14 2015-04-08 华为技术有限公司 一种编解码中的预测方法和预测器
KR101539312B1 (ko) 2011-05-27 2015-07-24 미디어텍 인크. 비디오 프로세싱에 대한 라인 버퍼 감소를 위한 방법 및 장치
NZ619406A (en) 2011-06-30 2016-01-29 Microsoft Technology Licensing Llc Reducing latency in video encoding and decoding
US9426463B2 (en) 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US8947449B1 (en) * 2012-02-21 2015-02-03 Google Inc. Color space conversion between semi-planar YUV and planar YUV formats
US9465716B2 (en) * 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9906786B2 (en) * 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
US9805442B2 (en) 2012-10-03 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Fine-grained bit-rate control
US9491460B2 (en) 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
US10904551B2 (en) 2013-04-05 2021-01-26 Texas Instruments Incorporated Video coding using intra block copy
US20140348240A1 (en) * 2013-05-22 2014-11-27 Qualcomm Incorporated Video coding using sample prediction among color components
US10015515B2 (en) * 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US9560358B2 (en) 2013-07-22 2017-01-31 Qualcomm Incorporated Device and method for scalable coding of video information
US10313682B2 (en) 2013-08-26 2019-06-04 Qualcomm Incorporated Determining regions when performing intra block copying
US9503715B2 (en) * 2013-08-30 2016-11-22 Qualcomm Incorporated Constrained intra prediction in video coding
AU2013228045A1 (en) 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
WO2015054813A1 (en) 2013-10-14 2015-04-23 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
US10582213B2 (en) 2013-10-14 2020-03-03 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
EP3078195A4 (en) 2013-12-02 2017-08-09 Nokia Technologies OY Video encoding and decoding
EP4096221A1 (en) 2014-01-03 2022-11-30 Microsoft Technology Licensing, LLC Block vector prediction in video and image coding/decoding
US9883197B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Intra prediction of chroma blocks using the same vector
US11284103B2 (en) * 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
CN106416243B (zh) * 2014-02-21 2019-05-03 联发科技(新加坡)私人有限公司 利用基于帧内图像区块复制预测的视频编码方法
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
BR112016018814A8 (pt) 2014-03-04 2020-06-23 Microsoft Technology Licensing Llc dispositivo de computação, método em dispositivo de computação com decodificador de vídeo ou decodificador de imagem e meio legível por computador
AU2014201583A1 (en) * 2014-03-14 2015-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data using a block dictionary
US20150264383A1 (en) * 2014-03-14 2015-09-17 Mitsubishi Electric Research Laboratories, Inc. Block Copy Modes for Image and Video Coding
US9860559B2 (en) * 2014-03-17 2018-01-02 Mediatek Singapore Pte. Ltd. Method of video coding using symmetric intra block copy
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US9756354B2 (en) 2014-03-17 2017-09-05 Qualcomm Incorporated Block vector predictor for intra block copying
US9712837B2 (en) 2014-03-17 2017-07-18 Qualcomm Incorporated Level definitions for multi-layer video codecs
US10432928B2 (en) * 2014-03-21 2019-10-01 Qualcomm Incorporated Using a current picture as a reference for video coding
US10477232B2 (en) * 2014-03-21 2019-11-12 Qualcomm Incorporated Search region determination for intra block copy in video coding
US9877034B2 (en) 2014-04-14 2018-01-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Pipelined video decoder system
WO2015169200A1 (en) 2014-05-06 2015-11-12 Mediatek Singapore Pte. Ltd. Method of block vector prediction for intra block copy mode coding
AU2014202682A1 (en) 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
US10091512B2 (en) * 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
US10327002B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
CN106464921B (zh) * 2014-06-19 2019-10-15 Vid拓展公司 用于块内复制搜索增强的方法和系统
KR102402622B1 (ko) 2014-06-19 2022-05-27 브이아이디 스케일, 인크. 블록 벡터 도출을 이용하여 인트라 블록 복사 코딩을 위한 방법 및 시스템
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9948949B2 (en) * 2014-06-20 2018-04-17 Qualcomm Incorporated Intra block copy block vector signaling for video coding
US10869031B2 (en) 2014-07-07 2020-12-15 Hfi Innovation Inc. Method of intra block copy search and compensation range
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
CN107079161B (zh) 2014-09-01 2020-11-20 寰发股份有限公司 用于屏幕内容以及视频编码的帧内图片块复制的方法
EP3180916A4 (en) * 2014-09-03 2018-02-28 MediaTek Inc. Method for color index coding using a generalized copy previous mode
WO2016055001A1 (en) * 2014-10-08 2016-04-14 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
US10856009B2 (en) 2014-09-04 2020-12-01 Mediatek Inc. Method of block vector clipping and coding for screen content coding and video coding
CN107005708A (zh) 2014-09-26 2017-08-01 Vid拓展公司 使用时间块向量预测的块内复制译码
CN105491376B (zh) * 2014-10-06 2020-01-07 同济大学 图像编码、解码方法及装置
GB2531001B (en) 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US9918105B2 (en) 2014-10-07 2018-03-13 Qualcomm Incorporated Intra BC and inter unification
US9832467B2 (en) 2014-10-07 2017-11-28 Qualcomm Incorporated Deblock filtering for intra block copying
US10212445B2 (en) * 2014-10-09 2019-02-19 Qualcomm Incorporated Intra block copy prediction restrictions for parallel processing
US9838662B2 (en) * 2014-10-10 2017-12-05 Qualcomm Incorporated Harmonization of cross-component prediction and adaptive color transform in video coding
US10283091B2 (en) 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US10075712B2 (en) * 2014-11-20 2018-09-11 Hfi Innovation Inc. Method of motion vector and block vector resolution control
US9591325B2 (en) 2015-01-27 2017-03-07 Microsoft Technology Licensing, Llc Special case handling for merged chroma blocks in intra block copy prediction mode
JP6527949B2 (ja) 2015-01-29 2019-06-12 ヴィド スケール インコーポレイテッド イントラブロックコピー探索
US10165292B2 (en) * 2015-02-02 2018-12-25 Mediatek Inc. Method and apparatus for intra block copy mode in video coding system with pipeline architecture
US20160227222A1 (en) 2015-02-02 2016-08-04 Mediatek Inc. Multi-Standard Video Decoder with Novel Intra Prediction Decoding
US9955185B2 (en) 2015-02-12 2018-04-24 Mediatek Inc. Method and apparatus of constrained intra block copy for coding video
EP3262836B1 (en) * 2015-03-02 2020-07-29 HFI Innovation Inc. Method and apparatus for intrabc mode with fractional-pel block vector resolution in video coding
KR102051197B1 (ko) 2015-03-20 2019-12-02 미디어텍 싱가폴 피티이. 엘티디. 비디오 코딩에서의 인터 예측으로의 팔레트 코딩 방법
US20180255304A1 (en) * 2015-03-29 2018-09-06 Lg Electronics Inc. Method and device for encoding/decoding video signal
US10200713B2 (en) 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
CN112087639B (zh) 2015-05-28 2022-05-31 寰发股份有限公司 一种管理解码图像缓存器的方法及装置
CA2985872C (en) 2015-05-29 2020-04-14 Hfi Innovation Inc. Method of decoded picture buffer management for intra block copy mode
KR20180010260A (ko) 2015-06-03 2018-01-30 미디어텍 인크. 화상 및 비디오 데이터의 팔레트 코딩 방법
US10356438B2 (en) 2015-06-03 2019-07-16 Mediatek Inc. Method and apparatus of error handling for video coding using intra block copy mode
US20160360234A1 (en) 2015-06-03 2016-12-08 Apple Inc. Techniques For Resource Conservation During Performance Of Intra Block Copy Prediction Searches
US11140400B2 (en) * 2015-06-05 2021-10-05 Sony Corporation Image processing apparatus and image processing method for intra BC prediction
US10178403B2 (en) 2015-06-23 2019-01-08 Qualcomm Incorporated Reference picture list construction in intra block copy mode
EP3342165B1 (en) * 2015-09-08 2021-11-10 MediaTek Inc. Method and system of decoded picture buffer for intra block copy mode
GB2543736B (en) * 2015-09-10 2019-03-27 Advanced Risc Mach Ltd An interface apparatus and method of operating an interface apparatus
US10491922B2 (en) * 2015-09-29 2019-11-26 Qualcomm Incorporated Non-separable secondary transform for video coding
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
US20170099490A1 (en) * 2015-10-02 2017-04-06 Qualcomm Incorporated Constrained intra-prediction for block copy mode
CN108496367B (zh) 2015-11-11 2022-07-12 三星电子株式会社 用于对视频进行解码的方法和设备以及用于对视频进行编码的方法和设备
US20170188033A1 (en) 2015-12-23 2017-06-29 Mediatek Inc. Method and Apparatus of Bandwidth Estimation and Reduction for Video Coding
US10575007B2 (en) * 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
CA3025490A1 (en) * 2016-05-28 2017-12-07 Mediatek Inc. Method and apparatus of current picture referencing for video coding using affine motion compensation
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
CN117135357A (zh) * 2016-07-08 2023-11-28 Vid拓展公司 使用几何图形投影的360度视频编码
CN107846597B (zh) * 2016-09-20 2019-12-10 上海澜至半导体有限公司 用于视频解码器的数据缓存方法和装置
JPWO2018061837A1 (ja) 2016-09-30 2019-07-11 ソニー株式会社 画像処理装置および方法
US10681370B2 (en) 2016-12-29 2020-06-09 Qualcomm Incorporated Motion vector generation for affine motion model for video coding
US10694181B2 (en) * 2017-01-27 2020-06-23 Qualcomm Incorporated Bilateral filters in video coding with reduced complexity
JP6324590B2 (ja) 2017-05-25 2018-05-16 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US11134272B2 (en) 2017-06-29 2021-09-28 Qualcomm Incorporated Memory reduction for non-separable transforms
CN116248864A (zh) 2017-07-03 2023-06-09 汉阳大学校产学协力团 利用包含追加区域的分割单位的影像解码方法以及装置
US20200236361A1 (en) 2017-07-18 2020-07-23 Lg Electronics Inc. Intra prediction mode based image processing method, and apparatus therefor
US10647322B2 (en) * 2017-07-25 2020-05-12 Hyundai Mobis Co., Ltd. Backward driving assist apparatus for vehicle and control method thereof
US11172201B2 (en) 2017-12-18 2021-11-09 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
WO2019131778A1 (ja) * 2017-12-26 2019-07-04 シャープ株式会社 画像復号装置及び画像符号化装置
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US11012715B2 (en) 2018-02-08 2021-05-18 Qualcomm Incorporated Intra block copy for video coding
CN116866563A (zh) 2018-03-21 2023-10-10 Lx 半导体科技有限公司 图像编码/解码方法、存储介质以及图像数据的传输方法
US10873748B2 (en) 2018-05-12 2020-12-22 Qualcomm Incorporated Storage of high precision motion vectors in video coding
WO2019234598A1 (en) 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and stmvp
US10440378B1 (en) 2018-07-17 2019-10-08 Tencent America LLC Method and apparatus for history-based motion vector prediction with parallel processing
CN116320504B (zh) * 2018-07-18 2024-03-29 北京达佳互联信息技术有限公司 使用基于历史的运动向量预测进行视频编码的方法和装置
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10743029B2 (en) 2018-07-30 2020-08-11 Tencent America LLC Constraints on coding unit partition
CN116781931A (zh) 2018-08-13 2023-09-19 Lg电子株式会社 图像编码/解码设备和图像数据发送设备
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
CN117857785A (zh) 2018-10-04 2024-04-09 Lg电子株式会社 图像解码和编码方法、数据的发送方法及存储介质
BR112021008659A2 (pt) * 2018-11-07 2021-08-31 Huawei Technologies Co., Ltd. Codificador de vídeo, decodificador de vídeo e métodos correspondentes
CN113016187B (zh) * 2018-11-07 2023-06-06 寰发股份有限公司 利用当前画面参照编码方式的视频区块编码或解码方法和装置
CN113170193A (zh) 2018-11-28 2021-07-23 北京字节跳动网络技术有限公司 帧内块复制模式中块矢量列表的独立构造方法
US10999594B2 (en) 2018-12-20 2021-05-04 Qualcomm Incorporated Virtual search area for current picture referencing (CPR) and intra block copy (IBC)
CN111355951B (zh) 2018-12-24 2023-11-10 华为技术有限公司 视频解码方法、装置及解码设备
WO2020156545A1 (en) 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
KR20210123301A (ko) 2019-02-02 2021-10-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼내 데이터 저장
JP7405861B2 (ja) 2019-03-01 2023-12-26 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための方向に基づく予測
JP7284284B2 (ja) 2019-03-04 2023-05-30 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーの実装形態の態様
MX2021001663A (es) 2019-05-16 2021-05-12 Huawei Tech Co Ltd Un codificador, un decodificador y metodos correspondientes usando bufer dedicado de ibc y actualizacion de valor predeterminado para componente luma y croma.
US20230007273A1 (en) * 2019-06-13 2023-01-05 Huawei Technologies Co., Ltd. Encoder, a decoder and corresponding methods using intra block copy (ibc) dedicated buffer and default value refreshing for luma and chroma component
US11070816B2 (en) 2019-06-18 2021-07-20 Tencent America LLC Conversion of decoded block vector for intra picture block compensation
CN114026850A (zh) 2019-06-28 2022-02-08 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的块矢量的有效性检查
CN117579816A (zh) * 2019-07-11 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2533905A (en) * 2014-10-06 2016-07-13 Canon Kk Method and apparatus for video coding and decoding
CN107646195A (zh) * 2015-06-08 2018-01-30 Vid拓展公司 用于屏幕内容编码的帧内块复制模式
CN107852490A (zh) * 2015-07-27 2018-03-27 联发科技股份有限公司 使用帧内块复制模式的视频编解码方法及系统
WO2019022843A1 (en) * 2017-07-28 2019-01-31 Microsoft Technology Licensing, Llc EFFICIENT INTRA CODING FOR SCREEN DATA
CN110945871A (zh) * 2017-07-28 2020-03-31 微软技术许可有限责任公司 针对屏幕数据的有效帧内编码

Also Published As

Publication number Publication date
WO2020156541A1 (en) 2020-08-06
WO2020156548A1 (en) 2020-08-06
US20210274201A1 (en) 2021-09-02
CN113383541A (zh) 2021-09-10
WO2020156549A1 (en) 2020-08-06
WO2020156545A1 (en) 2020-08-06
WO2020156540A1 (en) 2020-08-06
US20220174310A1 (en) 2022-06-02
CN113366848A (zh) 2021-09-07
CN113383543A (zh) 2021-09-10
WO2020156547A1 (en) 2020-08-06
US20210360270A1 (en) 2021-11-18
US11438613B2 (en) 2022-09-06
CA3127848A1 (en) 2020-08-06
US20210297674A1 (en) 2021-09-23
WO2020156544A1 (en) 2020-08-06
US20210385437A1 (en) 2021-12-09
AU2020214083A1 (en) 2021-08-12
CN113366846A (zh) 2021-09-07
WO2020156546A1 (en) 2020-08-06
US11375217B2 (en) 2022-06-28
CN113383549A (zh) 2021-09-10
US20210352279A1 (en) 2021-11-11
AU2020214083B2 (en) 2023-06-01
US20220210444A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
CN113383541B (zh) 用于视频编解码中的帧内块复制的缓冲区访问方法
CN113396592B (zh) 用于视频编解码中的帧内块复制的缓冲区管理
CN114097221B (zh) 用于视频编解码中的帧内块复制的比特流一致性约束
CN113508597B (zh) 用于视频编解码中的帧内块复制的基于方向的预测
CN113508581B (zh) 视频编解码中的帧内块复制中的实施方式方面
CN114175645B (zh) 用于视频编解码中的帧内块复制的虚拟预测缓冲
CN114175633B (zh) 用于视频编解码中的帧内块复制的样点标识
CN114208186B (zh) 帧内块复制虚拟缓冲区的尺寸限制
CN114026850A (zh) 用于视频编解码中的帧内块复制的块矢量的有效性检查
US20230247192A1 (en) Setting intra-block copy virtual buffer based on virtual pipeline data unit
US11575889B2 (en) Range constrains for block vector in intra-block copy mode
CN113545068B (zh) 用于视频编解码中的帧内块复制的基于顺序的更新
JP7384910B2 (ja) 映像符号化におけるイントラブロックコピーのためのバッファ管理

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant