一种重建视频图像的方法及装置与流程

文档序号:11628800阅读:165来源:国知局
一种重建视频图像的方法及装置与流程

本发明涉及图像处理技术领域,尤其涉及一种重建视频图像的方法及装置。



背景技术:

在视频处理领域,由于自然物体运动时的连续性,相邻的两帧画面之间的宏块的运动矢量的基本单位并不是整数像素,例如,运动矢量的基本单位可能是1/4像素或1/8像素,若采用整数像素的运动矢量对视频进行编码,存在运动矢量精度低的问题,严重影响视频图像的质量。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种重建视频图像的方法及装置。

本发明实施例提供一种重建视频图像的方法,所述方法包括:

从包含若干视频图像的目标视频中,确定出一帧待处理的目标视频图像;

根据视频图像与播放时间的对应关系,确定出所述目标视频图像的参考视频图像;

获取所述参考视频图像相对于所述目标视频图像的半像素帧图像;

将所述目标视频图像相对于所述半像素帧图像的运动矢量的第一代价值,与所述目标视频图像相对于所述参考视频图像的运动矢量的第二代价值进行比较,获得比较结果;

根据所述比较结果,利用所述半像素帧图像获取1/4像素帧图像;

将所述1/4像素帧图像相对于所述目标视频图像的运动矢量的代价值作为目标运动矢量;

利用所述目标运动矢量重建所述目标视频图像。

优选的,所述根据视频图像与播放时间的对应关系,确定出所述目标视频图像的参考视频图像,包括:

根据视频图像与播放时间的对应关系,将所述目标视频图像的前一帧视频图像确定为所述参考视频图像;和/或

根据视频图像与播放时间的对应关系,将所述目标视频图像的后一帧视频图像确定为所述参考视频图像。

优选的,所述根据所述比较结果,利用所述半像素帧图像获取1/4像素帧图像,包括:

当所述比较结果为所述第一代价值小于所述第二代价值时,获取所述半像素帧图像相对于所述目标视频图像的第一1/4像素帧图像;

当所述比较结果为所述第一代价值大于或等于所述第二代价值时,获取所述参考视频图像相对于所述半像素帧图像的第二1/4像素帧图像;。

优选的,所述获取所述参考视频图像相对于所述目标视频图像的半像素帧图像,包括:

分别获取所述参考视频图像在各行和各列中相对于所述目标视频图像的半像素点;

根据获取到的所有半像素点获得所述半像素帧图像。

优选的,获取所述参考视频图像在某行或某列中相对于所述目标视频图像的半像素点,包括:

在所述参考视频图像中某行或某列所对应的所有像素点中,提取出位于该行或该列的1/2位置之前的3个整数像素点以及位于1/2位置之后的3个整数像素点;

根据提取出的6个整数像素点,利用以下公式获得所述参考视频图像在该行或该列中相对于所述目标视频图像的半像素点:

b=round((e-4f+12g+12h-4i+j)/16)

其中,b为某行或某列的半像素点,e为该行或该列的第一个整数像素点,f为该行或该列的第二个整数像素点,g为该行或该列的第三个整数像素点,h为该行或该列的第四个整数像素点,i为该行或该列的第五个整数像素点,j为该行或该列的第六个整数像素点,round()为四舍五入求值函数。

优选的,当确定出的所述参考视频图像为多个时,所述利用所述目标运动矢量重建所述目标视频图像,包括:

利用分别根据各个参考视频图像获得的各个目标运动矢量,以及与各个参考视频图像对应的预设权重,重建所述目标视频图像。

基于同一发明构思,本发明实施例还提供一种重建视频图像的装置,所述装置包括:

第一确定模块,用于从包含若干视频图像的目标视频中,确定出一帧待处理的目标视频图像;

第二确定模块,用于根据视频图像与播放时间的对应关系,确定出所述目标视频图像的参考视频图像;

第一获取模块,用于获取所述参考视频图像相对于所述目标视频图像的半像素帧图像;

比较模块,用于将所述目标视频图像相对于所述半像素帧图像的运动矢量的第一代价值,与所述目标视频图像相对于所述参考视频图像的运动矢量的第二代价值进行比较,获得比较结果;

第二获取模块,用于根据所述比较结果,利用所述半像素帧图像获取1/4像素帧图像;

第三确定模块,用于将所述1/4像素帧图像相对于所述目标视频图像的运动矢量的代价值作为目标运动矢量;

重建模块,用于利用所述目标运动矢量重建所述目标视频图像。

优选的,所述第二确定模块,包括:

