图像帧数据的运动估计方法、装置与流程

文档序号:16815724发布日期:2019-02-10 14:28阅读:262来源:国知局
图像帧数据的运动估计方法、装置与流程

本申请涉及计算机技术领域,特别是涉及一种图像帧数据的运动估计方法、装置、计算机设备和存储介质。



背景技术:

avc(advancedvideocoding)是国际电信联盟的视频编码专家组和国际标准化组织的运动图像专家共同组成的联合视频组(jvt,jointvideoteam)联合推出的,致力于提高压缩比的视频编解码标准。

基于avc的视频编码器,主要由帧内预测和帧间预测以及其他模块组成。帧间预测主要是利用视频的时间相关性,基于块的运动补偿技术。其主要原理是为当前图像的每个像素块在之前一帧的编码图像中寻找一个最佳匹配块,作参考值,然后将二者的差值进行传输,这样就大大减少了视频传输过程所需的带宽。

常用的寻找最佳匹配块的方法有菱形搜索法、三步法和全搜索等。由于自然界物体运动的连续性,因此相邻两个图像之间物体的运动不一定是以整像素点为基本单位的,可能是1/2像素点,1/4像素点或者1/8像素点。1/4像素精度相比1/2像素精度的编码效率有显著提升,而1/8像素精度相比1/4像素精度却提升不大,所以avc标准都是用1/4像素精度做参考值。在寻找到最佳整像素匹配块之后,要进行六抽头滤波得到水平1/2像素点、垂直1/2像素点和对角1/2像素点,再通过平均得到1/4亚像素点。而avc标准指出不同位置的1/4像素点是由不同的整像素点、垂直1/2像素点、水平1/2像素点或者对角1/2像素点,四个中选择两个进行平均得到的。由于最佳匹配块的大小为16x16个像素,包含256个像素点,体量很大,很耗费硬件的逻辑资源。由于上述原因,1/4亚像素点的内插降低了芯片处理能力,增加处理时间。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高芯片处理能力,减少处理时间的图像帧数据的运动估计方法、装置、计算机设备和存储介质。

一种图像帧数据的运动估计方法,所述方法包括:

获取图像帧数据;

确定所述图像帧数据中的最佳像素点;

建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

在其中一个实施例中,所述方法还包括:

依据所述最佳匹配块针对所述图像帧数据进行编码。

在其中一个实施例中,所述确定所述图像帧数据中的最佳像素点,包括:

通过搜索窗对所述图像帧数据进行搜索,获得最佳像素点。

在其中一个实施例中,所述依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息,包括:

提取出所述1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;

将所述横坐标信息及纵坐标信息分别转换为二进制数据;

根据所述二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

在其中一个实施例中,所述依据所述特定像素点的坐标信息确定该特定像素点的类型信息,包括:

将每个特定像素点的坐标信息转换为该特定像素点的二进制数据;

根据所述特定像素点的二进制数据确定该特定像素点的类型信息。

在其中一个实施例中,所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点;所述根据某个所述特定像素点的二进制数据确定该特定像素点的类型信息,包括:

当某个特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;

当某个特定像素点的二进制数据符合第二预设条件时,将该特定像素点确定为垂直1/2像素点;

当某个特定像素点的二进制数据符合第三预设条件时,将该特定像素点确定为水平1/2像素点;

当某个特定像素点的二进制数据符合第四预设条件时,将该特定像素点确定为对角1/2像素点。

在其中一个实施例中,所述依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值,包括:

根据所述特定像素点的类型信息确定不同的特定像素点的组合方式;

获取该组合方式下特定像素点的坐标信息对应的颜色值;

通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

一种图像帧数据的运动估计装置,所述装置包括:

图像帧数据获取模块,用于获取图像帧数据;

最佳像素点确定模块,用于确定所述图像帧数据中的最佳像素点;

坐标信息获得模块,用于建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

坐标信息确定模块,用于依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

类型信息确定模块,用于依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

颜色值获取模块,用于依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

最佳匹配块确定模块,用于依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取图像帧数据;

