一种用于帧内预测的滤波方法,滤波器及装置与流程

文档序号:22554773发布日期:2020-10-17 02:35阅读:155来源:国知局
一种用于帧内预测的滤波方法,滤波器及装置与流程

本发明涉及视频编码领域,特别是涉及一种用于帧内预测的滤波领域。



背景技术:

视频编码的目的是为了对视频数据进行压缩,从而减小视频的传输流量或存储空间。视频编码系统主要包括编码、传输和解码三大部分。在编码过程中,通过选择最优的帧内预测模式,消除一帧图像内相邻像素点之间的冗余,去除一定像素间的空间相关性,从而压缩视频文件。在解码过程中,读取编码端计算得到的最优预测模式,以相同的方式预测得到预测块的预测值。帧内预测过程中对待编码块进行预测后得到预测块,之后为了增强预测块与参考像素之间的相关性,可以对预测块进行滤波过程。

现有的滤波的过程包括首先获取滤波过程需要的参考像素,一般是按照水平方向获取或者垂直方向获取;然后根据预测块的大小选取滤波系数,滤波系数是基于广义高斯分布建立的滤波器通过训练得到的系数;接着对当前预测块进行滤波;最后比较使用滤波的预测和没使用滤波的预测,选择是否进行滤波。

本申请的发明人在长期的研发过程中,发现现有滤波方法中对于同一角度下的滤波方向只有水平或竖直的一种,整个预测块滤波时候参考同一方向的参考像素。并且,对于不同大小的预测块和不同的预测模式,都采用设置的定值作为滤波范围。



技术实现要素:

本发明主要解决的技术问题是提供一种帧内预测滤波方法,能够解决编码效率不高的技术问题。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种帧内预测滤波方法,包括:获得滤波参数;其中,滤波参数包括滤波参考像素、滤波参考值、滤波范围、滤波系数中的至少一种;利用滤波参数对当前帧内预测块进行滤波。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种编码方法,包括:获取当前帧内预测块的多个帧内预测值,多个帧内预测值中至少包括一个利用前述的帧内预测滤波方法滤波后得到的帧内预测值;选取预测代价最小的帧内预测值作为当前帧内预测块的帧内预测结果;基于当前帧内预测块的帧内预测结果对当前帧内预测块进行编码,得到码流。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种解码方法,包括:获取码流数据,码流数据是经过帧内预测滤波后获得;解析码流的头信息,获取各层码流的码流长度和编码方式;按照对应的编码方式依次在码流中解码出残差图像,还原出原始图像;其中帧内预测滤波方法包括:获得滤波参数;其中,滤波参数包括滤波参考像素、滤波参考值、滤波范围、滤波系数中的至少一种;利用滤波参数对当前帧内预测块进行滤波。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种编码器,编码器包括处理器,处理器用于执行指令以实现前述的编码方法。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种解码器,解码器包括处理器,处理器用于执行指令以实现前述的解码方法。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种具有存储功能的装置,存储有程序数据,程序数据能够被处理器执行以实现前述的方法

本发明的有益效果是:区别于现有技术的情况,本申请公开了多种滤波参数的选择方法,并且公开了在滤波过程中可以使用多种滤波方法相比较的方式确定最终的有效滤波方法。本申请所公开的方法可以根据帧内预测块的实际情况调整滤波方法,针对不同帧内预测块选择最为有效的滤波方式,从而提高滤波后的预测精度,增加帧内预测的准确性,减少预测残差,提高编码效率。

此外,本申请除了提供对于像素亮度进行滤波的多种方法,还提供了对于像素色度值进行滤波的多种方法。通过对色度进行滤波可以进一步减小码流,提升编码质量。

附图说明

图1是根据本申请一实施方式中角度预测方向的示意图;

图2是根据本申请一实施方式的帧内预测滤波方法的流程示意图;

图3是根据本申请一实施方式的滤波方法的确定方法的流程示意图;

图4是根据本申请一实施方式的预测块分区的示意图;

图5是根据本申请一实施方式的滤波参考像素选择方法的示意图;

图6是根据本申请另一实施方式的滤波参考像素选择方法的示意图;

图7是根据本申请另一实施方式的滤波参考像素选择方法的示意图;

图8是根据本申请一实施方式的滤波范围选择方法的示意图;

图9是根据本申请另一实施方式的滤波范围选择方法的示意图;

图10是根据本申请一实施方式的滤波参考值的确定方法的示意图;

图11是根据本申请一实施方式的滤波系数确定方法的示意图;

图12是根据本申请一实施方式的编码方法的示意图;

图13是根据本申请一实施方式的解码方法的示意图;

图14是根据本申请一实施方式的滤波器的结构示意图;

图15是根据本申请一实施方式的编码器的结构示意图;

图16是根据本申请一实施方式中解码器的结构示意图;

图17是根据本申请一实施方式的计算机可读存储介质的结构示意图。

具体实施方式

为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。

本申请是实施方式可以应用于视频编解码过程。具体的,可以应用于视频编码过程中的帧内预测过程。应当理解的是,本申请的系统及方法的应用场景仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。

