CN114175637B - 自适应环路滤波中的分类 - Google Patents

自适应环路滤波中的分类 Download PDF

Info

Publication number
CN114175637B
CN114175637B CN202080051241.2A CN202080051241A CN114175637B CN 114175637 B CN114175637 B CN 114175637B CN 202080051241 A CN202080051241 A CN 202080051241A CN 114175637 B CN114175637 B CN 114175637B
Authority
CN
China
Prior art keywords
samples
boundary
block
region
picture
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
CN202080051241.2A
Other languages
English (en)
Other versions
CN114175637A (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
Priority to CN202311469215.3A priority Critical patent/CN117676168A/zh
Publication of CN114175637A publication Critical patent/CN114175637A/zh
Application granted granted Critical
Publication of CN114175637B publication Critical patent/CN114175637B/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/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/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/98Adaptive-dynamic-range coding [ADRC]

Landscapes

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

Abstract

一种视频处理方法,包括:对于视频中的视频图片的块和所述视频的比特流表示的转换,确定用于滤波处理中的分类操作的区域中的样点的子集的梯度。所述区域的维度为M×N,且所述块的维度为K×L,M、N、K、L为正整数。所述块位于所述区域内。该方法还包括基于所述确定执行所述转换。

Description

自适应环路滤波中的分类
相关申请的交叉引用
本申请基于2020年7月15日提交的国际专利申请No.PCT/CN2020/102003,其要求2019年7月15日提交的国际专利申请No.PCT/CN2019/096059、2019年7月17日提交的国际专利申请No.PCT/CN2019/096398的优先权和权益。上述申请全文以引用方式并入本文,作为本申请公开的一部分。
技术领域
该专利文档总体上涉及视频编码和解码技术。
背景技术
视频编解码标准主要是通过众所周知的ITU-T和ISO/IEC标准的发展而发展起来的。ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4Visual,这两个组织共同制作了H.262/MPEG-2视频和H.264/MPEG-4增强视频编解码(AVC)和H.265/高效视频编解码(HEVC)标准。从H.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测和变换编解码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索小组(JVET)。此后,JVET采纳了许多新方法并将其引入到名为“联合探索模型”(JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1SC29/WG11(MPEG)之间的JVET(联合视频专家团队)成立,以致力于目标是与HEVC相比其降低50%比特率的下一代多功能视频编解码(VVC)标准。
发明内容
使用本公开的视频编码、转码或解码技术,视频编码器或解码器的实施例可以处理编解码树块的虚拟边界,以提供更好的压缩效率和编码或解码工具的更简单实现。
在一个示例方面,公开了一种视频处理方法。该方法包括:对于视频中的视频图片的块和所述视频的比特流表示的转换,确定用于滤波处理中的分类操作的区域中的样点的子集的梯度。所述区域的维度为M×N,所述块的维度为K×L,M、N、K、L为正整数,并且所述块位于所述区域内。该方法还暴力基于所述确定执行所述转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:对于视频中的视频图片的块和所述视频的比特流表示的转换,确定自适应环路滤波处理中的统一填充操作,所述统一填充操作适用于位于所述视频图片的多个视频区域的360虚拟边界处的样点,而不考虑所述视频图片内360虚拟边界的位置。该方法还包括基于所述确定执行所述转换。
在另一个示例方面,公开了一种视频处理方法。该方法包括:在视频图片的视频块及其比特流表示之间执行转换。这里,使用编解码树块的逻辑分组来处理视频块,并且基于底部编解码树块的底部边界是否在视频图片的底部边界之外来对编解码树块进行处理。
在另一个示例方面,公开了另一种视频处理方法。该方法包括:基于当前视频块的编解码树块的条件,确定环路滤波期间虚拟样点的使用状态,以及在视频块和与虚拟样点的使用状态一致的视频块的比特流表示之间执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:在逻辑上分组为一个或多个视频条带或视频砖的视频图片、与所述视频图片的比特流表示之间的转换期间,确定禁用在自适应环路滤波处理中在另一个条带或砖中的样点的使用,以及执行与确定一致的转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:在视频图片的当前视频块与当前视频块的比特流表示之间的转换期间,确定当前视频块包括位于视频图片的视频单元的边界处的样点,以及基于所述确定执行转换,其中,执行所述转换包括使用对于视频图片中的所有边界类型都相同的统一方法,生成用于环路滤波处理的虚拟样点。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:在视频图片的当前视频块及其比特流表示之间的转换期间,确定在转换期间,应用可用于所述视频图片的多个自适应环路滤波器(ALF)样点选择方法中的一个,以及通过应用多个ALF样点选择方法中的一个来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则禁止使用跨视频图片的虚拟流水线数据单元(VPDU)的样点,以及使用环路滤波操作的结果来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定针对跨视频单元边界的当前视频块的位置,使用未使用填充生成的样点。以及使用环路滤波操作的结果来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定对于环路滤波操作选择滤波器,该滤波器的维度应使得在环路滤波期间使用的当前视频块的样点不跨视频图片的视频单元的边界,以及使用环路滤波操作的结果来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定基于环路滤波是否需要填充样点来为环路滤波操作选择限幅(clipping)参数或滤波器系数,以及使用环路滤波操作的结果来执行转换。
在又一个示例方面,公开了另一种视频处理方法。该方法包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则取决于当前视频块的颜色分量标识,以及使用环路滤波操作的结果来执行转换。
在又一个示例方面,公开了一种被配置为执行上述方法的视频编码装置。
在又一个示例方面,公开了一种被配置为执行上述方法的视频解码器。
在又一个示例方面,公开了一种计算机可读介质。该介质存储代码,该代码在执行时使处理器实现一种或多种上述方法。
在附图、说明书和权利要求书中更详细地描述了所公开技术的上述和其他方面以及特征。
附图说明
图1示出了具有18乘12亮度编解码树单元CTU的图片的示例,该图片被分割为12个片和3个光栅扫描条带。
图2显示了具有18乘12亮度CTU的图片示例,该图片被分割为24个片和9个矩形条带。
图3示出了被分割为4个片、11个砖和4个矩形条带的图片的示例。
图4A示出了当K=M,L<N时,跨图片边界的编解码树块CTB的示例。
图4B示出了当K<M,L=N时,跨图片边界的编解码树块CTB的示例。
图4C示出了当K<M,L<N时,跨越图片边界的编解码树块CTB的示例。
图5示出了编码器框图的示例。
图6是可并行去方块的8×8网格上的图片样点以及水平和垂直块边界以及8×8样点的非重叠块的图示。
图7示出了涉及滤波器开/关决策和强/弱滤波器选择的像素的示例。
图8示出了四个1-D定向图案。
图9示出了几何自适应环路滤波(GALF)滤波器形状的示例(左:5×5菱形,中间:7×7菱形,右:9×9菱形)。
图10示出了用于5×5菱形滤波器支持的相对坐标。
图11示出了用于5×5菱形滤波器支持的相对坐标的示例。
图12A示出了用于子采样的拉普拉斯计算的示例布置。
图12B示出了用于子采样的拉普拉斯计算的另一示例布置。
图12C示出了用于子采样的拉普拉斯计算的另一示例布置。
图12D示出了用于子采样的拉普拉斯计算的另一示例布置。
图13示出了VTM-4.0中亮度分量的环路滤波器行缓冲器要求的示例。
图14示出了VTM-4.0中色度分量的环路滤波器行缓冲器要求的示例。
图15A示出了当N=4时在虚拟边界处的ALF块分类的示例。
图15B示出了当N=4时在虚拟边界处的ALF块分类的另一示例。
图16A示出了在虚拟边界处的修改的亮度ALF滤波的示例。
图16B示出了在虚拟边界处的修改的亮度ALF滤波的另一示例。
图16C示出了在虚拟边界处的修改的亮度ALF滤波的又一示例。
图17A示出了在虚拟边界处的经修改色度ALF滤波的示例。
图17B示出了在虚拟边界处的经修改色度ALF滤波的另一示例。
图18A示出了水平环绕运动补偿的示例。
图18B示出了水平环绕运动补偿的另一示例。
图19示出了修改的自适应环路滤波器的示例。
图20示出了处理视频图片中的CTU的示例。
图21示出了修改的自适应环路滤波器边界的示例。
图22是视频处理装置的示例的框图。
图23是用于视频处理的示例方法的流程图。
图24示出了3×2布局的HEC图像的示例。
图25示出了用于两种边界的样点的填充线的数量的示例。
图26示出了图片中的CTU的处理的示例。
图27示出了图片中的CTU的处理的另一示例。
图28示出了当前样点和需要被访问的样点的另一示例。
图29示出了对“不可用”的相邻样点进行填充的另一示例。
图30示出了在ALF分类处理中需要利用的样点的示例。
图31是其中可以实现所公开的技术的示例视频处理系统的框图。
图32是表示根据本技术的用于视频处理的方法的流程图。
图33是表示根据本技术的用于视频处理的另一方法的另一流程图。
具体实施方式
在本文档中使用章节标题是为了易于理解,并且并不将部分中公开的实施例仅限于该部分。此外,尽管参考通用视频编解码或其他特定视频编解码器描述了某些实施例,但是所公开的技术也适用于其他视频编解码技术。此外,尽管一些实施例详细描述了视频编码步骤,但是将理解的是,将通过解码器来实现与编码相逆的对应的解码步骤。此外,术语视频处理涵盖视频编码或压缩、视频解码或解压缩以及视频转码,其中,视频像素从一种压缩格式表示为另一种压缩格式或以不同的压缩比特率表示。
1.简要总结
该文档涉及视频编解码技术。具体地,它涉及图片/条带/片/砖边界和虚拟边界编解码,特别是对于非线性自适应环路滤波器。其可以应用于现有的视频编解码标准(例如HEVC),或者最终确定的标准(通用视频编解码)。其也可能适用于未来的视频编解码标准或视频编解码器。
2.初步讨论
视频编解码标准主要通过公知的ITU-T和ISO/IEC标准的发展而发展。ITU-T制作了H.261和H.263,ISO/IEC制作了MPEG-1和MPEG-4Visual,这两个组织共同制作了H.262/MPEG-2视频和H.264/MPEG-4增强视频编解码(AVC)和H.265/HEVC标准。从H.262开始,视频编解码标准基于混合视频编解码结构,其中利用了时域预测和变换编解码。为了探索HEVC之外的未来视频编解码技术,VCEG和MPEG于2015年联合成立了联合视频探索小组(JVET)。此后,JVET采纳了许多新方法并将其引入到名为“联合探索模型”(JEM)的参考软件中。2018年4月,VCEG(Q6/16)和ISO/IEC JTC1SC29/WG11(MPEG)之间的JVET(联合视频专家团队)成立,以致力于目标是与HEVC相比其降低50%比特率的多功能视频编解码(VVC)标准。
2.1颜色空间和色度子采样
颜色空间,也称为颜色模型(或颜色系统),是一种抽象数学模型,其将颜色范围简单地描述为数字元组,通常为3或4个值或颜色分量(例如RGB)。基本上,颜色空间是对坐标系和子空间的详细说明。
对于视频压缩,最常用的颜色空间是YCbCr和RGB。
YcbCr、Y'CbCr或Y Pb/Cb Pr/Cr,也称为YCBCR或Y'CBCR,是用作视频和数字摄影系统中彩色图像流水线的一部分的一系列颜色空间。Y'是亮度分量,CB和CR是蓝差(blue-difference)和红差(red-difference)色度分量。Y′(带有原色(prime))与Y(亮度)相区分,表示光强度是基于经过伽玛校正的RGB原色进行非线性编码的。
色度子采样是通过对色度信息实现比对亮度信息更低的分辨率来对图像进行编码的实践,利用了人类视觉系统对色差比对亮度的更低敏锐度。
2.1.1颜色格式4:4:4
三种Y'CbCr分量中的每一个具有相同的采样率,因此不存在色度子采样。该方案有时用于高端胶片扫描仪和电影后期制作中。
2.1.2颜色格式4:2:2
两个色度分量以亮度的采样率的一半(水平色度分辨率减半)进行采样。这将未压缩视频信令的带宽减少了三分之一,且几乎没有视觉差异。
2.1.3颜色格式4:2:0
在4:2:0中,水平采样是4:1:1的两倍,但是由于Cb和Cr通道仅在此方案中的每条交替线上采样,因此垂直分辨率降低了一半。因此,数据速率相同。Cb和Cr分别在水平和垂直方向上以2的因子进行子采样。4:2:0方案有三种变体,其具有不同的水平和垂直位置。
在MPEG-2中,Cb和Cr水平共存。Cb和Cr在垂直方向上位于像素之间(有间隙的位置)。
在JPEG/JFIF、H.261和MPEG-1中,Cb和Cr有间隙地位于交替亮度样点之间的中间。
在4:2:0DV中,Cb和Cr在水平方向上共存。在垂直方向上,它们共同位于交替线上。
2.2各种视频单元
图片被分为一个或多个片行和一个或多个片列。片是覆盖图像的矩形区域的CTU的序列。
片被分成一个或多个砖,每个砖由片内的多个CTU行组成。
未被分割为多个砖的片也称为砖。但是,作为片的真实子集的砖不称为片。
条带包含一张图片的多个片或一个片的多个砖。
支持条带的两种模式,即,光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式下,条带包含图片的片光栅扫描中的片的序列。在矩形条带模式下,条带包含图片的多个砖,这些砖共同形成图片的矩形区域。矩形条带中的砖按条带的砖光栅扫描顺序排列。
图1示出了图片的光栅扫描条带分割的示例,其中图片被划分为12个片和3个光栅扫描条带。
图2示出了图片的矩形条带分割的示例,其中图片被划分为24个片(6个片列和4个片行)和9个矩形条带。
图3示出了图片的示例,该图片被分割为片、砖和矩形条带,其中该图片被划分为4个片(2个片列和2个片行)、11个砖(左上方片包含1个图块,右上方片包含5个砖,左下方片包含2个砖,右下方片包含3个砖)和4个矩形条带。
2.2.1CTU/CTB尺寸
在VVC中,在SPS中通过语法元素log2_ctu_size_minus2信令通知的CTU尺寸可以小到4×4。
7.3.2.3序列参数集RBSP语法
log2_ctu_size_minus2加2指定每个CTU的亮度编解码树块尺寸。
log2_min_luma_coding_block_size_minus2加2指定最小亮度编解码块尺寸。
变量CtbLog2SizeY、CtbSizeY、MinCbLog2SizeY、MinCbSizeY、MinTbLog2SizeY、MaxTbLog2SizeY、MinTbSizeY、MaxTbSizeY、PicWidthInCtbsY、PicHeightInCtbsY、PicSizeInCtbsY、PicWidthInMinCbsY、PicHeightInMinCbsY、PicSizeInMinCbsY、PicSizeInSamplesY、PicWidthInSamplesC和PicHeightInSamplesC推导如下:
CtbLog2SizeY=log2_ctu_size_minus2+2 (7-9)
CtbSizeY=1<<CtbLog2SizeY (7-10)
MinCbLog2SizeY=log2_min_luma_coding_block_size_minus2+2(7-11)
MinCbSizeY=1<<MinCbLog2SizeY (7-12)
MinTbLog2SizeY=2 (7-13)
MaxTbLog2SizeY=6 (7-14)
MinTbSizeY=1<<MinTbLog2SizeY (7-15)
MaxTbSizeY=1<<MaxTbLog2SizeY (7-16)
PicWidthInCtbsY=Ceil(pic_width_in_luma_samples÷CtbSizeY)(7-17)
PicHeightInCtbsY=Ceil(pic_height_in_luma_samples÷CtbSizeY)(7-18)
PicSizeInCtbsY=PicWidthInCtbsY*PicHeightInCtbsY (7-19)
PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY(7-20)
PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY(7-21)
PicSizeInMinCbsY=PicWidthInMinCbsY*PicHeightInMinCbsY(7-22)
PicSizeInSamplesY=pic_width_in_luma_samples*pic_height_in_luma_samples (7-23)
PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC(7-24)
PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC(7-25)
2.2.2图片中的CTU
假设由M×N表示的CTB/LCU尺寸(典型地,M等于N,如HEVC/VVC中所定义),并且对于位于图片(或片或条带或其他类型,图片边界作为示例)边界上的CTB,K×L样点在图片边界内,其中K<M或L<N。对于如图4A-4C所示的那些CTB,CTB的尺寸仍然等于M×N,但是,CTB的底部边界/右边界在图片之外。
图4A示出了跨底部图片边界的CTB。图4B示出了跨右图片边界的CTB。图4C示出了跨右底部图片边界的CTB。
图4A-4C示出了跨图片边界的CTB的示例,(a)K=M,L<N;(b)K<M,L=N;(c)K<M,L<N
2.3典型视频编解码器的编解码流程
图5示出了VVC的编码器框图的示例,其中包括三个环路滤波块:去方块滤波器(DF)、样点自适应偏移(SAO)和ALF(自适应环路滤波器)。与使用预定义滤波器的DF不同,SAO和ALF利用当前图片的原始样点分别通过增加偏移量和应用有限脉冲响应(FIR)滤波器来减少原始样点与重构样点之间的均方误差,其中编码的辅助信息用信令通知偏移量和滤波器系数。ALF位于每个图片的最后一个处理阶段,可以看作是试图捕获和修复由先前阶段创建的伪像的工具。
2.4去方块滤波器(DB)
DB的输入是环路滤波器之前的重构样点。
首先对图片中的垂直边缘进行滤波。然后,将图片中的水平边缘与通过垂直边缘滤波处理修改的样点作为输入进行滤波。每个CTU的CTB中的垂直边缘和水平边缘分别以编解码单元为基础进行处理。从编解码块左手侧的边缘开始以其几何顺序穿过边缘朝向编解码块的右手侧对编解码单元中的编解码块的垂直边缘进行滤波。从编解码块顶部的边缘开始以其几何顺序穿过边缘朝向编解码块的底部开始对编解码单元中的编解码块的水平边缘进行滤波。
图6是可并行去方块的8×8网格上的图片样点以及水平和垂直块边界以及8×8样点的非重叠块的图示。
2.4.1边界决策
滤波被应用于8×8的块边界。另外,它必须是变换块边界或编解码子块边界(例如,由于使用仿射运动预测(Affine motion prediction,ATMVP))。对于那些没有这种边界的将禁用滤波器。
2.4.2边界强度计算
对于变换块边界/编解码子块边界,如果其位于8×8网格中,则可以对其进行滤波并且将对该边缘的bS[xDi][yDj](其中[xDi][yDj]表示坐标)的设置分别定义在表1和表2中。
表1.边界强度(当禁用SPS IBC时)
表2.边界强度(当启用SPS IBC时)
2.4.3用于亮度分量的去方块决策
在本小节中描述了去方块决策处理。
图7示出了涉及滤波器开/关决策和强/弱滤波器选择的像素的示例。
更宽更强的亮度滤波器是仅当条件1、条件2和条件3都为TRUE时才使用的滤波器。
条件1是“大块条件”。该条件检测P边和Q边的样点是否属于大块,分别由变量bSidePisLargeBlk和bSideQisLargeBlk表示。bSidePisLargeBlk和bSideQisLargeBlk定义如下。
bSidePisLargeBlk=((边缘类型为垂直并且p0属于宽度>=32的CU)||(边缘类型为水平并且p0属于高度>=32的CU))?TRUE:FALSE
bSideQisLargeBlk=((边缘类型为垂直并且q0属于宽度>=32的CU)||(边缘类型为水平并且q0属于高度>=32的CU))?TRUE:FALSE
基于bSidePisLargeBlk和bSideQisLargeBlk,条件1定义如下。
条件1=(bSidePisLargeBlk||bSidePisLargeBlk)?TRUE:FALSE
接下来,如果条件1为真,则将进一步检查条件2。首先,推导以下变量:
–如在HEVC中一样首先推导dp0、dp3、dq0、dq3
–如果p边大于或等于32
dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1
dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1
–如果q边大于或等于32
dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1
dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1
条件2=(d<β)?TRUE:FALSE
其中d=dp0+dq0+dp3+dq3。
如果Condition1和Condition2有效,则进一步检查是否有任何块使用了子块:
/>
最后,如果条件1和条件2均有效,则所提出的去方块方法将检查条件3(大块强滤波条件),其定义如下。
在条件3StrongFilterCondition中,推导以下变量:
如在HEVC中一样推导dpq。
sp3=Abs(p3-p0),如在HEVC中一样推导
如果p边大于或等于32
sq3=Abs(q0-q3),如在HEVC中一样推导
如果q边大于或等于32
如在HEVC中一样,StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于(3*β>>5),且Abs(p0-q0)小于(5*tC+1)>>1)?TRUE:FALSE。
2.4.4用于亮度的更强的去方块滤波器(为更大的块设计)
当边界任一边的样点属于大块时,使用双线性滤波器。属于大块的样点定义为:垂直边缘的宽度>=32,并且水平边缘的高度>=32。
双线性滤波器在下面列出。
在上述HEVC去方块中,对于i=0到Sp-1的块边界样点pi和对于j=0到Sq-1的块边界样点qj(pi和qi是用于对垂直边缘进行滤波的行中的第i个样点,或者是用于对水平边缘进行滤波的列中的第i个样点)由如下线性插值替代:
-pi′=(fi*Middles,t+(64-fi)*Ps+32)>>6),限幅为pi±tcPDi
-qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),限幅为qj±tcPDj
其中tcPDi和tcPDj项是第2.4.7节中描述的与位置有关的限幅,且gj、fi、Middles,t、Ps和Qs如下给出。
2.4.5用于色度的去方块控制
在块边界的两边都使用了色度强滤波器。此处,当色度边缘的两边都大于或等于8(色度位置)时,选择色度滤波器,并满足以下具有三个条件的决策:第一个条件用于边界强度以及大块的决策。当在色度样点域中正交于块边缘的块宽度或高度等于或大于8时,可以应用所提出的滤波器。第二个和第三个条件基本上与HEVC亮度去方块决策相同,分别是开/关决策和强滤波器决策。
在第一决策中,对于色度滤波,修改边界强度(bS),且依次检查条件。如果满足条件,则跳过优先级较低的剩余条件。
当检测到大块边界时,当bS等于2或bS等于1时,执行色度去方块。
第二个和第三个条件基本上与如下的HEVC亮度强滤波器决策相同。
在第二个条件中:
如在HEVC亮度去方块中一样推导d。
当d小于β时,第二个条件为TRUE。
在第三个条件中,StrongFilterCondition推导如下:
如在HEVC中一样推导dpq。
sp3=Abs(p3-p0),如在HEVC中一样推导
sq3=Abs(q0-q3),如在HEVC中一样推导
如在HEVC设计中一样,StrongFilterCondition=(dpq小于(β>>2),sp3+sq3小于(β>>3),且Abs(p0-q0)小于(5*tC+1)>>1)
2.4.6用于色度的强去方块滤波器
定义了以下用于色度的强去方块滤波器:
p2′=(3*p3+2*p2+p1+p0+q0+4)>>3
p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
所提出的色度滤波器对4×4色度样点网格执行去方块。
2.4.7位置相关的限幅
将位置相关的限幅tcPD应用于涉及强滤波器和长滤波器的亮度滤波处理的输出样点,该强滤波器和长滤波器在边界处修改7、5和3个样点。假设量化误差分布,建议对期望具有更高量化噪声的样点增加限幅值,从而期望具有更大的相对于真实样点值的重构样点值的偏差。
对于用非对称滤波器进行滤波的每个P或Q边界,取决于2.4.2节中的决策处理的结果,从作为辅信息为解码器提供的两个表(例如,下面列出的Tc7和Tc3)中选择位置相关的阈值表:
Tc7={6,5,4,3,2,1,1};Tc3={6,4,2};
tcPD=(Sp==3)?Tc3:Tc7;
对于用短对称滤波器进行滤波的P或Q边界,应用较低幅度的位置相关的阈值:
Tc3={3,2,1};
在定义阈值之后,根据tcP和tcQ限幅值对滤波的p’i和q’i样点值进行限幅:
p”i=Clip3(p’i+tcPi,p’i–tcPi,p’i);
q”j=Clip3(q’j+tcQj,q’j–tcQj,q’j);
其中,p’i和q’i是滤波的样点值,p”i和q”j是限幅之后的输出样点值,tcPi tcPi是从VVC tc参数以及tcPD和tcQD推导的限幅阈值。函数Clip3是如在VVC中指定的限幅函数。
2.4.8子块去方块调整
为了能够使用长滤波器和子块去方块来并行友好地去方块,如在对长滤波器的亮度控制中所示,将长滤波器限制为在使用子块去方块(AFFINE或ATMVP或DMVR)的边最多修改5个样点。另外,调整子块去方块,使得在8×8网格上接近CU或隐式TU边界的子块边界被限制为在每侧最多修改两个样点。
以下适用于与CU边界不对齐的子块边界。
其中等于0的边缘对应于CU边界,等于2或等于orthogonalLength-2的边对应于来自CU边界等的子块边界8个样点等。如果使用TU的隐式划分,则隐式TU为真。
2.5SAO
SAO的输入是DB之后的重构样点。SAO的概念是通过首先使用选定的分类器将区域样点分类为多个类别,为每个类别获取偏移,然后将偏移添加到类别的每个样点,从而减少区域的平均样点失真,其中,在比特流中编解码分类器索引和区域的偏移。在HEVC和VVC中,将区域(用于SAO参数信令的单元)定义为CTU。
HEVC采用了可以满足低复杂度要求的两种SAO类型。这两种类型是边缘偏移(EO)和频带偏移(BO),下面将对其进行详细讨论。对SAO类型的索引进行编解码(范围为[0,2])。对于EO,样点分类是基于当前样点与相邻样点之间根据一维定向模式(水平、垂直、135°对角线和45°对角线)进行的比较。
图8示出了用于EO样点分类的四个一维定向模式:水平(EO类=0)、垂直(EO类=1)、对角线135°(EO类=2)和对角线45°(EO类=3)。
对于给定的EO类别,CTB内的每个样点被分类为五个类别之一。将标记为“c”的当前样点值与其沿选定的1-D模式的两个邻居进行比较。表I总结了每个样点的分类规则。类别1和4分别与沿选定的1-D模式的局部谷和局部峰相关。类别2和3分别与沿选定的1-D模式的凹角和凸角关联。如果当前样点不属于EO类别1-4,则它是类别0,并且不应用SAO。
表3:边缘偏移的样点分类规则
类别 条件
1 c<a and c<b
2 (c<a&&c==b)||(c==a&&c<b)
3 (c>a&&c==b)||(c==a&&c>b)
4 c>a&&c>b
5 以上都不是
2.6基于几何变换的自适应环路滤波器
DB的输入是DB和SAO之后的重构样点。样点分类和滤波处理基于DB和SAO之后的重构样点。
在一些实施例中,应用具有基于块的滤波器自适应的基于几何变换的自适应环路滤波器(GALF)。对于亮度分量,根据局部梯度的方向和活动,为每个2×2块选择25个滤波器中的一个。
2.6.1滤波器形状
在一些实施例中,可以为亮度分量选择多达三个菱形滤波器形状(如图9所示)。在图片级信令通知索引,以指示用于亮度分量的滤波器形状。每个正方形表示样点,Ci(i为(左),/>(中),/>(右))表示要应用于样点的系数。对于图片中的色度分量,始终使用5×5菱形形状。
2.6.2块分类
将每个2×2块分类为25个类中的一个。分类索引C基于其方向性D和活动的量化值进行推导,如下:
为了计算D和首先使用一维拉普拉斯变换计算水平、垂直和两个对角线方向的梯度:
/>
索引i和j指代2×2块中左上样点的坐标,并且R(i,j)指示在坐标(i,j)处的重构样点。
然后将水平和垂直方向的梯度的D个最大值和最小值设置为:
将两个对角线方向的梯度的最大值和最小值设置为:
为了推导方向性D的值,将这些值使用两个阈值t1和t2相互比较:
步骤1.如果且/>均为真,则将D设置为0。
步骤2.如果则从步骤3继续,否则从步骤4继续。
步骤3.如果则将D设置为2;否则将D设置为1。
步骤4.如果则将D设置为4;否则将D设置为3。
将活动值A计算为:
将A进一步量化到0到4的范围(包括0和4),并且将量化值表示为
对于图片中的色度分量,不应用分类方法,例如,对每个色度分量应用单个ALF系数集。
2.6.1.2滤波器系数的几何变换
图10示出了5×5菱形滤波器支持的相对协调器:左:对角线,中心:垂直翻转,右:旋转。
在对每个2×2块进行滤波之前,取决于为该块计算的梯度值,将诸如旋转或对角线和垂直翻转的几何变换应用于滤波器系数f(k,l),滤波器系数f(k,l)与坐标(k,l)相关联。这等效于将这些变换应用于滤波器支持区域中的样点。思想是通过对齐它们的方向性来使应用了ALF的不同块更加相似。
引入了三种几何变换,包括对角线、垂直翻转和旋转:
其中K是滤波器的尺寸,并且0≤k,l≤K-1是系数坐标,使得位置(0,0)在左上角,并且位置(K一1,K-1)在右下角。取决于为该块计算的梯度值,将变换应用于滤波器系数f(k,1)。表4总结了变换与四个方向的四个梯度之间的关系。图9示出了基于5×5菱形的每个位置的变换系数。
表4:为一个块计算的梯度和变换之间的映射
梯度值 变换
gd2<gd1and gh<gv 无变换
gd2<gd1and gv<gh 对角线
gd1<gd2and gh<gv 垂直翻转
gd1<gd2and gv<gh 旋转
2.6.1.3滤波器参数信令
在一些实施例中,例如在第一个CTU的条带标头之后和SAO参数之前,为第一个CTU用信令通知GALF滤波器参数。可以用信令通知多达25组亮度滤波器系数。为了减少比特开销,可以合并不同分类的滤波器系数。另外,参考图片的GALF系数被存储并且被允许重新使用作为当前图片的GALF系数。当前图片可以选择使用为参考图片存储的GALF系数,并绕过GALF系数信令。在这种情况下,仅用信令通知参考图片之一的索引,并且所存储的指示的参考图片的GALF系数被继承用于当前图片。
为了支持GALF时域预测,维持GALF滤波器集合的候选列表。在开始解码新序列时,候选列表为空。在解码一个图片之后,可以将对应的滤波器集合添加到候选列表。一旦候选列表的尺寸达到最大可允许值(例如,6),新的滤波器集合就会以解码顺序覆盖最旧的集合,即将先进先出(FIFO)规则应用于更新候选列表。为避免重复,只有当相应图片不使用GALF时域预测时,才可以将集合添加到列表中。为了支持时域可伸缩性,存在滤波器集合的多个候选列表,并且每个候选列表都与时域层相关联。更具体地,由时域层索引(TempIdx)分配的每个阵列可以组成具有等于较低的TempIdx的先前解码图片的滤波器集合。例如,第k个阵列被分配为与等于k的TempIdx相关联,并且它仅包含来自具有TempIdx小于或等于k的图片的滤波器集合。在对某个图片进行编解码之后,与该图片相关联的滤波器集合将用于更新与相等的或更高的TempIdx相关联的那些阵列。
GALF系数的时域预测用于帧间编解码的帧,以最小化信令开销。对于帧内帧,时域预测不可用,并且为每个类别分配了16个固定滤波器的集合。为了指示固定滤波器的用法,将用信令通知每个类别的标志,并在必要时用信令通知所选固定滤波器的索引。即使为给定类别选择了固定滤波器,仍可以为该类别发送自适应滤波器的系数f(k,l),在这种情况下,将应用于重构图像的滤波器系数为两组系数的和。
亮度分量的滤波处理可以控制在CU级别。用信令通知标志以指示是否将GALF应用于CU的亮度分量。对于色度分量,仅在图片级别指示是否应用GALF。
2.6.1.4滤波处理
在解码器侧,当对块启用GALF时,对该块内的每个样点R(i,j)进行滤波,得出样点值R'(i,j),如下所示,其中L表示滤波器长度,fm,n表示滤波器系数,f(k,l)表示解码的滤波器系数。
图11示出了用于5×5菱形滤波器支持的相对坐标的示例,假设当前样点的坐标(i,j)为(0,0)。不同坐标中以相同颜色填充的样点将乘以相同的滤波器系数。
2.7基于几何变换的自适应环路滤波器(GALF)
2.7.1GALF示例
在一些实施例中,自适应环路滤波器的滤波处理执行如下:
(x,y)=∑(i,j)w(i,j).I(x+i,y+j), (11)
其中样点I(x+i,y+j)是输入样点,O(x,y)是滤波的输出样点(例如,滤波结果),而w(i,j)表示滤波系数。实际上,在VTM4.0中,它是使用整数算法实现定点精度计算的:
其中L表示滤波器长度,而w(i,j)是定点精度的滤波器系数。
VVC中GALF的当前设计具有以下主要更改:
(1)去除自适应滤波器形状。亮度分量仅允许7×7滤波器形状,色度分量仅允许5×5滤波器形状。
(2)从条带/图片级到CTU级去除了ALF参数的信令。
(3)类别索引的计算以4×4级别而不是2×2执行。另外,在一些实施例中,利用了用于ALF分类的子采样拉普拉斯计算方法。更具体地,不需要为一个块内的每个样点计算水平/垂直/45对角线/135度梯度。取而代之的是,使用了1:2子采样。
图12A-12D示出了针对CE2.6.2的子采样拉普拉斯运算。图12A示出了用于垂直梯度的子采样位置,图12B示出了用于水平梯度的子采样位置,图12C示出了用于对角梯度的子采样位置,且图12D示出了用于对角梯度的子采样位置。
2.8非线性ALF
2.8.1滤波重塑(reformulation)
可以在以下表达式中重写公式(11),而不影响编解码效率:
O(x,y)=I(x,y)+∑(i,j)≠(0,0)w(i,j).(I(x+i,y+j)-I(x,y)) (13)
这里,w(i,j)是与公式(11)相同的滤波器系数[除了w(0,0),其在公式(13)中等于1,而在公式(11)中等于1-∑(i,j)≠(0,0)w(i,j)]。
使用该上述(13)的滤波器公式,可以通过使用简单的限幅函数来引入非线性以提高ALF的效率,以在邻居样点值与当前正被滤波的样点值(I(x,y)),大不相同时,减少邻居样点值(I(x+i,y+j))的影响。
更具体地,ALF滤波器修改如下:
O′(x,y)=I(x,y)+∑(i,j)≠(0,0)w(i,j).K(I(x+i,y+j)-I(x,y),k(i,j)) (14)
其中,K(d,b)=min(b,max(-b,d))是限幅函数,并且k(i,j)是取决于(i,j)滤波器系数的限幅参数。编码器执行优化以找到最佳k(i,j)。
在一些实施例中,为每个ALF滤波器指定限幅参数k(i,j),对每个滤波器系数用信令通知一个限幅值。这意味着对每个亮度滤波器可以在比特流中用信令通知最多12个限幅值,对色度滤波器可以在比特流中用信令通知最多6个限幅值。
为了限制信令成本和编码器复杂度,只能使用与INTER和INTRA条带相同的4个固定值。
由于亮度的局部差异的方差通常比色度的高,因此对于亮度和色度滤波器应用两个不同集合。也介绍了每个集合中的最大样点值(这里对于10比特深度为1024),以便在不必要时可以禁用限幅。
在表5中提供了在一些实施例中使用的限幅值的集合。通过在对数域中将亮度的样点值的全范围(以10比特进行编解码)以及色度从4到1024的范围进行大致相等地划分,选择了4个值。
更精确地,限幅值的亮度表已通过以下公式获得:
其中M=210且N=4。(15)
类似地,限幅值的色度表根据以下公式获得:
其中M=210,N=4且A=4. (16)
表5:授权的限幅值
通过使用与上表5中的限幅值的索引相对应的Golomb编码方案,在“alf_data”语法元素中对所选择的限幅值进行编解码。该编码方案与滤波器索引的编码方案相同。
2.9虚拟边界
在硬件和嵌入式软件中,基于图片的处理由于其对图片缓冲器的高要求而实际上是不可接受的。使用片上图片缓冲器非常昂贵,而使用片外图片缓冲器会大大增加外部存储器访问、功耗和数据访问延迟。因此,在实际产品中,DF、SAO和ALF将从基于图片的解码更改为基于LCU的解码。当将基于LCU的处理用于DF、SAO和ALF时,整个解码处理可以通过LCU在光栅扫描中以LCU流水线方式完成,以并行处理多个LCU。在这种情况下,DF、SAO和ALF需要行缓冲器,因为处理一个LCU行需要上述LCU行中的像素。如果使用片外行缓冲器(例如DRAM),则外部存储器带宽和功耗将增加;如果使用了片上行缓冲器(例如SRAM),则将增加芯片面积。因此,尽流水线缓冲器已经比图像缓冲器小得多,但是仍然希望减少行缓冲器。
在一些实施例中,如图13所示,亮度分量所需的行缓冲器总数为11.25行。行缓冲器要求的解释如下:由于决策和滤波要求第一个CTU的K、L、M行和底部CTU的O、P行,因此无法执行与CTU边缘重叠的水平边缘的去方块。因此,将与CTU边界重叠的水平边缘的去方块推迟到直到下层CTU到来。因此,对于K、L、M、N行,必须将重构的亮度样点存储在行缓冲器(4行)中。然后可以对A行到J行执行SAO滤波。由于去方块不会更改K行中的样点,因此可以对J行进行SAO滤波。对于K行的SAO滤波,边缘偏移分类决策仅存储在行缓冲器中(即0.25亮度行)。只能对A-F行执行ALF滤波。如图13所示,对每个4×4块执行ALF分类。每个4×4的块分类都需要尺寸为8×8的活动窗口,而活动窗口又需要9×9的窗口来计算1d拉普拉斯以确定梯度。
因此,对于与G、H、I、J行重叠的4×4块的块分类,需要虚拟边界以下的SAO滤波样点。另外,ALF分类需要D、E、F行的SAO滤波样点。此外,G行的ALF滤波需要以上行中的三个SAO滤波的D、E、F行。因此,总的行缓冲器要求如下:
-K-N行(水平DF像素):4行
-D-J行(经SAO滤波的像素):7行
-J行和K行之间的SAO边缘偏移分类器值:0.25行
因此,所需的亮度行的总数为7+4+0.25=11.25。
类似地,色度分量的行缓冲器要求在图14中示出。色度分量的行缓冲器要求评估为6.25行。
为了消除SAO和ALF的行缓冲器要求,在最新的VVC中引入了虚拟边界(VB)的概念。如图13所示,VB被向上移动水平LCU边界N个像素。对于每个LCU、SAO和ALF,可以在下层LCU出现之前处理VB之上的像素,但是直到下层LCU出现才能够处理VB以下的像素,这是由DF引起的。考虑到硬件实现成本,将提议的VB和水平LCU边界之间的间隔设置为亮度的四个像素(例如,图13中的N=4)和色度的两个像素(例如,图9中的N=2)。
2.9.1当VB尺寸N为4时的修改的ALF块分类
图15A-15B示出了当虚拟边界在CTU边界上方4行(N=4)时的情况的修改块的分类。如图15A所示,对于从G行开始的4×4块,块分类仅使用E行到J行。但是,对于属于J行的样点的拉普拉斯梯度计算需要下面的一行或多行(K行)。因此,用J行填充K行。
类似地,如图15B所示,对于从K行开始的4×4块,块分类仅使用K行到P行。但是,对于属于K行的样点的拉普拉斯梯度计算需要上方的一行或多行(J行)。因此,用K行填充J行。
2.9.2跨虚拟边界的样点的两侧填充
如图16A-16C所示,滤波器的截断形式用于对属于接近虚拟边界的行的亮度样点进行滤波。以图16A为例,当对M行进行滤波时,如图13所示,例如7×7菱形支撑的中心样点在M行中。它需要访问VB上方的一行(以粗线表示)。在这种情况下,VB上方的样点是从VB下方的样点的右下方复制的,诸如实线中的P0样点被复制到上方的虚线位置。对称地,即使该位置的样点可用,实线中的P3样点也被复制到虚线位置的右下方。复制的样点仅在亮度滤波处理中使用。
用于ALF虚拟边界的填充方法可以表示为“两侧填充”,其中如果填充位于(i,j)处的一个样点(例如,图16B中带有虚线的P0A),则也填充共享相同滤波器系数的、位于(m,n)处的相应样点(例如,图16B中带有虚线的P3B),即使该样点可用,如图16A-16C以及图17A-17B所示。在图16A-16C中,7×7菱形滤波器支持,中心是要被滤波的当前样点。图16A示出了需要被填充的VB上方/下方的1条所需行。图16B示出了需要被填充的VB上方/下方的2条所需行。图16C示出了需要被填充的VB上方/下方的3个所需行。
类似地,如图17A-17B所示,两侧填充方法也用于色度ALF滤波。图17A-17B示出了在虚拟边界处的修改的色度ALF滤波(5×5菱形滤波器支持,中心是要被滤波的当前样点)。图17A示出了需要被填充的VB上方/下方的1条所需行。图17B示出了需要被填充的VB上方/下方的2条所需行。
2.9.3当禁用非线性ALF时,实现双侧填充的替代方法
当对CTB禁用非线性ALF时,例如,式(14)中的限幅参数k(i,j)等于(1<<Bitdepth),可以通过修改滤波系数(又称为基于修改的系数(modified-coeff)的ALF、MALF)来代替填充处理。例如,当对L/I行中的样点进行滤波时,将滤波系数c5修改为c5′,在这种情况下,不需要将亮度样点从实线P0A复制到虚线P0A,从实线P3B复制到虚线P3B,如图18A所示。在这种情况下,假设要滤波的当前样点位于(x,y)处,双侧填充和MALF将产生相同的结果。因为K(d,b)=d,且由于填充,I(x-1,y-1)=I(x-1,y-2),
c5.K(I(x-1,y-1)-I(x,y),k(-1,-1))
+c1.K(I(x-1,y-2)-I(x,y),k(-1,-2))
=(c5+c1).K(I(x-1,y-1)-I(x,y),k(-1,-1)) (17)
但是,当启用非线性ALF时,MALF和两侧填充可能会产生不同的滤波结果,因为非线性参数是与每个系数相关联的,诸如对于滤波器系数c5和c1,限幅参数是不同的。因此,因为K(d,b)!=d,即使由于填充,I(x-1,y-1)=I(x-1,y-2),
c5.K(I(x-1,y-1)-I(x,y),k(-1,-1))
+c1.K(I(x-1,y-2)-I(x,y),k(-1,-2))
!=(c5+c1).K(I(x-1,y-1)-I(x,y),k(-1,-1)) (18)
2.10ALF滤波规范
新增加的部分用粗体斜体下划线表示。删除的部分用[[]]表示。
7.3.2.4图片参数集RBSP语法
/>
/>
/>
loop_filter_across_bricks_enabled_flag等于1,指定在引用PPS的图片中可以跨砖边界执行环路滤波操作。loop_filter_across_bricks_enabled_flag等于0,指定在引用PPS的图片中不跨砖边界执行环路滤波操作。环路滤波操作包括去方块滤波器、样点自适应偏移滤波器和自适应环路滤波器操作。当不存在时,loop_filter_across_bricks_enabled_flag的值被推断为等于1。
loop_filter_across_slices_enabled_flag等于1,指定在引用PPS的图片中可以跨条带边界执行环路滤波操作。loop_filter_across_slice_enabled_flag等于0,指定在引用PPS的图片中不跨条带边界执行环路滤波操作。环路滤波操作包括包括去方块滤波器、样点自适应偏移滤波器和自适应环路滤波器操作。当不存在时,loop_filter_across_slices_enabled_flag的值被推断为等于0。
pps_loop_filter_across_virtual_boundaries_disabled_flag等于1时,指定在引用PPS的图片中可以跨虚拟边界禁用环路滤波操作。pps_loop_filter_across_virtual_boundaries_disabled_flag等于0时,指定在引用PPS的图片中不应用这种禁用环路滤波操作。环路滤波操作包括去方块滤波器、样点自适应偏移滤波器和自适应环路滤波器操作。当不存在时,pps_loop_filter_across_virtual_boundaries_disabled_flag的值被推断为等于0。
pps_num_ver_virtual_boundaries指定PPS中存在的pps_virtual_boundaries_pos_x[i]语法元素的数量。当pps_num_ver_virtual_boundaries不存在时,推断它等于0。
8.8.5.2亮度样点的编解码树块滤波处理
该处理的输入是:
-在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
-滤波重构的亮度图片样点阵列alfPictureL
-指定当前亮度编解码树块的左上样点相对于当前图片的左上样点的亮度位置(xCtb,yCtb)。
该处理的输出是修改的滤波重构的亮度图片样点阵列alfPictureL
使用位置(xCtb,yCtb)和重构的亮度图片样点阵列recPictureL作为输入,以及使用x,y=0..CtbSizeY-1的filtIdx[x][y]和transposeIdx[x][y]作为输出,调用滤波器索引第8.8.5.3节的推导处理。
对于滤波重构的亮度样点alfPictureL[x][y]的推导,当前亮度编解码树块recPictureL[x][y]内的每一个重构亮度样点都进行如下滤波(x,y=0..CtbSizeY-1)。
-由filtIdx[x][y]指定的滤波器所对应的亮度滤波系数阵列f[j]和亮度限幅值阵列c[j]推导如下,j=0...11:
-如果AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]小于16,则适用以下:
i=AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize](8-1172)
f[j]=AlfFixFiltCoeff[AlfClassToFiltMap[i][filtidx]][j](8-1173)c[j]=2BitdepthY (8-1174)
-否则(AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]大于或等于16),适用以下:
i=slice_alf_aps_id_luma[AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]-16] (8-1175)
f[j]=AlfCoeffL[i][filtIdx[x][y]][j] (8-1176)
c[j]=AlfClipL[i][filtIdx[x][y]][j] (8-1177)
-根据transposeIdx[x][y]推导的亮度滤波器系数和限幅值索引dx如下所示:
-如果transposeIndex[x][y]等于1,则适用以下:
idx[]={9,4,10,8,1,5,11,7,3,0,2,6} (8-1178)
-否则,如果transposeIndex[x][y]等于2,则适用以下:
idx[]={0,3,2,1,8,7,6,5,4,9,10,11} (8-1179)
-否则,如果transposeIndex[x][y]等于3,则适用以下:
idx[]={9,8,10,4,3,7,11,5,1,0,2,6} (8-1180)
-否则,适用以下:
idx[]={0,1,2,3,4,5,6,7,8,9,10,11} (8-1181)
-在给定的亮度样点阵列recPicture(其中i,j=-3...3)内的每一个对应的亮度样点的位置(hx+i,vy+j)推导如下:
-如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于3,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1182)
-否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于4,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i)(8-1183)
-否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i)(8-1184)
-如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于3,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1185)
-否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于4,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j)(8-1186)
-否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j)(8-1187)
-根据水平亮度样点位置y和applyVirtualBoundary,在表8-22中规定了重构的样点偏移r1、r2和r3。
-变量curr的推导如下:
curr=recPictureL[hx,vy] (8-1188)
-变量sum的推导如下:
sum=f[idx[0]]*(Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy+r3]-curr)+Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy-r3]-curr))+
f[idx[1]]*(Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx+1,vy+r2]-curr)+Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx-1,vy-r2]-curr))+
f[idx[2]]*(Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy+r2]-curr)+Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy-r2]-curr))+
f[idx[3]]*(Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx-1,vy+r2]-curr)+Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx+1,vy-r2]-curr))+
f[idx[4]]*(Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx+2,vy+r1]-curr)+Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx-2,vy-r1]-curr))+
f[idx[5]]*(Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx+1,vy+r1]-curr)+Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx-1,vy-r1]-curr))+
f[idx[6]]*(Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy+r1]-curr)+Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy-r1]-curr))+(8-1189)
f[idx[7]]*(Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx-1,vy+r1]-curr)+Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx+1,vy-r1]-curr))+
f[idx[8]]*(Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx-2,vy+r1]-curr)+Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx+2,vy-r1]-curr))+
f[idx[9]]*(Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx+3,vy]-curr)+Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx-3,vy]-curr))+
f[idx[10]]*(Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx+2,vy]-curr)+Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx-2,vy]-curr))+
f[idx[11]]*(Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx+1,vy]-curr)+Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx-1,vy]-curr))
sum=curr+((sum+64)>>7) (8-1190)
-修改的滤波重构亮度图片样点alfPictureL[xCtb+x][yCtb+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[xCtb+x][yCtb+y]都等于1,则适用以下:
alfPictureL[xCtb+x][yCtb+y]=recPictureL[hx,vy] (8-1191)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPictureL[xCtb+x][yCtb+y]=Clip3(0,(1<<BitDepthY)-1,sum)(8-1192)
表8-22
根据水平亮度样点位置y和applyVirtualBoundary的r1、r2和r3的规定
8.8.5.4色度样点的编解码树块滤波处理
该处理的输入是:
-自适应环路滤波处理前的重构色度图像样点阵列recPicture,
-滤波重构的色度图片样点阵列alfPicture,
-指定当前色度编解码树块的左上样点相对于当前图片的左上样点的色度位置(xCtbC,yCtbC)。
该处理的输出是修改的滤波重构的色度图片样点阵列alfPicture。
当前色度编解码树块的宽度和高度ctbWidthC和ctbHeightC的推导如下:
ctbWidthC=CtbSizeY/SubWidthC (8-1230)
ctbHeightC=CtbSizeY/SubHeightC (8-1231)
为了推导滤波的重构色度样点alfPicture[x][y],对当前色度编解码树块recPicture[x][y]内的每个重构色度样点进行如下滤波,其中x=0...ctbWidthC-1,y=0...ctbHeightC-1。
-在给定的色度样点阵列recPicture(其中i,j=-2...2)中,每一个对应的色度样点(x,y)的位置(hx+i,vy+j)的推导如下:
-如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtbC+x-PpsVirtualBoundariesPosX[n]/SubWidthC大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n]/SubWidthC,
pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1232)
-否则,如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]/SubWidthC-xCtbC-x大于0且小于3,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]/SubWidthC-1,xCtbC+x+i)(8-1233)
-否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i)(8-1234)
-如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtbC+y-PpsVirtualBoundariesPosY[n]/SubHeightC大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n]/SubHeightC,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)(8-1235)
-否则,如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]/SubHeightC-yCtbC-y大于0且小于3,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]/SubHeightC-1,yCtbC+y+j)(8-1236)
-否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)
(8-1237)
-变量applyVirtualBoundary的推导如下:
-根据水平亮度样点位置y和applyVirtualBoundary,在表8-22中指定重构的样点偏移r1和r2。
-变量curr的推导如下:
curr=recPicture[hx,vy] (8-1238)
-色度滤波系数阵列f[j]和色度限幅值阵列c[j]的推导如下,j=0...5。
f[j]=AlfCoeffC[slice_alf_aps_id_chroma][j] (8-1239)
c[j]=AlfClipC[slice_alf_aps_id_chroma][j] (8-1240)
-变量sum的推导如下:
sum=curr+(sum+64)>>7) (8-1242)
-修改的滤波重构色度图片样点alfPicture[xCtbC+x][yCtbC+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[(xCtbC+x)*SubWidthC][(yCtbC+y)*SubHeightC]都等于1,则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=recPictureL[hx,vy](8-1243)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepthC)-1,sum) (8-1244)
2.11CTU处理示例
根据当前的VVC设计,如果一个CTB的底部边界是条带/砖的底部边界,则将禁用ALF虚拟边界处理方法。例如,如图19所示,一个图片被划分成多个CTU和2个条带。
假设CTU尺寸为M×M(例如M=64),则根据虚拟边界定义,将CTB内的最后4行处理为虚拟边界以下。在硬件实现中,以下条件适用:
-如果CTB的底部边界是图片(例如CTU-D)的底部边界,它将处理包括来自CTU行上方的4行和当前CTU中的所有行的(M+4)×M块。
-否则,如果CTB的底部边界是条带(或砖)(例如CTU-C)的底部边界,并且loop_filter_across_slice_enabled_flag(或loop_filter_across_bricks_enabled_flag)等于0,则处理包括来自CTU行上方的4行和当前CTU中的所有行的(M+4)×M块。
-否则,如果CTU/CTB位于条带/砖/片的第一CTU行中(例如,CTU-A),则处理不包括最后4行的M×(M-4)块。
-否则,如果CTU/CTB不在条带/砖/片的第一CTU行中(例如CTU-B),也不在条带/砖/片的最后CTU行中,则处理包括CTU行上方的4行、但不包括当前CTU的最后4行的M×M块。
图19示出了图片中的CTU的处理的示例。
2.12 360度视频编解码
VTM5中的水平环绕运动补偿是360特定编解码工具,旨在提高等矩形(ERP)投影格式中重构的360度视频的视觉质量。在传统的运动补偿中,当运动矢量指的是参考图片的图片边界以外的样点时,会应用重复填充,以通过复制相应图片边界上最近的邻居来得出边界外样点的值。对于360度视频来说,这种重复填充的方法并不适合,可能会在重构的视口视频中造成被称为“接缝伪像(seam artefacts)”的视觉伪像。由于360度视频是在球体上捕获的且本身没有“边界”,所以在投影域中超出参考图片边界的参考样点总是可以从球体域中的相邻样点中获得。对于一般的投影格式,由于涉及到2D到3D和3D到2D的坐标转换,以及分数样点位置的样点插值,因此在球域中推导相应的相邻样点可能比较困难。对于ERP投影格式的左右边界,这个问题要简单得多,因为左图片边界外的球面邻居可以从右图片边界内的样点获得,反之亦然。
图20示出了VVC中水平环绕运动补偿的一个例子。
水平环绕运动补偿处理如图20所示。当参考块的一部分在投影域中的参考图片的左(或右)边界之外时,代替重复填充,“边界外”部分取自参考图片的相应球面邻居,朝向投影域中的右(或左)边界。如图20所示,水平环绕运动补偿可以与360度视频编解码中常用的非规范填充方法相结合。在VVC中,这是通过信令通知高级语法元素来指示环绕偏移来实现的,该环绕偏移应设置为填充前的ERP图片宽度;该语法用于相应地调整水平环绕的位置。该语法不受左右图片边界具体填充量的影响,因此自然支持ERP图片的非对称填充,例如左右填充量不同时。当参考样点在参考图片左右边界之外时,水平环绕运动补偿为运动补偿提供了更有意义的信息。
对于由多个面组成的投影格式,无论采用哪种紧凑的框架包装布置,框架包装图片中相邻的两个或多个面之间都会出现不连续性。例如,考虑到图24中描绘的3×2的框架包装配置,上半部的三个面在3D几何中是连续的,下半部的三个面在3D几何中是连续的,但框架包装图片的上半部和下半部在3D几何中是不连续的。如果在该不连续处执行环路滤波操作,在重构的视频中可能会出现面缝伪像。
为了缓解面缝伪像,可以禁止在帧包装图片中的不连续处进行环路滤波操作。提出了语法来信令通知垂直和/或水平虚拟边界,在这些边界上禁用环路滤波操作。与使用两个片(每组连续面一个片)、并禁止跨片的环路滤波操作相比,所提出的信令方法更灵活,因为它不要求面的尺寸是CTU尺寸的倍数。
2.13基于子图片的运动约束独立区域示例
在一些实施例中,包括以下特征。
1)图片可以被划分为子图片。
2)在SPS中指示子图片的存在,以及子图片的其他序列级信息。
3)可由比特流控制在解码处理中是否将子图片作为图片处理(不包括环路滤波操作)。
4)是否禁止跨子图片边界的环路滤波可以由每个子图片的比特流控制。更新DBF、SAO和ALF处理,以控制跨子图象边界的环路滤波操作。
5)为简单起见,作为起点,在SPS中以亮度样点为单位信令通知子图片宽度、高度、水平偏移和垂直偏移。子图边界被约束为条带边界。
6)通过稍微更新coding_tree_unit()语法来指定:在解码处理中(不包括环路滤波操作)将子图片作为图片处理,并对以下解码处理进行更新。
ο(高级)时域亮度运动矢量预测的推导处理。
ο亮度样点双线性插值处理。
ο亮度样点8抽头插值滤波处理。
ο色度样点插值处理。
7)在SPS中明确指定子图片ID,并且子图片ID包含在片组标头中,以实现子图片序列的提取,而不需要改变VCLNAL单元。
提出了输出子图片组(OSPS),以指定子图片及其组的规范提取和符合点。
3.本文档提供的解决方案所解决的技术问题。
当前VVC设计存在以下问题。
1.当前启用ALF虚拟边界的设置取决于CTB的底部边界是否为图片的底部边界。如果是真(true),则禁用ALF虚拟边界,诸如图19中的CTU-D。但是,有可能CTB的底部边界在图片的底部边界之外,诸如256×240图片被划分成4个128×128的CTU,在这种情况下,对于样点在图片底部边界之外的最后2个CTU,ALF虚拟边界可能会被错误地设置为真。
2.在底部图片边界和条带/片/砖边界禁用ALF虚拟边界的处理方式。沿条带/砖边界禁用VB可能会产生流水线气泡(pipeline bubble),或者对于每条虚拟流水线数据单元(VPDU,VVC中为64×64)需要处理68行,假设LCU尺寸为64×64。例如:
a.对于前期不知道条带/砖/片边界的解码器(如低延迟应用),需要恢复ALF行缓冲器。行缓冲器中的内容是否被ALF滤波使用,取决于当前CTU是否也是条带/砖/片边界CTU,然而,在下一个条带/砖/片被解码之前,这个信息是未知的。
b.对于前期知道条带/砖/片边界的解码器来说,要么解码器需要忍受流水线气泡(非常不可能),要么以每64×64VDPU一直68行的速度运行ALF(超供),以避免使用ALF行缓冲器。
3.对虚拟边界和视频单元边界的不同处理方式,例如,存在不同的填充方法。同时,当行处于多个边界时,可以对其执行一种以上的填充方法。
a.在一个示例中,如果块的底部边界为360度虚拟边界,且ALF虚拟边界也应用于该块,在这种情况下,可以首先应用360度虚拟边界的填充方法,以生成360度虚拟边界下方的虚拟样点。之后,将这些位于360度虚拟边界以下的虚拟样点视为可用。而根据图16A-C,可以进一步应用ALF两侧填充方法。图25中描述了示例。
4.处理虚拟边界的方式可能是次优的,因为利用了填充样点,这可能会降低效率。
5.当禁用非线性ALF时,MALF和两侧填充方法将能够产生相同的结果,来滤波需要跨越虚拟边界来访问样点的样点。然而,当启用非线性ALF时,这两种方法将带来不同的结果。将这两种情况统一起来将是有益的。
6.条带可以是矩形的,也可以是非矩形的,如图28所示。在这种情况下,对于CTU,它可能与任何边界(例如,图片/条带/片/砖)不重合。但是,可能需要访问当前条带之外的样点。如果禁用了跨条带边界的滤波(例如loop_filter_across_slices_enabled_flag为假),则如何执行ALF分类和滤波处理是未知的。
7.子图片是图片内一个或多个条带的矩形区域。子图片包含一个或多个条带,这些条带共同覆盖图片的矩形区域。语法表进行了如下修改,以包括子图片(粗体、斜体和下划线)的概念。
7.3.2.3序列参数集RBSP语法
/>
注意,针对每个子图片控制启用对跨子图片的滤波。但是,在图片级别控制启动对跨条带/片/砖的滤波的控制,其被信令通知一次以控制一个图片内的所有条带/片/砖。
8.ALF分类以4×4单元执行,即,一个4×4单元内的所有样点共享相同的分类结果。但是,更精确地说,包含当前4×4块的8×8窗口中的样点需要计算其梯度。在这种情况下,如图30所示,需要访问10×10个样点。如果某些样点位于不同的视频单元中(例如,不同的条带/片/砖/子图片/“360虚拟边界”的上方或左侧或右侧或底部/“ALF虚拟边界”的上方或下方),需要定义如何计算分类。
4.技术和实施例的示例
下文所列应视为示例来解释一般概念。列出的技术不应狭义地解释。此外,可以以任何方式组合这些技术。
用于ALF虚拟边界的填充方法可以表示为“两侧填充”,其中,如果填充位于(i,j)的一个样点,如图12-13所示,则位于(m,n)的、共享相同滤波器系数的相应样点也被填充,即使该样点是可用的。
用于图片边界/360度视频虚拟边界、法线边界(例如顶部和底部边界)的填充方法可以表示为“单侧填充”,其中,如果要使用的一个样点在边界之外,则从图片内的可用样点中复制该样点。
用于360度视频左和右边界的填充方法可以表示为“包装基础填充(wrapping-base Padding)”,其中,如果要使用的一个样点在边界之外,则使用运动补偿结果对其进行复制。
在下面的讨论中,样点“在视频单元的边界处”可以表示样点与视频单元的边界之间的距离小于或不大于阈值。“行”可以指在同一水平位置处的样点或在同一垂直位置处的样点。(例如,同一行中的样点和/或同一列中的样点)。函数Abs(x)定义如下:
在下面的讨论中,“虚拟样点”是指生成的样点,该样点可能与重构的样点不同(可以通过去方块和/或SAO处理)。虚拟样点可用于对另一个样点进行ALF。可以通过填充来生成虚拟样点。
“为一个块启用了ALF虚拟边界处理方法”可以表示规范中的applyVirtualBoundary被设置为真。“启用虚拟边界”可能指示当前块被虚拟边界划分为至少两部分,并且位于一个部分的样点在滤波处理中(例如ALF)不允许在另一部分中利用样点。虚拟边界可以是一个块的底部边界上方的K行。
在以下描述中,相邻样点可以是滤波器分类和/或滤波处理所需的那些。
在本公开中,如果相邻样点在当前图片、当前子图片、当前片、当前条带、或当前砖、或当前CTU或当前处理单元(诸如,ALF处理单元或窄ALF处理单元)或任何其他当前视频单元之外时,相邻样点是“不可用的”。
1.将“当前编解码树块的底部边界是图片的底部边界”的确定替换为“当前编解码树块的底部边界是图片或图片外的底部边界”。
a.可替代地,在这种情况下,可以禁用ALF虚拟边界处理方法。
2.在环路滤波处理中是否启用虚拟样点的使用(例如,是否启用虚拟边界(例如,将applyVirtualBoundary设置为真(true)或假(false))可能取决于CTB尺寸。
a.在一个示例中,对于给定的CTU/CTB尺寸,例如对于等于K×L(例如,K=L=4)的CTU/CTB尺寸,总是将applyVirtualBoundary设置为假。
b.在一个示例中,对于某些不大于或小于K×L(例如,K=L=8)的CTU/CTB尺寸,总是将applyVirtualBoundary设置为假。
c.可替代地,对于某些CTU/CTB尺寸(诸如4×4、8×8)禁用ALF。
3.是否允许在环路滤波处理(例如,ALF)中使用虚拟样点(例如,从重构样点中填充)可以取决于块的底部边界是否是视频单元的底部边界,视频单元的底部边界与图片(例如,条带/片/砖)或虚拟边界相比,其粒度更细。
a.在一个示例中,如果CTB的底部边界是视频单元的边界或虚拟边界,则可以为编解码树块(CTB)启用ALF虚拟边界处理方法(例如,将applyVirtualBoundary设置为真)。
i.可替代地,此外,如果底部边界不是底部图像边界,或者如果底部边界在图片之外,则启用上述方法。
b.在当前编解码树块的底部边界是图片的底部虚拟边界之一并且pps_loop_filter_across_virtual_boundaries_disabled_flag等于1时,仍可以启用ALF虚拟边界处理方法(例如,将applyVirtualBoundary设置为真)。
c.在一个示例中,是否为CTB启用ALF虚拟边界处理方法(例如,applyVirtualBoundary的值)可以仅取决于CTB的底部边界与图片的底部边界之间的关系。
i.在一个示例中,仅当CTB的底部边界是包含CTB的图片的底部边界或底部边界在图片之外时,将applyVirtualBoundary设置为假。
ii.在一个示例中,当CTB的底部边界不是包含CTB的图片的底部边界时,将applyVirtualBoundary设置为真。
d.在一个示例中,当解码图18A-18C中的CTU-C时,可以利用来自CTU上方的K行并且排除虚拟边界下方的K行对M×M个样点进行滤波。
4.即使在越砖/条带边界的环路滤波器的信令通知的控制使用标记(例如,loop_filter_across_bricks_enabled_flag/loop_filter_across_slices_enabled_flag)为真时,也建议在滤波处理(例如,ALF)中禁用跨越砖/条带边界的样点的使用。
a.可替代地,此外,信令通知的loop_filter_across_bricks_enabled_flag/loop_filter_across_slices_enabled_flag可以仅控制去方块滤波器和除AOF之外的SAO的滤波处理。
b.在一个示例中,可以使用虚拟样点代替在相应位置处的重构样点来对另一样点进行ALF。
5.当一个块(例如CTB)包含位于视频单元边界(诸如,条带/砖/片块/360度视频虚拟或法线边界/图片边界)的样点时,对于不同种类的边界,可以统一如何在视频单元内部或外部生成虚拟样点(例如,填充方法)以进行诸如ALF之类的环路滤波。
a.可替代地,此外,虚拟边界的方法(例如,两侧填充方法)可以被应用于该块以处理边界处的样点以用于环路滤波。
b.可替代地,此外,当块包含位于视频单元的底部边界处的样点时,可以应用上述方法。
c.在一个示例中,当解码一个块的K行时,如果在该块的虚拟边界以下的K行(例如,图17A-17B的CTU-B中的最后K行)和该块的底部边界是视频单元的底部边界时,可以在ALF分类/滤波处理中生成虚拟样点,以避免使用这些K行以外的其他样点,例如,可以应用“双侧填充”方法。
i.可替代地,可以针对那些最后的K行禁用ALF。
d.在一个示例中,当一个块位于多个边界时,用于ALF分类的像素/样点可以被限制为不跨越这些多个边界中的任何一个。
i.在一个示例中,对于样点,如果其某个相邻样点“不可用”(例如,跨越多个边界中的任何一个),则可能无法为该样点计算单独的或所有种类的梯度/方向性。
1.在一个示例中,样点的梯度可以被视为零。
2.在一个示例中,样点的梯度可以被视为“不可用”并且不可以被添加到在ALF分类处理中得到的活动(activity)(例如,在2.6.1.1节的等式(8)中定义)。
ii.在一个示例中,当ALF分类处理中使用的仅部分样点“可用”时(例如,没有跨越这些边界中的任何一个),可以通过因子来缩放在ALF分类处理中得出的活动/方向性。
iii.在一个示例中,对于边界块,假设需要在ALF分类处理中为N个样点计算梯度/方向性,并且只能为M个样点计算梯度(例如,如果样点的某些相邻样点不是“可用的”,则无法为其计算梯度),然后可以将活动乘以N/M。
1.可替代地,可以乘以取决于N/M的因子。例如,数字可以是MN(N是整数),例如M=2。
e.在一个示例中,可以将M×N(例如,当前设计中的M=N=8,M列和N行)窗口中的部分样点的梯度用于分类。
i.例如,对于当前的N1*N2(当前设计中的N1=N2=4)块,M*N以N1*N2块为中心。
ii.在一个示例中,可以使用不需要跨任何边界访问样点的样点的梯度。
1.可替代地,此外,当计算位于一个或多个边界处的样点的梯度时,如果当前样点的一些相邻样点“不可用”,则可以执行填充(例如,单侧填充)。
2.可替代地,此外,如果当前样点位于视频单元(诸如,条带/砖/片/360度视频虚拟边界或ALF虚拟边界)的顶部边界,则可以填充上方K(例如,K=1、2)个不可用行。
3.可替代地,如果当前样点位于视频单元的左边界,则可以填充左侧K(例如,K=1、2)个不可用的列。
4.可替代地,如果当前样点位于视频单元的右边界,则可以填充右侧K(例如,K=1、2)个不可用的列。
5.可替代地,如果当前样点位于视频单元的底部边界,则可以填充底部K(例如,K=1、2)个不可用的行。
6.可替代地,此外,如果当前样点位于视频单元的顶部边界和左边界,则可以首先填充上方K1(例如K1=1、2)个不可用的行,以生成M*(N+K1)窗口,然后,可以填充左侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*(N+K1)窗口。
a.可替代地,可以首先填充左侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*N窗口,然后可以填充上方K1(例如,K1=1,2)个不可用的行,以生成(M+K2)*(N+K1)窗口。
7.可替代地,此外,如果当前样点位于视频单元的顶部边界和右侧边界,则可以首先填充上方K1(例如,K1=1、2)个不可用的行,以生成M*(N+K1)窗口,然后可以填充右侧K2(例如K2=1、2)个不可用的列,以生成(M+K2)*(N+K1)窗口。
a.可替代地,可以首先填充右侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*N窗口,然后可以填充上方K1(例如,K1=1,2)个不可用的行,以生成(M+K2)*(N+K1)窗口。
8.可替代地,此外,如果当前样点位于视频单元的底部边界和右侧边界,则可以首先填充底部K1(例如,K1=1、2)个不可用的行,以生成M*(N+K1)窗口,然后可以填充右侧K2(例如K2=1、2)个不可用的列,以生成(M+K2)*(N+K1)窗口。
a.可替代地,可以先填充右侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*N窗口,然后可以填充底部K1(例如,K1=1、2)个不可用的行,以生成(M+K2)*(N+K1)窗口。
9.可替代地,此外,如果当前样点位于视频单元的底部边界和左侧边界,则可以首先填充底部K1(例如,K1=1、2)个不可用的行,以生成M*(N+K1)窗口,然后,可以填充左侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*(N+K1)窗口。
a.可替代地,可以首先填充左侧K2(例如,K2=1、2)个不可用的列,以生成(M+K2)*N窗口,然后可以填充底部K1(例如,K1=1、2)个不可用的行以生成(M+K2)*(N+K1)窗口。
10.可替代地,此外,可以使用填充样点来计算梯度。
iii.在一个示例中,对于视频单元顶部/底部边界处的块(诸如条带/砖/片/360度视频虚拟边界或ALF虚拟边界),可以将M*(N–C1)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部/底部C1行的梯度。
iv.在一个示例中,对于视频单元左/右边界处的块,可以将(M–C1)*N窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的左/右C1列的梯度。
v.在一个示例中,对于视频单元的顶部边界和底部边界处的块,可以将M*(N–C1–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部C1行和底部C2行的梯度。
vi.在一个示例中,对于视频单元的顶部边界和左侧边界处的块,可以将(M–C1)*(N–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部C1行和左侧C2列的梯度。
vii.在一个示例中,对于视频单元的顶部边界和右侧边界处的块,可以将(M–C1)*(N–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部C1行和右侧C2列的梯度。
viii.在一个示例中,对于视频单元的底部边界和左侧边界处的块,可以将(M–C1)*(N–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的底部C1行和左侧C2列的梯度。
ix.在一个示例中,对于视频单元的底部边界和右侧边界处的块,可以将(M–C1)*(N–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的底部C1行和右侧C2列的梯度。
x.在一个示例中,对于视频单元左侧边界和右侧边界处的块,可以将(M–C1–C2)*N窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的左侧C1列和右侧C2列的梯度。
xi.在一个示例中,对于视频单元的顶部边界、底部边界和左侧边界的块,可以将(M–C3)*(N–C1–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部C1行、底部C2行和左侧C3列的梯度。
xii.在一个示例中,对于视频单元的顶部边界、底部边界和右侧边界的块,可以将(M–C3)*(N–C1–C2)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的顶部C1行、底部C2行和右侧C3列的梯度。
xiii.在一个示例中,对于视频单元左侧边界、右侧边界和顶部边界的块,可以将(M–C1–C2)*(N–C3)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的左侧C1列、右侧C2列和顶部C3行的梯度。
xiv.在一个示例中,对于视频单元左侧边界、右侧边界和底部边界的块,可以将(M–C1–C2)*(N–C3)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的左C1列,右C2列和底部C3行的梯度。
xv.在一个示例中,对于视频单元的左侧边界、右侧边界、顶部边界和底部边界的块,可以将(M–C1–C2)*(N–C3–C4)窗口中的样点梯度用于该块的分类。
1.可替代地,此外,在分类中不使用M*N窗口的左侧C1列和右侧C2列、顶部C3行和底部C4行的梯度。
xvi.在一个示例中,C1、C2、C3和C4等于2。
xvii.在一个示例中,可以使用不具有梯度计算中所需的任何“不可用”的相邻样点的样点的梯度。
f.在一个示例中,当一行位于多个边界处(例如,该行到边界之间的距离小于阈值)时,仅执行一次填充处理,而不管其可能属于多少个边界。
i.可替代地,此外,应填充多少相邻行可以取决于当前行相对于所有边界的位置。
ii.例如,可以由当前行和两个边界之间的距离来确定应填充多少相邻行,诸如在当前行在两个边界内且两个边界在上下时。
iii.例如,可以由当前行和最近的边界之间的距离来确定应填充多少相邻行,诸如在当前行在两个边界内且两个边界在上下时。
iv.例如,可以为每个边界独立地计算要填充多少相邻行,并且选择最大的一个作为最终的填充行数。
v.在一个示例中,可以为该行的每一侧(例如,上侧和下侧)确定要填充多少相邻行。
vi.在一个示例中,对于两侧填充方法,可以共同确定两侧应填充多少相邻行。
vii.可替代地,此外,应用ALF使用的两侧填充方法。
g.在一个示例中,当一行位于多个边界处并且在该行的每一侧(例如,上侧和下侧)中存在至少一个边界时,可以对其禁用ALF。
h.在一个示例中,在当前行所需的填充行的数量大于阈值时,可以为当前行禁用ALF。
i.在一个示例中,当任一侧中的填充线的数量大于阈值时,可以为当前行禁用ALF。
ii.在一个示例中,当两侧的填充行的总数大于阈值时,可以为当前行禁用ALF。
i.可替代地,此外,当块包含位于视频单元的底部边界处的样点并且对该块启用诸如ALF的环路滤波时,可以应用以上方法。
j.可替代地,此外,可以在某些条件下应用上述方法,诸如当该块包含位于视频单元的底部边界的样点并且不允许跨边界的滤波时(例如,pps_loop_filter_across_virtual_boundaries_disabled_flag/loop_filter_across_slices_enabled_flag/loop_filter_across_slices为真)。
k.所提出的方法也适用于位于垂直边界处的样点/块。
6.当样点是一个块的至少两个边界时(例如,当前行上方的至少一个边界是ALF虚拟边界,而下方是其他边界),则要填充的行数并非纯粹由当前行相对于ALF虚拟边界的距离确定,而是由当前行相对于两个边界的距离确定。
a.在一个示例中,将每侧填充的行数设置为(M–min(D0,D1))。
b.在一个示例中,将每侧填充的行数设置为(M–max(D0,D1))。
c.对于上面的示例,D0、D1表示当前行与上/下边界之间的距离。
d.对于上面的示例,M表示ALF虚拟边界距离一个CTU的底部的行数。
7.可以定义在ALF分类和/或ALF线性或非线性滤波处理中选择样点的至少两种方式,其中一种方式在应用任何环路滤波方法之前选择样点;另一种方式在应用一种或多种环路滤波方法之后但在应用ALF之前,选择样点。
a.在一示例中,不同方式的选择可以取决于要滤波的样点的位置。
b.在一个示例中,当视频单元(诸如CTB)底部边界处的样点在ALF中用于另一个样点时,可以使用第一种方法进行选择。否则(不在边界处),选择第二种方法。
8.建议在滤波处理中禁用跨VPDU边界(例如64×64区域)的样点。
a.在一个示例中,当ALF分类处理所需的样点在VPDU边界之外或在虚拟边界以下时,可以用虚拟样点代替,或者可以从与其他样点相关联的样点中复制样点的分类结果,诸如从可用的样点中填充。
b.在一个示例中,当滤波处理所需的样点在VPDU边界之外或在虚拟边界以下时,可以由虚拟样点代替,诸如由可用样点填充。
c.在一个示例中,如果块包含位于VPDU的边界处的样点,则可以为该块启用ALF虚拟边界处理方法(例如,将applyVirtualBoundary设置为真)。
d.可替代地,在滤波处理中可以禁用跨水平VPDU边界的样点。
i.在一个示例中,当滤波处理所需的样点在水平VPDU边界以下或在虚拟边界以下时,可以由虚拟样点代替,诸如由可用样点填充。
e.可替代地,在滤波处理中可以禁止使用跨越垂直VPDU边界的样点。
i.在一个示例中,当滤波处理所需的样点在垂直VPDU边界之外或在虚拟边界以下时,可以用虚拟样点代替,诸如由可用样点填充。
9.建议在ALF分类/滤波处理中不使用填充的样点(例如,不可用、虚拟边界上方/下方、视频单元边界上方/下方),取而代之的,在所有环路滤波器之前使用重构样点。
a.可替代地,此外,通过在所有环路滤波器之前,经由来自重构样点的填充样点,来应用两侧填充的概念。
i.在一个示例中,如果滤波器支持中的样点来自所有环路滤波器之前的重构样点,则滤波器支持中的对称样点(例如,与原点对称,例如当前样点)也应使用所有环路滤波器之前的重构样点。
1.假设要滤波的当前样点的坐标为(0,0),位于(i,j)的样点是在所有环路滤波器之前的重构样点,则位于(-i,-j)处的样点是所有环路滤波器之前的重构样点。
2.假设要滤波的当前样点的坐标为(x,y),位于(x+i,y+j)处的样点是在所有环路滤波器之前的重构样点,则位于(x–i,y–j)处的样点是所有环路滤波器之前的重构样点。
b.可替代地,此外,当启用环路重塑(也称为LMCS)时,所有环路滤波器之前的重构样点都是从重塑域转换而来的原始域中的样点。
10.建议在ALF滤波处理中不使用填充的样点(例如,不可用、在虚拟边界上方/下方,在视频单元边界上方/下方),取而代之的,采用不同的ALF滤波器支持。
a.在一个示例中,假设在上述方法中需要填充样点,而不是执行填充,与该样点相关联的滤波器系数被设置为零。
i.在这种情况下,可以通过排除需要填充的样点来修改滤波器支持。
ii.可替代地,此外,除了当前样点外,应用于其他样点的滤波器系数保持不变,但是,可以修改应用于当前样点的滤波器系数,诸如(((1<<C_BD)–应用于不需要填充的样点的所有滤波器系数之和),其中C_BD指示滤波器系数的比特深度。
1.以图18A-18B为例,当对行L和I进行滤波时,将应用于当前样点的滤波系数c12修改为((1<<C_BD)–2*(c4+c5+c6+c7+c8+c9+c10+c11))。
b.在一个示例中,假设在上述方法中从(x2,y2)填充了样点(x1,y1),则将与(x1,y1)相关联的滤波器系数添加到位置(x2,y2),而不是执行填充,无论启用还是禁用了非线性滤波器。
i.可替代地,此外,可以即时导出(x2,y2)的限幅参数。
1.在一个示例中,可以将其设置为等于(x2,y2)的解码限幅参数。
2.可替代地,也可以将其设置为函数的返回值,并以(x1,y1)和(x2,y2)的解码限幅参数作为输入,诸如较大的值或较小的值。
11.限幅参数/滤波器系数/滤波器支持的选择可能取决于对样点进行滤波是否需要访问填充样点(例如,不可用、在虚拟边界上方/下方,在视频单元边界上方/下方)。
a.在一个示例中,对于具有相同类别索引的样点,可以使用不同的限幅参数/滤波器系数/滤波器支持,但对于其中一些,则需要访问填充样点,其他则不需要。
b.在一个示例中,可以在CTU/区域/条带/片级别中信令通知用于对需要访问填充样点的样点进行滤波的限幅参数/滤波器系数/滤波器支持。
c.在一个示例中,可以从用于对不需要访问填充样点的样点进行滤波的样点中导出用于对需要访问填充样点的样点进行滤波的限幅参数/滤波器系数/滤波器支持。
i.在一个示例中,可应用第9a或9b项。
12.如何在边界处处理样点以进行环路滤波(诸如ALF)可能取决于颜色分量和/或颜色格式。
a.例如,对于不同的颜色分量,“在边界处”的定义可以不同。在一个示例中,如果亮度样点与底部边界之间的距离小于T1,则该亮度样点位于底部边界;否则,如果色度样点与底部边界之间的距离小于T2,则色度样点位于底部边界。T1和T2可以不同。
i.在一个示例中,当颜色格式不是4:4:4时,T1和T2可以不同。
13.当一个CTU/VPDU的底部/顶部/左侧/右侧边界也是具有独立编解码的条带/片/砖/子区域的边界时,将应用固定顺序的多个填充处理。
a.在一个示例中,在第一步中,首先应用条带/片/砖的填充方法(例如,单侧填充)。之后,在第二步期间进一步应用用于处理ALF虚拟边界的填充方法(例如,两侧填充方法)。在这种情况下,第一步之后的填充样点被标记为可用,并可用于决定在ALF虚拟边界处理中要填充多少行。使用用于处理不在那些边界处的CTU的相同规则(例如,图16A-C)。
14.所提出的方法可以应用于两个子图片之间的一个或多个边界。
a.应用提出的方法的边界可以是水平边界。
b.应用提出的方法的边界可以是垂直边界。
15.以上提出的方法可以应用于垂直边界处的样点/块。
16.是否在“360虚拟边界”处应用所提出的方法或如何在“360虚拟边界”处应用所提出的方法可能取决于“360虚拟边界”的位置。
a.在一个示例中,当“360虚拟边界”与CTU边界重合时,可以应用所提出的方法。例如,对于“360虚拟边界”处的样点,仅在ALF中应用两侧填充。
b.在一个示例中,当“360虚拟边界”与CTU边界不重合时,可以不应用所提出的方法。例如,对于“360虚拟边界”处的样点,可以仅在ALF中应用单侧填充。
c.在一个示例中,可以针对“360虚拟边界”处的样点在ALF中应用相同的填充方法,而不管“360虚拟边界”的位置如何。
i.例如,对于“360虚拟边界”处的样点,可以在ALF中应用单侧填充。
ii.例如,对于“360虚拟边界”处的样点,可以在ALF中应用两侧填充。
d.在一个示例中,对于其中多个边界中的至少一个边界是“360虚拟边界”并且“360虚拟边界”中的至少一个与CTU边界不重合的多个边界的样点,可以不应用所提出的方法。
i.例如,可以通过单侧填充来填充跨这些多个边界中的任何一个的样点。
1.可替代地,此外,如果存在“虚拟边界”,则可以在单侧填充之后在ALF中应用两侧填充。
e.在一个示例中,对于位于两种边界之间的样点,如果它们之一是“360虚拟边界”,而另一种不是,则在ALF处理中仅调用一次填充。
i.在一个示例中,可以调用用于处理ALF虚拟边界的填充方法(例如,两侧填充方法)。
1.可替代地,可以调用用于处理图片(或条带/片/砖/子图片)边界的填充方法(例如,单侧填充)。
ii.可替代地,可以按顺序应用两个或多个填充处理。
1.在一个示例中,可以首先应用用于处理图片(或条带/片/砖/子图片)边界的填充方法(例如,单侧填充),然后,可以进一步调用用于处理ALF虚拟边界的填充方法(例如,两侧填充方法)。
a.可替代地,此外,在第二填充处理中将第一填充之后的填充样点视为可用。
iii.在一个示例中,对于位于两种或多种边界之间的样点(例如,条带边界/片边界/砖边界/“360虚拟边界”/“ALF虚拟边界”/子图片边界),如果只有一个边界是“360虚拟边界”(例如,如图24所示,第一边界是“360虚拟边界”,第二边界是“ALF虚拟边界”或条带/砖/片边界/子图片边界;反之亦然),则可以应用所提出的方法。例如,对于这些样点,只能在ALF中应用两侧填充。
1.可替代地,如果这些多种边界是“360虚拟边界”或图片边界,则可能不会应用所提出的方法。例如,对于这些样点,只能在ALF中应用单侧填充。
f.在一个示例中,对于位于两种或多种边界之间的样点,并且如果边界中的至少一个是“360虚拟边界”并且它与CTU边界不重合,则可以不应用所提出的方法。
i.在这种情况下,仅在“360虚拟边界”处而不在其他种类的边界处处理样点可按照现有技术处理。
ii.在一个示例中,对于这些样点,仅单侧填充可以被应用于ALF中。
g.在一个示例中,对于位于两种或多种边界之间的样点,并且如果边界中的至少一个是“360虚拟边界”,则可以不应用所提出的方法。
i.在这种情况下,仅在“360虚拟边界”处而不在其他种类的边界处处理样点可按照现有技术处理。
ii.在一个示例中,对于这些样点,仅单侧填充可以被应用于ALF中。
17.当在ALF滤波处理中需要的参考样点(例如,在图16C中当对当前样点P0进行滤波时的P0i,i为A/B/C/D)或/和ALF分类处理是“不可用”时,例如,因为样点位于与当前样点不同的视频单元(例如,条带/砖/片/子图片)中,并且不允许使用跨视频单元(例如,条带/砖/片/子图片边界)的样点进行滤波,“不可用”样点可以用“可用”样点(例如,与当前样点在同一条带/砖/片/子图片中的样点)填充。
a.在一个示例中,在必要时,可以首先将“不可用”参考样点限幅到其最近的“可用”水平位置,然后将“不可用”参考样点限幅到其最近的“可用”垂直位置。
b.在一个示例中,在必要时,可以首先将“不可用”参考样点限幅到其最近的“可用”垂直位置,然后,将“不可用”样点限幅到其最近的“可用”水平位置。
c.在一个示例中,“不可用”参考样点的坐标在水平方向上被限幅到其最近的“可用”样点的坐标(例如,最小距离)。
i.在一个示例中,对于坐标为(x1,y1)和(x2,y2)的两个样点,它们之间的水平距离可以计算为Abs(x1-x2)。
d.在一个示例中,“不可用”参考样点的坐标在垂直方向上被限幅到其最近的“可用”样点的坐标(例如,最小距离)。
i.在一个示例中,对于坐标为(x1,y1)和(x2,y2)的两个样点,它们之间的垂直距离可以计算为Abs(y1–y2)。
e.在一个示例中,“不可用”样点被限幅到其最接近的“可用”样点(例如,最小距离)。
i.在一个示例中,对于坐标为(x1,y1)和(x2,y2)的两个样点,它们之间的距离可以计算为(x1–x2)*(x1–x2)+(y1–y2)*(y1–y2)。
ii.可替代地,可以将两个像素之间的距离计算为Abs(x1-x2)+Abs(y1-y2)。
f.可替代地,对当前样点禁用滤波处理。
g.可替代地,可以不允许ALF中的分类处理(例如,针对当前样点的梯度计算)以使用不可用的参考样点。
18.如何得出不可用参考样点的填充样点可能取决于CTU是否与任何边界重合。
a.在一个示例中,在当前CTU不与任何种类的边界重合,但是用于当前样点的滤波处理(例如,ALF分类/ALF滤波处理)需要访问不同视频单元(例如,条带)中的参考样点时,可以应用示例编号16中描述的方法。
i.可替代地,此外,在当前CTU与任何种类的边界都不重合,但是用于当前样点的滤波处理(例如,ALF分类/ALF滤波处理)需要访问不同视频单元(例如,条带)中的参考样点,并且不允许跨越条带边界进行滤波时,可以应用示例编号16中描述的方法。
ii.可替代地,此外,在当前CTU与任何种类的边界都不重合,但是用于当前样点的滤波处理(例如,ALF分类/ALF滤波处理)需要访问不同视频单元(例如,条带)中的参考样点,并且不允许同一视频单元中的参考样点和跨条带边界的滤波时,可以应用示例编号16中描述的方法。
b.在一个示例中,在当前CTU与至少一种边界重合时,可以应用统一的填充方法(例如,两侧或单侧填充)。
i.可替代地,在当前的CTU与多种边界重合并且不允许跨越那些边界的滤波时,可以应用统一的填充方法(例如,2边或1边填充)。
c.在一个示例中,可以使用示例编号16中描述的方法来填充仅无法通过两侧填充或/和单侧填充进行填充的“不可用”样点。
19.可以在不同级别上控制滤波处理(例如,去方块、SAO、ALF、双边滤波、哈达玛(Hadamard)变换滤波等)是否可以跨视频单元(例如,条带/砖/片/子图片边界)的边界访问样点,诸如由自身来控制,而不是针对序列/图片中的所有视频单元来控制。
a.可替代地,可以在PPS/条带报头中信令通知一个语法元素,以指示滤波处理是否可以跨该条带的条带边界。
b.可替代地,可以在PPS中信令通知一个语法元素,以指示滤波处理是否可以跨砖/片的砖/片边界。
c.在一个示例中,可以在SPS/PPS中信令通知语法元素,以指示滤波处理是否可以跨视频/图片的砖边界或/和片边界或/和条带边界或/和“360度虚拟边界”。
i.在一个示例中,可以针对不同种类的边界信令通知分离的语法元素。
ii.在一个示例中,可以针对所有种类的边界信令通知一个语法元素。
iii.在一示例中,可以针对集中边界信令通知一种语法元素。
1.例如,可以为砖边界和片边界两者信令通知一个语法元素。
d.在一个示例中,可以在SPS中信令通知语法元素,以指示在滤波处理上是否存在PPS/条带级别指示。
i.在一个示例中,可以针对不同种类的边界信令通知分离的语法元素。
ii.在一个示例中,可以针对所有种类的边界信令通知一个语法元素。
iii.在一示例中,可以针对集中边界信令通知一种语法元素。
1.例如,可以为砖边界和片边界两者信令通知一个语法元素。
iv.仅当SPS中的相应语法元素等于某个值时,才可以在PPS/条带标头中信令通知有关滤波处理是否可以跨条带/砖/片/子图片边界的指示。
1.可替代地,当SPS中的相应语法元素等于某些值时,可以不在PPS/条带标头中信令通知有关滤波处理是否可以跨条带/砖/片/子图片边界的指示。
a.在这种情况下,如果SPS中的指示等于某个值,则可能不允许滤波处理跨条带/砖/片/子图片边界。
b.在这种情况下,如果SPS中的指示等于某个值,则滤波处理可以跨条带/砖/片/子图片边界。
5.实施例
在以下各节中,描述了如何修改VVC标准的当前版本以适应所公开技术的一些实施例的一些示例。新添加的部分以粗体斜体带下划线的文本表示。删除的部分使用[[]]指示。
5.1实施例#1
loop_filter_across_bricks_enabled_flag等于1,指定在引用PPS的图片中可以跨砖边界执行环路滤波操作。loop_filter_across_bricks_enabled_flag等于0,指定在引用PPS的图片中不跨砖边界执行环路滤波操作。环路滤波操作包括去方块滤波器、样点自适应偏移滤波器[[和自适应环路滤波器]]操作。当不存在时,loop_filter_across_bricks_enabled_flag的值被推断为等于1。
loop_filter_across_slices_enabled_flag等于1,指定在引用PPS的图片中可以跨条带边界执行环路滤波操作。loop_filter_across_slice_enabled_flag等于0,指定在引用PPS的图片中不跨条带边界执行环路滤波操作。环路滤波操作包括包括去方块滤波器、样点自适应偏移滤波器[[和自适应环路滤波器]]操作。当不存在时,loop_filter_across_slices_enabled_flag的值被推断为等于0。
5.2实施例#2
图21示出图片中的CTU的处理。与图19相比的差异用虚线突出显示。
5.3实施例#3
8.8.5.2亮度样点的编解码树块滤波处理
该处理的输入是:
-在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
-滤波重构的亮度图片样点阵列alfPictureL
-指定当前亮度编解码树块的左上样点相对于当前图片的左上样点的亮度位置(xCtb,yCtb)。
该处理的输出是修改的滤波重构的亮度图片样点阵列alfPictureL
使用位置(xCtb,yCtb)和重构的亮度图片样点阵列recPictureL作为输入,以及使用x,y=0..CtbSizeY-1的filtIdx[x][y]和transposeIdx[x][y]作为输出,调用滤波器索引第8.8.5.3节的推导处理。
对于滤波重构的亮度样点alfPictureL[x][y]的推导,当前亮度编解码树块recPictureL[x][y]内的每一个重构亮度样点都进行如下滤波(x,y=0..CtbSizeY-1)。
-由filtIdx[x][y]指定的滤波器所对应的亮度滤波系数阵列f[j]和亮度限幅值阵列c[j]推导如下,j=0...11:
-…
-根据transposeIdx[x][y]推导的亮度滤波器系数和限幅值索引dx如下所示:
-…
-在给定的亮度样点阵列recPicture(其中i,j=-3...3)内的每一个对应的亮度样点的位置(hx+i,vy+j)推导如下:
-…
-变量applyVirtualBoundary的推导如下:
-如果以下[[一个或多个]]条件为真,则将applyVirtualBoundary设置为0。
[[-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。]]
-否则,applyVirtualBoundary被设置为等于1。
-根据水平亮度样点位置y和applyVirtualBoundary,在表8-22中指定重构的样点偏移r1、r2和r3。
-…
8.8.5.4色度样点的编解码树块滤波处理
该处理的输入是:
-自适应环路滤波处理前的重构色度图像样点阵列recPicture,
-滤波重构的色度图片样点阵列alfPicture,
-指定当前色度编解码树块的左上样点相对于当前图片的左上样点的色度位置(xCtbC,yCtbC)。
该处理的输出是修改的滤波重构的色度图片样点阵列alfPicture。
当前色度编解码树块的宽度和高度ctbWidthC和ctbHeightC的推导如下:
ctbWidthC=CtbSizeY/SubWidthC (8-1230)
ctbHeightC=CtbSizeY/SubHeightC (8-1231)
为了推导滤波的重构色度样点alfPicture[x][y],对当前色度编解码树块recPicture[x][y]内的每个重构色度样点进行如下滤波,其中x=0...ctbWidthC-1,y=0...ctbHeightC-1。
-在给定的色度样点阵列recPicture(其中i,j=-2...2)中,每一个对应的色度样点(x,y)的位置(hx+i,vy+j)的推导如下:
-如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtbC+x-PpsVirtualBoundariesPosX[n]/SubWidthC大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n]/SubWidthC,
pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i)(8-1232)
-否则,如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]/SubWidthC-xCtbC-x大于0且小于3,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]/SubWidthC-1,xCtbC+x+i)(8-1233)
-否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1234)
-如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtbC+y-PpsVirtualBoundariesPosY[n]/SubHeightC大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n]/SubHeightC,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)(8-1235)
-否则,如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]/SubHeightC-yCtbC-y大于0且小于3,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]/SubHeightC-1,yCtbC+y+j)(8-1236)
-否则,适用以下:
vy+j=Clip3(0,
pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)
(8-1237)
-变量applyVirtualBoundary的推导如下:
-如果以下[[一个或多个]]条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-[[当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。]]
-否则,applyVirtualBoundary被设置为等于1。
-根据水平亮度样点位置y和applyVirtualBoundary,在表8-22中指定重构的样点偏移r1和r2。
……
可替代地,可以将条件“当前编解码树块的底部边界是图片的底部边界”替换为“当前编解码树块的底部边界是图片或图片外的底部边界”。
5.4实施例#4
该实施例示出了不允许在ALF分类处理中使用VPDU区域以下的样点的示例(对应于第4节中的项目符号7)。
8.8.5.3亮度样点的滤波器索引和ALF转置的推导处理
该处理的输入是:
–亮度位置(xCtb,yCtb),其指定当前亮度编解码树块相对于当前图片的左上样点的左上样点,
–在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
该处理的输出是:
–分类滤波器索引阵列filtIdx[x][y],其中x,y=0..CtbSizeY–1。
–转置索引阵列transposeIdx[x][y],其中x,y=0..CtbSizeY-1。
具有i,j=-2..5的、亮度样点的给定阵列recPicture中每个相应亮度样点(x,y)的位置(hx+i,vy+j)如下得出:
–如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1193)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于6,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1194)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1195)
–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1196)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于6,则适用以下:vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1197)
–否则,适用以下:
–如果yCtb+CtbSizeY大于或等于pic_height_in_luma_samples,则适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1198)
–否则,如果y小于CtbSizeY-4,则适用以下:
vy+j=Clip3(0,yCtb+CtbSizeY-5,yCtb+y+j) (8-1199)
–否则,适用以下:
vy+j=Clip3(yCtb+CtbSizeY-4,pic_height_in_luma_samples-1,yCtb+y+j)(8-1200)
分类滤波器索引阵列filtIdx和转置索引阵列transposeIdx通过以下有序步骤得出:
1.变量filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y](具有x,y=-2..CtbSizeY+1)推导如下:
–如果x和y均为偶数或x和y均为非偶数,则适用以下:
filtH[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy]-recPicture[hx+1,vy]) (8-1201)
filtV[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx,vy-1]-recPicture[hx,vy+1]) (8-1202)
filtD0[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy-1]-recPicture[hx+1,vy+1]) (8-1203)
filtD1[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx+1,vy-1]-recPicture[hx-1,vy+1]) (8-1204)
–否则,将filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y]设置为等于0。
2.变量minY、maxY和ac的推导如下:
–如果(y<<2)等于[[(CtbSizeY-8)]],并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples–1,则将minY设置为等于-2,将maxY设置为等于3,将ac设置为等于96。
–否则,如果(y<<2)等于[[(CtbSizeY-4)]],并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples–1,则将minY设置为等于0,将maxY设置为等于5,将ac设置为等于96。
–否则,将minY设置为等于-2,将maxY设置为等于5,将ac设置为等于64。
3.具有x,y=0..(CtbSizeY-1)>>2的、变量varTempH1[x][y]、varTempV1[x][y]、varTempD01[x][y]、varTempD11[x][y]和varTemp[x][y]的推导如下:
sumH[x][y]=∑ij filtH[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY(8-1205)
sumV[x][y]=∑ij filtV[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY(8-1206)
sumD0[x][y]=∑ij filtD0[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY(8-1207)
sumD1[x][y]=∑ij filtD1[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY(8-1208)
sumOfHV[x][y]=sumH[x][y]+sumV[x][y] (8-1209)
4.具有x,y=0..CtbSizeY–1的、变量dir1[x][y]、dir2[x][y]和dirS[x][y]的推导如下:
–变量hv1、hv0和dirHV的推导如下:
–变量d1、d0和dirD的推导如下:
5.具有x,y=0..CtbSizeY-1的变量avgVar[x][y]的推导如下:
varTab[]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4} (8-1227)
avgVar[x][y]=varTab[Clip3(0,15,(sumOfHV[x>>2][y>>2]*ac)>>(3+BitDepthY))] (8-1228)
6.具有x=y=0..CtbSizeY–1的、分类滤波器索引阵列filtIdx[x][y]和转置索引阵列transposeIdx[x][y]推导如下:
transposeTable[]={0,1,0,2,2,3,1,3}
transposeIdx[x][y]=transposeTable[dir1[x][y]*2+(dir2[x][y]>>1)]
filtIdx[x][y]=avgVar[x][y]
当dirS[x][y]不等于0时,filtIdx[x][y]的修改如下:
filtIdx[x][y]+=(((dir1[x][y]&0x1)<<1)+dirS[x][y])*5(8-1229)
5.5实施例#5
对于位于多种边界(例如,条带/砖边界、360度虚拟边界)的样点,填充处理仅被调用一次。每侧要填充多少行取决于当前样点相对于边界的位置。
在一个示例中,应用了ALF两侧填充方法。可替代地,另外,在对称两侧填充方法中,当样点在两个边界处时,例如,上侧的一个边界和下侧的一个边界,如图27所示,填充多少个样点由较近的边界决定。同时,当推导分类信息时,仅使用图27中的两个边界之间的4行。
图26示出了如果4行样点具有两个边界的填充方法的示例。在一个示例中,图26中的第一边界可以是ALF虚拟边界;图25中的第二边界可以是条带/片/砖边界或360度虚拟边界。
5.6实施例#6
8.8.5.2亮度样点的编解码树块滤波处理
该处理的输入是:
-在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
-滤波重构的亮度图片样点阵列alfPictureL
-指定当前亮度编解码树块的左上样点相对于当前图片的左上样点的亮度位置(xCtb,yCtb)。
该处理的输出是修改的滤波重构的亮度图片样点阵列alfPictureL
使用位置(xCtb,yCtb)和重构的亮度图片样点阵列recPictureL作为输入,以及使用x,y=0..CtbSizeY-1的filtIdx[x][y]和transposeIdx[x][y]作为输出,调用滤波器索引第8.8.5.3节的推导处理。
-在给定的亮度样点阵列recPicture(其中i,j=-3...3)内的每一个对应的亮度样点的位置(hx+i,vy+j)推导如下:
-如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于3,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1197)
-否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于4,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1198)
-否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i)(8-1199)
-[[如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于3,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1200)
-否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于4,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j)(8-1201)]]
-[[否则,]]适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j)(8-1202)
-[[变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
/>
8.8.5.3亮度样点的滤波器索引和ALF转置的推导处理
该处理的输入是:
–亮度位置(xCtb,yCtb),其指定当前亮度编解码树块相对于当前图片的左上样点的左上样点,
–在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
该处理的输出是:
–分类滤波器索引阵列filtIdx[x][y],其中x,y=0..CtbSizeY–1。
–转置索引阵列transposeIdx[x][y],其中x,y=0..CtbSizeY-1。
具有i,j=-2..5的、亮度样点的给定阵列recPicture中每个相应亮度样点(x,y)的位置(hx+i,vy+j)如下得出:
–如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1208)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于6,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1209)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1210)
[[–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1211)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于6,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1212)
–否则,适用以下:
–如果yCtb+CtbSizeY大于或等于pic_height_in_luma_samples,则适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1213)
–否则,如果y小于CtbSizeY-4,则适用以下:
vy+j=Clip3(0,yCtb+CtbSizeY-5,yCtb+y+j) (8-1214)
–否则,适用以下:
vy+j=Clip3(yCtb+CtbSizeY-4,pic_height_in_luma_samples-1,yCtb+y+j)(8-1215)]]
/>
分类滤波器索引阵列filtIdx和转置索引阵列transposeIdx通过以下有序步骤得出:
1.变量filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y](具有x,y=-2..CtbSizeY+1)推导如下:
–如果x和y均为偶数或x和y均为非偶数,则适用以下:
filtH[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy]-recPicture[hx+1,vy]) (8-1216)
filtV[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx,vy-1]-recPicture[hx,vy+1]) (8-1217)
filtD0[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy-1]-recPicture[hx+1,vy+1]) (8-1218)
filtD1[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx+1,vy-1]-recPicture[hx-1,vy+1]) (8-1219)
–否则,将filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y]设置为等于0。
2.变量minY、maxY和ac的推导如下:
–如果(y<<2)等于(CtbSizeY-8)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于-2,maxY设置为等于3,ac设置为等于96。
–否则,如果(y<<2)等于(CtbSizeY-4)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于0,maxY设置为等于5,而ac设置为等于96。
–[[否则,将minY设置为-2,将maxY设置为等于5,将ac设置为等于64。]]
3.变量sumH[x][y]、sumV[x][y]、sumD0[x][y]、sumD1[x][y]和sumOfHV[x][y](其中x,y=0…(CtbSizeY-1)>>2)的导出如下:
sumH[x][y]=∑ij filtH[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY (8-1220)
sumV[x][y]=∑ij filtV[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY (8-1221)
sumD0[x][y]=∑ij filtD0[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY (8-1222)
sumD1[x][y]=∑ij filtD1[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中i=-2..5,j=minY..maxY (8-1223)
sumOfHV[x][y]=sumH[x][y]+sumV[x][y] (8-1224)
...
8.8.5.4色度样点的编解码树块滤波处理
该处理的输入是
-自适应环路滤波处理前的重构色度图像样点阵列recPicture,
-滤波重构的色度图片样点阵列alfPicture,
-指定当前色度编解码树块的左上样点相对于当前图片的左上样点的色度位置(xCtbC,yCtbC)。
该处理的输出是修改的滤波重构的色度图片样点阵列alfPicture。
当前色度编解码树块的宽度和高度ctbWidthC和ctbHeightC的推导如下:
ctbWidthC=CtbSizeY/SubWidthC (8-1245)
ctbHeightC=CtbSizeY/SubHeightC (8-1246)
为了推导滤波的重构色度样点alfPicture[x][y],对当前色度编解码树块recPicture[x][y]内的每个重构色度样点进行如下滤波,其中x=0...ctbWidthC-1,y=0...ctbHeightC-1。
-在给定的色度样点阵列recPicture(其中i,j=-2...2)中,每一个对应的色度样点(x,y)的位置(hx+i,vy+j)的推导如下:
-如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtbC+x-PpsVirtualBoundariesPosX[n]/SubWidthC大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n]/SubWidthC,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1247)
-否则,如果对于任何n=0...pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosX[n]/SubWidthC-xCtbC-x大于0且小于3,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]/SubWidthC-1,xCtbC+x+i) (8-1248)
-否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i)
(8-1249)
-[[如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且yCtbC+y-PpsVirtualBoundariesPosY[n]/SubHeightC大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n]/SubHeightC,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j) (8-1250)
-否则,如果对于任何n=0...pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且PpsVirtualBoundariesPosY[n]/SubHeightC-yCtbC-y大于0且小于3,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]/SubHeightC-1,yCtbC+y+j)(8-1251)
-否则,]]适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)
(8-1252)
-[[变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
–通过调用8.8.5.5中规定的亮度样点的垂直边界位置推导处理来导出变量boundaryPos1和boundaryPos2,且yCtb等于yCtb,y等于y。
–将变量boundaryPos1设置为等于boundaryPos1/SubWidthC。
–将变量boundaryPos2设置为等于boundaryPos2/SubWidthC。
–根据水平亮度样点位置y和applyVirtualBoundary,在表8 24中指定了重构的样点偏移r1和r2。
–变量curr的导出如下:
curr=recPicture[hx,vy] (8-1253)
–色度滤波器系数的阵列f[j]和色度限幅值的阵列c[j]导出如下,其中j=0..5:
f[j]=AlfCoeffC[slice_alf_aps_id_chroma][j] (8-1254)
c[j]=AlfClipC[slice_alf_aps_id_chroma][j] (8-1255)
–变量总和的导出如下:
sum=f[0]*(Clip3(-c[0],c[0],recPicture[hx,vy+r2]-curr)+Clip3(-c[0],c[0],recPicture[hx,vy-r2]-curr))+
f[1]*(Clip3(-c[1],c[1],recPicture[hx+1,vy+r1]-curr)+Clip3(-c[1],c[1],recPicture[hx-1,vy-r1]-curr))+f[2]*(Clip3(-c[2],c[2],recPicture[hx,vy+r1]-curr)+Clip3(-c[2],c[2],recPicture[hx,vy-r1]-curr))+f[3]*(Clip3(-c[3],c[3],recPicture[hx-1,vy+r1]-curr)+Clip3(-c[3],c[3],recPicture[hx+1,vy-r1]-curr))+f[4]*(Clip3(-c[4],c[4],recPicture[hx+2,vy]-curr)+Clip3(-c[4],c[4],recPicture[hx-2,vy]-curr))+f[5]*(Clip3(-c[5],c[5],recPicture[hx+1,vy]-curr)+Clip3(-c[5],c[5],recPicture[hx-1,vy]-curr)) (8-1256)
sum=curr+(sum+64)>>7) (8-1257)
–修改的滤波后的重构色度图像样点alfPicture[xCtbC+x][yCtbC+y]的导出如下:
–如果pcm_loop_filter_disabled_flag和pcm_flag[(xCtbC+x)*SubWidthC][(yCtbC+y)*SubHeightC]都等于1,则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=recPictureL[hx,vy] (8-1258)
–否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),适用以下:
alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepthC)-1,sum) (8-1259)
[[表8-25-根据水平亮度样点位置y和applyVirtualBoundary的r1和r2的规范]]
8.8.5.5亮度样点的垂直边界位置推导处理
/>
/>
5.7实施例#7
对于CTU,它可能不与任何边界(例如,图片/条带/片/砖/子图片边界)重合。但是,可能需要访问当前单元(例如,图片/条带/片/砖/子图片)之外的样点。如果禁用了跨条带边界的滤波(例如loop_filter_across_slices_enabled_flag为假),则需要将样点填充到当前单元之外。
例如,对于图28中的样点2801(例如,亮度样点),可以如图29中那样填充在ALF滤波处理中使用的样点。
5.8实施例#8
在该实施例中,应用了以下主要思想:
在启用ALF虚拟边界时:
-对于不在图片中最后一行CTU中的CTU(例如,CTU的底部边界不是图片的底部边界或超过图片的底部边界),启用ALF虚拟边界,即一个CTU可以分为两部分或更多部分,一个部分中的样点不允许使用另一部分中的样点。
-对于位于图片中最后一行CTU中的CTU(例如,CTU的底部边界是图片的底部边界或超过图片的底部边界),启用ALF虚拟边界,即一个CTU可能会被划分为两部分或更多部分,一个部分中的样点不允许使用另一部分中的样点。
在分类处理中填充边界(包括ALF虚拟边界、条带/片/砖/子图片边界、“360虚拟边界”)时:
对于位于一个(或多种)边界的样点,当不允许使用跨边界的相邻样点时,执行单边填充以填充此类相邻样点。
在ALF滤波处理中对边界(包括ALF虚拟边界、条带/片/砖/子图片边界、“360虚拟边界”)进行填充时:
-当不允许使用跨边界的相邻样点时,对于位于与CTU边界重合的一个(或多种)边界(条带/片/砖/子图片边界或“360虚拟边界”)处的样点,执行两侧边填充以填充此类相邻样点。
-当不允许使用跨边界的相邻样点时,对于位于不与CTU边界重合的一个(或多种)边界(图片边界或“360虚拟边界”)处的样点,执行单侧填充以填充此类相邻样点。
8.8.5.2亮度样点的编解码树块滤波处理
该处理的输入是:
-在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
-滤波重构的亮度图片样点阵列alfPictureL
-指定当前亮度编解码树块的左上样点相对于当前图片的左上样点的亮度位置(xCtb,yCtb)。
该处理的输出是修改的滤波重构的亮度图片样点阵列alfPictureL
使用位置(xCtb,yCtb)和重构的亮度图片样点阵列recPictureL作为输入,以及使用x,y=0..CtbSizeY-1的filtIdx[x][y]和transposeIdx[x][y]作为输出,调用滤波器索引第8.8.5.3节的推导处理。
对于滤波重构的亮度样点alfPictureL[x][y]的推导,当前亮度编解码树块recPictureL[x][y]内的每一个重构亮度样点都进行如下滤波(x,y=0..CtbSizeY-1):
-由filtIdx[x][y]指定的滤波器所对应的亮度滤波系数阵列f[j]和亮度限幅值阵列c[j]推导如下,j=0...11:
-如果AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]小于16,则适用以下:
i=AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize](8-1187)
f[j]=AlfFixFiltCoeff[AlfClassToFiltMap[i][filtidx]][j](8-1188)
c[j]=2BitdepthY (8-1189)
-否则(AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]大于或等于16),适用以下:
i=slice_alf_aps_id_luma[AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]-16] (8-1190)
f[j]=AlfCoeffL[i][filtIdx[x][y]][j] (8-1191)
c[j]=AlfClipL[i][filtIdx[x][y]][j] (8-1192)
-根据transposeIdx[x][y]推导的亮度滤波器系数和限幅值索引dx如下所示:
-如果transposeIndex[x][y]等于1,则适用以下:
idx[]={9,4,10,8,1,5,11,7,3,0,2,6} (8-1193)
-否则,如果transposeIndex[x][y]等于2,则适用以下:
idx[]={0,3,2,1,8,7,6,5,4,9,10,11} (8-1194)
-否则,如果transposeIndex[x][y]等于3,则适用以下:
idx[]={9,8,10,4,3,7,11,5,1,0,2,6} (8-1195)
-否则,适用以下:
idx[]={0,1,2,3,4,5,6,7,8,9,10,11} (8-1196)
-在给定的亮度样点阵列recPicture(其中i,j=-3...3)内的每一个对应的亮度样点的位置(hx+i,vy+j)推导如下:
–如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于3,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1197)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于4,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1198)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1199)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于3,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1200)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于4,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1201)
–否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1202)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,vy+j) (8-1184)
-变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
–当前编解码树块的底部边界是子图片的底部边界,并且在位置(hx,vy)处包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
–根据水平亮度样点位置y和[[applyVirtualBoundary]] 在表8-24中指定了重构样点偏移r1、r2和r3。
-变量curr的推导如下:
curr=recPictureL[hx,vy] (8-1203)
-变量sum的推导如下:
sum=f[idx[0]]*(Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy+r3]-curr)+Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy-r3]-curr))+
f[idx[1]]*(Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx+ c 1,vy+r2]-curr)+Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx- c 1,vy-r2]-curr))+
f[idx[2]]*(Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy+r2]-curr)+Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy-r2]-curr))+
f[idx[3]]*(Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx- c 1,vy+r2]-curr)+Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx+ c 1,vy-r2]-curr))+
f[idx[4]]*(Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx+ c 2,vy+r1]-curr)+Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx- c 2,vy-r1]-curr))+
f[idx[5]]*(Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx+ c 1,vy+r1]-curr)+Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx- c 1,vy-r1]-curr))+
f[idx[6]]*(Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy+r1]-curr)+Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy-r1]-curr))+
f[idx[7]]*(Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx- c 1,vy+r1]-curr)+Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx+ c 1,vy-r1]-curr))+
f[idx[8]]*(Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx- c 2,vy+r1]-curr)+Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx+ c 2,vy-r1]-curr))+
f[idx[9]]*(Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx+ c 3,vy]-curr)+Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx- c 3,vy]-curr))+
f[idx[10]]*(Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx+ c 2,vy]-curr)+Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx- c 2,vy]-curr))+
f[idx[11]]*(Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx+ c 1,vy]-curr)+Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx- c 1,vy]-curr))(8-1204)
sum=curr+((sum+64)>>7) (8-1205)
-修改的滤波重构亮度图片样点alfPictureL[xCtb+x][yCtb+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[xCtb+x][yCtb+y]都等于1,则适用以下:
alfPictureL[xCtb+x][yCtb+y]=recPictureL[hx,vy] (8-1206)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPictureL[xCtb+x][yCtb+y]=Clip3(0,(1<<BitDepthY)-1,sum)(8-1207)
表8-24–根据水平亮度样点位置y、[[和applyVirtualBoundary]]的r1、r2和r3规范
8.8.5.3亮度样点的滤波器索引和ALF转置的推导处理
该处理的输入是:
–亮度位置(xCtb,yCtb),其指定当前亮度编解码树块相对于当前图片的左上样点的左上样点,
–在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
该处理的输出是:
–分类滤波器索引阵列filtIdx[x][y],其中x,y=0..CtbSizeY–1。
–转置索引阵列transposeIdx[x][y],其中x,y=0..CtbSizeY-1。
具有i,j=-2..5的、亮度样点的给定阵列recPicture中每个相应亮度样点(x,y)的位置(hx+i,vy+j)如下得出:
–如果对于任何n=0..pps_num_ver_virtual_boundaries-1,/>pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1208)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于6,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i)(8-1209)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1210)
–[[当包含位置(hx,vy)处的亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且yCtb+y–PpsVirtualBoundariesPosY[n]大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1211)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]–yCtb-y大于0且小于6,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1212)
–否则,适用以下:
–如果yCtb+CtbSizeY大于或等于pic_height_in_luma_samples,则适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1213)
–[[否则,如果y小于CtbSizeY-4,则适用以下:
vy+j=Clip3(0,yCtb+CtbSizeY-5,yCtb+y+j) (8-1214)
–否则,适用以下:
vy+j=Clip3(yCtb+CtbSizeY-4,
pic_height_in_luma_samples-1,yCtb+y+j) (8-1215)
–当包含位置(hx,vy)处的亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,vy+j) (8-1184)]]
分类滤波器索引阵列filtIdx和转置索引阵列transposeIdx通过以下有序步骤得出:
1.变量filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y](具有x,y=-2..CtbSizeY+1)推导如下:
–如果x和y均为偶数或x和y均为非偶数,则适用以下:
filtH[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy]-recPicture[hx+1,vy]) (8-1216)
filtV[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx,vy-1]-recPicture[hx,vy+1]) (8-1217)
filtD0[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy-1]-recPicture[hx+1,vy+1]) (8-1218)
filtD1[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx+1,vy-1]-recPicture[hx-1,vy+1]) (8-1219)
–否则,将filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y]设置为等于0。
2.[[变量minY、maxY和ac的推导如下:
–如果(y<<2)等于(CtbSizeY-8)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于-2,maxY设置为等于3,ac设置为等于96。
–否则,如果(y<<2)等于(CtbSizeY-4)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于0,maxY设置为等于5,而ac设置为等于96。]]
3.变量sumH[x][y]、sumV[x][y]、sumD0[x][y]、sumD1[x][y]和sumOfHV[x][y](其中x,y=0…(CtbSizeY-1)>>2)的导出如下:
sumH[x][y]=∑ij filtH[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],
其中/>
sumV[x][y]=∑ij filtV[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],
其中
sumD0[x][y]=∑ijfiltD0[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],
其中
sumD1[x][y]=∑ijfiltD1[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],
其中
sumOfHV[x][y]=sumH[x][y]+sumV[x][y] (8-1224)
4.x,y=0..CtbSizeY-1时,变量dir1[x][y]、dir2[x][y]和dirS[x][y]的导出如下:
–变量hv1、hv0和dirHV的导出如下:
–如果sumV[x>>2][y>>2]大于sumH[x>>2][y>>2],则适用以下:
hv1=sumV[x>>2][y>>2] (8-1225)
hv0=sumH[x>>2][y>>2] (8-1226)
dirHV=1 (8-1227)
–否则,适用以下:
hv1=sumH[x>>2][y>>2] (8-1228)
hv0=sumV[x>>2][y>>2] (8-1229)
dirHV=3 (8-1230)
–变量d1、d0和dirD的导出如下:
–如果sumD0[x>>2][y>>2]大于sumD1[x>>2][y>>2],则适用以下:
d1=sumD0[x>>2][y>>2] (8-1231)
d0=sumD1[x>>2][y>>2] (8-1232)
dirD=0 (8-1233)
–否则,以下适用:
d1=sumD1[x>>2][y>>2] (8-1234)
d0=sumD0[x>>2][y>>2] (8-1235)
dirD=2 (8-1236)
–变量hvd1、hvd0的导出如下:
hvd1=(d1*hv0>hv1*d0)?d1:hv1 (8-1237)
hvd0=(d1*hv0>hv1*d0)?d0:hv0 (8-1238)
–变量dirS[x][y]、dir1[x][y]和dir2[x][y]的导出如下:
dir1[x][y]=(d1*hv0>hv1*d0)?dirD:dirHV (8-1239)
dir2[x][y]=(d1*hv0>hv1*d0)?dirHV:dirD (8-1240)
dirS[x][y]=(hvd1>2*hvd0)?1:(((hvd1*2>9*hvd0)?2:0)
(8-1241)
5.具有x,y=0..CtbSizeY-1的变量avgVar[x][y]的导出如下:
varTab[]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4} (8-1242)
avgVar[x][y]=varTab[Clip3(0,15,(sumOfHV[x>>2][y>>2]*ac)>>(3+BitDepthY))] (8-1243)
6.分类滤波器索引阵列filtIdx[x][y]和x=y=0..CtbSizeY-1的转置索引阵列transposeIdx[x][y]推导如下:
transposeTable[]={0,1,0,2,2,3,1,3}
transposeIdx[x][y]=transposeTable[dir1[x][y]*2+(dir2[x][y]>>1)]
filtIdx[x][y]=avgVar[x][y]
当dirS[x][y]不等于0时,filtIdx[x][y]修改如下:
filtIdx[x][y]+=(((dir1[x][y]&0x1)<<1)+dirS[x][y])*5(8-1244)
8.8.5.4色度样点的编解码树块滤波处理
该处理的输入是:
-自适应环路滤波处理前的重构色度图像样点阵列recPicture。
-滤波重构的色度图片样点阵列alfPicture。
-指定当前色度编解码树块的左上样点相对于当前图片的左上样点的色度位置(xCtbC,yCtbC)。
该处理的输出是修改的滤波重构的色度图片样点阵列alfPicture。
当前色度编解码树块的宽度和高度ctbWidthC和ctbHeightC的推导如下:
ctbWidthC=CtbSizeY/SubWidthC (8-1245)
ctbHeightC=CtbSizeY/SubHeightC (8-1246)
为了推导滤波的重构色度样点alfPicture[x][y],对当前色度编解码树块recPicture[x][y]内的每个重构色度样点进行如下滤波,其中x=0...ctbWidthC-1,y=0...ctbHeightC-1。
-在给定的色度样点阵列recPicture(其中i,j=-2...2)中,每一个对应的色度样点(x,y)的位置(hx+i,vy+j)的推导如下:
–如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且xCtbC+x-PpsVirtualBoundariesPosX[n]/SubWidthC大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n]/SubWidthC,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1247)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]/SubWidthC-xCtbC–x大于0且小于3,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]/SubWidthC-1,xCtbC+x+i) (8-1248)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1249)
–[[当在位置(hx,vy)上包含亮度样点的子图片loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos/SubWidthC,SubPicRightBoundaryPos/SubWidthC,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且yCtbC+y-PpsVirtualBoundariesPosY[n]/SubHeightC大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n]/SubHeightC,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j) (8-1250)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]/SubHeightC-yCtbC-y大于0且小于3,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]/SubHeightC-1,yCtbC+y+j)(8-1251)
–否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)(8-1252)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos/SubWidthC,SubPicBotBoundaryPos/SubWidthC,vy+j) (8-1184)
-变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
–当前编解码树块的底部边界是子图片的底部边界,并且在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
–根据水平亮度样点位置y[[和applyVirtualBoundary]]在表8-27中指定重构的样点偏移r1和r2。
–变量curr的导出如下:
curr=recPicture[hx,vy] (8-1253)
–色度滤波器系数阵列f[j]和色度限幅值阵列c[j]推导如下,其中j=0..5:
f[j]=AlfCoeffC[slice_alf_aps_id_chroma][j] (8-1254)
c[j]=AlfClipC[slice_alf_aps_id_chroma][j] (8-1255)
–变量sum的导出如下:
sum=f[0]*(Clip3(-c[0],c[0],recPicture[hx,vy+r2]-curr)+Clip3(-c[0],c[0],recPicture[hx,vy-r2]-curr))+
f[1]*(Clip3(-c[1],c[1],recPicture[hx+ c 1,vy+r1]-curr)+Clip3(-c[1],c[1],recPicture[hx- c 1,vy-r1]-curr))+
f[2]*(Clip3(-c[2],c[2],recPicture[hx,vy+r1]-curr)+Clip3(-c[2],c[2],recPicture[hx,vy-r1]-curr))+
f[3]*(Clip3(-c[3],c[3],recPicture[hx- c 1,vy+r1]-curr)+Clip3(-c[3],c[3],recPicture[hx+ c 1,vy-r1]-curr))+
f[4]*(Clip3(-c[4],c[4],recPicture[hx+ c 2,vy]-curr)+Clip3(-c[4],c[4],recPicture[hx- c 2,vy]-curr))+
f[5]*(Clip3(-c[5],c[5],recPicture[hx+ c 1,vy]-curr)+Clip3(-c[5],c[5],recPicture[hx- c 1,vy]-curr)) (8-1256)
sum=curr+(sum+64)>>7) (8-1257)
-修改的滤波重构色度图片样点alfPicture[xCtbC+x][yCtbC+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[(xCtbC+x)*SubWidthC][(yCtbC+y)*SubHeightC]都等于1,则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=recPictureL[hx,vy]
(8-1258)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepthC)-1,sum) (8-1259)
表8-27–根据水平亮度样点位置y[[和applyVirtualBoundary]]的r1和r2的规范
8.8.5.5样点的ALF边界位置推导处理
/>
/>
/>
在上述实施方式中使用的特定值-128可以由其他值代替,诸如-K,其中,例如,K大于或不小于从CTU底部边界偏移的行数(例如,K=-5)。
可替代地,可以基于PpsVirtualBoundariesPosY[n]在1到Ceil(pic_height_in_luma_samples÷8)-1的范围内(包括1和Ceil(pic_height_in_luma_samples÷8)-1),进一步删除“PpsVirtualBoundariesPosY[n]不等于pic_height_in_luma_samples–1或0”的条件检查。
可替代地,如果每个样点位于视频单元边界,则可以使用一个标志来标记是否需要以不同的方式来处理每个样点。
5.9实施例#9
在该实施例中,应用了以下主要思想:
在启用ALF虚拟边界时:
-对于不在图片中最后一行CTU中的CTU(例如,CTU的底部边界不是图片的底部边界或超过图片的底部边界),启用ALF虚拟边界,即一个CTU可以分为两部分或更多部分,一个部分中的样点不允许使用另一部分中的样点。
-对于位于图片中最后一行CTU中的CTU(例如,CTU的底部边界是图片的底部边界或超过图片的底部边界),启用ALF虚拟边界,即一个CTU可能会被划分为两部分或更多部分,一个部分中的样点不允许使用另一部分中的样点。
在分类处理中填充边界(包括ALF虚拟边界、条带/片/砖/子图片边界、“360虚拟边界”)时:
对于位于一个(或多种)边界的样点,当不允许使用跨边界的相邻样点时,执行单边填充以填充此类相邻样点。
在ALF滤波处理中对边界(包括ALF虚拟边界、条带/片/砖/子图片边界、“360虚拟边界”)进行填充时:
-当不允许使用跨边界的相邻样点时,对于位于与CTU边界重合的一个(或多种)边界(条带/片/砖/子图片边界或“360虚拟边界”)处的样点,执行两侧边填充以填充此类相邻样点。
-当不允许使用跨边界的相邻样点时,对于位于不与CTU边界重合的一个(或多种)边界(图片边界或“360虚拟边界”)处的样点,执行单侧填充以填充此类相邻样点。
8.8.5.2亮度样点的编解码树块滤波处理
该处理的输入是:
-在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
-滤波重构的亮度图片样点阵列alfPictureL
-指定当前亮度编解码树块的左上样点相对于当前图片的左上样点的亮度位置(xCtb,yCtb)。
该处理的输出是修改的滤波重构的亮度图片样点阵列alfPictureL
使用位置(xCtb,yCtb)和重构的亮度图片样点阵列recPictureL作为输入,以及使用x,y=0..CtbSizeY-1的filtIdx[x][y]和transposeIdx[x][y]作为输出,调用滤波器索引第8.8.5.3节的推导处理。
对于滤波重构的亮度样点alfPictureL[x][y]的推导,当前亮度编解码树块recPictureL[x][y]内的每一个重构亮度样点都进行如下滤波(x,y=0..CtbSizeY-1):
-由filtIdx[x][y]指定的滤波器所对应的亮度滤波系数阵列f[j]和亮度限幅值阵列c[j]推导如下,j=0...11:
-如果AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]小于16,则适用以下:
i=AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize](8-1187)
f[j]=AlfFixFiltCoeff[AlfClassToFiltMap[i][filtidx]][j](8-1188)c[j]=2BitdepthY (8-1189)
-否则(AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]大于或等于16),适用以下:
i=slice_alf_aps_id_luma[AlfCtbFiltSetIdxY[xCtb>>Log2CtbSize][yCtb>>Log2CtbSize]-6] (8-1190)
f[j]=AlfCoeffL[i][filtIdx[x][y]][j] (8-1191)
c[j]=AlfClipL[i][filtIdx[x][y]][j] (8-1192)
-根据transposeIdx[x][y]推导的亮度滤波器系数和限幅值索引dx如下所示:
-如果transposeIndex[x][y]等于1,则适用以下:
idx[]={9,4,10,8,1,5,11,7,3,0,2,6} (8-1193)
-否则,如果transposeIndex[x][y]等于2,则适用以下:
idx[]={0,3,2,1,8,7,6,5,4,9,10,11} (8-1194)
-否则,如果transposeIndex[x][y]等于3,则适用以下:
idx[]={9,8,10,4,3,7,11,5,1,0,2,6} (8-1195)
-否则,适用以下:
idx[]={0,1,2,3,4,5,6,7,8,9,10,11} (8-1196)
-在给定的亮度样点阵列recPicture(其中i,j=-3...3)内的每一个对应的亮度样点的位置(hx+i,vy+j)推导如下:
–如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于3,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1197)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于4,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1198)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1199)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且yCtb+y-PpsVirtualBoundariesPosY[n]大于或等于0且小于3,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1200)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]-yCtb-y大于0且小于4,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1201)
–否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1202)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,vy+j) (8-1184)
-变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_ bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_ slices_enabled_flag等于0。
-当前编解码树块的底部边界是子图片的底部边界,并且在位置(hx,v y )处包含亮 度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_ filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
–根据 亮度样点位置y/> 在表8-24中指定了重构的样点偏移r1、r2和r3。
-变量curr的推导如下:
curr=recPictureL[hx,vy] (8-1203)
-变量sum的推导如下:
sum=f[idx[0]]*(Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy+r3]-curr)+Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy-r3]-curr))+
f[idx[1]]*(Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx+ c 1,vy+r2]-curr)+Clip3(-c[idx[1]],c[idx[1]],recPictureL[hx- c 1,vy-r2]-curr))+
f[idx[2]]*(Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy+r2]-curr)+Clip3(-c[idx[2]],c[idx[2]],recPictureL[hx,vy-r2]-curr))+
f[idx[3]]*(Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx- c 1,vy+r2]-curr)+Clip3(-c[idx[3]],c[idx[3]],recPictureL[hx+ c 1,vy-r2]-curr))+
f[idx[4]]*(Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx+ c 2,vy+r1]-curr)+Clip3(-c[idx[4]],c[idx[4]],recPictureL[hx- c 2,vy-r1]-curr))+
f[idx[5]]*(Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx+ c 1,vy+r1]-curr)+Clip3(-c[idx[5]],c[idx[5]],recPictureL[hx- c 1,vy-r1]-curr))+
f[idx[6]]*(Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy+r1]-curr)+Clip3(-c[idx[6]],c[idx[6]],recPictureL[hx,vy-r1]-curr))+
f[idx[7]]*(Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx- c 1,vy+r1]-curr)+Clip3(-c[idx[7]],c[idx[7]],recPictureL[hx+ c 1,vy-r1]-curr))+
f[idx[8]]*(Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx- c 2,vy+r1]-curr)+Clip3(-c[idx[8]],c[idx[8]],recPictureL[hx+ c 2,vy-r1]-curr))+
f[idx[9]]*(Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx+ c 3,vy]-curr)+Clip3(-c[idx[9]],c[idx[9]],recPictureL[hx- c 3,vy]-curr))+
f[idx[10]]*(Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx+ c 2,vy]-curr)+Clip3(-c[idx[10]],c[idx[10]],recPictureL[hx- c 2,vy]-curr))+
f[idx[11]]*(Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx+ c 1,vy]-curr)+Clip3(-c[idx[11]],c[idx[11]],recPictureL[hx- c 1,vy]-curr)) (8-1204)
sum=curr+((sum+64)>>7) (8-1205)
-修改的滤波重构亮度图片样点alfPictureL[xCtb+x][yCtb+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[xCtb+x][yCtb+y]都等于1,则适用以下:
alfPictureL[xCtb+x][yCtb+y]=recPictureL[hx,vy] (8-1206)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPictureL[xCtb+x][yCtb+y]=Clip3(0,(1<<BitDepthY)-1,sum) (8-1207)
表8-24–根据[[水平]亮度样点位置y、/>[[和applyVirtualBoundary]]的r1、r2和r3规范
/>
8.8.5.3亮度样点的滤波器索引和ALF转置的推导处理
该处理的输入是:
–亮度位置(xCtb,yCtb),其指定当前亮度编解码树块相对于当前图片的左上样点的左上样点,
–在自适应环路滤波处理之前,重构的亮度图片样点阵列recPictureL
该处理的输出是:
–分类滤波器索引阵列filtIdx[x][y],其中x,y=0..CtbSizeY–1。
–转置索引阵列transposeIdx[x][y],其中x,y=0..CtbSizeY-1。
具有i,j=-2..5的、亮度样点的给定阵列recPicture中每个相应亮度样点(x,y)的位置(hx+i,vy+j)如下得出:
–如果对于任何n=0..pps_num_ver_virtual_boundaries-1, pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,并且xCtb+x-PpsVirtualBoundariesPosX[n]大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n],pic_width_in_luma_samples-1,xCtb+x+i) (8-1208)
–否则,如果对于任何n=0..pps_num_ver_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]-xCtb-x大于0且小于6,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]-1,xCtb+x+i) (8-1209)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples-1,xCtb+x+i) (8-1210)
–[[当包含位置(hx,vy)处的亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1,/>并且yCtb+y–PpsVirtualBoundariesPosY[n]大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n],pic_height_in_luma_samples-1,yCtb+y+j) (8-1211)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]–yCtb-y大于0且小于6,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]-1,yCtb+y+j) (8-1212)
–否则,适用以下:
–[[如果yCtb+CtbSizeY大于或等于pic_height_in_luma_samples,则适用以下:]]
vy+j=Clip3(0,pic_height_in_luma_samples-1,yCtb+y+j) (8-1213)
–[[否则,如果y小于CtbSizeY-4,则适用以下:
vy+j=Clip3(0,yCtb+CtbSizeY-5,yCtb+y+j) (8-1214)
–否则,适用以下:
vy+j=Clip3(yCtb+CtbSizeY-4,pic_height_in_luma_samples-1,yCtb+y+j)(8-1215)
–当包含位置(hx,vy)处的亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,vy+j) (8-1184)]]
/>
分类滤波器索引阵列filtIdx和转置索引阵列transposeIdx通过以下有序步骤得出:
1.变量filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y](具有x,y=-2..CtbSizeY+1)推导如下:
–如果x和y均为偶数或x和y均为非偶数,则适用以下:
filtH[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy]-recPicture[hx+1,vy]) (8-1216)
filtV[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx,vy-1]-recPicture[hx,vy+1]) (8-1217)
filtD0[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx-1,vy-1]-recPicture[hx+1,vy+1]) (8-1218)
filtD1[x][y]=Abs((recPicture[hx,vy]<<1)-recPicture[hx+1,vy-1]-recPicture[hx-1,vy+1]) (8-1219)
–否则,将filtH[x][y]、filtV[x][y]、filtD0[x][y]和filtD1[x][y]设置为等于0。
2.[[变量minY、maxY和ac的推导如下:
–如果(y<<2)等于(CtbSizeY-8)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于-2,maxY设置为等于3,ac设置为等于96。
–否则,如果(y<<2)等于(CtbSizeY-4)并且(yCtb+CtbSizeY)小于pic_height_in_luma_samples-1,则将minY设置为等于0,maxY设置为等于5,而ac设置为等于96。]]
/>
–[[变量sumH[x][y]、sumV[x][y]、sumD0[x][y]、sumD1[x][y]和sumOfHV[x][y](其中,x,y=0..(CtbSizeY-1)>>2)的导出如下:]]
sumH[x][y]=∑ij filtH[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中
sumV[x][y]=∑ij filtV[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中
/>
sumD0[x][y]=∑ijfiltD0[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中
sumD1[x][y]=∑ijfiltD1[h(x<<2)+i-xCtb][v(y<<2)+j-yCtb],其中
sumOfHV[x][y]=sumH[x][y]+sumV[x][y] (8-1224)
4.x,y=0..CtbSizeY-1时,变量dir1[x][y]、dir2[x][y]和dirS[x][y]的导出如下:
–变量hv1、hv0和dirHV的导出如下:
–如果sumV[x>>2][y>>2]大于sumH[x>>2][y>>2],则适用以下:
hv1=sumV[x>>2][y>>2] (8-1225)
hv0=sumH[x>>2][y>>2] (8-1226)
dirHV=1 (8-1227)
–否则,适用以下:
hv1=sumH[x>>2][y>>2] (8-1228)
hv0=sumV[x>>2][y>>2] (8-1229)
dirHV=3 (8-1230)
–变量d1、d0和dirD的导出如下:
–如果sumD0[x>>2][y>>2]大于sumD1[x>>2][y>>2],则适用以下:
d1=sumD0[x>>2][y>>2] (8-1231)
d0=sumD1[x>>2][y>>2] (8-1232)
dirD=0 (8-1233)
–否则,以下规定适用:
d1=sumD1[x>>2][y>>2] (8-1234)
d0=sumD0[x>>2][y>>2] (8-1235)
dirD=2 (8-1236)
–变量hvd1、hvd0的导出如下:
hvd1=(d1*hv0>hv1*d0)?d1:hv1 (8-1237)
hvd0=(d1*hv0>hv1*d0)?d0:hv0 (8-1238)
–变量dirS[x][y]、dir1[x][y]和dir2[x][y]的导出如下:
dir1[x][y]=(d1*hv0>hv1*d0)?dirD:dirHV (8-1239)
dir2[x][y]=(d1*hv0>hv1*d0)?dirHV:dirD (8-1240)
dirS[x][y]=(hvd1>2*hvd0)?1:(((hvd1*2>9*hvd0)?2:0)
(8-1241)
5.具有x,y=0..CtbSizeY-1的变量avgVar[x][y]的导出如下:
varTab[]={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4}(8-1242)
avgVar[x][y]=varTab[Clip3(0,15,(sumOfHV[x>>2][y>>2]*ac)>>(3+BitDepthY))] (8-1243)
6.分类滤波器索引阵列filtIdx[x][y]和x=y=0..CtbSizeY-1的转置索引阵列transposeIdx[x][y]推导如下:
transposeTable[]={0,1,0,2,2,3,1,3}
transposeIdx[x][y]=transposeTable[dir1[x][y]*2+(dir2[x][y]>>1)]
filtIdx[x][y]=avgVar[x][y]
当dirS[x][y]不等于0时,filtIdx[x][y]修改如下:
filtIdx[x][y]+=(((dir1[x][y]&0x1)<<1)+dirS[x][y])*5(8-1244)
8.8.5.4色度样点的编解码树块滤波处理
该处理的输入是:
-自适应环路滤波处理前的重构色度图像样点阵列recPicture,
-滤波重构的色度图片样点阵列alfPicture,
-指定当前色度编解码树块的左上样点相对于当前图片的左上样点的色度位置(xCtbC,yCtbC)。
该处理的输出是修改的滤波重构的色度图片样点阵列alfPicture。
当前色度编解码树块的宽度和高度ctbWidthC和ctbHeightC的推导如下:
ctbWidthC=CtbSizeY/SubWidthC (8-1245)
ctbHeightC=CtbSizeY/SubHeightC (8-1246)
为了推导滤波的重构色度样点alfPicture[x][y],对当前色度编解码树块recPicture[x][y]内的每个重构色度样点进行如下滤波,其中x=0...ctbWidthC-1,y=0...ctbHeightC-1。
-在给定的色度样点阵列recPicture(其中i,j=-2...2)中,每一个对应的色度样点(x,y)的位置(hx+i,vy+j)的推导如下:
–如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且xCtbC+x-PpsVirtualBoundariesPosX[n]/SubWidthC大于或等于0且小于2,则适用以下:
hx+i=Clip3(PpsVirtualBoundariesPosX[n]/SubWidthC,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1247)
––否则,如果对于任何n=0..pps_num_ver_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosX[n]/SubWidthC-xCtbC–x大于0且小于3,则适用以下:
hx+i=Clip3(0,PpsVirtualBoundariesPosX[n]/SubWidthC-1,xCtbC+x+i) (8-1248)
–否则,适用以下:
hx+i=Clip3(0,pic_width_in_luma_samples/SubWidthC-1,xCtbC+x+i) (8-1249)
–[[当在位置(hx,vy)上包含亮度样点的子图片loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
hx+i=Clip3(SubPicLeftBoundaryPos/SubWidthC,SubPicRightBoundaryPos/SubWidthC,hx+i) (8-1184)]]
–如果对于任何n=0..pps_num_hor_virtual_boundaries-1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且yCtbC+y-PpsVirtualBoundariesPosY[n]/SubHeightC大于或等于0且小于2,则适用以下:
vy+j=Clip3(PpsVirtualBoundariesPosY[n]/SubHeightC,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j) (8-1250)
–否则,如果对于任何n=0..pps_num_hor_virtual_boundaries–1,pps_loop_filter_across_virtual_boundaries_disabled_flag等于1, 并且PpsVirtualBoundariesPosY[n]/SubHeightC-yCtbC-y大于0且小于3,则适用以下:
vy+j=Clip3(0,PpsVirtualBoundariesPosY[n]/SubHeightC-1,yCtbC+y+j)(8-1251)
–否则,适用以下:
vy+j=Clip3(0,pic_height_in_luma_samples/SubHeightC-1,yCtbC+y+j)(8-1252)
–[[当在位置(hx,vy)上包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0时,适用以下:
vy+j=Clip3(SubPicTopBoundaryPos/SubWidthC,SubPicBotBoundaryPos/SubWidthC,vy+j) (8-1184)
-变量applyVirtualBoundary的推导如下:
-如果以下一个或多个条件为真,则将applyVirtualBoundary设置为0。
-当前编解码树块的底部边界是图片的底部边界。
-当前编解码树块的底部边界是砖的底部边界,并且loop_filter_across_bricks_enabled_flag等于0。
-当前编解码树块的底部边界是条带的底部边界,并且loop_filter_across_slices_enabled_flag等于0。
–当前编解码树块的底部边界是子图片的底部边界,并且在位置(hx,vy)处包含亮度样点的子图片的loop_filter_across_sub_pic_enabled_flag[SubPicIdx]等于0。
-当前编解码树块的底部边界是图片的底部虚拟边界之一,并且pps_loop_filter_across_virtual_boundaries_disabled_flag被设置为等于1。
-否则,applyVirtualBoundary被设置为等于1。]]
–根据 样点位置y、clipTopPos和clipBottomPos在表8-27中指定重构的样点偏移r1和r2。
–变量curr的导出如下:
curr=recPicture[hx,vy] (8-1253)
–色度滤波器系数阵列f[j]和色度限幅值阵列c[j]推导如下,其中j=0..5:
f[j]=AlfCoeffC[slice_alf_aps_id_chroma][j] (8-1254)
c[j]=AlfClipC[slice_alf_aps_id_chroma][j] (8-1255)
–变量sum的导出如下:
sum=f[0]*(Clip3(-c[0],c[0],recPicture[hx,vy+r2]-curr)+Clip3(-c[0],c[0],recPicture[hx,vy-r2]-curr))+
f[1]*(Clip3(-c[1],c[1],recPicture[hx+ c 1,vy+r1]-curr)+Clip3(-c[1],c[1],recPicture[hx- c 1,vy-r1]-curr))+
f[2]*(Clip3(-c[2],c[2],recPicture[hx,vy+r1]-curr)+Clip3(-c[2],c[2],recPicture[hx,vy-r1]-curr))+
f[3]*(Clip3(-c[3],c[3],recPicture[hx- c 1,vy+r1]-curr)+Clip3(-c[3],c[3],recPicture[hx+ c 1,vy-r1]-curr))+
f[4]*(Clip3(-c[4],c[4],recPicture[hx+ c 2,vy]-curr)+Clip3(-c[4],c[4],recPicture[hx- c 2,vy]-curr))+
f[5]*(Clip3(-c[5],c[5],recPicture[hx+ c 1,vy]-curr)+Clip3(-c[5],c[5],recPicture[hx- c 1,vy]-curr)) (8-1256)
sum=curr+(sum+64)>>7) (8-1257)
-修改的滤波重构色度图片样点alfPicture[xCtbC+x][yCtbC+y]的推导如下:
-如果pcm_loop_filter_disabled_flag和pcm_flag[(xCtbC+x)*SubWidthC][(yCtbC+y)*SubHeightC]都等于1,则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=recPictureL[hx,vy]
(8-1258)
-否则(pcm_loop_filter_disabled_flag等于0或pcm_flag[x][y]等于0),则适用以下:
alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1<<BitDepthC)-1,sum) (8-1259)
表8-27–根据 样点位置y、/> [[和applyVirtualBoundary]]的r1和r2的规范
8.8.5.5样点的ALF边界位置推导处理
/>
/>
在上述实施方式中使用的特定值-128可以由其他值代替,诸如-K,其中,例如,K大于或不小于从CTU底部边界偏移的行数(例如,K=-5)。
可替代地,如果每个样点位于视频单元边界,则可以使用一个标志来标记是否需要以不同的方式来处理每个样点。
图22是视频处理装置2200的框图。装置2200可以用于实现本文描述的一种或多种方法。装置2200可以体现在智能手机、平板电脑、计算机、物联网(IoT)接收器等中。装置2200可以包括一个或多个处理器2202、一个或多个存储器2204和视频处理硬件2206。处理器2202可以被配置为实现本文档中描述的一种或多种方法。(一个或多个)存储器2204可以用于存储用于实现本文描述的方法和技术的数据和代码。视频处理硬件2206可以用于在硬件电路中实现本文档中描述的一些技术。在一些实施例中,视频处理硬件2206可以在处理器2202(例如,图形处理器单元)的内部或部分内部。
在一些实施例中,视频编解码方法可以使用如关于图22所描述的在硬件平台上实现的装置来实现。
图23是视频处理的示例方法2300的流程图。该方法包括:对于视频的当前视频块和当前视频块的比特流表示之间的转换,确定(2302)要在转换期间使用的一个或多个插值滤波器,其中一个或多个插值滤波器来自用于视频的多个插值滤波器,以及使用一个或多个插值滤波器来执行(2304)转换。
使用解决方案列表进一步描述本文档中描述的各种解决方案和实施例。
第4节的第1项提供了以下解决方案的其他示例。
1.一种视频处理的方法,包括:在视频图片的视频块及其比特流表示之间执行转换,其中,使用编解码树块的逻辑分组来处理视频块,其中,基于底部编解码树块的底部边界是否在视频图片的底部边界之外来对编解码树块进行处理。
2.根据解决方案1所述的方法,其中,处理编解码树块包括:通过使用编解码树块内的样点来对编解码树块的样点值执行自适应环路滤波。
3.根据解决方案1所述的方法,其中,处理编解码树块包括:通过禁用根据虚拟边界将所述编解码树块划分成两部分,来对所述编解码树块的样点值执行自适应环路滤波。
第4节的第2项提供了以下解决方案的其他示例。
4.一种视频处理的方法,包括:基于当前视频块的编解码树块的条件,确定环路滤波期间虚拟样点的使用状态;以及在视频块和与虚拟样点的使用状态一致的视频块的比特流表示之间执行转换。
5.根据解决方案4所述的方法,其中,使用状态的逻辑真值指示当前视频块被虚拟边界至少划分为两部分,并且不允许在一个部分中对样点进行滤波以利用另一部分的信息。
6.根据解决方案4所述的方法,其中,使用状态的逻辑真值指示在环路滤波期间使用虚拟样点,并且其中,使用当前视频块的已修改的重构样点的值来执行的环路滤波。
7.根据解决方案4所述的方法,其中,使用状态的逻辑假值指示允许对块中的样点进行滤波以利用同一块中的信息。
8.根据解决方案4所述的方法,其中,使用状态的逻辑真值指示对当前视频块的重构样点执行环路滤波,而无需进一步修改重构样点。
9.根据解决方案4-8中的任一项所述的方法,其中,由于所述编解码树块具有特定尺寸,所以该条件指定将使用状态设置为逻辑假值。
10.根据解决方案4-8中的任一项所述的方法,其中,由于编解码树块的尺寸大于特定尺寸,因此该条件指定将使用状态设置为逻辑假值。
11.根据解决方案4-8中的任一项所述的方法,编解码树块的尺寸小于特定尺寸。
第4节的第3项提供了以下解决方案的其他示例。
12.根据解决方案5所述的方法,其中,所述条件取决于当前视频块的底部边界是小于视频图片的视频单元的底部边界、还是当前视频块的底部边界是虚拟边界。
13.根据解决方案12所述的方法,其中,所述条件取决于当前视频块的底部边界是否是条带或片或砖边界的底部边界。
14.根据解决方案12的所述方法,其中,在当前视频块的底部边界是条带或片或砖边界的底部边界时,该条件指定将使用状态设置为逻辑真值。
15.根据解决方案4-12所述的方法,其中,在当前视频块的底部边界是图片边界的底部边界或者在图像边界的底部边界之外时,该条件指定将使用状态设置为逻辑假值。
第4节的第4项提供了以下解决方案的其他示例。
16.一种视频处理的方法,包括:在逻辑上分组为一个或多个视频条带或视频砖的视频图片、与所述视频图片的比特流表示之间的转换期间,确定禁用在自适应环路滤波处理中在另一个条带或砖中的样点的使用;以及执行与确定一致的转换。
第4节的第5项提供了以下解决方案的其他示例。
17.一种视频处理的方法,包括:在视频图片的当前视频块与当前视频块的比特流表示之间的转换期间,确定当前视频块包括位于视频图片的视频单元的边界处的样点;以及基于所述确定执行转换,其中,执行所述转换包括使用对于视频图片中的所有边界类型都相同的统一方法,生成用于环路滤波处理的虚拟样点。
18.根据解决方案17所述的方法,其中,视频单元是条带或片或360度视频。
19.根据解决方案17所述的方法,其中,环路滤波包括自适应环路滤波。
20.根据解决方案17-19中的任一项所述的方法,其中,所述统一方法是两侧填充方法。
21.根据解决方案17-20中的任一项所述的方法,其中,所述统一方法是当不允许访问第一行以下的样点、并且利用填充来为第一行以下的样点生成虚拟样点时,访问第二行以上的样点也被设置为不允许、并且利用填充来为第二行以上的样点生成虚拟样点。
22.根据解决方案17-20中的任一项所述的方法,其中,所述统一方法是当不允许访问第一行以上的样点、并且利用填充来为第一行以上的样点生成虚拟样点时,访问第二行以下的样点也被设置为不允许、并且利用填充来为第二行以下样点生成虚拟样点。
23.根据解决方案21-22中任一项所述的方法,其中,所述第一行和要滤波的当前样点所位于的当前行之间的距离、与第二行和第一行之间的距离相等。
第4节的第6项提供了以下解决方案的其他示例。
24.一种视频处理的方法,包括:在视频图片的当前视频块及其比特流表示之间的转换期间,确定在转换期间,应用可用于所述视频图片的多个自适应环路滤波器(ALF)样点选择方法中的一个;以及通过应用多个ALF样点选择方法中的一个来执行转换。
25.根据解决方案24所述的方法,其中,多个ALF样点选择方法包括:第一方法,其中在转换期间、在将环路滤波器应用于当前视频块之前,选择样点;以及第二方法,其中在转换期间、在将环路滤波器应用于当前视频块之后,选择样点。
第4节的第7项提供了以下解决方案的其他示例。
26.一种视频处理的方法,包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则禁止使用跨视频图片的虚拟流水线数据单元(VPDU)的样点,以及使用环路滤波操作的结果来执行转换。
27.根据解决方案26所述的方法,其中,VPDU对应于具有固定尺寸的视频图片的区域。
28.根据解决方案26-27中的任一项所述的方法,其中,所述边界规则进一步指定使用虚拟样点代替禁用样点来进行环路滤波。
29.根据解决方案28所述的方法,其中,通过填充来生成虚拟样点。
第4节的第8项提供了以下解决方案的其他示例。
30.一种视频处理的方法,包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定针对跨视频单元边界的当前视频块的位置,使用不使用填充生成的样点;以及使用环路滤波操作的结果来执行转换。
31.根据解决方案30所述的方法,其中,使用两侧填充技术来生成样点。
32.根据解决方案30所述的方法,其中,环路滤波操作包括在环路滤波操作期间、对位置对称的样点使用相同的虚拟样点生成技术。
33.根据解决方案30-32中的任一项所述的方法,其中,对当前视频块的样点进行环路滤波操作包括:在应用环路滤波之前,对当前视频块的样点进行重塑。
第4节的第9项提供了以下解决方案的其他示例。
34.一种视频处理的方法,包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定对于环路滤波操作选择滤波器,该滤波器的维度应使得在环路滤波期间使用的当前视频块的样点不跨视频图片的视频单元的边界;以及使用环路滤波操作的结果来执行转换。
第4节的第10项提供了以下解决方案的其他示例。
35.一种视频处理的方法,包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则指定基于环路滤波是否需要填充样点来为环路滤波操作选择限幅参数或滤波器系数;以及使用环路滤波操作的结果来执行转换。
36.根据解决方案35所述的方法,其中,限幅参数或滤波器系数包括在比特流表示中。
第4节的第11项提供了以下解决方案的其他示例。
37.一种视频处理的方法,包括:基于边界规则,在当前视频块和当前视频块的比特流表示之间的转换期间,对视频图片的当前视频块的样点执行环路滤波操作;其中,边界规则取决于当前视频块的颜色分量标识;以及使用环路滤波操作的结果来执行转换。
38.根据解决方案37所述的方法,其中,对于亮度和/或不同的颜色分量,边界规则是不同的。
39.根据解决方案1-38中任一项所述的方法,其中,所述转换包括将所述当前视频块编码为所述比特流表示。
40.根据解决方案1-38中的任一项的方法,其中,所述转换包括解码所述比特流表示以生成当前视频块的样点值。
41.一种视频编码装置,包括:处理器,被配置为实现解决方案1-38中的任何一个或多个所述的方法。
42.一种视频解码装置,包括:处理器,被配置为实现解决方案1-38中的任何一个或多个所述的方法。
43.一种其上存储有代码的计算机可读介质,该代码在由处理器执行时使处理器实现解决方案1-38中的任何一个或多个所述的方法。
图31是示出其中可实现本文中所公开的各种技术的示例视频处理系统3100的框图。各种实施方式可以包括系统3100的一些或全部组件。系统3100可以包括用于接收视频内容的输入3102。视频内容可以以原始或未压缩的格式(例如8或10位多分量像素值)接收,或者可以以压缩或编码的格式接收。输入3102可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(PON)等)和无线接口(诸如Wi-Fi或蜂窝接口)。
系统3100可以包括可以实现本文中描述的各种编解码或编码方法的编解码组件3104。编解码组件3104可以减少从编解码组件3104的输入3102到输出的视频的平均比特率,以生成视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。如组件3106所表示的,编解码组件3104的输出可以被存储或经由所连接的通信来发送。在输入3102处接收的视频的存储或传送的比特流(或编解码)表示可以被组件3108使用,以生成被发送到显示接口3110的像素值或可显示视频。从比特流表示中生成用户可见视频的处理有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由编码器执行反向编码结果的相应解码工具或操作。
外围总线接口或显示接口的示例可以包括通用串行总线(USB)或高清多媒体接口(HDMI)或Displayport等。存储接口的示例包括SATA(串行高级技术附件)、PCI、IDE接口等。本文中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其他能够执行数字数据处理和/或视频显示的设备。
图32是表示根据本技术的用于视频处理方法3200的流程图。方法3200包括,在操作3210处,对于视频中的视频图片的块和所述视频的比特流表示的转换,确定用于滤波处理中的分类操作的区域中的样点的子集的梯度。所述区域的维度为M×N,所述块的维度为K×L,M、N、K、L为正整数,并且所述块位于所述区域内。该方法还包括,在操作3220处,基于所述确定执行所述转换。
在一些实施例中,所述样点的子集包括不需要位于跨所述视频图片的多个视频区域的任何边界的相邻样点来确定所述梯度的样点。在一些实施例中,所述样点的子集包括位于所述视频图片的多个视频区域的一个或多个边界处的当前样点。在一些实施例中,在当前样点的至少一个相邻样点位于跨所述一个或多个边界的情况下,生成填充样点。
在一些实施例中,使用沿着边界的单侧的样点来生成所述填充样点。在一些实施例中,通过在所述一个或多个边界处重复所述样点来生成所述填充样点。在一些实施例中,在当前样点位于视频单元的顶部边界的情况下,在所述块上方生成一行或多行填充样点。在一些实施例中,在所述当前样点位于视频单元的左边界的情况下,生成在所述块的左侧的一行或多行填充样点。在一些实施例中,在所述当前样点位于视频单元的右边界的情况下,生成在所述块的右侧的一行或多行填充样点。在一些实施例中,在所述当前样点位于视频单元的底部边界的情况下,在所述块的下方生成一行或多行填充样点。在一些实施例中,边界包括条带边界、砖边界、片边界、子图片边界、360度虚拟边界或自适应环路滤波虚拟边界。在一些实施例中,在所述块位于所述视频图片的底部边界的情况下,为所述块启用所述自适应环路滤波虚拟边界,从而不允许在滤波处理中将所述块的第一部分中的样点用于所述块的第二部分中,所述第一部分和所述第二部分是被所述自适应环路滤波虚拟边界划分的。在一些实施例中,在所述块不在所述视频图片的底部边界的情况下,为所述所述块启用所述自适应环路滤波虚拟边界,从而不允许在滤波处理中将所述块的第一部分中的样点用于所述块的第二部分中,所述第一部分和所述第二部分是被所述自适应环路滤波虚拟边界划分的。
在一些实施例中,所述一行或多行填充样点包括单行或两行填充样点。在一些实施例中,所述区域以所述块为中心。在一些实施例中,M=N=8。在一些实施例中,K=L=4。
在一些实施例中,在所述当前样点位于视频单元的顶部边界和左边界的情况下,基于以下步骤来调整所述区域:基于所述块上方的K1行填充样点,确定M×(N+K1)区域,K1为正整数;和基于所述块左侧的K2行填充样点,确定(M+K2)×(N+K1)区域,K2为正整数。在一些实施例中,在所述当前样点位于视频单元的顶部边界和左边界的情况下,基于以下步骤来调整所述区域:基于所述块左侧的K2行填充样点,确定(M+K2)×N区域,K2为正整数;和基于所述块上方的K1行填充样点,确定(M+K2)×(N+K1)区域,K1为正整数。在一些实施例中,在当前样点位于视频单元的顶部边界和右边界的情况下,基于以下步骤来调整区域:基于所述块上方的K1行填充样点,确定M×(N+K1)区域,K1为正整数;和基于所述块右侧的K2行填充样点,确定(M+K2)×(N+K1)区域,K2为正整数。在一些实施例中,在所述当前样点位于视频单元的顶部边界和右边界的情况下,基于以下步骤来调整区域:基于所述块右侧的K2行填充样点,确定(M+K2)×N区域,K2为正整数;和基于所述块上方的K1行填充样点,确定(M+K2)×(N+K1)区域,K1为正整数。在一些实施例中,在所述当前样点位于视频单元的底部边界和右边界的情况下,基于以下步骤来调整区域:基于所述块下方的K1行填充样点,确定M×(N+K1)区域,K1为正整数;和基于所述块右侧的K2行填充样点,确定(M+K2)×(N+K1)区域,K2为正整数。在一些实施例中,在所述当前样点位于视频单元的底部边界和右边界的情况下,基于以下步骤来调整区域:基于所述块右侧的K2行填充样点,确定(M+K2)×N区域,K2为正整数;和基于所述块下方的K1行填充样点,确定(M+K2)×(N+K1)区域,K1为正整数。在一些实施例中,在所述当前样点位于视频单元的底部边界和左边界的情况下,基于以下步骤来调整区域:基于所述块下方的K1行填充样点,确定M×(N+K1)区域,K1为正整数;和基于所述块左侧的K2行填充样点,确定(M+K2)×(N+K1)区域,K2为正整数。在一些实施例中,在所述当前样点位于视频单元的底部边界和左边界的情况下,基于以下步骤来调整区域:基于所述块左侧的K2行填充样点,确定(M+K2)×N区域,K2为正整数;和基于所述块下方的K1行填充样点,确定(M+K2)×(N+K1)区域,K1为正整数。在一些实施例中,所述梯度部分地基于所述填充样点来确定。
在一些实施例中,在所述块在视频单元的顶部或底部边界的情况下,所述样点的子集位于所述区域的M×(N-C1)子区域中,C1为正整数。在一些实施例中,样点的顶部或底部C1行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的左边界或右边界的情况下,所述样点子集位于所述区域的(M-C1)×N子区域中,C1为正整数。在一些实施例中,样点的左侧或右侧C1行被排除而不用于所述分类操作。
在一些实施例中,在所述块在所述视频单元的顶部和底部边界的情况下,所述样点的子集位于所述区域的M×(N-C1-C2)子区域中,C1和C2为正整数。在一些实施例中,样点的顶部C1行和底部C2行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的顶部边界和左边界的情况下,所述样点的子集位于所述区域的(M-C1)×(N-C2)子区域中,C1和C2为正整数。在一些实施例中,样点的顶部C1行和左侧C2行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的顶部边界和右边界的情况下,所述样点的子集位于所述区域的(M-C1)×(N-C2)子区域中,C1和C2为正整数。在一些实施例中,样点的顶部C1行和右侧C2行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的底部边界和左边界的情况下,所述样点的子集位于所述区域的(M-C1)×(N-C2)子区域中,C1和C2为正整数。在一些实施例中,样点的底部C1行和左侧C2行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的底部边界和右边界的情况下,所述样点的子集位于所述区域的(M-C1)×(N-C2)子区域中,C1和C2为正整数。在一些实施例中,样点的底部C1行和右侧C2行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的左边界和右边界的情况下,所述样点的子集位于所述区域的(M-C1-C2)×N子区域中,C1和C2为正整数。在一些实施例中,样点的顶部C1行和底部C2行被排除而不用于所述分类操作。
在一些实施例中,在所述块在视频单元的顶部边界、底部边界和左边界的情况下,所述样点的子集位于所述区域的(M-C3)×(N-C1-C2)子区域中,C1、C2和C3为正整数。在一些实施例中,样点的顶部C1行、底部C2行和左侧C3行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的顶部边界、底部边界和右边界的情况下,所述样点的子集位于所述区域的(M-C3)×(N-C1-C2)子区域中,C1,C2和C3是正整数。在一些实施例中,样点的顶部C1行、底部C2行和右侧C3行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的左边界、右边界和顶部边界的情况下,所述样点的子集位于所述区域的(M-C1-C2)×(N-C3)子区域中,C1,C2和C3是正整数。在一些实施例中,样点的左侧C1行、右侧C2行和顶部C3行被排除而不用于所述分类操作。在一些实施例中,在所述块在视频单元的左边界、右边界和底部边界的情况下,所述样点的子集位于所述区域的(M-C1-C2)×(N-C3)子区域中,C1,C2和C3为正整数。在一些实施例中,样点的左侧C1行、右侧C2行和顶部C3行被排除而不用于所述分类操作。
在一些实施例中,在所述块在视频单元的左边界、右边界、顶部边界和底部边界的情况下,则所述样点的子集位于所述区域的(M-C1-C2)×(N-C3-C4)子区域中,C1、C2、C3和C4为正整数。在一些实施例中,样点的左侧C1行、右侧C2行和顶部C3行和底部C4行被排除而不用于所述分类操作。在一些实施例中,C1、C2、C3或C4中的至少一个等于2。在一些实施例中,C1、C2、C3和C4等于2。
在一些实施例中,所述视频单元包括条带、砖或片。在一些实施例中,所述样点的子集包括其相邻样点不位于跨所述视频图片的多个视频区域的任何边界的样点。
图33是表示根据本技术的用于视频处理方法3300的流程图。方法3300包括,在操作3310处,对于视频中的视频图片的块和所述视频的比特流表示的转换,确定自适应环路滤波处理中的统一填充操作,所述统一填充操作适用于位于所述视频图片的多个视频区域的360虚拟边界处的样点,而不考虑所述视频图片内360虚拟边界的位置。该方法3300还包括,在操作3320处,基于所述确定执行所述转换。
在一些实施例中,所述统一填充操作包括:使用沿着所述360虚拟边界的单侧的样点来生成填充样点。在一些实施例中,通过在所述360虚拟边界处重复所述样点来生成所述填充样点。在一些实施例中,所述360虚拟边界与所述块的实际边界不重合。在一些实施例中,所述统一填充操作包括:使用来自所述360虚拟边界的两侧的样点来生成填充样点。在一些实施例中,所述360虚拟边界包括使用等矩形投影格式投影在所述视频图片上的基础360视频的环绕边缘。
在一些实施例中,所述转换包括将所述视频编码为所述比特流表示。在一些实施例中,所述转换包括将所述比特流表示解码为所述视频。
综上所述,为了说明的目的,本文描述了本公开技术的具体实施例,但是可以在不偏离本发明的范围的情况下进行各种修改。因此,除了所附权利要求外,本公开技术不受限制。
所公开技术的一些实施例包括作出启用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被启用时,编码器将在视频块的处理中使用或实现该工具或模式,但不一定基于该工具或模式的使用来修改所产生的比特流。也就是说,当基于决策或确定启用视频处理工具或模式时,从视频块到视频的比特流表示的转换将使用该视频处理工具或模式。在另一示例中,当视频处理工具或模式被启用时,解码器将在知晓已经基于视频处理工具或模式修改比特流的情况下处理比特流。也就是说,将使用基于决策或确定而启用的视频处理工具或模式来执行从视频的比特流表示到视频块的转换。
所公开技术的一些实施例包括作出禁用视频处理工具或模式的决策或确定。在一个示例中,当视频处理工具或模式被禁用时,编码器将不在视频块到视频的比特流表示的转换中使用该工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将在知晓未使用基于所述决策或确定而启用的视频处理工具或模式修改比特流的情况下处理比特流。
本文档中描述的主题名称和功能性操作的实现可以在数字电子电路、或计算机软件、固件或硬件中实现,包括本说明书中所公开的结构及其结构等效体,或其中一个或多个的组合。本说明中描述的主题的实现可以实现为一个或多个计算机程序产品,例如,一个或多个编码在有形的且非易失的计算机可读介质上的计算机程序指令的模块,以供数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信令的物质组成或其中一个或其中多个的组合。术语“数据处理单元”或“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多处理器或计算机组。除硬件外,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统或其中一个或多个的组合。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释语言)编写,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或其他适合在计算环境中使用的单元。计算机程序不一定与文件系统中的文件对应。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标志语言文档中的一个或多个脚本)、专用于该程序的单个文件中、或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台或多台计算机上来执行,这些计算机位于一个站点上或分布在多个站点上,并通过通信网络互连。
本说明书中描述的处理和逻辑流可以通过一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序,通过在输入数据上操作并生成输出来执行功能。处理和逻辑流也可以通过特殊用途的逻辑电路来执行,并且装置也可以实现为特殊用途的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型数字计算机的任何一个或多个。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是执行指令的处理器和存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁盘、磁光盘或光盘,或通过操作耦合到一个或多个大容量存储设备来从其接收数据或将数据传输到一个或多个大容量存储设备,或两者兼有。然而,计算机不一定具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备。处理器和存储器可以由专用逻辑电路来补充,或合并到专用逻辑电路中。
旨在将说明书与附图一起仅视为示例性的,其中示例性的指的是示例。如本文所使用的,“或”的使用旨在包括“和/或”,除非上下文另外明确指出。
虽然本专利文件包括许多细节,但不应将其解释为对任何发明或权利要求范围的限制,而应解释为对特定发明的特定实施例的特性的描述。本专利文件在单独实施例的上下文描述的某些特性也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种功能也可以在多个实施例中单独实施,或在任何合适的子组合中实施。此外,尽管上述特性可以描述为在某些组合中起作用,甚至最初要求是这样,但在某些情况下,可以从组合中移除权利要求组合中的一个或多个特性,并且权利要求的组合可以指向子组合或子组合的变体。
同样,尽管附图中以特定顺序描述了操作,但这不应理解为要获得想要的结果必须按照所示的特定顺序或顺序执行此类操作,或执行所有说明的操作。此外,本专利文件所述实施例中各种系统组件的分离不应理解为在所有实施例中都需要这样的分离。
仅描述了一些实现和示例,其他实现、增强和变体可以基于本专利文件中描述和说明的内容做出。

