本发明涉及图像处理技术领域,特别是涉及一种图像生成方法及装置。
背景技术:
随着微电子、计算机、数字电视、多媒体信息系统和三网融合的发展,人们对视频质量提出了更高的要求。有限带宽下的视频传输、不同帧率的视频源之间的格式转换、提高现有节目源的帧率等,都需要采用视频帧率转换技术。在视频帧率转换系统中,为了提高视频的流畅度,需要在原始视频帧之间生成新的图像帧,以提高帧率。
现有技术中,帧率转换系统采用运动估计和运动补偿(Motion Estimate and Motion Compensation,MEMC)的方法来生成新的插值帧图像。具体而言,首先通过运动估计得到相邻帧之间各个分块的运动矢量,再利用原始帧和运动矢量进行运动补偿,以生成新的插值帧图像。所生成的插值帧图像质量取决于运动估计得到的运动矢量的准确性,以及基于块的运动补偿的插值的效果。
但是,在实际的帧率转换系统系统中,因为运动场景的复杂性,以及运动估计算法本身收敛速度的影响,估计得到的每一个块的运动矢量并不可能都是准确的。当运动矢量估计不准确时,所生成的插值帧图像中将会产生大量的空洞,虽然可以由后续空洞填充算法来插值填充空洞,但填充的空洞的图像质量往往远低于周围由运动插值而来的图像。因此,采用现有技术中的图像生成方法所生成的图像质量较差。
技术实现要素:
本发明实施例解决的技术问题是如何提高所生成的插值帧图像的质量。
为解决上述问题,本发明实施例提供了一种图像生成方法,所述方法包括:
分别获取当前图像中第n帧图像和第n-1帧图像,n为整数,n>1;
分别将所述第n帧图像和第n-1帧图像在运动估计时划分得到的N*N个不重叠的分块进行扩展,形成N*N个扩展分块;
基于当前帧图像中的所述N*N个扩展分块分别进行前向运动补偿和后向运动补偿,生成位于第n帧图像和第n-1帧图像之间的插值帧图像;其中,在进行所述前向运动补偿时,所述n-1帧图像为当前帧图像,所述第n帧图像为参考帧图像;在进行所述后向运动补偿时,所述n帧图像为当前帧图像,所述第n-1帧图像为参考帧图像。
可选地,所述分别将所述第n帧图像和第n-1帧图像在运动估计时划分得到的N*N个不重叠的分块进行扩展形成N*N个扩展分块,包括:
分别将相邻分块与当前分块的运动矢量在对应方向上的运动矢量分量进行比较,所述相邻分块包括位于当前分块上、下、左和右的相邻分块,将位于所述当前分块左侧和上方的相邻分块作为第一类相邻分块,将位于所述当前分块右侧和下方的相邻分块作为第二类相邻分块,所述对应方向包括水平方向和垂直方向;
当确定所述第一类相邻分块的运动矢量在对应方向上的运动矢量分量小于当前分块的运动矢量在对应方向上的运动矢量分量,或者所述第二类相邻分块的运动矢量在对应方向上的运动矢量分量大于当前分块的运动矢量在对应方向上的运动矢量分量时,计算运动补偿之后的所述相邻分块与当前分块在对应方向上的距离;
将计算得到的运动补偿之后的所述相邻分块与当前分块在对应方向上的距离的一半与当前分块的宽度的一半进行比较,取二者中较小者作为对应方向上的扩展宽度,对当前分块进行扩展得到对应的扩展分块。
可选地,所述基于当前帧图像中的所述N*N个扩展分块分别进行前向运动补偿和后向运动补偿,生成位于第n帧图像和第n-1帧图像之间的插值帧图像,包括:
计算当前帧图像中的N*N个扩展分块中像素的运动补偿误差和运动矢量可信度,所述运动矢量可信度用于衡量像素运动估计的准确性;
根据当前帧图像中的N*N的扩展分块中像素的运动补偿误差和运动矢量 可信度,计算当前帧的扩展分块中像素的权重值和加权像素值;
获取像素在每一次有运动矢量穿过时的权重值和加权像素值;
将所述像素在每一次有运动矢量穿过时的权重值和加权像素值分别进行相加,得到所述像素的权重值累加值和加权像素值累加值;
将所述像素的加权像素值累加值除以权重值累加值得到的商,作为所述插值帧图像中对应像素的像素值。
可选地,所述计算当前帧图像中的N*N个扩展分块中像素的运动补偿误差,包括:
采用公式e(i)=|fc(i)-fr(i+D(X))|进行计算,其中,e(i)表示像素i的运动补偿误差,fc(i)表示当前帧中的像素i的像素值,D(X)表示所述扩展分块对应的当前分块的运动矢量,fr(i+D(X)))表示当前帧的像素i在参考帧中对应像素的像素值。
可选地,所述计算当前帧图像中的N*N个扩展分块中像素的运动矢量可信度,包括:
采用公式c(i)=|D(X)-Dop(Y)|进行计算,其中,c(i)表示像素i的运动矢量可信度,D(X)表示所述扩展分块对应的当前分块的运动矢量,Y表示当前帧中的像素i在参考图像中对应的像素所在的分块,Dop(Y)表示分块Y在极性相反的运动矢量场中的运动矢量。
可选地,所述根据当前帧图像中的N*N的扩展分块中像素的运动补偿误差和运动矢量可信度,计算当前帧的扩展分块中像素的权重值,包括:
w(i)=F(αe(i)+(1-α)c(i))τ,其中,w(i)表示当前帧的扩展分块中像素i的权重值,α表示用于调整运动补偿误差和运动矢量可信度的权重比例系数,F(.)表示单调减函数,τ表示所述插值帧图像在时间上距离所述第n-1帧图像的归一化距离,且0<τ<1。
本发明实施例还提供了一种图像生成装置,所述装置包括:
获取单元,适于分别获取当前图像中第n帧图像和第n-1帧图像,n为整数,n>1;
扩展单元,适于分别将所述第n帧图像和第n-1帧图像在运动估计时划分得到的N*N个不重叠的分块进行扩展,形成N*N个扩展分块;
生成单元,适于基于当前帧图像中的所述N*N个扩展分块分别进行前向运动补偿和后向运动补偿,生成位于第n帧图像和第n-1帧图像之间的插值帧图像;其中,在进行所述前向运动补偿时,所述n-1帧图像为当前帧图像,所述第n帧图像为参考帧图像;在进行所述后向运动补偿时,所述n帧图像为当前帧图像,所述第n-1帧图像为参考帧图像。
可选地,所述扩展单元适于分别将相邻分块与当前分块的运动矢量在对应方向上的运动矢量分量进行比较,所述相邻分块包括位于当前分块上、下、左和右的相邻分块,将位于所述当前分块左侧和上方的相邻分块作为第一类相邻分块,将位于所述当前分块右侧和下方的相邻分块作为第二类相邻分块,所述对应方向包括水平方向和垂直方向;当确定所述第一类相邻分块的运动矢量在对应方向上的运动矢量分量小于当前分块的运动矢量在对应方向上的运动矢量分量,或者所述第二类相邻分块的运动矢量在对应方向上的运动矢量分量大于当前分块的运动矢量在对应方向上的运动矢量分量时,计算运动补偿之后的所述相邻分块与当前分块在对应方向上的距离;将计算得到的运动补偿之后的所述相邻分块与当前分块在对应方向上的距离的一半与当前分块的宽度的一半进行比较,取二者中较小者作为对应方向上的扩展宽度,对当前分块进行扩展得到对应的扩展分块。
可选地,所述生成单元适于计算当前帧图像中的N*N个扩展分块中像素的运动补偿误差和运动矢量可信度,所述运动矢量可信度用于衡量像素运动估计的准确性;根据当前帧图像中的N*N的扩展分块中像素的运动补偿误差和运动矢量可信度,计算当前帧的扩展分块中像素的权重值和加权像素值;获取像素在每一次有运动矢量穿过时的权重值和加权像素值;将所述像素在每一次有运动矢量穿过时的权重值和加权像素值分别进行相加,得到所述像素的权重值累加值和加权像素值累加值;将所述像素的加权像素值累加值除以权重值累加值得到的商,作为所述插值帧图像中对应像素的像素值。
与现有技术相比,本发明的技术方案具有以下的优点:
上述的方案,通过在前向运动补偿和后向运动补偿时,对当前帧的N对当前帧图像中的N*N个不重叠的分块分别进行扩展得到对应的N*N个扩展分块,由于扩展分块大于对应的分块,减少没有运动矢量穿过的像素的数量,进而可以减少有由于运动估计不准确导致的空洞的产生,因此,可以提升所生成的插值帧图像的质量。
进一步地,在进行扩展分块中的像素的权重值的计算时,加入运动矢量可信度的信息,可以在相邻的第n帧图像和第n-1帧图像之间出现物体遮掩,造成物体遮掩区域的运动估计的不准确,可以进一步提升所生成的插值帧图像的质量。
附图说明
图1是本发明实施例中的一种图像生成方法的流程图;
图2是本发明实施例中的另一种图像生成方法的流程图;
图3是为在生成插值帧图像时形成空洞的示意图;
图4是本发明实施例中的对当前帧中的N*N不重叠的分块进行扩展的流程示意图;
图5是本发明实施例中的当前分块与相邻分块的位置关系示意图;
图6是本发明实施例中的当前帧的N*N个扩展分块的各个像素进行前向运动补偿,得到扩展分块中各个像素的权重和加权像素值的流程图;
图7是本发明实施例中的图像生成装置的结构示意图。
具体实施方式
现有技术中,帧率转换系统采用运动估计和运动补偿(Motion Estimate and Motion Compensation,MEMC)的方法来生成新的插值帧图像。具体而言,首先通过运动估计得到相邻帧之间各个分块的运动矢量,再利用原始帧和运动矢量进行运动补偿,以生成新的插值帧图像。所生成的插值帧图像质量取决于运动估计得到的运动矢量的准确性,以及基于块的运动补偿的插值的效果。
将当前帧划分成大小为N×N的不重叠的块。在运动估计后,分别以第n-1帧图像为当前帧图像,第n帧图像作为参考帧图像,计算得到前向运动矢量场,且分别以第n-1帧图像为当前帧图像,第n帧图像作为参考帧图像后向运动矢量场。运动矢量场中每一个运动矢量表示当前帧中对应的块在参考帧中的位置偏移。
为了产生新的插值帧图像,对第n-1帧的每一块,设其坐标为X,取其运动矢量Df(X),各个分块中各个像素,按照像素为单位的坐标表示为i,对应像素值为f(i)。
则在时间τ上生成的新图像中,当前分块X中各个像素相对于原始帧中各点的偏移为τDf(X),即在前向插值图像中,当前分块的各个像素i的像素值可以表示为:
ff(i+τDf(X))=τfn-1(i)+(1-τ)fn(i+Df(X)) (1)
对第n帧的每一分块,设其坐标为X,取其运动矢量Db(X),各个分块块中各个像素,坐标表示为i。则在时间τ上生成的新图像中,块X中各个像素相对于原始帧中各像素的偏移为为(1-τ)Db(X)。即在后向插值图像中,当前分块的各个像素i的像素值可以表示为:
fb(i+(1-τ)Db(X))=τfn-1(i+Db(X))+(1-τ)fn(i) (2)
其中,在产生前向插值图像ff和后向插值图像fb的过程中,当没有运动矢量穿过像素,则该像素在插值帧图像中将为空洞。
但是,在实际的帧率转换系统系统中,因为运动场景的复杂性,以及运动估计算法本身收敛速度的影响,估计得到的每一个块的运动矢量并不可能都是准确的。当运动矢量估计不准确时,所生成的插值帧图像中将会产生大量的空洞。虽然可以由后续空洞填充算法来插值填充空洞,但填充的空洞往往质量远低于周围由运动插值而来的图像。因此,采用现有技术中的图像生成方法所生成的插值帧图像存在着图像质量差的问题。
为解决现有技术中存在的上述问题,本发明实施例采用的技术方案通过在前向运动补偿和后向运动补偿时,对当前帧的N对当前帧图像中的N*N个不重叠的分块分别进行扩展得到对应的N*N个扩展分块,可以减少有由于运 动估计不准确导致的空洞的产生,进而可以提升所生成的插值帧图像的质量。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1示出了本发明实施例中的一种图像生成方法的流程图。如图1所示的图像生成方法,可以包括:
步骤S101:获取当前图像中第n帧图像和第n-1帧图像。
在具体实施中,当前图像为原始视频图像,相邻两帧图像分别为第n帧图像和第n-1帧图像,其中,n大于1的整数。
步骤S102:将所述第n帧图像和第n-1帧图像在运动估计时划分得到的N*N个不重叠的分块进行扩展形成N*N个扩展分块。
在具体实施中,可以根据实际的需要分别将第n帧图像和第n-1帧图像划分成为N*N个不重叠的分块,其中,N为大于1的自然数,其具体数值可以根据实际的需要进行设置。
步骤S103:基于当前帧图像中的所述N*N个扩展分块分别进行前向运动补偿和后向运动补偿,生成位于第n帧图像和第n-1帧图像之间的插值帧图像。
在具体实施中,在进行所述前向运动补偿时,所述n-1帧图像为当前帧图像,所述第n帧图像为参考帧图像,在进行所述后向运动补偿时,所述n帧图像为当前帧图像,所述第n-1帧图像为参考帧图像;
在具体实施中,由于当前帧扩展的N*N个扩展分块分别大于n-1帧图像和n帧图像的N*N个不重叠的分块中相应的分块,可以减少由于运动估计不准确而出现没有运动矢量穿过的像素的数量,因此,可以减少空洞的产生,提升所生成的插值帧图像的质量。
下面将结合图2对本发明实施例中的图像生成方法做进一步详细的介绍。
请参见图2所示,在具体实施中,本发明实施例中的图像生成方法,可以包括如下的步骤:
步骤S201:获取当前图像中第n帧图像和第n-1帧图像。
在具体实施中,所获取的当前图像的第n帧图像和第n-1帧图像,包括第n-1帧和第n帧的图像数据fn-1和fn,由运动估计产生的第n-1帧的前向运动矢量场Df和第n帧的后向运动矢量场Db,以及产生的插值帧图像在时间上距离第n-1帧的归一化距离τ,以及所述插值帧图像在时间上距离第n帧的归一化距离t=1-τ,其中,0<τ<1。
步骤S202:获取当前图像中所述第n帧图像和第n-1帧图像在进行运动估计时分别划分得到的N*N个不重叠的分块。
在具体实施中,在进行运动估计时,可以根据实际的需要分别将第n帧图像和第n-1帧图像划分成为N*N个不重叠的分块,其中,N为大于1的自然数,其具体数值可以根据实际的需要进行设置。本步骤中获取的第n帧图像和第n-1帧图像的N*N个不重叠的分块,为运动估计时划分得到的N*N个不重叠的分块。
步骤S203:将第n-1帧图像作为当前帧图像,将当前帧图像中的N*N个不重叠的分块扩展形成N*N个扩展分块,并基于N*N个扩展分块进行前向运动补偿,得到各个扩展分块中像素的权重值和加权像素值。
在具体实施中,在进行前向运动补偿时,以第n-1帧图像fn-1为当前帧fc,第n帧图像fn为参考帧fr,第n-1帧的前向运动矢量场Df为运动矢量场D,距离当前帧图像的距离t=τ。
请参见图3所示,理想情况下,在局部区域属于同一物体的分块应该有相同的运动矢量。然而,在前向运动估计的过程中,相邻分块301和302在属于同一物体时,二者之间仍然可能存在不同的运动矢量,如分块301具有零运动矢量,分块302具有向右的运动矢量。如果仍然按照运动估计时划分得到的N*N个不重叠的分块中的块的大小来进行运动补偿时,会在插值帧图像中形成空洞303。
为了减少空洞的产生,可以将当前帧中的N*N不重叠的分块分别采用相邻分块进行扩展形成N*N扩展分块。在对分块进行扩展时,同时在当前分块的上,下,左,右四个方向上进行,当前分块在四个方向上扩展宽度与当前分块的运动矢量四个方向邻近分块,即相邻分块的运动矢量相关,具体请参 见图4所示。
请参见图4所示,在本发明一实施例中,可以采用如下的方式对当前帧中的N*N不重叠的分块进行扩展:
步骤S401:分别将第一类相邻分块和第二类相邻分块与当前分块的运动矢量在对应方向上的运动矢量分量进行比较。
在具体实施中,所述相邻分块包括位于当前分块上、下、左和右的相邻分块。其中,为了描述的简便,可以将位于当前分块上方和左侧的相邻分块作为第一类相邻分块,将位于当前分块下方和右侧的相邻分块作为第二类相邻分块。
在具体实施中,所述对应方向包括水平方向和垂直方向,在进行相应方向上的扩展时,所述相邻分块即为对应方向的相邻分块。
例如,请参见图5所示,X表示当前分块,L、R、T、B分别表示位于当前分块X的左、右、上、下的相邻分块,分别记为左侧分块L、右侧分块R,上方分块T和下方分块B。以左边扩展为例,所述将左侧分块L与当前分块X的运动矢量在对应方向上的运动矢量分量进行比较,即当前分块X的运动矢量在水平方向x的运动矢量分量D(X).x(含符号)与相邻分块L的运动矢量在水平方向x的运动矢量分量D(L).x进行比较。
步骤S402:当前分块在对应方向上不进行扩展。
在具体实施中,当位于第一类相邻分块或者第二类相邻分块的运动矢量在对应方向的运动矢量分量等于当前分块的运动矢量在对应方向上的运动矢量分量,说明所述相邻分块与当前分块在对应方向上的运动一致,在运动补偿之后,在插值帧图像中二者的相对位置仍然保持不变,在运动补偿之后将不会出现空洞,因此,不需要当前分块在对应方向上进行扩展。
当第一类相邻分块的运动矢量在对应方向的运动矢量分量大于当前分块的运动矢量在对应方向上的运动矢量分量,或者当第二类相邻分块的运动矢量在对应方向的运动矢量分量小于当前分块的运动矢量在对应方向上的运动矢量分量时,在运动补偿之后,在插值帧图像中二者之间将出现部分区域的重叠,在运动补偿之后也将不会出现空洞,因此,也不需要当前分块在对应 方向上进行扩展。
步骤S403:计算当前分块与相邻分块在运动补偿之后的距离。
在具体实施中,当第一类相邻分块的运动矢量在对应方向的运动矢量分量小于当前分块的运动矢量在对应方向上的运动矢量分量,或者当第二类相邻分块的运动矢量在对应方向的运动矢量分量大于当前分块的运动矢量在对应方向上的运动矢量分量时,在运动补偿之后,当前分块与对应的相邻分块二者之间在插值帧图像中将会存在一定的距离,即出现空洞。因此,此时需要将当前分块在对应方向上进行扩展。
同样以左边扩展为例,首先可以采用如下的公式计算当前分块X与左侧分块L在运动补偿之后的距离,即空洞的宽度为:
D=τ(D(X).x-D(L).x) (3)
其中,D表示所述空洞的宽度。
步骤S404:将计算得到的当前分块与相邻分块在运动补偿之后的距离的一半与当前分块的宽度的一半进行比较,取二者中较小者作为当前分块在对应方向上的扩展宽度。
在具体实施中,以左边扩展为例,当以X为当前分块需要进行左边扩展时,那么,在以左侧分块L为当前分块,X为右侧分块时,左侧分块L同样需要进行右边扩展。因此,当前分块X在进行扩展时的扩展宽度选择为运动补偿后左侧分块L与当前分块X之间的距离的一半作为当前分块X的左侧扩展宽度。
一般来说,相邻块之间运动矢量的差值不会很大。而差距较大时,也意味着相邻块原本就属于不同的物体,此时过大的扩展宽度带来的效果提升也相当有限。因此,为了降低计算的复杂度,可以对当前分块进行扩展时的扩展宽度进行相应的限制。
例如,同样以左侧扩展为例,可以将对应方向上的扩展宽度限制在小于分块的宽度的一半之内,即当前分块X在左侧的扩展宽度ext_l满足:
最终,对当前分块X进行上、下、左、右四个方向的扩展后得到对应的扩展分块B的大小为:
(ext_l+N+ext_r)×(ext_t+N+ext_b) (5)
其中,ext_r、ext_t、ext_b分别表示右侧、上方和下方的扩展宽度。
在具体实施中,当采用上述的步骤S401至S403将当前帧的N*N个不重叠的分块扩展形成N*N个扩展分块之后,可以基于N*N个扩展分块B进前向运动补偿,具体请参见图6所示。
请参见图6所示,在具体实施中,可以采用如下的步骤对当前帧的N*N个扩展分块的各个像素进行前向运动补偿,得到扩展分块中各个像素的权重和加权像素值:
步骤S601:分别计算N*N个扩展分块中各个像素的运动补偿误差。
在具体实施中,当前帧图像中的扩展分块B中的像素的运动补偿误差为,当前帧图像中的扩展分块B中的像素,与参考帧图像中找到对应偏移为D(X)的像素,以两者像素值差的绝对值作为该点的运动补偿误差,即:
e(i)=|fc(i)-fr(i+D(X))| (6)
其中,e(i)表示扩展分块B中像素i的运动补偿误差,fc(i)表示当前帧中的像素i的像素值,fr(i+D(X))表示参考帧图像中像素i的像素值。
这里需要指出的是,扩展分块B的大小一般来说是要大于原始的当前块X的,即扩展分块B中包括当前分块X的像素和相邻分块扩展当前分块X的像素。在采用上述的公式(6)计算各个像素的运动补偿误差时,扩展分块B中所有像素的运动矢量均为当前分块X的运动矢量D(X)。
步骤S602:分别计算N*N个扩展分块中各个像素的运动矢量可信度。
在具体实施中,当相邻两帧图像中出现有物体遮掩的情况时,由于图像信息的缺失,会造成在遮掩区域附近运动估计的不准确。为了避免这种不准 确的运动矢量在运动估计阶段造成的瑕疵,可以采用运动矢量可信度对估计得到的运动矢量的准确性进行评估。
在具体实施中,当前帧图像的N*N个扩展分块B中各个像素的运动矢量可信度可以采用如下的公式计算得到:
c(i)=|D(X)-Dop(Y)| (7)
其中,c(i)表示扩展分块B中像素i的运动矢量可信度,D(X)表示所述扩展分块对应的当前分块的运动矢量,Y表示当前帧中的像素i在参考图像中对应的像素所在的分块,Dop(Y)表示分块Y在极性相反的运动矢量场中的运动矢量。
在具体实施中,在得到分块Y在极性相反的运动矢量场中的运动矢量Dop(Y)时,首先找到当前帧图像中的像素i在参考图像中对应的像素,即i+D(X),再通过公式Y=(i+D(X))/N可以计算出其在参考图像中所属的块Y,得到分块Y之后,并可以得到极性相反的运动矢量场中的运动矢量Dop(Y)。
步骤S603:根据像素的运动补偿误差和运动矢量可信度,计算所述插值帧中相应像素的权重值和加权像素值。
在具体实施中,可以采用如下的公式计算得到插值帧图像中相应像素的权重值:
w(i)=F(αe(i)+(1-α)c(i))τ (8)
其中,w(i)表示当前帧的扩展分块中像素i的权重值,α表示用于调整运动补偿误差和运动矢量可信度的权重比例系数,F(.)表示单调减函数。
这里需要指出的是,α用来调整运动补偿误差和运动矢量可信度的权重比例,其数值可以根据实际的需要进行设置。F(.)是一个单调减函数,输入越大,输出的权重越小;输入越小,输出的权重越大。
在得到当前帧中的扩展分块B中的各个像素的权重值之后,将像素的像素值与权重值进行乘法运算,便可以得到对应像素的加权像素值。
步骤S204:将第n帧图像作为当前帧图像,将当前帧图像中的N*N个不重叠的分块扩展形成N*N个扩展分块,并基于N*N个扩展分块进行后向运动补偿,得到各个扩展分块中像素的权重值和加权像素值。
在具体实施中,步骤S204的执行过程请参见步骤S203中的介绍进行执行,在此不再赘述。
这里需要指出的是,与步骤S203不同的是,步骤S204在执行图4和图6所示的步骤时,以第n帧图像fn为当前帧fc,第n-1帧图像fn-1为参考帧fr,第n帧的后向运动矢量场Db为运动矢量场D,距离当前帧的归一化距离t=1-τ。
步骤S205:根据执行所述前向运动补偿和后向运动补偿得到的像素和权重值和加权像素值,得到插值帧图像在对应像素的像素值。
在具体实施中,在分别执行前向运动补偿和后向运动补偿得到当前帧图像中N*N个扩展分块B的像素的权重值和加权像素值之后,可以将相应像素的权重值和加权像素值进行累加,即将同一像素在前向运动补偿和后向运动补偿过程中每一次有运动矢量穿过时的权重值和加权像素值进行相加,以得到插值帧图像中对应像素的权重值累加值和加权像素值累加值。
这里需要指出的是,对于当前帧中扩展分块B中的像素,在前向运动补偿和后向运动补偿时,将分别有当前分块的运动矢量穿过;而当像素扩展到相邻分块时,在前向运动补偿和后向运动补偿时,还会有相邻分块的运动矢量穿过。
在具体实施中,在得到插值帧图像中对应像素的权重值累加值和加权像素值累加值之后,可以采用如下的公式计算得到插值帧图像中对应像素的像素值:
fi(i)=p_sum/w_sum (9)
其中,fi(i)表示插值帧图像中像素i的像素值,p_sum表示像素i的加权像素值累加值,w_sum表示像素i的权重值累加值。
下面将对上述的方法对应的装置做进一步详细的介绍。
如图7所示的图像生成装置700,可以包括获取单元701、扩展单元702和生成单元703,其中:
获取单元701,适于分别获取当前图像中第n帧图像和第n-1帧图像,n为整数,n>1;
扩展单元702,适于分别将所述第n帧图像和第n-1帧图像在运动估计时划分得到的N*N个不重叠的分块进行扩展,形成N*N个扩展分块;
在具体实施中,所述扩展单元702适于分别将相邻分块与当前分块的运动矢量在对应方向上的运动矢量分量进行比较,所述相邻分块包括位于当前分块上、下、左和右的相邻分块,将位于所述当前分块左侧和上方的相邻分块作为第一类相邻分块,将位于所述当前分块右侧和下方的相邻分块作为第二类相邻分块,所述对应方向包括水平方向和垂直方向;当确定所述第一类相邻分块的运动矢量在对应方向上的运动矢量分量小于当前分块的运动矢量在对应方向上的运动矢量分量,或者所述第二类相邻分块的运动矢量在对应方向上的运动矢量分量大于当前分块的运动矢量在对应方向上的运动矢量分量时,计算运动补偿之后的所述相邻分块与当前分块在对应方向上的距离;将计算得到的运动补偿之后的所述相邻分块与当前分块在对应方向上的距离的一半与当前分块的宽度的一半进行比较,取二者中较小者作为对应方向上的扩展宽度,对当前分块进行扩展得到对应的扩展分块。
生成单元703,适于基于当前帧图像中的所述N*N个扩展分块分别进行前向运动补偿和后向运动补偿,生成位于第n帧图像和第n-1帧图像之间的插值帧图像;其中,在进行所述前向运动补偿时,所述n-1帧图像为当前帧图像,所述第n帧图像为参考帧图像;在进行所述后向运动补偿时,所述n帧图像为当前帧图像,所述第n-1帧图像为参考帧图像。
在具体实施中,所述生成单元703适于计算当前帧图像中的N*N个扩展分块中像素的运动补偿误差和运动矢量可信度,所述运动矢量可信度用于衡量像素运动估计的准确性;根据当前帧图像中的N*N的扩展分块中像素的运动补偿误差和运动矢量可信度,计算当前帧的扩展分块中像素的权重值和加 权像素值;获取像素在每一次有运动矢量穿过时的权重值和加权像素值;将所述像素在每一次有运动矢量穿过时的权重值和加权像素值分别进行相加,得到所述像素的权重值累加值和加权像素值累加值;将所述像素的加权像素值累加值除以权重值累加值得到的商,作为所述插值帧图像中对应像素的像素值。
在具体实施中,所述生成单元703适于采用如下的公式计算当前帧图像中的N*N个扩展分块中像素的运动补偿误差,包括:
e(i)=|fc(i)-fr(i+D(X))|,其中,e(i)表示像素i的运动补偿误差,fc(i)表示当前帧中的像素i的像素值,D(X)表示所述扩展分块对应的当前分块的运动矢量,fr(i+D(X)))表示当前帧的像素i在参考帧中对应像素的像素值。
在具体实施中,所述生成单元703适于采用如下的公式计算当前帧图像中的N*N个扩展分块中像素的运动矢量可信度:
c(i)=|D(X)-Dop(Y)|,其中,c(i)表示像素i的运动矢量可信度,D(X)表示所述扩展分块对应的当前分块的运动矢量,Y表示当前帧中的像素i在参考图像中对应的像素所在的分块,Dop(Y)表示分块Y在极性相反的运动矢量场中的运动矢量。
在具体实施中,所述生成单元703适于采用如下的公式根据当前帧图像中的N*N的扩展分块中像素的运动补偿误差和运动矢量可信度,计算当前帧的扩展分块中像素的权重值:
w(i)=F(αe(i)+(1-α)c(i))τ,其中,w(i)表示当前帧的扩展分块中像素i的权重值,α表示用于调整运动补偿误差和运动矢量可信度的权重比例系数,F(.)表示单调减函数,τ表示所述插值帧图像在时间上距离所述第n-1帧图像的归一化距离,且0<τ<1。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例的方法及系统做了详细的介绍,本发明并不限于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。