现有的帧内亮度预测模式包括dc模式、planar模式、bilinear模式和角度模式等。dc模式采用所有可用的参考像素的均值作为待预测块内每一点的预测值。planar模式是根据待预测点与块中心点的位置关系并结合了横纵向参考像素梯度来进行预测。bilinear模式是双向预测方法,先对待预测点的右方和下方像素进行预测并以此作为参考像素,后用上下参考像素对当前位置像素值做纵向预测,用左右参考像素值对当前像素做横向预测,最后将两个方向预测值取均值。角度预测模式是指在一种角度方向下,对预测块中每个待预测点做预测,根据当前角度方向确定每个待预测点对应的参考像素,以此为预测参考像素对该待预测点进行预测。参阅图1,图1是根据本申请一实施方式中角度预测方向的示意图。其中,预测模式种类个数n=66,0表示dc模式,1表示planar模式,2表示bilinear模式。图1中标出了各角度模式的方向。方向分别在第一象限(左下方参考像素预测右上方待预测点,即预测方向为从左下到右上)、第三象限(右上方参考像素预测左下方待预测点,即预测方向为从右上到左下)、第四象限(左上方参考像素预测右下方待预测点,即预测方向为从左上到右下)中。需要说明的是,图1中的帧内预测方式仅是为了举例说明,本申请中滤波方法所述适用的预测方式并不局限于图1所述的预测方式。

现有的帧内色度预测模式包括dm模式,dc模式、水平模式,垂直模式、bi模式、tscpm模式、tscpm_l模式,tscpm_t模式,pmc模式,pmc_l模式,pmc_t模式。其中,dm模式为依据预测块亮度预测模式进行色度预测。dc模式、水平模式、垂直模式和bi模式的色度预测与亮度预测的相应模式相同。tscpm模式是一种分量间预测技术,用亮度的预测块重建值预测色度分量,即用y分量(亮度分量)预测u、v分量(色度分量),通过探索不同分量之间的线性关系去除分量间冗余。其中tscpm_l模式和tscpm_t模式为tscpm模式下的增强的tscpm模式,在对预测系数的计算过程中选取的样点与tscpm不同。pmc模式也是分量间预测技术,用y分量和u分量预测v分量。

值得说明的是,本申请中提到的帧内预测块可以包括基于亮度分量进行划分后进行亮度预测的亮度预测块,以及基于色度分量进行划分后进行色度预测的色度预测块。在当前帧内预测块为亮度预测块时,可能在该当前帧内预测块中仅包含亮度数据,可以对其进行亮度滤波。在当前帧内预测块为色度预测块时,可能在该当前帧内预测块中仅包含色度数据,可以对其进行色度滤波。当然,也存在当前帧内预测块即为亮度预测块也为色度预测块的情况,那么其中可能包含亮度、色度数据,可以对其即进行亮度滤波也进行色度滤波。此外,本申请中所述提到的亮度值是指亮度分量的预测值,色度值是指色度分量的预测值。

在帧内预测完成后得到预测块,可以对预测块进行滤波过程,用于增强预测块与参考像素之间的相关性。本申请提供一种帧内预测方法,参阅图2。图2是根据本申请一实施方式的帧内预测滤波方法的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图2所示的流程顺序为限。如图2所示,该方法包括:

步骤s210:获得滤波参数。

本申请在现有的帧内滤波技术的基础上,通过改变滤波参数,组合得到不同的滤波方法。在一实施方式中,滤波参数包括滤波参考像素,滤波参考值、滤波范围、滤波系数中的至少一种。在一实施方式中,所获得的滤波参数可以是滤波参考像素,滤波参考值、滤波范围、滤波系数中的任意多种的组合。

在一实施方式中,通过改变滤波参考像素的选择方向,使得整个预测块的滤波参考像素与预测参考像素的方向关系一致。例如,两者均采用同一方向参考像素,均采用不同方向的参考像素,或滤波同时采用两个方向参考像素。值得说明的是,该方法同时适用于对于帧内预测块的亮度或色度进行滤波。

在一实施方式中,基于预测块的相关参数,确定滤波范围。例如,基于预设的所述滤波范围与所述帧内预测块的尺寸比例,确定所述滤波范围。又例如,将满足第二预定条件的当前帧内预测块中的预测点确定为待滤波点,所述待滤波点即构成所述滤波范围;其中,第二预定条件为预测点到滤波参考像素和预测参考像素之间的距离关系小于第三阈值。值得说明的是,该方法同时适用于对于帧内预测块的亮度或色度进行滤波。

在一实施方式中,在对帧内预测块的亮度进行预测时,通过对参考像素亮度值进行优化后得到的亮度值作为亮度滤波参考值。例如,利用亮度参考像素滤波方式对滤波参考像素进行滤波,获得亮度滤波参考值;其中亮度参考像素滤波方式与滤波参考像素附近的若干参考像素相关。

在一实施方式中,在对帧内预测块的色度进行预测时,通过对参考像素色度值进行优化后得到的色度值作为色度滤波参考值。例如,利用色度参考像素滤波方式对滤波参考像素进行滤波,获得色度滤波参考值;其中色度参考像素滤波方式与滤波参考像素附近的若干参考像素相关。

在一实施方式中,滤波系数与待滤波点的位置相关。例如,滤波系数基于待滤波点的第一距离与第二距离之间的关系确定,其中第一距离为待滤波点与滤波参考像素之间的距离,第二距离为待滤波点与预测参考像素之间的距离。值得说明的是,该方法同时适用于对于帧内预测块的亮度或色度进行滤波。

需说明的是,以上所有实施方式中所陈述的有关如何选取滤波参考像素、如何选择滤波范围、如何计算滤波参考值、和如何确定滤波系数等,可在不冲突的情况下任意组合多种不同的方式。

步骤s220,利用滤波参数对当前帧内预测块进行滤波。在一实施方式中,对当前帧内预测块进行滤波包括对该当前帧内预测块的亮度值进行滤波和/或对该当前帧内预测块的色度值进行滤波。其中为了便于说明,对帧内预测块的亮度值进行滤波简称亮度滤波,对帧内预测块的色度值进行滤波简称色度滤波。