确定所述图像帧数据中的最佳像素点;

建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取图像帧数据;

确定所述图像帧数据中的最佳像素点;

建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

上述图像帧数据的运动估计方法、装置、计算机设备和存储介质,通过获取图像帧数据;确定所述图像帧数据中的最佳像素点;建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;依据所述特定像素点的坐标信息确定该特定像素点的类型信息;依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块;任意的最佳像素点熊能够容易、迅速地得到其1/4像素点,节省硬件资源,减少处理时间,大大降低了提取1/4亚像素点的复杂度,实现高清视频的实时编解码。

附图说明

图1是一个实施例的一种图像帧数据的运动估计方法的应用环境图;

图2是一个实施例的一种图像帧数据的运动估计方法的流程示意图;

图3是一个实施例的一种4x4的块的示意图;

图4是另一个实施例的一种4x4的块的示意图;

图5是一个实施例的一种图像帧数据的运动估计装置的结构框图;

图6是一个实施例的一种计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的图像帧数据的运动估计方法,可以应用于如图1所示的应用环境中。其中,视频编码器102通过网络与视频解码器104进行通信。

在一个实施例中,如图2所示,提供了一种图像帧数据的运动估计方法,应用于图1中的视频编码器102,包括以下步骤:

步骤s201,获取图像帧数据;

本实施例中,该视频编码器可以获取到某一图像帧数据,需要说明的是,该视频编码器可以从视频采集设备中获取到完整的视频数据,该视频数据可以包括多张图像帧数据;该视频编码器可以提取出该视频数据中的每一张图像帧数据。

在每张图像帧数据中包含多个像素点,在avc标准中,每个长度方向为4个像素点及宽度方向为4个像素点的正方形区域为块,以块为单位对某张图像帧进行划分。

步骤s202,确定所述图像帧数据中的最佳像素点;

进一步应用到本实施例中,该视频编码器可以确定该图像帧数据中的最佳像素点;需要说明的是,在本实施例中,可以通过多种方式确定该图像帧数据中的最佳像素点,举例而言,该视频编码器可以通过全搜索法得图像帧数据中的最佳像素点。

步骤s203,建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

进一步应用到本实施例中,该视频编码器可以基于该最佳像素点建立坐标系,具体地,可以以该最佳像素点为中心,划分出一个4x4的块,建立该最佳像素点对应的块的坐标系,建立该坐标系后,即可获得每个像素点的坐标信息;该像素点可以包括特定像素点;所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点。

在该坐标系中,还可以建立1/4亚像素点的坐标,获取该1/4亚像素点的坐标信息,需要说明的是,该1/4亚像素点位于所述1/2像素点、整像素点之间,即在该4x4的块的每一行及每一列之间插入相应数量的1/4亚像素点。

参照图3,提供了本实施例的一种4x4的块的示意图;如图3所示,黑色圆形表示整像素点,白色多边形表示1/2像素点,而整像素点与1/2像素点之间的灰色圆为1/4亚像素点,每个像素点都有对应的坐标信息,举例而言,该左上角第一个整像素点的坐标信息为00,即该整像素点的坐标信息中的横坐标为0,纵坐标信息也为0;

而与该整像素点相邻的1/2像素点的坐标信息为20,即该1/2像素点的坐标信息中的横坐标为2,纵坐标信息为0;

再如,该整像素点及与其相邻的1/2像素点之间还设置有一个1/4亚像素点,该1/4亚像素点的坐标信息为10,即该1/4亚像素点的坐标信息中的横坐标为1,纵坐标信息为0。

进一步地,因为该坐标系是以最佳像素点为中心而建立的,即该最佳像素点的坐标信息为44,横坐标为4,纵坐标信息为4。需要说明的是,图3中的坐标信息为80-88的像素点为另一个4x4的块的像素点,及坐标信息为08-88的像素点为另一个4x4的块的像素点。

这样,该视频编码器可以获取到该最佳像素点对应的块中的所有1/4亚像素点的坐标信息。