Claims (79)

1.一种处理视频数据的方法,包括:
对于包含一个或多个编解码树块的视频中的图片与视频的比特流之间的第一转换,确定尺寸为8×8的区域中的样点子集的梯度,用于在第一滤波处理中推导第一编解码树块的4×4块的分类,其中,所述4×4块位于所述第一编解码树块内,并且所述4×4块位于所述8×8区域内;和
根据所述确定执行所述第一转换,
其中,所述第一滤波处理包括:
基于所述梯度,确定所述4×4块的样点的滤波系数集;
为所述样点确定限幅值集合;和
基于所述滤波系数集和所述限幅值集合对所述样点应用滤波器,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的左边界的4×4块中存在样点时,对所述8×8区域中最左边两列样点进行填充。
2.如权利要求1所述的方法,其中所述视频单元的所述边界包括条带边界、片边界、子图片边界、360度虚拟边界或自适应环路滤波虚拟边界。
3.如权利要求1所述的方法,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的顶部边界的4×4块中存在样点时,对所述8×8区域中最靠上的两行样点进行填充。
4.如权利要求1所述的方法,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的右边界的4×4块中存在样点时,对所述8×8区域中最右边两行样点进行填充。
5.如权利要求1所述的方法,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的底部边界的4×4块中存在样点时,对所述8×8区域中最靠下的两行样点进行填充。
6.如权利要求2所述的方法,其中,在所述第一编解码树块的下边界不是所述图片的下边界的情况下,为所述第一编解码树块启用所述自适应环路滤波虚拟边界。
7.如权利要求2所述的方法,其中,在所述第一编解码树块位于所述图片的下边界,并且所述第一编解码树块的左上样点和所述图片的下边界之间的垂直距离不小于特定值的情况下,为所述第一编解码树块启用所述自适应环路滤波虚拟边界。
8.如权利要求2所述的方法,其中单侧填充操作被应用于跨越所述360度虚拟边界的样点,而不管所述360度虚拟边界在所述图片中的位置,其中在所述单侧填充操作中,如果要使用的一个样点在所述360度虚拟边界之外,则所述样点是从所述360度虚拟边界内的可用样点复制的。
9.如权利要求1所述的方法,其中,指示是否允许使用跨越不同种类边界的样点的单独语法元素在不同级别通过信令传输,并且其中所述不同种类的边界包括条带边界、片边界和子图片边界。
10.如权利要求1所述的方法,其中语法元素中用于片边界的第一语法元素被包括在图片参数集中,用以指示是否允许使用跨越片边界的样点;语法元素中用于条带边界的第二语法元素被包括在所述图片参数集中,用以指示是否允许使用跨越条带边界的样点;语法元素中用于子图片边界的第三语法元素被包括在序列参数集中,用以指示是否允许使用跨越子图片边界的样点。
11.如权利要求9所述的方法,其中所述单独语法元素进一步被应用于去方块滤波处理、样点自适应偏移(SAO)滤波处理、双边滤波处理或哈达玛变换滤波处理中的至少一个。
12.如权利要求1所述的方法,其中所述8×8区域位于一个10×10区域内,在所述第一滤波处理中不允许使用跨视频单元边界的样点的情况下,当位于所述视频单元的左边界的4×4块中存在样点时,对所述10×10区域中最左侧的三列样点进行填充,所述10×10区域中最左侧的三列样点包括所述8×8区域中的两列样点。
13.如权利要求1所述的方法,其中所述第一转换包括将所述视频编码到所述比特流中。
14.如权利要求1所述的方法,其中所述第一转换包括从所述比特流中解码所述视频。
15.根据权利要求1所述的方法,其中,所述样点子集包括位于所述图片的多个视频区域的一个或多个边界处的当前样点。
16.根据权利要求15所述的方法,其中,在所述当前样点的至少一个相邻样点位于跨所述一个或多个边界的情况下,生成填充样点。
17.根据权利要求16所述的方法,其中,使用沿着边界的单侧的样点来生成所述填充样点。
18.根据权利要求17所述的方法,其中,通过在所述一个或多个边界处重复所述样点来生成所述填充样点。
19.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的顶部边界的情况下,在所述4×4块上方生成一行或多行填充样点。
20.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的右边界的情况下,在所述4×4块的右侧生成一行或多行填充样点。
21.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的底部边界的情况下,在所述4×4块的下方生成一行或多行填充样点。
22.根据权利要求15至21中的任一项所述的方法,其中,边界包括条带边界、砖边界、片边界、子图片边界、360度虚拟边界或自适应环路滤波虚拟边界。
23.如权利要求6或7所述的方法,其中,不允许在所述第一滤波处理中将所述第一编解码树块的第一部分中的样点用于所述第一编解码树块的第二部分,所述第一部分和所述第二部分是被所述自适应环路滤波虚拟边界划分的。
24.根据权利要求19至21中的任一项所述的方法,其中,所述一行或多行填充样点包括单行或两行填充样点。
25.根据权利要求1至21中任一项所述的方法,其中,所述8×8区域以所述4×4块为中心。
26.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的顶部边界和左边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块上方的K1行填充样点,确定8×(8+K1)区域,K1为正整数;和
基于所述4×4块左侧的K2行填充样点,确定(8+K2)×(8+K1)区域,K2为正整数。
27.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的顶部边界和左边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块左侧的K2行填充样点,确定(8+K2)×8区域,K2为正整数;和
基于所述4×4块上方的K1行填充样点,确定(8+K2)×(8+K1)区域,K1为正整数。
28.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的顶部边界和右边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块上方的K1行填充样点,确定8×(8+K1)区域,K1为正整数;和
基于所述4×4块右侧的K2行填充样点,确定(8+K2)×(8+K1)区域,K2为正整数。
29.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的顶部边界和右边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块右侧的K2行填充样点,确定(8+K2)×8区域,K2为正整数;和
基于所述4×4块上方的K1行填充样点,确定(8+K2)×(8+K1)区域,K1为正整数。
30.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的底部边界和右边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块下方的K1行填充样点,确定8×(8+K1)区域,K1为正整数;和
基于所述4×4块右侧的K2行填充样点,确定(8+K2)×(8+K1)区域,K2为正整数。
31.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的底部边界和右边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块右侧的K2行填充样点,确定(8+K2)×8区域,K2为正整数;和
基于所述4×4块下方的K1行填充样点,确定(8+K2)×(8+K1)区域,K1为正整数。
32.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的底部边界和左边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块下方的K1行填充样点,确定8×(8+K1)区域,K1为正整数;和
基于所述4×4块左侧的K2行填充样点,确定(8+K2)×(8+K1)区域,K2为正整数。
33.根据权利要求15所述的方法,其中,在所述当前样点位于视频单元的底部边界和左边界的情况下,基于以下步骤来调整所述8×8区域:
基于所述4×4块左侧的K2行填充样点,确定(8+K2)×8区域,K2为正整数;和
基于所述4×4块下方的K1行填充样点,确定(8+K2)×(8+K1)区域,K1为正整数。
34.根据权利要求15所述的方法,其中,所述梯度部分地基于填充样点来确定。
35.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的顶部或底部边界的情况下,所述样点子集位于所述8×8区域的8×(8-C1)子区域中,C1为正整数。
36.根据权利要求35所述的方法,其中,样点的顶部或底部C1行被排除而不用于所述分类操作。
37.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的左边界或右边界的情况下,所述样点子集位于所述8×8区域的(8-C1)×8子区域中,C1为正整数。
38.根据权利要求37所述的方法,其中,样点的左侧或右侧C1行被排除而不用于所述分类操作。
39.根据权利要求1所述的方法,其中,在所述4×4块在所述视频单元的顶部和底部边界的情况下,所述样点子集位于所述8×8区域的8×(8-C1-C2)子区域中,C1和C2为正整数。
40.根据权利要求39所述的方法,其中,样点的顶部C1行和底部C2行被排除而不用于所述分类操作。
41.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的顶部边界和左边界的情况下,所述样点子集位于所述8×8区域的(8-C1)×(8-C2)子区域中,C1和C2为正整数。
42.根据权利要求41所述的方法,其中,样点的顶部C1行和左侧C2行被排除而不用于所述分类操作。
43.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的顶部边界和右边界的情况下,所述样点子集位于所述8×8区域的(8-C1)×(8-C2)子区域中,C1和C2为正整数。
44.根据权利要求43所述的方法,其中,样点的顶部C1行和右侧C2行被排除而不用于所述分类操作。
45.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的底部边界和左边界的情况下,所述样点子集位于所述8×8区域的(8-C1)×(8-C2)子区域中,C1和C2为正整数。
46.根据权利要求45所述的方法,其中,样点的底部C1行和左侧C2行被排除而不用于所述分类操作。
47.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的底部边界和右边界的情况下,所述样点子集位于所述8×8区域的(8-C1)×(8-C2)子区域中,C1和C2为正整数。
48.根据权利要求47所述的方法,其中,样点的底部C1行和右侧C2行被排除而不用于所述分类操作。
49.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的左边界和右边界的情况下,所述样点子集位于所述8×8区域的(8-C1-C2)×8子区域中,C1和C2为正整数。
50.根据权利要求49所述的方法,其中,样点的顶部C1行和底部C2行被排除而不用于所述分类操作。
51.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的顶部边界、底部边界和左边界的情况下,所述样点子集位于所述8×8区域的(8-C3)×(8-C1-C2)子区域中,C1、C2和C3为正整数。
52.根据权利要求51所述的方法,其中,样点的顶部C1行、底部C2行和左侧C3行被排除而不用于所述分类操作。
53.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的顶部边界、底部边界和右边界的情况下,所述样点子集位于所述8×8区域的(8-C3)×(8-C1-C2)子区域中,C1,C2和C3是正整数。
54.根据权利要求53所述的方法,其中,样点的顶部C1行、底部C2行和右侧C3行被排除而不用于所述分类操作。
55.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的左边界、右边界和顶部边界的情况下,所述样点子集位于所述8×8区域的(8-C1-C2)×(8-C3)子区域中,C1,C2和C3是正整数。
56.根据权利要求55所述的方法,其中,样点的左侧C1行、右侧C2行和顶部C3行被排除而不用于所述分类操作。
57.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的左边界、右边界和底部边界的情况下,所述样点子集位于所述8×8区域的(8-C1-C2)×(8-C3)子区域中,C1,C2和C3为正整数。
58.根据权利要求57所述的方法,其中,样点的左侧C1行、右侧C2行和顶部C3行被排除而不用于所述分类操作。
59.根据权利要求1所述的方法,其中,在所述4×4块在视频单元的左边界、右边界、顶部边界和底部边界的情况下,则所述样点子集位于所述8×8区域的(8-C1-C2)×(8-C3-C4)子区域中,C1、C2、C3和C4为正整数。
60.根据权利要求59所述的方法,其中,样点的左侧C1行、右侧C2行和顶部C3行和底部C4行被排除而不用于所述分类操作。
61.根据权利要求35至60中任一项所述的方法,其中,C1、C2、C3或C4中的至少一个等于2。
62.根据权利要求35至60中任一项所述的方法,其中,C1、C2、C3和C4等于2。
63.根据权利要求19-21、26至60中任一项所述的方法,其中,所述视频单元包括条带、砖或片。
64.根据权利要求19-21、26至60中任一项所述的方法,其中,所述样点子集包括其相邻样点不位于跨所述图片的多个视频区域的任何边界的样点。
65.根据权利要求1所述的方法,还包括:
对于视频中的视频图片的块和所述视频的比特流的第二转换,确定自适应环路滤波处理中的统一填充操作,所述统一填充操作适用于位于所述视频图片的多个视频区域的360虚拟边界处的样点,而不考虑所述视频图片内360虚拟边界的位置;以及
基于所述确定自适应环路滤波处理中的统一填充操作执行所述第二转换。
66.根据权利要求65所述的方法,其中,所述统一填充操作包括:使用沿着所述360虚拟边界的单侧的样点来生成填充样点。
67.根据权利要求66所述的方法,其中,通过在所述360虚拟边界处重复所述样点来生成所述填充样点。
68.根据权利要求66或67所述的方法,其中,所述360虚拟边界与所述块的实际边界不重合。
69.根据权利要求65所述的方法,其中,所述统一填充操作包括:使用来自所述360虚拟边界的两侧的样点来生成填充样点。
70.根据权利要求65至67中任一项所述的方法,其中,所述360虚拟边界包括使用等矩形投影格式投影在所述视频图片上的基础360视频的环绕边缘。
71.根据权利要求65至67中任一项所述的方法,其中,所述第二转换包括将所述视频编码为所述比特流。
72.根据权利要求65至67中任一项所述的方法,其中,所述第二转换包括将所述比特流解码为所述视频。
73.一种用于处理视频数据的设备,包括处理器和在其上具有指令的非暂时性存储器,其中在所述处理器执行所述指令时,使所述处理器:
对于包含一个或多个编解码树块的视频中的图片与视频的比特流之间的第一转换,确定尺寸为8×8的区域中的样点子集的梯度,用于在第一滤波处理中推导第一编解码树块的4×4块的分类,其中,所述4×4块位于所述第一编解码树块内,并且所述4×4块位于所述8×8区域内;和
基于所述确定执行所述第一转换,
其中,所述第一滤波处理包括:
基于所述梯度,确定所述4×4块的样点的滤波系数集;
为所述样点确定限幅值集合;和
基于所述滤波系数集和所述限幅值集合对所述样点应用滤波器,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的左边界的4×4块中存在样点时,对所述8×8区域中最左边两列样点进行填充。
74.如权利要求73所述的设备,其中所述视频单元的所述边界包括条带边界、片边界、子图片边界、360度虚拟边界或自适应环路滤波虚拟边界;
其中在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下:
当位于所述视频单元的顶部边界的4×4块中存在样点时,对所述8×8区域中最靠上的两行样点进行填充;
当位于所述视频单元的右边界的4×4块中存在样点时,对所述8×8区域中最右边两行样点进行填充;
当位于所述视频单元的底部边界的4×4块中存在样点时,对所述8×8区域中最靠下的两行样点进行填充;
其中,在所述第一编解码树块位于所述图片的下边界,并且所述第一编解码树块的左上样点和所述图片的下边界之间的垂直距离不小于特定值的情况下,为所述第一编解码树块启用所述自适应环路滤波虚拟边界;
其中单侧填充操作被应用于跨越所述360度虚拟边界的样点,而不管所述360度虚拟边界在所述图片中的位置,其中在所述单侧填充操作中,如果要使用的一个样点在所述360度虚拟边界之外,则所述样点是从所述360度虚拟边界内的可用样点复制的;
其中,指示是否允许使用跨越不同种类边界的样点的单独语法元素在不同级别通过信令传输,并且其中所述不同种类的边界包括条带边界、片边界和子图片边界;
其中语法元素中用于片边界的第一语法元素被包括在图片参数集中,用以指示是否允许使用跨越片边界的样点;语法元素中用于条带边界的第二语法元素被包括在所述图片参数集中,用以指示是否允许使用跨越条带边界的样点;语法元素中用于子图片边界的第三语法元素被包括在序列参数集中,用以指示是否允许使用跨越子图片边界的样点;并且
其中所述单独语法元素进一步被应用于去方块滤波处理、样点自适应偏移(SAO)滤波处理、双边滤波处理或哈达玛变换滤波处理中的至少一个。
75.一种非暂时性的计算机可读存储介质,用于存储指令,所述指令使得处理器:
对于包含一个或多个编解码树块的视频中的图片与视频的比特流之间的第一转换,确定尺寸为8×8的区域中的样点子集的梯度,用于在第一滤波处理中推导第一编解码树块的4×4块的分类,其中,所述4×4块位于所述第一编解码树块内,并且所述4×4块位于所述8×8区域内;和
基于所述确定执行所述第一转换,
其中,所述第一滤波处理包括:
基于所述梯度,确定所述4×4块的样点的滤波系数集;
为所述样点确定限幅值集合;和
基于所述滤波系数集和所述限幅值集合对所述样点应用滤波器,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的左边界的4×4块中存在样点时,对所述8×8区域中最左边两列样点进行填充。
76.如权利要求75所述的介质,其中所述视频单元的所述边界包括条带边界、片边界、子图片边界、360度虚拟边界或自适应环路滤波虚拟边界;
其中在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下:
当位于所述视频单元的顶部边界的4×4块中存在样点时,对所述8×8区域中最靠上的两行样点进行填充;
当位于所述视频单元的右边界的4×4块中存在样点时,对所述8×8区域中最右边两行样点进行填充;
当位于所述视频单元的底部边界的4×4块中存在样点时,对所述8×8区域中最靠下的两行样点进行填充;
其中,在所述第一编解码树块位于所述图片的下边界,并且所述第一编解码树块的左上样点和所述图片的下边界之间的垂直距离不小于特定值的情况下,为所述第一编解码树块启用所述自适应环路滤波虚拟边界;
其中单侧填充操作被应用于跨越所述360度虚拟边界的样点,而不管所述360度虚拟边界在所述图片中的位置,其中在所述单侧填充操作中,如果要使用的一个样点在所述360度虚拟边界之外,则所述样点是从所述360度虚拟边界内的可用样点复制的;
其中,指示是否允许使用跨越不同种类边界的样点的单独语法元素在不同级别通过信令传输,并且其中所述不同种类的边界包括条带边界、片边界和子图片边界;
其中语法元素中用于片边界的第一语法元素被包括在图片参数集中,用以指示是否允许使用跨越片边界的样点;语法元素中用于条带边界的第二语法元素被包括在所述图片参数集中,用以指示是否允许使用跨越条带边界的样点;语法元素中用于子图片边界的第三语法元素被包括在序列参数集中,用以指示是否允许使用跨越子图片边界的样点;并且
其中所述单独语法元素进一步被应用于去方块滤波处理、样点自适应偏移(SAO)滤波处理、双边滤波处理或哈达玛变换滤波处理中的至少一个。
77.一种存储视频的比特流的方法,包括:
确定尺寸为8×8的区域中的样点子集的梯度,用于在第一滤波处理中推导第一编解码树块的4×4块的分类,其中,所述4×4块位于所述第一编解码树块内,并且所述4×4块位于所述8×8区域内;
基于所述确定生成所述比特流;和
将所述比特流存储在非暂时性计算机可读记录介质中,
其中,所述第一滤波处理包括:
基于所述梯度,确定所述4×4块的样点的滤波系数集;
为所述样点确定限幅值集合;和
基于所述滤波系数集和所述限幅值集合对所述样点应用滤波器,其中,在所述第一滤波处理中不允许使用跨越视频单元边界的样点的情况下,当位于所述视频单元的左边界的4×4块中存在样点时,对所述8×8区域中最左边两列样点进行填充。
78.一种视频处理装置,包括:处理器,被配置为实现权利要求1至72中的任意一项所述的方法。
79.一种其上存储有代码的计算机可读介质,该代码在由处理器执行时使处理器实现根据权利要求1至72中任一项所述的方法。
CN202080051241.2A 2019-07-15 2020-07-15 自适应环路滤波中的分类 Active CN114175637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311469215.3A CN117676168A (zh) 2019-07-15 2020-07-15 自适应环路滤波中的分类

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/096059 2019-07-15
CN2019096059 2019-07-15
CN2019096398 2019-07-17
CNPCT/CN2019/096398 2019-07-17
PCT/CN2020/102003 WO2021008539A1 (en) 2019-07-15 2020-07-15 Classification in adaptive loop filtering

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311469215.3A Division CN117676168A (zh) 2019-07-15 2020-07-15 自适应环路滤波中的分类