具体的,可以对当前帧内预测块只进行亮度滤波,或只进行色度滤波,或同时进行亮度度滤波和色度滤波。其中色度滤波的方法可以是基于亮度滤波的方法所确定的,也可以是与亮度滤波方法相互独立确定的。

在一实施方式中,在需要对帧内预测块进行色度滤波时,可以通过限定条件判断是否对该帧内预测块进行滤波。

在一实施方式中,可以利用所确定的至少一种滤波参数,获得至少一种滤波方法,并利用所获得的每一种滤波方法对帧内预测块进行滤波。在一实施方式中,也可以是上述方法在不冲突的情况下任意组合得到的滤波方法。例如,可以基于上述任一方法确定滤波参考像素,并利用上述方法确定参考像素值,从而确定滤波方式,在该滤波方法中滤波范围和滤波系数可以采用现有的常规技术方法所确定。又例如,可以基于上述任一方法确定滤波参考像素,并利用上述方法确定滤波范围和滤波系数,从而确定滤波方式,在该滤波方法中滤波参考值可以采用现有的常规技术方法所确定。在一实施方式中,可以获得多种滤波方法,这些滤波方法中的部分或全部参数是通过上述方法确定的。通过对这些滤波方法进行比较选择最优的滤波方法,将其作为有效滤波方法。具体的,利用所获得的多种滤波方法对帧内预测块进行滤波后,可以通过rdo(rate-distortionoptimization,率失真优化)方法,选择损失最小的滤波方法,将其作为该帧内预测块的有效滤波方法。还可以比较进行滤波与未进行滤波的rdo损失,从而确定是否需要滤波。

在一实施方式中,可以分别针对亮度滤波和色度滤波后的帧内预测结果计算rdo损失,基于两种rdo损失判断是否进行亮度滤波和色度滤波。也可以分别针对亮度滤波和色度滤波后的帧内预测结果计算rdo损失,分别确定是否需要进行亮度滤波或色度滤波。

本申请公开了多种滤波参数的选择方法,并且公开了在滤波过程中可以使用多种滤波方法相比较的方式确定最终的有效滤波方法。本申请所公开的方法可以根据帧内预测块的实际情况调整滤波方法,针对不同帧内预测块选择最为有效的滤波方式,从而提高滤波后的预测精度,增加帧内预测的准确性,减少预测残差,提高编码效率。同时,本申请除了提供对于像素亮度值进行滤波的多种方法,还提供了对于像素色度值进行滤波的多种方法。通过对色度值进行滤波可以进一步减小码流,提升编码质量。

参阅图3,图3是根据本申请一实施方式的滤波方法的确定方法的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图3所示的流程顺序为限。如图3所示,该方法包括:

步骤s310,获取滤波参考像素。

值得说明的是,该步骤中的方法同时适用于对于帧内预测块的亮度或色度进行滤波。

现有技术中,会选择一个方向的参考像素作为整个预测块的滤波参考像素。对于预测方向在第四象限的情况,预测块中点的预测参考像素会分布在不同的方向。这就会造成同一预测块中,有的点的预测参考像素与滤波参考像素处于同一方向,有的点的预测参考像素与滤波参考像素处于不同方向。整个预测块中预测参考像素与滤波参考像素的方向关系无法统一。

在一实施方式中,对于预测方向为角度预测并且预测方向从左上到右下(即在第四象限)的情况,所述当前帧内预测块中每一个待滤波点的所述滤波参考像素与所述待滤波点的预测参考像素处于同一方向或处于不同方向。

在一实施方式中,基于待滤波点的预测参考像素的方向,选取与预测参考像素相同方向的参考像素作为滤波参考像素。在一实施方式中,基于所述待滤波点的预测参考像素的方向,选取与预测参考像素不同方向的参考像素作为滤波参考像素。

具体的,基于预测方向对预测块进行分区,使得预测参考像素方向相同的点处于同一区域中。对于其中一区域中的点均选择一同方向的滤波参考像素,对于另一区域中的点均选择另一方向的滤波参考像素。

仅作为举例说明,参阅图4,图4是根据本申请一实施方式的预测块分区的示意图。图中以左上角的参考像素为基准,按照预测角度方向线410所指的方向进行划分,将整个预测块分为两个区域。在划分线420上面的预测点的预测参考像素都位于同一方向,例如上方;在划分线420下面的预测点的预测参考像素都位于另一方向,例如左方。

仅作为举例说明,参阅图5,图5是根据本申请一实施方式的滤波参考像素选择方法的示意图。图中以左上角的参考像素为基准,按照预测角度方向进行划分,将整个预测块分为两个区域。在划分线510上面的预测点的预测参考像素都位于同一方向,例如上方;在划分线510下面的预测点的预测参考像素都位于另一方向,例如左方。对于划分线510上面的预测点均选择上方的参考像素点(例如u7)为滤波参考像素,而划分线510下面的预测点均选择左方的参考像素点(例如l4)为滤波参考像素,使得该预测块中预测参考像素与滤波参考像素处于相同方向。

仅作为举例说明,参阅图6,图6是根据本申请另一实施方式的滤波参考像素选择方法的示意图。图中以左上角的参考像素为基准,按照预测角度方向线进行划分,将整个预测块分为两个区域。在划分线610上面的预测点的预测参考像素都位于同一方向,例如上方;在划分线610下面的预测点的预测参考像素都位于另一方向,例如左方。对于划分线610上面的预测点均选择左方的参考像素点(例如l2)为滤波参考像素,而划分线610下面的预测点均选择左方的参考像素点(例如u5)为滤波参考像素,使得该预测块中预测参考像素与滤波参考像素处于不同方向。