步骤s204,依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

实际应用到本实施例中,该视频编码器还可以根据该1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;该对应的特定像素点是指可以将其像素值平均后得到1/4亚像素点的像素值的像素点。

在avc标准中,1/4亚像素点可以由每两个相对的1/2像素点或整像素点计算平均值得到的,如坐标信息为10的1/4亚像素点可以由坐标信息为20的1/2像素点及坐标信息为00的整像素点计算平均值得到的,即该视频编码器可以根据1/4亚像素点的坐标信息按照预置规则计算得到该其对应的1/2像素点或整像素点的坐标信息。

步骤s205,依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

进一步应用到本实施例中,该视频编码器可以依据所述特定像素点的坐标信息确定该特定像素点的类型信息;在该特定像素点的坐标信息确定之后,可以根据其坐标信息确定该特定像素点的类型信息。

该类型信息可以包括整像素点、垂直1/2像素点、水平1/2像素点和对角1/2像素点;即该特定像素点的种类可以包括整像素点、垂直1/2像素点、水平1/2像素点和对角1/2像素点,在该坐标系中,该特定像素点的坐标信息可以符合某个预设条件时,可以将该特定像素点确定为相应类型的像素点。

步骤s206,依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

具体实现中,该视频编码器可以根据特定像素点的类型信息及特定像素点的坐标信息获取到1/4亚像素点的颜色值;具体地,当该特定像素点的类型信息及特定像素点的坐标信息确定时,可以从内存中读取到相应的两个特定像素点的颜色值,根据两个特定像素点的像素值计算出该1/4亚像素点的颜色值。

步骤s207,依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

实际应用到本实施例中,获得该1/4亚像素点对应的宏块,计算其与参考帧的宏块之间的代价,确定代价最小的宏块为最佳匹配块,找到各种分块结构代价最小的最佳匹配块,从而根据最佳匹配块和当前块的位置,得到运动矢量,完成视频数据的图像帧数据的运动估计过程,编码运动矢量的实际值与预测值的差值,此外,该视频编码器还可以进行其他的编码操作,将编码后的数据传输至视频解码器,视频解码器针对所述编码后的数据进行解码操作,获得对应的视频数据,本实施对其他的编码步骤不作具体地限制。

根据本实施例提供的图像帧数据的运动估计方法,通过获取图像帧数据;确定所述图像帧数据中的最佳像素点;建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;依据所述特定像素点的坐标信息确定该特定像素点的类型信息;依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块;任意的最佳像素点熊能够容易、迅速地得到其1/4像素点,节省硬件资源,减少处理时间,大大降低了提取1/4亚像素点的复杂度,实现高清视频的实时编解码。

在另一个实施例中,所述方法还包括:依据所述最佳匹配块针对所述图像帧数据进行编码。

具体而言,该视频编码器根据最佳匹配块和和当前块的位置,得到运动矢量,视频编码器编码运动矢量的实际值与预测值的差值,再将编码后的数据传输至视频解码器,视频解码器通过运动矢量和运动残差(参考块和当前块的像素差值)就可以还原图像帧数据。该最佳匹配块需要使得预测块与当前块的运动残差尽量小,这样就保证编码的代价尽量小。

在另一个实施例中,所述步骤s202包括:通过搜索窗对所述图像帧数据进行搜索,获得最佳像素点。

进一步应用到本实施例中,该视频编码器通过全搜索法对所述图像帧数据进行搜索,获得最佳像素点,具体而言,建立限定的搜索窗,在搜索窗内对所述图像帧数据进行搜索,获得最佳像素点。

在另一个实施例中,所述步骤s204包括:提取出所述1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;将所述横坐标信息及纵坐标信息分别转换为二进制数据;根据所述二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

进一步应用到本实施例中,该视频编码器可以提取出该1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;再将其分别转换为二进制数据,再按照预置规则由该二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

