帧内预测选择最优预测模式的方法及装置
技术领域
本发明涉及图像处理技术领域,特别是一种帧内预测选择最优预测模式的方法及装置。
背景技术
在现有的视频编码过程中,如果一个块/宏块(Block/Macroblock)以帧内模式编码,就需要基于先前已编码和重构的块构建一个预测块(PredictionBlock),而当前将要进行编码的块在编码动作执行之前减去该预测块。
对于亮度样点,需要对对每一个4×4子块计算预测块,而在现有技术总共给出了9种4×4子块的预测模式,下面结合图1和图2对4×4子块的9种预测模式进行说明。
图1中,a-p构成了当前需要进行预测的4×4子块,该4×4子块上方和左边的样点已经被编码,因此可以被用于形成一个预测参考,该预测块基于图1中标号为A-M的样点进行计算。
如图2所示,图2中的箭头表明了每种预测模式下预测的方向,按照从上到下,从左到右的顺序,分别为模式0、1、3、4、5、6、7、8的示意图,而DC模式(模式2)在图2中未示出。
上面8种预测模式的预测方向如图3所示。
现有帧内预测的方法中,分别利用上述的9种模式分别计算待编码块的预测块,并计算每种模式得到预测块所对应的率失真代价RDCost,并选择RDCost最小的预测模式作为最优的预测模式。
发明人在实现本发明的过程中发现现有技术至少存在以下缺点:
现有的帧内预测方法,在选择最优预测模式时采用穷举算法,对每种模式进行预测,获取预测块,并计算RDCost,并选择RDCost最小的预测模式作为最优的预测模式,这种算法实现复杂,同时处理速度较慢。
发明内容
本发明的目的是提供一种帧内预测选择最优预测模式的方法及装置,降低帧内预测的实现复杂度,提高处理速度。
为了实现上述目的,本发明实施例提供了一种帧内预测选择最优预测模式的方法,包括:
判断待编码块的位置,获取一判断结果;
在所述判断结果指示所述待编码块既不在图像最左边,也不在图像最上边时,从除DC预测模式之外的其他预测模式中,按照序号由小到大的顺序依次选择预定数目的预测模式;
从所述预定数目的预测模式中选择预测残差最小的第一预测模式;
从所述第一预测模式、与所述第一预测模式在预测方向上相邻的预测模式、最可能的预测模式和DC预测模式中选择RDCost最小的模式作为最优预测模式。
上述的方法,其中,还包括:在所述判断结果指示所述待编码块在所述图像左上角时,选择DC模式作为最优预测模式。
上述的方法,其中,还包括:在所述判断结果指示所述待编码块在所述图像最左边,但不在所述图像最上边时,选择DC模式和垂直模式中RDCost最小的模式作为最优预测模式。
上述的方法,其中,还包括:在所述判断结果指示所述待编码块在所述图像最上边,但不在所述图像最左边时,选择DC模式和水平模式中RDCost最小的模式作为最优预测模式。
上述的方法,其中,在处于所述待编码块左边,且与所述待编码块相邻的第一编码块和处于所述待编码块上边,且与所述待编码块相邻的第二编码块为帧内预测方式编码,同时所述第一编码块和第二编码块在当前条带下时,所述最可能的预测模式为所述第一编码块和第二编码块的预测模式中的最小值,否则所述最可能的预测模式为DC模式。
为了实现上述目的,本发明实施例还提供了一种帧内预测选择最优预测模式的装置,包括:
位置判断模块,用于判断待编码块的位置,获取一判断结果;
第四选择模块,用于在所述判断结果指示所述待编码块既不在图像最左边,也不在图像最上边时,从除DC预测模式之外的其他预测模式中,按照序号由小到大的顺序依次选择预定数目的预测模式;
第五选择模块,用于从所述预定数目的预测模式中选择预测残差最小的第一预测模式;
第六选择模块,用于从所述第一预测模式、与所述第一预测模式在预测方向上相邻的预测模式、最可能的预测模式和DC预测模式中选择RDCost最小的模式作为最优预测模式。
上述的装置,其中,还包括:第一选择模块,用于在所述判断结果指示所述待编码块在所述图像左上角时,选择DC模式作为最优预测模式。
上述的装置,其中,还包括:第二选择模块,用于在所述判断结果指示所述待编码块在所述图像最左边,但不在所述图像最上边时,选择DC模式和垂直模式中RDCost最小的模式作为最优预测模式。
上述的装置,其中,还包括:第三选择模块,用于在所述判断结果指示所述待编码块在所述图像最上边,但不在所述图像最左边时,选择DC模式和水平模式中RDCost最小的模式作为最优预测模式。
上述的装置,其中,其特征在于:在处于所述待编码块左边,且与所述待编码块相邻的第一编码块和处于所述待编码块上边,且与所述待编码块相邻的第二编码块为帧内预测方式编码,同时所述第一编码块和第二编码块在当前条带下时,所述最可能的预测模式为所述第一编码块和第二编码块的预测模式中的最小值,否则所述最可能的预测模式为DC模式。
本发明实施例具有以下的有益效果:
应用本发明实施例的方法和装置,首先从使用频率最高的预定数目的预测模式中选择预测残差最小的预测模式,进而从残差最小的预测模式、与之相邻的预测模式、DC模式和最可能的预测模式中选择RDCost最小的模式,大大降低了帧内预测算法的实现复杂度,进而提高了处理速度。
应用本发明实施例的方法和装置,对于位于左上角的待编码块,需要预测0个点,计算率失真代价0次,而对于左边缘的待编码块,需要预测32个点,计算率失真代价2次,而对于上边缘的待编码块,需要预测32个点,计算率失真代价2次,而对于中间的待编码块,在最坏的情况下,只需要预测128个点,计算率失真代价5次。
帧内预测主要的复杂度是由计算率失真代价产生的,本发明实施例的方法和装置在最坏情况下只需计算率失真代价5次,由于DC预测模式、最可能的预测模式、第一预测模式,以及与第一预测模式在预测方向上相邻的预测模式在多数情况下存在重合的情形,所以多数情况下需要计算率失真代价的次数小于5次,因此本发明实施例的方法在很大程度上降低了帧内预测的复杂度,加快了处理速度。
附图说明
图1为4×4待编码块的位置示意图;
图2为8种帧内预测模式的示意图;
图3为8种帧内预测模式的预测方向示意图;
图4为本发明实施例的方法的流程示意图;
图5为本发明实施例的装置的结构示意图。
具体实施方式
本发明实施例的帧内预测方法及装置根据待编码块的位置,对待编码块的预测模式进行区别对待,以降低实现复杂度,加快处理速度。
如图4所示,本发明实施例的帧内预测选择最优预测模式的方法包括如下步骤:
步骤41,判断待编码块的位置;
该待编码块的位置包括如下四种类型:
位置类型1,处于图像左上角;
位置类型2,处于图像最左边,但不在图像最上边;
位置类型3,处于图像最上边,但不在图像最左边;
位置类型4,既不在图像最左边,也不在图像最上边。
步骤42,对于位置类型1,由于待编码块处于图像左上角,当前图像还没有其他已经被编码的块,因此,此时只能采用DC模式作为最优预测模式;
步骤43,对于位置类型2,由于待编码块处于图像最左边,但不在图像最上边,因此,处于该待编码块上方的块已经被编码,此时,选择DC模式和垂直模式(即模式0)进行预测,分别得到DC模式和垂直模式对应的预测块,并根据DC模式和垂直模式对应的预测块分别计算对应的RDCost,最后选择DC模式和垂直模式中RDCost最小的模式作为最优预测模式;其中,RDCost即率失真代价,由D+λR(拉格朗日最小二乘法)得到,其中D为预测块与原始块之间的绝对误差和,R为编码最有可能模式和最优模式需要的比特数。
步骤44,对于位置类型3,由于待编码块处于图像最上边,但不在图像最左边,因此,处于该待编码块左方的块已经被编码,此时,选择DC模式和水平模式(即模式1)进行预测,分别得到DC模式和水平模式对应的预测块,并根据DC模式和水平模式对应的预测块分别计算对应的RDCost,最后选择DC模式和水平模式中RDCost最小的模式作为最优预测模式;
步骤45,对于位置类型4,由于待编码块既不在图像最左边,也不在图像最上边,因此,处于该待编码块左方的块已经被编码,本领域技术人员清楚,预测模式的序号即代表了其在实际帧内预测的过程中被使用的概率,序号越小,概率越大,因此,本发明的具体实施例中,从除DC预测模式之外的其他预测模式中,按照序号由小到大的顺序依次选择预定数目的预测模式,并计算选择的预测模式的预测残差SAD,从预定数目的预测模式中选择预测残差最小的第一预测模式;
步骤46,分别利用步骤35中选择的预测残差最小的第一预测模式、与所述预测残差最小的第一预测模式相邻的预测模式、最可能的预测模式和DC预测模式进行预测,分别得到对应的预测块,并根据预测块分别计算不同模式对应的RDCost,最后选择RDCost最小的模式作为最优预测模式。
下面对本发明实施例的方法进行举例详细说明。
对于位置类型1、位置类型2和位置类型3的处理比较简单,在此不进行详细说明,主要说明对于位置类型4的处理。
在对位置类型4的块的处理过程中,首先需要选择预定数目的预测模式,在本发明的具体实施例中可以是选择2个、3个、4个等数目,当然也可以选择其他数目的预测模式,但该预定数目不应该选择过大,下面以4个为例进行说明。
按照选择原则,该预定数目的预测模式为预测模式0、预测模式1、预测模式3和预测模式4,在选定预测模式后,分别以预测模式0、预测模式1、预测模式3和预测模式4进行预测,获取对应的预测块,进而计算4种预测模式各自对应得预测残差,选择预测残差最小的第一预测模式后进入后续处理。
在后续处理过程中,还需要根据最可能的预测模式和DC预测模式进行预测处理,获取对应的预测块。
该最可能的预测模式根据如下方式获取。
假设与当前待编码块X1相邻的上方已编码块为X2,左边已编码块为X3。
考虑到当前待编码块X1以及与之相邻的已编码块X2和X3之间的高度相关性,该待编码块的预测模式也与已编码块的预测模式相关业密切相关。
举例来说,假设X2和X3的预测模式为模式2,则X1的最优预测模式在很大程度上有可能也是模式2。
对于每一个待编码块X1,其最可能预测模式的计算如下所述:
如果X2和X3都是帧内预测方式编码,同时在当前条带(Slice)下,X1最可能的预测模式为X2和X3的预测模式的最小值,否则X1最可能的预测模式为DC模式。
在得到最可能的预测模式后,最后从第一预测模式、与第一预测模式在预测方向上相邻的预测模式、DC预测模式和最可能的预测模式中选择RDCost最小的模式作为最优预测模式。
在本发明的具体实施例中,假设当前选择的第一预测模式为模式0,则在最后选择时,就从模式0、模式7(与模式0在预测方向上相邻)、模式5(与模式0在预测方向上相邻)、最可能的预测模式以及DC模式中选择RDCost最小的模式作为最优预测模式。
在对本发明实施例方法的描述中,是以所有可能的待编码块的位置进行的说明,然而本发明实施例的方法中,出于以下的考虑,对于位置类型1、位置类型2和位置类型3也可以采用现有的算法来处理:
首先,这种位置类型的待编码块的数量不多,比重较小;
其次,这种位置类型的待编码块利用现有算法也可以排除大部分的预测模式,例如,对于处于上边缘的待编码块,其预测模式仅仅模式0、3和7可以使用。
本发明实施例的帧内预测选择最优预测模式的装置如图5所示,包括:
位置判断模块,用于判断待编码块的位置,获取一判断结果;
第一选择模块,用于在所述判断结果指示所述待编码块处于图像左上角时,选择DC模式作为最优预测模式;
第二选择模块,用于在所述判断结果指示所述待编码块处于最左边,但不在图像最上边时,选择DC模式和垂直模式中RDCost最小的模式作为最优预测模式;
第三选择模块,用于在所述判断结果指示所述待编码块处于最上边,但不在图像最左边时,选择DC模式和水平模式中RDCost最小的模式作为最优预测模式;
第四选择模块,用于在所述判断结果指示所述待编码块既不在图像最左边,也不在图像最上边时,从除DC预测模式之外的其他预测模式中,按照序号由小到大的顺序依次选择预定数目的预测模式;
第五选择模块,用于从所述预定数目的预测模式中选择预测残差最小的第一预测模式;
第六选择模块,用于从所述第一预测模式、与所述第一预测模式相邻的预测模式、最可能的预测模式和DC预测模式中选择RDCost最小的模式作为最优预测模式。
应用本发明实施例的方法和装置,对于位于左上角的待编码块,需要预测0个点,计算率失真代价0次,而对于左边缘的待编码块,需要预测32个点,计算率失真代价2次,而对于上边缘的待编码块,需要预测32个点,计算率失真代价2次,而对于中间的待编码块,在最坏的情况下,只需要预测128个点,计算率失真代价5次。
帧内预测主要的复杂度是由计算率失真代价产生的,本发明实施例的方法和装置在最坏情况下只需计算率失真代价5次,由于DC预测模式、最可能的预测模式、第一预测模式,以及与第一预测模式在预测方向上相邻的预测模式在多数情况下存在重合的情形,所以多数情况下需要计算率失真代价的次数小于5次,因此本发明实施例的方法在很大程度上降低了帧内预测的复杂度,加快了处理速度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。