在本申请中,通过使得预测参考像素与滤波参考像素处于同一方向,可以使得帧内预测过程中能够更好的融合同侧参考像素的更多信息。通过使得预测参考像素与滤波参考像素处于不同方向,可以补充另一侧参考像素的信息,使得帧内预测过程参考更多的信息。

在一实施方式中,帧内预测块的预测方式为角度预测方式,获得滤波参数包括:获得至少两个方向的参考像素作为滤波参考像素。具体的,在角度预测的任何一种模式下,可以同时采用与预测参考像素同侧的参考像素和不同侧的参考像素进行滤波。也就是说,同时参考两个方向的参考像素做滤波。在一实施方式中,利用两个参考像素进行滤波的具体滤波方式可以为通过对两个参考像素的值加权平均的方式确定滤波参考值进行滤波。在一实施方式中,利用两个参考像素进行滤波的具体滤波方式可以使用3抽头的滤波器进行。

仅作为举例说明,参阅图7,图7是根据本申请另一实施方式的滤波参考像素选择方法的示意图。图7中预测点的滤波参考像素可以上方的参考像素(例如u7)和左方的参考像素(例如l2)进行滤波。

在本申请中,通过选择两侧的参考像素进行滤波,可以使得帧内预测过程参考更多的信息,提高帧内预测的准确率。

需要说明的是,在一种滤波方法中,仅可以选择一种滤波像素的选择方法,例如图5、图6、图7所示的方法中的任意一种。

步骤s320,选择滤波范围。

值得说明的是,该步骤中的方法同时适用于对于帧内预测块的亮度或色度进行滤波。

在一实施方式中,预测范围可以基于预设的滤波范围与帧内预测块的尺寸比例,确定滤波范围。在一实施方式中,滤波范围可以通过以下方法确定。首先获取预设的滤波范围与帧内预测块的尺寸比例。其中滤波范围与帧内预测块的尺寸比例可以为任意0到1的值。然后基于该比例与帧内预测块的宽度,确定所述滤波范围的宽度,即并且基于该比例与帧内预测块的高度,确定所述滤波范围的高度,即最后基于所述滤波范围的宽度和所述滤波范围的高度,确定所述滤波范围。

仅作为举例说明,参阅图8,图8是根据本申请一实施方式的滤波范围选择方法的示意图。图中的预测块尺寸为w*h=8*4,设定滤波范围与帧内预测块的尺寸比例a=0.6。根据计算,滤波的宽度范围为0到4,滤波高度范围为0到2,如图中的阴影区域所示。

在一实施方式中,当前帧内预测块的预测方式为角度预测,获得滤波参数包括:将满足第二预定条件的当前帧内预测块中的预测点确定为待滤波点,所有待滤波点即构成滤波范围。其中,第二预定条件为预测点到滤波参考像素和预测参考像素之间的距离关系小于第三阈值。其中第三阈值可以是根据经验预设定的,也可以是基于若干帧图像的统计结果所确定的。值得说明的是,在当前帧内预测块的预测方式不是角度预测时,例如dc模式、planar模式、bilinear模式等,对应的滤波范围确定方式可以为预设固定滤波范围的方式,也可以是上述的滤波范围确定方式。

在一实施方式中,对于滤波参考像素包括两个方向的参考像素,选择与所述预测参考像素不同方向的所述滤波参考像素进行距离关系的计算。

具体的,滤波范围的确定方式如下:对于一个预测块中的任何一个预测点,首先计算该预测点(x,y)到预测参考像素(xr,yr)之间的距离dr(x,y),如公式1所示,计算该预测点(x,y)到滤波参考像素(xf,yf)之间的距离df(x,y),如公式2所示:

dr(x,y)=sqrt((x-xr)2+(y-yr)2)(1)

df(x,y)=sqrt((x-xf)2+(y-yf)2)(2)

然后,设定一个第三阈值a,设两个距离关系为f(df(x,y),dr(x,y)),当距离关系小于等于第三阈值a时,设定此点为待滤波点,即在滤波范围内。当距离关系大于第三阈值a时,设定此点不是待滤波点,即不在滤波范围内。滤波范围即为待滤波点构成的范围。为了便于后续描述,将这一方法称为滤波范围选择方案二。

仅作为举例说明,参阅图9,图9是根据本申请另一实施方式的滤波范围选择方法的示意图。其中,当前预测点的预测方向所指的方向,其预测参考像素为u5,滤波参考像素为l2。当前预测点与两个参考像素的距离关系设为阈值设为1,当前点(x,y)=(3,2),计算两个距离关系因此当前预测点不是待滤波点,不在滤波范围内。对于预测块中的每个预测点都作类似判断,从而确定滤波范围。在上述的条件下,图中阴影部分即为的滤波范围。

与预设定固定滤波范围的方法相比,本申请公开的滤波范围的选择方法可以基于预测块的尺寸灵活设定滤波范围,从而增强帧内滤波效率。

需要说明的是,在一种滤波方法中,仅可以选择一种滤波范围的选择方法,例如图8、图9所示的方法中的任意一种。

步骤s330,确定滤波参考值。

在一实施例中,在对帧内预测块的亮度进行滤波过程时需要确定亮度滤波参考值,在对帧内预测块的色度值进行滤波过程时需要确定色度滤波参考值。