需要说明的是,还可以将该横坐标信息及纵坐标信息分别转换其他数制,如八进制、十六进制等,本实施例对此不作具体地限制;此外,上述的预置规则可以包括能够得出任意1/4亚像素点是由与其相邻的哪两个特定像素点的像素值平均得到的规则,即根据该1/4亚像素点的坐标信息可以推导出符合avc标准的组合的与其相邻的某两个特定像素点的坐标信息。

需要说明的是,所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点;;因为在avc标准中,不同位置的1/4亚像素点是由不同的整像素点、垂直1/2像素点、水平1/2像素点或者对角1/2像素点,四个中选择两个平均计算得到的。

在另一个实施例中,所述步骤s205包括:将每个特定像素点的坐标信息转换为该特定像素点的二进制数据;根据所述特定像素点的二进制数据确定该特定像素点的类型信息。

具体应用到本实施例中,该视频编码器可以将每个特定像素点的坐标信息转换为该特定像素点的二进制数据,根据该特定像素点的二进制数据确定该特定像素点的类型信息。

举例而言,该特定像素点在坐标系中的坐标信息符合某个预设条件时,则可以确定该特定像素点的类型信息,即确定该特定像素点为整像素点、垂直1/2像素点、水平1/2像素点或对角1/2像素点。

在另一个实施例中,所述特定像素点可以包括整像素点、垂直1/2像素点、水平1/2像素点和对角1/2像素点;所述根据所述特定像素点的二进制数据确定该特定像素点的类型信息,包括:

当某个特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;

当某个特定像素点的二进制数据符合第二预设条件时,将该特定像素点确定为垂直1/2像素点;

当某个特定像素点的二进制数据符合第三预设条件时,将该特定像素点确定为水平1/2像素点;

当某个特定像素点的二进制数据符合第四预设条件时,将该特定像素点确定为对角1/2像素点。

具体而言,在本实施例中,特定像素点的类型信息与是否符合相应的预设条件有对应关系,如,当特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;举例而言,该第一预设条件可以包括坐标信息中横纵坐标的二进制数据的第0位和第1位都是0,可以参照图3中的黑色圆形所代表的整像素点的坐标信息,其对应的二进制数据都符合第一预设条件,本实施例对上述的第一预设条件、第二预设条件、第三预设条件及第四预设条件不作限制。

在另一个实施例中,所述步骤s206包括:根据所述特定像素点的类型信息确定不同的特定像素点的组合方式;获取该组合方式下特定像素点的坐标信息对应的颜色值;通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

实际应用到本实施例中,该视频编码器确定该特定像素点的类型信息后,可以根据类型信息确定该特定像素点的组合方式,即确定1/4亚像素点的颜色值是由哪两种特定像素点的颜色值所平均得到的,获取到该组合方式下特定像素点的坐标信息对应的颜色值;通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

为了使本领域技术人员更好地理解本实施例,以下通过一个具体示例进行说明:

参照图4,提供了本实施例的另一种4x4的块的示意图;如图4所示,黑色圆形表示整像素点,白色多边形表示1/2像素点(包括正方形表示的垂直1/2像素点、三角形表示的水平1/2像素点及六边形表示的对角1/2像素点),而整像素点与1/2像素点之间的灰色圆形为1/4亚像素点,每个像素点都有对应的编号信息,如第一行第一列的黑色圆形表示整像素点,编号信息为0,而第一行第二列的灰色圆形表示1/4亚像素点,编号信息同样为0,而第一行第四列的灰色圆形表示1/4亚像素点,编号信息为1,第一行第七列的白色多边形表示1/2像素点,编号信息为1。

如图4所示,根据avc标准规定:1/4亚像素点5(5是图4中的亚像素点的编号信息)的颜色值是由垂直1/2像素点0和水平1/2像素点0的颜色值平均得到;1/4亚像素点13的颜色值是由垂直1/2像素点0和对角1/2像素点0的颜色值平均得到;1/4亚像素点18的颜色值是由垂直1/2像素点0和水平1/2像素点2的颜色值平均得到;1/4亚像素点26的颜色值是由整像素点3和水平1/2像素点2的颜色值平均得到;1/4亚像素点6的颜色值是由水平1/2像素点0和对角1/2像素点0的颜色值平均得到。