第一确定单元,用于根据视频图像与播放时间的对应关系,将所述目标视频图像的前一帧视频图像确定为所述参考视频图像;和/或

第二确定单元,用于根据视频图像与播放时间的对应关系,将所述目标视频图像的后一帧视频图像确定为所述参考视频图像。

优选的,所述第二获取模块,包括:

第一获取单元,用于当所述比较结果为所述第一代价值小于所述第二代价值时,获取所述半像素帧图像相对于所述目标视频图像的第一1/4像素帧图像;

第二获取单元,用于当所述比较结果为所述第一代价值大于或等于所述第二代价值时,获取所述参考视频图像相对于所述半像素帧图像的第二1/4像素帧图像。

优选的,所述第一获取模块,包括:

第三获取单元,用于分别获取所述参考视频图像在各行和各列中相对于所述目标视频图像的半像素点;

第四获取单元,用于根据获取到的所有半像素点获得所述半像素帧图像。

本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:

本发明根据视频图像与播放时间之间的对应关系,确定目标视频图像的参考视频图像,并获取参考视频图像的半像素帧图像,接着根据目标视频图像相对于半像素帧图像的运动矢量的第一代价值与目标视频图像相对于参考视频图像的运动矢量的第二代价值之间比较结果,获得1/4像素帧图像,最终利用1/4像素帧图像相对于目标视频图像的运动矢量的代价值作为目标运动矢量,利用目标运动矢量重建目标视频图像,由于通过上述方法得到的运动矢量准确度高,因此能够提高视频图像的质量,还能够提高编码效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考图形表示相同的部件。在附图中:

图1示出了本发明实施例中的一种重建视频图像的方法的流程图;

图2示出了本发明实施例中的半像素内插示意图;

图3示出了本发明实施例中的1/4像素内插示意图;

图4示出了本发明实施例中的1/8像素内插示意图;

图5示出了本发明实施例中的一种重建视频图像的装置的结构图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供一种重建视频图像的方法,如图1所示,所述方法包括:

步骤101:从包含若干视频图像的目标视频中,确定出一帧待处理的目标视频图像。

步骤102:根据视频图像与播放时间的对应关系,确定出所述目标视频图像的参考视频图像。

具体来讲,在确定出目标视频图像之后,可以将目标视频图像的前一帧视频图像确定为参考视频图像,也可以将目标视频图像的后一帧视频图像确定为参考视频图像。

步骤103:获取所述参考视频图像相对于所述目标视频图像的半像素帧图像。

步骤104:将所述目标视频图像相对于所述半像素帧图像的运动矢量的第一代价值,与所述目标视频图像相对于所述参考视频图像的运动矢量的第二代价值进行比较,获得比较结果。

步骤105:根据所述比较结果,利用所述半像素帧图像获取1/4像素帧图像。

步骤106:将所述1/4像素帧图像相对于所述目标视频图像的运动矢量的代价值作为目标运动矢量。

步骤107:利用所述目标运动矢量重建所述目标视频图像。

具体来讲,对于视频图像的分割,帧间编码宏块的每个分割块或者子宏块都是根据参考视频图像某一相同尺寸区域预测而得的,两者之间的差异(mv)对亮度成分采用1/4像素精度,色度采用1/8像素精度。亚像素位置的亮度和色度像素并不存在于参考视频图像中,需利用邻近已编码点进行内插而得,如图2所示,目标视频图像的4×4块通过邻近参考视频图像相应区域预测,如果mv的垂直和水平分量为整数,参考视频块相应像素实际存在,如果其中一个或两个为分数,预测像素通过参考视频图像中相应像素内插获得。

在本申请中,首先获取半像素帧图像,具体地,可以分别获取所述参考视频图像在各行和各列中相对于所述目标视频图像的半像素点,根据获取到的所有半像素点获得所述半像素帧图像。对于获取所述参考视频图像在某行或某列中相对于所述目标视频图像的半像素点而言,包括以下步骤:在所述参考视频图像中某行或某列所对应的所有像素点中,提取出位于该行或该列的1/2位置之前的3个整数像素点以及位于1/2位置之后的3个整数像素点,根据提取出的6个整数像素点,获得参考视频图像在该行或该列中相对于目标视频图像的半像素点,具体可以采用以下公式:

b=round((e-4f+12g+12h-4i+j)/16)

其中,b为某行或某列的半像素点,e为该行或该列的第一个整数像素点,f为该行或该列的第二个整数像素点,g为该行或该列的第三个整数像素点,h为该行或该列的第四个整数像素点,i为该行或该列的第五个整数像素点,j为该行或该列的第六个整数像素点,round()为四舍五入求值函数。本申请通过上述公式提高了运算效率。