在对帧内预测块的亮度值进行滤波时,可以利用亮度参考像素滤波方式对滤波参考像素进行滤波,获得亮度滤波参考值。其中亮度参考像素滤波方式与滤波参考像素附近的若干参考像素相关。对滤波参考像素进行滤波可以使用任意的与滤波参考像素附近的若干参考像素相关的滤波方式。例如,可以是与附近的若干参考像素正相关的滤波方式,从而可以弱化滤波参考像素对滤波过程的影响,更多的参考附近的参考像素。又例如,可以是与附近的若干参考像素负相关的滤波方式,从而可以强化滤波参考像素对滤波过程的影响,使得滤波过程中能够更多的参考滤波参考像素。将滤波参考像素进行滤波后所获得的亮度值作为亮度滤波参考值对于预测块进行亮度滤波。

在一实施方式中,在当前帧内预测块满足第一预定条件时,对当前帧内预测块进行利用亮度参考像素滤波方式对滤波参考像素进行滤波。其中,第一预定条件可以包括当前帧内预测块的亮度预测方式为非角度预测。或者,第一预定条件还可以包括当前帧内预测块的面积(w*h)大于第一阈值,其中第一阈值可以是根据经验预设定的,也可以是基于若干帧图像的统计结果所确定的。例如,第一阈值可以是64。再或者,第一预定条件还可以包括当前帧内预测块的量化参数大于第二阈值,其中第二阈值可以是根据经验预设定的,也可以是基于若干帧图像的统计结果所确定的。例如,第二阈值可以是40。在一实施方式中,可以对当前帧图像中的所有帧内预测块进行上述对滤波参考像素滤波的方式获得亮度滤波参考值。

在一实施方式中,所述利用亮度参考像素滤波方式对所述滤波参考像素进行滤波包括:获取滤波参考像素及其附近的若干参考像素相对应的系数;基于该系数,对滤波参考像素的亮度值及其附近的若干参考像素的亮度值进行加权求平均。

具体的方法为,对滤波参考像素x周围共n个点,利用下面的公式3进行滤波,并用滤波后的亮度值作为滤波参考像素亮度值对待预测像素点进行滤波,设滤波方向对应参考像素位置为x,采用其左边(或上方)a个点,右边(或下方)n-a-1个点以及它本身进行滤波。

其中,r(x)表示滤波前的参考像素亮度值,r′(x)表示滤波后的参考像素,f(i)表示每个参考像素位置对应的滤波系数。

在一实施方式中,当滤波参考像素为两个时,需要同时对两个滤波参考像素进行滤波,利用滤波后的亮度值作为亮度滤波参考值对预测块进行滤波。

仅作为举例说明,参阅图10,图10是根据本申请一实施方式的亮度滤波参考值的确定方法的示意图。图10中预测点的滤波参考像素为l2,即公式3中的r(2)=l(2),设n=3,a=1,对滤波参考像素采用的滤波系数为[1,2,1],即f(1)=1/4,f(2)=1/2,f(3)=1/4,则进行滤波过程所采用的滤波参考像素亮度值r(r)为:

在对帧内预测块的色度值进行滤波时,可以利用色度参考像素滤波方式对滤波参考像素进行滤波,获得色度滤波参考值。其中色度参考像素滤波方式与滤波参考像素附近的若干参考像素相关。对滤波参考像素进行滤波可以使用任意的与滤波参考像素附近的若干参考像素相关的滤波方式。例如,可以是与附近的若干参考像素正相关的滤波方式,从而可以弱化滤波参考像素对滤波过程的影响,更多的参考附近的参考像素。又例如,可以是与附近的若干参考像素负相关的滤波方式,从而可以强化滤波参考像素对滤波过程的影响,使得滤波过程中能够更多的参考滤波参考像素。将滤波参考像素进行滤波后所获得的色度值作为色度滤波参考值对于预测块进行色度滤波。

在一实施方式中,在当前帧内预测块满足第四预定条件时,对当前帧内预测块进行利用色度参考像素滤波方式对滤波参考像素进行滤波。其中,第四预定条件可以包括当前帧内预测块的色度预测方式为非角度预测。或者,第四预定条件还可以包括当前帧内预测块的面积(w*h)大于第七阈值,其中第七阈值可以是根据经验预设定的,也可以是基于若干帧图像的统计结果所确定的。例如,第七阈值可以是16。再或者,第四预定条件还可以包括当前帧内预测块的量化参数大于第八阈值,其中第八阈值可以是根据经验预设定的,也可以是基于若干帧图像的统计结果所确定的。例如,第八阈值可以是40。在一实施方式中,可以对当前帧图像中的所有帧内预测块进行上述对滤波参考像素滤波的方式获得色度滤波参考值。

在一实施方式中,所述利用色度参考像素滤波方式对所述滤波参考像素进行滤波包括:获取滤波参考像素及其附近的若干参考像素相对应的系数;基于该系数,对滤波参考像素的色度值及其附近的若干参考像素的色度值进行加权求平均。具体方法可以参见上述进行亮度滤波过程中参考像素亮度值的确定方法。

在一实施方式中,当滤波参考像素为两个时,需要同时对两个滤波参考像素进行滤波,利用滤波后的色度值作为色度滤波参考值对预测块进行滤波。

相比于直接使用滤波参考像素的亮度值(色度值)作为亮度滤波参考值(色度值)的方法,本申请公开的亮度滤波参考值(色度值)的确定方法,解决了滤波参考像素仅使用一个像素亮度值(色度值)的单一性问题,可以更充分的利用参考像素信息,改善预测效果。

