CN113196748B - 帧内预测方法及相关装置 - Google Patents

帧内预测方法及相关装置 Download PDF

Info

Publication number
CN113196748B
CN113196748B CN201980084263.6A CN201980084263A CN113196748B CN 113196748 B CN113196748 B CN 113196748B CN 201980084263 A CN201980084263 A CN 201980084263A CN 113196748 B CN113196748 B CN 113196748B
Authority
CN
China
Prior art keywords
current block
mode
predmode
height
width
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
CN201980084263.6A
Other languages
English (en)
Other versions
CN113196748A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113196748A publication Critical patent/CN113196748A/zh
Application granted granted Critical
Publication of CN113196748B publication Critical patent/CN113196748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

提供一种帧内预测方法,包括:通过使用帧内预测模式从当前块外的一个或多个参考样本确定所述当前块的样本的预测值;当不满足一个或多个预定义条件时,推导加权预测值,其中,所述一个或多个预定义条件与所述当前块的宽度和/或高度以及所述帧内预测模式中的至少一个有关;以及当不满足所述一个或多个预定义条件时,使用所述加权预测值对所述当前块进行译码。

Description

帧内预测方法及相关装置
技术领域
本发明总体上涉及图像处理领域,并且更具体地涉及具有位置相关预测组合的帧内预测。
背景技术
视频译码(视频编码和解码)用于各种数字视频应用中,例如广播数字电视、互联网和移动网络上的视频传输、实时对话应用(例如视频聊天、视频会议)、DVD和蓝光光碟、视频内容获取和编辑系统以及安全应用程序的便携式摄像机。用于描绘甚至相对较短的视频所需的视频数据量也可能很大,当要在带宽容量有限的通信网络上流式传输数据或以其他方式传送数据时,可能会造成困难。因此,视频数据通常在经过现代电信网络通信之前被压缩。当视频存储在存储设备上时,视频的尺寸也可能是个问题,因为内存资源可能会受到限制。视频压缩设备通常在源处使用软件和/或硬件以在传输或存储之前对视频数据进行译码,从而减少了表示数字视频图像所需的数据量。然后由视频解压缩设备在目的地接收经压缩的数据,该视频解压缩设备对视频数据进行解码。在网络资源受限和对更高视频质量的需求不断增长的情况下,需要在几乎不牺牲图像质量的情况下提高压缩率的改进型压缩和解压缩技术。
发明内容
本申请的实施例提供了根据独立权利要求的用于编码和解码的装置和方法。
通过独立权利要求的主题来实现前述和其他目的。根据从属权利要求、说明书和附图,进一步的实现方式是显而易见的。
本文中,提供了一种帧内预测方法,所述方法包括以下步骤:
通过使用帧内预测模式从当前块外的一个或多个参考样本确定当前块的样本的预测值;
当不满足一个或多个预定义条件时,推导加权预测值,其中,所述一个或多个预定义条件与所述当前块的宽度和/或高度以及用于确定所述当前块的所述样本的所述预测值的所述帧内预测模式中的至少一个有关;以及
当不满足所述一个或多个预定义条件时,使用所述加权预测值对所述当前块进行译码。
所述当前块包括在视频序列或静止图像的当前帧中。具体地,当满足所述一个或多个预定义条件时(并且实际上,没有推导加权预测值),可使用所述预测值而不使用所述加权预测值对所述当前块进行译码。
如将在下面在当前译码技术中更详细地描述,整个帧内预测过程包括:应用多个提供的帧内预测模式(例如,平面、水平、垂直、DC模式)中的特定帧内预测模式,以便获取当前块的样本/像素的预测(亮度、色度)值,并基于通过对所述预测值加权而获得的加权预测值(具体地,在位置相关预测组合(PDPC)的情况下)应用一些后滤波(平滑)。然而,发明人从众多实验和实际应用中获悉,后滤波可能表示相对昂贵的处理,可能比应用帧内预测模式还要复杂,这种后滤波并非在所有应用中都是合理的,甚至可能会引起其他问题。因此,如果不能达到显著的性能益处,则增加用于执行后滤波过程的硬件和/或软件复杂度可能是不合理的。例如,帧内预测模式中使用的线性模型可能会在亮度与色度之间引入一些人为的依赖性,甚至PDPC也会增强这些依赖性。鉴于此,对于本发明至关重要的是,并非在所有情况下都执行对通过应用所选帧内预测模式获得的预测值进行加权的过程,而是有条件地进行。因此,与适当情况下的技术相比,可减少处理器负荷以及整个译码过程的复杂性和持续时间。
根据实施例,基于以下推导加权预测值:
a)所述当前块中所述样本的位置(x,y)处的预测值,其中,x是所述样本的水平坐标,而y是所述样本的垂直坐标,
b)所述当前块的所述宽度和/或所述高度,
c)在所述当前块的第x列处在所述当前块顶部的行中与所述当前块相邻的所述当前块的上参考样本的值和在所述当前块的第y行处在所述当前块左侧的列中与所述当前块相邻的所述当前块的左参考样本的值,以及
d)用于确定所述当前块的所述样本的所述预测值的所述帧内预测模式。
在该实施例中,在PDPC的上下文中,将基于帧内预测模式的帧内预测与基于一些上参考样本和左参考样本的位置相关加权结合。与仅应用所选的帧内预测模式相比,在适当情况下应用PDPC后滤波可以可靠地提高预测精度。
具体地,可以根据下式推导加权预测值:
Figure GDA0003120871190000021
Figure GDA0003120871190000022
其中
Figure GDA0003120871190000023
是所述样本的所述加权预测值;
P(x,y)是所述样本的所述预测值;
Rx,–1、R–1,y表示所述当前块的所述上参考样本和所述左参考样本;R–1,–1表示在所述当前块的左上顶点处与所述当前块相邻的所述当前块的参考样本的值;
wL、wT和wTL表示权重;
其中,当所述当前块是亮度块时,函数CliplCmp设置为等于限幅函数CliplY,而当所述当前块是色度块时,所述函数CliplCmp设置为等于限幅函数CliplC,其中
Clip1Y(x)=Clip3(0,(1<<BitDepthY)–1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)–1,x)
Figure GDA0003120871190000024
并且其中,BitDepthY是亮度样本的位深度,而BitDepthC是色度样本的位深度。
可以通过下式推导上述权重:
wL=V>>((x<<1)>>nScaleX);
wT=V>>((y<<1)>>nScaleY);
其中,V、nScaleX、nScaleY是预定值(例如,V为16或32;NScaleX可能与NScaleY不同,即,涉及非正方形预测块;另请参见下面的详细描述);
以及
当所述帧内预测模式是DC模式时,wTL=–(wL>>4)–(wT>>4),
当所述帧内预测模式是平面模式时,wTL=0,
当所述帧内预测模式是水平模式时,wTL=wT,以及
当所述帧内预测模式是垂直模式时,wTL=wL。
例如,NScaleX=NScaleY=(log2(w)+log2(h)+2)>>2,其中,w和h分别是当前(正方形)块的所述宽度和所述高度,以样本为单位。
以上在PDPC的上下文中计算加权预测值的具体方式可以提高预测精度。
发明人进行的广泛研究允许识别特定条件类别,在这些特定条件类别下,特别是在PDPC的上下文中,基于加权预测值应用后滤波可能是不利的。因此,一个或多个预定义条件可以包括以下条件中的至少一个:
a)所述当前块的所述宽度和所述高度的总和小于第一阈值和/或所述当前块的所述宽度和所述高度的总和大于第二阈值;
b)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;并且帧内预测模式是平面模式,或者满足下式的偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes))),其中,VDIA_IDX是所述对角线模式的索引,numModes是预定义的整数,并且predMode是所述帧内预测模式的索引;
c)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式,或者满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
d)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式;以及
e)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
如果所述当前块是色度块,则一个或多个预定义条件可包括以下条件中的至少一个:
a)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;
b)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式;
c)所述当前块的所述宽度和所述高度的总和小于第一阈值,并且所述帧内预测模式是跨分量线性建模模式;并且所述当前块的所述宽度和所述高度的总和大于第二阈值;
d)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是平面模式;
e)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
f)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式或平面模式;
g)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式或是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
h)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是跨分量线性建模模式、平面模式或所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));以及
i)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述帧内预测模式是跨分量线性建模模式、平面模式或满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式或满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
根据特定实施例,上述参数numModes为8和/或上述第一阈值为8和/或上述第二阈值为64。
此外,本文提供一种编码器,所述编码器包括处理电路,所述处理电路被配置用于执行根据上述实施例中任一项所述的方法。类似地,提供一种解码器,所述解码器包括处理电路,所述处理电路被配置用于执行根据上述实施例中任一项所述的方法。
根据上述实施例中任一项所述的方法可以在包括用于执行所述方法的程序代码的计算机程序产品中实现。
此外,本文提供一种解码器,所述解码器包括一个或多个处理器;以及非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述解码器配置为执行根据上述实施例中任一项所述的方法。类似地,提供一种编码器,所述编码器包括一个或多个处理器;以及非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述编码器配置为执行根据上述实施例中任一项所述的方法。
在附图和以下描述中阐述了一个或多个实施例的细节。根据说明书、附图和权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
在下面,参考附图更详细地描述本发明的实施例,其中:
图1A示意性地示出了被配置为实现本发明的实施例的视频译码系统的示例;
图1B示意性地示出了被配置为实现本发明的实施例的视频译码系统的另一示例;
图2示意性地示出了被配置为实现本发明的实施例的视频编码器的示例;
图3示意性地示出了被配置为实现本发明的实施例的视频解码器的示例结构;
图4示意性地示出了编码装置或解码装置的示例;
图5示意性地示出了编码装置或解码装置的另一示例;
图6示意性地示出了HEVC中的角度帧内预测方向和相关联的帧内预测模式;
图7示意性地示出了JEM中的角度帧内预测方向和相关联的帧内预测模式;
图8示意性地示出了VTM-3.0和VVC规范草案v.3中的角度帧内预测方向和相关联的帧内预测模式;
图9示意性地示出了VTM-3.0和VVC规范草案v.3中的角度帧内预测方向和相关联的帧内预测模式;
图10示意性地示出了在4×4块内的(0,0)和(1,0)位置的DC模式PDPC权重的示例;
图11示意性地示出了对来自主参考边的参考样本的块进行帧内预测的示例;
图12示出了在4×4块内的(0,0)和(1,0)位置的DC模式PDPC权重的示例;
图13示意性地示出了确定垂直和水平缩放因子的方法的示例;
图14示出了对样本块进行帧内预测的示例;
图15示出了对样本块进行帧内预测的另一示例;
图16示出了对样本块进行帧内预测的另一示例;
图17示出了对样本块进行帧内预测的另一示例;
图18示出了对样本块进行帧内预测的另一示例。
在下文中,如果没有另外明确指出,则相同的附图标记表示相同或至少在功能上等同的特征。
具体实施方式
在以下描述中,参考了附图,这些附图形成了本发明的一部分,并且通过说明的方式示出了本发明的实施例的特定方面或其中可使用本发明的实施例的特定方面。应理解,本发明的实施例可用于其他方面,并且包括在附图中未示出的结构或逻辑变化。因此,以下详细描述不应被视为限制性意义,并且本发明的范围由所附权利要求书限定。
例如,应理解,与所描述的方法有关的公开内容对于被配置为执行该方法的对应设备或系统也可成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可包括一个或多个单元(例如,功能单元),以执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元各自执行多个步骤中的一个或多个),即使这样的一个或多个单元在附图中未明确描述或示出。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述特定装置,对应的方法可包括执行一个或多个单元的功能的一个步骤(例如,执行一个或多个单元的功能的一个步骤,或各自执行多个单元中的一个或多个单元的功能的多个步骤),即使未在附图中明确描述或说明这样一个或多个步骤。此外,应理解,除非另外特别指出,否则本文所述的各种示例性实施例和/或方面的特征可彼此组合。
本文中使用的逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”
x||y x和y的布尔逻辑“或”
! 布尔逻辑“非”
x?y:z如果x为TRUE或不等于0,则求值y的值;否则,求值为z的值。
以下关系运算符的定义如下:
> 大于
>= 大于或等于
< 小于
<= 小于或等于
== 等于
!= 不等于
当关系运算符应用于已分配了值“na”(不适用)的语法元素或变量时,值“na”被视为该语法元素或变量的不同值。值“na”被认为不等于任何其他值。
以下按位运算符定义如下:
&按位“与”。当对整数参数进行运算时,对整数值的二进制补码进行运算。当对包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。
|按位“或”。当对整数参数进行运算时,对整数值的二进制补码进行运算。当对包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。
^按位“异或”。当对整数参数进行运算时,对整数值的二进制补码进行运算。当对包含的位少于另一个参数的二进制参数进行运算时,通过添加更多等于0的有效位来扩展较短的参数。
x>>y将x以二进制补码整数表示的形式向右移y二进制位。仅当y取非负整数值时定义此函数。由于右移而移位到最高有效位(MSB)的位的值等于移位操作之前的x的MSB。
x<<y将x以二进制补码整数表示的形式向左移y二进制位。仅当y取非负整数值时定义此函数。由于左移而移位到最低有效位(LSB)的位的值等于0。
视频译码通常是指处理形成视频或视频序列的图像序列。代替术语“图像(picture)”,术语“帧”或“图像(image)”可用作视频译码领域中的同义词。视频译码(或通常为译码)包括视频编码和视频解码两部分。在源侧执行视频编码,通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量(以便更高效地存储和/或传输)。视频解码在目的地侧执行,与编码器相比,通常包括逆处理,以重建视频图像。涉及视频图像(或一般而言图像)的“译码”的实施例应理解为涉及视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为CODEC(编码和解码)。
在无损视频译码的情况下,可重建原始视频图像,即,重建的视频图像具有与原始视频图像相同的质量(假设在存储或传输期间没有传输损耗或其他数据丢失)。在有损视频译码的情况下,例如,通过量化进行进一步压缩,以减少表示视频图像的数据量,该数据量在解码器处不能完全重建,即,与原始视频图像的质量相比,重建的视频图像的质量更低或更差。
几种视频译码标准属于“有损混合视频译码器”组(即,将样本域中的空间和时间预测与2D变换译码相结合,以在变换域中应用量化)。视频序列的每个图像通常被划分为一组不重叠的块,并且译码通常在块级上执行。换句话说,在编码器处,通常在块(视频块)级例如通过以下方式处理(即,编码)视频:通过使用空间(帧内)预测和/或时间(帧间)预测,以生成预测块;从当前块(当前处理/待处理的块)中减去预测块,以得到残差块;在转换域中对残差块进行变换并量化残差块,以减少待传输(压缩)的数据量,而相比于编码器,在解码器处,对经编码或经压缩的块应用逆处理,以重建当前块,以进行呈现。此外,编码器复制解码器处理循环,使得两者将生成相同的预测(例如,帧内和帧间预测)和/或重建,以用于处理(即,译码)后续块。
在视频译码系统10的以下实施例中,基于图1至图3描述视频编码器20和视频解码器30。
图1A是示出示例编码系统10的示例性框图,例如,可利用本申请的技术的视频译码系统10(或短译码系统10)。视频译码系统10的视频编码器20(或短编码器20)和视频解码器30(或短解码器30)表示可被配置为执行根据本申请中所描述的各种示例的技术的设备的示例。
如图1A所示,译码系统10包括源设备12,该源设备被配置为例如将编码图像数据21提供给目的地设备14,以对编码图像数据13进行解码。
源设备12包括编码器20,并且可附加地(即,可选地)包括图像源16、预处理器(或预处理单元)18,例如图像预处理器18,以及通信接口或通信单元22。
图像源16可包括或者可以是任何种类的图像捕获设备,例如,用于捕获真实世界图像的相机,和/或任何种类的图像生成设备,例如,用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机生成的图像(例如,屏幕内容、虚拟现实(VR)图像)和/或其任何组合(例如,增强现实(AR)图像)的任何种类的其他设备。图像源可以是任何种类的存储器或存储任何上述图像的存储设备。
与预处理器18和由预处理单元18执行的处理不同,图像或图像数据17也可指原始图像或原始图像数据17。
预处理器18被配置为接收(原始)图像数据17并且对图像数据17执行预处理以获得经预处理的图像19或经预处理的图像数据19。由预处理器18执行的预处理可例如包括修剪、颜色格式转换(例如从RGB到YCbCr)、颜色校正或去噪。可理解,预处理单元18可以是可选组件。
视频编码器20被配置为接收经预处理的图像数据19并提供编码图像数据21(下面将例如基于图2来描述更多细节)。
源设备12的通信接口22可被配置为接收编码图像数据21,并且通过通信信道13将编码图像数据21(或其任何进一步处理的版本)传输到另一设备,例如,目的地设备14或用于存储或直接重建的任何其他设备。
目的地设备14包括解码器30(例如,视频解码器30),并且可附加地(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14的通信接口28被配置为例如直接从源设备12或从任何其他源(例如存储设备,例如编码图像数据存储设备)接收编码图像数据21(或其任何进一步处理的版本),并将编码图像数据21提供给解码器30。
通信接口22和通信接口28可被配置为通过源设备12与目的设备14之间的直接通信链路(例如,直接有线或无线连接)或通过任何种类的网络(例如,有线或无线网络或其任何组合)或通过任何种类的专用和公共网络或其任何组合来传输或接收编码图像数据21或编码数据13。
通信接口22可例如被配置为将编码图像数据21打包成适当的格式,例如,分组,和/或使用任何类型的传输编码或处理来处理编码图像数据,以在通信链路或通信网络上进行传输。
形成通信接口22的对应部分的通信接口28可例如被配置为接收传输的数据并使用任何种类的对应传输解码或处理和/或解包来处理传输数据,以获得编码图像数据21。
通信接口22和通信接口28都可被配置为如图1A中从源设备12指向目的地设备14的通信信道13的箭头所示的单向通信接口,或者是双向通信接口,并且可被配置为例如发送和接收消息,例如建立连接,以确认并交换与通信链路和/或数据传输(例如,编码图像数据传输)有关的任何其他信息。
解码器30被配置为接收编码图像数据21并提供解码图像数据31或解码图像31(下面将基于例如图3或图5来描述更多细节)。
目的地设备14的后处理器32被配置为对解码图像数据31(也称为重建图像数据)(例如,解码图像31)进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。由后处理单元32执行的后处理可包括例如颜色格式转换(例如,从YCbCr到RGB)、颜色校正、修剪或重新采样,或任何其他处理,例如用于准备例如供显示设备34显示的解码图像数据31。
目的地设备14的显示设备34被配置为接收用于将图像显示给例如用户或观看者的经后处理的图像数据33。显示设备34可以是或包括用于表示重建图像的任何种类的显示器,例如,集成或外部显示器或监视器。显示器可例如包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(LCoS)显示器、数字光处理器(DLP)或任何其他种类的显示器。
尽管图1A将源设备12和目的地设备14描绘为单独的设备,但是设备的实施例还可包括一个或两个功能,源设备12或对应的功能以及目的地设备14或对应的功能。在这种实施例中,可使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任何组合来实现源设备12或对应的功能以及目的地设备14或对应的功能。
基于描述,对于本领域技术人员将显而易见的是,如图1A所示,不同单元的功能或源设备12和/或目的地设备14内的功能的存在和(精确)划分可根据实际设备和应用程序而变化。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30)或编码器20和解码器30两者都可通过如图1B所示的处理电路来实现,该处理电路例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件、专用视频译码器或其任何组合。编码器20可通过处理电路46实现以体现如结合图2的编码器20和/或本文描述的任何其他编码器系统或子系统所讨论的各种模块。解码器30可通过处理电路46实现以体现如结合图3的解码器30和/或本文描述的任何其他解码器系统或子系统所讨论的各种模块。处理电路可被配置为执行各种操作,如稍后所讨论。如图5所示,如果该技术部分地以软件实现,则设备可将用于该软件的指令存储在适当的非瞬时性计算机可读存储介质中,并且可使用一个或多个处理器以硬件方式执行该指令,以执行本发明的技术。例如,如图1B所示,视频编码器20和视频解码器30中的任何一个可以作为组合的编码器/解码器(CODEC)的一部分集成在单个设备中。
源设备12和目的地设备14可包括多种设备中的任何一种,包括任何种类的手持式或固定式设备,例如笔记本或手提电脑、移动电话、智能电话、平板电脑或平板计算机、相机、台式计算机、机顶盒、电视、显示设备、数字介质播放器、视频游戏机、视频流设备(例如内容服务服务器或内容传送服务器)、广播接收器设备、广播发射器设备等,并且可不使用任何操作系统。在某些情况下,源设备12和目的地设备14可被配备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅是示例,并且本申请的技术可应用于视频译码设置(例如,视频编码或视频解码),其不必包括在编码设备与解码设备之间的任何数据通信。在其他示例中,数据从本地存储器中检索,通过网络流式传输,等等。视频编码设备可将数据编码并存储到存储器,和/或视频解码设备可从存储器检索和解码数据。在一些示例中,编码和解码由彼此不通信但仅将数据编码到存储器和/或从存储器检索和解码的设备执行。
为了便于描述,在此例如通过参考高效视频译码(HEVC)或参考通用视频译码(VVC)的参考软件、由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT-VC)开发的下一代视频译码标准来描述本发明的实施例。本领域普通技术人员将理解,本发明的实施例不限于HEVC或VVC。
编码器和编码方法
图2示出了用于实现本申请技术的示例视频编码器20的示意框图。在图2的示例中,视频编码器20包括输入201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210和逆变换处理单元212、重建单元214、环路滤波器单元220、解码图像缓冲区(DPB)230、模式选择单元260、熵编码单元270和输出272(或输出接口272)。模式选择单元260可包括帧间预测单元244、帧内预测单元254和划分单元262。帧间预测单元244可包括运动估计单元和运动补偿单元(未示出)。根据混合视频译码器,如图2所示的视频编码器20也可被称为混合视频编码器或视频编码器。
残差计算单元204、变换处理单元206、量化单元208、模式选择单元260可被称为形成编码器20的前向信号路径,而反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(DPB)230、帧间预测单元244和帧内预测单元254可被称为形成视频编码器20的后向信号路径,其中,视频编码器20的后向信号路径对应于解码器的信号路径(见图3中的视频解码器30)。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(DPB)230、帧间预测单元244和帧内预测单元254也被称为形成视频编码器20的“内置解码器”。
图像和图像划分(图像和块)
编码器20可被配置为例如通过输入201接收图像17(或图像数据17),例如形成视频或视频序列的图像序列的图像。所接收的图像或图像数据也可以是经预处理的图像19(或经预处理的图像数据19)。为了简单起见,以下描述参考图像17。图像17也可称为当前图像或待译码的图像(特别是在视频译码中,以区分当前图像与其他图像,例如同一视频序列(即还包括当前图像的视频序列)的先前编码和/或解码图像)。
(数字)图像是或可以被视为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可称为像素(pixel或pel)(图像元素的简称)。阵列或图像的水平和垂直方向(或轴)上的样本数量定义了图像的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即,可表示图像或包括三个样本阵列。在RBG格式或色彩空间中,图像包括对应的红色、绿色和蓝色样本阵列。然而,在视频译码中,每个像素通常以亮度和色度格式或色彩空间(例如,,YCbCr)表示,包括由Y表示的亮度分量(有时也使用L代替)和由Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度强度(例如像在灰度图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图像包括亮度样本值(Y)的亮度样本阵列和两个色度值(Cb和Cr)的色度样本阵列。可将RGB格式的图像转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则图像可仅包括亮度样本阵列。因此,图像可以是例如单色格式的亮度样本的阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本和两个对应色度样本的阵列。
视频编码器20的实施例可包括图像划分单元(图2中未描绘),该图像划分单元被配置为将图像17划分成多个(通常不重叠)图像块203。这些块也可称为根块、宏块(H.264/AVC)或译码树块(CTB)或译码树单元(CTU)(H.265/HEVC和VVC)。图像划分单元可被配置为对视频序列的所有图像使用相同的块尺寸以及定义该块尺寸的对应网格,或者改变图像或图像子集或图像组之间的块尺寸,并将每个图像划分为对应的块。
在其他实施例中,视频编码器可被配置为直接接收图像17的块203,例如,形成图像17的一个、几个或所有块。图像块203也可被称为当前图像块或待译码图像块。
像图像17一样,图像块203也是或也被视为具有强度值(样本值)的样本的二维阵列或矩阵,尽管其尺寸小于图像17。换句话说,块203可包括例如一个样本阵列(例如,在单色图像17的情况下为亮度阵列,或者在彩色图像的情况下为亮度或色度阵列)或三个样本阵列(例如,在彩色图像17的情况下为亮度和两者色度的阵列),或任何其他数量和/或种类的阵列,具体取决于所应用的颜色格式。块203的水平和垂直方向(或轴)上的样本数量定义了块203的尺寸。因此,块可例如是样本的M×N(M列乘N行)阵列或变换系数的M×N阵列。
如图2所示的视频编码器20的实施例可被配置为逐块地对图像17进行编码,例如,对每个块203执行编码和预测。
残差计算
残差计算单元204可被配置为基于图像块203和预测块265(稍后提供关于预测块265的更多细节)计算残差块205(也称为残差205),例如通过从图像块203的样本值中逐样本(逐像素)减去预测块265的样本值以获得样本域中的残差块205。
变换
变换处理单元206可被配置为对残差块205的样本值应用变换,例如,离散余弦变换(DCT)或离散正弦变换(DST),以获得变换域中的变换系数207。变换系数207也可称为变换残差系数,并且表示变换域中的残差块205。
变换处理单元206可被配置为应用DCT/DST的整数近似,例如针对H.265/HEVC指定的变换。与正交DCT变换相比,此类整数近似通常按一定因子缩放。为了保留由正向和逆向变换处理的残差块的范数,将附加的缩放因子用作变换过程的一部分。通常基于某些约束条件来选择缩放因子,例如缩放因子是移位运算的2的幂、变换系数的位深度、精度和实现成本之间的折衷等。例如通过逆变换处理单元212为例如逆变换指定特定缩放因子(以及对应的逆变换,例如,通过视频解码器30处的逆变换处理单元312指定),并且对应地例如通过编码器20处的变换处理单元206为前向变换指定对应的缩放因子。
视频编码器20的实施例(相应地为变换处理单元206)可被配置为输出变换参数,例如,一种或多种变换类型,例如直接编码或通过熵编码单元270进行编码或压缩,以使例如视频解码器30可接收并使用变换参数进行解码。
量化
量化单元208可被配置为例如通过应用标量量化或矢量量化对变换系数207进行量化,以获得量化系数209。量化系数209也可称为量化变换系数209或量化残差系数209。
量化过程可减小与一些或所有变换系数207相关联的位深度。例如,在量化过程中,n位变换系数可舍入为m位变换系数,其中n大于m。可通过调整量化参数(QP)来修改量化程度。例如,对于标量量化,可应用不同的缩放以实现更精细或更粗糙的量化。较小的量化步长对应于较精细的量化,而较大的量化步长对应于较粗糙的量化。适用的量化步长可由量化参数(QP)指示。量化参数可例如是适用的量化步长的预定义集合的索引。例如,小量化参数可对应于精细量化(小量化步长),大量化参数可对应于粗糙量化(大量化步长),反之亦然。量化可包括除以量化步长,并且例如由反量化单元210进行的对应的解量化和/或反量化可包括乘以量化步长。根据一些标准(例如,HEVC)的实施例可被配置为使用量化参数来确定量化步长。通常,可使用包括除法的等式的定点近似基于量化参数来计算量化步长。可引入附加的缩放因子以进行量化和解量化,以恢复残差块的范数,这是由于在量化步长和量化参数的等式的定点近似中使用了缩放,因此可能会对该范数进行了修改。在一个示例实现方式中,逆变换和解量化的缩放可被组合。或者,可使用定制的量化表,并且例如以码流从编码器向解码器指示该定制的量化表。量化是有损操作,其中,损失随着量化步长的增加而增加。
视频编码器20的实施例(相应地为量化单元208)可被配置为输出量化参数(QP),例如直接编码或通过熵编码单元270进行编码,以使例如视频解码器30可接收并应用量化参数进行解码。
反量化
反量化单元210被配置为对量化系数应用量化单元208的反量化,以获得解量化系数211,例如基于或使用与量化单元208相同的量化步长,应用量化单元208所应用的量化方案的逆变换。解量化系数211也可称为解量化残差系数211,并且对应于变换系数207,尽管通常由于量化损失而与变换系数不同。
逆变换
逆变换处理单元212被配置为应用由变换处理单元206所应用的变换的逆变换,例如,逆离散余弦逆变换(DCT)或逆离散正弦逆变换(DST)或其他逆变换,以在样本域中获得重建残差块213(或对应的解量化系数213)。重建残差块213也可被称为变换块213。
重建
重建单元214(例如,加法器或求和器214)被配置为将变换块213(即,重建残差块213)添加到预测块265,以在样本域中获得重建块215,例如,通过逐样本地将重建残差块213的样本值与预测块265的样本值相加。
滤波
环路滤波器单元220(或简称为“环路滤波器”220)被配置为对重建块215进行滤波以获得滤波块221,或者通常,对重建样本进行滤波以获得滤波样本。环路滤波器单元例如被配置为使像素过渡平滑或以其他方式提高视频质量。环路滤波器单元220可包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(SAO)滤波器或一个或多个其他滤波器,例如双边滤波器、自适应环路滤波器(ALF)、锐化滤波器、平滑滤波器或协作滤波器,或其任何组合。尽管环路滤波器单元220在图2中被示出为环路滤波器,但是在其他配置中,环路滤波器单元220可被实现为后环路滤波器。滤波块221也可被称为滤波重建块221。
视频编码器20的实施例(相应地为环路滤波器单元220)可被配置为输出滤波参数(例如,样本自适应偏移信息),例如直接编码或通过熵编码单元270进行编码,以使例如视频解码器30可接收并应用相同环路滤波器参数或相应的环路滤波器进行解码。
解码图像缓冲区
解码图像缓冲区(DPB)230可以是存储参考图像或通常为参考图像数据的存储器,该参考图像用于视频编码器20对视频数据进行编码。DPB 230可由多种存储设备中的任何一种形成,这些存储设备例如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储设备。解码图像缓冲区(DPB)230可被配置为存储一个或多个滤波块221。解码图像缓冲区230可进一步被配置为存储其他先前滤波的块,例如,相同当前图像或不同图像(例如,先前重建图像)的先前重建块或滤波块221,并且可提供完整的先前重建(即解码)图像(和对应的参考块和参考样本)和/或部分重建的当前图像(和对应的参考块和参考样本),以例如进行帧间预测。解码图像缓冲区(DPB)230还可被配置为存储一个或多个未滤波的重建块215,或者通常为未滤波的重建样本,例如,如果重建块215没有被环路滤波器单元220滤波,或者重建块或重建样本没有进行任何形式的其他进一步处理。
模式选择(划分和预测)
模式选择单元260包括划分单元262、帧间预测单元244和帧内预测单元254,并且被配置为接收或获得原始图像数据,例如原始块203(当前图像17的当前块203),和重建图像数据,例如,相同(当前)图像的和/或一个或多个先前解码图像的(例如,解码图像缓冲区230或其他缓冲区(例如,行缓冲区,未示出)的)经滤波和/或未经滤波的重建样本或重建块。重建图像数据被用作参考图像数据进行预测,例如,帧间预测或帧内预测,以获得预测块265或预测值265。
模式选择单元260可被配置为确定或选择针对当前块预测模式的划分(不包括划分)和预测模式(例如,帧内或帧间预测模式)的划分,并生成对应的预测块265,该预测块265用于残差块205的计算并且用于重建块215的重建。
模式选择单元260的实施例可被配置为选择划分和预测模式(例如,从模式选择单元260所支持的或可用于模式选择单元260的模式中选择),该划分和预测模式提供最佳匹配,或者换句话说,最小残差(最小残差意味着更好的压缩以进行传输或存储),或最小指示开销(最小的指示开销意味着更好的压缩以进行传输或存储),或者同时考虑或平衡两者。模式选择单元260可被配置为基于率失真优化(RDO)来确定划分和预测模式,即,选择提供最小率失真的预测模式。在这种情况下,“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,而是也可指实现终止或选择标准,例如值超过或低于阈值或其他约束条件,从而有可能导致“次优选择”,但会减少复杂性和处理时间。
换句话说,划分单元262可被配置为例如通过迭代地使用四叉树划分(QT)、二叉树划分(BT)或三叉树划分(TT)或其任何组合将块203划分为较小的块部分或子块(其再次形成块),并被配置为执行例如对每个块部分或子块的预测,其中,模式选择包括选择划分块203的树结构,并且将预测模式应用于每个块部分或子块。
在下文中,将更详细地说明由示例视频编码器20执行的划分(例如,通过划分单元260)和预测处理(通过帧间预测单元244和帧内预测单元254)。
划分
划分单元262可将当前块203划分(或分割)为较小的部分,例如,较小的正方形或矩形块。这些较小的块(也可称为子块)可被进一步划分为甚至更小的部分。这也被称为树划分或分层树划分,其中,例如在根树级别0(层次结构级别0,深度0)处的根块可以被递归地划分,例如划分为下一个较低树级别(例如树级别1(层次结构级别1,深度1)处的节点)的两个或多个块,其中,这些块可再次划分为下一个较低级别(例如树级别2(层次结构级别2,深度2))的两个或多个块,等等,直到划分终止,例如因为满足终止条件,例如达到最大树深或最小块尺寸。没有进一步划分的块也称为树的叶块或叶节点。划分为两个部分的树称为二叉树(BT),划分为三个部分的树称为三叉树(TT),划分为四个部分的树称为四叉树(QT)。
如前所述,本文所使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参考HEVC和VVC,块可以是或对应于译码树单元(CTU)、译码单元(CU)、预测单元(PU)和变换单元(TU)和/或对应的块,例如译码树块(CTB)、译码块(CB)、变换块(TB)或预测块(PB)。
例如,译码树单元(CTU)可以是或包括亮度样本的CTB、具有三个样本阵列的图像的色度样本的两个对应的CTB,或单色图像或使用三个独立的色彩平面和用于编码样本的语法结构进行编码的图像的样本的CTB。对应地,对于N的某个值,译码树块(CTB)可以是N×N样本块,使得将分量分为CTB便是划分。译码单元(CU)可以是或包括亮度样本的译码块,具有三个样本阵列的图像的色度样本的两个对应的译码块,或单色图像或使用三个独立的色彩平面和用于编码样本的语法结构进行编码的图像的样本的译码块。对应地,对于M和N的某些值,译码块(CB)可以是M×N样本块,使得将CTB分为译码块便是划分。
在实施例中,例如,根据HEVC,可通过使用表示为译码树的四叉树结构将译码树单元(CTU)分割为CU。在CU级别上决定是否使用帧间(时间)或帧内(空间)预测对图像区域进行译码。可根据PU分割类型将每个CU进一步划分为一个、两个或四个PU。在一个PU内部,应用相同的预测过程,并基于PU将相关信息传输到解码器。在通过基于PU分割类型应用预测过程而获得残差块之后,可根据类似于用于CU的译码树的另一四叉树结构将CU划分为变换单元(TU)。
在实施例中,例如,根据当前正在开发的最新视频译码标准(被称为通用视频译码(VVC)),四叉树和二叉树(QTBT)划分被用于划分译码块。在QTBT块结构中,CU可具有正方形或矩形形状。例如,首先通过四叉树结构来划分译码树单元(CTU)。四叉树叶节点进一步由二叉树或三叉树(或三叉(ternary/triple)树)结构划分。划分的树叶节点被称为译码单元(CU),该分段用于预测和变换处理,而无需任何进一步的划分。这意味着CU、PU和TU在QTBT译码块结构中具有相同的块尺寸。并行地,还提出了将多个划分部分(例如三叉树划分部分)与QTBT块结构一起使用。
在一个示例中,视频编码器20的模式选择单元260可被配置为执行本文描述的划分技术的任何组合。
如上所述,视频编码器20被配置为从(预定)预测模式集合中确定或选择最佳或最优预测模式。该预测模式集合可包括例如帧内预测模式和/或帧间预测模式。
帧内预测
帧内预测模式集合可包括35种不同的帧内预测模式,例如,非定向模式,例如DC(或均值)模式和平面模式,或定向模式,例如如HEVC中所定义,或可包含67种不同的帧内预测模式,例如非定向模式,例如DC(或均值)模式和平面模式,或定向模式,例如针对VVC所定义。
通用测试模型(VTM)3.0版使用93种帧内预测模式和若干种帧内平滑工具,包括四抽头子像素帧内插值滤波和位置相关的预测组合(PDPC)。提出将PDPC作为修改(加权)预测样本的统一机制,所述预测样本是使用DC、平面或角度帧内预测模式进行帧内预测的结果。
帧内预测单元254被配置为根据同帧内预测模式集合中的帧内预测模式,使用相同当前图像的相邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或通常为模式选择单元260)还被配置为以语法元素266的形式向熵编码单元270输出帧内预测参数(或通常为指示块的所选帧内预测模式的信息),以包括在编码图像数据21中,以便例如视频解码器30可接收和使用预测参数进行解码。
帧间预测
(可能的)帧间预测模式集合取决于可用的参考图像(即,先前至少部分解码的图像,例如,存储在DBP 230中)和其他帧间预测参数,例如,是整个参考图像还是仅一部分,例如参考图像的当前块区域周围的搜索窗口区域用于搜索最佳匹配的参考块,和/或例如是否应用像素插值,例如半像素/二分之一像素和/或四分之一像素插值。
除了上述预测模式之外,可应用跳过模式和/或直接模式。
帧间预测单元244可包括运动估计(ME)单元和运动补偿(MC)单元(均未在图2中示出)。运动估计单元可被配置为接收或获得图像块203(当前图像17的当前图像块203)和解码图像231,或至少一个或多个先前重建的块,例如一个或多个其他/不同的先前解码图像231的重建块,以用于运动估计。例如,视频序列可包括当前图像和先前解码图像231,或者换句话说,当前图像和先前解码的图像231可以是形成视频序列的图像的一部分或形成图像序列。
编码器20可例如被配置为从多个其他图像的相同或不同图像的多个参考块中选择参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x,y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供到运动估计单元。此偏移也称为运动矢量(MV)。
运动补偿单元被配置为获取(例如接收)帧间预测参数,并基于或使用帧间预测参数执行帧间预测,以获得帧间预测块265。由运动补偿单元执行的运动补偿可涉及基于通过运动估计确定的运动/块矢量来获取或生成预测块,从而可能执行插值至子像素精度。插值滤波可从已知像素样本生成附加的像素样本,从而潜在地增加可用于对图像块进行译码的候选预测块的数量。在接收到当前图像块的PU的运动矢量时,运动补偿单元可在参考图像列表中定位运动矢量指向的预测块。
运动补偿单元还可产生与块和视频条带(slice)相关联的语法元素,以供视频解码器30用于对视频条带的图像块进行解码。
熵编码
熵编码单元270被配置为应用例如熵编码算法或方案(例如,可变长度编码(VLC)方案、上下文自适应VLC方案(CAVLC)、算术编码方案,二值化、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间划分熵(PIPE)编码或其他熵编码方法或技术)或绕过(不压缩)量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其他语法元素以获得编码图像数据21,该编码图像数据可通过输出272例如以编码码流21的形式输出,以便例如视频解码器30可接收并使用这些参数进行解码。编码码流21可被传输到视频解码器30,或者可被存储在存储器中,以供以后由视频解码器30传输或检索。
视频编码器20的其他结构变型可用于对视频流进行编码。例如,基于非变换的编码器20可直接量化残差信号,而无需针对某些块或帧的变换处理单元206。在另一实现方式中,编码器20可具有组合成单个单元的量化单元208和反量化单元210。
解码器和解码方法
图3示出了被配置为实现本申请技术的视频解码器30的示例。视频解码器30被配置为接收例如由编码器20编码的编码图像数据21(例如,编码码流21),以获得解码图像331。编码图像数据或码流包括用于对编码图像数据进行解码的信息,该数据例如表示编码视频条带的图像块和相关联的语法元素的数据。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如,求和器314)、环路滤波器320、解码图像缓冲区(DBP)330、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或包括运动补偿单元。在一些示例中,视频解码器30可执行解码过程,通常是与结合图2的视频编码器100所描述的编码过程的逆过程。
如关于编码器20所解释,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(DPB)230、帧间预测单元344和帧内预测单元354也被称为形成视频编码器20的“内置解码器”。因此,反量化单元310的功能可与反量化单元110的功能相同,逆变换处理单元312的功能可与逆变换处理单元212的功能相同,重建单元314的功能可与重建单元214的功能相同,环路滤波器320的功能可与环路滤波器220的功能相同,并且解码图像缓冲区330的功能可与解码图像缓冲区230的功能相同。因此,针对视频编码器20的各个单元和功能提供的解释对应地适用于视频解码器30的各个单元和功能。
熵解码
熵解码单元304被配置为解析码流21(或通常为编码图像数据21),并且例如对编码图像数据21执行熵解码以获得例如量化系数309和/或解码后的编码参数(在图3中未示出),例如帧间预测参数(例如,参考图像索引和运动矢量)、帧内预测参数(例如,帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其他语法元素中的任何一个或全部。熵解码单元304可被配置为应用对应于如结合编码器20的熵编码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可被配置为向模式选择单元360提供帧间预测参数、帧内预测参数和/或其他语法元素,并且向解码器30的其他单元提供其他参数。视频解码器30可在视频条带级别和/或视频块级别接收语法元素。
反量化
反量化单元310可被配置为从编码图像数据21接收量化参数(QP)(或通常为与反量化有关的信息)和量化系数(例如,通过例如由熵解码单元304进行解析和/或解码),并基于量化参数对解码后的量化系数309进行反量化,以获得解量化系数311,也可称为变换系数311。反量化过程可包括使用由视频编码器20为视频条带中的每个视频块确定的量化参数来确定量化程度,并且同样地确定应采用的反量化程度。
逆变换
逆变换处理单元312可被配置为接收解量化系数311,也称为变换系数311,并且将变换应用于解量化系数311,以便在样本域中获得重建残差块213。重建残差块213也可被称为变换块313。该变换可以是逆变换,例如逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可被配置为从编码图像数据21接收变换参数或对应的信息(例如,通过例如由熵解码单元304进行解析和/或解码),以确定要应用于解量化系数311的变换。
重建
重建单元314(例如,加法器或求和器314)被配置为将重建残差块313添加到预测块365,以在样本域中获得重建块315,例如,通过将重建残差块313的样本值与预测块365的样本值相加。
滤波
环路滤波器单元320(在译码环路中或在译码环路之后)被配置为对重建块315进行滤波以获得例如滤波块321,以平滑像素过渡,或以其他方式提高视频质量。环路滤波器单元320可包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(SAO)滤波器或一个或多个其他滤波器,例如双边滤波器、自适应环路滤波器(ALF)、锐化滤波器、平滑滤波器或协作滤波器,或其任何组合。尽管环路滤波器单元320在图3中被示出为环路滤波器,但是在其他配置中,环路滤波器单元320可被实现为后环路滤波器。
解码图像缓冲区
然后,图像的解码视频块321被存储在解码图像缓冲区330中,该解码图像缓冲区330将解码图像331存储为参考图像,以用于其他图像的后续运动补偿和/或相应地输出显示。
解码器30被配置为例如通过输出312输出解码图像311,用于向用户呈现或供用户观看。
预测
帧间预测单元344可在功能上与帧间预测单元244(尤其是运动补偿单元)相同,并且帧内预测单元354可在功能上与帧间预测单元254相同,并且基于(例如,通过例如由熵解码单元304进行解析和/或解码)从编码图像数据21接收的划分和/或预测参数或相应信息执行分割或划分决策和预测。模式选择单元360可被配置为基于重建图像、块或相应的样本(滤波或未滤波)对每个块执行预测(帧内或帧间预测)以获得预测块365。
当视频条带被译码为帧内译码(I)条带时,模式选择单元360的帧内预测单元354被配置为基于所指示的帧内预测模式和来自当前图像的先前解码块的数据生成当前视频条带的图像块的预测块365。当视频图像被译码为帧间译码(即,B或P)条带时,模式选择单元360的帧间预测单元344(例如,运动补偿单元)被配置为基于从熵解码单元304接收的运动矢量和其他语法元素产生用于当前视频条带的视频块的预测块365。对于帧间预测,可从一个参考图像列表中的一个参考图像产生预测块。视频解码器30可基于存储在DPB 330中的参考图像使用默认构建技术来构建参考帧列表,列表0和列表1。
模式选择单元360被配置为通过解析运动矢量和其他语法元素来确定用于当前视频条带的视频块的预测信息,并且使用该预测信息来产生用于正在解码的当前视频块的预测块。例如,模式选择单元360使用接收到的语法元素中的一些来确定用于对视频条带的视频块进行译码的预测模式(例如帧内或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图像列表的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态,以及用于对当前视频条带中的视频块进行解码的其他信息。
视频解码器30的其他变型可用于对编码图像数据21进行解码。例如,解码器30可在没有环路滤波单元320的情况下产生输出视频流。例如,对某些块或帧,基于非变换的解码器30可直接对残差信号进行反量化,而无需逆变换处理单元312。在另一实现方式中,视频解码器30可具有组合成单个单元的反量化单元310和逆变换处理单元312。
应理解,在编码器20和解码器30中,当前步骤的处理结果可被进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可对插值滤波、运动矢量推导或环路滤波的处理结果执行进一步的操作,例如限幅或移位。
应注意,可将其他操作应用于当前块的推导的运动矢量(包括但不限于仿射模式的控制点运动矢量,仿射、平面、ATMVP模式下的子块运动矢量,时间运动矢量,等等)。例如,运动矢量的值根据其表示位被限制在预定义范围内。如果运动矢量的表示位是bitDepth,则范围是–2^(bitDepth–1)至2^(bitDepth–1)–1,其中“^”表示求幂。例如,如果bitDepth设置为等于16,则范围为–32768至32767;如果bitDepth设置为18,则范围为–131072至–131071。例如,推导的运动矢量的值(例如,一个8×8块内的四个4×4子块的MV)受到限制,使得四个4×4子块MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。此处根据bitDepth提供两种约束运动矢量的方法。
方法1:通过执行以下运算来去除溢出的最高有效位(MSB):
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (4)
其中,mvx是图像块或子块的运动矢量的水平分量,mvy是图像块或子块的运动矢量的垂直分量,ux和uy表示中间值;
例如,如果mvx的值为–32769,则在应用公式(1)和(2)之后,结果值为32767。在计算机系统中,十进制数字存储为二进制补码。–32769的二进制补码为1,0111,1111,1111,1111(17位),然后丢弃MSB,因此生成的二进制补码为0111,1111,1111,1111(十进制数为32767),这与通过应用公式(1)和(2)得到的输出相同。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (8)
如公式(5)至(8)所示,可在mvp与mvd相加期间应用这些运算。
方法2:通过对值进行限幅来去除溢出MSB:
vx=Clip3(–2bitDepth–1,2bitDepth–1–1,vx)
vy=Clip3(–2bitDepth–1,2bitDepth–1–1,vy)
其中,vx是图像块或子块的运动矢量的水平分量,vy是图像块或子块的运动矢量的垂直分量;x、y和z对应于MV限幅过程的三个输入值,函数Clip3的定义如下:
Figure GDA0003120871190000181
图4是根据本发明的实施例的视频译码设备400的示意图。视频译码设备400适合于实现如本文所述的公开的实施例。在一个实施例中,视频译码设备400可以是解码器(例如,图1A的视频解码器30)或编码器(例如,图1A的视频编码器20)。
视频译码设备400包括入端口410(或输入端口410)和接收器单元(Rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(CPU)430,用于处理数据;发送器单元(Tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可包括光电(OE)组件和电光(EO)组件,其耦合到入端口410、接收器单元420、发送器单元440和出端口450,用于光信号或电信号的出入。
处理器430由硬件和软件实现。处理器430可被实现为一个或多个CPU芯片、核(例如,作为多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收器单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述公开的实施例。例如,译码模块470实现、处理、准备或提供各种译码操作。因此,包括译码模块470使视频译码设备400的功能得到实质性的改进,并且实现了视频译码设备400到不同状态的转换。或者,译码模块470被实现为存储在存储器460中并且由处理器430执行的指令。
存储器460可包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可用作溢出数据存储设备,以在选择要执行的程序时存储程序,以及存储在程序执行区间读取的指令和数据。存储器460可以是例如易失性和/或非易失性存储器,并且可以是只读存储器(ROM)、随机存取存储器(RAM)、三态内容可寻址存储器(TCAM)和/或静态随机存取存储器(SRAM)。
图5是根据示例性实施例的可用作图1的源设备12和目的地设备14中的任一个或两个的装置500的简化框图。
装置500中的处理器502可以是中央处理单元。或者,处理器502可以是任何其他类型的设备或多个设备,其能够操纵或处理现在存在或以后生成的信息。尽管所公开的实现方式可用所示的单个处理器(例如,处理器502)来实践,但是可使用多于一个处理器来实现速度和效率上的优势。
在实现方式中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他合适类型的存储设备都可用作存储器504。存储器504可包括由处理器502使用总线512访问的代码和数据506。存储器504可还包括操作系统508和应用程序510,应用程序510包括至少一个程序,该程序允许处理器502执行此处描述的方法。例如,应用程序510可包括应用程序1至N,其还包括执行此处描述的方法的视频译码应用程序。
装置500还可包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触敏显示器,其将显示器与可操作以感测触摸输入的触敏元件组合。显示器518可通过总线512耦合到处理器502。
尽管在此处被描述为单个总线,但是装置500的总线512可由多个总线组成。此外,辅助存储设备514可直接耦合至装置500的其他组件,或者可通过网络访问,并且可包括单个集成单元(例如,存储卡)或多个单元(例如,多个存储卡)。装置500因此可以多种配置来实现。
取决于用于推导当前图像块的样本的预测值的帧内预测模式,可不同地执行简化的PDPC的特定实现。
对于平面、DC、水平/垂直帧内预测模式(在图7和图8中分别表示为0、1、18、50),可执行以下步骤:
样本
Figure GDA0003120871190000191
的加权预测值相对于位于(x,y)的样本P(x,y)的预测值的计算如下:
P(x,y)=Clip1Cmp((wL×R–1,y+wT×Rx,–1–wTL×R–1,–1+(64–wL–wT+wTL)×P(x,y)+32))>>6) (1)
其中,Rx,–1R–1,y表示位于当前样本(x,y)上部和左侧的参考样本,R–1,–1表示位于当前样本的左上顶点的参考样本,函数clip1Cmp设置如下:
-如果指定当前块颜色分量的cIdx等于0,则将clip1Cmp设置为等于Clip1Y。
-否则,将clip1Cmp设置为等于Clip1C
Clip1Y(x)=Clip3(0,(1<<BitDepthY)–1,x)
Clip1CC(x)=Clip3(0,(1<<BitDepthC)–1,x)
Figure GDA0003120871190000192
BitDepthY是亮度采样的位深度。
BitDepthC是色度样本的位深度。
BitDepthY和BitDepthC可在码流的序列参数集(SPS)中指示。
Clip1Y(x)和Clip1C(x)的替代定义是可能的。具体地,如F Galpin、P Bordes和FLe Léannec在文献JVET-C0040“JEM2.0中的自适应限幅(Adaptive Clipping in JEM2.0)”中所述,
CliplCmp(x)=Clip3(minc,maxc,x),
其中,minc是当前条带中用于分量ID C的下限,
maxc是当前条带中用于分量ID C的上限,
C是颜色分量(例如,Y表示亮度,Cb和Cr表示色度),
DC模式权重计算如下:
wT=32>>((y<<1)>>shift),
wL=32>>((x<<1)>>shift),
wTL=–(wL>>4)–(wT>>4),
其中,shift=(log2(width)+log2(height)+2)>>2,而width和height分别是以样本为单位的当前块的宽度和高度。
对于平面模式,wTL=0,而对于水平模式,wTL=wT,对于垂直模式,wTL=wL。图9中示出了一个4×4块内的(0,0)和(1,0)位置的DC模式PDPC权重(wL,wT,wTL)。
对于对角线模式(在图7和图8中分别表示为2和66)和相邻模式(在图7或图8中为不小于58且不大于10的定向模式),如下所述,使用相同的公式(1)进行处理。
图10A示出了用于将PDPC扩展到右上对角线模式的参考样本Rx,–1、R–1,y和R–1,–1的定义。预测samplepred(x',y')位于预测块内的(x',y')处。参考样本Rx,–1的坐标x由下式给出:
x=x'+y'+1,
参考样本R–1,y的坐标y类似地由下式给出:
y=x'+y'+1。
右上对角线模式的PDPC权重为:
wT=16>>((y'<<1)>>shift),
wL=16>>((x'<<1)>>shift),
wTL=0。
类似地,图10B示出了用于将PDPC扩展到左下对角线模式的参考样本Rx,–1、R–1,y和R–1,–1的定义。参考样本Rx,–1的坐标x由下式给出:
x=x'+y'+1,
并且参考样本R–1,y的坐标y为:
y=x'+y'+1。
右上对角线模式的PDPC权重为:
wT=16>>((y'<<1)>>shift),
wL=16>>((x'<<1)>>shift),
wTL=0。
图10C中示出了相邻的右上对角线模式的情况。相邻的右上对角线模式的PDPC权重为:
wT=32>>((y'<<1)>>shift),
wL=0,
wTL=0。
类似地,在图10D中示出了相邻的左下对角线模式的情况。相邻的左下对角线模式的PDPC权重为:
wL=32>>((x'<<1)>>shift),
wT=0,
wTL=0。
使用已经用于角度模式帧内预测的表来计算最后两种情况的参考样本坐标。如果计算了分数参考样本坐标,则使用参考样本的线性插值。
可按照VVC规范中的规定执行简化的PDPC。此外,使用以下表示法:
Figure GDA0003120871190000211
是反角的值,
Round(x)=Sign(x)*Floor(Abs(x)+0.5),
Figure GDA0003120871190000212
Floor(x)是小于或等于x的最大整数,
Log2(x)是x的以2为底的对数。
intraPredAngle是表6中指定的角度参数,
A=C?B:D是三元赋值运算,其中,如果条件C为真,则将A设置为等于B。否则,如果条件C为假,则将A设置为等于D。
INTRA_PLANAR是平面帧内预测模式(),
INTRA_DC是DC帧内预测模式,
INTRA_ANGULARXX是定向帧内预测模式中的一种,其中,XX表示其编号和对应的方向,如图8所示。
如果本文中未解释该术语,则应理解其定义可在VVC规范或HEVC/H.265标准规范中找到。
鉴于上述表示,简化的PDPC的步骤可定义如下:
此过程的输入是:
-帧内预测模式predModeIntra,
-变量nTbW,表示变换块宽度,
-变量nTbH,表示变换块高度,
-变量refW,表示参考样本宽度,
-变量refH,表示参考样本高度,
-预测样本predSamples[x][y],其中,x=0..nTbW–1,y=0..nTbH–1
-相邻样本p[x][y],其中,
x=–1,y=–1..refH–1和x=0..refW–1,y=–1,
-变量cldx,表示当前块的颜色分量。
此过程的输出是修改后的预测样本predSamples[x][y],其中,x=0..nTbW–1,y=0..nTbH–1。
根据cIdx的值,函数clip1Cmp的设置如下:
-如果cIdx等于0,则将clip1Cmp设置为等于Clip1y。
-否则,将clip1Cmp设置为等于Clip1C。
变量nScale设置为((Log2(nTbW)+Log2(nTbH)–2)>>2)。
参考样本阵列mainRef[x]和sideRef[y]推导如下,其中,x=0..refW–1和y=0..refH–1:
mainRef[x]=p[x][–1]
sideRef[y]=p[–1][y]
变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]推导如下,其中,x=0..nTbW–1,y=0..nTbH–1:
-如果predModelntra等于INTRA_PLANAR、INTRA_DC、INTRA_ANGULAR18或INTRA_ANGULAR50,则适用以下条件:
refL[x][y]=p[–1][y]
refT[x][y]=p[x][–1]
wT[y]=32>>((y<<1)>>nScale)
wL[x]=32>>((x<<1)>>nScale)
wTL[x][y]=(predModeIntra==INTRA_DC)?((wL[x]>>4)+(wT[y]>>4)):0
-否则,如果predModeIntra等于INTRA_ANGULAR2或INTRA_ANGULAR66,则适用以下条件:
refL[x][y]=p[–1][x+y+1]
refT[x][y]=p[x+y+1][–1]
wT[y]=(32>>1)>>((y<<1)>>nScale)
wL[x]=(32>>1)>>((x<<1)>>nScale)
wTL[x][y]=0
-否则,如果predModeIntra小于或等于INTRA_ANGULAR10,则按顺序进行以下步骤:
1.使用invAngle推导变量dXPos[y]、dXFrac[y]、dXInt[y]和dX[x][y],如下所示:
dXPos[y]=((y+1)*invAngle+2)>>2
dXFrac[y]=dXPos[y]&63
dXInt[y]=dXPos[y]>>6
dX[x][y]=x+dXInt[y]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]推导如下:
Figure GDA0003120871190000221
-否则,如果predModeIntra大于或等于INTRA_ANGULAR58(见图8),则按顺序进行以下步骤:
1.根据intraPredMode,使用下文中指定的invAngle推导变量dYPos[x]、dYFrac[x]、dYInt[x]和dY[x][y],如下所示:
dYPos[x]=((x+1)*invAngle+2)>>2
dYFrac[x]=dYPos[x]&63
dYInt[x]=dYPos[x]>>6
dY[x][y]=y+dYInt[x]
2.变量refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]推导如下:
Figure GDA0003120871190000232
-否则,将refL[x][y]、refT[x][y]、wT[y]、wL[x]和wTL[x][y]都设置为等于0。
修改后的预测样本predSamples[x][y]的值推导如下,其中,x=0..nTbW–1,y=0..nTbH–1:
predSamples[x][y]=clip1Cmp((refL[x][y]*wL[x]+refT[x][y]*wT[y]–p[–1][–1]*wTL[x][y]+(64–wL[x]–wT[y]+wTL[x][y])*predSamples[x][y]+32)>>6)
在上述PDPC中指定的赋值等式1中,可使用最近邻插值而不是线性插值:
refT[x][y]=(dX[x][y]<refW–1)?mainRef[dX[x][y]]:0
类似地,赋值等式2也可使用最近邻插值:
refL[x][y]=(dY[x][y]<refH–1)?sideRef[dY[x][y]]:0
因此,在编码器和解码器侧,所提出的方法都将以下内容用作输入数据:定向帧内预测模式(进一步表示为predModelntra,如图7和图8所示)
块尺寸参数nTbS,设置为等于
(log2(nTbW)+Log2(nTbH))>>1,其中,nTbW和nTbH分别表示预测块的宽度和高度,“>>”表示右移操作。
修改VVC规范以使得能够使用所提出的方法可包括在描述简化的PDPC的部分中用“参考样本p[x][y]”代替“相邻样本p[x][y]”。
角度参数intraPredAngle表示定点表示中的预测样本的两个相邻行之间的子像素偏移,该定点表示具的分数部分的长度等于5位。该参数可从帧内预测模式推导,并且可从predModeIntra推导。可使用LUT定义predModeIntra的intraPredAngle的示例性推导,例如,如表1所示。
表1:从predModelntra推导intraPredAngle的示例性LUT。
Figure GDA0003120871190000231
Figure GDA0003120871190000241
本文中,特别地,提出了使用定向、平面或DC帧内预测模式来更新从参考样本获得的预测样本。更新程序的步骤如图11所示。第一步骤1101是根据块的形状和尺寸来计算缩放值nScaleX和nScaleY。该计算的实现方式在图13中进一步描述。
对所有预测样本位置以循环方式执行步骤1103和1104。在步骤1102中执行循环迭代器x和y的初始化,在步骤1105和1107执行迭代器的边界检查,在步骤1106和1108执行迭代器递增。步骤1108将迭代器x和y重置为下一行的起始,即,x被设置为等于零,并且行迭代器y被递增1。
步骤1103包括计算位置相关的权重值wL[x]和wT[y]。这些权重值是通过将基值V右移而获得的。值V与步骤4的右移操作有关。如果将此右移设置为s,则可将V的实际值定义为例如2s,2s–1或2s。在图11所示的示例性实施例中,将s的值设置为等于6,并且将V的值设置为等于32,即25
与现有技术方法相比,步骤1103中的wL[x]和wT[y]分别使用不同的缩放值nScaleX和nScaleY。这些权重值wL[x]和wT[y]在步骤1104中进一步用于计算预测样本的修正值。
预测样本更新的替代实施例在图12中给出。在该实施例中,每行仅重新计算一次权重wT[y],即,当迭代器y递增时重新计算。
由于QTBT和MTT划分,预测块可能是非正方形(通常是矩形)形状。然而,现有技术的PDPC没有考虑预测块的宽度和高度的潜在不相等。如果预测块的宽高比不等于1,则仅基于到预测块左边和上边的距离值的加权机制可能会导致预测样本过于平滑。在本发明中,提出了使用帧内预测模式来平衡块尺寸和块宽高比的影响。使用帧内预测模式提供的方向性信息,可确定PDPC平滑效果的传播距离和方向性。因此,提出了引入一组帧内预测模式并对每个组应用专用的权重缩放适配。在这种情况下,即使是较长的预测块,也会根据边的长度(在适当的情况下根据帧内预测模式和预测块尺寸)来使用平滑处理。
当推导权重wT[y]和wL[x]时,建议使用单独的nScale值。特别地,在上面的描述中(步骤1103),将使用以下公式(V的值对应地设置为16或32):
wT[y]=V>>((y<<1)>>nScaleY)
wL[x]=V>>((x<<1)>>nScaleX)
缩放的计算(图11的步骤1101)可如图13所示执行。第一步骤1301是例如通过从码流进行解析来获得预测块的帧内预测模式intraPredAngle的值。下一步骤1302包括在于将帧内预测模式分类到一组。
进一步使用偏斜非对角线帧内预测模式的进一步定义:如果intraPredMode不等于2或VDIA_IDX并且以下各项中的一个为真,则intraPredMode是偏斜非对角线模式:intraPredMode不小于VDIA_IDX-numModes或intraPredMode不等于大于2+numModes。
表2给出了示例性分类。
表2:基于帧内预测模式的类索引推导。
Figure GDA0003120871190000251
根据模式类索引,nScaleX和nScaleY的推导可能不同。步骤1303,……,1312表示类索引到表3中所示的推导公式的映射。
表3:类索引到nScaleX和nScaleY的推导方法的映射。
Figure GDA0003120871190000252
表4、表5和表6给出了替代分类。
表4:基于帧内预测模式的替代类索引推导。
Figure GDA0003120871190000253
表5:基于帧内预测模式的替代类索引推导。
Figure GDA0003120871190000254
表6:基于帧内预测模式的替代类索引推导。
Figure GDA0003120871190000255
在表6中,不仅为对角线模式指定了类1,还为具有非分数IntraPredAngle值(即表1中32的倍数)的广角模式指定了类1。
根据本发明,在条件的某些组合的情况下,尤其是与块尺寸和帧内预测模式(intraPredMode)有关的条件的组合中,不应用预测样本更新(加权)步骤是至关重要的。
特定的实现可包括以下禁用PDPC的条件,即不执行预测样本更新(加权):
-块的宽度和块的高度的总和大于64个样本,并且intraPredMode是倾斜非对角线模式或等于PLANAR_IDX。
尺寸相关的限制的不同组合可选择性地应用于使用PDPC的那些帧内预测模式。具体地,以下组合是可行的:
1.对于满足以下条件的块,禁用PDPC:(宽度+高度<=8)或(宽度+高度>64),
2.对于满足以下条件的块,禁用PDPC:(宽度+高度<=8)或(宽度+高度>64),如果在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes))),其中,numModes=8,默认numModes=8;predMode是所选帧内预测模式的索引。
3.对于满足以下条件的块,禁用PDPC:
a.(宽度+高度<=8),对于应用PDPC的任何帧内预测模式;
b.(宽度+高度>64),如果在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
4.对于满足以下条件的块,禁用PDPC:
a.(宽度+高度<=8),对于应用PDPC的任何帧内预测模式;
b.(宽度+高度>64),如果在这些块中选择的模式是平面模式(PLANAR_IDX)。
5.对于满足以下条件的块,禁用PDPC:
a.(宽度+高度<=8),对于应用PDPC的任何帧内预测模式;
b.(宽度+高度>64),如果在这些块中选择的模式是满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
6.对于满足以下条件的块,禁用PDPC:
a.(宽度+高度<=8)
b.在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
7.对于满足以下条件的色度块,禁用PDPC:(宽度+高度<=8)或(宽度+高度>64);
8.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8);
b.跨分量线性建模模式用于预测这些色度块。
9.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8)和跨分量线性建模模式用于预测这些色度块;
b.(宽度+高度>64)。
10.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8);
b.在这些块中选择的模式是平面模式(PLANAR_IDX)。
11.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8);
b.在这些块中选择的模式是满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
12.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8);
b.跨分量线性建模模式用于预测这些色度块,或者在这些块中选择的模式是平面模式(PLANAR_IDX)。
13.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8);
b.跨分量线性建模模式用于预测这些色度块,或者在这些块中选择的模式是满足以下不等式的一种倾斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
14.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8)或(宽度+高度>64);
b.跨分量线性建模模式用于预测这些色度块,或者在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种倾斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
15.对于满足以下条件的色度块,禁用PDPC:
a.(宽度+高度<=8),并且跨分量线性建模模式用于预测这些色度块,或者在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种倾斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
b.(宽度+高度>64),并且在这些块中选择的模式是平面模式(PLANAR_IDX)或满足以下不等式的一种偏斜非对角线模式:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
16.上述限制的不同组合。
图14示出了上述方法。用虚线示出了限幅的步骤,该限幅的步骤在现有技术的PDPC中执行,但是不在所提出的方法中执行,这是因为不使用唯一的负系数wTL,因此不要求在所提出的方法中执行。
在图10中,帧内预测过程使用参考样本来产生预测样本。使用样本加权因子对每个预测样本进行进一步加权。样本加权因子可例如等于(64–wL[x]–wT[y])。相同的参考样本用于根据x和y为每个预测样本计算附加值,其中,x和y定义预测样本在预测块内的位置。将这些附加值添加到对应的加权预测样本中。然后,根据样本加权因子的预定精度,通过右移将由此操作产生的每个样本归一化。例如,如果将样本加权因子定义为(64–wL[x]–wT[y]),则精度为6位。因此,在该步骤,右移6,以确保输出值的可能的最小值和最大值与参考样本的可能的最小值和最大值相同。
提出的解决方案的一个人有益效果是PLANAR帧内预测机制可重新使用以计算附加值。具体来说,PLANAR帧内预测使用以下等式推导水平和垂直预测样本值:
predV[x][y]=((nTbH–1–y)*p[x][–1]++(y+1)*p[–1][nTbH])<<Log2(nTbW)
predH[x][y]=((nTbW–1–x)*p[–1][y]++(x+1)*p[nTbW][–1])<<Log2(nTbH)。
从以上两个等式可看出,predV[x][y]使用与predV[x][y]处于同一列的参考样本p[x][–1],而predH[x][y]使用与predH[x][y]位于同一行的参考样本p[–1][y]。此外,左移操作作为最后一个步骤执行,因此可跳过,因为它们不影响正在重新使用的中间计算。nTbW、nTbH、x和y变量是PLANAR帧内预测方法的输入,因此可对应地进行调整。因此,可用Dx输入变量替换(nTbW–1–x)并且用Dy输入变量替换(nTbH–1–y)。左下和右上参考样本可设置为0,因为它们不是的参数。对于,可执行类似的修改。
考虑到上述观察,可根据预先确定的输入来重写以上等式:
Vy=Dy*p[x][–1]
Vx=Dx*p[–1][y]
因此,可执行以下统一:
-在水平模式(模式18)的情况下,附加值可计算为Vy=Dy*p[x][–1],其中,Dy设置为等于wT[y];
-在垂直模式(模式50)的情况下,附加值可计算为Vx=Dx*p[–1][y],其中,Dx设置为等于wL[y];
-在DC模式(模式1)的情况下,附加值可计算为Vy+Vx,其中,Dx和Dy设置为与前两种情况相同;
通过参考样本选择的交替,可表明可对为PDPC处理指定的所有帧内预测模式执行统一。
当指定帧内预测模式等于DC、水平或垂直帧内预测模式时,应对结果更新的预测样本进行限幅,例如如图14中虚线框所示。
在水平或垂直帧内预测模式的情况下,当加权的预测样本与附加值相加时,在简化的PDPC的最后一个步骤之前重新定位限幅操作会更有利。对于如上所述的不同模式,可以不同方式获得该附加值。
阈值化可应用于中间计算的结果,执行该中间计算以获得垂直、水平或DC帧内预测模式的情况下的附加值。在采用这种方法的情况下,可通过将附加值添加到加权预测样本中的方式来计算附加值,而无需限幅操作。例如,这可使用下面公开的以下计算来实现。
根据帧内预测模式,一个或若干附加参考样本值,其中:
-当帧内预测模式为垂直模式时,将附加参考值设置为等于位于预测样本上方的最近/最接近参考样本与左上参考样本之间的差值,
-当帧内预测模式为水平模式时,将附加参考值设置为等于位于预测样本左侧的最近/最接近参考样本与左上参考样本之间的差值,
-当帧内预测模式是DC帧内预测模式时,通过以下方式获得第一附加参考样本值和第二附加参考样本值:
ο将第一附加参考样本值设置为等于位于预测样本左侧的最近/最接近参考样本,并且
ο将第二附加参考样本值设置为等于位于预测样本上方的最近/最接近参考样本;
当帧内预测模式是水平或垂直模式时,附加参考样本值被阈值化(例如,如图15所示)。
最后,通过以下方式计算附加值:
ο当帧内预测模式为DC帧内预测模式时,将附加值计算为第一附加参考样本和第二附加参考样本的加权和,或
ο当帧内预测模式为水平或垂直模式时,通过将加权因子乘以附加参考样本值来计算附加值;
附加参考样本值的阈值化实际上是根据左上参考样本是否大于预测样本来更新附加参考样本值。具体来说:
-当左上参考样本大于预测样本时,上限是通过从预测样本的最大值中减去预测样本值而获得,更新后的附加参考样本值设置为等于两个值中的最大值,其中
ο第一个值是附加参考样本值,并且
ο第二个值是上限值,
-否则,通过从预测样本的最小值中减去预测样本值来获得下限值,将更新的附加参考样本值设置为等于两个值中的最小值,其中
ο第一个值是附加参考样本值,并且
ο第二个值是下限值,
在图15中,当帧内预测模式为水平模式时,最接近参考样本是位于预测样本的左侧的最近参考样本。当帧内预测模式为垂直模式时,最接近参考样本是位于预测样本上方的最近参考样本。从该图可看出,比较结果用于切换以下两者:
-阈值函数的结果,即最小值和最大值,以及
-阈值函数的一个参数。
值得注意的是,Clip3()函数提供两个阈值化操作。一个阈值是预测样本的最小值,另一个阈值是预测样本的最大值。与应用于更新后的预测样本的Clip3()函数(图16)相比,提议的阈值处理(图15)仅适用于一个阈值:预测样本的最小值或预测样本的最大值。
还可注意到,在PDPC适用的情况下,上述阈值化重新定位使得能够使用相同的等式而无需对所有帧内预测模式进行限幅。值得注意的是,在将PDPC应用于包含尖锐边缘的内容(例如,屏幕内容)的情况下,PDPC实际上会执行边界平滑,这可能会对压缩性能产生不利影响。
PDPC可通过添加防止尖锐边缘模糊的机制来克服此缺点。在水平和垂直方向帧内预测模式的情况下,PDPC使用上述边界平滑和图16所示的水平模式。为了执行边界平滑,按如下方式计算位于位置x的参考样本的顶部行中的左上参考样本R–1,–1与上参考样本Rx,–1之间的差值ΔRT–TL
ΔRT–TL=(Rx,–1–R–1,–1)/2y+1
该差值ΔRT–TL被添加到位于要使用水平模式预测的块内的位置(x,y)处的样本。
类似地,针对垂直帧内预测模式执行边界平滑,而位于位置y的参考样本的左列中的左上参考样本R–1,–1与左参考样本R–1,y之间的差值ΔRL–TL计算如下:
ΔRL–TL=(R–1,y–R–1,–1)/2x+1
该差值ΔRL–TL被添加到位于要使用垂直模式预测的块内的位置(x,y)处的样本。
为了避免使用该边界平滑来模糊尖锐边界,应测量上参考样本行的参考样本之间的相似性,应测量左参考样本列的参考样本之间的相似性。如果左列中的参考样本与顶部行中的参考样本具有相似的参数(例如,一种或每种颜色分量(例如,亮度和色度)的强度、这些强度的分布等),则将执行边界平滑处理。否则,跳过边界平滑(所谓的硬阈值化)或将边界平滑应用于要预测的块内的样本,但是权重降低(所谓的软阈值化),例如该权重可通过分母2w定义,其中,在上述公式中,w=y+1且w=x+1。
在硬阈值化的情况下,在上参考样本行的参考样本之间计算相似性度量,在左参考样本列的参考样本之间计算相似性度量。作为该度量,ΔRL(y)=abs(R–1,y–R–1,y–1),计算左参考样本列的参考样本之间的相似性度量。作为此度量,ΔRT(x)=abs(Rx,–1–Rx–1,–1),计算上参考样本行的参考样本之间的相似性度量,其中,abs(·)是一个返回给定数字绝对值的函数,可分别用于水平和垂直模式下要预测的块的第一行或第一列。如果满足不等式ΔRT>ΔRTHR和ΔRL>ΔRTHR,则不执行边界平滑。否则,可对边界平滑程序进行任何修改(即,可对某些参数进行调整)。
在软阈值化的情况下,可以使用相同的度量(例如,ΔRL(y)=abs(R–1,y–R–1,y–1))来估计左参考样本列的参考样本之间的相似性,可以使用相同的度量(例如,ΔRT(x)=abs(Rx,–1–Rx–1,–1))来估计上参考样本行的参考样本之间的相似性。然后,水平模式的ΔRT–TL和垂直模式的ΔRL–TL计算如下:
ΔRT–TL=(Rx,–1–R–1,–1)/2y+fw(ΔRL),
ΔRL–TL=(R–1,y–R–1,–1)/2x+fw(ΔRT)
其中fw(·)为[0,2n–1]范围内的输入值定义,其中,n是静止图像或视频序列中样本的位深度。函数fw(·)的输出值落入[0,n]。函数fw(·)可定义为解析形式,也可定义为查找表(LUT)。以下公式举例说明了fw(·):
fw(δ)=log2(δ>>q),
其中,q是定义输入值范围的值(在这种情况下,此范围是[0,1<<q]),其中,fw(δ)=0。
表7举例说明了列表化的fw(·):
表7为表示n=10的函数fw(·)的示例性查找表(LUT):
输入值范围 输出值
0–3 0
4–169 1
170–203 6
204及以上 7
可使用的另一个函数由以下公式定义:
Figure GDA0003120871190000301
Figure GDA0003120871190000302
分别用于水平模式和垂直模式。当
ΔRL(y)=abs(R–1,y–R–1,y–1)且ΔRT(x)=abs(RX,–1–Rx–1,–1)时,该实施例在图17中示出。
ΔRL(y)和ΔRT(x)的值可重新定义如下:
ΔRL(y)=abs(R–1,y–R–1,–1),
ΔRT(x)=abs(Rx,–1–R–1,–1),
分别用于水平模式和垂直模式。该实施例在图18中示出。
本文提供的其他实施例:
1.一种对图像块进行帧内预测的方法,包括针对块的多个样本中的每个样本:
通过使用水平或垂直帧内预测模式进行帧内预测来从一个或多个参考样本值中获得预测样本值;
将预测样本值乘以样本加权因子,得到加权的预测样本值;
根据位于上参考样本行上的参考样本之间的相似性和位于左参考样本列上的参考样本之间的相似性,基于与帧内预测模式的方向在空间上正交的方向的缩放因子来确定权重值。
将附加值计算为附加参考样本值乘以获得的权重值;
将附加值与加权的预测样本值相加,得到未归一化的预测样本值;以及
对未归一化的预测样本值进行归一化,得到归一化的预测样本值。
2.根据实施例1所述的方法,其中
当所述帧内预测模式为垂直模式时,将所述附加参考样本值设置为等于位于所述预测样本上方的最近参考样本的值与左上参考样本的值之间的差值;
当帧内预测模式为水平模式时,将附加参考样本值设置为等于位于预测样本左侧的最近参考样本的值与左上参考样本的值之间的差值。
3.根据实施例1至2中的任一项所述的方法,其中,计算每个预测样本块的相似性度量。
4.根据实施例1至2中的任一项所述的方法,其中,计算每个样本集合的相似性度量,所述集合包括针对水平预测模式的预测样本的行和针对垂直帧内预测模式的预测样本的列。
5.根据实施例1至4中任一项的方法,其中
当位于上参考样本行上的参考样本之间的相似性度量值大于预定阈值并且位于左参考样本列上的参考样本之间的相似性度量值大于预定阈值时,将附加值确定为附加参考样本值。
6.根据权利要求1至5中任一项所述的方法,其中,当相似性度量值大于预定阈值时,将权重值右移。
7.根据权利要求1至5中任一项所述的方法,其中,根据位于上参考样本行和左参考样本列上的参考样本之间的相似性,基于与帧内预测模式的方向在空间上正交的方向的缩放因子来确定权重值,包括:
当位于上参考样本行上的参考样本之间的相似度不大于预定阈值和/或位于左参考样本列上的参考样本之间的相似度不大于预定阈值时,与帧内预测模式的方向在空间上正交的方向的缩放因子来确定权重值。
8.根据实施例5至7中的任一项所述的方法,其中,预定阈值的值从查找表中获取。
9.根据实施例1至8中任一项所述的方法,其中,相似性度量是两个相邻参考样本的绝对差。
10.根据实施例1至8中任一项所述的方法,其中,相似性度量是位于预测样本上方的最近参考样本与左上参考样本之间的绝对差,或者相似性度量是位于预测样本左侧的最近参考样本与左上参考样本之间的绝对差。
11.根据实施例1至10中任一项所述的方法,其中,对未归一化的预测样本值进行归一化,得到归一化的预测样本值,包括:
通过对未归一化的预测样本值的整数表示进行算术右移来对未归一化的预测样本值进行归一化,得到归一化的预测样本值。
12.根据实施例1至11中任一项所述的方法,其中,样本加权因子被定义为等于两个值之间的差值,
-第一值等于1<<S,其中,Sis是用于归一化的移位值;以及
-第二值等于应用于附加参考样本值以获得其他值的权重的总和。
13.根据实施例1至11中任一项所述的方法,其中,样本加权因子被定义为等于1<<S,其中,S是用于归一化的移位值。
14.一种对图像块进行帧内预测的方法,包括:针对所述块的多个样本中的每个样本:
通过使用水平或垂直帧内预测模式进行帧内预测来从一个或多个参考样本值中获得预测样本值;
将预测样本值乘以样本加权因子,得到加权的预测样本值;
确定位于上参考样本行上的参考样本之间的相似性和/或位于左参考样本列上的参考样本之间的相似性是否大于预定阈值;
当两个相似性度量值均大于预定阈值时,将作为附加参考样本值的附加值添加到加权预测样本值,得到未归一化的预测样本值;
当相似性度量值中的任一个不大于预定阈值时,基于与帧内预测模式的方向在空间上正交的方向的缩放因子来确定权重值;将附加值计算为附加参考样本值乘以获得的权重值;将附加值与加权后的预测样本值相加,得到非归一化的预测样本值;以及
对未归一化的预测样本值进行归一化,得到归一化的预测样本值。
15.根据实施例14所述的方法,其中
当所述帧内预测模式为垂直模式时,将所述附加参考样本值设置为等于位于所述预测样本上方的最近参考样本的值与左上参考样本的值之间的差值;
当帧内预测模式为水平模式时,将附加参考样本值设置为等于位于预测样本左侧的最近参考样本的值与左上参考样本的值之间的差值。
16.根据实施例14或15所述的方法,其中,计算每个预测样本块的相似性度量。
17.根据实施例14或15所述的方法,其中,计算每个样本集合的相似性度量,所述集合包括针对水平预测模式的预测样本的行和针对垂直帧内预测模式的列。
18.根据实施例14至17中任一项所述的方法,其中,相似性度量是两个相邻参考样本的绝对差。
19.根据实施例14至17中任一项所述的方法,其中,相似性度量是位于预测样本上方的最近参考样本与左上参考样本之间的绝对差,或者相似性度量是位于预测样本左侧的最近参考样本与左上参考样本之间的绝对差。
20.根据实施例1至19中的任一项所述的方法,其中,预定阈值的值是从查找表中获取。
21.根据实施例14至20中任一项所述的方法,其中,样本加权因子被定义为等于两个值之间的差值,
-第一值等于1<<S,其中,S是用于归一化的移位值;以及
-第二值等于应用于附加参考样本值以获得其他值的权重的总和。
22.根据实施例14至20中任一项所述的方法,其中,样本加权因子被定义为等于1<<S,其中,S是用于归一化的移位值。
23.一种用于对图像进行编码的编码器,包括处理电路,用于执行根据实施例1至22中任一项所述的方法。
24.一种用于对图像进行解码的解码器,包括处理电路,用于执行根据实施例1至22中任一项所述的方法。
25.一种解码器,包括:
一个或多个处理器;以及
非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述解码器配置为执行根据实施例1至22中任一项所述的方法。
26.一种编码器,包括:
一个或多个处理器;以及
非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述编码器配置为执行根据实施例1至22中任一项所述的方法。
27.一种非瞬时性计算机可读介质,其携载程序代码,所述程序代码在由计算机设备执行时使计算机设备执行根据实施例1至22中任一项的方法。
尽管已经主要基于视频译码描述了本发明的实施例,但是应注意,译码系统10、编码器20和解码器30(以及对应系统10)的实施例以及本文描述的其他实施例也可被配置用于静止图像处理或译码,即与视频译码中一样,独立于任何先前或连续图像的单个图像的处理或译码。通常,仅帧间预测单元244(编码器)和344(解码器)可能不可用于图像处理译码限于单个图像17的情况。视频编码器20和视频解码器30的所有其他功能(也称为工具或技术)可等同地用于静止图像处理,例如,残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、划分262/362、帧内预测254/354和/或环路滤波220、320和熵编码270和熵解码304。
例如编码器20和解码器30的实施例以及本文例如参考编码器20和解码器30描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可作为一个或多个指令或代码存储在计算机可读介质上或通过通信介质传输,并由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,其对应于有形介质,例如,数据存储介质,或通信介质,包括例如根据通信协议来促进将计算机程序从一个地方转移到另一个地方的任何介质。以这种方式,计算机可读介质通常可对应于(1)非瞬时性的有形计算机可读存储介质,或者(2)通信介质,例如信号或载波。数据存储介质可以是任何可用介质,这些介质可由一个或多个计算机或一个或多个处理器访问,以检索指令、代码和/或数据结构,从而实现本发明中描述的技术。计算机程序产品可包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁性存储设备、闪存或可用来以指令或数据结构的形式存储所需的程序代码并且可由计算机访问的任何其他可存储介质。同样,任何连接都可适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如红外线、无线电和微波)从网站、服务器或其他远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)都包括在介质的定义中。然而,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是涉及非瞬时的有形存储介质。本文使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。以上的组合也应包括在计算机可读介质的范围内。
指令可由一个或多个处理器执行,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,如本文所使用,术语“处理器”可指任何前述结构或适合于实现本文所描述的技术的任何其他结构。另外,在一些方面中,本文描述的功能可在被配置用于编码和解码的专用硬件和/或软件模块中提供,或结合在组合的译码器中。同样,该技术可在一个或多个电路或逻辑元件中完全实现。
本发明的技术可在包括无线手持机、集成电路(IC)或IC集(例如,芯片集)的多种设备或装置中实现。在本发明中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。而是,如上所述,各种单元可组合在译码器硬件单元中,或者由互操作的硬件单元的集合来提供,包括如上所述的一个或多个处理器,以及适当的软件和/或固件。

Claims (17)

1.一种帧内预测方法,包括:
通过使用帧内预测模式从当前块外的一个或多个参考样本确定所述当前块的样本的预测值;
当不满足一个或多个预定义条件时,推导加权预测值,其中,所述一个或多个预定义条件与所述当前块的宽度和/或高度以及所述帧内预测模式中的至少一个有关;以及
当不满足所述一个或多个预定义条件时,使用所述加权预测值对所述当前块进行译码;
其中,所述一个或多个预定义条件包括以下条件中的至少一个:
a)所述当前块的所述宽度和所述高度的总和小于第一阈值和/或所述当前块的所述宽度和所述高度的总和大于第二阈值;
b)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式,或者满足下式的偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes))),
其中,VDIA_IDX是对角线模式的索引,numModes是预定义的整数,并且predMode是所述帧内预测模式的索引;
c)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式,或者满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
d)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是平面模式;以及
e)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
2.根据权利要求1所述的方法,其中,所述当前块包括在视频序列或静止图像的当前帧中。
3.根据权利要求1或2所述的方法,还包括:
当满足所述一个或多个预定义条件时,使用所述预测值而不使用所述加权预测值对所述当前块进行译码。
4.根据权利要求1或2所述的方法,其中,基于以下推导所述加权预测值:
a)所述当前块中所述样本的位置(x,y)处的预测值,其中,x是所述样本的水平坐标,而y是所述样本的垂直坐标,
b)所述当前块的所述宽度和/或所述高度,
c)在所述当前块的第x列处且在所述当前块顶部的行中与所述当前块相邻的所述当前块的上参考样本的值和在所述当前块的第y行处且在所述当前块左侧的列中与所述当前块相邻的所述当前块的左参考样本的值,以及
d)所述帧内预测模式。
5.根据权利要求4所述的方法,其中,根据以下公式推导所述加权预测值:
Figure FDA0003878281750000021
Figure FDA0003878281750000022
其中
Figure FDA0003878281750000023
是所述样本的所述加权预测值;
P(x,y)是所述样本的所述预测值;
Rx,–1、R–1,y表示所述当前块的所述上参考样本和所述左参考样本的所述值;
R–1,–1表示在所述当前块的左上顶点处与所述当前块相邻的所述当前块的参考样本的值;
wL、wT和wTL表示权重;
其中,当所述当前块是亮度块时,函数CliplCmp设置为等于限幅函数CliplY,而当所述当前块是色度块时,所述函数CliplCmp设置为等于限幅函数CliplC,其中
Clip1Y(x)=Clip3(0,(1<<BitDepthY)–1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)–1,x)
Figure FDA0003878281750000024
并且其中,BitDepthY是亮度样本的位深度,而BitDepthC是色度样本的位深度。
6.根据权利要求5所述的方法,其中,所述权重通过下式推导:
wL=V>>((x<<1)>>nScaleX);
wT=V>>((y<<1)>>nScaleY);
其中,V、nScaleX、nScaleY是预定值;
以及
当所述帧内预测模式是DC模式时,
Figure FDA0003878281750000025
当所述帧内预测模式是平面模式时,wTL=0,
当所述帧内预测模式是水平模式时,wTL=wT,以及
当所述帧内预测模式是垂直模式时,wTL=wL。
7.根据权利要求6所述的方法,其中,V是16或32。
8.根据权利要求6或7所述的方法,其中
nScaleX=nScaleY=(log2(w)+log2(h)+2)>>2,
其中,w和h分别是所述当前块的所述宽度和所述高度,以样本为单位。
9.根据权利要求6或7所述的方法,其中,nScaleX不同于nScaleY。
10.根据权利要求1或2所述的方法,其中,所述当前块是色度块,并且其中,所述一个或多个预定义条件包括以下条件中的至少一个:
a)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;
b)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式;
c)所述当前块的所述宽度和所述高度的总和小于第一阈值,并且所述帧内预测模式是跨分量线性建模模式;并且所述当前块的所述宽度和所述高度的总和大于第二阈值;
d)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是平面模式;
e)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
f)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式或平面模式;
g)所述当前块的所述宽度和所述高度的总和小于第一阈值;并且所述帧内预测模式是跨分量线性建模模式或所述帧内预测模式是满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));
h)所述当前块的所述宽度和所述高度的总和小于第一阈值,或者所述当前块的所述宽度和所述高度的总和大于第二阈值;并且所述帧内预测模式是跨分量线性建模模式、或所述帧内预测模式是平面模式或所述帧内预测模式是所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)));以及
i)所述当前块的所述宽度和所述高度的总和小于第一阈值;所述帧内预测模式是跨分量线性建模模式、平面模式或满足下式的所述偏斜非对角线模式中的一个:((predMode>=VDIA_IDX–numModes&&predMode!=VDIA_IDX)||(predMode!=2&&predMode<=(2+numModes)))。
11.根据权利要求1或2所述的方法,其中,numModes为8。
12.根据权利要求1或2所述的方法,其中,所述第一阈值为8。
13.根据权利要求1或2所述的方法,其中,所述第二阈值为64。
14.一种编码器(20),包括处理电路,所述处理电路被配置为执行根据权利要求1至13中任一项所述的方法。
15.一种解码器(30),包括处理电路,所述处理电路被配置为执行根据权利要求1至13中任一项所述的方法。
16.一种解码器(30),包括:
一个或多个处理器(502);以及
非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述解码器配置为执行根据权利要求1至13中任一项所述的方法。
17.一种编码器(20),包括:
一个或多个处理器(502);以及
一非瞬时性计算机可读存储介质,其与所述处理器耦合并存储由所述处理器执行的程序,其中,在由所述处理器执行时,所述程序将所述编码器配置为执行根据权利要求1至13中任一项所述的方法。
CN201980084263.6A 2018-12-31 2019-12-24 帧内预测方法及相关装置 Active CN113196748B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862786551P 2018-12-31 2018-12-31
US62/786,551 2018-12-31
US201962787374P 2019-01-01 2019-01-01
US62/787,374 2019-01-01
PCT/RU2019/050256 WO2020141984A2 (en) 2018-12-31 2019-12-24 Method and apparatus of mode- and size-dependent block-level restrictions for position dependent prediction combination