为了降低设计的复杂度,建立如图3所示的坐标系,图3中的坐标系的间隔为1,角码分别为x坐标和y坐标。即最佳整像素点的坐标可以为(4,4),坐标系的四个顶点整像素点0的坐标为(0,0)、整像素点2的坐标为(8,0)、整像素点6的坐标为(0,8)、整像素点8的坐标为(8,8),故图3中的任意一点坐标都可以通过四位二进制数来表示x(横坐标)和y(纵坐标)组成的坐标(x,y),由该图3可知:

所有的整像素点坐标都满足:x坐标的二进制数据的第1位及第0位为:00且y坐标的二进制数据的第1位及第0位为:00,即x的第0位和第1位都是0,且y的第0位和第1位也都是0;----(1)

所有的垂直1/2像素点的坐标都满足:x坐标的二进制数据的第1位及第0位为:00且y坐标的二进制数据的第1位及第0位为:10,即x的第0位和第1位都是0,且y的第1位为1,第0位为0;----(2)

所有的水平1/2像素点坐标都满足:x坐标的二进制数据的第1位及第0位为:10且y坐标的二进制数据的第1位及第0位为:00,即x的第1位为1,第0位为0,且y的第0位和第1位都是0;----(3)

所有的对角1/2像素点坐标都满足:x坐标的二进制数据的第1位及第0位为:10且y坐标的二进制数据的第1位及第0位为:10,即x和y的第1位为1,且x和y的第0位为0;----(4)

根据avc标准,任意1/4亚像素点c,是不同的整像素点、垂直1/2像素点、水平1/2像素点或者对角1/2像素点的组合通过式(5)得到的,组合方式可能有:a、b为整像素点和垂直1/2像素点,a、b为整像素点和水平1/2像素点,a、b为垂直1/2像素点和水平1/2像素点,a、b为垂直1/2像素点和对角1/2像素点,a、b为水平1/2像素点和对角1/2像素点。总计5种组合方式。不同位置的1/4像素点是不同的组合方式。

c=(a+b+1)/2----(5)

图4中的1/4亚像素点4,可以是由整像素点1和垂直1/2像素点1通过式(5)得到。

图4中的1/4亚像素点0,可以是由整像素点0和水平1/2像素点0通过式(5)得到。

图4中的1/4亚像素点5,可以是由垂直1/2像素点0和水平1/2像素点0通过式(5)得到。

图4中的1/4像素点13,可以是由垂直1/2像素点0和对角1/2像素点0通过式(5)得到。

图4中的1/4像素点6,可以是由水平1/2像素点0和对角1/2像素点0通过式(5)得到。

......

通过如图3所示的坐标系,可以快速得出任意1/4亚像素点c是由哪两个点特定像素点a(x0,y0),特定像素点b(x1,y1)平均得到的。其中(x0,y0)和(x1,y1)是由下面的条件判断的,(x,y)是该1/4像素点的坐标:

x0=x-a----(6)

y0=y-b----(7)

x1=x+a----(8)

y1=y+b----(9)

c=(x[1]==y[1])&x[0]----(10)

a=c?4’hf:(x[0]?4’h1:4’h0)----(11)

b=y[0]?4’h1:4’h0----(12)

式(10)表示当x的第1位和y的第1位相等,且x的第0位为1时,c等于1,其他情况下都为0;

式(11)表示当c为1时,a等于-1,当c等于0且x的第0位为1时,a等于1,其他情况下都为0;

式(12)表示当y的第0位为1时,b等于1,其他情况下,b都等于0;

因此,由式(6)(7)(8)(9)(10)(11)(12)组成的预置规则可以得出的特定像素点a(x0,y0)和特定像素点b(x1,y1)的坐标。

当a符合预设条件(1)(即第一预设条件)时,a点就是整像素点;当b符合预设条件(1)(即第一预设条件)时,b点就是整像素点;