步骤s340,确定滤波系数。

值得说明的是,该步骤中的方法同时适用于对于帧内预测块的亮度或色度进行滤波。

在一实施方式中,滤波系数基于待滤波点的第一距离与第二距离之间的关系确定,其中第一距离为待滤波点与滤波参考像素之间的距离,第二距离为待滤波点与预测参考像素之间的距离。具体的,对于每一个待滤波点,计算其与滤波参考像素之间的距离和其与预测参考像素之间的距离,根据两个距离的大小关系确定滤波系数的大小。例如,距离较远的参考像素使用较小的滤波系数,距离较近的参考像素使用较大的滤波权值。

在一实施方式中,所述滤波系数至少与待滤波点的第一距离与第二距离之间的比例负相关。具体的滤波系数的确定方法为:预测点p的坐标为(x,y),预测参考像素是值为p(a)的a点。滤波参考像素是一些值为f(i)的i个参考像素点,从中选取一个或者多个滤波参考像素值加入计算。例如滤波的参考像素有b,c,d…点,其对应的参考像素值为f(b),f(c),f(d)…。其中每个参考像素对应的滤波系数可以表示为:滤波的计算过程可以参考公式4。

其中,p(x,y)为当前预测点的滤波前的预测值,p′(x,y)为当前预测点滤波后的预测值,d(p,i)表示预测点p和第i个参考像素点之间的距离,d(p,a)表示p和a两点的距离,并且满足

为了方便说明,当滤波参考像素为1个时,例如b点,其滤波系数可以为:可以简化为

仅作为举例说明,参阅图11,图11是根据本申请一实施方式的滤波系数确定方法的示意图。在图11的实施方式中,滤波参考像素仅为1个,即参考像素l5。根据预测参考方向,对于预测点(x,y),其预测参考像素为参考像素u(5),因此d(p,a)表示预测点(x,y)与u(5)的距离,p(x,y)=u(5)。对于预测点(x,y),滤波方向指向参考像素l(5),因此d(p,b)表示预测点(x,y)与l(5)的距离。则滤波过程计算如式5所示。

相较于通过查表等方法确定每一参考像素的滤波系数的方法,本申请公开的滤波系数的确定方法可以依据预测点与参考像素之间距离的关系确定滤波系数。本申请所公开的方法可以使得距离预测点较远的参考像素使用较小的权重,距离预测点较近的参考像素使用较大的权重。对于一幅图像而言,多数情况距离较远的两个点之间的关系弱于距离较近的两个点之间的关系,因此,本申请的滤波系数确定方法可以使得滤波过程更加合理,贴合实际。

步骤s350,获取滤波方法。

在一实施方式中,滤波方法中的参考系数至少一个是通过上面的方法确定的。在一实施方式中,可以通过对上述方法的自由组合,获取若干滤波方法。例如,滤波方法可以为使用步骤s310中的任一方法确定滤波参考像素,以及步骤s330中的方法确定滤波参考值,其他滤波参数采用现有方式进行确定的方法。又例如,滤波方法可以包括滤波范围使用步骤320中任一方式确定,滤波参考值使用步骤330中任一方法确定,滤波系数使用步骤340中任一方法确定,并在不冲突的情况下组合而成的。再例如滤波方法可以是滤波参考像素、滤波范围、滤波参考值、滤波系数均由上述步骤中的方法确定,并在不冲突的情况下组合而成的。上述滤波方法的确定过程对于亮度滤波和色度滤波均适用。

在一实施方式中,还可以采用现有技术中的对于亮度进行滤波所采用的方法对色度进行滤波。

在一实施方式中,还可以利用预设定的色度滤波器对当前帧内预测块中的每一个待滤波点的色度进行滤波。其中,预设的色度滤波器为尺寸和元素均为固定值的矩阵。例如,色度滤波器可以为一个3*3的矩阵,其中矩阵中的元素值可以是基于预测块所预设定的固定值。在当前帧内预测块满足第三预定条件时对帧内预测块的色度进行滤波。在一实施方式中,第三预定条件可以为当前帧内预测块是基于色度和亮度的同步编码单元划分(cu划分)获得的。

在一实施方式中,第三预定条件可以为当前帧内预测块的色度预测模式为指定预测模式。具体的,尽在当前帧内预测块的色度预测模式为指定预测模式的情况下,对该帧内预测块的色度进行滤波。例如,对帧内预测块的色度预测模式为dm、dc、planar、bi以外的模式不进行滤波;对帧内预测块的色度预测模式为dc、planar、bi以外的模式不进行滤波;又例如,对帧内预测块的色度预测模式为对角度模式、tscpm_l、tscpm_t、pmc_l、pmc_t和水平垂直以外的预测模式不进行滤波;又例如,对帧内预测块的色度预测模式为对tscpm_l、tscpm_t、水平垂直以外的预测模式不进行滤波;又例如,对任意色度预测模式进行滤波。

在一实施方式中,第三预定条件为当前帧内预测块的大小在预设阈值内。具体的,在当前帧内预测块的长度大于等于第四阈值并且宽度大于等于第五阈值时,对当前帧内预测块的色度进行滤波。例如,只对宽和高都分别大于8的帧内预测块进行色度滤波。或者,对于宽高乘积也就是预测块面积大于等于第六阈值(如64)的块进行色度滤波,又例如,对当前帧内预测块大小不进行任何限制,均进行色度滤波。