Publications (2)

Publication Number Publication Date
CN113196748A CN113196748A (zh) 2021-07-30
CN113196748B true CN113196748B (zh) 2022-12-30

Family

ID=71407446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980084263.6A Active CN113196748B (zh) 2018-12-31 2019-12-24 帧内预测方法及相关装置

Country Status (5)

Country Link
US (1) US11589055B2 (zh)
EP (1) EP3888354A4 (zh)
KR (1) KR20210099148A (zh)
CN (1) CN113196748B (zh)
WO (1) WO2020141984A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240008977A (ko) 2018-05-10 2024-01-19 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
BR112021013709A2 (pt) * 2019-01-14 2021-09-21 Samsung Electronics Co., Ltd. Método de decodificação de vídeo, aparelho de decodificação de vídeo, método de codificação de vídeo, e aparelho de codificação de vídeo
US11671592B2 (en) * 2019-12-09 2023-06-06 Qualcomm Incorporated Position-dependent intra-prediction combination for angular intra-prediction modes for video coding
KR20230017535A (ko) 2021-07-28 2023-02-06 에스케이케미칼 주식회사 우수한 압출 가공성 및 재활용이 가능한 압출 취입 수지 및 이를 포함하는 조성물
WO2024147584A1 (ko) * 2023-01-02 2024-07-11 엘지전자 주식회사 인트라 예측에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107113425A (zh) * 2014-11-06 2017-08-29 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
CN109076241A (zh) * 2016-05-04 2018-12-21 微软技术许可有限责任公司 利用样本值的非相邻参考线进行帧内图片预测

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
WO2018125944A1 (en) * 2016-12-28 2018-07-05 Arris Enterprises Llc Improved video bitstream coding
US11146795B2 (en) * 2017-03-10 2021-10-12 Qualcomm Incorporated Intra filtering flag in video coding
CN117255195A (zh) * 2017-05-17 2023-12-19 株式会社Kt 用于解码视频的方法和用于编码视频的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107113425A (zh) * 2014-11-06 2017-08-29 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
CN109076241A (zh) * 2016-05-04 2018-12-21 微软技术许可有限责任公司 利用样本值的非相邻参考线进行帧内图片预测

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CE3: Simplified PDPC (Test 2.4.1);Geert Van der Auwera 等;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11》;20180703;第1-6页 *