当a符合预设条件(2)(即第二预设条件)时,a就是垂直1/2像素点;当b符合预设条件(2)(即第二预设条件)时,b就是垂直1/2像素点;

当a符合预设条件(3)(即第三预设条件)时,a就是水平1/2像素点;当b符合预设条件(3)(即第三预设条件)时,b就是水平1/2像素点;

当a符合预设条件(4)(即第四预设条件)时,a就是对角1/2像素点;当b符合预设条件(4)(即第四预设条件)时,b就是对角1/2像素点;

判断出a和b对应的像素点的类型信息后,就可以从内存中读出数据通过式(5)得到该1/4像素点的颜色值。

通过本实施例,任意的最佳像素点都是容易、迅速地得到其1/4像素点。而且非常节省硬件资源,大大降低了提取1/4像素点的复杂度,从而可以实现更高清视频的实时编解码。

举例而言,图4中的1/4像素点5,在图3中的坐标信息是(1,1)。根据公式(6)~(12)可以得出:x0为2,y0为0,x1为2,y1为2。坐标(x0,y0)满足公式(3),是水平1/2像素点。坐标(x1,y1)满足公式(2),是垂直1/2像素点,所以得到1/4像素点5的两个像素点分别为图2中坐标信息为(2,0)的水平1/2像素点,和坐标信息为(0,2)的垂直1/2像素点平均得到。

图4中的1/4像素点13,在图3中的坐标信息是(1,2)。根据公式(6)~(12)可以得出:x0为0,y0为2,x1为2,y1为0。坐标(x0,y0)满足公式(2),是垂直1/2像素点。坐标(x1,y1)满足公式(4),是对角1/2像素点,所以得到1/4像素点13的两个像素点分别为图3中坐标信息为(0,2)的垂直1/2像素点,和坐标信息为(2,2)的对角1/2像素点平均得到。

图4中的1/4像素点18,在图3中的坐标信息是(1,3)。根据公式(6)~(12)可以得出:x0为0,y0为2,x1为2,y1为4。坐标(x0,y0)满足公式(2),是垂直1/2像素点。坐标(x1,y1)满足公式(3),是水平1/2像素点,所以得到1/4像素点18的两个1/2像素点分别为图3中坐标信息为(0,2)的垂直1/2像素点,和坐标信息为(2,4)的水平1/2像素点平均得到。

应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种图像帧数据的运动估计装置,包括:图像帧数据获取模块501、最佳像素点确定模块502、坐标信息获得模块503、坐标信息确定模块504、类型信息确定模块505、颜色值获取模块506和最佳匹配块确定模块507,其中:

图像帧数据获取模块501,用于获取图像帧数据;

最佳像素点确定模块502,用于确定所述图像帧数据中的最佳像素点;

坐标信息获得模块503,用于建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

坐标信息确定模块504,用于依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

类型信息确定模块505,用于依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

颜色值获取模块506,用于依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

最佳匹配块确定模块507,用于依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

在一个实施例中,所述装置还包括:

编码模块,用于依据所述最佳匹配块针对所述图像帧数据进行编码。

在一个实施例中,所述确定所述图像帧数据中的最佳像素点,包括:

最佳像素点获得子模块,用于通过搜索窗对所述图像帧数据进行搜索,获得最佳像素点。

在一个实施例中,所述坐标信息确定模块包括:

提取子模块,用于提取出所述1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;

第一转换子模块,用于将所述横坐标信息及纵坐标信息分别转换为二进制数据;

计算子模块,用于根据所述二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

在一个实施例中,所述类型信息确定模块包括:

第一转换子模块,用于将每个特定像素点的坐标信息转换为该特定像素点的二进制数据;

确定子模块,用于根据所述特定像素点的二进制数据确定该特定像素点的类型信息。

在一个实施例中,所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点;所述确定子模块包括:

第一确定单元,用于当某个特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;

第二确定单元,用于当某个特定像素点的二进制数据符合第二预设条件时,将该特定像素点确定为垂直1/2像素点;