参阅图12,图12是根据本申请一实施方式的编码方法的流程示意图。注意的是,若有实质上相同的结果,本实施例并不以图12所示的流程顺序为限。如图12所示,该方法包括:

步骤s1210,获取当前帧内预测块的多个帧内预测值。

在一实施方式中,多个帧内预测值中至少包括一个利用前述的帧内预测滤波方法滤波后得到的帧内预测值。帧内预测块可以具有多个帧内预测值,有的帧内预测值是经过滤波后得到的,有的帧内预测值可以是未经过滤波直接预测得到的。滤波过程可以采用前述的任一滤波方法。其中,帧内预测值包括亮度值和色度值。

步骤s1220,选取预测代价最小的帧内预测值作为当前帧内预测块的帧内预测结果。

在一实施方式中,可以通过计算每一个帧内预测结果的rdo损失,选择rdo损失最小的帧内预测值作为帧内预测块的帧内预测结果。其中,可以分别针对亮度滤波和色度滤波后的帧内预测结果计算rdo损失,基于两种rdo损失判断是否进行亮度滤波和色度滤波。也可以分别针对亮度滤波和色度滤波后的帧内预测结果计算rdo损失,分别确定是否需要进行亮度滤波或色度滤波。

步骤1230,基于所述帧内预测块的预测结果对所述帧内预测块进行编码,得到码流。

码流中包括帧内预测滤波句法元素,帧内预测滤波句法元素可以用于表示预测结果是否为滤波后得到的帧内预测值。帧内预测滤波句法元素还可以用于表示所采用的滤波方法为现有技术方法,或前述的任一滤波方法。

在一实施方式中,帧内预测滤波句法元素可以是基于原句法元素ipf_flag所确定的,也可以是新增加的句法元素。新增加的句法元素可以是例如ipf_mode的句法元素。帧内预测滤波句法元素可以用于对于多种滤波方法的选择。

在一实施例中,用于表达帧内预测块的色度是否进行滤波的句法元素可以为色度与亮度共同用一个句法元素表达是否进行滤波过程,例如ipf_flag。在一实施例中,用于表达帧内预测块的色度是否进行滤波的句法元素还可以为对色度滤波采用新的句法元素,色度滤波和亮度滤波分别进行rdo选择是否进行滤波。下面以亮度滤波方法为例,解释说明句法元素的使用方法。为了便于描述,这里将在前述的亮度滤波方法中参数选择的方案进行编号。需要说明的是,这些编号仅为了便于后续的举例描述并不意味着前述的参数选择方案仅为这些。

其中,亮度滤波参考像素选择具有三个方案,方案一为选取与预测参考像素相同方向的参考像素作为亮度滤波参考像素;方案二为选取与预测参考像素不同方向的参考像素作为亮度滤波参考像素;方案三为在帧内预测块的预测方式为角度预测方式时,获得亮度滤波参数包括:获得至少两个方向的参考像素作为亮度滤波参考像素,在预测方式为非角度预测方式时,可以采用现有技术方法获得亮度滤波参考像素。

亮度滤波范围选择具有两个方案,方案一为预测范围可以基于预设的亮度滤波范围与帧内预测块的尺寸比例,即a值,确定亮度滤波范围;方案二为在当前帧内预测块的预测方式为角度预测时,获得亮度滤波参数包括:将满足第二预定条件的当前帧内预测块中的预测点确定为待亮度滤波点,待亮度滤波点即构成亮度滤波范围,在当前帧内预测块的预测方式为非角度预测时,可以采用现有技术方法获得亮度滤波范围。

亮度滤波参考值选择有一种方案,即在当前预测块满足第一预定条件时,利用像素值亮度滤波方式对亮度滤波参考像素进行亮度滤波,获得亮度滤波参考值。

亮度滤波系数选择有一种方案,即亮度滤波系数基于待亮度滤波点的第一距离与第二距离之间的关系确定,其中第一距离为待亮度滤波点与亮度滤波参考像素之间的距离,第二距离为待亮度滤波点与预测参考像素之间的距离。

仅作为举例说明,可以采用增加ipf_mode句法元素的方式表达不同的亮度滤波方法。设定亮度滤波方法为7种,则ipf_mode取值范围为[0,6],原句法元素ipf_flag不变,ipf_flag=0时表示不滤波,ipf_flag=1时表示滤波。下面表1分别举例列出句法元素ipf_mode每个取值代表的方法组合。

表1句法元素每个取值代表的模式组合

仅作为举例说明,对于前一例子中所描述的滤波方法,可以采用修改ipf_flag句法元素的方式表达,下面表2分别ipf_flag举例列出句法元素每个取值代表的方法组合。

表2句法元素每个取值代表的模式组合

仅作为举例说明,下面的实施例为一种对帧内预测块的色度进行滤波的滤波方案。色度滤波方法为:在常规的对亮度进行滤波的方法基础上,色度滤波参考值的确定方法采用本申请中所公开的方法。即,对滤波参考像素上下共3个点,根据参考系数[1,2,1]进行三个点的色度值的加权求平均,并用滤波后的色度值作为滤波参考像素色度值对待预测像素点进行色度滤波。

对于该帧内预测块是否滤波的句法元素表达为:亮度滤波的句法ipf_flag为1时,亮度和色度都进行滤波,ipf_flag为0时,亮度色度都不进行滤波过程。

同时,对于该帧内预测块是否进行色度滤波加入以下限制条件:在帧内预测块是基于色度和亮度的同步编码单元划分(cu划分)获得的时进行色度滤波;在色度预测模式为角度模式、tscpm_l、tscpm_t、pmc_l、pmc_t和水平垂直时进行色度滤波;对块大小选择不限制,即对任意大小的块都可以进行色度滤波。