Also Published As

Publication number Publication date
CN113196748A (zh) 2021-07-30
WO2020141984A3 (en) 2021-04-15
EP3888354A2 (en) 2021-10-06
US11589055B2 (en) 2023-02-21
EP3888354A4 (en) 2022-03-09
US20210344931A1 (en) 2021-11-04
WO2020141984A2 (en) 2020-07-09
KR20210099148A (ko) 2021-08-11

Similar Documents

Publication Publication Date Title
CN113196748B (zh) 帧内预测方法及相关装置
CN112889281B (zh) 对图像中的块进行帧内预测的方法、设备和存储介质
JP7508645B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
CA3128112A1 (en) Early termination for optical flow refinement
CA3114341C (en) An encoder, a decoder and corresponding methods using compact mv storage
WO2021037053A1 (en) An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag
CN113196753A (zh) 用于预测译码的插值滤波锐化方法和装置
CN113411613B (zh) 对图像块进行视频译码的方法、解码设备和编/解码器
CN114424567A (zh) 使用基于矩阵的帧内预测进行组合的帧间-帧内预测的方法和装置
US20220286684A1 (en) Encoder, a decoder and corresponding methods of filter modification on general intra prediction process
EP3912358A1 (en) Method and apparatus of intra prediction mode signaling

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