第三确定单元,用于当某个特定像素点的二进制数据符合第三预设条件时,将该特定像素点确定为水平1/2像素点;

第四确定单元,用于当某个特定像素点的二进制数据符合第四预设条件时,将该特定像素点确定为对角1/2像素点。

在一个实施例中,所述颜色值获取模块包括:

组合方式确定子模块,用于根据所述特定像素点的类型信息确定不同的特定像素点的组合方式;

颜色值获取子模块,用于获取该组合方式下特定像素点的坐标信息对应的颜色值;

颜色值计算子模块,用于通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

关于图像帧数据的运动估计装置的具体限定可以参见上文中对于图像帧数据的运动估计方法的限定,在此不再赘述。上述图像帧数据的运动估计装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

上述提供的图像帧数据的运动估计装置可用于执行上述任意实施例提供的图像帧数据的运动估计方法,具备相应的功能和有益效果。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像帧数据的运动估计方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取图像帧数据;

确定所述图像帧数据中的最佳像素点;

建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

依据所述最佳匹配块针对所述图像帧数据进行编码。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过搜索窗对所述图像帧数据进行搜索,获得最佳像素点。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:提取出所述1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;

将所述横坐标信息及纵坐标信息分别转换为二进制数据;

根据所述二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将每个特定像素点的坐标信息转换为该特定像素点的二进制数据;

根据所述特定像素点的二进制数据确定该特定像素点的类型信息。

在一个实施例中,所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点;处理器执行计算机程序时还实现以下步骤:

当某个特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;

当某个特定像素点的二进制数据符合第二预设条件时,将该特定像素点确定为垂直1/2像素点;

当某个特定像素点的二进制数据符合第三预设条件时,将该特定像素点确定为水平1/2像素点;

当某个特定像素点的二进制数据符合第四预设条件时,将该特定像素点确定为对角1/2像素点。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据所述特定像素点的类型信息确定不同的特定像素点的组合方式;

获取该组合方式下特定像素点的坐标信息对应的颜色值;

通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取图像帧数据;

确定所述图像帧数据中的最佳像素点;

建立该最佳像素点对应的块的坐标系,获得1/4亚像素点的坐标信息;

依据所述1/4亚像素点的坐标信息确定对应的特定像素点的坐标信息;

依据所述特定像素点的坐标信息确定该特定像素点的类型信息;

依据所述特定像素点的类型信息及特定像素点的坐标信息获取到所述1/4亚像素点的颜色值;

依据所述1/4亚像素点的颜色值确定所述图像帧数据的最佳匹配块。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

依据所述最佳匹配块针对所述图像帧数据进行编码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

通过搜索窗对所述图像帧数据进行搜索,获得最佳像素点。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

提取出所述1/4亚像素点的坐标信息的横坐标信息及纵坐标信息;

将所述横坐标信息及纵坐标信息分别转换为二进制数据;

根据所述二进制数据计算出该1/4亚像素点对应的两个特定像素点的坐标信息。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将每个特定像素点的坐标信息转换为该特定像素点的二进制数据;

根据所述特定像素点的二进制数据确定该特定像素点的类型信息。

在一个实施例中,所述特定像素点包括整像素点及1/2像素点;所述1/2像素点包括垂直1/2像素点、水平1/2像素点和对角1/2像素点;计算机程序被处理器执行时还实现以下步骤:

当某个特定像素点的二进制数据符合第一预设条件时,将该特定像素点确定为整像素点;

当某个特定像素点的二进制数据符合第二预设条件时,将该特定像素点确定为垂直1/2像素点;

当某个特定像素点的二进制数据符合第三预设条件时,将该特定像素点确定为水平1/2像素点;

当某个特定像素点的二进制数据符合第四预设条件时,将该特定像素点确定为对角1/2像素点。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据所述特定像素点的类型信息确定不同的特定像素点的组合方式;

获取该组合方式下特定像素点的坐标信息对应的颜色值;

通过所述特定像素点的颜色值计算出1/4亚像素点的颜色值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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