基于上述色度滤波方案对预测块进行色度滤波。

仅作为举例说明,下面的实施例为另一种对帧内预测块的色度进行滤波的滤波方案。色度滤波方法为:常规的对亮度进行滤波的方法。对于该帧内预测块是否滤波的句法元素表达为:亮度滤波的句法ipf_flag为1时,亮度和色度都进行滤波,ipf_flag为0时,亮度色度都不进行滤波过程。

同时,对于该帧内预测块是否进行色度滤波加入以下限制条件:在帧内预测块是基于色度和亮度的同步编码单元划分(cu划分)获得的时进行色度滤波;在色度预测模式为tscpm_l、tscpm_t、水平垂直时进行色度滤波;对块大小选择不限制,即对任意大小的块都可以进行色度滤波。

仅作为举例说明,对帧内预测块进行滤波时采用的方法为,对亮度进行滤波,其中滤波范围使用了本申请中所公开的方法,并且加入了仅对非角度预测模式下的预测块进行亮度滤波的限制条件;对色度进行滤波采用了上述两个实施例中的一个方案进行。

参阅图13,图13是根据本申请一实施方式的解码方法的流程示意图。注意的是,若有实质上相同的结果,本实施例并不以图13所示的流程顺序为限。如图13所示,该方法包括:

步骤s1310,获取码流数据。

在一实施方式中,码流数据是经过前述的任一编码方法编码后获得。在一实施方式中,码流数据是经过前述的任一滤波方法进行帧内预测滤波后获得。

步骤s1320,解析码流数据,获取当前帧内预测块的帧内预测值的滤波方法。

在一实施方式中,可以解析码流数据以获取帧内预测滤波句法元素,获取当前帧内预测块的帧内预测值的滤波方法。帧内预测滤波句法元素可以为前述的任一方法确定的与滤波方法对应的句法元素。

步骤s1330,按照与当前帧内预测块的帧内预测值的滤波方法对应的解码滤波方法还原出当前帧内预测块滤波前的帧内预测值,进而解码出残差图像,还原出原始图像。

在一实施方式中,解码滤波方法随当前帧内预测块的帧内预测值的滤波方法的改变而改变。在一实施方式中,在第一时刻按照与第一帧内预测块的帧内预测值的第一滤波方法对应的第一解码滤波方法,还原出第一帧内预测块滤波前的第一帧内预测值,在随后的第二时刻按照与第二帧内预测块的帧内预测值的第二滤波方法对应的第二解码滤波方法,还原出第二帧内预测块滤波前的第二帧内预测值。

请参阅图14,图14是根据本申请一实施方式的滤波器的结构示意图。该实施方式中,滤波器1400包括获取模块1410、滤波模块1420,该滤波器可用于执行上述任一实施方式所述的滤波方法。

在一实施方式中,获取模块1410可以获得滤波参数。在一实施方式中,滤波参数包括滤波参考像素,滤波参考值,滤波范围,滤波系数中的至少一种。在一实施方式中,获取模块1410可以通过改变滤波参考像素的选择方向,使得整个预测块的滤波参考像素与预测参考像素的方向关系一致。在一实施方式中,获取模块1410可以基于预测块的相关参数,确定滤波范围。在一实施方式中,获取模块1410可以通过对参考像素值进行优化后得到的值作为滤波参考值。在一实施方式中,获取模块1410可以获得的滤波系数,该滤波系数与待滤波点的位置相关。

在一实施方式中,滤波模块1420可以利用所确定的滤波参数,获得至少一种滤波方法,并利用所获得的每一种滤波方法对帧内预测块进行滤波。在一实施方式中,滤波模块1420可以利用所获得的多种滤波方法对帧内预测块进行滤波后,可以通过计算rdo(rate-distortionoptimization,率失真优化)损失的方式,选择损失最小的滤波方法,将其作为该帧内预测块的有效滤波方法。

请参阅图15,图15是根据本申请一实施方式的编码器的结构示意图。该实施方式中,编码器1500包括处理器1510。

处理器1510还可以称为cpu(centralprocessingunit,中央处理单元)。处理器1510可能是一种集成电路芯片,具有信号的处理能力。处理器1510还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器1510也可以是任何常规的处理器等。

编码器1500可以进一步包括存储器(图中未示出),用于存储处理器1510运行所需的指令和数据。

处理器1510用于执行指令以实现上述本申请帧内预测方法任一实施例及任意不冲突的组合所提供的方法。

请参阅图16,图16是根据本申请一实施方式的解码器的结构示意图。该实施方式中,解码器1600包括处理器1610。

处理器1610还可以称为cpu(centralprocessingunit,中央处理单元)。处理器1610可能是一种集成电路芯片,具有信号的处理能力。处理器11还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器1610也可以是任何常规的处理器等。

解码器1600可以进一步包括存储器(图中未示出),用于存储处理器1610运行所需的指令和数据。

处理器1610用于执行指令以实现上述本申请帧内预测方法任一实施例及任意不冲突的组合所提供的方法。

请参阅图17,图17是根据本申请一实施方式的计算机可读存储介质的结构示意图。本申请实施例的计算机可读存储介质1700存储有指令/程序数据,该指令/程序数据被执行时实现本申请帧内预测方法任一实施例以及任意不冲突的组合所提供的方法。其中,该指令可以形成程序文件以软件产品的形式存储在上述存储介质1700中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质1700包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1