CN113348669A - 交织预测和其他编解码工具之间的交互 - Google Patents
交织预测和其他编解码工具之间的交互 Download PDFInfo
- Publication number
- CN113348669A CN113348669A CN202080008739.0A CN202080008739A CN113348669A CN 113348669 A CN113348669 A CN 113348669A CN 202080008739 A CN202080008739 A CN 202080008739A CN 113348669 A CN113348669 A CN 113348669A
- Authority
- CN
- China
- Prior art keywords
- block
- sub
- prediction
- current video
- video block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000003993 interaction Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 430
- 238000012545 processing Methods 0.000 claims abstract description 69
- 238000006243 chemical reaction Methods 0.000 claims abstract description 32
- 230000007704 transition Effects 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 155
- 238000001914 filtration Methods 0.000 claims description 84
- 238000005286 illumination Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 230000003287 optical effect Effects 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 13
- 230000003044 adaptive effect Effects 0.000 claims description 11
- 239000013598 vector Substances 0.000 description 112
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 58
- 230000009977 dual effect Effects 0.000 description 56
- 241000023320 Luma <angiosperm> Species 0.000 description 55
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 53
- 238000003491 array Methods 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 230000002123 temporal effect Effects 0.000 description 18
- 230000002146 bilateral effect Effects 0.000 description 16
- 238000009795 derivation Methods 0.000 description 16
- 238000005192 partition Methods 0.000 description 16
- 238000012886 linear function Methods 0.000 description 8
- 238000005070 sampling Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 101100162209 Aspergillus parasiticus (strain ATCC 56775 / NRRL 5862 / SRRC 143 / SU-1) aflL gene Proteins 0.000 description 2
- 241000723655 Cowpea mosaic virus Species 0.000 description 2
- 101100478642 Emericella nidulans (strain FGSC A4 / ATCC 38163 / CBS 112.46 / NRRL 194 / M139) stcS gene Proteins 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101150041882 verB gene Proteins 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 240000004760 Pimpinella anisum Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000003828 downregulation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/521—Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种视频处理的方法,包括:对于视频的当前视频块与视频的编解码表示之间的转换,确定当前视频块的至少一个子块的细化运动信息;以及使用细化运动信息进行转换,其中基于交织预测工具生成细化运动信息,在交织预测工具中,使用多个样式生成当前视频块的分割的运动信息,并且其中当前视频块的细化运动信息基于是否满足的条件而用于后续处理或选择性储存。
Description
相关申请的交叉引用
根据巴黎公约的适用专利法和/或细则,提出本申请是为了及时要求于2019年1月13日提交的国际专利申请PCT/CN2019/071507以及2019年1月14日提交的国际专利申请PCT/CN2019/071576的优先权和权益。出于美国法律的所有目的,上述申请的全部公开内容通过引用并入本文作为本申请公开的一部分。
技术领域
本专利文件涉及视频编解码技术、装置和系统。
背景技术
运动补偿(MC)是视频处理中的技术,其用于在给定之前帧和/或未来帧的情况下,通过考虑相机的运动和/或视频中的对象而预测视频中的帧。运动补偿可用于视频数据的编码以用于视频压缩。
发明内容
本文件公开了涉及视频运动补偿中的基于子块的运动预测的方法、系统和装置。
在一个代表性方面中,公开了视频处理的方法。该方法包含:为属于视频的当前视频块的第一细分样式的子块的第一集合导出一个或多个运动矢量;以及基于一个或多个运动矢量,进行当前视频块和视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:细分第一颜色分量的视频块以获得第一颜色分量的第一集合子块;细分第二颜色分量的对应视频块以获得第二颜色分量的子块的第二集合;基于子块的第二集合的一个或多个运动矢量,导出子块的第一集合的一个或多个运动矢量;以及基于子块第一集合和子块的第二集合的一个或多个运动矢量,进行视频块和视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:对于视频的当前视频块和视频的比特流表示之间的转换,根据依据当前视频块的高度(H)或宽度(W)的多个细分样式将当前视频块细分为分割;以及使用多个分割的交织预测进行转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:确定对视频的当前视频块应用预测,该预测包含根据细分样式将当前视频块细分为子块;确定应用位移位以生成当前视频块的子块上的预测块;以及进行当前视频块和视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:基于视频的当前视频块的特性,确定是否将交织的预测工具用于当前块和视频的编解码表示之间的转换;以及根据所述确定进行转换,其中,一经确定当前视频块的特性不满足条件,通过禁用仿射预测工具和/或交织预测工具的使用来进行转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:基于视频的当前视频块的特性,确定是否将交织的预测工具用于当前块和视频的编解码表示之间的转换;以及根据所述确定进行转换,其中,一经确定当前视频块的特征满足条件,通过仿射预测工具和/或交织预测工具来进行转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:确定交织预测要被应用于视频的当前视频块;以及基于确定要应用交织预测,对于当前视频块禁用双向预测;以及进行当前视频块和视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:对于视频的当前视频块和视频的编解码表示之间的转换,确定当前视频块的至少一个子块的细化运动信息;以及使用细化运动信息进行转换,其中,基于交织预测工具生成细化运动信息,在所述交织预测工具中,使用多个样式生成当前视频块的分割的运动信息,并且其中当前视频块的细化运动信息基于是否满足条件而用于后续处理或选择性存储。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:确定是否将交织的预测应用于视频的当前视频块;以及基于确定是否将交织预测应用于当前视频块,而确定对当前视频块使用滤波过程;以及基于对滤波过程的使用的确定,而进行当前视频块与视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:确定是否将交织的预测应用于视频的当前视频块;以及基于对交织预测的使用的确定来确定是否对当前视频块使用局部照明补偿或加权预测;以及基于对局部照明补偿或加权预测的使用的确定,进行当前视频块与视频的编解码表示之间的转换。
在另一个代表性方面中,公开了视频处理的方法。该方法包含:确定加权预测应用于视频的当前视频块或当前视频块的子块;以及通过禁用双向光流(BDOF)技术而进行当前视频块和视频的编解码表示之间的转换。
在另一代表性方面中,公开了一种包括处理器和其上具有指令的非瞬态存储器的设备。由处理器执行指令时,使处理器选择来自视频帧的像素集合以形成块,根据第一样式将块细分为子块的第一集合,基于子块的第一集合生成第一中间预测块,根据第二样式将块细分为子块的第二集合,其中第二集合中的至少一个子块具有与第一集合中的子块不同的大小,基于子块的第二集合生成第二中间预测块,以及基于第一中间预测块和第二中间预测块确定预测块。
在又一代表性方面中,一种视频处理的方法包含,导出当前视频块的子块的第一集合的一个或多个运动矢量,其中子块的第一集合中的每一个具有第一细分样式,并且基于一个或多个运动矢量来重构当前视频块。
在又一代表性方面中,本文中所描述的各种技术可以是实施为非瞬态计算机可读介质上储存的计算机程序产品。计算机程序产品包含用于进行本文中所描述的方法的程序代码。
在又一代表性方面中,视频解码器设备可以实现如本文中所描述的方法。
以下所附附件、附图以及说明书中提出了一个或多个实现方式的细节。其他特征从说明书和附图以及权利要求将变得清楚。
附图说明
图1是示出基于子块的预测的示例的示意图。
图2示出了由两个控制点运动矢量描述的块的仿射运动场的示例。
图3示出了块的每个子块的仿射运动矢量场的示例。
图4示出了AF_INTER模式中的块400的运动矢量预测的示例。
图5A示出了当前编解码单元(CU)的候选块的选择顺序的示例。
图5B示出了AF_MERGE模式中的当前CU的候选块的另一示例。
图6示出了CU的可选时域运动矢量预测(ATMVP)运动预测过程的示例。
图7示出了具有四个子块和相邻块的一个CU的示例。
图8示出了双向光流(BIO)方法中的示例性光流轨迹。
图9A示出了块之外的访问位置的示例。
图9B示出了可以用于避免额外存储器访问和计算的填充区域(padding area)。
图10示出了帧速率上转换(FRUC)方法中使用的双边匹配的示例。
图11示出了FRUC方法中使用的模板匹配的示例。
图12示出了FRUC方法中的单边运动估计(ME)的示例。
图13示出了根据本公开技术的具有两种细分样式的交织预测的示例。
图14A示出了根据本公开技术的将块细分为4×4子块的示例性细分样式。
图14B示出了根据本公开技术的将块细分为8×8子块的示例性细分样式。
图14C示出了根据本公开技术的将块细分为4×8子块的示例性细分样式。
图14D示出了根据本公开技术的将块细分为8×4子块的示例性细分样式。
图14E示出了根据本公开技术的将块细分为非均匀子块的示例性细分样式。
图14F示出了根据本公开技术的将块细分为非均匀子块的另一示例性细分样式。
图14G示出了根据本公开技术的将块细分为非均匀子块的又一示例性细分样式。
图15A至15D示出了部分交织预测的示例性实施例。
图16A至16C示出了从另一细分样式导出一个细分样式的MV的示例性实施例。
图17A至17C示出了基于当前视频块的尺寸选择细分样式的示例性实施例。
图18A和图18B示出了从子块在另一细分样式内的另一分量中的MV导出子块在细分样式内的一个分量中的MV的示例性实施例。
图19是基于本公开技术的一些实现方式的视频处理的方法的示例流程图。
图20是基于本公开技术的一些其他实现方式的视频处理的方法的示例流程图。
图21A至图21D是基于本公开技术的一些其他实现的视频处理的方法的示例流程图。
图22A至22D是基于本公开技术的一些其他实现的视频处理的方法的示例流程图。
图23和图24是用于实现本公开技术中所描述的视频处理方法的硬件平台的示例的框图。
具体实施方式
全局运动补偿是运动补偿技术的多种变体之一,并且可以用于预测相机的运动。然而,在帧内运动对象未由全局运动补偿的各种实现方式充分地表示。将帧细分为像素的块以用于进行运动预测的局部运动估计(诸如块运动补偿)可以用于考虑帧内运动的对象。
基于块运动补偿开发的基于子块的预测首先由高效视频编解码(HEVC)Annex I(3D-HEVC)引入到视频编解码标准中。图1是示出基于子块的预测的示例的示意图。在基于子块的预测的情况下,块100(诸如编解码单元(CU)或预测单元(PU))被细分为若干不重叠的子块101。不同的子块可以分配不同的运动信息,诸如参考索引或运动矢量(MV)。然后对于每个子块单独地进行运动补偿。
为了探索HEVC之外的未来视频编解码技术,由视频编解码专家组(VCEG)和运动图片专家组(MPEG)于2015年联合成立了联合视频探索组(JVET)。许多方法已经被JVET采用并添加到名为联合探索模型(JEM)的参考软件。在JEM中,基于子块的预测在若干编解码技术中采用,诸如以下详细讨论的仿射预测、可选时域运动矢量预测(ATMVP)、空域-时域运动矢量预测(STMVP)、双向光流(BIO),以及帧速率上转换(FRUC)。
仿射预测
在HEVC中,仅平移运动模型被应用于运动补偿预测(MCP)。然而,相机和对象可以具有许多类型的运动,例如放大/缩小、旋转、透视运动和/或其他不常规运动。另一方面,JEM应用简化的仿射变换运动补偿预测。图2示出了由两个控制点运动矢量V0和V1描述的块200的仿射运动场的示例。块200的运动矢量场(MVF)可以由以下等式描述:
如图2中所示,(v0x,v0y)是左上角控制点的运动矢量,并且(v1x,v1y)是右上角控制点的运动矢量。为简化运动补偿预测,可以应用基于子块的仿射变换预测。子块大小M×N如以下导出:
此处,MVPre是运动矢量分数精度(例如,JEM中的1/16)。(v2x,v2y)是根据等式(1)计算的左下控制点的运动矢量。如果需要,则M和N可以被向下调整,以使其分别为w和h的除数。
图3示出了块300的每个子块的仿射MVF的示例。为导出每个M×N子块的运动矢量,可以根据等式(1)计算每个子块的中央样点的运动矢量,并且四舍五入到运动矢量分数精度(例如,JEM中的1/16)。然后,可以应用运动补偿插值滤波器,以用导出的运动矢量生成每个子块的预测。在MCP之后,每个子块的高精度运动矢量被四舍五入且保存为与普通运动矢量相同精度。
在JEM中,存在两种仿射运动模式:AF_INTER模式和AF_MERGE模式。对于宽度和高度两者都大于8的CU,可以应用AF_INTER模式。在比特流中信令通知CU级中的仿射标志,以指示是否使用AF_INTER模式。在AF_INTER模式中,使用相邻块构建具有运动矢量对{(v0,v1)|v0={vA,vB,vC},v1={vD,vE}}的候选列表。图4示出了AF_INTER模式中的块400的运动矢量预测(MVP)的示例。如图4中所示,从子块A、B或C的运动矢量选择v0。来自相邻块的运动矢量可以根据参考列表被缩放。运动矢量也可以根据相邻块的参考的图片顺序计数(POC)、当前CU的参考的POC,以及当前CU的POC之间的关系被缩放。从相邻子块D和E选择v1的方案是类似的。如果候选列表的数目小于2,则由通过复制AMVP候选中的每一个构成的运动矢量对来填充该列表。当候选列表大于2时,候选可以首先根据相邻运动矢量(例如,基于一对候选中的两个运动矢量的相似度)进行分类。在一些实现方式中,前两个候选被保留。在一些实施例中,使用速率失真(RD)成本检查来确定将哪个运动矢量对候选选择为当前CU的控制点运动矢量预测(CPMVP)。可以在比特流中信令通知指示CPMVP在候选列表中的位置的索引。在当前仿射CU的CPMVP被确定之后,应用仿射运动估计,并且找到控制点运动矢量(CPMV)。然后在比特流中信令通知CPMV与CPMVP之间的差异。
当CU在AF_MERGE模式中应用时,其从有效相邻重构的块得到以仿射模式编解码的第一块。图5A示出了当前CU 500的候选块的选择顺序的示例。如图5A中所示,选择顺序可以为从当前CU 500的左(501)、上(502)、右上(503)、左下(504)至左上(505)。图5B示出了AF_MERGE模式中的当前CU 500的候选块的另一示例。如果相邻左下块501以仿射模式编解码,如图5B中所示,则导出包含子块501的CU的左上角、右上角和左下角的运动矢量v2、v3和v4。基于v2、v3和v4计算当前CU 500上的左上角的运动矢量v0。相应地计算当前CU的右上的运动矢量v1。在当前CU v0和v1的CPMV根据等式(1)中的仿射运动模型计算之后,可以生成当前CU的MVF。为了识别当前CU是否以AF_MERGE模式编解码,当存在以仿射模式编解码的至少一个相邻块时,可以在比特流中信令通知仿射标志。
可选时域运动矢量预测(ATMVP)
在ATMVP方法中,通过从小于当前CU的块取回运动信息的多个集合(包含运动矢量和参考索引)来修改时域运动矢量预测(TMVP)方法。
图6示出了CU 600的ATMVP运动预测过程的示例。ATMVP方法以两个步骤预测CU600内的子CU 601的运动矢量。第一步骤是以时域矢量识别参考图片650中的对应的块651。参考图片650还称为运动源图片。第二步骤是将当前CU 600分割为子CU 601,并且从对应于每个子CU的块获取每个子CU的运动矢量以及参考索引。
在第一步骤中,由当前CU 600的空域相邻块的运动信息确定参考图片650和对应的块。为了避免相邻块的重复扫描过程,使用当前CU 600的MERGE候选列表中的第一MERGE候选。第一可用运动矢量及其相关联的参考索引设定为时域矢量和运动源图片的索引。以此方式,与TMVP相比可以更准确地识别对应的块,其中对应的块(有时称为搭配块)总是相对于当前CU在右下或中央位置。
在第二步骤中,通过将时间矢量添加到当前CU的坐标中,通过运动源图片650中的时间矢量识别子CU 651的对应块。对于每个子CU,使用其对应的块(例如,覆盖中央样点的最小运动网格)的运动信息来导出子CU的运动信息。在识别对应的N×N块的运动信息之后,以与HEVC的TMVP相同的方式将其转换为当前子CU的运动矢量和参考索引,其中运动缩放和其他过程适用。例如,解码器检查是否满足低延迟条件(例如当前图片的全部参考图片的POC小于当前图片的POC),并且可能地使用运动矢量MVx(例如,对应于参考图片列表X的运动矢量)来预测每个子CU的运动矢量MVy(例如,X等于0或1,并且Y等于1-X)。
空域-时域运动矢量预测(STMVP)
在STMVP方法中,遵循光栅扫描顺序,递归地导出子CU的运动矢量。图7示出了具有四个子块和相邻块的一个CU的示例。考虑8×8CU 700,其包含四个4×4子CU,A(701)、B(702)、C(703)以及D(704)。当前帧中的相邻4×4块标记为a(711)、b(712)、c(713)以及d(714)。
子CU A的运动导出开始于识别其两个空域邻域(neighbor)。第一邻域是子CU A701上方的N×N块(块c 713)。如果该块c(713)不可用或是帧内编解码的,则检查子CU A(701)上方的其他N×N块(从左到右,从块c 713开始)。第二邻域是在子CU A 701左侧的块(块b 712)。如果块b(712)不可用或是帧内编解码的,则检查在子CU A 701左侧的其他块(从上到下,从块b 712开始)。对于每个列表从相邻块获取的运动信息被缩放到对于给定列表的第一参考帧。接下来,通过遵循与如HEVC中所指定的TMVP相同的过程来导出子块A 701的时域运动矢量预测(TMVP)。块D 704处的搭配块的运动信息被相应地取回和缩放。最终,在提取和缩放运动信息之后,全部可用运动矢量对于每个参考列表被分开地平均。平均的运动矢量被分配为当前子CU的运动矢量。
双向光流(BIO)
双向光流(BIO)方法是在对双向预测的块方面(block-wise)运动补偿之上进行的样点方面(sample-wise)运动细化。在一些实现方式中,样点级运动细化不使用信令通知。
图8示出了双向光流(BIO)方法中的示例性光流轨迹。此处,τ0和τ1指代与参考帧的距离。基于Ref0和Ref1的POC计算距离τ0和τ1:τ0=POC(当前)-POC(Ref0),τ1=POC(Ref1)-POC(当前)。如果两个预测来自相同的时间方向(都来自过去或来自未来),则符号是不同的(例如,τ0·τ1<0)。在此情况下,如果预测不是来自相同时刻(例如,τ0≠τ1),则应用BIO。两个参考区域都具有非零运动(例如,MVx0,MVy0,MVx1,MVy1≠0),并且块运动矢量与时间距离成比例(例如,MVx0/MVx1=MVy0/MVy1=-τ0/τ1)。
通过最小化A点和B点中的值之间的差异Δ来确定运动矢量场(vx,vy)。图9A-9B示出了运动轨迹和参考帧平面的交叉的示例。对于Δ,模型仅使用局部泰勒(Taylor)展开的第一线性项:
以上等式中的全部值取决于样点位置,指代为(i′,j′)。假设运动在局部围绕区域中是一致的,则Δ可以在(2M+1)×(2M+1)正方形窗Ω内被最小化,正方形窗Ω以当前预测的点(i,j)为中心,其中M等于2:
对于此最优化问题,JEM使用简化的方案,首先在垂直方向上并且然后在水平方向上进行最小化。这得到以下:
其中,
为了避免除以零或很小的值,正则化参数r和m可以被引入到等式(7)和等式(8)中。
r=500·4d-8 等式(10)
m=700·4d-8 等式(11)
此处,d是视频样点的位深度。
为了使如BIO的存储器访问与常规双向预测运动补偿一样,对当前块内的位置计算全部预测和梯度值I(k),图9A示出了块900之外的访问位置的示例。如图9A中所示,在等式(9)中,预测的块的边界上的当前预测的点为中心的(2M+1)×(2M+1)正方形窗Ω需要访问块之外的位置。在JEM中,块之外的I(k),的值被设定为等于块内的最接近可用值。例如,这可以实现为填充区域901,如图9B中所示。
使用BIO,可以将运动场对于每个样点细化。为了降低计算复杂度,在JEM中使用基于块的设计的BIO。可以基于4x4块计算运动细化。在基于块的BIO中,4x4块中的全部样点的等式(9)中的sn的值可以被聚集,并且然后sn的聚集的值被用于导出4×4块的BIO运动矢量偏移。更具体地,以下公式可以用于基于块的BIO导出:
此处,bk指代属于预测的块的第k个4x4块的样点的集合。等式(7)和等式(8)中的sn被((sn,bk)>>4)取代,以导出相关联的运动矢量偏移。
在一些情形下,由于噪声或不常规运动,BIO的MV团(regiment)可能是不可靠的。因此,在BIO中,MV团的大小被修剪到阈值。阈值是基于当前图片的参考图片是否全部来自一个方向而确定的。例如,如果当前图片的全部参考图片来自一个方向,则阈值的值设定为12×214-d;否则,将其设定为12×213-d。
可以在与运动补偿插值的同时使用与HEVC运动补偿过程(例如,2D可分离有限脉冲响应(FIR))一致的操作计算BIO的梯度。在一些实施例中,2D可分离FIR的输入是与运动补偿过程和根据块运动矢量的分数部分的分数位置(fracX,fracY)相同的参考帧样点。对于水平梯度首先使用BIOfilterS对信号进行垂直地插值,其对应于具有去缩放位移d-8的分数位置fracY。然后将梯度滤波器BIOfilterG应用于对应于具有去缩放位移18-d的分数位置fracX的水平方向上。对于垂直梯度对应于具有去缩放位移d-8的分数位置fracY,使用BIOfilterG垂直地应用梯度滤波器。然后对应于具有去缩放位移18-d的分数位置fracX,在水平方向使用BIOfilterS进行信号置换。梯度计算的插值滤波器的长度BIOfilterG和信号置换BIOfilterF可以更短(例如,6-tap),以便保持合理的复杂度。表1示出了可以用于BIO中的块运动矢量的不同分数位置的梯度计算的示例性滤波器。表2示出了可以用于BIO中的预测信号生成的示例性插值滤波器。
表1:BIO中的梯度计算的示例性滤波器
分数像素位置 | 梯度的插值滤波器(BIOfilterG) |
0 | {8,-39,-3,46,-17,5} |
1/16 | {8,-32,-13,50,-18,5} |
1/8 | {7,-27,-20,54,-19,5} |
3/16 | {6,-21,-29,57,-18,5} |
1/4 | {4,-17,-36,60,-15,4} |
5/16 | {3,-9,-44,61,-15,4} |
3/8 | {1,-4,-48,61,-13,3} |
7/16 | {0,1,-54,60,-9,2} |
1/2 | {-1,4,-57,57,-4,1} |
表2:BIO中的预测信号生成的示例性插值滤波器
分数像素位置 | 预测信号的插值滤波器(BIOfilterS) |
0 | {0,0,64,0,0,0} |
1/16 | {1,-3,64,4,-2,0} |
1/8 | {1,-6,62,9,-3,1} |
3/16 | {2,-8,60,14,-5,1} |
1/4 | {2,-9,57,19,-7,2} |
5/16 | {3,-10,53,24,-8,2} |
3/8 | {3,-11,50,29,-9,2} |
7/16 | {3,-11,44,35,-10,3} |
1/2 | {3,-10,35,44,-11,3} |
在JEM中,当两个预测来自不同参考图片时,BIO可以应用于全部双向预测块。当局部照明补偿(LIC)对CU启用时,BIO可以被禁用。
在一些实施例中,在普通MC过程之后,对块应用OBMC。为了降低计算复杂度,在OBMC过程期间可以不应用BIO。这意味着在OBMC过程期间,当使用其自身的MV时,在块的MC过程中应用BIO,并且当使用相邻块的MV时,在MC过程中不应用BIO。
帧速率上转换(FRUC)
当CU的Merge标志为真时,可以向该CU信令通知FRUC标志。当FRUC标志为伪时,Merge索引可以被信令通知,并且使用常规Merge模式。当FRUC标志为真时,附加FRUC模式标志可以被信令通知,以指示要使用哪种方法(例如,双边匹配或模板匹配)来导出块的运动信息。
在编码器侧,是否对CU使用FRUC Merge模式的决定是基于RD成本选择,如对普通Merge候选进行的。例如,通过使用RD成本选择,对于CU检查多个匹配模式(例如,双边匹配和模板匹配)。指向最小成本的一个被进一步与其他CU模式比较。如果FRUC匹配模式是最高效率的一个,则对CU将FRUC标志设定为真,并且使用相关的匹配模式。
典型地,FRUC Merge模式中的运动导出过程具有两个步骤:首先进行CU级运动搜索,然后是子CU级运动细化。在CU级,基于双边匹配或模板匹配,对于整个CU导出初始运动矢量。首先,生成MV候选的列表,并且将指向最小匹配成本的候选选择为进一步CU级细化的起点。然后在起点周围进行基于双边匹配或模板匹配的局部搜索。导致最小匹配成本的MV被作为整个CU的MV。随后,运动信息在子CU级被用导出的CU运动矢量作为起点进一步细化。
例如,对于W×H CU运动信息导出进行以下导出过程。在第一阶段,导出整个W×HCU的MV。在第二阶段,CU被进一步细分为M×M子CU。如(16)中计算M的值,D是预定分割深度,其在JEM中默认设定为3。然后导出每个子CU的MV。
图10示出了在帧速率上转换(FRUC)方法中使用的双边匹配的示例。双边匹配用于通过在两个不同参考图片(1010,1011)中沿着当前CU(1000)的运动轨迹找到两个块之间的最接近匹配,来导出当前CU的运动信息。在连续运动轨迹的假设下,指向两个参考块的运动矢量MV0(1001)和MV1(1002)与当前图片与两个参考图片之间的时域距离——例如,TD0(1003)和TD1(1004)成比例。在一些实施例中,当当前图片1000在时间上在两个参考图片(1010,1011)之间并且从当前图片到两个参考图片的时域距离相同时,双边匹配变为基于双向MV的镜像。
图11示出了FRUC方法中使用的模板匹配的示例。模板匹配可以用于通过找到当前图片中的模板(例如,当前CU的上和/或左相邻块)与参考图片1110中的块(例如,与模板相同大小)之间的最接近匹配,来导出当前CU 1100的运动信息。除了上述FRUC Merge模式之外,模板匹配也可以应用于AMVP模式。在JEM和HEVC两者中,AMVP有两个候选。使用模板匹配方法,可以导出新的候选。如果通过模板匹配的新导出的候选与第一现有AMVP候选不同,则将其插入AMVP候选列表的最开始,并且然后将列表大小设置为2(例如,通过移除第二现有AMVP候选)。应用于AMVP模式时,仅应用CU级搜索。
在CU级设定的MV候选可以包含以下:(1)如果当前CU处于AMVP模式,则为原始AMVP候选,(2)全部Merge候选,(3)插值MV场(后面描述)中的的若干MV以及上和左相邻运动矢量。
当使用双边匹配时,Merge候选的每个有效MV可以用作输入,以在双边匹配的假设下生成MV对。例如,Merge候选的一个有效MV是在参考列表A处的(MVa,refa)。然后,在其他参考列表B中找到其配对双边MV的参考图片refb,使得refa和refb在时间上位于当前图片的不同侧。如果参考列表B中这样的refb不可用,则refb被确定为与refa不同的参考,并且其到当前图片的时域距离是列表B中的最小的一个。在确定refb之后,基于当前图片与refa、refb之间的时域距离,通过缩放MVa导出MVb。
在一些实现方式中,还可以将来自插值的MV场的四个MV添加到CU级候选列表。更具体地,添加当前CU的位置(0,0)、(W/2,0)、(0,H/2)和(W/2,H/2)处的插值MV。当FRUC应用于AMVP模式时,原始AMVP候选也被添加到CU级MV候选集合。在一些实现方式中,在CU级,可以将用于AMVP CU的15个MV和用于Merge CU的13个MV添加到候选列表。
在子CU级的MV候选集合包括(1)从CU级搜索确定的MV,(2)上、左、左上和右上相邻MV,(3)来自参考图片的搭配MV的缩放版本,(4)一个或多个ATMVP候选(例如,多至四个),以及(5)一个或多个STMVP候选(例如,多至四个)。来自参考图片的缩放的MV如下导出。遍历两个列表中的参考图片。参考图片中的子CU的搭配位置处的MV被缩放到起始CU级MV的参考。ATMVP和STMVP候选可以是前四个。在子CU级,将一个或多个MV(例如,多至17个)添加到候选列表。
插值的MV场的生成
在对帧进行编解码之前,基于单边ME为整个图片生成插值运动场。然后,运动场可以之后被用作CU级或子CU级MV候选。
在一些实施例中,两个参考列表中的每个参考图片的运动场在4×4块级遍历。图12示出了FRUC方法中的单边运动估计(ME)1200的示例。对于每个4×4块,如果与块相关联的运动通过当前图片中的4×4块(如图12所示)并且该块尚未被分配任何插值运动,则参考块的运动根据时间距离TD0和TD1(与HEVC中的TMVP的MV缩放的方式相同)缩放到当前图片,并且缩放的运动被分配给当前帧中的块。如果没有缩放的MV被分配给4×4块,则在插值的运动场中将块的运动标记为不可用。
插值和匹配成本
当运动矢量指向分数样点位置时,需要运动补偿插值。为了降低复杂度,可以将双线性插值代替常规8抽头(tap)HEVC插值用于双边匹配和模板匹配两者。
匹配成本的计算在不同步骤略有不同。当从CU级的候选集合中选择候选时,匹配成本可以是双边匹配或模板匹配的绝对和差(SAD)。在确定起始MV之后,如下计算子CU级搜索的双边匹配的匹配成本C:
此处,w是权重因数。在一些实施例中,w可凭经验设置为4。MV和MVs分别指示当前MV和起始MV。SAD仍可用作子CU级搜索的模板匹配的匹配成本。
在FRUC模式中,仅通过使用亮度样点来导出MV。导出的运动将用于MC帧间预测的亮度和色度两者。在决定MV之后,使用用于亮度的8抽头(tap)插值滤波器和用于色度的4抽头插值滤波器来进行最终MC。
MV细化是基于MV搜索的样式,其具有双边匹配成本或模板匹配成本的标准。在JEM中,支持两种搜索样式——分别在CU级和子CU级用于MV细化的无限制中央偏置菱形搜索(UCBDS)和自适应交叉搜索(adaptive cross search)。对于CU和子CU级MV细化,以四分之一亮度样点MV精度直接搜索MV,并且接着是八分之一亮度样点MV细化。用于CU和子CU步骤的MV细化的搜索范围被设定为等于8个亮度样点。
在双边匹配Merge模式中,应用双向预测,因为CU的运动信息是基于沿两个不同参考图片中的当前CU的运动轨迹的两个块之间的最接近匹配而导出的。在模板匹配Merge模式中,编码器可以在对于CU的来自list0的单向预测、来自list1的单向预测或者双向预测中选择。选择可以基于模板匹配成本,如下所示:
如果costBi<=factor*min(cost0,cost1)
则使用双向预测;
否则,如果cost0<=cost1
则使用来自list0的单向预测;
否则,
使用来自list1的单向预测;
此处,cost0是list0模板匹配的SAD,cost1是list1模板匹配的SAD,并且costBi是双向预测模板匹配的SAD。例如,当因数(factor)的值等于1.25时,这意味着选择过程偏向于双向预测。帧间预测方向选择可以应用于CU级模板匹配过程。
VVC中的解块(Deblocking)过程
8.6.2解块滤波过程
8.6.2.1概述
该过程的输入是解块之前的重构图片,即,阵列recPictureL,以及当ChromaArrayType不等于0时,是阵列recPictureCb和recPictureCr。
该过程的输出是解块后的修改的重构图片,即,阵列recPictureL,并且当ChromaArrayType不等于0时,是阵列recPictureCb和recPictureCr。
首先滤波图片中的垂直边缘。然后,将图片中的水平边缘以由垂直边缘滤波过程作为输入而修改的样点进行滤波。每个CTU的CTB中的垂直边缘和水平边缘基于编解码单位分开地处理。从编解码块左手侧的边缘开始以其几何顺序穿过边缘朝向编解码块的右侧前进来对编解码单元中的编解码块的垂直边缘进行滤波。从编解码块顶部的边缘开始以其几何顺序穿过边缘朝向编解码块的底部开始前进对编解码单元中编解码块的水平边缘进行滤波。
注–尽管在本说明书中以图片为基础指定了滤波过程,但只要解码器恰当地考虑了处理依赖性顺序,以便产生相同的输出值,则该滤波过程可以以编解码单元为基础来实现以具有等同结果。
除以下类型的边缘之外,解块滤波过程应用于图片的所有编解码子块边缘和变换块边缘:
–在图片的边界处的边缘,
–当loop_filter_across_tiles_enabled_flag等于0时,与片边界重合的边缘,
–与具有tile_group_loop_filter_across_tile_groups_enabled_flag等于0或tile_group_deblocking_filter_disabled_flag等于1的片组的上或左边界重合的边缘,
–具有tile_group_deblocking_filter_disabled_flag等于1的片组内的边缘,
–不对应于所考虑的分量的8x8样点网格边界的边缘,
–在边缘的两侧都使用帧间预测的色度样点内的边缘,
–不是相关联的变换单元的边缘的色度变换块的边缘。
[Ed.(BB):一旦片被集成后,适应语法。]
边缘类型,垂直或水平,由表8 17所指定的变量edgeType表示。
表8 17–与edgeType的关联的名称
edgeType edgeType的名称
0(垂直边缘) EDGE_VER
1(水平边缘) EDGE_HOR
当当前片组的tile_group_deblocking_filter_disabled_flag等于0时,应用以下:
–变量treeType导出如下:
–如果tile_group_type等于I且qtbtt_dual_tree_intra_flag等于1,则treeType设定为等于DUAL_TREE_LUMA。
–否则,treeType设定为等于SINGLE_TREE。
–用以下调用通过用以下调用对于一个方向的解块滤波过程对垂直边缘进行滤波,如条款8.6.2.2所指定的,使用变量treeType,解块之前的重构图片,即,阵列recPictureL,以及当ChromaArrayType不等于0或treeType等于SINGLE_TREE时,阵列recPictureCb和recPictureCr,以及设定为等于EDGE_VER的变量edgeType作为输入,并且在解块之后的修改的重构图片,即,阵列recPictureL,以及当ChromaArrayType不等于0或treeType等于SINGLE_TREE时,阵列recPictureCb和recPictureCr作为输出。
–用以下调用通过用以下调用对一个方向的解块滤波过程对水平边缘进行滤波,如条款8.6.2.2所指定的,使用变量treeType,在解块之后的修改的重构图片,即,阵列recPictureL,以及当ChromaArrayType不等于0或treeType等于SINGLE_TREE时,阵列recPictureCb和recPictureCr,以及变量edgeType设定为等于EDGE_HOR作为输入,并且在解块之后修改的重构图片,即,阵列recPictureL,以及当ChromaArrayType不等于0或treeType等于SINGLE_TREE时,阵列recPictureCb和recPictureCr作为输出。
–当tile_group_type等于I且qtbtt_dual_tree_intra_flag等于1时,应用以下:
–变量treeType设定为等于DUAL_TREE_CHROMA
–用以下调用通过用以下调用对于一个方向的解块滤波过程对垂直边缘进行滤波,如条款8.6.2.2所指定的,使用变量treeType,在解块之前的重构图片,即,阵列recPictureCb和recPictureCr,以及设定为等于EDGE_VER的变量edgeType作为输入,并且在解块之后的修改的重构图片,即,阵列recPictureCb和recPictureCr作为输出。
–通过用以下调用对于一个方向的解块滤波过程对水平边缘进行滤波,如条款8.6.2.2所指定的,使用变量treeType,在解块之后的修改的重构图片,即,阵列recPictureCb和recPictureCr,以及变量edgeType设定为等于EDGE_HOR作为输入,并且在解块之后的修改的重构图片,即,阵列recPictureCb和recPictureCr作为输出。
8.6.2.2对于一个方向的解块滤波过程
对该过程的输入为:
–变量treeType,指定使用单个树(SINGLE_TREE)还是双树来分割CTU,并且当使用双树时,当前处理亮度(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA),
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,在解块之前的重构图片,即,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘。
该过程的输出是在解块之后的修改的重构图片,即:
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr。
对于具有编解码块宽度log2CbW的每个编解码单元,编解码块高度log2CbH和编解码块(xCb,yCb)的左顶样点的位置,当edgeType等于EDGE_VER且xCb%8等于0或当edgeType等于EDGE_HOR且yCb%8等于0时,通过以下顺序的步骤对边缘进行滤波:
1.编解码块宽度nCbW设定为等于1<<log2CbW,并且编解码块高度nCbH设定为等于1<<log2CbH
2.变量filterEdgeFlag导出如下:
–如果edgeType等于EDGE_VER且以下条件中的一个或多个为真,则filterEdgeFlag设定为等于0:
–当前编解码块的左边界是图片的左边界。
–当前编解码块的左边界是片的左边界且loop_filter_across_tiles_enabled_flag等于0。
–当前编解码块的左边界是片组的左边界且tile_group_loop_filter_across_tile_groups_enabled_flag等于0。
–否则,如果edgeType等于EDGE_HOR且以下条件中的一个或多个为真,则变量filterEdgeFlag设定为等于0:
–当前亮度编解码块的顶边界是图片的顶边界。
–当前编解码块的顶边界是片的顶边界且loop_filter_across_tiles_enabled_flag等于0。
–当前编解码块的顶边界是片组的顶边界且tile_group_loop_filter_across_tile_groups_enabled_flag等于0。
–否则,filterEdgeFlag设定为等于1。
[Ed.(BB):一旦片被集成后,适应语法。]
3.二维(nCbW)x(nCbH)阵列edgeFlags的全部元素被初始化为等于零。
4.用以下调用条款8.6.2.3中指定的变换块边界导出过程,使用设定为等于(0,0)的位置(xB0,yB0),设定为等于nCbW的块宽度nTbW,设定为等于nCbH的块高度nTbH,变量treeType,变量filterEdgeFlag,阵列edgeFlags,以及变量edgeType作为输入,并且其修改的阵列edgeFlags作为输出。
5.用以下调用条款8.6.2.4指定的编解码子块边界的导出过程,使用位置(xCb,yCb),编解码块宽度nCbW,编解码块高度nCbH,阵列edgeFlags,以及变量edgeType作为输入,并且修改的阵列edgeFlags作为输出。
6.图片样点阵列recPicture导出如下:
–如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则recPicture设定为等于解块之前的重构亮度图片样点阵列recPictureL。
–否则(treeType等于DUAL_TREE_CHROMA),recPicture设定为等于解块之前的重构色度图片样点阵列recPictureCb。
7.用以下调用条款8.6.2.5指定的边界滤波强度导出过程,使用图片样点阵列recPicture,亮度位置(xCb,yCb),编解码块宽度nCbW,编解码块高度nCbH,变量edgeType,以及阵列edgeFlags作为输入,并且(nCbW)x(nCbH)阵列verBs作为输出。
8.边缘滤波过程被如下用以下调用:
–如果edgeType等于EDGE_VER,则用以下调用条款8.6.2.6.1指定的编解码单元的垂直边缘滤波过程,使用变量treeType,在解块之前的重构图片,即,当treeType等于SINGLE_TREE或DUAL_TREE_LUMA,阵列recPictureL,以及当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr,位置(xCb,yCb),编解码块宽度nCbW,编解码块高度nCbH,以及阵列verBs作为输入,并且修改的重构图片,即,当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,阵列recPictureL,以及当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr作为输出。
–否则,如果edgeType等于EDGE_HOR,则用以下调用条款8.6.2.6.2所指定的编解码单元的水平边缘滤波过程,使用变量treeType,在解块之前的修改的重构图片,即,当treeType等于SINGLE_TREE或DUAL_TREE_LUMA,阵列recPictureL,以及当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr,位置(xCb,yCb),编解码块宽度nCbW,编解码块高度nCbH,以及阵列horBs作为输入,并且修改的重构图片,即,当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,阵列recPictureL,以及当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr作为输出。
8.6.2.3变换块边界的导出过程
对该过程的输入为:
–位置(xB0,yB0),指定相对于当前编解码块的左顶样点的当前块的左顶样点,
–变量nTbW,指定当前块的宽度,
–变量nTbH,指定当前块的高度,
–变量treeType,指定使用单个树(SINGLE_TREE)还是双树来分割CTU,并且当使用双树时,当前处理亮度(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA),
–变量filterEdgeFlag,
–二维(nCbW)x(nCbH)阵列edgeFlags,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘。
该过程的输出为修改的二维(nCbW)x(nCbH)阵列edgeFlags。
最大变换块大小maxTbSize导出如下:
maxTbSize=(treeType==DUAL_TREE_CHROMA)?MaxTbSizeY/2:MaxTbSizeY(8862)
取决于maxTbSize,应用以下:
–如果nTbW大于maxTbSize或nTbH大于maxTbSize,则应用以下顺序的步骤。
1.变量newTbW和newTbH被如下导出:
newTbW=(nTbW>maxTbSize)?(nTbW/2):nTbW(8 863)
newTbH=(nTbH>maxTbSize)?(nTbH/2):nTbH(8 864)
2.用以下调用本条款中指定的变换块边界的导出过程,使用位置(xB0,yB0),设定为等于newTbW的变量nTbW和设定为等于newTbH的变量nTbH,变量filterEdgeFlag,阵列edgeFlags,以及变量edgeType作为输入,并且输出是修改的版本的阵列edgeFlags。
3.如果nTbW大于maxTbSize,则用以下调用本条款中指定的变换块边界的导出过程,使用设定为等于(xTb0+newTbW,yTb0)的亮度位置(xTb0,yTb0),设定为等于newTbW的变量nTbW和设定为等于newTbH的变量nTbH,变量filterEdgeFlag,阵列edgeFlags和变量edgeType作为输入,并且输出是修改的版本的阵列edgeFlags。
4.如果nTbH大于maxTbSize,则用以下调用本条款中指定的变换块边界的导出过程,使用设定为等于(xTb0,yTb0+newTbH)的亮度位置(xTb0,yTb0),设定为等于newTbW的变量nTbW和设定为等于newTbH的变量nTbH,变量filterEdgeFlag,阵列edgeFlags和变量edgeType作为输入,并且输出是修改的版本的阵列edgeFlags。
5.如果nTbW大于maxTbSize且nTbH大于maxTbSize,则用以下调用本条款中指定的变换块边界的导出过程,使用设定为等于(xTb0+newTbW,yTb0+newTbH)的亮度位置(xTb0,yTb0),设定为等于newTbW的变量nTbW和设定为等于newTbH的变量nTbH,变量filterEdgeFlag,阵列edgeFlags和变量edgeType作为输入,并且输出是修改的版本的阵列edgeFlags。
–否则,应用以下:
–如果edgeType等于EDGE_VER,则edgeFlags[xB0][yB0+k]的值对于k=0..nTbH-1导出如下:
–如果xB0等于0,则edgeFlags[xB0][yB0+k]设定为等于filterEdgeFlag。
–否则,edgeFlags[xB0][yB0+k]设定为等于1。
–否则(edgeType等于EDGE_HOR),edgeFlags[xB0+k][yB0]的值对于k=0..nTbW-1导出如下:
–如果yB0等于0,则edgeFlags[xB0+k][yB0]设定为等于filterEdgeFlag。
–否则,edgeFlags[xB0+k][yB0]设定为等于1。
8.6.2.4编解码子块边界的导出过程
对该过程的输入为:
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–变量nCbW,指定当前编解码块的宽度,
–变量nCbH,指定当前编解码块的高度,
–二维(nCbW)x(nCbH)阵列edgeFlags,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘。
该过程的输出为修改的二维(nCbW)x(nCbH)阵列edgeFlags。
水平方向上的编解码子块的数目numSbX和垂直方向上的编解码子块的数目numSbY被如下导出:
–如果CuPredMode[xCb][yCb]==MODE_INTRA,则numSbX和numSbY都设定为等于1。
–否则,numSbX和numSbY分别设定为等于NumSbX[xCb][yCb]和NumSbY[xCb][yCb]。
取决于edgeType的值,应用以下:
–如果edgeType等于EDGE_VER且numSbX大于1,则对于i=1..min((nCbW/8)-1,numSbX-1),k=0..nCbH–1,应用以下:
edgeFlags[i*Max(8,nCbW/numSbX)][k]=1(8 865)
–否则,如果edgeType等于EDGE_HOR且numSbY大于1,对于j=1..min((nCbH/8)-1,numSbY-1),k=0..nCbW–1,应用以下:
edgeFlags[k][j*Max(8,nCbH/numSbY)]=1(8 866)
8.6.2.5边界滤波强度的导出过程
对该过程的输入为:
–图片样点阵列recPicture,
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–变量nCbW,指定当前编解码块的宽度,
–变量nCbH,指定当前编解码块的高度,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘,
–二维(nCbW)x(nCbH)阵列edgeFlags。
该过程的输出为二维(nCbW)x(nCbH)阵列bS,指定边界滤波强度。
变量xDi,yDj,xN和yN被如下导出:
–如果edgeType等于EDGE_VER,则xDi设定为等于(i<<3),yDj设定为等于(j<<2),xN设定为等于Max(0,(nCbW/8)-1)且yN设定为等于(nCbH/4)-1。
–否则(edgeType等于EDGE_HOR),xDi设定为等于(i<<2),yDj设定为等于(j<<3),xN设定为等于(nCbW/4)-1且yN设定为等于Max(0,(nCbH/8)-1)。
对于xDi,其中i=0..xN,和yDj,其中j=0..yN,应用以下:
–如果edgeFlags[xDi][yDj]等于0,变量bS[xDi][yDj]设定为等于0。
–否则,应用以下:
–样点值p0和q0被如下导出:
–如果edgeType等于EDGE_VER,则p0设定为等于recPicture[xCb+xDi-1][yCb+yDj]且q0设定为等于recPicture[xCb+xDi][yCb+yDj]。
–否则(edgeType等于EDGE_HOR),p0设定为等于recPicture[xCb+xDi][yCb+yDj-1]且q0设定为等于recPicture[xCb+xDi][yCb+yDj]。
–变量bS[xDi][yDj]导出如下:
–如果样点p0或q0在用帧内预测模式编解码的编解码单元的编解码块中,则bS[xDi][yDj]设定为等于2。
–否则,如果块边缘也是变换块边缘且样点p0或q0在包含一个或多个非零变换系数级的变换块中,则bS[xDi][yDj]设定为等于1。
–否则,如果以下条件中的一个或多个为真,则bS[xDi][yDj]设定为等于1:
–对于包含样点p0的编解码子块的预测,使用与包含样点q0的编解码子块的预测不同的参考图片或不同数目的运动矢量。
注1–确定用于两个编解码子块的参考图片相同还是不同仅基于参考了哪些图片,而与使用参考图片列表0的索引还是使用参考图片列表1的索引形成预测无关,也与参考图片列表内的索引位置是否不同无关。
注2–用于预测具有左顶样点覆盖(xSb,ySb)的编解码子块的运动矢量的数目等于PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]。
–一个运动矢量用于预测包含样点p0的编解码子块,并且一个运动矢量用于预测包含样点q0的编解码子块,并且所使用的运动矢量的水平或垂直分量之间的绝对差以四分之一亮度样点为单位大于或等于4。
–使用两个运动矢量和两个不同的参考图片来预测包含样点p0的编解码子块,使用相同的两个参考图片的两个运动矢量来预测包含样点q0的编解码子块,并且对于相同参考图片的两个编解码子块的预测中使用的两个运动矢量的水平或垂直分量之间的绝对差以四分之一亮度样点为单位大于或等于4。
–用于相同参考图片的两个运动矢量被用于预测包含样点p0的编解码子块,用于相同参考图片的两个运动矢量被用于预测包含样点q0的编解码子块,并且以下两个条件为真:
–在预测两个编解码子块所使用的列表0运动矢量的水平或垂直分量之间的绝对差以四分之一亮度样点计大于或等于4,或者在两个编解码子块的预测中使用的列表1运动矢量以四分之一亮度样点为单位大于或等于4。
–包含样点p0的编解码子块的预测中使用的列表0运动矢量和包含样点q0的编解码子块的预测中使用的列表1运动矢量的水平或垂直分量之间的绝对差以四分之一亮度样点计大于或等于4,或者包含样点p0的编解码子块的预测所使用的列表1运动矢量和包含样点q0的编解码子块的预测所使用的列表0运动矢量的水平或垂直分量之间的绝对差以四分之一亮度样点为单位大于或等于4。
–否则,将变量bS[xDi][yDj]设定为等于0。
8.6.2.6边缘滤波过程
8.6.2.6.1垂直边缘滤波过程
对该过程的输入为:
–变量treeType,指定使用单个树(SINGLE_TREE)还是双树来分割CTU,并且当使用双树时,当前处理的是亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA),
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,在解块之前的重构图片,即,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr,
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–变量nCbW,指定当前编解码块的宽度,
–变量nCbH,指定当前编解码块的高度。
该过程的输出为在解块之后的修改的重构图片,即:
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr。
当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,当前编解码单元的亮度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量xN设定为等于Max(0,(nCbW/8)-1)且yN设定为等于(nCbH/4)-1。
2.对于xDk等于k<<3,其中k=0..nN且yDm等于m<<2,其中m=0..yN,应用以下:
–当bS[xDk][yDm]大于0时,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.3指定的块边缘决定过程,使用treeType,设定为等于亮度图片样点阵列recPictureL的图片样点阵列recPicture,亮度编解码块的位置(xCb,yCb),块的亮度位置(xDk,yDm),设定为EDGE_VER的变量edgeType,边界滤波强度bS[xDk][yDm],以及设定为BitDepthY的位深度bD作为输入,并且决策dE,dEp和dEq,和变量tC作为输出。
b.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于亮度图片样点阵列recPictureL的图片样点阵列recPicture,亮度编解码块的位置(xCb,yCb),块的亮度位置((xDk,yDm)),设定为等于EDGE_VER的变量edgeType,决定dE,dEp和dEq,以及变量tC作为输入,并且修改的亮度图片样点阵列recPictureL作为输出。
当ChromaArrayType不等于0且treeType等于SINGLE_TREE时,当前编解码单元的色度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量xN设定为等于Max(0,(nCbW/8)-1)且yN设定为等于Max(0,(nCbH/8)-1)。
2.变量edgeSpacing设定为等于8/SubWidthC。
3.变量edgeSections设定为等于yN*(2/SubHeightC)。
4.对于xDk等于k*edgeSpacing,其中k=0..xN且yDm等于m<<2,其中m=0..edgeSections,应用以下:
–当bS[xDk*SubWidthC][yDm*SubHeightC]等于2且(((xCb/SubWidthC+xDk)>>3)<<3)等于xCb/SubWidthC+xDk时,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.5所指定的色度块边缘的滤波过程,使用色度图片样点阵列recPictureCb,色度编解码块的位置(xCb/SubWidthC,yCb/SubHeightC),块的色度位置(xDk,yDm),设定为等于EDGE_VER的变量edgeType且设定为等于pps_cb_qp_offset的变量cQpPicOffset作为输入,并且修改的色度图片样点阵列recPictureCb作为输出。
b.用以下调用条款8.6.2.6.5所指定的色度块边缘的滤波过程,使用色度图片样点阵列recPictureCr,色度编解码块的位置(xCb/SubWidthC,yCb/SubHeightC),块的色度位置(xDk,yDm),设定为等于EDGE_VER的变量edgeType和设定为等于pps_cr_qp_offset的变量cQpPicOffset作为输入,并且修改的色度图片样点阵列recPictureCr作为输出。
当treeType等于DUAL_TREE_CHROMA,当前编解码单元的两个色度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量xN设定为等于Max(0,(nCbW/8)-1)且yN设定为等于(nCbH/4)-1。
2.对于xDk等于k<<3,其中k=0..xN且yDm等于m<<2,其中m=0..yN,应用以下:
–当bS[xDk][yDm]大于0时,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.3所指定的块边缘的决定过程,使用treeType,设定为等于色度图片样点阵列recPictureCb的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),色度块的位置(xDk,yDm),设定为等于EDGE_VER的变量edgeType,边界滤波强度bS[xDk][yDm],以及设定为等于BitDepthC的位深度bD作为输入,并且决定dE,dEp和dEq,以及变量tC作为输出。
b.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于色度图片样点阵列recPictureCb的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),块的色度位置(xDk,yDm),设定为等于EDGE_VER的变量edgeType,决定dE,dEp和dEq,以及变量tC作为输入,并且修改的色度图片样点阵列recPictureCb作为输出。
c.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于色度图片样点阵列recPictureCr的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),块的色度位置(xDk,yDm),设定为等于EDGE_VER的变量edgeType,决定dE,dEp和dEq,以及变量tC作为输入,并且修改的色度图片样点阵列recPictureCr作为输出。
8.6.2.6.2水平边缘滤波过程
对该过程的输入为:
–变量treeType,指定使用单个树(SINGLE_TREE)还是双树来分割CTU,并且当使用双树时,当前处理的是亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA),
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,在解块之前的重构图片,即,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr,
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–变量nCbW,指定当前编解码块的宽度,
–变量nCbH,指定当前编解码块的高度。
该过程的输出为在解块之后的修改的重构图片,即:
–当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,阵列recPictureL,
–当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,阵列recPictureCb和recPictureCr。
当treeType等于SINGLE_TREE或DUAL_TREE_LUMA时,对于当前编解码单元的亮度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量yN设定为等于Max(0,(nCbH/8)-1)且xN设定为等于(nCbW/4)-1。
2.对于yDm等于m<<3,其中m=0..yN且xDk等于k<<2,其中k=0..xN,应用以下:
–当bS[xDk][yDm]大于0时,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.3所指定的块边缘的决定过程,使用treeType,设定为等于亮度图片样点阵列recPictureL的图片样点阵列recPicture,亮度编解码块的位置(xCb,yCb),块的亮度位置((xDk,yDm)),设定为等于EDGE_HOR的变量edgeType,边界滤波强度bS[xDk][yDm],以及设定为等于BitDepthY的位深度bD作为输入,并且决定dE,dEp和dEq,以及变量tC作为输出。
b.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于亮度图片样点阵列recPictureL的图片样点阵列recPicture,亮度编解码块的位置(xCb,yCb),块的亮度位置((xDk,yDm)),设定为等于EDGE_HOR的变量edgeType,决定dEp,dEp和dEq,以及变量tC作为输入,并且修改的亮度图片样点阵列recPictureL作为输出。
当ChromaArrayType不等于0且treeType等于SINGLE_TREE时,当前编解码单元的色度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量xN设定为等于Max(0,(nCbW/8)-1)且yN设定为等于Max(0,(nCbH/8)-1)。
2.变量edgeSpacing设定为等于8/SubHeightC。
3.变量edgeSections设定为等于xN*(2/SubWidthC)。
4.对于yDm等于m*edgeSpacing,其中m=0..yN且xDk等于k<<2,其中k=0..edgeSections,应用以下:
–当bS[xDk*SubWidthC][yDm*SubHeightC]等于2且(((yCb/SubHeightC+yDm)>>3)<<3)等于yCb/SubHeightC+yDm,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.5所指定的色度块边缘的滤波过程,使用色度图片样点阵列recPictureCb,色度编解码块的位置(xCb/SubWidthC,yCb/SubHeightC),块的色度位置(xDk,yDm),设定为等于EDGE_HOR的变量edgeType以及设定为等于pps_cb_qp_offset的变量cQpPicOffset作为输入,并且修改的色度图片样点阵列recPictureCb作为输出。
b.用以下调用条款8.6.2.6.5所指定的色度块边缘的滤波过程,使用色度图片样点阵列recPictureCr,色度编解码块的位置(xCb/SubWidthC,yCb/SubHeightC),块的色度位置(xDk,yDm),设定为等于EDGE_HOR的变量edgeType和设定为等于pps_cr_qp_offset的变量cQpPicOffset作为输入,并且修改的色度图片样点阵列recPictureCr作为输出。
当treeType等于DUAL_TREE_CHROMA时,当前编解码单元的两个色度编解码块中的边缘的滤波过程由以下顺序的步骤构成:
1.变量yN设定为等于Max(0,(nCbH/8)-1)且xN设定为等于(nCbW/4)-1。
2.对于yDm等于m<<3,其中m=0..yN且xDk等于k<<2,其中k=0..xN,应用以下:
–当bS[xDk][yDm]大于0时,应用以下顺序的步骤:
a.用以下调用条款8.6.2.6.3所指定的块边缘的决定过程,使用treeType,设定为等于色度图片样点阵列recPictureCb的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),色度块的位置(xDk,yDm),设定为等于EDGE_HOR的变量edgeType,边界滤波强度bS[xDk][yDm],以及设定为等于BitDepthC的位深度bD作为输入,并且决定dE,dEp和dEq,以及变量tC作为输出。
b.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于色度图片样点阵列recPictureCb的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),块的色度位置(xDk,yDm),设定为等于EDGE_HOR的变量edgeType,决定dE,dEp和dEq,以及变量tC作为输入,并且修改的色度图片样点阵列recPictureCb作为输出。
c.用以下调用条款8.6.2.6.4所指定的块边缘的滤波过程,使用设定为等于色度图片样点阵列recPictureCr的图片样点阵列recPicture,色度编解码块的位置(xCb,yCb),块的色度位置(xDk,yDm),设定为等于EDGE_HOR的变量edgeType,决定dE,dEp和dEq,以及变量tC作为输入,并且修改的色度图片样点阵列recPictureCr作为输出。
8.6.2.6.3块边缘的决定过程
对该过程的输入为:
–变量treeType,指定使用单个树(SINGLE_TREE)还是双树来分割CTU,并且当使用双树时,当前处理的是亮度分量(DUAL_TREE_LUMA)还是色度分量(DUAL_TREE_CHROMA),
–图片样点阵列recPicture,
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–位置(xBl,yBl),指定相对于当前编解码块的左顶样点的当前块的左顶样点,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘,
–变量bS,指定边界滤波强度,
–变量bD,指定位当前分量的深度。
该过程的输出为:
–包含决定的变量dE,dEp和dEq,
–变量tC。
如果edgeType等于EDGE_VER,则样点值pi,k和qi,k,其中i=0..3且k=0和3,被如下导出:
qi,k=recPictureL[xCb+xBl+i][yCb+yBl+k](8 867)
pi,k=recPictureL[xCb+xBl-i-1][yCb+yBl+k](8 868)
否则(edgeType等于EDGE_HOR),样点值pi,k和qi,k,其中i=0..3且k=0和3,被如下导出:
qi,k=recPicture[xCb+xBl+k][yCb+yBl+i](8 869)
pi,k=recPicture[xCb+xBl+k][yCb+yBl-i-1](8 870)
变量qpOffset导出如下:
–如果sps_ladf_enabled_flag等于1且treeType等于SINGLE_TREE或DUAL_TREE_LUMA,应用以下:
–重构亮度级的变量lumaLevel被如下导出:
lumaLevel=((p0,0+p0,3+q0,0+q0,3)>>2),(8 871)
–变量qpOffset设定为等于sps_ladf_lowest_interval_qp_offset且被如下修改:
–否则(treeType等于DUAL_TREE_CHROMA),qpOffset设定为等于0。
变量QpQ和QpP被如下导出:
–如果treeType等于SINGLE_TREE或DUAL_TREE_LUMA,则QpQ和QpP设定为等于编解码单元的QpY值,该编解码单元包括分别包含样点q0,0和p0,0的编解码块。
–否则(treeType等于DUAL_TREE_CHROMA),QpQ和QpP设定为等于编解码单元的QpC值,该编解码单元包括分别包含样点q0,0和p0,0的编解码块。
变量qP导出如下:
qP=((QpQ+QpP+1)>>1)+qpOffset(8 873)
基于量化参数Q如表8 18所指定的来确定变量β′的值,量化参数Q如下导出:
Q=Clip3(0,63,qP+(tile_group_beta_offset_div2<<1))(8 874)
其中tile_group_beta_offset_div2是包含样点q0,0的片组的语法元素tile_group_beta_offset_div2的值。
变量β导出如下:
β=β′*(1<<(bD-8)) (8 875)
基于量化参数Q如表8 18所指定的来确定变量tC′的值,量化参数Q如下导出:
Q=Clip3(0,65,qP+2*(bS-1)+(tile_group_tc_offset_div2<<1))(8 876)
其中tile_group_tc_offset_div2是包含样点q0,0的片组的tile_group_tc_offset_div2的语法元素的值。
变量tC导出如下:
tC=tC′*(1<<(bD-8)) (8 877)
取决于edgeType的值,应用以下:
–如果edgeType等于EDGE_VER,则应用以下顺序的步骤:
1.变量dpq0,dpq3,dp,dq和d被如下导出:
dp0=Abs(p2,0-2*p1,0+p0,0) (8 878)
dp3=Abs(p2,3-2*p1,3+p0,3) (8 879)
dq0=Abs(q2,0-2*q1,0+q0,0) (8 880)
dq3=Abs(q2,3-2*q1,3+q0,3) (8 881)
dpq0=dp0+dq0 (8 882)
dpq3=dp3+dq3 (8 883)
dp=dp0+dp3 (8 884)
dq=dq0+dq3 (8 885)
d=dpq0+dpq3 (8 886)
2.变量dE,dEp和dEq设定为等于0。
3.当d小于β时,应用以下顺序的步骤:
a.变量dpq设定为等于2*dpq0。
b.对于样点位置(xCb+xBl,yCb+yBl),用以下调用如条款8.6.2.6.6所指定的样点的决定过程,使用样点值p0,0,p3,0,q0,0,和q3,0,变量dpq,β以及tC作为输入,并且输出被分配到决定dSam0。
c.变量dpq设定为等于2*dpq3。
d.对于样点位置(xCb+xBl,yCb+yBl+3),用以下调用如条款8.6.2.6.6所指定的样点的决定过程,使用样点值p0,3,p3,3,q0,3,和q3,3,变量dpq,β和tC作为输入,并且输出被分配到决定dSam3。
e.变量dE设定为等于1。
f.当dSam0等于1且dSam3等于1时,变量dE设定为等于2。
g.当dp小于(β+(β>>1))>>3时,变量dEp设定为等于1。
h.当dq小于(β+(β>>1))>>3时,变量dEq设定为等于1。
–否则(edgeType等于EDGE_HOR),应用以下顺序的步骤:
1.变量dpq0,dpq3,dp,dq和d被如下导出:
dp0=Abs(p2,0-2*p1,0+p0,0) (8 887)
dp3=Abs(p2,3-2*p1,3+p0,3) (8 888)
dq0=Abs(q2,0-2*q1,0+q0,0) (8 889)
dq3=Abs(q2,3-2*q1,3+q0,3) (8 890)
dpq0=dp0+dq0 (8 891)
dpq3=dp3+dq3 (8 892)
dp=dp0+dp3 (8 893)
dq=dq0+dq3 (8 894)
d=dpq0+dpq3 (8 895)
2.变量dE,dEp和dEq设定为等于0。
3.当d小于β时,应用以下顺序的步骤:
a.变量dpq设定为等于2*dpq0。
b.对于样点位置(xCb+xBl,yCb+yBl),用以下调用如条款8.6.2.6.6所指定的样点的决定过程,使用样点值p0,0,p3,0,q0,0和q3,0,变量dpq,β和tC作为输入,并且输出被分配到决定dSam0。
c.变量dpq设定为等于2*dpq3。
d.对于样点位置(xCb+xBl+3,yCb+yBl),用以下调用如条款8.6.2.6.6所指定的样点的决定过程,使用样点值p0,3,p3,3,q0,3和q3,3,变量dpq,β和tC作为输入,并且输出被分配到决定dSam3。
e.变量dE设定为等于1。
f.当dSam0等于1且dSam3等于1时,变量dE设定为等于2。
g.当dp小于(β+(β>>1))>>3时,变量dEp设定为等于1。
h.当dq小于(β+(β>>1))>>3时,变量dEq设定为等于1。
表8 18–从输入Q导出阈值变量β′和tC′
8.6.2.6.4块边缘的滤波过程
对该过程的输入为:
–图片样点阵列recPicture,
–位置(xCb,yCb),指定相对于当前图片的左顶样点的当前编解码块的左顶样点,
–位置(xBl,yBl),指定相对于当前编解码块的左顶样点的当前块的左顶样点,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘,
–包含决定的变量dE,dEp和dEq,
–变量tC。
该过程的输出为修改的图片样点阵列recPicture。
取决于edgeType的值,应用以下:
–如果edgeType等于EDGE_VER,则应用以下顺序的步骤:
1.样点值pi,k和qi,k,i=0..3且k=0..3,被如下导出:
qi,k=recPictureL[xCb+xBl+i][yCb+yBl+k] (8 896)
pi,k=recPictureL[xCb+xBl-i-1][yCb+yBl+k](8 897)
2.当dE不等于0时,对于每个样点位置(xCb+xBl,yCb+yBl+k),k=0..3,应用以下顺序的步骤:
a.用以下调用如条款8.6.2.6.7所指定的样点的滤波过程,使用样点值pi,k,qi,k,其中i=0..3,设定为等于(xCb+xBl-i-1,yCb+yBl+k)的位置(xPi,yPi)和设定为等于(xCb+xBl+i,yCb+yBl+k)的(xQi,yQi)(i=0..2),决定dE,变量dEp和dEq以及变量tC作为输入,并且来自块边界的每侧的滤波的样点nDp和nDq的数目和滤波的样点值pi’和qj’作为输出。
b.当nDp大于0时,滤波的样点值pi'(其中i=0..nDp–1)如下替换样点阵列recPicture之内对应的样点:
recPicture[xCb+xBl-i-1][yCb+yBl+k]=pi' (8 898)
c.当nDq大于0时,滤波的样点值qj'(其中j=0..nDq–1)替换样点阵列recPicture之内对应的样点:
recPicture[xCb+xBl+j][yCb+yBl+k]=qj' (8 899)
–否则(edgeType等于EDGE_HOR),应用以下顺序的步骤:
1.样点值pi,k和qi,k,其中i=0..3且k=0..3被如下导出:
qi,k=recPictureL[xCb+xBl+k][yCb+yBl+i] (8 900)
pi,k=recPictureL[xCb+xBl+k][yCb+yBl-i-1] (8 901)
2.当dE不等于0时,对于每个样点位置(xCb+xBl+k,yCb+yBl),k=0..3,应用以下顺序的步骤:
a.用以下调用如条款8.6.2.6.7所指定的样点的滤波过程,使用样点值pi,k,qi,k,其中i=0..3,设定为等于(xCb+xBl+k,yCb+yBl-i-1)的位置(xPi,yPi)和设定为等于(xCb+xBl+k,yCb+yBl+i)的(xQi,yQi)(i=0..2),决定dE,变量dEp和dEq,以及变量tC作为输入,并且来自块边界的每侧的滤波的样点nDp和nDq的数目和滤波的样点值pi’和qj’作为输出。
b.当nDp大于0时,滤波的样点值pi’,(其中,i=0..nDp-1)替换样点阵列recPicture之内对应的样点:
recPicture[xCb+xBl+k][yCb+yBl-i-1]=pi' (8 902)
c.当nDq大于0时,滤波的样点值qj',(其中,j=0..nDq–1)替换样点阵列recPicture之内对应的样点:
recPicture[xCb+xBl+k][yCb+yBl+j]=qj' (8 903)
8.6.2.6.5色度块边缘的滤波过程
仅当ChromaArrayType不等于0时调用该过程。
对该过程的输入为:
–色度图片样点阵列s′,
–色度位置(xCb,yCb),指定相对于当前图片的左顶色度样点的当前色度编解码块的左顶样点,
–色度位置(xBl,yBl),指定相对于当前色度编解码块的左顶样点的当前色度块的左顶样点,
–变量edgeType,指定滤波的是垂直(EDGE_VER)还是水平(EDGE_HOR)边缘,
–变量cQpPicOffset,指定图片级色度量化参数偏移。
该过程的输出为修改的色度图片样点阵列s′。
如果edgeType等于EDGE_VER,则值pi和qi,其中i=0..1且k=0..3被如下导出:
qi,k=s′[xCb+xBl+i][yCb+yBl+k] (8 904)
pi,k=s′[xCb+xBl-i-1][yCb+yBl+k] (8 905)
否则(edgeType等于EDGE_HOR),样点值pi和qi,其中i=0..1且k=0..3,被如下导出:
qi,k=s′[xCb+xBl+k][yCb+yBl+i] (8 906)
pi,k=s′[xCb+xBl+k][yCb+yBl-i-1] (8 907)
变量QpQ和QpP设定为等于编解码单元的QpY值,该编解码单元包括分别包含样点q0,0和p0,0的编解码块。
如果ChromaArrayType等于1,则基于索引qPi如表8 15所指定的来确定变量QpC,索引qPi如下导出:
qPi=((QpQ+QpP+1)>>1)+cQpPicOffset (8 908)
否则(ChromaArrayType大于1),变量QpC设定为等于Min(qPi,63)。
注-根据滤波的色度分量是Cb还是Cr分量,变量cQpPicOffset提供对于pps_cb_qp_offset或pps_cr_qp_offset的值的调整。然而,为了避免需要改变图片内调整的量,滤波过程不包含对tile_group_cb_qp_offset或tile_group_cr_qp_offset的值的调整。
基于色度量化参数Q如表8 18所指定的来确定变量tC′的值,色度量化参数Q如下导出:
Q=Clip3(0,65,QpC+2+(tile_group_tc_offset_div2<<1))
(8 909)
其中tile_group_tc_offset_div2是包含样点q0,0的片组的tile_group_tc_offset_div2的语法元素的值。
变量tC导出如下:
tC=tC′*(1<<(BitDepthC-8)) (8 910)
取决于edgeType的值,应用以下:
–如果edgeType等于EDGE_VER,则对于每个样点位置(xCb+xBl,yCb+yBl+k),k=0..3,应用以下顺序的步骤:
1.用以下调用如条款8.6.2.6.8所指定的色度样点的滤波过程,使用样点值pi,k,qi,k,其中i=0..1,位置(xCb+xBl-1,yCb+yBl+k)和(xCb+xBl,yCb+yBl+k)以及变量tC作为输入,并且滤波的样点值p0′和q0′作为输出。
2.滤波的样点值p0′和q0′如下替换样点阵列s′之内的对应的样点:
s′[xCb+xBl][yCb+yBl+k]=q0′ (8 911)
s′[xCb+xBl-1][yCb+yBl+k]=p0′ (8 912)
–否则(edgeType等于EDGE_HOR),对于每个样点位置(xCb+xBl+k,yCb+yBl),k=0..3,应用以下顺序的步骤:
1.用以下调用如条款8.6.2.6.8所指定的色度样点的滤波过程,使用样点值pi,k,qi,k,其中i=0..1,位置(xCb+xBl+k,yCb+yBl-1)和(xCb+xBl+k,yCb+yBl),以及变量tC作为输入,并且滤波的样点值p0′和q0′作为输出。
2.滤波的样点值p0′和q0′如下替换样点阵列s′之内的对应的样点:
s′[xCb+xBl+k][yCb+yBl]=q0′ (8 913)
s′[xCb+xBl+k][yCb+yBl-1]=p0′ (8 914)
8.6.2.6.6样点的决定过程
对该过程的输入为:
–样点值p0,p3,q0和q3,
–变量dpq,β和tC。
该过程的输出为包含决定的变量dSam。
变量dSam如下指定:
–如果dpq小于(β>>2),则Abs(p3-p0)+Abs(q0-q3)小于(β>>3)且Abs(p0-q0)小于(5*tC+1)>>1,dSam设定为等于1。
–否则,dSam设定为等于0。
8.6.2.6.7样点的滤波过程
对该过程的输入为:
–样点值pi和qi,其中i=0..3,
–pi和qi的位置,(xPi,yPi)(xQi,yQi),其中i=0..2,
–变量dE,
–变量dEp和dEq,分别包含对滤波样点p1和q1的决定,
–变量tC。
该过程的输出为:
–滤波的样点nDp和nDq的数目,
–滤波的样点值pi′和qj′,其中i=0..nDp-1,j=0..nDq-1。
取决于dE的值,应用以下:
–如果变量dE等于2,则nDp和nDq都设定为等于3,且应用以下强滤波:
p0′=Clip3(p0-2*tC,p0+2*tC,(p2+2*p1+2*p0+2*q0+q1+4)>>3) (8 915)
p1′=Clip3(p1-2*tC,p1+2*tC,(p2+p1+p0+q0+2)>>2)
(8 916)
p2′=Clip3(p2-2*tC,p2+2*tC,(2*p3+3*p2+p1+p0+q0+4)>>3) (8 917)
q0′=Clip3(q0-2*tC,q0+2*tC,(p1+2*p0+2*q0+2*q1+q2+4)>>3) (8 918)
q1′=Clip3(q1-2*tC,q1+2*tC,(p0+q0+q1+q2+2)>>2)(8 919)
q2′=Clip3(q2-2*tC,q2+2*tC,(p0+q0+q1+3*q2+2*q3+4)>>3) (8 920)
–否则,nDp和nDq都设定为等于0,并且应用以下弱滤波:
–应用以下:
=(9*(q0-p0)-3*(q1-p1)+8)>>4 (8 921)
–当Abs()小于tC*10时,应用以下顺序的步骤:
–滤波的样点值p0′和q0′被如下指定:
=Clip3(-tC,tC,) (8 922)
p0′=Clip1Y(p0+) (8 923)
q0′=Clip1Y(q0-) (8 924)
–当dEp等于1时,滤波的样点值p1′如下指定:
p=Clip3(-(tC>>1),tC>>1,(((p2+p0+1)>>1)-p1+)>>1) (8 925)
p1′=Clip1Y(p1+p) (8 926)
–当dEq等于1时,滤波的样点值q1′如下指定:
q=Clip3(-(tC>>1),tC>>1,(((q2+q0+1)>>1)-q1-)>>1) (8 927)
q1′=Clip1Y(q1+q) (8 928)
–nDp设定为等于dEp+1且nDq设定为等于dEq+1。
当nDp大于0且以下条件中的一个或多个为真时,nDp设定为等于0:
–pcm_loop_filter_disabled_flag等于1且pcm_flag[xP0][yP0]等于1。
–包括包含样点p0的编解码块的编解码单元的cu_transquant_bypass_flag等于1。
当nDq大于0且以下条件中的一个或多个为真时,nDq设定为等于0:
–pcm_loop_filter_disabled_flag等于1且pcm_flag[xQ0][yQ0]等于1。
–包括包含样点q0的编解码块的编解码单元的cu_transquant_bypass_flag等于1。
8.6.2.6.8色度样点的滤波过程
仅当ChromaArrayType不等于0时调用该过程。
对该过程的输入为:
–色度样点值pi和qi,其中i=0..1,
–p0和q0的色度位置,(xP0,yP0)和(xQ0,yQ0),
–变量tC。
该过程的输出为滤波的样点值p0′和q0′。
滤波的样点值p0′和q0′被如下导出:
=Clip3(-tC,tC,((((q0-p0)<<2)+p1-q1+4)>>3)) (8 929)
p0′=Clip1C(p0+) (8 930)
q0′=Clip1C(q0-) (8 931)
当以下条件中的一个或多个为真时,滤波的样点值,p0′被由对应的输入样点值p0替代:
–pcm_loop_filter_disabled_flag等于1且pcm_flag[xP0*SubWidthC][yP0*SubHeightC]等于1。
–包括包含样点p0的编解码块的编解码单元的cu_transquant_bypass_flag等于1。
当以下条件中的一个或多个为真时,滤波的样点值,q0′被由对应的输入样点值q0替代:
–pcm_loop_filter_disabled_flag等于1且pcm_flag[xQ0*SubWidthC][yQ0*SubHeightC]等于1。
–包括包含样点q0的编解码块的编解码单元的cu_transquant_bypass_flag等于1。
8.6.3样点适应性偏移过程
8.6.3.1概述
对该过程的输入是在样点适应性偏移之前的重构图片样点阵列recPictureL,并且当ChromaArrayType不等于0时,为阵列recPictureCb和recPictureCr。
该过程的输出为在样点适应性偏移之后的修改的重构图片样点阵列saoPictureL,并且当ChromaArrayType不等于0时,为阵列saoPictureCb和saoPictureCr。
在解码图片的解块滤波过程完成之后,基于CTB进行该过程。
修改后的重构图片样点阵列saoPictureL中的样点值,并且当ChromaArrayType不等于0时,阵列saoPictureCb和saoPictureCr初始设定为等于重构图片样点阵列recPictureL中的样点值,并且当ChromaArrayType不等于0时,分别为阵列recPictureCb和recPictureCr。
对于具有CTB位置(rx,ry)的每个CTU,其中rx=0..PicWidthInCtbsY-1且ry=0..PicHeightInCtbsY-1,适用以下规则:
–当当前片组的tile_group_sao_luma_flag等于1时,用以下调用如条款8.6.3.2指定的CTB修改过程,使用设定为等于recPictureL的recPicture,设定为0的cIdx,(rx,ry),以及两者都设定为等于CtbSizeY的nCtbSw和nCtbSh作为输入,并且修改后的亮度图片样点阵列saoPictureL作为输出。
–当ChromaArrayType不等于0并且当前片组的tile_group_sao_chroma_flag等于1时,用以下调用条款8.6.3.2指定的CTB修改过程,使用设定为recPictureCb的recPicture,设定为1的cIdx,(rx,ry),设定为等于(1<<CtbLog2SizeY)/SubWidthC的nCtbSw,设定为等于(1<<CtbLog2SizeY)/SubHeightC的nCtbSh作为输入,并且修改后的色度图像样点阵列saoPictureCb作为输出。
–当ChromaArrayType不等于0并且当前片组的tile_group_sao_chroma_flag等于1时,用以下调用条款8.6.3.2指定的CTB修改过程,使用设定为recPictureCr的recPicture,设定为2的cIdx,(rx,ry),设定为等于(1<<CtbLog2SizeY)/SubWidthC的nCtbSw,设定为等于(1<<CtbLog2SizeY)/SubHeightC的nCtbSh作为输入,并且修改后的色度图像样点阵列saoPictureCr作为输出。
8.6.3.2CTB修改过程
对该过程的输入为:
–颜色分量cIdx的图片样点阵列recPicture,
–变量cIdx,指定颜色分量索引,
–一对变量(rx,ry),指定CTB位置,
–CTB宽度nCtbSw和高度nCtbSh。
该过程的输出为颜色分量cIdx的修改的图片样点阵列saoPicture。
变量bitDepth导出如下:
–如果cIdx等于0,则bitDepth设定为等于BitDepthY。
–否则,bitDepth设定为等于BitDepthC。
位置(xCtb,yCtb),相对于当前图片的左顶样点分量cIdx指定颜色分量cIdx的当前CTB的左顶样点,导出如下:
(xCtb,yCtb)=(rx*nCtbSw,ry*nCtbSh) (8 932)
当前CTB之内的样点位置被如下导出:
(xSi,ySj)=(xCtb+i,yCtb+j) (8 933)
(xYi,yYj)=(cIdx==0)?(xSi,ySj):(xSi*SubWidthC,ySj*SubHeightC) (8934)
对于全部样点位置(xSi,ySj)和(xYi,yYj),其中i=0..nCtbSw–1且j=0..nCtbSh-1,取决于包含覆盖recPicture[xSi][ySj]的编解码块的编解码单元的pcm_loop_filter_disabled_flag、pcm_flag[xYi][yYj]和cu_transquant_bypass_flag的值,应用以下:
–如果以下条件中的一个或多个为真,则saoPicture[xSi][ySj]不被修改:
–pcm_loop_filter_disabled_flag和pcm_flag[xYi][yYj]都等于1。
–cu_transquant_bypass_flag等于1。
–SaoTypeIdx[cIdx][rx][ry]等于0。
[Ed.(BB):修改突出显示的部分,以待将来决定转换/量化旁路。]
–否则,如果SaoTypeIdx[cIdx][rx][ry]等于2,应用以下顺序的步骤:
1.基于SaoEoClass[cIdx][rx][ry],表8 19中指定对于k=0..1的hPos[k]和vPos[k]的值。
2.变量edgeIdx导出如下:
–修改的样点位置(xSik′,ySjk′)和(xYik′,yYjk′)如下导出:
(xSik′,ySjk′)=(xSi+hPos[k],ySj+vPos[k]) (8 935)
(xYik′,yYjk′)=(cIdx==0)?(xSik′,ySjk′):(xSik′*SubWidthC,ySjk′*SubHeightC) (8 936)
–如果一个或多个以下条件对于全部样点位置(xSik′,ySjk′)和(xYik′,yYjk′)为真,k=0..1,则edgeIdx设定为等于0:
–位置(xSik′,ySjk′)处的样点在图片边界之外。
–位置(xSik′,ySjk′)处的样点属于不同片组并且以下两个条件之一为真:
–MinTbAddrZs[xYik′>>MinTbLog2SizeY][yYjk′>>MinTbLog2SizeY]小于MinTbAddrZs[xYi>>MinTbLog2SizeY][yYj>>MinTbLog2SizeY]且样点recPicture[xSi][ySj]所属的片组中的tile_group_loop_filter_across_tile_groups_enabled_flag等于0。
–MinTbAddrZs[xYi>>MinTbLog2SizeY][yYj>>MinTbLog2SizeY]小于MinTbAddrZs[xYik′>>MinTbLog2SizeY][yYjk′>>MinTbLog2SizeY]且样点recPicture[xSik′][ySjk′]所属的片组中的tile_group_loop_filter_across_tile_groups_enabled_flag等于0。
–loop_filter_across_tiles_enabled_flag等于0且位置(xSik′,ySjk′)处的样点属于不同片。
[Ed.(BB):当合并没有片组的片时修改突出显示的部分]
–否则,edgeIdx导出如下:
–应用以下:
edgeIdx=2+Sign(recPicture[xSi][ySj]-recPicture[xSi+hPos[0]][ySj+vPos[0]])+
Sign(recPicture[xSi][ySj]-recPicture[xSi+hPos[1]][ySj+vPos[1]]) (8937)
–当edgeIdx等于0,1,或2时,edgeIdx被如下修改:
edgeIdx=(edgeIdx==2)?0:(edgeIdx+1) (8 938)
3.修改的图片样点阵列saoPicture[xSi][ySj]导出如下:
saoPicture[xSi][ySj]=Clip3(0,(1<<bitDepth)-1,recPicture[xSi][ySj]+
SaoOffsetVal[cIdx][rx][ry][edgeIdx]) (8 939)
–否则(SaoTypeIdx[cIdx][rx][ry]等于1),应用以下顺序的步骤:
1.变量bandShift设定为等于bitDepth-5。
2.变量saoLeftClass设定为等于sao_band_position[cIdx][rx][ry]。
3.列表bandTable定义有32个元素且全部元素初始设定为等于0。然后,其中四个元素(指示明确偏移的带的开始位置)被如下修改:
对于(k=0;k<4;k++)
bandTable[(k+saoLeftClass)&31]=k+1 (8 940)
4.变量bandIdx设定为等于bandTable[recPicture[xSi][ySj]>>bandShift]。
5.修改的图片样点阵列saoPicture[xSi][ySj]导出如下:
saoPicture[xSi][ySj]=Clip3(0,(1<<bitDepth)-1,recPicture[xSi][ySj]+
SaoOffsetVal[cIdx][rx][ry][bandIdx]) (8 941)
表8 19–根据样点适应性偏移分类的hPos和vPos的规范
SaoEoClass[cIdx][rx][ry ]0 1 2 3
hPos[0]-10 -1 1
hPos[1]1 0 1 -1
vPos[0]0 -1-1 -1
vPos[1]0 1 1 1
当子块的大小较小时,上面讨论的基于子块的预测技术可用于获取每个子块的更准确的运动信息。然而,较小的子块在运动补偿中造成了更高的带宽要求。另一方面,针对较小子块导出的运动信息可能不准确,尤其是当块中存在一些噪声时。因此,在一个块内具有固定的子块大小可能是次优的。
本文件描述了可以在各种实施例中使用的技术,以使用非均匀和/或可变子块大小来解决固定子块大小引入的带宽和精度问题。这些技术(也称为交织预测)使用不同的细分块的方式,使得可以更加鲁棒地获取运动信息而不增加带宽消耗。
使用交织预测技术,将块以一个或多个细分模式细分为子块。细分样式表示将块细分为子块的方式,包括子块的大小和子块的位置。对于每个细分样式,可以通过基于细分样式导出每个子块的运动信息来生成对应的预测块。因此,在一些实施例中,即使对于一个预测方向,也可以通过多个细分样式生成多个预测块。在一些实施例中,对于每个预测方向,可以仅应用一个细分样式。
图13示出了根据本公开的技术的具有两个细分样式的交织预测的示例。当前块1300可以细分为多个样式。例如,如图13所示,当前块被细分为样式0(1301)和样式1(1302)两者。生成两个预测块P0(1303)和P1(1304)。可以通过计算P0(1303)和P1(1304)的加权和,来生成当前块1300的最终预测块P(1305)。
更一般地,给定X个细分样式,可以通过具有X个细分样式的基于子块的预测来生成当前块的X个预测块,表示为P0,P1,......,PX-1。表示为P的当前块的最终预测可以生成为
此处,(x,y)是块中的像素的坐标,并且wi(x,y)是Pi的权重值。作为示例且非限制性地,权重可以表达为:
N是非负值。替代地,等式(16)中的位移位操作也可以表达为:
作为2的幂的权重之和允许通过执行比特移位操作而不是浮点除法来更有效地计算加权和P。
在下面,各种实现方式被呈现为单独的章节和项目。在本文档中使用不同的章节和项目仅是为了便于理解,并且在每个章节/项目中描述的实施例和技术的范围不仅限于该章节/项目。
交织预测对于不同编解码工具的使用
项目1:注意,本文公开的交织的预测技术可以被应用在基于子块的预测的一种、一些或全部编解码技术中。例如,交织预测技术可以应用于仿射预测,而基于子块的预测的其他编解码技术(例如,ATMVP,STMVP,FRUC或BIO)不使用交织预测。作为另一个示例,仿射,ATMVP和STMVP均适用本文公开的交织预测技术。
细分样式的定义
项目2:细分样式可以具有子块的不同的形状、大小或位置。在一些实施例中,细分样式可包含不规则的子块大小。图14A-14G示出了用于16×16块的细分样式的若干示例。在图14A中,根据所公开的技术将块细分为4×4子块。此样式也用于JEM中。图14B示出了根据本公开的技术将块细分为8×8子块的示例。图14C示出了根据本公开技术将块细分为8×4子块的示例。图14D示出了根据本公开的技术将块细分为4×8子块的示例。在图14E中,根据本公开的技术,块的一部分被细分为4×4子块。块边界处的像素被细分为具有诸如2×4、4×2或2×2的大小的更小子块。可以合并一些子块以形成更大的子块。图14F示出了相邻子块的示例,诸如4×4子块和2×4子块,其被合并以形成具有诸如6×4、4×6或6×6的大小的更大子块。在图14G中,块的一部分被细分为8×8子块。块边界处的像素被细分为较小的子块,其具有诸如8×4、4×8或4×4的大小。
项目3:可以基于编解码块的形状和/或大小和/或编解码块信息来确定基于子块的预测中的子块的形状和大小。例如,在一些实施例中,当当前块具有M×N的大小时,子块具有4×N(或8×N等)的大小。也就是说,子块具有与当前块相同的高度。在一些实施例中,当当前块具有M×N的大小时,子块具有M×4(或M×8等)的大小。也就是说,子块具有与当前块相同的宽度。在一些实施例中,当当前块具有M×N(其中M>N)的大小时,子块具有A×B的大小,其中A>B(例如,8×4)。替代地,子块可以具有B×A(例如4×8)的大小。在一些实施例中,当前块具有M×N的大小。当M×N<=T(或Min(M,N)<=T,或Max(M,N)<=T等)时,子块具有A×B的大小,并且当M×N>T(或Min(M,N)>T,或Max(M,N)>T等)时,子块具有C×D的大小,其中A<=C且B<=D。例如,如果M×N<=256,则子块可以是4×4的大小。在一些实现方式中,子块具有8×8的大小。
启用/禁用交织预测和交织预测的编解码过程
项目4:在一些实施例中,可以基于帧间预测方向来确定是否应用交织预测。例如,在一些实施例中,交织预测可以应用于双向预测,但不应用于单向预测。作为另一示例,当应用多假设时,当存在多于一个参考块时,可以将交织预测应用于一个预测方向。
项目5:在一些实施例中,还可以基于帧间预测方向来确定如何应用交织预测。在一些实施例中,具有基于子块的预测的双向预测块对于两个不同参考列表以两个不同细分样式被细分为子块。例如,当从参考列表0(L0)预测时,双向预测块被细分为4×8子块,如图14D所示。当从参考列表1(L1)预测时,将相同的块细分为8×4子块,如图14C所示。最终预测P计算为
此处,P0和P1分别是来自L0和L1的预测。w0和w1分别是L0和L1的权重值。如等式(16)所示,权重值可以确定为:w0(x,y)+w1(x,y)=1<<N(其中N是非负整数值)。因为在每个方向上用于预测的子块更少(例如,与8×8子块相比,4×8子块),与现有的基于子块的方法相比,计算需要更少的带宽。通过使用更大的子块,预测结果也更不易受噪声干扰的影响。
在一些实施例中,具有基于子块的预测的单向预测块对于相同参考列表
以两种或更多种不同细分样式被细分为子块。例如,列表L(L=0或1)的
预测PL被计算为
这里XL是列表L的细分样式的数目。是用第i细分样式预测生成的,并且是的权重值。例如,当XL为2时,两种细分样式应用于列表L。在第一细分样式中,块被细分为4×8子块,如图14D所示。在第二细分样式中,块被细分为8×4子块如图14D所示。
在一个实施例中,具有基于子块的预测的双向预测块被认为是分别来自L0和L1的两个单向预测块的组合。来自每个列表的预测可以按上述示例中的描述导出。最终预测P可以被计算为
这里,参数a和b是应用于两个内部预测块的两个附加权重。在该具体示例中,a和b可以都设定为1。类似于上面的示例,因为在每个方向上使用更少的子块用于预测(例如,与8×8子块相比,4×8子块),带宽使用比现有基于子块的方法更好或同等水平。同时,通过使用更大的子块可以改善预测结果。
在一些实施例中,可以在每个单向预测块中使用单个非均匀样式。例如,对于每个列表L(例如,L0或L1),块被分成不同的样式(例如,如图14E或图14F所示)。使用较少数目的子块降低了对带宽的需求。子块的非均匀性也增加了预测结果的鲁棒性。
在一些实施例中,对于多假设编解码块,对于每个预测方向(或参考图片列表),可以存在由不同细分样式生成的多于一个预测块。可以使用多个预测块来生成应用了附加权重的最终预测。例如,附加权重可以设定为1/M,其中M是所生成的预测块的总数。
项目6:在一些实施例中,编码器可以确定是否应用以及如何应用交织预测。然后,编码器可以在序列级、图片级、视图级、条带级、编解码树单元(CTU)(也称为最大编解码单元(LCU))级、CU级、PU级、树单元(TU)级、片级,片组级或区域级(可包含多个CU/PU/Tu/LCU)将对应于该确定的信息发送到解码器。可以在序列参数集(SPS)、视图参数集(VPS)、图片参数集(PPS)、条带报头(SH)、图片报头、序列报头、或片级或片组级、CTU/LCU、CU、PU、TU、或区域的第一个块中将信息信令通知。
在一些实现方式中,交织预测适用于现有的子块方法,例如仿射预测、ATMVP、STMVP、FRUC或BIO。在这种情况下,不需要额外的信令成本。在一些实现方式中,可以将由交织预测生成的新子块Merge候选插入到Merge列表中,例如,交织预测+ATMVP、交织预测+STMVP、交织预测+FRUC等。在一些实现方式中,可以信令通知标志以指示是否使用交织预测。在一个示例中,如果当前块是仿射帧间编解码的,则信令通知标志以指示是否使用交织预测。在一些实现方式中,如果当前块是仿射Merge编解码的并且应用单向预测,则可以信令通知标志以指示是否使用交织预测。在一些实现方式中,如果当前块是仿射Merge编解码的,则可以信令通知标志以指示是否使用交织预测。在一些实现方式中,如果当前块是仿射Merge编解码的并且应用单向预测,则可以总是使用交织预测。在一些实现方式中,如果当前块是仿射Merge编解码的,则可以总是使用交织预测。
在一些实现方式中,指示是否使用交织预测的标志可以被继承(inherit)而无需被信令通知。一些示例包括:
(i)在一个示例中,如果当前块是仿射Merge编解码的,则可以使用继承。
(ii)在一个示例中,标志可以从继承仿射模型的相邻块的标志继承。
(iii)在一个示例中,标志从诸如左或上相邻块的预定相邻块继承。
(iv)在一个示例中,标志可以从首先遇到的仿射编解码的相邻块继承。
(v)在一个示例中,如果没有相邻块是仿射编解码的,则可以推断该标志为零。
(vi)在一个示例中,可以仅在当前块应用单向预测时继承该标志。
(vii)在一个示例中,仅在当前块和其要继承的相邻块在同一CTU中时才可以继承该标志。
(viii)在一个示例中,仅在当前块和其要继承的相邻块在同一CTU行中时才可以继承该标志。
(ix)在一个示例中,当从时域相邻块导出仿射模型时,可以不从相邻块的标志继承该标志。
(x)在一个示例中,可以不从不位于相同的LCU或LCU行或视频数据处理单元(诸如64×64或128×128)中的相邻块的标志继承标志。
(xi)在一个示例中,如何信令通知和/或导出标志可以取决于当前块的块尺寸和/或编解码信息。
在一些实现方式中,如果参考图片是当前图片,则不应用交织预测。例如,如果参考图片是当前图片,则不信令通知指示是否使用交织预测的标志。
在一些实施例中,可以基于来自空域和/或时域相邻块的信息导出当前块要使用的细分样式。例如,不是依赖于编码器来信令通知相关信息,而是编码器和解码器两者都可以采用一组预定规则来基于时域邻接(例如,先前使用的相同块的细分样式)或空域邻接(例如,相邻块使用的细分样式)来获取细分样式。
权重值
项目7:在一些实施例中,权重值w可以是固定的。例如,全部细分样式可以相等地加权:wi(x,y)=1。
项目8:在一些实施例中,可以基于块的位置以及所使用的细分样式来确定权重值。例如,对于不同的(x,y),wi(x,y)可以是不同的。在一些实施例中,权重值还可以取决于基于子块预测的编解码技术(例如,仿射或ATMVP)和/或其他编解码信息(例如,跳过或非跳过模式,和/或MV信息)。
项目9:在一些实施例中,编码器可以确定权重值,并且在序列级、图片级、条带级、CTU/LCU级、CU级、PU级或区域级(其可以包括多个CU/PU/Tu/LCU))中将值发送到解码器。可以在序列参数集(SPS)、图片参数集(PPS)、条带报头(SH)、CTU/LCU、CU、PU或区域的第一块中信令通知权重值。在一些实施例中,可以从空域和/或时域相邻块的权重值导出权重值。
部分交织预测
项目10:在一些实施例中,部分交织预测可以如以下实现。
在一些实施例中,交织预测被应用于当前块的一部分。在一些位置处的预测样点被计算为两个或更多个基于子块的预测的加权和。其他位置的预测样点不用于加权和。例如,这些预测样点是从具有特定细分样式的基于子块的预测中复制的。
在一些实施例中,通过分别具有细分样式D0和细分样式D1的基于子块的预测P1和P2来预测当前块。最终预测计算为P=w0×P0+w1×P1。在某些位置,w0≠0且w1≠0。但是在某些其他位置,w0=1且w1=0,即,在这些位置处不应用交织预测。
在一些实施例中,交织预测不应用在四个角部子块上,如图15A所示。
在一些实施例中,交织预测不应用在子块的最左列和子块的最右列,如图15B中所示。
在一些实施例中,交织预测不应用在子块的最顶部行和子块的最底部行,如图15C所示。
在一些实施例中,交织预测不应用在子块的行的最顶部行、最底部行、子块的最左列和子块的最右列,如图15D中所示。
在一些实施例中,是否应用以及如何应用部分交织预测可以取决于当前块的大小/形状。
例如,在一些实施例中,如果当前块的大小满足特定条件,则交织预测应用到整个块;否则,交织预测应用到块的一部分(或一些部分)。条件包含但不限于:(假设当前块的宽度和高度分别是W和H,并且T,T1、T2为整数值):
W>=T1且H>=T2;
W<=T1且H<=T2;
W>=T1或H>=T2;
W<=T1或H<=T2;
W+H>=T
W+H<=T
W×H>=T
W×H<=T
在一些实施例中,部分交织预测应用于当前块的小于当前块的部分。例如,在一些实施例中,块的部分如下排除子块。在一些实施例中,如果W≥H,则交织预测不应用于如图15B所示的子块的最左列和子块的最右列;否则,交织预测不应用于如图15C所示的子块的最顶部行和子块的最底部行。
例如,在一些实施例中,如果W>H,则交织预测不应用于如图15B所示的子块的最左列和子块的最右列;否则,交织预测不应用于如图15C所示的子块的最顶部行和子块的最底部行。
在一些实施例中,对于块中的不同区域,是否应用以及如何应用交织预测可以是不同的。例如,假设当前块是通过分别具有细分模式D0和细分模式D1的基于子块的预测P1和P2来预测的。最终预测计算为P(x,y)=w0×P0(x,y)+w1×P1(x,y)。如果位置(x,y)属于具有细分样式D0的尺寸为S0×H0的子块;并属于具有细分样式D1的子块S1×H1,如果满足一个或多个以下条件,则设定w0=1并且w1=0(例如,在该位置不应用交织预测):
S1<T1;
H1<T2;
S1<T1且H1<T2;或
S1<T1或H1<T2,
本文中,T1和T2为整数。例如,T1=T2=4。
与编码器实施例整合的技术的示例
项目11:在一些实施例中,交织预测不应用在运动估计(ME)过程中。
例如,交织预测对于6参数仿射预测不应用在ME过程中。
例如,如果当前块的大小满足诸如以下的特定条件,则交织预测不应用在ME过程中。此处,假设当前块的宽度和高度分别为W和H,并且T、T1、T2为整数值:
W>=T1且H>=T2;
W<=T1且H<=T2;
W>=T1或H>=T2;
W<=T1或H<=T2;
W+H>=T
W+H<=T
W×H>=T
W×H<=T
例如,如果当前块是从母块划分的,并且母块在编码器处不选择仿射模式,则在ME过程中省略交织预测。
替代地,如果当前块是从母块划分的,并且母块在编码器处不选择仿射模式,则在编码器处不检查仿射模式。
MV导出的示例性实施例
在以下示例中,SatShift(x,n)定义为
Shift(x,n)定义为Shift(x,n)=(x+shift0)>>n。在一个示例中,shift0和/或shift1设定为(1<<n)>>1或(1<<(n-1))。在另一示例中,shift0和/或shift1设定为0。
项目12:在一些实施例中,一个细分样式中的每个子块的MV可以从仿射模型(诸如用等式(1))直接导出,或其可以从另一细分样式内的子块的MV导出。
(a)在一个示例中,具有细分样式0的子块B的MV可以从与子块B重叠的细分样式1内的子块中的一些或全部的MV导出。
(b)图16A-16C示出了一些示例。在图16A中,将导出细分样式1内的特定子块的MV1(x,y)。图16B示出了块中的细分样式0(实线)和细分样式1(虚线),指示在细分样式0内存在与细分样式1内的特定子块重叠的四个子块。图16C示出了四个MV:与细分样式1内的特定子块重叠的细分样式0内的四个子块的MV0 (x-2,y-2)、MV0 (x+2,y-2)、MV0 (x-2,y+2)以及MV0 (x+2,y+2)。然后MV1 (x,y)将从MV0 (x-2,y-2)、MV0 (x+2,y-2)、MV0 (x-2,y+2)和MV0 (x+2,y+2)导出。
(c)假设细分样式1内的一个子块的MV’是从细分样式0内的k+1个子块的MV0、MV1、MV2、…MVk导出的。MV’可以导出为:
(i)MV’=MVn,n是0…k中的任意数。
(ii)MV’=f(MV0,MV1,MV2,…,MVk)。f是线性函数。
(iii)MV’=f(MV0,MV1,MV2,…,MVk)。f是非线性函数。
(iv)MV’=Average(MV0,MV1,MV2,…,MVk)。Average是平均运算。
(v)MV’=Median(MV0,MV1,MV2,…,MVk)。Median是得到中位数值的运算。
(vi)MV’=Max(MV0,MV1,MV2,…,MVk)。Max是得到最大值的运算。
(vii)MV’=Min(MV0,MV1,MV2,…,MVk)。Min是得到最小值的运算。
(viii)MV’=MaxAbs(MV0,MV1,MV2,…,MVk)。MaxAbs是得到具有最大绝对值的值的运算。
(ix)MV’=MinAbs(MV0,MV1,MV2,…,MVk)。MinAbs是得到具有最小绝对值的值的运算。
(x)以图16A作为示例,MV1 (x,y)可以导出为:
1.MV1 (x,y)=SatShift(MV0(x-2,y-2)+MV0(x+2,y-2)+MV0(x-2,y+2)+MV0(x+2,y+2),2);
2.MV1 (x,y)=Shift(MV0(x-2,y-2)+MV0(x+2,y-2)+MV0(x-2,y+2)+MV0(x+2,y+2),2);
3.MV1 (x,y)=SatShift(MV0(x-2,y-2)+MV0(x+2,y-2),1);
4.MV1 (x,y)=Shift(MV0(x-2,y-2)+MV0(x+2,y-2),1);
5.MV1 (x,y)=SatShift(MV0(x-2,y+2)+MV0(x+2,y+2),1);
6.MV1 (x,y)=Shift(MV0(x-2,y+2)+MV0(x+2,y+2),1);
7.MV1 (x,y)=SatShift(MV0(x-2,y-2)+MV0(x+2,y+2),1);
8.MV1 (x,y)=Shift(MV0(x-2,y-2)+MV0(x+2,y+2),1);
9.MV1 (x,y)=SatShift(MV0(x-2,y-2)+MV0(x-2,y+2),1);
10.MV1 (x,y)=Shift(MV0(x-2,y-2)+MV0(x-2,y+2),1);
11.MV1 (x,y)=SatShift(MV0(x+2,y-2)+MV0(x+2,y+2),1);
12.MV1 (x,y)=Shift(MV0(x+2,y-2)+MV0(x+2,y+2),1);
13.MV1 (x,y)=SatShift(MV0(x+2,y-2)+MV0(x-2,y+2),1);
14.MV1 (x,y)=Shift(MV0(x+2,y-2)+MV0(x-2,y+2),1);
15.MV1 (x,y)=MV0 (x-2,y-2);
16.MV1 (x,y)=MV0 (x+2,y-2);
17.MV1 (x,y)=MV0 (x-2,y+2);或
18.MV1 (x,y)=MV0 (x+2,y+2)。
项目13:在一些实施例中,如何选择细分样式可以取决于当前块的宽度和高度。
(a)例如,如果宽度>T1且高度>T2(例如T1=T2=4),则选择两种细分样式。图17A示出了两种细分样式的示例。
(b)例如,如果高度<=T2(例如T2=4),则选择另外两种细分样式。图17B示出了两种细分样式的示例。
(c)例如,如果宽度<=T1(例如T1=4),则选择再另外两种细分样式。图17C示出了两种细分样式的示例。
项目14:在一些实施例中,一个颜色分量C1的一个细分样式内的每个子块的MV可以从另一颜色分量C0的另一细分样式内子块的MV导出。
(a)例如,C1指代在另一颜色分量之后编解码/解码的颜色分量,诸如Cb或Cr或U或V或R或B。
(b)例如,C0指代在另一颜色分量之前编解码/解码的颜色分量,诸如Y或G。
(c)在一个示例中,如何从另一颜色分量的另一细分样式内的子块的MV的MV导出一个颜色分量的一个细分样式内的子块的MV可以取决于颜色格式,诸如4:2:0,或4:2:2,或4:4:4。
(d)在一个示例中,在根据颜色格式缩小或放大坐标之后,具有细分样式C1Pt(t=0或1)的颜色分量C1中的子块B的MV可以从与子块B重叠的具有细分样式C0Pr(r=0或1)内的颜色分量C0中的一些或全部子块的MV导出。
(i)在一个示例中,C0Pr总是等于C0P0。
(e)图18A和18B示出了两个示例。颜色格式为4:2:0。Cb分量中的子块的MV被从Y分量中的子块的MV导出。
(i)在图18A左侧,将要导出细分样式0内的特定Cb子块B的MVCb0 (x’,y’)。图18A右侧示出了细分样式0内的四个Y子块,其以2:1缩小时与Cb子块B重叠。假设x=2*x’且y=2*y’,细分样式0内的四个Y子块的四个MV:MV0 (x-2,y-2),MV0 (x+2,y-2),MV0 (x-2,y+2)和MV0 (x+2,y+2)被用于导出MVCb0 (x’,y’)。
(ii)在图18B左侧,细分样式1内的特定Cb子块B的MVCb0 (x’,y’)要被导出。图18B右侧示出了细分样式0内的四个Y子块,其当2:1缩小时与Cb子块B重叠。假设x=2*x’且y=2*y’,细分样式0内的四个Y子块的四个MV:MV0 (x-2,y-2),MV0 (x+2,y-2),MV0 (x-2,y+2)和MV0 (x+2,y+2)用于导出MVCb0 (x’,y’)。
(f)假设颜色分量C1的一个子块的MV’是从颜色分量C0的k-1子块的MV0,MV1,MV2,…MVk导出的。MV’可以导出为:
(i)MV’=MVn,n是0…k中的任意数。
(ii)MV’=f(MV0,MV1,MV2,…,MVk)。f是线性函数。
(iii)MV’=f(MV0,MV1,MV2,…,MVk)。f是非线性函数。
(iv)MV’=Average(MV0,MV1,MV2,…,MVk)。Average是平均运算。
(v)MV’=Median(MV0,MV1,MV2,…,MVk)。Median是得到中位数值的运算。
(vi)MV’=Max(MV0,MV1,MV2,…,MVk)。Max是得到最大值的运算。
(vii)MV’=Min(MV0,MV1,MV2,…,MVk)。Min是得到最小值的运算。
(viii)MV’=MaxAbs(MV0,MV1,MV2,…,MVk)。MaxAbs是得到具有最大绝对值的值的运算。
(ix)MV’=MinAbs(MV0,MV1,MV2,…,MVk)。MinAbs是得到具有最小绝对值的值的运算。
(x)以图18A和图18B作为示例,MVCbt (x’,y’),其中t=0或1,可以导出为:
1.MVCbt (x’,y’)=SatShift(MV0(x-2,y-2)+MV0(x+2,y-2)+MV0(x-2,y+2)+MV0(x+2,y+2),2);
2.MVCbt (x’,y’)=Shift(MV0(x-2,y-2)+MV0(x+2,y-2)+MV0(x-2,y+2)+MV0(x+2,y+2),2);
3.MVCbt (x’,y’)=SatShift(MV0(x-2,y-2)+MV0(x+2,y-2),1);
4.MVCbt (x’,y’)=Shift(MV0(x-2,y-2)+MV0(x+2,y-2),1);
5.MVCbt (x’,y’)=SatShift(MV0(x-2,y+2)+MV0(x+2,y+2),1);
6.MVCbt (x’,y’)=Shift(MV0(x-2,y+2)+MV0(x+2,y+2),1);
7.MVCbt (x’,y’)=SatShift(MV0(x-2,y-2)+MV0(x+2,y+2),1);
8.MVCbt (x’,y’)=Shift(MV0(x-2,y-2)+MV0(x+2,y+2),1);
9.MVCbt (x’,y’)=SatShift(MV0(x-2,y-2)+MV0(x-2,y+2),1);
10.MVCbt (x’,y’)=Shift(MV0(x-2,y-2)+MV0(x-2,y+2),1);
11.MVCbt (x’,y’)=SatShift(MV0(x+2,y-2)+MV0(x+2,y+2),1);
12.MVCbt (x’,y’)=Shift(MV0(x+2,y-2)+MV0(x+2,y+2),1);
13.MVCbt (x’,y’)=SatShift(MV0(x+2,y-2)+MV0(x-2,y+2),1);
14.MVCbt (x’,y’)=Shift(MV0(x+2,y-2)+MV0(x-2,y+2),1);
15.MVCbt (x’,y’)=MV0 (x-2,y-2);
16.MVCbt (x’,y’)=MV0 (x+2,y-2);
17.MVCbt (x’,y’)=MV0 (x-2,y+2);
18.MVCbt (x’,y’)=MV0 (x+2,y+2);
双向预测的交织预测的示例性实施例
项目15:在一些实施例中,当交织预测应用在双向预测上时,可以应用以下方法,以节省由于不同权重造成的内部位深度增大:
(a)对于列表X(X=0或1),PX(x,y)=Shift(W0(x,y)*PX 0(x,y)+W1(x,y)*PX 1(x,y),SW),其中PX(x,y)是列表X的预测,PX 0(x,y)和PX 1(x,y)分别是列表X以细分样式0和细分样式1的预测。W0和W1是整数,其表示交织预测权重值,并且SW表示权重值的精确度。
(b)最终预测值导出为P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB),其中Wb0和Wb1为加权的双向预测中使用的整数,并且SWB为精确度。当不存在加权的双向预测时,Wb0=Wb1=SWB=1。
(c)在一些实施例中,PX 0(x,y)和PX 1(x,y)可以保持为插值滤波的精确度。例如,它们可以是具有16比特的无符号的(unsigned)整数。最终预测值导出为P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB+PB),其中PB是来自插值滤波的附加精确度,例如,PB=6。在此情况下,W0(x,y)*PX 0(x,y)或W1(x,y)*PX 1(x,y)可能超过16比特。提议将PX 0(x,y)和PX 1(x,y)首先右移到较低的精确度,以避免超过16比特。
(i)例如,对于列表X(X=0或1),PX(x,y)=Shift(W0(x,y)*PLX 0(x,y)+W1(x,y)*PLX 1(x,y),SW),其中PLX 0(x,y)=Shift(PX 0(x,y),M),PLX 1(x,y)=Shift(PX 1(x,y),M)。并且,最终预测导出为P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB+PB-M)。例如,M设定为2或3。
(d)上述方法还可以适用于具有两个参考预测块的不同加权因数的其他双向预测方法,诸如广义双向预测(Generalized Bi-Prediction)(GBi,其中权重可以为例如,3/8、5/8)、加权预测(其中权重可以为很大的值)。
(e)上述方法还可以适用于具有不同参考预测块的不同权重因数的其他多假设单向预测或双向预测方法。
块大小从属性的示例性实施例
项目16:是否和/或如何应用交织预测可以取决于块宽度W和高度H。
a.在一个示例中,是否和/或如何应用交织预测可以取决于VPDU(视频处理数据单元,其典型地表示硬件设计中处理的最大地允许的块大小)的大小。
b.在一个示例中,当对于特定块尺寸(或具有特定编解码信息的块)禁用交织预测时,可以采用原始预测方法。
i.替代地,对于这种块可以直接禁用仿射模式。
c.在一个示例中,当W>T1且H>T2时,不可以使用交织预测。例如,T1=T2=64;
d.在一个示例中,当W>T1或H>T2时,不可以使用交织预测。例如,T1=T2=64;
e.在一个示例中,当W*H>T时,不可以使用交织预测。例如,T=64*64;
f.在一个示例中,当W<T1且H<T2时,不可以使用交织预测。例如,T1=T2=16;
g.在一个示例中,当W<T1或H>T2时,不可以使用交织预测。例如,T1=T2=16;
h.在一个示例中,当W*H<T时,不可以使用交织预测。例如,T=16*16;
i.在一个示例中,对于不位于块边界处的子块(例如,编解码单元),可以对此子块禁用交织仿射。替代地,此外,使用原始仿射预测方法的预测结果可以直接用作此子块的最终预测。
j.在一个示例中,当W>T1且H>T2时,以不同方式使用交织预测。例如,T1=T2=64;
k.在一个示例中,当W>T1或H>T2时,以不同方式使用交织预测。例如,T1=T2=64;
l.在一个示例中,当W*H>T时,以不同方式使用交织预测。例如,T=64*64;
m.在一个示例中,当W<T1且H<T2时,以不同方式使用交织预测。例如,T1=T2=16;
n.在一个示例中,当W<T1或H>T2时,以不同方式使用交织预测。例如,T1=T2=16;
o.在一个示例中,当W*H<T时,以不同方式使用交织预测。例如,T=16*16;
p.在一个示例中,当H>X(例如H等于128,X=64)时,交织预测不应用于属于跨当前块的上W*(H/2)分割和下W*(H/2)分割的子块的样点;
q.在一个示例中,当W>X(例如W等于128,X=64),交织预测不应用于属于跨当前块的左(W/2)*H分割和右(W/2)*H分割的子块的样点;
r.在一个示例中,当W>X且H>Y(例如W=H=128,X=Y=64)时,
i.交织预测不应用于属于跨当前块的左(W/2)*H分割和右(W/2)*H分割的子块的样点;
ii.交织预测不应用于属于跨当前块的上W*(H/2)分割和下W*(H/2)分割的子块的样点;
s.在一个示例中,仅对于具有宽度和/或高度的特定集合的块启用交织预测。
t.在一个示例中,仅对于具有宽度和/或高度的特定集合的块禁用交织预测。
u.在一个示例中,交织预测仅用于特定类型的图片/条带/片组/片/或其他类型的视频数据单元。
i.例如,交织预测仅用于P图片或B图片;
ii.例如,标志在图片/条带/片组/片的报头中被信令通知以指示是否可以使用交织预测。
l.例如,仅如果允许仿射预测,才信令通知该标志。
项目17:提出信令通知消息以指示是否应用是否/如何应用功能交织预测与宽度和高度之间的从属性。该消息可以在SPS/VPS/PPS/条带报头/图片报头/片/片组报头/CTU/CTU行/多个CTU/或其他类型的视频处理单元中被信令通知。
项目18:在一个示例中,当使用交织预测时,双向预测不被允许。
a.例如,当使用交织预测时,指示是否使用双向预测的索引不被信令通知。
b.替代地,双向预测是否不被允许的指示可以在SPS/VPS/PPS/条带报头/图片报头/片/片组报头/CTU/CTU行/多个CTU中被信令通知。
项目19:提出还基于从两个或更多个样式导出的运动信息细化子块的运动信息。
a.在一个示例中,细化运动信息可以用于预测以下待编解码的块。
b.在一个示例中,细化运动信息可以在滤波过程中被采用,诸如解块、SAO、ALF。
c.是否储存细化的信息可以基于子块相对于整个块/CTU/CTU行/片/条带/片组/图片的位置。
d.是否储存细化的信息可以基于当前块和/或相邻块的编解码模式。
e.是否储存细化的信息可以基于当前块的尺寸。
f.是否储存细化的信息可以基于图片/条带类型/参考图片列表等。
项目20:提出是否和/或如何应用解块过程或其他种类的滤波过程(诸如SAO,适应性回路滤波)可以取决于是否应用交织预测。
a.在一个示例中,如果边缘在以块的另一细分样式的子块之内,则对于块的一个细分样式中的两个子块之间的边缘上不进行解块。
b.在一个示例中,如果边缘在以块的另一细分样式的子块之内,则在块的一个细分样式中的两个子块之间的边缘上弱化解块。
i.在一个示例中,VVC解块过程中所描述的bS[xDi][yDj]对这样的边缘降低。
ii.在一个示例中,VVC解块过程中所描述的β对这样的边缘降低。
iii.在一个示例中,VVC解块过程中所描述的对这样的边缘降低。
iv.在一个示例中,VVC解块过程中所描述的tC对这样的边缘降低。
c.在一个示例中,如果边缘在以块的另一细分样式的子块之内,则在块的一个细分样式中的两个子块之间的边缘上强化解块。
i.在一个示例中,VVC解块过程中所描述的bS[xDi][yDj]对这样的边缘提高。
ii.在一个示例中,VVC解块过程中所描述的β对这样的边缘提高。
iii.在一个示例中,VVC解块过程中所描述的对这样的边缘提高。
iv.在一个示例中,VVC解块过程中所描述的tC对这样的边缘提高。
项目21:提出是否和/或如何对块/子块应用局部照明补偿或加权预测可以取决于是否应用交织预测。
a.在一个示例中,当一个块是用交织预测模式编解码时,其不被允许局部照明补偿或加权预测。
b.替代地,此外,如果交织预测应用于块/子块,则不需要信令通知启用局部照明补偿的指示。
项目22:提出当加权预测应用于一个块或子块时,双向光流(BIO)可以被跳过。
a.在一个示例中,BIO可以应用于具有加权预测的块。
b.在一个示例中,BIO可以应用于具有加权预测的块,然而,应满足某些条件。
i.在一个示例中,要求至少一个参数应在一个范围内,或等于特定值。
ii.在一个示例中,可以应用某些参考图片限制。
上述实施例和示例可以实现在如接下来描述的图19至[]的方法的上下文中。
图19示出了基于本公开技术的一些实现方式的视频处理的方法1900的示例性流程图。方法1900包含,在1902处,导出属于视频的当前视频块的第一细分样式的子块的第一集合的一个或多个运动矢量。方法1900包含,在1904,基于一个或多个运动矢量,进行当前视频块与视频的编解码表示之间的转换。
图20示出了基于本公开技术的一些实现方式的视频处理的方法2000的示例性流程图。方法2000包含,在2002,细分第一颜色分量的视频块以获得第一颜色分量的第一集合子块。方法2000还包含,在2004,细分第二颜色分量的对应的视频块以获得第二颜色分量的子块的第二集合。方法2000还包含,在2006,基于子块的第二集合的一个或多个运动矢量导出子块的第一集合的一个或多个运动矢量。方法2000还包含,在2008,基于子块的第一集合和第二集合的一个或多个运动矢量,进行视频块与视频的编解码表示之间的转换。
图21A示出了基于本公开技术的一些实现方式的视频处理的方法2110的示例性流程图。方法2110包含,在2112,对于视频的当前视频块与视频的比特流表示之间的转换,根据依据当前视频块的高度(H)或宽度(W)的多个细分样式将当前视频块细分为分割。方法2110还包含,在2114,使用多个分割的交织预测进行所述转换。
图21B示出了基于本公开技术的一些实现方式的视频处理的方法2120的示例性流程图。方法2120包含,在2122,确定应用对视频的当前视频块的预测,预测包含根据细分样式将当前视频块细分为子块。方法2120还包含,在2124,确定应用位移位以在当前视频块的子块上生成预测块。方法2120还包含,在2126,进行当前视频块与视频的编解码表示之间的转换。
图21C示出了基于本公开技术的一些实现方式的视频处理的方法2130的示例性流程图。方法2130包含,在2132,基于视频的当前视频块的特性,确定是否将交织预测工具用于当前块与视频的编解码表示之间的转换。方法2130还包含,在2134,根据所述确定进行所述转换。在一些实现方式中,一经确定当前视频块不满足条件的特性,通过禁用仿射预测工具和/或交织预测工具的使用而进行转换。在一些实现方式中,一经确定当前视频块的特性满足条件,通过使用仿射预测工具和/或交织预测工具而进行转换。
图21D示出了基于本公开技术的一些实现方式的视频处理的方法2140的示例性流程图。方法2140包含,在2142,确定交织预测要被应用于视频的当前视频块。方法2140还包含,在2144,基于确定要应用交织预测,对当前视频块禁用双向预测。方法2140还包含,在2146,进行当前视频块与视频的编解码表示之间的转换。
图22A示出了基于本公开技术的一些实现方式的视频处理的方法2210的示例性流程图。方法2210包含,在2212,对于视频的当前视频块与视频的编解码表示之间的转换,确定当前视频块的细化运动信息。方法2210还包含,在2214,使用细化运动信息进行转换。在一些实现方式中,基于交织预测工具生成细化运动信息,其中当前视频块的分割的运动信息使用多个样式生成,并且当前视频块的细化运动信息基于是否满足条件而用于后续处理或被选择性储存。
图22B示出了基于本公开技术的一些实现方式的视频处理的方法2220的示例性流程图。方法2220包含,在2222,确定交织预测是否应用于视频的当前视频块。方法2220还包含,在2224,基于对交织预测是否应用于当前视频块的确定而确定对当前视频块使用滤波过程。方法2220还包含,在2226,基于确定滤波过程的使用而进行当前视频块与视频的编解码表示之间的转换。
图22C示出了基于本公开技术的一些实现方式的视频处理的方法2230的示例性流程图。方法2230包含,在2232,确定交织预测是否应用于视频的当前视频块。方法2230还包含,在2234,基于对交织预测的使用的确定而确定是否对当前视频块应用局部照明补偿或加权预测。方法2230还包含,在2236,基于对局部照明补偿或加权预测的使用的确定而进行当前视频块与视频的编解码表示之间的转换。
图22D示出了基于本公开技术的一些实现方式的视频处理的方法2240的示例性流程图。方法2240包含,在2242,确定加权预测应用于视频的当前视频块或当前视频块的子块。方法2240还包含,在2244,通过禁用双向光流(BDOF)技术而进行当前视频块与视频的编解码表示之间的转换。
在以上所讨论的方法中,可以实现部分交织。使用该方案,预测样点的第一子集中的样点被计算为第一中间预测块的加权组合,并且预测样点的第二子集中的样点从基于子块的预测复制,其中第一子集和第二子集是基于细分样式。第一子集和第二子集可以一起构成整个预测块,例如,当前正被处理的块。如图15A-15D中所示,在各种示例中,从交织中排除的第二子集可以由(a)角部子块或(b)子块的最顶部行和子块的最底部行或(c)子块的最左列或子块的最右列构成。当前正在处理的块的大小可以用作决定是否从交织预测中排除某些子块的条件。
如在本文件中进一步描述的,编码过程可以避免检查从母块细分的块的仿射模式,其中母块本身用不同于仿射模式的模式编码。
在一些实施例中,视频解码器设备可实施视频解码的方法,其中如本文中所描述的经改善的基于块的运动预测用于视频解码。该方法可以包含使用来自视频帧的像素集合来形成视频的块。可以根据第一样式将块细分为子块的第一集合。第一中间预测块可以对应于子块的第一集合。该块可以包含根据第二样式的子块的第二集合。第二集合中的至少一个子块具有与第一集合中的子块不同的大小。该方法还可以基于第一中间预测块和从子块的第二集合生成的第二中间预测块来确定预测块。该方法的其他特征可以类似于上述方法1900。
在一些实施例中,视频解码的解码器侧方法可以使用基于块的运动预测以用于通过使用用于预测的视频帧的块来改善视频质量,其中块对应于像素块的集合。可以基于块的大小或者来自与块在空域上或时域上相邻的另一块的信息将块细分为多个子块,其中多个子块中的至少一个子块具有与其他子块不同的大小。解码器可以使用通过将编解码算法应用于多个子块而生成的运动矢量预测。关于图2000和对应的描述描述了该方法的其他特征。
视频处理的又另一方法包含导出当前视频块的子块的第一集合的一个或多个运动矢量,其中子块的第一集合中的每一个具有第一细分样式,以及基于一个或多个运动矢量重构当前视频块。
在一些实施例中,导出一个或多个运动矢量是基于仿射模型。
在一些实施例中,导出一个或多个运动矢量是基于子块的第二集合中的一个或多个的运动矢量,子块的第二集合中的每一个具有与第一细分样式不同的第二细分样式,并且子块的第二集合中的一个或多个与子块的第一集合中的至少一个重叠。例如,子块的第一集合中的一个或多个运动矢量包含MV1,子块的第二集合中的一个或多个的运动矢量包含MV01,MV02,MV03,…和MV0K,并且K是正整数。在示例中,MV1=f(MV01,MV02,MV03,…,MV0K)。在另一示例中,f(·)是线性函数。在又一示例中,f(·)是非线性函数。在又一示例中,MV1=average(MV01,MV02,MV03,…,MV0K),并且average(·)是平均运算。在又一示例中,MV1=median(MV01,MV02,MV03,…,MV0K),并且median(·)是计算中位数值的运算。在又一示例中,MV1=min(MV01,MV02,MV03,…,MV0K),并且min(·)是从多个输入值中选择最小值的运算。在又一示例中,MV1=MaxAbs(MV01,MV02,MV03,…,MV0K),并且MaxAbs(·)是从多个输入值选择最大绝对值的运算。
在一些实施例中,子块的第一集合对应于第一颜色分量,导出一个或多个运动矢量是基于子块的第二集合中的一个或多个的运动矢量,子块的第二集合中的每一个具有与第一细分样式不同的第二细分样式,子块的第二集合对应于与第一颜色分量不同的第二颜色分量。在示例中,第一颜色分量在第三颜色分量之后被编解码或解码,并且其中第三颜色分量是Cr、Cb、U、V、R或B中的一个。在另一个示例中,第二颜色分量在第三颜色分量之前被编解码或解码,并且其中第三颜色分量是Y或G。在又一示例中,导出一个或多个运动矢量还基于子块的第二集合中的至少一个的颜色格式。在又一个示例中,颜色格式是4:2:0、4:2:2或4:4:4。
在一些实施例中,第一细分样式是基于当前视频块的高度或宽度。
图23是视频处理设备2300的框图。设备2300可用于实现本文描述的一个或多个方法。设备2300可以实施为智能手机、平板计算机、计算机、物联网(IoT)接收器等。设备2300可以包含一个或多个处理器2302、一个或多个存储器2304和视频处理硬件2306。(多个)处理器2302可以被配置为实现本文件中描述的一种或多种方法(包含但不限于图19至22D所示的方法)。存储器(多个存储器)2304可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件2306可用于在硬件电路中实现本文件中描述的一些技术。
图24是其中可以实现本公开技术的视频处理系统的框图的另一示例。图24是框图,其示出了示例性视频处理系统3100,其中可以实现本文所公开的各种技术。各种实现方式可以包含系统3100的一些或全部组件。系统3100可以包含用于接收视频内容的输入3102。视频内容可以以原始或未压缩格式接收,例如8或10比特多分量像素值,或者可以是压缩或编码格式。输入3102可以表示网络接口、外围总线接口或存储接口。网络接口的示例包含诸如以太网,无源光网络(PON)等的有线接口和诸如Wi-Fi或蜂窝接口的无线接口。
系统3100可以包含编码组件3104,其可以实现本文件中描述的各种编码或编码方法。编码组件3104可以将来自输入3102的视频的平均比特率减小到编码组件3104的输出,以产生视频的编码表示。因此,编码技术有时被称为视频压缩或视频转码技术。编码组件3104的输出可以储存或者经由连接的通信传输,如组件3106所表示的。在输入3102处接收的视频的存储或通信的比特流(或编码)表示可以由组件3108使用,以生成发送到显示接口3110的像素值或可显示视频。从比特流表示生成用户可视视频的过程有时被称为视频解压缩。此外,虽然某些视频处理操作被称为“编码”操作或工具,但是应当理解,编码工具或操作在编码器处使用,并且逆转编码结果的相应的解码工具或操作将由解码器进行。
外围总线接口或显示接口的示例可以包含通用串行总线(USB)或高分辨率多媒体接口(HDMI)或显示端口(Displayport)等。存储接口的示例包含SATA(串行先进技术附件)、PCI、IDE接口等。本文件中描述的技术可以实施为各种电子设备,诸如移动电话、膝上型计算机、智能电话或能够执行数字数据处理和/或视频显示的其他装置。
在一些实施例中,视频编解码方法可以使用实现在关于图23或24描述的硬件平台上的设备实现。
可以使用以下基于条款的格式来描述各种技术和实施例。
条款的第一集合描述了在之前章节中列出的所公开技术的某些特征和方面,包含例如项目1。
1.一种视频处理的方法,包括:导出属于视频的当前视频块的第一细分样式的子块的第一集合的一个或多个运动矢量;以及基于一个或多个运动矢量进行当前视频块与视频的编解码表示之间的转换。
2.如条款1所述的方法,其中导出一个或多个运动矢量是基于仿射模型。
3.如条款1所述的方法,其中导出一个或多个运动矢量是基于子块的第二集合的运动矢量,其中子块的第二集合具有与第一细分样式不同的第二细分样式。
4.如条款3所述的方法,其中子块的第二集合与子块的第一集合重叠。
5.如条款3所述的方法,其中子块的第一集合的一个或多个运动矢量包括MV1,并且子块的第二集合的运动矢量包括MV01,MV02,MV03,…和MV0K,并且其中K是正整数。
6.如条款5所述的方法,其中MV1=f(MV01,MV02,MV03,…,MV0K)。
7.如条款6所述的方法,其中f(·)是线性函数。
8.如条款6所述的方法,其中f(·)是非线性函数。
9.如条款5所述的方法,其中MV1=average(MV01,MV02,MV03,…,MV0K),其中average(·)是平均运算。
10.如条款5所述的方法,其中MV1=median(MV01,MV02,MV03,…,MV0K),其中median(·)是计算中位数值的运算。
11.如条款5所述的方法,其中MV1=max(MV01,MV02,MV03,…,MV0K),其中max(·)是从多个输入值选择最大值的运算。
12.如条款5所述的方法,其中MV1=min(MV01,MV02,MV03,…,MV0K),其中min(·)是从多个输入值选择最小值的运算。
13.如条款5所述的方法,其中MV1=MaxAbs(MV01,MV02,MV03,…,MV0K),其中MaxAbs(·)是从多个输入值选择最大绝对值的运算。
14.如条款5所述的方法,其中MV1=MinAbs(MV01,MV02,MV03,…,MV0K),其中MinAbs(·)是从多个输入值选择最小绝对值的运算。
15.如条款1至14中任一项所述的方法,其中进行所述转换包含从当前视频块生成编解码表示。
16.如条款1至14中任一项所述的方法,其中进行所述转换包含从编解码表示生成当前视频块。
17.一种视频系统中的设备,包括处理器和其上具有指令的非瞬态存储器,其中当由所述处理器执行所述指令时,使所述处理器实现条款1至16中的一个或多个所述的方法。
18、一种计算机程序产品,储存在非瞬态计算机可读介质上,所述计算机程序产品包含用于进行权利要求1至16中的一个或多个所述的方法的程序代码。
条款的第二集合描述了在之前章节中列出的所公开技术的某些特征和方面,包含例如项目14。
条款的第三集合描述了在之前章节中列出的所公开技术的某些特征和方面,包含例如项目13、15、16、17和18。
1、一种视频处理的方法,包括:
对于视频的当前视频块与视频的比特流表示之间的转换,依据根据所述当前视频块的高度(H)或宽度(W)的多个细分样式将当前视频块细分为分割;以及
使用所述多个分割的交织预测进行所述转换。
2、如条款1所述的方法,其中在W>T1且H>T2,T1,T2为整数值的情况下根据两个细分样式细分所述当前视频块。
3、如条款2所述的方法,其中T1=T2=4。
4、如条款1所述的方法,其中在H<=T2,T2为整数的情况下根据两个细分样式细分所述当前视频块。
5、如条款4所述的方法,其中T2=4。
6、如条款1所述的方法,其中在W<=T1,T1为整数的情况下根据两个细分样式细分所述当前视频块。
7、如条款6所述的方法,其中T1=4。
8、一种视频处理的方法,包括:
确定对视频的当前视频块应用预测,所述预测包含根据细分样式将所述当前视频块细分为子块;
确定应用位移位以在所述当前视频块的子块上生成预测块;以及
进行所述当前视频块与所述视频的编解码表示之间的转换。
9、如条款8所述的方法,其中将双向预测或单向预测应用于所述当前视频块。
10、如条款8所述的方法,其中与所述当前视频块相关的一个或多个运动矢量具有内部位深度,所述内部位深度取决于所述预测的权重值。
11、如条款8所述的方法,其中,对于所述当前视频块的参考图片列表X,PX(x,y)=Shift(W0(x,y)*PX0(x,y)+W1(x,y)*PX1(x,y),SW),其中PX(x,y)是作为0或1的所述列表X的预测,PX0(x,y)和PX1(x,y)分别是列表X的使用细分样式0和细分样式1的预测,W0和W1是表示所述交织预测的权重值的整数,SW表示交织权重值的精度,并且Shift(x,n)定义为Shift(x,n)=(x+offset0)>>n。
12、如条款8所述的方法,其中最终预测值被导出为P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB),其中Wb0和Wb1是表示所述双向预测的权重值的整数,P0(x,y)和P1(x,y)分别表示列表0和列表1的预测,SWB是加权的双向预测的精度,并且Shift(x,n)定义为Shift(x,n)=(x+offset0)>>n。
13、如条款12所述的方法,其中,Wb0=Wb1=SWB=1。
14、如条款8所述的方法,其中应用插值滤波以生成预测块,并且最终预测值被导出为P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB+PB),其中Wb0和Wb1是表示交织预测的权重值的整数,SWB是加权的双向预测的精度,PB是来自所述插值滤波的附加精度,并且Shift(x,n)定义为Shift(x,n)=(x+offset0)>>n。
15、如条款14所述的方法,其中PX0(x,y)和PX1(x,y)分别是参考图片列表X的使用细分样式0和细分样式1的预测,并且其中PX0(x,y)和PX1(x,y)被右移位。
16、如条款8所述的方法,其中所述双向预测对两个参考预测块使用不同权重因数。
17、如条款11或14所述的方法,其中PX0(x,y)被修改为PX0(x,y)=Shift(PX0(x,y),M)和/或PX1(x,y)被修改为PX1(x,y)=Shift(PX1(x,y),M),其中M是整数,并且P(x,y)=Shift(Wb0(x,y)*P0(x,y)+Wb1(x,y)*P1(x,y),SWB+PB-M)。
18、一种视频处理的方法,包括:
基于视频的当前视频块的特性,确定是否将交织预测工具用于所述当前块与所述视频的编解码表示之间的转换;以及
根据所述确定进行所述转换,
其中,一经确定所述当前视频块的特性不满足条件,通过禁用仿射预测工具和/或所述交织预测工具的使用而进行所述转换。
19、一种视频处理的方法,包括:
基于视频的当前视频块的特性,确定是否将交织预测工具用于所述当前块与所述视频的编解码表示之间的转换;以及
根据所述确定进行所述转换,并且
其中,一经确定所述当前视频块的特性满足条件,通过使用仿射预测工具和/或所述交织预测工具来进行所述转换。
20、如条款18或19所述的方法,其中所述当前视频块的特性包含所述当前视频块的宽度或高度中的至少一个。
21、如条款18或19所述的方法,还包括:
确定视频处理数据单元(VPDU)的大小,并且其中确定是否使用所述交织预测工具是基于所述VPDU的大小。
22、如条款18所述的方法,其中与所述交织预测不同的预测方法被应用于所述当前视频块。
23、如条款18所述的方法,其中所述当前视频块的宽度和高度分别是W和H,并且T,T1,T2为整数值,并且其中所述交织预测对于特定条件被禁用,所述特定条件包含以下之一:
i.W>T1且H>T2,
ii.W>T1或H>T2,
iii.W x H>T,
iv.W<T1且H<T2,或
v.W<T1或H<T2
vi.W*H<T。
24、如条款18或19所述的方法,还包括:
确定所述当前视频块的第一子块不位于块边界处;以及
一经确定所述第一子块不位于所述块边界处,对所述第一子块禁用交织仿射技术。
25、如条款24所述的方法,其中来自原始仿射预测技术的预测结果被用于所述第一子块的最终预测。
26、如条款18所述的方法,其中所述当前视频块的宽度和高度分别是W和H,并且T,T1,T2是整数值,并且其中所述交织预测被用于特定条件,所述特定条件包含以下之一:
i.W>T1且H>T2,
ii.W>T1或H>T2,
iii.W x H>T,
iv.W<T1且H<T2,或
v.W<T1或H<T2
vi.W*H<T。
27、如条款18所述的方法,其中在所述当前视频块的高度(H)大于X,X为整数的情况下,所述交织预测不被应用于属于跨所述当前视频块的上W*(H/2)分割和下W*(H/2)分割的子块的样点。
28、如条款18所述的方法,其中在所述当前视频块的宽度(W)大于X,X为整数的情况下,所述交织预测不被应用于属于跨所述当前视频块的左(W/2)*H分割和右(W/2)*H分割两者的子块的样点。
29、如条款27或28所述的方法,其中X=64。
30、如条款19所述的方法,其中对于包含所述当前视频块的特定类型的视频数据单元允许所述交织预测,所述视频数据单元包含图片、条带、片组或片。
31、如条款19所述的方法,其中所述交织预测用于P图片或B图片。
32、如条款18或19所述的方法,其中指示使用还是禁用所述交织预测工具的标志在图片、条带、片组或片的报头中信令通知。
33、如条款32所述的方法,其中基于对于所述当前视频块是否允许仿射预测而信令通知所述标志。
34、如条款18或19所述的方法,其中在视频处理单元中信令通知消息以指示是否使用所述当前视频块的特性,所述视频处理单元包含视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带报头、图片报头、片组报头、片、编解码树单元(CTU),或CTU行。
35、一种视频处理的方法,包括:
确定交织预测要被应用于视频的当前视频块;
基于确定交织预测要被应用,对于所述当前视频块禁用双向预测;以及
进行所述当前视频块与所述视频的编解码表示之间的转换。
36、如条款35所述的方法,其中指示使用双向预测的索引不被信令通知。
37、如条款36所述的方法,其中基于在视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、条带报头、图片报头、片组报头、片、编解码树单元(CTU)、CTU行,或多个CTU中信令通知的指示而禁用双向预测。
38、如条款1至37中任一项所述的方法,其中所述转换包括从所述比特流表示生成所述当前视频块的像素值。
39、如条款1至37中任一项所述的方法,其中所述转换包括从所述当前视频块的像素值生成所述比特流表示。
40、一种视频系统中的设备,包括处理器和其上具有指令的非瞬态存储器,其中当由所述处理器执行所述指令时,使所述处理器实现条款1至39中的一个或多个所述的方法。
41、一种计算机程序产品,储存在非瞬态计算机可读介质上,所述计算机程序产品包含用于进行条款1至39中的一个或多个所述的方法的程序代码。
条款的第四集合描述了在之前章节中列出的所公开技术的某些特征和方面,包含例如项目19、20、21和22。
1、一种视频处理的方法,包括:
对于视频的当前视频块与视频的编解码表示之间的转换,确定所述当前视频块的至少一个子块的细化运动信息;以及
使用所述细化运动信息进行所述转换,
其中基于交织预测工具生成所述细化运动信息,在所述交织预测工具中,使用多个样式生成所述当前视频块的分割的运动信息,并且
其中所述当前视频块的细化运动信息基于是否满足条件而被用于后续处理或选择性储存。
2、如条款1所述的方法,其中所述后续处理是要在所述当前视频块之后转换的后续块的转换。
3、如条款1所述的方法,其中所述后续处理是所述当前视频块的滤波过程。
4、如条款1所述的方法,其中基于子块的位置确定是否满足所述条件,所述位置与所述视频中的块、CTU、CTU行、片、条带、片组或图片有关。
5、如条款1所述的方法,其中基于所述当前视频块或所述当前视频块的相邻视频块中的至少一个的编解码模式确定是否满足所述条件。
6、如条款1所述的方法,其中基于所述当前视频块的尺寸确定是否满足所述条件。
7、如条款1所述的方法,其中基于与所述当前视频块相关的图片、条带类型或参考图片列表中的至少一个确定是否满足所述条件。
8、一种视频处理的方法,包括:
确定交织预测是否应用于视频的当前视频块;
基于确定所述交织预测是否应用于所述当前视频块而确定对所述当前视频块使用滤波过程;以及
基于对所述滤波过程的使用的确定而进行所述当前视频块与所述视频的编解码表示之间的转换。
9、如条款8所述的方法,其中所述滤波过程包含解块过程,样点适应性偏移(SAO)滤波或适应性回路滤波。
10、如条款8所述的方法,还包括:
确定与如何应用所述滤波过程相关的参数,并且其中基于所述滤波过程的参数进行所述转换。
11、如条款8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,不在以所述当前视频块的细分样式的两个子块之间的边缘上应用所述滤波过程。
12、如条款8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,所述滤波过程在以所述当前视频块的细分样式的两个子块之间的边缘的较弱级中。
13、如条款9所述的方法,其中作为所述解块过程中使用的变量bS[xDi][yDj],β,Δ,或tC中的至少一个对于所述边缘具有较小值。
14、如条款8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,所述滤波过程在以所述当前视频块的细分样式的两个子块之间的边缘的较强级中。
15、如条款14所述的方法,其中作为所述解块过程中使用的变量bS[xDi][yDj],β,Δ,或tC中的至少一个对于所述边缘具有较大值。
16、一种视频处理的方法,包括:
确定交织预测是否应用于视频的当前视频块;
基于确定所述交织预测的使用,确定是否对所述当前视频块使用局部照明补偿或加权预测;以及
基于对所述局部照明补偿或所述加权预测的使用的确定,进行所述当前视频块与所述视频的编解码表示之间的转换。
17、如条款16所述的方法,还包括:
确定与如何应用所述局部照明补偿或所述加权预测相关的参数,并且其中基于所述局部照明补偿或所述加权预测的参数进行所述转换。
18、如条款16所述的方法,其中一经确定所述交织预测被应用于所述当前视频块,所述局部照明补偿或加权预测被禁用。
19、如条款16所述的方法,其中对于所述当前视频块或所述当前视频块的应用所述交织预测的子块,指示所述局部照明补偿或所述加权预测被启用的指示不被信令通知。
20、一种视频处理的方法,包括:
确定加权预测应用于视频的当前视频块或所述当前视频块的子块;以及
通过禁用双向光流(BDOF)技术而进行所述当前视频块与所述视频的编解码表示之间的转换。
21、如条款20所述的方法,其中当满足特定条件时,所述BDOF技术应用于具有加权预测的块。
22、如条款21所述的方法,其中所述BDOF技术的参数在阈值范围内或等于特定值。
23、如条款22所述的方法,其中特定参考图片限制被应用于所述当前视频块。
24、条款1至23中任一项所述的方法,其中所述转换包括从所述比特流表示生成所述当前视频块的像素值。
25、如条款1至23中任一项所述的方法,其中所述转换包括从所述当前视频块的像素值生成所述比特流表示。
26、一种视频系统中的设备,包括处理器和其上具有指令的非瞬态存储器,其中当由所述处理器执行所述指令时,使所述处理器实现条款1至25中的一个或多个所述的方法。
27、一种计算机程序产品,储存在非瞬态计算机可读介质上,所述计算机程序产品包含用于进行条款1至25中的一个或多个所述的方法的程序代码。
从前述内容可以理解,本文已经出于说明的目的描述了本公开技术的具体实施例,但是在不脱离本发明的范围的情况下可以进行各种修改。相应地,除了所附权利要求之外,本发明所公开的技术不受限制。
本文件中描述的公开的和其他实施例、模块和功能操作可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包含本文件中公开的结构及其结构等同,或者它们中的一个或多个的组合。所公开的和其他实施例可以实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的一个或多个计算机程序指令模块,用于由数据处理设备执行或控制数据处理设备的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器装置、影响机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“数据处理设备”包含用于处理数据的全部设备、装置和机器,包含例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该设备还可以包含为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统,或者它们中的一个或多个的组合。传播信令是人工生成的信号,例如机器生成的电信号、光信号或电磁信号,其被生成以对信息进行编码以便传输到合适的接收器设备。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以用任何形式的编程语言编写,包含编译或解释语言,并且它可以以任何形式部署,包含如独立程序或适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在文件的保存其他程序或数据的一部分(例如,存储在标记语言文件中的一个或多个脚本)中,存储在专用于所讨论的程序的单个文件中,或存储在多个协调文件中(例如,存储一个或多个模块、子程序或代码的部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。
本文件中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且装置也可以实现为专用逻辑电路。
适合于执行计算机程序的处理器包含例如通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包含用于存储数据的一个或多个大容量装置设备(例如磁盘、磁光盘或光盘)或与之可操作地耦合以从一个或多个大容量装置设备接收数据或将数据传输到一个或多个大容量装置设备。但是,计算机不需要这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包含全部形式的非易失性存储器、介质和存储器装置,包含例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及,CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
虽然本专利文件包含许多细节,但这些细节不应被解释为对任何发明或可要求保护的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在单独的实施例的上下文中在本专利文件中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在某些情况下可以从组合中去除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解成为了实现期望的结果要求以所示的特定顺序或按顺序执行这样的操作,或者执行全部示出的操作。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在全部实施例中都需要这种分离。
仅描述了几个实现方式和示例,并且可以基于本专利文件中描述和示出的内容来进行其他实现方式、增强和变化。
Claims (27)
1.一种视频处理的方法,包括:
对于视频的当前视频块与视频的编解码表示之间的转换,确定所述当前视频块的至少一个子块的细化运动信息;以及
使用所述细化运动信息进行所述转换,
其中基于交织预测工具生成所述细化运动信息,在所述交织预测工具中,使用多个样式生成所述当前视频块的分割的运动信息,并且
其中所述当前视频块的细化运动信息基于是否满足条件而被用于后续处理或选择性储存。
2.如权利要求1所述的方法,其中所述后续处理是要在所述当前视频块之后转换的后续块的转换。
3.如权利要求1所述的方法,其中所述后续处理是所述当前视频块的滤波过程。
4.如权利要求1所述的方法,其中基于子块的位置确定是否满足所述条件,所述位置与所述视频中的块、CTU、CTU行、片、条带、片组或图片有关。
5.如权利要求1所述的方法,其中基于所述当前视频块或所述当前视频块的相邻视频块中的至少一个的编解码模式确定是否满足所述条件。
6.如权利要求1所述的方法,其中基于所述当前视频块的尺寸确定是否满足所述条件。
7.如权利要求1所述的方法,其中基于与所述当前视频块相关的图片、条带类型或参考图片列表中的至少一个确定是否满足所述条件。
8.一种视频处理的方法,包括:
确定交织预测是否应用于视频的当前视频块;
基于确定所述交织预测是否应用于所述当前视频块而确定对所述当前视频块使用滤波过程;以及
基于对所述滤波过程的使用的确定而进行所述当前视频块与所述视频的编解码表示之间的转换。
9.如权利要求8所述的方法,其中所述滤波过程包含解块过程、样点适应性偏移(SAO)滤波或适应性回路滤波。
10.如权利要求8所述的方法,还包括:
确定与如何应用所述滤波过程相关的参数,并且其中基于所述滤波过程的参数进行所述转换。
11.如权利要求8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,不在以所述当前视频块的细分样式的两个子块之间的边缘上应用所述滤波过程。
12.如权利要求8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,所述滤波过程在以所述当前视频块的细分样式的两个子块之间的边缘的较弱级中。
13.如权利要求9所述的方法,其中作为所述解块过程中使用的变量bS[xDi][yDj],β,Δ,或tC中的至少一个对于所述边缘具有较小值。
14.如权利要求8所述的方法,其中在所述边缘在以所述当前视频块的另一细分样式的子块之内的情况下,所述滤波过程在以所述当前视频块的细分样式的两个子块之间的边缘的较强级中。
15.如权利要求14所述的方法,其中作为所述解块过程中使用的变量bS[xDi][yDj],β,Δ,或tC中的至少一个对于所述边缘具有较大值。
16.一种视频处理的方法,包括:
确定交织预测是否应用于视频的当前视频块;
基于确定所述交织预测的使用,确定是否对所述当前视频块使用局部照明补偿或加权预测;以及
基于对所述局部照明补偿或所述加权预测的使用的确定,进行所述当前视频块与所述视频的编解码表示之间的转换。
17.如权利要求16所述的方法,还包括:
确定与如何应用所述局部照明补偿或所述加权预测相关的参数,并且其中基于所述局部照明补偿或所述加权预测的参数进行所述转换。
18.如权利要求16所述的方法,其中一经确定所述交织预测被应用于所述当前视频块,所述局部照明补偿或加权预测被禁用。
19.如权利要求16所述的方法,其中对于所述当前视频块或所述当前视频块的应用所述交织预测的子块,指示所述局部照明补偿或所述加权预测被启用的指示不被信令通知。
20.一种视频处理的方法,包括:
确定加权预测应用于视频的当前视频块或所述当前视频块的子块;以及
通过禁用双向光流(BDOF)技术而进行所述当前视频块与所述视频的编解码表示之间的转换。
21.如权利要求20所述的方法,其中当满足特定条件时,所述BDOF技术应用于具有加权预测的块。
22.如权利要求21所述的方法,其中所述BDOF技术的参数在阈值范围内或等于特定值。
23.如权利要求22所述的方法,其中特定参考图片限制被应用于所述当前视频块。
24.权利要求1至23中任一项所述的方法,其中所述转换包括从所述比特流表示生成所述当前视频块的像素值。
25.如权利要求1至23中任一项所述的方法,其中所述转换包括从所述当前视频块的像素值生成所述比特流表示。
26.一种视频系统中的设备,包括处理器和其上具有指令的非瞬态存储器,其中当由所述处理器执行所述指令时,使所述处理器实现权利要求1至25中的一个或多个所述的方法。
27.一种计算机程序产品,储存在非瞬态计算机可读介质上,所述计算机程序产品包含用于进行权利要求1至25中的一个或多个所述的方法的程序代码。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2019/071507 | 2019-01-13 | ||
CN2019071507 | 2019-01-13 | ||
CN2019071576 | 2019-01-14 | ||
CNPCT/CN2019/071576 | 2019-01-14 | ||
PCT/CN2020/071660 WO2020143826A1 (en) | 2019-01-13 | 2020-01-13 | Interaction between interweaved prediction and other coding tools |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113348669A true CN113348669A (zh) | 2021-09-03 |
Family
ID=71520992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080008739.0A Pending CN113348669A (zh) | 2019-01-13 | 2020-01-13 | 交织预测和其他编解码工具之间的交互 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113348669A (zh) |
WO (1) | WO2020143826A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030031258A1 (en) * | 2001-08-07 | 2003-02-13 | Chun Wang | Tiled memory configuration for mapping video data and method thereof |
US20150350687A1 (en) * | 2014-05-29 | 2015-12-03 | Apple Inc. | In loop chroma deblocking filter |
US20160100163A1 (en) * | 2014-10-07 | 2016-04-07 | Qualcomm Incorporated | Deblock filtering for intra block copying |
CN105580365A (zh) * | 2013-09-26 | 2016-05-11 | 高通股份有限公司 | Hevc中的基于子预测单元(pu)的时间运动向量预测和3d-hevc中的子pu设计 |
CN107092787A (zh) * | 2017-04-10 | 2017-08-25 | 常州纺织服装职业技术学院 | 一种毛型织物坯布厚度的预测方法 |
WO2018054286A1 (en) * | 2016-09-20 | 2018-03-29 | Mediatek Inc. | Methods and apparatuses of sample adaptive offset processing for video coding |
US20180241998A1 (en) * | 2017-02-21 | 2018-08-23 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
WO2019004283A1 (ja) * | 2017-06-28 | 2019-01-03 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019229683A1 (en) * | 2018-05-31 | 2019-12-05 | Beijing Bytedance Network Technology Co., Ltd. | Concept of interweaved prediction |
CN110677674B (zh) * | 2018-07-01 | 2023-03-31 | 北京字节跳动网络技术有限公司 | 视频处理的方法、设备和非暂时性计算机可读介质 |
-
2020
- 2020-01-13 CN CN202080008739.0A patent/CN113348669A/zh active Pending
- 2020-01-13 WO PCT/CN2020/071660 patent/WO2020143826A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030031258A1 (en) * | 2001-08-07 | 2003-02-13 | Chun Wang | Tiled memory configuration for mapping video data and method thereof |
CN105580365A (zh) * | 2013-09-26 | 2016-05-11 | 高通股份有限公司 | Hevc中的基于子预测单元(pu)的时间运动向量预测和3d-hevc中的子pu设计 |
US20150350687A1 (en) * | 2014-05-29 | 2015-12-03 | Apple Inc. | In loop chroma deblocking filter |
US20160100163A1 (en) * | 2014-10-07 | 2016-04-07 | Qualcomm Incorporated | Deblock filtering for intra block copying |
WO2018054286A1 (en) * | 2016-09-20 | 2018-03-29 | Mediatek Inc. | Methods and apparatuses of sample adaptive offset processing for video coding |
US20180241998A1 (en) * | 2017-02-21 | 2018-08-23 | Qualcomm Incorporated | Deriving motion vector information at a video decoder |
CN107092787A (zh) * | 2017-04-10 | 2017-08-25 | 常州纺织服装职业技术学院 | 一种毛型织物坯布厚度的预测方法 |
WO2019004283A1 (ja) * | 2017-06-28 | 2019-01-03 | シャープ株式会社 | 動画像符号化装置及び動画像復号装置 |
Non-Patent Citations (3)
Title |
---|
JIANCONG (DANIEL) LUO ET AL: "CE9: Addressing the decoding latency issue for decoder-side motion vector refinement (DMVR)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAU, CN, 3–12 OCTOBER 2018,JVET-L0253, pages 1 - 3 * |
JINGYA LI ET AL: "CE2-related: Using shorter-tap filter for 4x4 sized partition", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 13TH MEETING: MARRAKECH, MA, 9–18 JAN. 2019,JVET-M0310, pages 1 - 3 * |
KAI ZHANG ET AL: "CE10: Interweaved Prediction for Affine Motion Compensation (Test 10.5.1 and Test 10.5.2)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: MACAO, CN, 3–12 OCT. 2018, JVET-L0269-V1, pages 1 - 3 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020143826A1 (en) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113170099B (zh) | 块内拷贝模式和帧间预测工具之间的交互 | |
US11070820B2 (en) | Condition dependent inter prediction with geometric partitioning | |
CN111436227B (zh) | 在视频处理中使用组合帧间-帧内预测 | |
CN113454999B (zh) | 划分模式之间的运动矢量推导 | |
CN111630858B (zh) | 组合帧间帧内预测模式中的权重 | |
CN110582000A (zh) | 改进的模式匹配的运动矢量推导 | |
CN113545065B (zh) | 转换后的单向预测候选的使用 | |
CN113597766A (zh) | 基于光流的预测细化的计算 | |
CN110740321B (zh) | 基于更新的运动矢量的运动预测 | |
CN113950838A (zh) | 基于子块的帧内块复制 | |
CN110876063B (zh) | 交织预测的快速编码方法 | |
CN110876064B (zh) | 部分交织的预测 | |
CN113545038B (zh) | 依赖于尺寸的帧间编解码 | |
CN113348669A (zh) | 交织预测和其他编解码工具之间的交互 | |
CN113261281A (zh) | 交织预测的使用 | |
CN113557720B (zh) | 视频处理方法、装置以及非暂态计算机可读介质 | |
CN113196772B (zh) | 块内拷贝模式和基于子块的运动矢量预测模式之间的交互 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |