一种编解码方法、装置及其设备转让专利

申请号 : CN202111155057.5

文献号 : CN113794878B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙煜程

申请人 : 杭州海康威视数字技术股份有限公司

摘要 :

本申请提供一种编解码方法、装置及其设备,该方法包括:在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;确定所述当前块外部的周边位置的参考权重值;针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;根据每个像素位置的目标权重值确定所述当前块的加权预测值;其中,所述参考权重值是预先配置的或根据权重配置参数配置的。通过本申请的技术方案,提高了预测的准确性。

权利要求 :

1.一种解码方法,其特征在于,所述方法包括:

在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;

确定所述当前块外部的周边位置的参考权重值;

针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;

根据每个像素位置的目标权重值确定所述当前块的加权预测值;其中,所述根据每个像素位置的目标权重值确定所述当前块的加权预测值,包括:针对所述当前块的每个像素位置,根据所述像素位置的目标权重值确定所述像素位置的关联权重值;其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值;根据第一预测模式确定所述像素位置的第一预测值;根据第二预测模式确定所述像素位置的第二预测值;根据所述像素位置的第一预测值,所述目标权重值,所述像素位置的第二预测值,所述关联权重值,确定所述像素位置的加权预测值;根据每个像素位置的加权预测值得到所述当前块的加权预测值;

其中,所述参考权重值是根据权重配置参数配置的;

其中,所述当前块外部的周边位置包括目标周边区域,所述目标周边区域的第一邻近区域,所述目标周边区域的第二邻近区域;所述第一邻近区域内的周边位置的参考权重值均为第二参考权重值,所述第二邻近区域内的周边位置的参考权重值均为第三参考权重值,且所述第二参考权重值与所述第三参考权重值不同。

2.根据权利要求1所述的方法,其特征在于,若所述目标周边区域包括多个周边位置,则所述目标周边区域内的多个周边位置的参考权重值是单调递增或单调递减。

3.根据权利要求1所述的方法,其特征在于,

所述权重配置参数包括权重变换率和权重变换的起始位置;

所述权重变换的起始位置是由权重预测角度和距离参数确定的。

4.根据权利要求1所述的方法,其特征在于,所述当前块外部的周边位置包括:所述当前块外部上侧一行的像素位置;或者,所述当前块外部左侧一列的像素位置。

5.根据权利要求1所述的方法,其特征在于,所述当前块外部的周边位置是整像素位置;或者,所述当前块外部的周边位置是亚像素位置;

所述根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值,包括:若所述周边匹配位置是整像素位置,且所述整像素位置已设置参考权重值,则根据所述整像素位置的参考权重值确定所述目标权重值;或者,若所述周边匹配位置是亚像素位置,且所述亚像素位置已设置参考权重值,则根据所述亚像素位置的参考权重值确定所述目标权重值。

6.根据权利要求1所述的方法,其特征在于,

所述第一预测模式为帧内预测模式;所述第二预测模式为帧内预测模式;

或者,所述第一预测模式为帧间预测模式;所述第二预测模式为帧间预测模式。

7.一种解码装置,其特征在于,应用于解码端,所述解码装置包括:获取模块,用于在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;

第一确定模块,用于确定所述当前块外部的周边位置的参考权重值;

第二确定模块,用于针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;

第三确定模块,用于根据每个像素位置的目标权重值确定所述当前块的加权预测值;

其中,所述第三确定模块根据每个像素位置的目标权重值确定所述当前块的加权预测值时具体用于:针对所述当前块的每个像素位置,根据所述像素位置的目标权重值确定所述像素位置的关联权重值,其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值;根据第一预测模式确定所述像素位置的第一预测值;根据第二预测模式确定所述像素位置的第二预测值;根据所述像素位置的第一预测值,所述目标权重值,所述像素位置的第二预测值,所述关联权重值,确定所述像素位置的加权预测值;根据每个像素位置的加权预测值得到所述当前块的加权预测值;

其中,所述参考权重值是根据权重配置参数配置的;

其中,所述当前块外部的周边位置包括目标周边区域,所述目标周边区域的第一邻近区域,所述目标周边区域的第二邻近区域;所述第一邻近区域内的周边位置的参考权重值均为第二参考权重值,所述第二邻近区域内的周边位置的参考权重值均为第三参考权重值,且所述第二参考权重值与所述第三参考权重值不同。

8.根据权利要求7所述的装置,其特征在于,若所述目标周边区域包括多个周边位置,则所述目标周边区域内的多个周边位置的参考权重值是单调递增或单调递减。

9.根据权利要求7所述的装置,其特征在于,

所述权重配置参数包括权重变换率和权重变换的起始位置;

所述权重变换的起始位置是由权重预测角度和距离参数确定的。

10.根据权利要求7所述的装置,其特征在于,所述当前块外部的周边位置包括:所述当前块外部上侧一行的像素位置;或者,所述当前块外部左侧一列的像素位置。

11.根据权利要求7所述的装置,其特征在于,所述当前块外部的周边位置是整像素位置;或者,所述当前块外部的周边位置是亚像素位置;所述第二确定模块根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值时具体用于:若所述周边匹配位置是整像素位置,且所述整像素位置已设置参考权重值,则根据所述整像素位置的参考权重值确定所述目标权重值;或者,若所述周边匹配位置是亚像素位置,且所述亚像素位置已设置参考权重值,则根据所述亚像素位置的参考权重值确定所述目标权重值。

12.根据权利要求7所述的装置,其特征在于,

所述第一预测模式为帧内预测模式;所述第二预测模式为帧内预测模式;

或者,所述第一预测模式为帧间预测模式;所述第二预测模式为帧间预测模式。

13.一种解码设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;其中,所述处理器用于执行所述机器可执行指令,以实现权利要求1‑6中任一项所述的方法。

14.一种机器可读存储介质,其特征在于,

所述机器可读存储介质存储有能够被处理器执行的机器可执行指令;其中,所述处理器用于执行所述机器可执行指令,以实现权利要求1‑6中任一项所述的方法。

说明书 :

一种编解码方法、装置及其设备

技术领域

[0001] 本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。

背景技术

[0002] 为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。此外,帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
[0003] 相关技术中,当前块为矩形,而实际物体的边缘往往不是矩形,对于物体边缘来说,往往存在两个不同对象(如存在前景的物体和背景)。当两个对象的运动不一致时,矩形划分不能很好的将两个对象分割,为此将当前块划分为两个非方子块,对两个非方子块进行加权预测。例如,三角预测模式将当前块划分为两个三角子块,对两个三角子块进行加权预测。
[0004] 为了实现加权预测,需要确定当前块的每个子块(如三角子块等)的权重值,并基于权重值对该子块进行加权预测。但是,相关技术中,并没有设置权重值的有效方式。由于无法为当前块的每个子块设置合理的权重值,从而导致预测效果不佳,编码性能差等问题。

发明内容

[0005] 本申请提供了一种编解码方法、装置及其设备,提高了预测的准确性。
[0006] 本申请提供一种编解码方法,所述方法包括:
[0007] 在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0008] 确定所述当前块外部的周边位置的参考权重值;
[0009] 针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0010] 根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0011] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的。
[0012] 本申请提供一种编解码方法,所述方法包括:
[0013] 在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0014] 确定所述当前块外部的参考像素位置的参考权重值;
[0015] 针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,并根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0016] 根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0017] 本申请提供一种编解码装置,所述装置包括:
[0018] 获取模块,用于在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0019] 第一确定模块,用于确定所述当前块外部的周边位置的参考权重值;
[0020] 第二确定模块,用于针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0021] 第三确定模块,用于根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0022] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的。
[0023] 本申请提供一种编解码装置,所述装置包括:
[0024] 获取模块,用于在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0025] 第一确定模块,用于确定所述当前块外部的参考像素位置的参考权重值;
[0026] 第二确定模块,用于针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0027] 第三确定模块,用于根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0028] 本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
[0029] 所述处理器用于执行机器可执行指令,以实现如下步骤:
[0030] 在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0031] 确定所述当前块外部的周边位置的参考权重值;
[0032] 针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0033] 根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0034] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的;
[0035] 或者,所述处理器用于执行机器可执行指令,以实现如下步骤:
[0036] 在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0037] 确定所述当前块外部的参考像素位置的参考权重值;
[0038] 针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,并根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0039] 根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0040] 本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
[0041] 所述处理器用于执行机器可执行指令,以实现如下步骤:
[0042] 在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0043] 确定所述当前块外部的周边位置的参考权重值;
[0044] 针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0045] 根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0046] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的;
[0047] 或者,所述处理器用于执行机器可执行指令,以实现如下步骤:
[0048] 在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0049] 确定所述当前块外部的参考像素位置的参考权重值;
[0050] 针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,并根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0051] 根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0052] 由以上技术方案可见,本申请实施例中,在确定对当前块启动加权预测时,可以根据当前块外部的周边位置的参考权重值或者当前块外部的参考像素位置的参考权重值,确定当前块的每个像素位置的目标权重值。上述方式能够提出一种设置权重值的有效方式,能够为当前块的每个像素位置设置合理的目标权重值,从而提高预测准确性,提高预测性能,提高编码性能,能够使预测值更接近原始像素,并带来编码性能的提高。

附图说明

[0053] 图1是视频编码框架的示意图;
[0054] 图2A‑图2E是加权预测的示意图;
[0055] 图3是本申请一种实施方式中的编解码方法的流程图;
[0056] 图4A和图4B是当前块内的每个像素位置的指向示意图;
[0057] 图4C和图4D是角度预测模式的示意图;
[0058] 图5A‑图5C是当前块外部的周边位置的示意图;
[0059] 图5D是距离参数的示意图;
[0060] 图5E是GEO模式划分角度的示意图;
[0061] 图6A‑图6E是参考权重值的设置示意图;
[0062] 图7A‑图7H是目标权重值的示意图;
[0063] 图8是本申请一种实施方式中的编解码方法的流程图;
[0064] 图9A‑图9C是帧内预测模式的目标权重值的确定示意图;
[0065] 图10是当前块的尺寸与帧内预测模式的关系示意图;
[0066] 图11A和图11B是本申请一种实施方式中的编解码装置的结构示意图;
[0067] 图11C是本申请一种实施方式中的解码端设备的硬件结构图;
[0068] 图11D是本申请一种实施方式中的编码端设备的硬件结构图。

具体实施方式

[0069] 在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”,或“当……时”,或“响应于确定”。
[0070] 本申请实施例中提出一种编解码方法、装置及其设备,可以涉及如下概念:
[0071] 帧内预测、帧间预测(intra prediction and inter prediction)与IBC(帧内块拷贝)预测:
[0072] 帧内预测是指,利用视频空间域的相关性,使用当前块的已编码块进行预测,以达到去除视频空域冗余的目的。帧内预测规定了多种预测模式,每种预测模式对应一种纹理方向(DC模式除外),例如,若图像纹理呈现水平状排布,则水平预测模式可以更好的预测图像信息。
[0073] 帧间预测是指,基于视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计(Motion Estimation,ME)。
[0074] 帧内块拷贝(IBC,Intra Block Copy)是指,允许同帧参考,当前块的参考数据来自同一帧,帧内块拷贝也可以称为帧内块复制。在HEVC(High Efficiency Video Coding,高效率视频编码)的屏幕内容编码(Screen Content Coding)扩展标准中,帧内块拷贝技术被提出,使用块矢量获取当前块的预测值。基于屏幕内容中同一帧内存在大量重复出现的纹理这一特性,在采用块矢量获取当前块的预测值时,能够提升屏幕内容序列的压缩效率。在VVC(Versatile Video Coding,通用视频编码)标准制定期间,帧内块拷贝技术再次被采纳。
[0075] 运动矢量(Motion Vector,MV):在帧间编码中,可以使用运动矢量表示当前帧图像的当前块与参考帧图像的参考块之间的相对位移。每个划分的块都有相应的运动矢量传送到解码端,如果对每个块的运动矢量进行独立编码和传输,特别是小尺寸的大量块,则消耗很多比特。为降低用于编码运动矢量的比特数,可以利用相邻块之间的空间相关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。在对当前块的运动矢量进行编码时,可以先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对该运动矢量的预测值(MVP,Motion Vector Prediction)与运动矢量的真正估值之间的差值(MVD,Motion Vector Difference)进行编码。
[0076] 运动信息(Motion Information):由于运动矢量表示当前块与某个参考块之间的位置偏移,为了准确的获取指向块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示当前块使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。综上所述,在视频编码技术中,可以将运动矢量,参考帧索引,参考方向等与运动相关的信息统称为运动信息。
[0077] 块矢量(Block Vector,BV):块矢量应用在帧内块拷贝技术中,帧内块拷贝技术是使用块矢量进行运动补偿,即采用块矢量获取当前块的预测值。与运动矢量不同的是,块矢量表示当前块与当前帧已编码块中的最佳匹配块之间的相对位移。基于同一帧内存在大量重复纹理这一特性,在采用块矢量获取当前块的预测值时,能够显著提升压缩效率。
[0078] 帧内预测模式:在帧内编码中,使用帧内预测模式进行运动补偿,即采用帧内预测模式获取当前块的预测值。例如,帧内预测模式可以包括但不限于Planar模式,DC模式和33种角度模式。参见表1所示,为帧内预测模式的示例,Planar模式对应模式0,DC模式对应模式1,其余的33种角度模式对应模式1‑模式34。Planar模式适用于像素值缓慢变化的区域,使用水平方向和垂直方向的两个线性滤波器,将两者的平均值作为当前块像素的预测值。DC模式适用于大面积平坦区域,将当前块的周围像素的平均值作为当前块的预测值。角度模式有33种角度模式,新一代编解码标准VVC中采用了更细分的角度模式,如67种角度模式。
[0079] 表1
[0080] 帧内预测模式 帧内预测模式0 Planar模式
1 DC模式
2…34 angular2…angular34
[0081] 率失真原则(Rate‑Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
[0082] 视频编码框架:参见图1所示,可以使用视频编码框架实现本申请实施例的编码端处理流程,视频解码框架的示意图与图1类似,在此不再重复赘述,可以使用视频解码框架实现本申请实施例的解码端处理流程。示例性的,在视频编码框架和视频解码框架中,可以包括但不限于帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
[0083] 在相关技术中,若当前块为矩形,而实际物体的边缘往往不是矩形,即,对于物体的边缘来说,往往存在两个不同对象(如存在前景的物体和背景等)。当两个对象的运动不一致时,则矩形划分不能很好的将这两个对象进行分割,为此,可以将当前块划分为两个非方子块,并对两个非方子块进行加权预测。示例性的,加权预测是利用多个预测值进行加权操作,从而获得最终预测值,加权预测可以包括:帧间和帧内的联合加权预测,帧间和帧间的联合加权预测,帧内和帧内的联合加权预测。针对加权预测的权重值,可以为当前块的所有像素位置设置相同的权重值,也可以为当前块的所有像素位置设置不同的权重值。
[0084] 参见图2A所示,为帧间帧内联合加权预测的示意图。
[0085] CIIP(Combined inter/intra prediction,帧间帧内联合预测)预测块由帧内预测块(即采用帧内预测模式得到像素位置的帧内预测值)和帧间预测块(即采用帧间预测模式得到像素位置的帧间预测值)加权得到,每个像素位置采用的帧内预测值与帧间预测值的权重比是1:1。例如,针对每个像素位置,将该像素位置的帧内预测值与该像素位置的帧间预测值进行加权,得到该像素位置的联合预测值,最终将每个像素位置的联合预测值组成CIIP预测块。示例性的,帧内预测块的帧内预测模式可以在编码端和解码端固定,从而避免传输语法指示具体的帧内预测模式。或者,构建帧内预测模式列表,编码端将选中的帧内预测模式的索引值编入码流,解码端基于该索引值从帧内预测模式列表中选择帧内预测模式。
[0086] 参见图2B所示,为帧间三角划分加权预测(Triangular Partition Mode,TPM)的示意图。
[0087] TPM预测块由帧间预测块1(即采用帧间预测模式得到像素位置的帧间预测值)和帧间预测块2(即采用帧间预测模式得到像素位置的帧间预测值)加权得到。TPM预测块可以划分为两个区域,一个区域可以为帧间区域1,另一个区域可以为帧间区域2,TPM预测块的两个帧间区域可以呈非方形分布,虚线分界线的角度可以为主对角线或者副对角线两种。
[0088] 示例性的,针对帧间区域1的每个像素位置,主要是基于帧间预测块1的帧间预测值确定,例如,将该像素位置的帧间预测块1的帧间预测值与该像素位置的帧间预测块2的帧间预测值进行加权时,帧间预测块1的帧间预测值的权重值较大,帧间预测块2的帧间预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。针对帧间区域2的每个像素位置,主要是基于帧间预测块2的帧间预测值确定,例如,将该像素位置的帧间预测块1的帧间预测值与该像素位置的帧间预测块2的帧间预测值进行加权时,帧间预测块2的帧间预测值的权重值较大,帧间预测块1的帧间预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。最终,可以将每个像素位置的联合预测值组成TPM预测块。
[0089] 参见图2C所示,为帧间帧内联合三角加权预测的示意图。通过对帧间帧内联合加权预测进行修改,使CIIP预测块的帧间区域和帧内区域呈现三角加权划分预测的权重分布。
[0090] CIIP预测块由帧内预测块(即采用帧内预测模式得到像素位置的帧内预测值)和帧间预测块(即采用帧间预测模式得到像素位置的帧间预测值)加权得到。CIIP预测块可以划分为两个区域,一个区域可以为帧内区域,另一个区域可以为帧间区域,CIIP预测块的帧间帧内可以呈非方形分布,虚线分界线区域可采用混合加权方式或者直接进行分割,且该虚线分界线的角度可以为主对角线或者副对角线两种,帧内区域和帧间区域的位置可变。
[0091] 针对帧内区域的每个像素位置,主要是基于帧内预测值确定,例如,将该像素位置的帧内预测值与该像素位置的帧间预测值进行加权时,帧内预测值的权重值较大,帧间预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。针对帧间区域的每个像素位置,主要是基于帧间预测值确定,例如,将该像素位置的帧内预测值与该像素位置的帧间预测值进行加权时,帧间预测值的权重值较大,帧内预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。最终,将每个像素位置的联合预测值组成CIIP预测块。
[0092] 参见图2D所示,为帧间块几何分割模式(Geometrical partitioning for inter blocks,GEO)的示意图,GEO模式用于利用一条分割线将帧间预测块划分为两个子块,不同于TPM模式,GEO模式可以采用更多的划分方向,GEO模式的加权预测过程与TPM模式类似。
[0093] TPM预测块由帧间预测块1(即采用帧间预测模式得到像素位置的帧间预测值)和帧间预测块2(即采用帧间预测模式得到像素位置的帧间预测值)加权得到。TPM预测块可以划分为两个区域,一个区域可以为帧间区域1,另一个区域可以为帧间区域2。
[0094] 示例性的,针对帧间区域1的每个像素位置,主要是基于帧间预测块1的帧间预测值确定,例如,将该像素位置的帧间预测块1的帧间预测值与该像素位置的帧间预测块2的帧间预测值进行加权时,帧间预测块1的帧间预测值的权重值较大,帧间预测块2的帧间预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。针对帧间区域2的每个像素位置,主要是基于帧间预测块2的帧间预测值确定,例如,将该像素位置的帧间预测块1的帧间预测值与该像素位置的帧间预测块2的帧间预测值进行加权时,帧间预测块2的帧间预测值的权重值较大,帧间预测块1的帧间预测值的权重值较小(甚至为0),得到该像素位置的联合预测值。最终,可以将每个像素位置的联合预测值组成TPM预测块。
[0095] 示例性的,TPM预测块的权重值设置与像素位置离分割线的距离有关,参见图2E所示,像素位置A,像素位置B和像素位置C位于分割线右下侧,像素位置D,像素位置E和像素位置F位于分割线左上侧。对于像素位置A,像素位置B和像素位置C来说,帧间区域2的权重值排序为B≥A≥C,帧间区域1的权重值排序为C≥A≥B。对于像素位置D,像素位置E和像素位置F来说,帧间区域1的权重值排序为D≥F≥E,帧间区域2的权重值排序为E≥F≥D。上述方式需要计算像素位置与分割线的距离,继而确定像素位置的权重值。
[0096] 针对上述各种情况,为了实现加权预测,均需要确定当前块的每个像素位置的权重值,并基于每个像素位置的权重值对该像素位置进行加权预测。但是,相关技术中,并没有设置权重值的有效方式,无法设置合理的权重值,从而导致预测效果不佳,编码性能差等问题。
[0097] 针对上述发现,本申请实施例中提出一种权重值的导出方式,通过为当前块外部的周边位置设置参考权重值,从而根据当前块外部的周边位置的参考权重值,确定当前块的每个像素位置的目标权重值。或者,通过为当前块外部的参考像素位置设置参考权重值,从而根据当前块外部的参考像素位置的参考权重值,确定当前块的每个像素位置的目标权重值。
[0098] 上述方式提出一种设置权重值的有效方式,能够为每个像素位置设置比较合理的目标权重值,提高预测准确性,提高预测性能,提高编码性能,预测值更接近原始像素。
[0099] 以下结合几个具体实施例,对本申请实施例中的编解码方法进行详细说明。
[0100] 实施例1:参见图3所示,为本申请实施例中的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该编解码方法可以包括以下步骤:
[0101] 步骤301,在确定对当前块启动加权预测时,获取当前块的权重预测角度。
[0102] 步骤301中,解码端或者编码端需要确定是否对当前块启动加权预测。若启动加权预测,采用本申请实施例的编解码方法。若不启动加权预测,则不采用本申请实施例的编解码方法。
[0103] 在一种可能的实施方式中,可以判断当前块的特征信息是否满足特定条件。如果是,则可以确定对当前块启动加权预测;如果否,则可以确定不对当前块启动加权预测。
[0104] 该特征信息包括但不限于以下之一或者任意组合:当前块所在当前帧的帧类型,当前块的尺寸信息,开关控制信息。该开关控制信息可以包括但不限于:SPS(序列级)开关控制信息,或者,PPS(图像参数级)开关控制信息,或者,TILE(片级)开关控制信息。
[0105] 例如,若该特征信息为当前块所在当前帧的帧类型,当前块所在当前帧的帧类型满足特定条件,可以包括但不限于:若当前块所在当前帧的帧类型为B帧,则确定帧类型满足特定条件。或者,若当前块所在当前帧的帧类型为I帧,则确定帧类型满足特定条件。
[0106] 例如,若特征信息为当前块的尺寸信息,且尺寸信息包括当前块的宽度和当前块的高度,则当前块的尺寸信息满足特定条件,可以包括但不限于:若当前块的宽度大于或等于第一数值、当前块的高度大于或等于第二数值,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于第三数值、当前块的高度大于或等于第四数值、当前块的宽度小于或等于第五数值、当前块的高度小于或等于第六数值,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度和高度的乘积大于或等于第七数值,确定当前块的尺寸信息满足特定条件。
[0107] 示例性的,上述数值可以根据经验配置,如8、16、32、64、128等,对此不做限制。例如,第一数值可以为8,第二数值可以为8,第三数值可以为8,第四数值可以为8,第五数值可以为64,第六数值可以为64,第七数值可以为64。当然,上述只是示例,对此不做限制。综上所述,若当前块的宽度大于或等于8、当前块的高度大于或等于8,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于8、当前块的高度大于或等于8、当前块的宽度小于或等于64、当前块的高度小于或等于64,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度和高度的乘积大于或等于64,确定当前块的尺寸信息满足特定条件。
[0108] 例如,若特征信息为开关控制信息,则该开关控制信息满足特定条件,可以包括但不限于:若开关控制信息为允许当前块启用加权预测,则确定该开关控制信息满足特定条件。
[0109] 例如,若该特征信息为当前块所在当前帧的帧类型,当前块的尺寸信息,则该帧类型满足特定条件,且该尺寸信息满足特定条件时,可以确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型,开关控制信息,则该帧类型满足特定条件,且该开关控制信息满足特定条件时,可以确定当前块的特征信息满足特定条件。若该特征信息为当前块的尺寸信息、开关控制信息,则该尺寸信息满足特定条件,且该开关控制信息满足特定条件时,可以确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型、当前块的尺寸信息、开关控制信息,则该帧类型满足特定条件,且尺寸信息满足特定条件,且开关控制信息满足特定条件时,可以确定当前块的特征信息满足特定条件。
[0110] 在一种可能的实施方式中,编码端确定是否对当前块启动加权预测后,还可以向解码端发送是否启动加权预测的语法,该语法表示当前块是否启动加权预测。解码端根据该语法确定是否对当前块启动加权预测。
[0111] 示例性的,该语法用于表示当前块是否启动加权预测,该语法的语法元素采用基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码,该语法元素的编码仅采用一个上下文模型进行编码或者解码,在现有方案中会采用多个上下文模型(包括判断当前块的上边块/左边块是否启动了加权预测,当前块的尺寸是否超过一定阈值等)进行编码或者解码,本实施例可以简化上下文模型数目及概率更新的过程,简化编解码过程。
[0112] 示例性的,该语法用于表示当前块是否启动加权预测,该语法的语法元素采用基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码,该语法元素的编码仅采用至多2个上下文模型进行编码或者解码,仅判断当前块的尺寸是否超过一定阈值,而在现有方案中会采用多个上下文模型(包括判断当前块的上边块/左边块是否启动了加权预测,当前块的尺寸是否超过一定阈值)进行编码或者解码,本实施例可以简化上下文模型数目及概率更新的过程,简化编解码过程,不需要判断左边块和上边块是否采用了语法来判决上下文模型的选择。
[0113] 在步骤301中,解码端或者编码端需要获取当前块的权重预测角度,权重预测角度表示当前块内部的像素位置所指向的角度方向,例如,参见图4A所示,基于某一种权重预测角度,示出了当前块内部的像素位置所指向的角度方向,如当前块内部的像素位置1指向的当前块的某个外部周边位置,当前块内部的像素位置2指向的当前块的某个外部周边位置,当前块内部的像素位置3指向的当前块的某个外部周边位置。参见图4B所示,基于另一种权重预测角度,示出了当前块内部的像素位置所指向的角度方向,如当前块内部的像素位置4指向的当前块的某个外部周边位置,当前块内部的像素位置2指向的当前块的某个外部周边位置,当前块内部的像素位置3指向的当前块的某个外部周边位置。
[0114] 权重预测角度可以是任意角度,如10度,20度,30度等等,对此不做限制。权重预测角度的分布可以是在180度内均匀或非均匀的分布,或者在360度内的均匀或非均匀分布,示例性的,权重预测角度可以采用帧内预测模式中角度预测模式所对应的角度,当然,帧内预测模式的角度只是一个示例,权重预测角度还可以采用其它类型的角度,对此不做限制。
[0115] 帧内预测模式可以包括65种角度模式,每种角度模式表示一种角度,如角度模式18表示水平方向的角度,角度模式50表示垂直方向的角度,权重预测角度可以是65种角度模式表示的任意角度。帧内预测中的2号角度模式和66号角度模式对应角度是一致的。
[0116] 参见图4C所示,示出了帧内预测模式的8种角度模式,权重预测角度可以是帧内预测模式的8种角度模式表示的角度。参见图4D所示,示出了帧内预测模式的16种角度模式,权重预测角度可以是帧内预测模式的16种角度模式表示的角度。
[0117] 步骤302,确定当前块外部的周边位置的参考权重值。
[0118] 示例性的,参考权重值可以是预先配置的,或者,根据权重配置参数配置的。权重配置参数可以包括权重变换率和权重变换的起始位置。权重变换的起始位置可以是由距离参数确定的;或者,权重变换的起始位置可以是由权重预测角度和距离参数确定的。
[0119] 示例性的,在确定当前块外部的周边位置的参考权重值时,当前块外部的周边位置可以对应非一致的参考权重值,即当前块外部的周边位置的参考权重值不完全相同。
[0120] 示例性的,当前块外部的周边位置可以包括但不限于:当前块外部上侧一行的像素位置;或者,当前块外部左侧一列的像素位置;或者,当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置。当然,上述只是周边位置的示例,对此周边位置不做限制。
[0121] 参见图5A所示,当前块外部上侧一行的像素位置包括A1‑A12,当然,A1‑A12只是一个示例,对此不做限制。当前块外部上侧一行的像素位置需要包括:当前块的每个像素位置指向的当前块外部上侧一行的周边位置。关于当前块的每个像素位置指向的当前块外部上侧一行的周边位置,可以是根据上述权重预测角度确定的,综上所述,可以根据上述权重预测角度确定当前块外部上侧一行的像素位置的起始点和像素位置的终止点,将该起始点和该终止点之间的所有像素位置,均确定为当前块外部上侧一行的像素位置。
[0122] 参见图5B所示,当前块外部左侧一列的像素位置包括B1‑B11,当然,B1‑B11只是一个示例,对此不做限制。当前块外部左侧一列的像素位置需要包括:当前块的每个像素位置指向的当前块外部左侧一列的周边位置。关于当前块的每个像素位置指向的当前块外部左侧一列的周边位置,可以是根据上述权重预测角度确定的,综上所述,可以根据上述权重预测角度确定当前块外部左侧一列的像素位置的起始点和像素位置的终止点,将该起始点和该终止点之间的所有像素位置,均确定为当前块外部左侧一列的像素位置。
[0123] 参见图5C所示,当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置包括C1‑C17,当然,C1‑C17只是一个示例,对此像素位置不做限制。当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置需要包括:当前块外部上侧一行的与当前块相邻的像素位置,以及,当前块外部左侧一列的与当前块相邻的像素位置。
[0124] 当然,上述图5A、图5B和图5C只是当前块外部的周边位置的示例,对此不做限制。
[0125] 在一种可能的实施方式中,当前块外部的周边位置可以是整像素位置,比如说,可以为当前块外部的整像素位置设置相应的参考权重值。或者,当前块外部的周边位置可以是亚像素位置,比如说,可以为当前块外部的亚像素位置设置相应的参考权重值。
[0126] 在一种可能的实施方式中,参考权重值可以是预先配置的,或者,参考权重值可以是根据权重配置参数配置的,无论采用哪种方式,当前块外部的周边位置的参考权重值具有以下特点:情况一、若当前块外部的周边位置包括当前块外部上侧一行的像素位置,则从左到右的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从左到右的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。或者,情况二、若当前块外部的周边位置包括当前块外部左侧一列的像素位置,则从下到上的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从下到上的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。或者,情况三、若当前块外部的周边位置包括当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置,则从左下到右上的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从当前块外部左下的像素位置到当前块外部右上的像素位置的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。
[0127] 针对情况一,参见图5A所示,假设M1为8,M2为0,当前块外部上侧一行的像素位置包括A1‑A12,则A1‑A12从左到右的顺序上的参考权重值可以是:从8至0的单调递减;或者,从0至8的单调递增。例如,A1‑A5的参考权重值是8,A6的参考权重值是6,A7的参考权重值是4,A8的参考权重值是2,A9‑A12的参考权重值是0。又例如,A1‑A5的参考权重值是0,A6的参考权重值是2,A7的参考权重值是4,A8的参考权重值是6,A9‑A12的参考权重值是8。当然,上述只是参考权重值的几个示例,对此不做限制。
[0128] 针对情况二,参见图5B所示,假设M1为8,M2为0,当前块外部左侧一列的像素位置包括B1‑B11,则B1‑B11从下到上的顺序上的参考权重值可以是:从8至0的单调递减;或者,从0至8的单调递增。例如,B1‑B5的参考权重值是8,B6的参考权重值是6,B7的参考权重值是4,B8的参考权重值是2,B9‑B11的参考权重值是0。又例如,B1‑B5的参考权重值是0,B6的参考权重值是2,B7的参考权重值是4,B8的参考权重值是6,B9‑B11的参考权重值是8。当然,上述只是参考权重值的几个示例,对此不做限制。
[0129] 针对情况三,参见图5C所示,假设M1为8,M2为0,当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置包括C1‑C17,则C1‑C17从左下到右上的顺序上的参考权重值是:从8至0的单调递减;或从0至8的单调递增。例如,C1‑C11的参考权重值是8,C12的参考权重值是6,C13的参考权重值是4,C14的参考权重值是2,C15‑C17的参考权重值是0。例如,C1‑C11的参考权重值是0,C12的参考权重值是2,C13的参考权重值是4,C14的参考权重值是6,C15‑C17的参考权重值是8。当然,上述只是示例,对此不做限制。
[0130] 在一种可能的实施方式中,可以根据权重配置参数确定当前块外部的周边位置的参考权重值,而权重配置参数包括权重变换率和权重变换的起始位置,且权重变换的起始位置是由距离参数确定的;或者,权重变换的起始位置是由权重预测角度和距离参数确定的。
[0131] 综上所述,可以获取当前块的距离参数,并根据距离参数确定权重变换的起始位置,然后根据权重变换的起始位置和权重变换率确定权重配置参数,根据权重配置参数确定当前块外部的周边位置的参考权重值。
[0132] 综上所述,为确定当前块外部的周边位置的参考权重值,解码端或编码端可以获取当前块的距离参数,而距离参数用于指示当前块外部的哪个周边位置作为当前块的目标周边区域。
[0133] 示例性的,可以根据权重预测角度确定当前块外部的周边位置的范围,参见图5A‑图5C所示,然后,将确定的周边位置的范围进行N等分,N的取值可以任意设置,如4、6、8等,以8为例进行说明。距离参数用于表示采用当前块外部的哪个周边位置作为当前块的目标周边区域,参见图5D所示,在将所有的周边位置8等分后,可以得到7个距离参数。当距离参数为0时,表示虚线0指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为1时,表示虚线1指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为2时,表示虚线2指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为3时,表示虚线3指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为4时,表示虚线4指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为5时,表示虚线5指向的当前块外部的周边位置作为当前块的目标周边区域。当距离参数为6时,表示虚线6指向的当前块外部的周边位置作为当前块的目标周边区域。
[0134] 示例性的,针对不同的权重预测角度,N的取值可以不同,如针对权重预测角度A,N的取值为6,表示将基于权重预测角度A确定的周边位置的范围进行6等分,针对权重预测角度B,N的取值为8,表示将基于权重预测角度B确定的周边位置的范围进行8等分。
[0135] 示例性的,上述是以将周边位置的范围进行N等分为例,实际应用中,还可以采用不均匀的划分方式,将周边位置的范围划分成N份,而不是N等分,对此不做限制。
[0136] 示例性的,在将所有的周边位置8等分后,可以得到7个距离参数,实际应用中,可以基于7个距离参数中的任一距离参数为周边位置设置参考权重值,也可以先从7个距离参数中选择部分距离参数(如7个距离参数中的5个距离参数),并基于选择的5个距离参数中的任一距离参数为周边位置设置参考权重值,对此距离参数的选择不做限制。
[0137] 示例性的,解码端或者编码端采用如下方式获取当前块的权重预测角度和距离参数:
[0138] 方式一、编码端和解码端约定相同的权重预测角度作为当前块的权重预测角度,如编码端和解码端均将权重预测角度A作为当前块的权重预测角度。编码端和解码端约定相同的距离参数作为当前块的距离参数,如编码端和解码端均将距离参数4作为当前块的距离参数。
[0139] 方式二、编码端可以构建权重预测角度列表,该权重预测角度列表可以包括至少一个权重预测角度,如权重预测角度A和权重预测角度B。编码端可以构建距离参数列表,该距离参数列表可以包括至少一个距离参数,如距离参数0‑距离参数6。编码端遍历权重预测角度列表中的每个权重预测角度,并遍历距离参数列表中的每个距离参数,将遍历到的权重预测角度作为当前块的权重预测角度,将遍历到的距离参数作为当前块的距离参数。
[0140] 例如,编码端遍历到权重预测角度A和距离参数0时,将遍历到的权重预测角度A作为当前块的权重预测角度,将遍历到的距离参数0作为当前块的距离参数,基于权重预测角度A和距离参数0执行相关步骤,得到当前块的加权预测值。编码端遍历到权重预测角度A和距离参数1时,将遍历到的权重预测角度A作为当前块的权重预测角度,将遍历到的距离参数1作为当前块的距离参数,基于权重预测角度A和距离参数1执行相关步骤,得到当前块的加权预测值,以此类推。编码端遍历到权重预测角度B和距离参数0时,将遍历到的权重预测角度B作为当前块的权重预测角度,将遍历到的距离参数0作为当前块的距离参数,基于权重预测角度B和距离参数0执行相关步骤,得到当前块的加权预测值,以此类推。
[0141] 编码端基于权重预测角度A和距离参数0得到当前块的加权预测值后,根据该加权预测值确定率失真代价值,对此确定方式不做限制。基于权重预测角度A和距离参数1得到当前块的加权预测值后,根据该加权预测值确定率失真代价值,以此类推。基于权重预测角度B和距离参数0得到当前块的加权预测值后,根据该加权预测值确定率失真代价值,以此类推。然后,从所有率失真代价值中选择最小率失真代价值,将最小率失真代价值对应的权重预测角度作为目标权重预测角度,将最小率失真代价值对应的距离参数作为目标距离参数。
[0142] 编码端在向解码端发送编码比特流时,该编码比特流可以包括目标权重预测角度在权重预测角度列表中的第一索引值,该第一索引值表示目标权重预测角度是权重预测角度列表中的第几个权重预测角度。该编码比特流还可以包括目标距离参数在距离参数列表中的第二索引值,该第二索引值表示目标距离参数是距离参数列表中的第几个距离参数。
[0143] 解码端可以构建权重预测角度列表,该权重预测角度列表可以包括至少一个权重预测角度,如权重预测角度A和权重预测角度B,解码端的权重预测角度列表与编码端的权重预测角度列表相同。解码端可以构建距离参数列表,该距离参数列表可以包括至少一个距离参数,如距离参数0‑距离参数6,解码端的距离参数列表与编码端的距离参数列表相同。
[0144] 解码端接收到编码比特流后,从编码比特流中解析出第一索引值,并从权重预测角度列表中选择与该第一索引值对应的权重预测角度,该权重预测角度作为目标权重预测角度,即解码端得到的当前块的权重预测角度,后续以权重预测角度A为例进行说明。从编码比特流中解析出第二索引值,并从距离参数列表中选择与该第二索引值对应的距离参数,该距离参数作为目标距离参数,即解码端得到的当前块的距离参数,后续以距离参数4为例进行说明。
[0145] 解码端得到当前块的权重预测角度A和距离参数4后,基于权重预测角度A和距离参数4执行相关步骤,得到当前块的加权预测值,具体方式参见后续实施例,在此不再赘述。
[0146] 在一种可能的实施方式中,针对GEO模式来说,可以通过角度参数和跨度参数确定权重值,参见图5E所示,角度参数表示划分的角度方向,跨度参数表示分割线离当前块中心的距离,通过两者得到唯一的分割线。权重值设置与像素位置离分割线的距离有关,参见图2E所示,对于像素位置A,像素位置B和像素位置C来说,帧间区域2的权重值排序为B≥A≥C,帧间区域1的权重值排序为C≥A≥B。对于像素位置D,像素位置E和像素位置F来说,帧间区域1的权重值排序为D≥F≥E,帧间区域2的权重值排序为E≥F≥D。
[0147] 与上述方式不同的是,本申请实施例中,可以获取当前块的权重预测角度和距离参数,并根据距离参数确定权重变换的起始位置,根据权重变换的起始位置和权重变换率确定权重配置参数,根据权重配置参数确定当前块外部的周边位置的参考权重值。然后,通过权重预测角度和当前块外部的周边位置的参考权重值确定当前块的每个像素位置的目标权重值。
[0148] 在一种可能的实施方式中,可以配置周边位置与参考权重值之间的函数关系,因此,针对当前块外部的每个周边位置,可以基于该函数关系确定该周边位置对应的参考权重值。例如,该函数关系可以包括:参考权重值与权重变换率、周边位置、权重变换的起始位置之间的函数关系,而权重变换率和权重变换的起始位置可以统称为权重配置参数。
[0149] 例如,函数关系的一个示例可以为y=a*(x‑s),y表示参考权重值,a表示权重变换率,x表示周边位置,s表示权重变换的起始位置,权重变换的终止位置可以由a与s唯一确定,且限制参考权重值位于最小值与最大值之间,最小值和最大值均可以根据经验配置,对此不做限制,例如,最小值可以为0,最大值可以为8。此时,若a为2则参考权重值从0到8需要经过0,2,4,6,8五个数,若0对应权重变换的起止位置,那么权重变换的终止位置即为权重变换的起始位置+4,即8对应的位置。当然,上述只是函数关系的一个示例,对此函数关系不做限制,只要基于权重配置参数能够确定当前块外部的周边位置的参考权重值即可。为了使参考权重值位于最小值与最大值之间,函数关系的一个示例可以为Clip3(最小值,最大值,a*(x‑s))。Clip3表示当a*(x‑s)小于最小值时,参考权重值是最小值,当a*(x‑s)大于最大值时,参考权重值是最大值。
[0150] a表示权重变换率,a可以根据经验进行配置,对此不做限制,如a可以是不为0的整数,如a可以是‑4、‑3、‑2、‑1、1、2、3、4等,为了方便描述,以a为2为例进行说明。
[0151] 示例性的,当a为正整数时,a可以与周边位置的数量正相关,即当前块外部的周边位置越多时,a的取值越大。当负为正整数时,a可以与周边位置的数量负相关,即当前块外部的周边位置越多时,a的取值越小。当然,上述只是a的取值的示例,对此不做限制。
[0152] s表示权重变换的起始位置,s可以是由距离参数确定的,例如,s=f(距离参数),即s是一个与距离参数有关的函数。例如,在当前块外部的周边位置的范围(可以预先指定某个范围是当前块外部的周边位置的范围)确定后,可以确定周边位置的数量,并将所有的周边位置进行N等分,N的取值可以任意设置,如4、6、8等,而距离参数用于表示采用当前块外部的哪个周边位置作为当前块的目标周边区域,而这个距离参数对应的周边位置就是权重变换的起始位置。例如,一共存在80个周边位置,距离参数用于表示采用当前块外部的第10个周边位置作为当前块的目标周边区域,则权重变换的起始位置s可以为10。或者,s表示权重变换的起始位置,s可以是由权重预测角度和距离参数确定的,例如,s=f(权重预测角度,距离参数),即s是一个与权重预测角度和距离参数有关的函数。例如,可以根据权重预测角度确定当前块外部的周边位置的范围,即根据权重预测角度确定当前块内部的像素位置指向的周边位置,所有像素位置指向的周边位置就组成当前块外部的周边位置的范围。
在当前块外部的周边位置的范围确定后,可以确定周边位置的数量,并将所有的周边位置进行N等分,N的取值可以任意设置,如4、6、8等,而距离参数用于表示采用当前块外部的哪个周边位置作为当前块的目标周边区域,而这个距离参数对应的周边位置就是权重变换的起始位置。
[0153] 综上所述,在函数关系y=a*(x‑s)中,权重变换率a和权重变换的起始位置s均为已知值,因此,函数关系用于指示周边位置x与参考权重值y之间的关系。针对当前块外部的每个周边位置,可以通过该函数关系确定该周边位置的参考权重值。例如,假设权重变换率a为2,权重变换的起始位置s为2,则该函数关系为y=2*(x‑2),针对每个周边位置x,可以得到参考权重值y。其中,需要设置的x的范围与权重预测角度相关或直接固定等。
[0154] 例如,参见图5A所示,按照从左到右的顺序,确定A1‑A12的索引值,如A1的索引值为‑3,A2的索引值为‑2,A3的索引值为‑1,A4的索引值为0,A5的索引值为1,以此类推,A12的索引值为8。在确定A1的参考权重值时,基于y=2*(x‑2),将索引值‑3代入该函数关系,得到y为‑10,由于‑10小于最小值0,因此,将周边位置A1的参考权重值设置为0。
[0155] 同理,将周边位置A2的参考权重值设置为0,将周边位置A3的参考权重值设置为0,将周边位置A4的参考权重值设置为0,将周边位置A5的参考权重值设置为0。
[0156] 在确定A6的参考权重值时,将索引值2代入函数关系,得到y为0,将周边位置A6的参考权重值设置为0。在确定A7的参考权重值时,将索引值3代入函数关系,得到y为2,将周边位置A7的参考权重值设置为2。在确定A8的参考权重值时,将索引值4代入函数关系,得到y为4,将周边位置A8的参考权重值设置为4。在确定A9的参考权重值时,将索引值5代入函数关系,得到y为6,将周边位置A9的参考权重值设置为6。确定A10的参考权重值时,将索引值6代入函数关系,得到y为8,将周边位置A10的参考权重值设置为8。
[0157] 在确定A11的参考权重值时,将索引值7代入函数关系,得到y为10,10大于最大值8,则将周边位置A11的参考权重值设置为8。同理,将周边位置A12的参考权重值设置为8。
[0158] 显然,A1‑A12的参考权重值是从0至8的单调递增。A1‑A6的参考权重值是0,A7的参考权重值是2,A8的参考权重值是4,A9的参考权重值是6,A10‑A12的参考权重值是8。
[0159] 又例如,参见图5B所示,按照从上到下的顺序,确定B1‑B11的索引值,如B11的索引值为‑1,B10的索引值为0,B9的索引值为1,B8的索引值为2,以此类推,B1的索引值为9。在确定B1‑B11中每个周边位置的参考权重值时,基于y=2*(x‑2),将各周边位置的索引值代入该函数关系,得到该周边位置的参考权重值,且参考权重值位于预设的最大最小值之间,如0‑8之间,具体方式参见上述实施例,在此不再赘述。显然,B1‑B11的参考权重值是从8至0的单调递减。
[0160] 又例如,参见图5C所示,按照从左下到右上的顺序,确定C1‑C17的索引值,如C1的索引值为‑8,C2的索引值为‑7,以此类推,C9的索引值为0,以此类推,C17的索引值为8。在确定C1‑C17中每个周边位置的参考权重值时,基于y=2*(x‑2),将各周边位置的索引值代入该函数关系,得到该周边位置的参考权重值,且参考权重值位于预设的最大最小值之间,如0‑8之间,具体方式参见上述实施例,在此不再赘述。显然,C1‑C17的参考权重值是从0至8的单调递增。
[0161] 又例如,参见图5C所示,按照从右上到左下的顺序,确定C1‑C17的索引值,如C17的索引值为‑8,C16的索引值为‑7,以此类推,C9的索引值为0,以此类推,C1的索引值为8。在确定C1‑C17中每个周边位置的参考权重值时,基于y=2*(x‑2),将各周边位置的索引值代入该函数关系,得到该周边位置的参考权重值,且参考权重值位于0‑8之间,具体方式参见上述实施例,在此不再赘述。显然,C1‑C17的参考权重值是从8至0的单调递减。
[0162] 综上所述,针对每个周边位置,只要将该周边位置的索引值代入函数关系,就可以得到该周边位置的参考权重值。对于每个周边位置来说,可以按照周边位置的顺序,为周边位置设置索引值,对此索引值的设置方式不做限制,只要索引值依次增加或者依次减少即可。
[0163] 在一种可能的实施方式中,当前块外部的周边位置包括目标周边区域,目标周边区域的第一邻近区域,目标周边区域的第二邻近区域。示例性的,目标周边区域是基于权重变换的起始位置确定的一个或者多个周边位置。例如,基于权重变换的起始位置,确定一个周边位置,将这个周边位置作为目标周边区域,比如说,权重变换的起始位置s是当前块外部的第10个周边位置,则可以将当前块外部的第10个周边位置作为目标周边区域,或者,将当前块外部的第9个周边位置作为目标周边区域,或者,将当前块外部的第11个周边位置作为目标周边区域,当然,上述只是几个示例,对此不做限制。又例如,基于权重变换的起始位置,确定多个周边位置,将这多个周边位置作为目标周边区域,比如说,权重变换的起始位置s是当前块外部的第10个周边位置,则可以将当前块外部的第9‑11个周边位置作为目标周边区域,或者,将当前块外部的第8‑12个周边位置作为目标周边区域,或者,将当前块外部的第10‑12个周边位置作为目标周边区域,当然,上述只是几个示例,对此不做限制。
[0164] 示例性的,第一邻近区域内的周边位置的参考权重值均为第一参考权重值,第二邻近区域内的周边位置的参考权重值是单调递增或单调递减。或者,第一邻近区域内的周边位置的参考权重值均为第二参考权重值,第二邻近区域内的周边位置的参考权重值均为第三参考权重值,且第二参考权重值与第三参考权重值不同。或者,第一邻近区域内的周边位置的参考权重值是单调递增或单调递减,第二邻近区域内的周边位置的参考权重值也是单调递减或单调递增;例如,第一邻近区域内的周边位置的参考权重值是单调递增,第二邻近区域内的周边位置的参考权重值也是单调递增;第一邻近区域内的周边位置的参考权重值是单调递减,第二邻近区域内的周边位置的参考权重值也是单调递减。
[0165] 示例性的,目标周边区域可以包括一个周边位置;或者,目标周边区域可以包括多个周边位置。若目标周边区域包括多个周边位置,则目标周边区域内的多个周边位置的参考权重值可以是单调递增或单调递减。在一种可能的实施方式中,所述单调递增是严格单调递增(即目标周边区域内的多个周边位置的参考权重值可以是严格单调递增);所述单调递减是严格单调递减(即目标周边区域内的多个周边位置的参考权重值可以是严格单调递减)。
[0166] 参见图5C所示,假设C1‑C17从左下到右上的顺序上的参考权重值是从8至0的单调递减,则每个周边位置的参考权重值可以参见图6A所示。假设C1‑C17从左下到右上的顺序上的参考权重值是从0至8的单调递增,则每个周边位置的参考权重值可以参见图6B所示。
[0167] 在图6A中,假设目标周边区域包括多个周边位置,如C12,C13和C14,则第一邻近区域包括C1‑C11,第二邻近区域包括C15‑C17。从图6A可以看出,第一邻近区域内的所有周边位置(即C1‑C11)的参考权重值均为8,第二邻近区域内的所有周边位置(即C15‑C17)的参考权重值均为0,显然,第一邻近区域内的周边位置的参考权重值8与第二邻近区域内的周边位置的参考权重值0不同。针对目标周边区域包括的C12,C13和C14,则C12的参考权重值6,C13的参考权重值4,C14的参考权重值2,是单调递减的。比如说,C12的参考权重值6,C13的参考权重值4,C14的参考权重值2,是严格单调递减。
[0168] 当然,上述第一邻近区域和第二邻近区域只是一个示例,第一邻近区域还可以包括C15‑C17,第二邻近区域还可以包括C1‑C11,实现过程参见上述例子,在此不再赘述。
[0169] 又例如,假设目标周边区域包括一个周边位置,如C12,则第一邻近区域包括C1‑C11,第二邻近区域包括C13‑C17。从图6A可以看出,第一邻近区域内的所有周边位置(即C1‑C11)的参考权重值均为8,第二邻近区域内的所有周边位置(即C13‑C17)的参考权重值,是从4到0的单调递减(非严格单调递减)。目标周边区域只包括C12,C12的参考权重值6。
[0170] 又例如,假设目标周边区域包括一个周边位置,如C13,则第一邻近区域包括C1‑C12,第二邻近区域包括C14‑C17。从图6A可以看出,第一邻近区域内的所有周边位置(即C1‑C12)的参考权重值,是从8到6的单调递减(非严格单调递减)。第二邻近区域内的所有周边位置(即C14‑C17)的参考权重值,是从2到0的单调递减(非严格单调递减)。
[0171] 又例如,假设目标周边区域包括一个周边位置,如C14,则第一邻近区域包括C1‑C13,第二邻近区域包括C15‑C17。从图6A可以看出,第一邻近区域内的所有周边位置(即C1‑C13)的参考权重值,是从8到4的单调递减(非严格单调递减)。第二邻近区域内的所有周边位置(即C15‑C17)的参考权重值,均是0,而不是单调递减或者单调递增。
[0172] 在图6B中,假设目标周边区域包括多个周边位置,如C12,C13和C14,则第一邻近区域包括C1‑C11,第二邻近区域包括C15‑C17。从图6B可以看出,第一邻近区域内的所有周边位置(即C1‑C11)的参考权重值均为0,第二邻近区域内的所有周边位置(即C15‑C17)的参考权重值均为8,显然,第一邻近区域内的周边位置的参考权重值0与第二邻近区域内的周边位置的参考权重值8不同。针对目标周边区域包括的C12,C13和C14,则C12的参考权重值2,C13的参考权重值4,C14的参考权重值6,是单调递增的。比如说,C12的参考权重值2,C13的参考权重值4,C14的参考权重值6,是严格单调递增。
[0173] 当然,上述第一邻近区域和第二邻近区域只是一个示例,第一邻近区域还可以包括C15‑C17,第二邻近区域还可以包括C1‑C11,实现过程参见上述例子,在此不再赘述。
[0174] 又例如,假设目标周边区域包括一个周边位置,如C12,则第一邻近区域包括C1‑C11,第二邻近区域包括C13‑C17。从图6B可以看出,第一邻近区域内的所有周边位置(即C1‑C11)的参考权重值均为0,第二邻近区域内的所有周边位置(即C13‑C17)的参考权重值,是从4到8的单调递增(非严格单调递增)。目标周边区域只包括C12,C12的参考权重值2。
[0175] 又例如,假设目标周边区域包括一个周边位置,如C13,则第一邻近区域包括C1‑C12,第二邻近区域包括C14‑C17。从图6B可以看出,第一邻近区域内的所有周边位置(即C1‑C12)的参考权重值,是从0到2的单调递增(非严格单调递增)。第二邻近区域内的所有周边位置(即C14‑C17)的参考权重值,是从6到8的单调递增(非严格单调递增)。
[0176] 又例如,假设目标周边区域包括一个周边位置,如C14,则第一邻近区域包括C1‑C13,第二邻近区域包括C15‑C17。从图6B可以看出,第一邻近区域内的所有周边位置(即C1‑C13)的参考权重值,是从0到4的单调递增(非严格单调递增)。第二邻近区域内的所有周边位置(即C15‑C17)的参考权重值,均是8,而不是单调递减或者单调递增。
[0177] 示例性的,每个周边位置的参考权重值还可以参见图6C所示,C1‑C17从左下到右上的顺序上的参考权重值是从0至8的单调递增。目标周边区域包括一个周边位置,如C11,第一邻近区域包括C1‑C10,第二邻近区域包括C12‑C17,第一邻近区域内的所有周边位置的参考权重值均为0,第二邻近区域内的所有周边位置参考权重值均为8。或者,目标周边区域包括一个周边位置,如C12,第一邻近区域包括C1‑C11,第二邻近区域包括C13‑C17,第一邻近区域内的所有周边位置的参考权重值均为0,第二邻近区域内的所有周边位置参考权重值均为8。或者,目标周边区域包括两个周边位置,如C11和C12,第一邻近区域包括C1‑C10,第二邻近区域包括C13‑C17,第一邻近区域内的所有周边位置的参考权重值均为0,第二邻近区域内的所有周边位置参考权重值均为8。当然,上述只是示例,对此不做限制。
[0178] 在一种可能的实施方式中,可以配置周边位置与参考权重值之间的函数关系,因此,针对当前块外部的每个周边位置,可以基于该函数关系确定该周边位置对应的参考权重值。例如,该函数关系可以包括:参考权重值与权重变换率、周边位置、权重变换的起始位置之间的函数关系,而权重变换率和权重变换的起始位置可以统称为权重配置参数。
[0179] 例如,函数关系的一个示例可以为:当x位于[0,k]时,y=Clip3(最小值,最大值,a1*(x‑s1))。当x位于[k+1,t]时,y=Clip3(最小值,最大值,a2*(x‑s2))。y表示参考权重值,a1和a2表示权重变换率,x表示周边位置,s1表示周边位置[0,k]中的权重变换的起始位置,s2表示周边位置[k+1,t]中的权重变换的起始位置,t表示周边位置的总数量。
[0180] 上述方式能够限制参考权重值位于最小值与最大值之间,Clip3表示当a1*(x‑s1)小于最小值时,参考权重值是最小值,当a1*(x‑s1)大于最大值时,参考权重值是最大值。当a2*(x‑s2)小于最小值时,参考权重值是最小值,当a2*(x‑s2)大于最大值时,参考权重值是最大值。最小值和最大值均可以根据经验配置,对此不做限制,例如,最小值可以为0,最大值可以为8。当然,上述只是函数关系的一个示例,对此函数关系不做限制,只要基于权重配置参数能够确定当前块外部的周边位置的参考权重值即可,在此不再赘述。
[0181] a1和a2均表示权重变换率,权重变换率可以根据经验进行配置,对此不做限制,如权重变换率可以是不为0的整数,如‑4、‑3、‑2、‑1、1、2、3、4等。示例性的,当a1为正整数时,a2可以为负整数,当a1为负整数时,a2可以为正整数。例如,a1可以为‑a2,即两者的变化率是一致的,反映到参考权重值的设置上,就是参考权重值的渐变宽度一致。
[0182] s1表示范围[0,k]的权重变换的起始位置,s1可以是由距离参数确定,例如,s1=f(距离参数),即s1是一个与距离参数有关的函数。例如,在当前块外部的周边位置的范围确定后,从所有周边位置中确定范围[0,k],k是一个根据经验配置的数值。将范围[0,k]的所有周边位置进行N等分,N的取值可以任意设置,如4、6、8等,而距离参数用于表示范围[0,k]中的哪个周边位置作为当前块的目标周边区域,而这个距离参数对应的周边位置就是权重变换的起始位置s1。或者,s1可以是由权重预测角度和距离参数确定的,例如,s1=f(权重预测角度,距离参数),即s1是一个与权重预测角度和距离参数有关的函数。例如,可以根据权重预测角度确定当前块外部的周边位置的范围,在当前块外部的周边位置的范围确定后,从所有周边位置中确定范围[0,k],将范围[0,k]的所有周边位置进行N等分,距离参数用于表示范围[0,k]中的哪个周边位置作为当前块的目标周边区域,从而权重变换的起始位置s1。
[0183] s2表示范围[k+1,t]的权重变换的起始位置,s2可以是由距离参数确定,或者由权重预测角度和距离参数确定,s2的实现参见s1,只是范围发生变化,即范围为[k+1,t]。
[0184] 显然,假设距离参数为3,针对所有周边位置[0,t],可以将范围[0,k]进行N等分,基于范围[0,k]中与距离参数3对应的周边位置确定权重变换的起始位置s1,将范围[k+1,t]进行N等分,基于范围[k+1,t]中与距离参数3对应的周边位置确定权重变换的起始位置s2。
[0185] 当然,上述只是确定权重变换的起始位置s1和s2的示例,对此不做限制。
[0186] 综上所述,在上述函数关系中,权重变换率a1和a2,权重变换的起始位置s1和s2均为已知值,因此,函数关系用于指示周边位置x与参考权重值y之间的关系。针对当前块外部的每个周边位置,若该周边位置位于[0,k]时,则通过函数关系y=Clip3(最小值,最大值,a1*(x‑s1))确定该周边位置的参考权重值。若该周边位置位于[k+1,t]时,则通过函数关系y=Clip3(最小值,最大值,a2*(x‑s2))确定该周边位置的参考权重值。针对每个周边位置x,可以得到参考权重值y。其中,需要设置的x的范围与权重预测角度相关或直接固定等。
[0187] 在一种可能的实施方式中,当前块外部的周边位置包括第一目标周边区域,第二目标周边区域,只与第一目标周边区域相邻的第一邻近区域,与第一目标周边区域和第二目标周边区域均相邻的第二邻近区域,只与第二目标周边区域相邻的第三邻近区域。第一目标周边区域是基于权重变换的起始位置s1确定的一个或者多个周边位置。例如,基于权重变换的起始位置s1,确定一个周边位置,将这个周边位置作为第一目标周边区域。又例如,基于权重变换的起始位置s1,确定多个周边位置,将这多个周边位置作为第一目标周边区域。第二目标周边区域是基于权重变换的起始位置s2确定的一个或者多个周边位置。例如,基于权重变换的起始位置s2,确定一个周边位置,将这个周边位置作为第二目标周边区域。又例如,基于权重变换的起始位置s2,确定多个周边位置,将这多个周边位置作为第二目标周边区域。
[0188] 示例性的,第一邻近区域内的周边位置的参考权重值均为第一参考权重值;第二邻近区域内的周边位置的参考权重值均为第二参考权重值;第三邻近区域内的周边位置的参考权重值均为第三参考权重值。该第一参考权重值与该第三参考权重值可以相同,该第一参考权重值与该第二参考权重值可以不同,该第三参考权重值与该第二参考权重值可以不同。
[0189] 示例性的,若第一目标周边区域包括多个周边位置,则第一目标周边区域内的多个周边位置的参考权重值,可以是单调递增或单调递减;若第二目标周边区域包括多个周边位置,则第二目标周边区域内的多个周边位置的参考权重值,可以是单调递增或单调递减。
[0190] 例如,第一目标周边区域内的多个周边位置的参考权重值是单调递增,第二目标周边区域内的多个周边位置的参考权重值是单调递减。或者,第一目标周边区域内的多个周边位置的参考权重值是单调递减,第二目标周边区域内的多个周边位置的参考权重值是单调递增。
[0191] 示例性的,第一目标周边区域内的多个周边位置的参考权重值的单调递增,可以是严格单调递增;第一目标周边区域内的多个周边位置的参考权重值的单调递减,可以是严格单调递减。第二目标周边区域内的多个周边位置的参考权重值的单调递增,可以是严格单调递增;第二目标周边区域内的多个周边位置的参考权重值的单调递减,可以是严格单调递减。
[0192] 参见图5C所示,假设C1‑C17从左下到右上的顺序上的参考权重值是从8至0的单调递减,在单调递减到0后,又从0至8单调递增,则每个周边位置的参考权重值可以参见图6D所示。假设C1‑C17从左下到右上的顺序上的参考权重值是从0至8的单调递增,在单调递增到8后,又从8至0单调递减,则每个周边位置的参考权重值可以参见图6E所示。
[0193] 在图6D中,假设第一目标周边区域包括多个周边位置,如C6,C7和C8,第二目标周边区域包括多个周边位置,如C12,C13和C14,则第一邻近区域包括C1‑C5,第二邻近区域包括C9‑C11,第三邻近区域包括C15‑C17。或者,假设第一目标周边区域包括C12,C13和C14,第二目标周边区域包括C6,C7和C8,则第一邻近区域包括C15‑C17,第二邻近区域包括C9‑C11,第三邻近区域包括C1‑C5。为了方便描述,后续以前面一种情况为例。
[0194] 从图6D可以看出,第一邻近区域内的所有周边位置(即C1‑C5)的参考权重值均为8,第二邻近区域内的所有周边位置(即C9‑C11)的参考权重值均为0,第三邻近区域内的所有周边位置(即C15‑C17)的参考权重值均为8。显然,第一邻近区域内的周边位置的参考权重值8与第三邻近区域内的周边位置的参考权重值8,二者相同,第一邻近区域内的周边位置的参考权重值8与第二邻近区域内的周边位置的参考权重值0,二者不同。
[0195] 第一目标周边区域包括的周边位置C6,C7和C8,C6的参考权重值6,C7的参考权重值4,C8的参考权重值2,是单调递减,比如说,C6的参考权重值6,C7的参考权重值4,C8的参考权重值2,是严格单调递减。第二目标周边区域包括的周边位置C12,C13和C14,C12的参考权重值2,C13的参考权重值4,C14的参考权重值6,是单调递增,比如说,C12的参考权重值2,C13的参考权重值4,C14的参考权重值6,是严格单调递增。
[0196] 又例如,假设第一目标周边区域包括一个周边位置,如C6,第二目标周边区域包括一个周边位置,如C12,则第一邻近区域可以包括C1‑C5,第二邻近区域可以包括C7‑C11,第三邻近区域可以包括C13‑C17。基于此,从图6D中可以看出,第一邻近区域内的所有周边位置(即C1‑C5)的参考权重值均为8,第二邻近区域内的所有周边位置(即C7‑C11)的参考权重值,是从4到0的单调递减(即非严格单调递减)。第三邻近区域内的所有周边位置(即C13‑C17)的参考权重值,是从4到8的单调递增(即非严格单调递增)。
[0197] 又例如,假设第一目标周边区域包括一个周边位置,如C7,第二目标周边区域包括一个周边位置,如C13,则第一邻近区域可以包括C1‑C6,第二邻近区域可以包括C8‑C12,第三邻近区域可以包括C14‑C17。基于此,从图6D中可以看出,第一邻近区域内的所有周边位置(即C1‑C6)的参考权重值,是从8到6的单调递减(即非严格单调递减)。第二邻近区域内的所有周边位置(即C8‑C12)的参考权重值,是从2到0在到2的变化。第三邻近区域内的所有周边位置(即C14‑C17)的参考权重值,是从6到8的单调递增(即非严格单调递增)。
[0198] 又例如,假设第一目标周边区域包括一个周边位置,如C8,第二目标周边区域包括一个周边位置,如C14,则第一邻近区域可以包括C1‑C7,第二邻近区域可以包括C9‑C13,第三邻近区域可以包括C15‑C17。基于此,从图6D中可以看出,第一邻近区域内的所有周边位置(即C1‑C7)的参考权重值,是从8到4的单调递减(即非严格单调递减)。第二邻近区域内的所有周边位置(即C9‑C12)的参考权重值,是从0到2的单调递增(即非严格单调递增)。第三邻近区域内的所有周边位置(即C15‑C17)的参考权重值,均是8。
[0199] 在图6E中,假设第一目标周边区域包括多个周边位置,如C6,C7和C8,第二目标周边区域包括多个周边位置,如C12,C13和C14,则第一邻近区域包括C1‑C5,第二邻近区域包括C9‑C11,第三邻近区域包括C15‑C17。或者,假设第一目标周边区域包括C12,C13和C14,第二目标周边区域包括C6,C7和C8,则第一邻近区域包括C15‑C17,第二邻近区域包括C9‑C11,第三邻近区域包括C1‑C5。为了方便描述,后续以前面一种情况为例。
[0200] 从图6E可以看出,第一邻近区域内的所有周边位置(即C1‑C5)的参考权重值均为0,第二邻近区域内的所有周边位置(即C9‑C11)的参考权重值均为8,第三邻近区域内的所有周边位置(即C15‑C17)的参考权重值均为0。显然,第一邻近区域内的周边位置的参考权重值0与第三邻近区域内的周边位置的参考权重值0,二者相同,第一邻近区域内的周边位置的参考权重值0与第二邻近区域内的周边位置的参考权重值8,二者不同。
[0201] 第一目标周边区域包括的周边位置C6,C7和C8,C6的参考权重值2,C7的参考权重值4,C8的参考权重值6,是单调递增,比如说,C6的参考权重值2,C7的参考权重值4,C8的参考权重值6,是严格单调递增。第二目标周边区域包括的周边位置C12,C13和C14,C12的参考权重值6,C13的参考权重值4,C14的参考权重值2,是单调递减,比如说,C12的参考权重值6,C13的参考权重值4,C14的参考权重值3,是严格单调递减。
[0202] 又例如,假设第一目标周边区域包括一个周边位置,如C6,第二目标周边区域包括一个周边位置,如C12,则第一邻近区域可以包括C1‑C5,第二邻近区域可以包括C7‑C11,第三邻近区域可以包括C13‑C17。基于此,从图6E中可以看出,第一邻近区域内的所有周边位置(即C1‑C5)的参考权重值均为0,第二邻近区域内的所有周边位置(即C7‑C11)的参考权重值,是从4到8的单调递增(即非严格单调递增)。第三邻近区域内的所有周边位置(即C13‑C17)的参考权重值,是从4到0的单调递减(即非严格单调递减)。
[0203] 又例如,假设第一目标周边区域包括一个周边位置,如C7,第二目标周边区域包括一个周边位置,如C13,则第一邻近区域可以包括C1‑C6,第二邻近区域可以包括C8‑C12,第三邻近区域可以包括C14‑C17。基于此,从图6E中可以看出,第一邻近区域内的所有周边位置(即C1‑C6)的参考权重值,是从0到2的单调递增(即非严格单调递增)。第二邻近区域内的所有周边位置(即C8‑C12)的参考权重值,是从6到8在到6的变化。第三邻近区域内的所有周边位置(即C14‑C17)的参考权重值,是从2到0的单调递减(即非严格单调递减)。
[0204] 又例如,假设第一目标周边区域包括一个周边位置,如C8,第二目标周边区域包括一个周边位置,如C14,则第一邻近区域可以包括C1‑C7,第二邻近区域可以包括C9‑C13,第三邻近区域可以包括C15‑C17。基于此,从图6E中可以看出,第一邻近区域内的所有周边位置(即C1‑C7)的参考权重值,是从0到4的单调递增(即非严格单调递增)。第二邻近区域内的所有周边位置(即C9‑C12)的参考权重值,是从8到6的单调递减(即非严格单调递减)。第三邻近区域内的所有周边位置(即C15‑C17)的参考权重值,均是0。
[0205] 步骤303,针对当前块的每个像素位置,根据权重预测角度确定该像素位置指向的周边匹配位置,并根据与该周边匹配位置关联的参考权重值确定该像素位置的目标权重值。
[0206] 在一种可能的实施方式中,根据与该周边匹配位置关联的参考权重值确定该像素位置的目标权重值,可以包括但不限于如下情况:情况一、若该周边匹配位置是整像素位置,且该整像素位置已设置参考权重值,则根据该整像素位置的参考权重值确定目标权重值。或者,情况二、若该周边匹配位置是整像素位置,且该整像素位置未设置参考权重值,则根据该整像素位置的相邻位置的参考权重值的插值确定目标权重值。或者,情况三、若该周边匹配位置是亚像素位置,且该亚像素位置已设置参考权重值,则根据该亚像素位置的参考权重值确定目标权重值。或者,情况四、若该周边匹配位置是亚像素位置,且该亚像素位置未设置参考权重值,则根据该亚像素位置的相邻位置的参考权重值的插值确定目标权重值。
[0207] 参见上述实施例,已经介绍可以为当前块外部的周边位置设置参考权重值,且当前块外部的周边位置可以是整像素位置或者亚像素位置,比如说,可以为当前块外部的整像素位置设置参考权重值,或者,可以为当前块外部的亚像素位置设置参考权重值。
[0208] 若为当前块外部的整像素位置设置参考权重值,则可以存在以下情况:
[0209] 针对当前块的每个像素位置,根据权重预测角度确定该像素位置指向的周边匹配位置,若该像素位置指向的周边匹配位置是整像素位置,则该周边匹配位置已设置参考权重值,因此,可以将该周边匹配位置的参考权重值确定为该像素位置的目标权重值。
[0210] 针对当前块的每个像素位置,根据权重预测角度确定该像素位置指向的周边匹配位置,若该像素位置指向的周边匹配位置是亚像素位置,则该周边匹配位置未设置参考权重值,因此,根据该周边匹配位置的相邻位置的参考权重值的插值确定该像素位置的目标权重值。
[0211] 若为当前块外部的亚像素位置设置参考权重值,则可以存在以下情况:
[0212] 针对当前块的每个像素位置,根据权重预测角度确定该像素位置指向的周边匹配位置,若该像素位置指向的周边匹配位置是亚像素位置,则该周边匹配位置已设置参考权重值,因此,可以将该周边匹配位置的参考权重值确定为该像素位置的目标权重值。
[0213] 针对当前块的每个像素位置,根据权重预测角度确定该像素位置指向的周边匹配位置,若该像素位置指向的周边匹配位置是整像素位置,则该周边匹配位置未设置参考权重值,因此,根据该周边匹配位置的相邻位置的参考权重值的插值确定该像素位置的目标权重值。
[0214] 例如,若当前块外部的周边位置包括当前块外部上侧一行的像素位置,针对当前块的每个像素位置(后续记为像素位置p),根据权重预测角度确定像素位置p指向的周边匹配位置,这个周边匹配位置是当前块外部上侧一行的像素位置,如图5A中的A6。
[0215] 若像素位置p指向的周边匹配位置是A6的整像素位置,且该整像素位置已设置参考权重值,则将A6的整像素位置的参考权重值确定为像素位置p的目标权重值。若像素位置p指向的周边匹配位置是A6的整像素位置,且该整像素位置未设置参考权重值,则计算该整像素位置的相邻位置的参考权重值的插值,并将该插值确定为像素位置p的目标权重值。
[0216] 若像素位置p指向的周边匹配位置是A6的亚像素位置,且该亚像素位置已设置参考权重值,则将A6的亚像素位置的参考权重值确定为像素位置p的目标权重值。若像素位置p指向的周边匹配位置是A6的亚像素位置,且该亚像素位置未设置参考权重值,则计算该亚像素位置的相邻位置的参考权重值的插值,并将该插值确定为像素位置p的目标权重值。
[0217] 又例如,若当前块外部的周边位置包括当前块外部左侧一列的像素位置,针对当前块的每个像素位置(后续记为像素位置p),根据权重预测角度确定像素位置p指向的周边匹配位置,这个周边匹配位置是当前块外部左侧一列的像素位置,如图5B中的B4。
[0218] 若像素位置p指向的周边匹配位置是B4的整像素位置,且该整像素位置已设置参考权重值,则将B4的整像素位置的参考权重值确定为像素位置p的目标权重值。若像素位置p指向的周边匹配位置是B4的整像素位置,且该整像素位置未设置参考权重值,则计算该整像素位置的相邻位置的参考权重值的插值,并将该插值确定为像素位置p的目标权重值。
[0219] 若像素位置p指向的周边匹配位置是B4的亚像素位置,且该亚像素位置已设置参考权重值,则将B4的亚像素位置的参考权重值确定为像素位置p的目标权重值。若像素位置p指向的周边匹配位置是B4的亚像素位置,且该亚像素位置未设置参考权重值,则计算该亚像素位置的相邻位置的参考权重值的插值,并将该插值确定为像素位置p的目标权重值。
[0220] 又例如,若当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置,针对当前块的每个像素位置(后续记为像素位置p),根据权重预测角度确定像素位置p指向的周边匹配位置,这个周边匹配位置是当前块外部上侧一行的像素位置,或者,当前块外部左侧一列的像素位置,如图5C中的C11。在这种应用场景下,基于C11关联的参考权重值确定像素位置p的目标权重值,实现方式参见上述实施例,在此不再重复赘述。
[0221] 参见图7A所示,以当前块的尺寸为16*16为例,即当前块内部存在16*16个像素位置。在图7A中,示出了当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置,并示出了当前块外部上侧一行的每个像素位置的参考权重值,当前块外部左侧一列的每个像素位置的参考权重值。基于这些参考权重值,针对当前块的每个像素位置,可以根据权重预测角度确定该像素位置指向的周边匹配位置(位于当前块外部上侧一行或者当前块外部左侧一列),并根据与该周边匹配位置关联的参考权重值确定该像素位置的目标权重值。
[0222] 参见图7B‑图7D所示,以当前块的尺寸为16*16为例,即当前块内部存在16*16个像素位置。在图7B‑图7D所示,示出了当前块的每个像素位置的目标权重值。
[0223] 参见图7E‑图7H所示,以当前块的尺寸为32*16为例,即当前块内部存在32*16个像素位置。在图7E‑图7H所示,示出了当前块的每个像素位置的目标权重值。
[0224] 当然,上述只是几个示例,当前块的每个像素位置的目标权重值,可以根据需要任意设置,情况会很多,对此当前块的每个像素位置的目标权重值不做限制。
[0225] 在图7A‑图7H中,当前块外部上侧一行的像素位置的参考权重值以及当前块外部左侧一列的像素位置的参考权重值,可以为0、2、4、6、8等参考权重值。针对当前块内部的每个像素位置的目标权重值,若目标权重值为0、2、4、6、8等,则表示这个像素位置指向当前块外部的整像素位置,且整像素位置设置有参考权重值。针对当前块内部的每个像素位置的目标权重值,若目标权重值为1、3、5、7等,则表示这个像素位置指向当前块外部的亚像素位置,且亚像素位置没有设置参考权重值,目标权重值是通过插值的方式获得。
[0226] 步骤304,根据当前块的每个像素位置的目标权重值确定当前块的加权预测值。
[0227] 在一种可能的实施方式中,针对当前块的每个像素位置,根据该像素位置的目标权重值确定该像素位置的关联权重值;其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值(即权重值的最大值)。根据第一预测模式确定该像素位置的第一预测值;根据第二预测模式确定该像素位置的第二预测值;然后,根据该像素位置的第一预测值,该目标权重值,该像素位置的第二预测值,该关联权重值,确定该像素位置的加权预测值。在得到每个像素位置的加权预测值后,可以根据每个像素位置的加权预测值得到当前块的加权预测值,比如说,将每个像素位置的加权预测值组成当前块的加权预测值。
[0228] 例如,假设固定的预设数值为8,针对当前块的像素位置1,目标权重值为0,则像素位置1的关联权重值为8。针对当前块的像素位置2,目标权重值为2,则像素位置2的关联权重值为6。针对当前块的像素位置3,目标权重值为4,则像素位置3的关联权重值为4。针对当前块的像素位置4,目标权重值为6,则像素位置4的关联权重值为2。针对当前块的像素位置5,目标权重值为8,则像素位置5的关联权重值为0,以此类推。
[0229] 示例性的,针对当前块的每个像素位置,可以根据第一预测模式确定该像素位置的第一预测值,并根据第二预测模式确定该像素位置的第二预测值,对此预测值的确定方式不做限制。然后,假设目标权重值是第一预测模式对应的权重值,关联权重值是第二预测模式对应的权重值,则该像素位置的加权预测值可以为:(该像素位置的第一预测值*该像素位置的目标权重值+该像素位置的第二预测值*该像素位置的关联权重值)/固定的预设数值。或者,假设目标权重值是第二预测模式对应的权重值,关联权重值是第一预测模式对应的权重值,则该像素位置的加权预测值可以为:(该像素位置的第二预测值*该像素位置的目标权重值+该像素位置的第一预测值*该像素位置的关联权重值)/固定的预设数值。在得到每个像素位置的加权预测值后,就可以将每个像素位置的加权预测值组成当前块的加权预测值。
[0230] 在一种可能的实施方式中,第一预测模式为帧内块拷贝预测模式,第二预测模式为帧内块拷贝预测模式。在这种情况下,可以为当前块构建块矢量候选列表,并从块矢量候选列表中选择第一块矢量和第二块矢量,第一块矢量和第二块矢量不同。然后,根据第一块矢量确定当前块的每个像素位置的第一预测值,并根据第二块矢量确定当前块的每个像素位置的第二预测值。上述方式可以参见帧内块拷贝预测模式的预测过程,在此不再赘述。
[0231] 在另一种可能的实施方式中,第一预测模式为帧内块拷贝预测模式,第二预测模式为帧内预测模式。在这种情况下,可以为当前块构建块矢量候选列表,并从块矢量候选列表中选择块矢量,根据该块矢量确定当前块的每个像素位置的第一预测值,上述方式可以参见帧内块拷贝预测模式的预测过程,在此不再赘述。可以为当前块构建帧内预测模式候选列表,并从帧内预测模式候选列表中选择子帧内模式(如角度模式等),根据该子帧内模式确定当前块的每个像素位置的第二预测值,上述方式参见帧内预测模式的预测过程,在此不再赘述。
[0232] 在另一种可能的实施方式中,第一预测模式为帧内块拷贝预测模式,第二预测模式为帧间预测模式。在这种情况下,可以为当前块构建块矢量候选列表,并从块矢量候选列表中选择块矢量,根据该块矢量确定当前块的每个像素位置的第一预测值,上述方式可以参见帧内块拷贝预测模式的预测过程,在此不再赘述。还可以为当前块构建运动信息候选列表,并从运动信息候选列表中选择一个运动信息,根据该运动信息确定当前块的每个像素位置的第二预测值,上述方式可以参见帧间预测模式的预测过程,在此不再赘述。
[0233] 在另一种可能的实施方式中,第一预测模式为帧内预测模式,第二预测模式为帧内预测模式。在这种情况下,可以为当前块构建帧内预测模式候选列表,并从帧内预测模式候选列表中选择第一子帧内模式和第二子帧内模式,第一子帧内模式和第二子帧内模式不同。根据第一子帧内模式确定当前块的每个像素位置的第一预测值,根据第二子帧内模式确定当前块的每个像素位置的第二预测值,上述方式参见帧内预测模式的预测过程,在此不再赘述。
[0234] 在另一种可能的实施方式中,第一预测模式为帧内预测模式,第二预测模式为帧间预测模式。在这种情况下,可以为当前块构建帧内预测模式候选列表,并从帧内预测模式候选列表中选择子帧内模式,根据该子帧内模式确定当前块的每个像素位置的第一预测值,上述方式参见帧内预测模式的预测过程,在此不再赘述。还可以为当前块构建运动信息候选列表,并从运动信息候选列表中选择一个运动信息,根据该运动信息确定当前块的每个像素位置的第二预测值,上述方式可以参见帧间预测模式的预测过程,在此不再赘述。
[0235] 在另一种可能的实施方式中,第一预测模式为帧间预测模式,第二预测模式为帧间预测模式。在这种情况下,可以为当前块构建运动信息候选列表,并从运动信息候选列表中选择第一运动信息和第二运动信息,第一运动信息和第二运动信息可以不同。然后,根据第一运动信息确定当前块的每个像素位置的第一预测值,根据第二运动信息确定当前块的每个像素位置的第二预测值,上述方式可以参见帧间预测模式的预测过程,在此不再赘述。
[0236] 当然,上述只是第一预测模式和第二预测模式的示例,对此不做限制。
[0237] 本申请实施例中,在确定对当前块启动加权预测时,可以根据当前块外部的周边位置的参考权重值确定当前块的每个像素位置的目标权重值。上述方式能够提出一种设置权重值的有效方式,能够为当前块的每个像素位置设置合理的目标权重值,从而提高预测准确性,提高预测性能,提高编码性能,能够使预测值更接近原始像素,并带来编码性能的提高。
[0238] 实施例2:参见图8所示,为本申请实施例中的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该编解码方法可以包括以下步骤:
[0239] 步骤801,在确定对当前块启动加权预测时,获取当前块的帧内预测模式。
[0240] 步骤801中,解码端或者编码端需要确定是否对当前块启动加权预测。若启动加权预测,采用本申请实施例的编解码方法。若不启动加权预测,则不采用本申请实施例的编解码方法。
[0241] 在一种可能的实施方式中,可以判断当前块的特征信息是否满足特定条件。如果是,则可以确定对当前块启动加权预测;如果否,则可以确定不对当前块启动加权预测。该特征信息包括但不限于以下之一或者任意组合:当前块所在当前帧的帧类型,当前块的尺寸信息,开关控制信息。该开关控制信息可以包括但不限于:SPS(序列级)开关控制信息,或者,PPS(图像参数级)开关控制信息,或者,TILE(片级)开关控制信息。
[0242] 关于确定是否对当前块启动加权预测的方式,可以参见实施例1,在此不再赘述。
[0243] 本实施例中,借用帧内预测模式导出当前块的每个像素位置的目标权重值,因此,需要获取当前块的帧内预测模式。该帧内预测模式可以包括但不限于:角度预测模式(即所有角度预测模式中的一个或者多个角度预测模式);或者,Planar模式;或者,DC模式。
[0244] 本实施例中,解码端或者编码端需要获取当前块的帧内预测模式,例如,解码端和编码端可以预先约定某个帧内预测模式作为帧内预测模式。或者,解码端和编码端为当前块构建相同的帧内预测模式候选列表,该帧内预测模式候选列表包括至少一个帧内预测模式。
[0245] 编码端确定帧内预测模式候选列表中的每个帧内预测模式的率失真代价值,并将率失真代价值最小的帧内预测模式作为目标帧内预测模式,将目标帧内预测模式在帧内预测模式候选列表中的索引值添加到编码比特流中。解码端在接收到编码比特流后,从帧内预测模式候选列表中选择与该索引值对应的帧内预测模式,即步骤801中获取的帧内预测模式。
[0246] 当然,上述只是确定帧内预测模式的示例,对此确定方式不做限制。
[0247] 步骤802,确定当前块外部的参考像素位置的参考权重值。
[0248] 示例性的,参考权重值可以是预先配置的,对此参考权重值的确定方式不做限制。
[0249] 示例性的,在确定当前块外部的参考像素位置的参考权重值时,当前块外部的参考像素位置可以对应非一致的参考权重值,即当前块外部的参考像素位置的参考权重值不完全相同。
[0250] 示例性的,当前块外部的参考像素位置可以包括但不限于:当前块外部上侧一行的像素位置;或者,当前块外部左侧一列的像素位置;或者,当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置。当然,上述只是参考像素位置的示例,对此不做限制。
[0251] 参见图5A所示,当前块外部上侧一行的参考像素位置包括A1‑A12,当然,A1‑A12只是一个示例,对此不做限制。当前块外部上侧一行的参考像素位置是基于帧内预测模式确定的。或者,参见图5B所示,当前块外部左侧一列的参考像素位置包括B1‑B11,当然,B1‑B11只是一个示例,对此不做限制。当前块外部左侧一列的参考像素位置是基于帧内预测模式确定的。或者,参见图5C所示,当前块外部上侧一行的参考像素位置和当前块外部左侧一列的参考像素位置包括C1‑C17,当然,C1‑C17只是一个示例,对此不做限制。当前块外部上侧一行的参考像素位置和当前块外部左侧一列的参考像素位置是基于帧内预测模式确定的。
[0252] 在一种可能的实施方式中,参考权重值可以是预先配置的,当前块外部的参考像素位置的参考权重值具有以下特点:情况一、若当前块外部的参考像素位置包括当前块外部上侧一行的参考像素位置,则从左到右的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从左到右的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。
[0253] 情况二、若当前块外部的参考像素位置包括当前块外部左侧一列的参考像素位置,则从下到上的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从下到上的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。
[0254] 情况三、若当前块外部的参考像素位置包括当前块外部上侧一行的参考像素位置和当前块外部左侧一列的参考像素位置,则从左下到右上的顺序上的参考权重值是单调递增或单调递减。例如,参考权重值的最大值为M1,参考权重值的最小值为M2,则从当前块外部左下的像素位置到当前块外部右上的像素位置的顺序上的参考权重值可以是:从最大值M1至最小值M2的单调递减;或者,从最小值M2至最大值M1的单调递增。
[0255] 在一种可能的实施方式中,当前块的参考像素位置可以是整像素位置,而不是亚像素位置,即不是1/32像素位置。比如说,可以为当前块外部的整像素位置确定相应的参考权重值。
[0256] 步骤803,针对当前块的每个像素位置,根据帧内预测模式确定该像素位置对应的匹配位置,并根据该匹配位置关联的参考权重值确定该像素位置的目标权重值。
[0257] 示例性的,传统的帧内预测模式,用于根据当前块外部的参考像素位置的像素值确定当前块的每个像素位置的预测值,本实施例中,借用帧内预测模式的实现方式,可以根据当前块外部的参考像素位置的参考权重值确定当前块的每个像素位置的目标权重值。
[0258] 在一种可能的实施方式中,假设帧内预测模式为角度预测模式(即方向性模式),参见图9A所示,为基于角度预测模式确定当前块的每个像素位置的目标权重值的示意图。
[0259] 将当前块的每个像素位置(如像素位置A)沿着预测方向反方向投影到水平行(当然水平行只是一个示例,还可以是左侧列等,对此不做限制,以水平行为例)上,水平行上对应参考像素位置的参考权重值,作为像素位置A的目标权重值。示例性的,对于有些预测方向,在水平行上对应的参考像素位置可能是分像素位置,因此,基于分像素位置相邻的整像素位置的参考权重值,插值出分像素位置的参考权重值,然后将分像素位置的参考权重值作为像素位置A的目标权重值。对于有些预测方向,若在水平行上对应的参考像素位置是整像素位置,则可以将这个整像素位置的参考权重值作为像素位置A的目标权重值。
[0260] 示例性的,当帧内预测模式为角度预测模式时,可以不需要进行映射过程,而是直接对映射后的参考像素位置设置参考权重值。比如说,不需要参考像素的映射操作,即直接设置上边一行或左边一列的参考像素位置的参考权重值即可,不需要先设置一侧的参考权重值后,将参考权重值映射到另一侧。例如,可以直接对图9A中的上边一行的参考权重值进行设置,而不是先对左侧参考像素位置的参考权重值进行设置,在对左侧参考像素位置的参考权重值进行设置后,再将左侧参考像素位置的参考权重值映射到上边行。
[0261] 在一种可能的实施方式中,假设帧内预测模式为DC模式,参见图9B所示,为基于DC模式确定当前块的每个像素位置的目标权重值的示意图。对于DC模式,可以确定多个参考像素(如所有参考像素或者一侧的参考像素)的参考权重值的均值,并将参考权重值的均值作为当前块的每个像素位置的目标权重值,DC模式主要是应用于包含平坦纹理的当前块。
[0262] 在一种可能的实施方式中,假设帧内预测模式为Planar模式,参见图9C所示,为基于Planar模式确定当前块的每个像素位置的目标权重值的示意图。对于Planar模式,当前块的每个像素位置的目标权重值,由该像素位置在水平行和竖直列对应位置的参考像素的参考权重值,以及右上角参考像素的参考权重值和左下角参考像素的参考权重值,加权生成。
[0263] 在一种可能的实施方式中,不需要参考权重值的滤波,即为参考像素位置设置参考权重值后,参考权重值即为最终进行预测的参考权重值,不需要对参考权重值进行滤波。
[0264] 在一种可能的实施方式中,不需要目标权重值的滤波,即根据参考像素位置的参考权重值确定当前块的像素位置的目标权重值后,不需要对目标权重值进行滤波。
[0265] 在一种可能的实施方式中,在对分像素位置相邻的整像素位置的参考权重值进行插值时,插值方式是色度插值方式,即只需要线性插值即可,不需要亮度的高斯或Cubic插值滤波。
[0266] 步骤804,根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0267] 在一种可能的实施方式中,针对当前块的每个像素位置,根据该像素位置的目标权重值确定该像素位置的关联权重值;其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值(即权重值的最大值)。根据第一预测模式确定该像素位置的第一预测值;根据第二预测模式确定该像素位置的第二预测值;然后,根据该像素位置的第一预测值,该目标权重值,该像素位置的第二预测值,该关联权重值,确定该像素位置的加权预测值。在得到每个像素位置的加权预测值后,可以根据每个像素位置的加权预测值得到当前块的加权预测值,比如说,将每个像素位置的加权预测值组成当前块的加权预测值。
[0268] 第一预测模式为帧内块拷贝预测模式,第二预测模式为帧内块拷贝预测模式。或者,第一预测模式为帧内块拷贝预测模式,第二预测模式为帧内预测模式。或者,第一预测模式为帧内块拷贝预测模式,第二预测模式为帧间预测模式。或者,第一预测模式为帧内预测模式,第二预测模式为帧内预测模式。或者,第一预测模式为帧内预测模式,第二预测模式为帧间预测模式。或者,第一预测模式为帧间预测模式,第二预测模式为帧间预测模式。
[0269] 示例性的,步骤804的实现过程参见实施例1,在此不再重复赘述。
[0270] 本申请实施例中,在确定对当前块启动加权预测时,可以根据当前块外部的参考像素位置的参考权重值确定当前块的每个像素位置的目标权重值。上述方式能够提出一种设置权重值的有效方式,能够为当前块的每个像素位置设置合理的目标权重值,从而提高预测准确性,提高预测性能,提高编码性能,能够使预测值更接近原始像素,并带来编码性能的提高。
[0271] 实施例3:为了确定当前块外部的周边位置/参考像素位置的参考权重值,可以采用如下方式实现,下面例子中的帧内预测模式可以是实施例1的权重预测角度(即权重预测角度所对应的帧内预测模式),也可以是实施例2中的帧内预测模式:
[0272] 1)当帧内预测模式号大于等于34时,
[0273] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0274] 参考权重值的设置公式为:
[0275] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64))+(usefulcenter<<2)+64)>>7)))),其中x的范围是[‑nTbH,nTbW+1]
[0276] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0277] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64))+(usefulcenter<<2)+64))>>7)))),其中x的范围是[0,2*nTbW]
[0278] 2)否则,当帧内预测模式号小于34时,
[0279] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0280] 参考权重值的设置公式为:
[0281] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64))+(usefulcenter<<2)+64)>>7)))),其中x的范围是[‑nTbW,nTbH+1]
[0282] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0283] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64))+(usefulcenter<<2)+64))>>7)))),其中x的范围是[0,2*nTbH]
[0284] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,step为距离参数,usefulsize为有效权重区域,usefulcenter用于辅助导出距离参数对应的位置,其中usefulsize以及usefulcenter的可行计算公式为:
[0285] 1)当帧内预测模式号大于等于34时,
[0286] usefulsize=(nTbW‑1)<<5)+(abs(intraPredAngle)*(nTbH‑1)
[0287] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0288] usefulcenter=((32‑abs(intraPredAngle)*nTbH)<<1)+usefulsize‑64[0289] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0290] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64
[0291] 2)否则,当帧内预测模式号小于34时,
[0292] usefulsize=(nTbH‑1)<<5)+(abs(intraPredAngle)*(nTbW‑1)
[0293] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0294] usefulcenter=((32‑abs(intraPredAngle)*nTbW)<<1)+usefulsize‑64)[0295] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0296] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64)
[0297] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,intraPredAngle对应权重预测角度。
[0298] 实施例4:为了确定当前块外部的周边位置/参考像素位置的参考权重值,可以采用如下方式实现,下面例子中的帧内预测模式可以是实施例1的权重预测角度(即权重预测角度所对应的帧内预测模式),也可以是实施例2中的帧内预测模式:
[0299] 1)当帧内预测模式号大于等于34时,
[0300] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,参考权重值的设置公式为:
[0301] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*2)+(usefulsize–96)+(usefulcenter<<3)+128)>>8)))),其中x的范围是[‑nTbH,nTbW+1]
[0302] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0303] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64)*2)+(usefulsize–96)+(usefulcenter<<3)+128))>>8)))),其中x的范围是[0,2*nTbW]
[0304] 2)否则,当帧内预测模式号小于34时,
[0305] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0306] 参考权重值的设置公式为:
[0307] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*2)+(usefulsize–96)+(usefulcenter<<3)+128)>>8)))),其中x的范围是[‑nTbW,nTbH+1]
[0308] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0309] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize‑64)*2)+(usefulsize–96)+(usefulcenter<<3)+128))>>8)))),其中x的范围是[0,2*nTbH]
[0310] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,step为距离参数,usefulsize为有效权重区域,usefulcenter用于辅助导出距离参数对应的位置,其中usefulsize以及usefulcenter的可行计算公式为:
[0311] 1)当帧内预测模式号大于等于34时,
[0312] usefulsize=(nTbW‑1)<<5)+(abs(intraPredAngle)*(nTbH‑1)
[0313] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0314] usefulcenter=((32‑abs(intraPredAngle)*nTbH)<<1)+usefulsize‑64[0315] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0316] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64
[0317] 2)否则,当帧内预测模式号小于34时,
[0318] usefulsize=(nTbH‑1)<<5)+(abs(intraPredAngle)*(nTbW‑1)
[0319] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0320] usefulcenter=((32‑abs(intraPredAngle)*nTbW)<<1)+usefulsize‑64)[0321] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0322] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64)
[0323] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,intraPredAngle对应权重预测角度。
[0324] 实施例5:为了确定当前块外部的周边位置/参考像素位置的参考权重值,可以采用如下方式实现,下面例子中的帧内预测模式可以是实施例1的权重预测角度(即权重预测角度所对应的帧内预测模式),也可以是实施例2中的帧内预测模式:
[0325] 1)当帧内预测模式号大于等于34时,
[0326] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,参考权重值的设置公式为:
[0327] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*3)+(usefulcenter<<3)+128)>>8)))),其中x的范围是[‑nTbH,nTbW+1]
[0328] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0329] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*3)+(usefulcenter<<3)+128))>>8)))),其中x的范围是[0,2*nTbW]
[0330] 2)否则,当帧内预测模式号小于34时,
[0331] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0332] 参考权重值的设置公式为:
[0333] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*3)+(usefulcenter<<3)+128)>>8)))),其中x的范围是[‑nTbW,nTbH+1]
[0334] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0335] ref[x]=Clip3(0,8,((x<<1)‑((((step*(usefulsize–96)*3)+(usefulcenter<<3)+128))>>8)))),其中x的范围是[0,2*nTbH]
[0336] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,step为距离参数,usefulsize为有效权重区域,usefulcenter用于辅助导出距离参数对应的位置,其中usefulsize以及usefulcenter的可行计算公式为:
[0337] 1)当帧内预测模式号大于等于34时,
[0338] usefulsize=(nTbW‑1)<<5)+(abs(intraPredAngle)*(nTbH‑1)
[0339] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0340] usefulcenter=((32‑abs(intraPredAngle)*nTbH)<<1)+usefulsize‑64[0341] b)否则,当帧内预测模式只需要利用上侧的参考像素时,
[0342] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64
[0343] 2)否则,当帧内预测模式号小于34时,
[0344] usefulsize=(nTbH‑1)<<5)+(abs(intraPredAngle)*(nTbW‑1)
[0345] a)当帧内预测模式需要同时利用左侧和上侧的参考像素时,
[0346] usefulcenter=((32‑abs(intraPredAngle)*nTbW)<<1)+usefulsize‑64)[0347] b)否则,当帧内预测模式只需要利用左侧的参考像素时,
[0348] usefulcenter=(((32+abs(intraPredAngle))<<1)+usefulsize)‑64)
[0349] 在上述公式中,nTbW为当前块的宽,nTbH为当前块的高,intraPredAngle对应权重预测角度。
[0350] 在上述实施例3,实施例4和实施例5中,这些实施例提供的若干公式中,常数项以及位移数可以根据不同方案进行值的修改,此处不做限制。
[0351] 实施例6:在实施例1的基础上,在对当前块的周边块进行编解码时,还可以将当前块的权重预测角度作为周边块的帧内预测模式,并根据该帧内预测模式对周边块进行编解码。在实施例2的基础上,在对当前块的周边块进行编解码时,还可以将当前块的帧内预测模式作为周边块的帧内预测模式,并根据该帧内预测模式对周边块进行编解码。
[0352] 示例性的,在当前块的周边块为帧内预测块时,在周边块的帧内预测模式候选列表的构建过程中,可以将当前块的权重预测角度(实施例1)与帧内预测耦合,将当前块的权重预测角度添加到周边块的帧内预测模式候选列表中。或者,在当前块的周边块为帧内预测块时,在周边块的帧内预测模式候选列表的构建过程中,可以将当前块的帧内预测模式(实施例2)与帧内预测耦合,将当前块的帧内预测模式添加到周边块的帧内预测模式候选列表中。
[0353] 实施例7:针对实施例1,编码端和解码端需要从图4C所示的8种角度模式中选择一种角度模式作为权重预测角度,或者,从图4D所示的16种角度模式中选择一种角度模式作为权重预测角度。与上述方式不同的是,本实施例中,提出一种新的权重预测角度的选择方式,即通过当前块的块尺寸确定沿着对角线方向的角度模式,将该角度模式作为权重预测角度。
[0354] 参见图10所示,针对当前块的不同块尺寸,主对角线和副对角线对应的角度模式包括:
[0355] 当块尺寸为1:1时,主对角线和副对角线对应的角度模式为34,66或34,2,因此,可以从角度模式34,角度模式66或角度模式34,角度模式2中,选择权重预测角度。
[0356] 当块尺寸为1:2时,主对角线和副对角线对应的角度模式为40,60,因此,可以从角度模式40,角度模式60中,选择当前块的权重预测角度。
[0357] 当块尺寸为2:1时,主对角线和副对角线对应的角度模式为28,8,因此,可以从角度模式28,角度模式8中,选择当前块的权重预测角度。
[0358] 当块尺寸为1:4时,主对角线和副对角线对应的角度模式为44,56,因此,可以从角度模式44,角度模式56中,选择当前块的权重预测角度。
[0359] 当块尺寸为4:1时,主对角线和副对角线对应的角度模式为24,12,因此,可以从角度模式24,角度模式12中,选择当前块的权重预测角度。
[0360] 当块尺寸为1:8时,主对角线和副对角线对应的角度模式为46,54,因此,可以从角度模式46,角度模式54中,选择当前块的权重预测角度。
[0361] 当块尺寸为8:1时,主对角线和副对角线对应的角度模式为22,14,因此,可以从角度模式22,角度模式14中,选择当前块的权重预测角度。
[0362] 当块尺寸为1:16时,主对角线和副对角线对应的角度模式为48,52,因此,可以从角度模式48,角度模式52中,选择当前块的权重预测角度。
[0363] 当块尺寸为16:1时,主对角线和副对角线对应的角度模式为20,16,因此,可以从角度模式20,角度模式16中,选择当前块的权重预测角度。
[0364] 实施例8:基于子块的帧间变换(Sub‑Block Transform,SBT):SBT是基于子块的变换,又由于只运用于帧间预测得到的残差块,因此称为基于子块的帧间变换。一个完整的残差块被划分成两个子块,其中一个子块需要进行变换编码,另一个子块残差强制置0,不需要进行变换编码。基于几何子块的帧间预测技术(GEO),GEO是基于将当前块划分成两个几何子块,用不同的运动信息进行预测。基于上述两种技术,则可以有以下实现方式:
[0365] 1、对于SBT的使能条件的限制条件,在当前块已经是一个基于几何子块预测的帧间块时,当前块不使能SBT,也就是当前块的geo_cu_flag和sbtflag不能同时为真。SBT的尺寸限制条件至少包含当前块不是一个基于几何子块预测得到的帧间块。对当前块来说,语法中Cu_sbt_flag存在的条件包括但不限于当前块的geo_cu_flag标志位为假(false)。通过这一条件的限制,可以减少编码复杂度,减少由于SBT引起的视觉边界效应,提升主观质量。
[0366] 2、对于SBT的使能条件,若当前块是一个三角划分或者几何划分预测的块,则当前块不会使用SBT。换言之,当前块SBT的使能条件包括两个条件,一个条件为当前块不为三角划分预测的块,另一个条件为当前块不为几何划分预测的块。
[0367] 3、对于GEO的使能条件的修改,当前块可以使用GEO模式的条件包括但不限于:当前块的尺寸在宽度和高度的乘积大于等于64时,当前块可以使能GEO模式。
[0368] 4、对于GEO的使能条件的修改,当前块可以使用GEO模式的条件包括但不限于:当前块的尺寸在宽度为4,高度为大于等于16时,当前块可以使能GEO模式。
[0369] 5、对于GEO的使能条件的修改,当前块可以使用GEO模式的条件包括但不限于:当前块的尺寸在高度为4,宽度为大于等于16时,当前块可以使能GEO模式。
[0370] 6、对于TPM模式的使能条件的修改,若当前块的宽度小于8或者高度小于8时,当前块不使用TPM模式。换言之,当前块的使能TPM的条件可以包括但不限于:当前块的尺寸在宽度为大于等于8,高度为大于等于8时,当前块可以使能TPM模式。
[0371] 7、对于geo_cu_flag语法,该语法用于表示当前块是否选择几何划分预测,该语法的语法元素采用基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码,该语法元素的编码仅采用一个上下文模型进行编码或者解码,在现有方案中会采用多个上下文模型(包括判断当前块的上边块/左边块是否使用了几何划分模式,当前块的尺寸是否超过一定阈值等)进行编码或者解码,本实施例可以简化上下文模型数目及概率更新的过程,简化编解码过程。
[0372] 8、对于geo_cu_flag语法,该语法用于表示当前块是否选择几何划分预测,该语法的语法元素采用基于上下文的自适应二进制算术编码或基于上下文的自适应二进制算术解码,该语法元素的编码仅采用至多2个上下文模型进行编码或者解码,仅判断当前块的尺寸是否超过一定阈值,而在现有方案中会采用多个上下文模型(包括判断当前块的上边块/左边块是否使用了几何划分模式,当前块的尺寸是否超过一定阈值)进行编码或者解码,本实施例可以简化上下文模型数目及概率更新的过程,简化编解码过程,不需要判断左边块和上边块是否采用了geo_cu_flag来判决上下文模型的选择。
[0373] 基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,所述装置应用于编码端或者解码端,参见图11A所示,为所述装置的结构图,包括:
[0374] 获取模块1111,用于在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;第一确定模块1112,用于确定所述当前块外部的周边位置的参考权重值;第二确定模块1113,用于针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;第三确定模块1114,用于根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0375] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的。
[0376] 所述权重配置参数包括权重变换率和权重变换的起始位置。所述权重变换的起始位置是由距离参数确定的;或者,所述权重变换的起始位置是由权重预测角度和距离参数确定的。
[0377] 当前块外部的周边位置包括:当前块外部上侧一行的像素位置;或者,当前块外部左侧一列的像素位置;或者,当前块外部上侧一行的像素位置和当前块外部左侧一列的像素位置。
[0378] 若所述当前块外部的周边位置包括所述当前块外部上侧一行的像素位置,则从左到右的顺序上的参考权重值是单调递增或单调递减;或者,若所述当前块外部的周边位置包括所述当前块外部左侧一列的像素位置,则从下到上的顺序上的参考权重值是单调递增或单调递减;或者,若所述当前块外部的周边位置包括所述当前块外部上侧一行的像素位置和所述当前块外部左侧一列的像素位置,则从左下到右上的顺序上的参考权重值是单调递增或单调递减。
[0379] 当前块外部的周边位置是整像素位置;或者,当前块外部的周边位置是亚像素位置。
[0380] 所述当前块外部的周边位置包括目标周边区域,所述目标周边区域的第一邻近区域,所述目标周边区域的第二邻近区域;第一邻近区域内的周边位置的参考权重值均为第一参考权重值,第二邻近区域内的周边位置的参考权重值是单调递增或单调递减;或者,第一邻近区域内的周边位置的参考权重值均为第二参考权重值,第二邻近区域内的周边位置的参考权重值均为第三参考权重值,且第二参考权重值与第三参考权重值不同;或者,第一邻近区域内的周边位置的参考权重值是单调递增或单调递减,第二邻近区域内的周边位置的参考权重值是单调递增或单调递减。
[0381] 所述目标周边区域包括一个周边位置;或者,所述目标周边区域包括多个周边位置。
[0382] 若所述目标周边区域包括多个周边位置,所述目标周边区域内的多个周边位置的参考权重值是单调递增或单调递减。
[0383] 所述当前块外部的周边位置包括第一目标周边区域,第二目标周边区域,只与所述第一目标周边区域相邻的第一邻近区域,与所述第一目标周边区域和所述第二目标周边区域均相邻的第二邻近区域,只与所述第二目标周边区域相邻的第三邻近区域;所述第一邻近区域内的周边位置的参考权重值均为第一参考权重值;所述第二邻近区域内的周边位置的参考权重值均为第二参考权重值;所述第三邻近区域内的周边位置的参考权重值均为第三参考权重值。
[0384] 第一参考权重值与第三参考权重值相同;第一参考权重值与第二参考权重值不同。
[0385] 若所述第一目标周边区域包括多个周边位置,所述第一目标周边区域内的多个周边位置的参考权重值是单调递增或单调递减;若所述第二目标周边区域包括多个周边位置,所述第二目标周边区域内的多个周边位置的参考权重值是单调递增或单调递减。
[0386] 所述第一目标周边区域内的多个周边位置的参考权重值是单调递增,且所述第二目标周边区域内的多个周边位置的参考权重值是单调递减;或者,
[0387] 所述第一目标周边区域内的多个周边位置的参考权重值是单调递减,且所述第二目标周边区域内的多个周边位置的参考权重值是单调递增。
[0388] 所述单调递增是严格单调递增;所述单调递减是严格单调递减。
[0389] 第二确定模块1113具体用于:若所述周边匹配位置是整像素位置,且所述整像素位置已设置参考权重值,则根据所述整像素位置的参考权重值确定所述目标权重值;或者,若所述周边匹配位置是整像素位置,且所述整像素位置未设置参考权重值,则根据所述整像素位置的相邻位置的参考权重值的插值确定所述目标权重值;或者,若所述周边匹配位置是亚像素位置,且所述亚像素位置已设置参考权重值,则根据所述亚像素位置的参考权重值确定所述目标权重值;或者,若所述周边匹配位置是亚像素位置,且所述亚像素位置未设置参考权重值,则根据所述亚像素位置的相邻位置的参考权重值的插值确定所述目标权重值。
[0390] 第三确定模块1114具体用于:针对所述当前块的每个像素位置,根据所述像素位置的目标权重值确定所述像素位置的关联权重值;其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值;根据第一预测模式确定所述像素位置的第一预测值;根据第二预测模式确定所述像素位置的第二预测值;根据所述像素位置的第一预测值,所述目标权重值,所述像素位置的第二预测值,所述关联权重值,确定所述像素位置的加权预测值;根据每个像素位置的加权预测值得到所述当前块的加权预测值。
[0391] 所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧内块拷贝预测模式;
[0392] 或者,所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧内预测模式;
[0393] 或者,所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧间预测模式;
[0394] 或者,所述第一预测模式为帧内预测模式;所述第二预测模式为帧内预测模式;
[0395] 或者,所述第一预测模式为帧内预测模式;所述第二预测模式为帧间预测模式;
[0396] 或者,所述第一预测模式为帧间预测模式;所述第二预测模式为帧间预测模式。
[0397] 基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,所述装置应用于编码端或者解码端,参见图11B所示,为所述装置的结构图,包括:
[0398] 获取模块1121,用于在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;第一确定模块1122,用于确定所述当前块外部的参考像素位置的参考权重值;第二确定模块1123,用于针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;第三确定模块1124,用于根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0399] 所述当前块外部的参考像素位置包括:所述当前块外部上侧一行的参考像素位置;或者,所述当前块外部左侧一列的参考像素位置;或者,所述当前块外部上侧一行的参考像素位置和所述当前块外部左侧一列的参考像素位置。
[0400] 若所述当前块外部的参考像素位置包括所述当前块外部上侧一行的参考像素位置,则从左到右的顺序上的参考权重值是单调递增或者单调递减;或者,若所述当前块外部的参考像素位置包括所述当前块外部左侧一列的参考像素位置,则从下到上的顺序上的参考权重值是单调递增或者单调递减;或者,若所述当前块外部的参考像素位置包括所述当前块外部上侧一行的参考像素位置和所述当前块外部左侧一列的参考像素位置,则从左下到右上的顺序上的参考权重值是单调递增或者单调递减。
[0401] 所述第三确定模块1124具体用于:针对所述当前块的每个像素位置,根据所述像素位置的目标权重值确定所述像素位置的关联权重值;其中,每个像素位置的目标权重值与关联权重值的和均为固定的预设数值;根据第一预测模式确定所述像素位置的第一预测值;根据第二预测模式确定所述像素位置的第二预测值;根据所述像素位置的第一预测值,所述目标权重值,所述像素位置的第二预测值,所述关联权重值,确定所述像素位置的加权预测值;根据每个像素位置的加权预测值确定所述当前块的加权预测值。
[0402] 所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧内块拷贝预测模式;
[0403] 或者,所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧内预测模式;
[0404] 或者,所述第一预测模式为帧内块拷贝预测模式;所述第二预测模式为帧间预测模式;
[0405] 或者,所述第一预测模式为帧内预测模式;所述第二预测模式为帧内预测模式;
[0406] 或者,所述第一预测模式为帧内预测模式;所述第二预测模式为帧间预测模式;
[0407] 或者,所述第一预测模式为帧间预测模式;所述第二预测模式为帧间预测模式。
[0408] 所述帧内预测模式为角度预测模式;或者,所述帧内预测模式为Planar模式。
[0409] 基于与上述方法同样的申请构思,本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图11C所示。包括:处理器1131和机器可读存储介质1132,其中:所述机器可读存储介质1132存储有能够被所述处理器1131执行的机器可执行指令;所述处理器1131用于执行机器可执行指令,以实现本申请上述示例公开的方法。
[0410] 例如,所述处理器1131用于执行机器可执行指令,以实现如下步骤:
[0411] 在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0412] 确定所述当前块外部的周边位置的参考权重值;
[0413] 针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0414] 根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0415] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的;
[0416] 或者,所述处理器1131用于执行机器可执行指令,以实现如下步骤:
[0417] 在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0418] 确定所述当前块外部的参考像素位置的参考权重值;
[0419] 针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,并根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0420] 根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0421] 基于与上述方法同样的申请构思,本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图11D所示。包括:处理器1141和机器可读存储介质1142,其中:所述机器可读存储介质1142存储有能够被所述处理器1141执行的机器可执行指令;所述处理器1141用于执行机器可执行指令,以实现本申请上述示例公开的方法。
[0422] 例如,所述处理器1141用于执行机器可执行指令,以实现如下步骤:
[0423] 在确定对当前块启动加权预测时,获取所述当前块的权重预测角度;
[0424] 确定所述当前块外部的周边位置的参考权重值;
[0425] 针对所述当前块的每个像素位置,根据所述权重预测角度确定所述像素位置指向的周边匹配位置,并根据与所述周边匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0426] 根据每个像素位置的目标权重值确定所述当前块的加权预测值;
[0427] 其中,所述参考权重值是预先配置的或根据权重配置参数配置的;
[0428] 或者,所述处理器1141用于执行机器可执行指令,以实现如下步骤:
[0429] 在确定对当前块启动加权预测时,获取所述当前块的帧内预测模式;
[0430] 确定所述当前块外部的参考像素位置的参考权重值;
[0431] 针对当前块的每个像素位置,根据所述帧内预测模式确定所述像素位置对应的匹配位置,并根据所述匹配位置关联的参考权重值确定所述像素位置的目标权重值;
[0432] 根据每个像素位置的目标权重值确定所述当前块的加权预测值。
[0433] 基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0434] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0435] 本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0436] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0437] 这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。