例如,针对图2举例而言,半像素点(如b,h,m)通过对相应整像素点进行6抽头滤波得出,如,b可以由e、f、g、h、i和j得出,h可以由a、c、g、m、r和t得出。另外,若邻近(垂直或水平方向)整像素点的所有像素都计算出,剩余的半像素点便可以通过对6个垂直或水平方向的半像素点滤波而得。例如,j由cc,dd,h,m,ee,ff滤波得出。再获得半像素点之后,1/4像素点可以通过线性内插得到,如图3所示,1/4像素点(如a,c,i,k,d,f,n,q)可以采用以下公式获得:

a=round((g+b)/2)

剩余1/4像素点(p,r)由一对对角半像素点线性内插得出,如e由b和h获得。相应地,色度像素需要1/8精度地mv,也同样通过整像素线性内插得出,如图4所示,其中:

a=round([8-dx)·(8-dy)a+dx·(8-dy)b+(8-dx)·dyc+dx·dyd]/64)

当dx=2,dy=3时,公式变形如下:

a=round(30a+10b+18c+6d/64]

在实际应用中,可以采用以下函数进行实现:

其中,半像素差值函数如下:

其中,dsth:水平半像素(输出,dstc:中间半像素(输出),dstv:垂直半像素(输出),src:要处理的像素子块(输入),stride:图像帧宽度,width,height:像素块宽度和高度(输入),buf:缓存地址。如图2所示,m由b、d、h、n、s、u计算得出,h由a、c、g、m、r、t计算得出,s由k、l、m、n、p、q计算得出,j由cc、dd、h、m、ee、ff计算。需要说明的是,由于采用上述方法计算j点的运算量比较大,因为cc、dd、ee、ff可以通过半像素内插方法进行计算。

下面给出对应上述函数实现过程的流程解释:首先,遍历像素块中的像素高度,接着,遍历像素宽度通过tapfilter宏计算垂直半像素值,#definetapfilter(pix,d)((pix)[x-2*d]+(pix)[x+3*d]-5*((pix)[x-d]+(pix)[x+2*d])+20*((pix)[x]+(pix)[x+d])),pix为像素地址,d为像素偏移,当计算垂直半像素是d为stride,当计算水平半像素是d为1,然后,遍历像素宽度通过tapfilter宏计算水平半像素,再遍历像素宽度通过tapfilter计算中间半像素,最终dsth,dstv,dstc,src累加stride。

由于线性内插是由上诉介绍的半像素计算而得,而且是在获取亚像素中实现的,下面介绍获取亚像素的函数实现方式:

其中,dst输出的亚像素(输出),i_dst_stride亚像素宽度(输入),src半像素数组(整数,垂直,水平,中间),i_src_stride半像素宽度(输入),mvx,mvy:运动矢量(输入),weight加权值。

staticconstuint8_thpel_ref0[16]={0,1,1,1,0,1,1,1,2,3,3,3,0,1,1,1};

staticconstuint8_thpel_ref1[16]={0,0,0,0,2,2,3,2,2,2,3,2,2,2,3,2};

其中,0,1,2,3表示整数像素,水平半像素,垂直半像素,中间半像素的索引值。

qpel_idx为hpel_ref0[],hpel_ref1[]的索引值

运动矢量(mvy,mvx)位置和qpel_idx对应关系如下

计算出来后

根据hpel_ref0,hpel_ref1索引值每一个线性内插计算过程如下:

下面给出对应上述函数实现过程的流程解释:首先,由矢量值计算qpel_idx索引值,接着,通过矢量值计算整像素偏移值offset,然后,通过索引和offset偏移值获取半像素src和src2值,再通过pixel_avg对src和src2像素子块(半像素块)计算均值并返回到dst,最后判断是否进行加权,并进行计算。

其中,均值计算函数如下:

其中,dst:输出值,i_dst_stride:输出图像宽度,src1和src2:半像素子块,i_src1_stride和i_src2_stride子块帧宽度,i_width和i_height:半像素子块宽高。通过遍历半像素子块宽高,计算每个像素值的均值。

进一步,在本申请中,步骤105具体包括:

当所述比较结果为所述第一代价值小于所述第二代价值时,获取所述半像素帧图像相对于所述目标视频图像的第一1/4像素帧图像。

当所述比较结果为所述第一代价值大于或等于所述第二代价值时,获取所述参考视频图像相对于所述半像素帧图像的第二1/4像素帧图像。

其中,本申请根据代价值最小的图像获取1/4像素帧图像,例如,当半像素帧图像的运动矢量的代价值最小时,获取半像素帧图像相对于目标视频图像的第一1/4像素帧图像,也即参考视频图像相对于目标视频图像的3/4像素帧图像,当参考视频图像的运动矢量的代价值最小时,获取参考视频图像相对于半像素帧图像的第二1/4像素帧图像,也即参考视频图像相对于目标视频图像的1/4像素帧图像,当半像素帧图像和参考视频图像的运动矢量的代价值相同时,与参考视频图像的运动矢量的代价值最小时的处理过程相同。

进一步,当获取的是第一1/4像素帧图像时,步骤106为:将所述第一1/4像素帧图像相对于目标视频图像的运动矢量的代价值作为目标运动矢量。当获取的是第二1/4像素帧图像时,步骤106为:将所述第二1/4像素帧图像相对于目标视频图像的运动矢量的代价值作为目标运动矢量。

在本申请中,当确定出的所述参考视频图像为多个时,所述利用所述目标运动矢量重建所述目标视频图像,包括:

利用分别根据各个参考视频图像获得的各个目标运动矢量,以及与各个参考视频图像对应的预设权重,重建所述目标视频图像。

例如,当将所述目标视频图像的前一帧视频图像确定为第一参考视频图像,将所述目标视频图像的后一帧视频图像确定为第二参考视频图像时,可以分别根据第一参考视频图像获得第一目标运动矢量,根据第二参考视频图像获得第二目标运动矢量,在根据第一目标运动矢量和第二目标运动矢量,以及与第一目标运动矢量对应的第一预设权重,以及与第二目标运动矢量对应的第二预设权重,重建所述目标视频图像,具体实现公式如下:

为重建后的目标视频图像,ft(x,y)为目标视频图像,αt-1为第一预设权重,αt+1为第二预设权重,(i,j)为第一参考视频图像,(i’,j’)为第二参考视频图像。

基于同一发明构思,本发明实施例还提供一种重建视频图像的装置,如图5所示,所述装置包括:

第一确定模块501,用于从包含若干视频图像的目标视频中,确定出一帧待处理的目标视频图像;

第二确定模块502,用于根据视频图像与播放时间的对应关系,确定出所述目标视频图像的参考视频图像;

第一获取模块503,用于获取所述参考视频图像相对于所述目标视频图像的半像素帧图像;

比较模块504,用于将所述目标视频图像相对于所述半像素帧图像的运动矢量的第一代价值,与所述目标视频图像相对于所述参考视频图像的运动矢量的第二代价值进行比较,获得比较结果;

第二获取模块505,用于根据所述比较结果,利用所述半像素帧图像获取1/4像素帧图像;

第三确定模块506,用于将所述1/4像素帧图像相对于所述目标视频图像的运动矢量的代价值作为目标运动矢量;

重建模块507,用于利用所述目标运动矢量重建所述目标视频图像。

优选的,第二确定模块502,包括:

第一确定单元,用于根据视频图像与播放时间的对应关系,将所述目标视频图像的前一帧视频图像确定为所述参考视频图像;和/或

第二确定单元,用于根据视频图像与播放时间的对应关系,将所述目标视频图像的后一帧视频图像确定为所述参考视频图像。

优选的,第二获取模块505,包括:

第一获取单元,用于当所述比较结果为所述第一代价值小于所述第二代价值时,获取所述半像素帧图像相对于所述目标视频图像的第一1/4像素帧图像;

第二获取单元,用于当所述比较结果为所述第一代价值大于或等于所述第二代价值时,获取所述参考视频图像相对于所述半像素帧图像的第二1/4像素帧图像。

优选的,第一获取模块503,包括:

第三获取单元,用于分别获取所述参考视频图像在各行和各列中相对于所述目标视频图像的半像素点;

第四获取单元,用于根据获取到的所有半像素点获得所述半像素帧图像。

上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:

本发明根据视频图像与播放时间之间的对应关系,确定目标视频图像的参考视频图像,并获取参考视频图像的半像素帧图像,接着根据目标视频图像相对于半像素帧图像的运动矢量的第一代价值与目标视频图像相对于参考视频图像的运动矢量的第二代价值之间比较结果,获得1/4像素帧图像,最终利用1/4像素帧图像相对于目标视频图像的运动矢量的代价值作为目标运动矢量,利用目标运动矢量重建目标视频图像,由于通过上述方法得到的运动矢量准确度高,因此能够提高视频图像的质量,还能够提高编码效率。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的重建视频图像的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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