Publications (2)

Publication Number Publication Date
CN114175637A CN114175637A (zh) 2022-03-11
CN114175637B true CN114175637B (zh) 2024-04-12

Family

ID=74210210

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080051241.2A Active CN114175637B (zh) 2019-07-15 2020-07-15 自适应环路滤波中的分类
CN202311469215.3A Pending CN117676168A (zh) 2019-07-15 2020-07-15 自适应环路滤波中的分类

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311469215.3A Pending CN117676168A (zh) 2019-07-15 2020-07-15 自适应环路滤波中的分类

Country Status (8)

Country Link
US (2) US11700368B2 (zh)
EP (1) EP3984219A4 (zh)
JP (2) JP7361196B2 (zh)
KR (1) KR20220031611A (zh)
CN (2) CN114175637B (zh)
BR (1) BR112022000794A2 (zh)
MX (1) MX2022000120A (zh)
WO (2) WO2021008539A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220303587A1 (en) * 2019-09-05 2022-09-22 Hfi Innovation Inc. Method and Apparatus for Adaptive Loop Filtering at Picture and Sub-Picture Boundary in Video Coding
US20220394309A1 (en) * 2021-05-20 2022-12-08 Lemon Inc. On Padding Methods For Neural Network-Based In-Loop Filter

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109479130A (zh) * 2016-08-02 2019-03-15 高通股份有限公司 基于几何变换的自适应环路滤波
CN109600611A (zh) * 2018-11-09 2019-04-09 北京达佳互联信息技术有限公司 环路滤波方法、环路滤波装置、电子设备和可读介质
WO2019131400A1 (ja) * 2017-12-26 2019-07-04 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558320B2 (en) 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
CN101207812B (zh) 2007-12-10 2010-04-07 海信集团有限公司 一种视频环路滤波方法
CN102349107B (zh) 2009-02-10 2015-02-18 晶像股份有限公司 块噪声检测和滤波
US9094658B2 (en) 2010-05-10 2015-07-28 Mediatek Inc. Method and apparatus of adaptive loop filtering
CN102972028B (zh) 2010-05-17 2015-08-12 Lg电子株式会社 新的帧内预测模式
MX2013003696A (es) 2010-09-30 2013-05-20 Mitsubishi Electric Corp Dispositivo de codificacion de imagen en movimiento, dispositivo de decodificacion de imagen en movimiento, metodo de codificacion de imagen en movimiento y metodo de decodificacion de imagen en movimiento.
US8861617B2 (en) 2010-10-05 2014-10-14 Mediatek Inc Method and apparatus of region-based adaptive loop filtering
CA2805722C (en) 2010-10-05 2016-03-29 Ching-Yeh Chen Method and apparatus of region-based adaptive loop filtering
US9525884B2 (en) 2010-11-02 2016-12-20 Hfi Innovation Inc. Method and apparatus of slice boundary filtering for high efficiency video coding
KR101567467B1 (ko) 2011-05-10 2015-11-09 미디어텍 인크. 루프내 필터 버퍼의 감소를 위한 방법 및 장치
KR101956284B1 (ko) 2011-06-30 2019-03-08 엘지전자 주식회사 보간 방법 및 이를 이용한 예측 방법
US9641866B2 (en) 2011-08-18 2017-05-02 Qualcomm Incorporated Applying partition-based filters
US9357235B2 (en) 2011-10-13 2016-05-31 Qualcomm Incorporated Sample adaptive offset merged with adaptive loop filter in video coding
WO2013060250A1 (en) 2011-10-24 2013-05-02 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
US20130107973A1 (en) 2011-10-28 2013-05-02 Qualcomm Incorporated Loop filtering control over tile boundaries
US20130128986A1 (en) * 2011-11-23 2013-05-23 Mediatek Inc. Method and Apparatus of Slice Boundary Padding for Loop Filtering
US8983218B2 (en) 2012-04-11 2015-03-17 Texas Instruments Incorporated Virtual boundary processing simplification for adaptive loop filtering (ALF) in video coding
US20130343447A1 (en) * 2012-06-25 2013-12-26 Broadcom Corporation Adaptive loop filter (ALF) padding in accordance with video coding
US9596461B2 (en) 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
US9648335B2 (en) * 2013-07-12 2017-05-09 Qualcomm Incorporated Bitstream restrictions on picture partitions across layers
EP3761641A1 (en) 2013-11-15 2021-01-06 MediaTek Inc. Method of block-based adaptive loop filtering
US20160227222A1 (en) 2015-02-02 2016-08-04 Mediatek Inc. Multi-Standard Video Decoder with Novel Intra Prediction Decoding
US10057574B2 (en) 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US20160241881A1 (en) 2015-02-13 2016-08-18 Mediatek Inc. Method and Apparatus of Loop Filters for Efficient Hardware Implementation
KR102432085B1 (ko) 2015-09-23 2022-08-11 노키아 테크놀로지스 오와이 360도 파노라마 비디오를 코딩하는 방법, 장치 및 컴퓨터 프로그램 제품
WO2017133660A1 (en) 2016-02-04 2017-08-10 Mediatek Inc. Method and apparatus of non-local adaptive in-loop filters in video coding
US11405611B2 (en) 2016-02-15 2022-08-02 Qualcomm Incorporated Predicting filter coefficients from fixed filters for video coding
US10419755B2 (en) 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
US10264282B2 (en) 2016-06-27 2019-04-16 Mediatek Inc. Method and apparatus of inter coding for VR video using virtual reference frames
US10841581B2 (en) 2016-07-14 2020-11-17 Arris Enterprises Llc Region specific encoding and SAO-sensitive-slice-width-adaptation for improved-quality HEVC encoding
CN116634139A (zh) 2016-08-03 2023-08-22 株式会社Kt 用于对视频进行编码和解码的方法和装置
US20180054613A1 (en) * 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US10419757B2 (en) 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
CN108111851B (zh) 2016-11-25 2020-12-22 华为技术有限公司 一种去块滤波方法及终端
US10555006B2 (en) 2016-12-22 2020-02-04 Qualcomm Incorporated Deriving bilateral filter information based on a prediction mode in video coding
US10506230B2 (en) 2017-01-04 2019-12-10 Qualcomm Incorporated Modified adaptive loop filter temporal prediction for temporal scalability support
US11277635B2 (en) * 2017-03-17 2022-03-15 Vid Scale, Inc. Predictive coding for 360-degree video based on geometry padding
EP3606077A4 (en) * 2017-03-22 2021-01-06 Industry - University Cooperation Foundation Hanyang University LOOP FILTERING PROCESS ACCORDING TO AN ADAPTIVE PIXEL CLASSIFICATION STANDARD
US11212497B2 (en) * 2017-03-30 2021-12-28 Samsung Electronics Co., Ltd. Method and apparatus for producing 360 degree image content on rectangular projection by selectively applying in-loop filter
US10778974B2 (en) 2017-07-05 2020-09-15 Qualcomm Incorporated Adaptive loop filter with enhanced classification methods
EP3454556A1 (en) * 2017-09-08 2019-03-13 Thomson Licensing Method and apparatus for video encoding and decoding using pattern-based block filtering
US10728573B2 (en) 2017-09-08 2020-07-28 Qualcomm Incorporated Motion compensated boundary pixel padding
CN111213378B (zh) * 2017-10-09 2022-05-03 佳能株式会社 用于对像素块进行去块滤波的方法和装置
JP2021016016A (ja) 2017-10-20 2021-02-12 シャープ株式会社 動画像符号化装置及び動画像復号装置
US11641488B2 (en) 2017-11-01 2023-05-02 Vid Scale, Inc. Methods for simplifying adaptive loop filter in video coding
US10728549B2 (en) * 2017-11-06 2020-07-28 Dolby Laboratories Licensing Corporation Adaptive loop filtering for high-dynamic range video
US10721469B2 (en) 2017-11-28 2020-07-21 Qualcomm Incorporated Line buffer reduction for adaptive loop filtering in video coding
CN111615828B (zh) 2017-11-29 2023-01-10 韩国电子通信研究院 采用环内滤波的图像编码/解码方法和装置
CN109996069B (zh) * 2018-01-03 2021-12-10 华为技术有限公司 视频图像编解码方法及设备
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
US20190281273A1 (en) 2018-03-08 2019-09-12 Mediatek Inc. Adaptive loop filtering method for reconstructed projection-based frame that employs projection layout of 360-degree virtual reality projection
US20190306502A1 (en) 2018-04-02 2019-10-03 Qualcomm Incorporated System and method for improved adaptive loop filtering
US10904576B2 (en) 2018-04-27 2021-01-26 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method for generating a prediction image using a plurality of pixels generated outside of a boundary of a reference picture on which smoothing has been performed
EP3804315A4 (en) * 2018-05-31 2022-03-09 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR PARTITIONING VIDEO BLOCKS INTO A SLOT FOR INTERPRETING VIDEO DATA
CN111819847B (zh) * 2018-06-21 2022-08-09 瑞典爱立信有限公司 视频图片边界的编码、解码方法、编解码器及存储介质
US11818340B2 (en) * 2018-07-06 2023-11-14 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
US11094088B2 (en) 2018-08-31 2021-08-17 Mediatek Inc. Method and apparatus of in-loop filtering for virtual boundaries in video coding
WO2020083108A1 (en) 2018-10-23 2020-04-30 Mediatek Inc. Method and apparatus for reduction of in-loop filter buffer
CN109660797A (zh) 2018-11-09 2019-04-19 北京达佳互联信息技术有限公司 自适应滤波方法、装置、电子设备及计算机可读介质
US11044473B2 (en) 2018-12-21 2021-06-22 Qualcomm Incorporated Adaptive loop filtering classification in video coding
KR20210100737A (ko) 2018-12-23 2021-08-17 후아웨이 테크놀러지 컴퍼니 리미티드 인코더, 디코더 및 적응 루프 필터를 사용한 대응 방법들
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
WO2020176636A1 (en) 2019-02-27 2020-09-03 Futurewei Technologies, Inc. Luma mapping with chroma scaling adaptation parameter set in video coding
US11910024B2 (en) 2019-03-11 2024-02-20 Qualcomm Incorporated Boundary handling for adaptive loop filtering
CN117499644A (zh) 2019-03-14 2024-02-02 北京字节跳动网络技术有限公司 环路整形信息的信令和语法
SG11202110102YA (en) 2019-03-24 2021-10-28 Beijing Bytedance Network Technology Co Ltd Nonlinear adaptive loop filtering in video processing
TWI739386B (zh) 2019-04-11 2021-09-11 聯發科技股份有限公司 具有適應性參數集之適應性迴路濾波器
CN113678464B (zh) 2019-04-15 2022-12-02 北京字节跳动网络技术有限公司 非线性自适应环路滤波器中的参数的时域预测
CN117499679A (zh) 2019-04-16 2024-02-02 北京字节跳动网络技术有限公司 用于视频编解码的自适应环路滤波
CN113994671B (zh) 2019-06-14 2024-05-10 北京字节跳动网络技术有限公司 基于颜色格式处理视频单元边界和虚拟边界
CN114097225B (zh) 2019-07-09 2024-04-19 北京字节跳动网络技术有限公司 用于自适应环路滤波的样点确定
JP7291845B2 (ja) 2019-07-11 2023-06-15 北京字節跳動網絡技術有限公司 適応ループフィルタリングにおけるサンプルパディング
AU2020309443A1 (en) 2019-07-11 2022-02-10 Samsung Electronics Co., Ltd. Video decoding method and apparatus, and video encoding method and apparatus
US20220303587A1 (en) 2019-09-05 2022-09-22 Hfi Innovation Inc. Method and Apparatus for Adaptive Loop Filtering at Picture and Sub-Picture Boundary in Video Coding
US11303890B2 (en) 2019-09-05 2022-04-12 Qualcomm Incorporated Reusing adaptive loop filter (ALF) sub-picture boundary processing for raster-scan slice boundaries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109479130A (zh) * 2016-08-02 2019-03-15 高通股份有限公司 基于几何变换的自适应环路滤波
WO2019131400A1 (ja) * 2017-12-26 2019-07-04 シャープ株式会社 画像フィルタ装置、画像復号装置、および画像符号化装置
CN109600611A (zh) * 2018-11-09 2019-04-09 北京达佳互联信息技术有限公司 环路滤波方法、环路滤波装置、电子设备和可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Description of Core Experiment 5 (CE5): Adaptive Loop Filter;CHEN, Ching-Yeh 等;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;第2节 *

Also Published As

Publication number Publication date
US11700368B2 (en) 2023-07-11
EP3984219A1 (en) 2022-04-20
JP7361196B2 (ja) 2023-10-13
MX2022000120A (es) 2022-02-16
EP3984219A4 (en) 2022-08-17
BR112022000794A2 (pt) 2022-03-15
US20230231998A1 (en) 2023-07-20
JP2022541032A (ja) 2022-09-21
US20230107774A1 (en) 2023-04-06
CN117676168A (zh) 2024-03-08
JP2023168449A (ja) 2023-11-24
CN114175637A (zh) 2022-03-11
WO2021008546A1 (en) 2021-01-21
WO2021008539A1 (en) 2021-01-21
KR20220031611A (ko) 2022-03-11

Similar Documents

Publication Publication Date Title
CN114128278B (zh) 自适应环路滤波中的样点填充
CN113994671B (zh) 基于颜色格式处理视频单元边界和虚拟边界
CN114097225B (zh) 用于自适应环路滤波的样点确定
CN114503594B (zh) 自适应环路滤波中样点填充的选择性应用
WO2020249123A1 (en) Handling video unit boundaries and virtual boundaries
JP7454042B2 (ja) 適応ループ・フィルタリングにおける利用可能でないサンプル位置でのパディング・プロセス
WO2021057946A1 (en) Adaptive loop filtering between different video units
CN114175637B (zh) 自适应环路滤波中的分类
CN118138754A (zh) 处理视频单元边界和虚拟边界
CN114128296A (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
GR01 Patent grant
GR01 Patent grant