图像处理方法及装置

文档序号:1478819 发布日期:2020-02-25 浏览:25次 >En<

阅读说明:本技术 图像处理方法及装置 (Image processing method and device ) 是由 赵立立 范志刚 于 2019-10-17 设计创作,主要内容包括:本公开提供一种图像处理方法及装置,涉及计算机图像技术领域,所述方法包括将当前图像帧划分为多个条带;其中,所述条带至少包含一个宏块;识别当前图像帧中的特征点,并根据所述特征点确定至少一个目标条带;确定所述至少一个目标条带的条带运动矢量,并将所述条带运动矢量作为全局运动矢量。本公开能够解决背景技术中不能保证图像压缩效果的问题。(The present disclosure provides an image processing method and apparatus, which relates to the technical field of computer images, the method comprises dividing a current image frame into a plurality of strips; wherein the slice comprises at least one macroblock; identifying feature points in a current image frame, and determining at least one target strip according to the feature points; determining a slice motion vector of the at least one target slice, and using the slice motion vector as a global motion vector. The present disclosure can solve the problem in the background art that the image compression effect cannot be guaranteed.)

图像处理方法及装置

技术领域

本公开涉及计算机图像技术领域,尤其涉及图像处理方法及装置。

背景技术

在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性,因此,可将活动图像分成若干块或宏块,并设法搜索出每个块或宏块在邻近帧图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动矢量,得到运动矢量的过程被称为运动估计。

运动矢量和经过运动匹配后得到的预测误差共同发送到解码端,在解码端按照运动矢量指明的位置,从已经解码的邻近参考帧图像中找到相应的块或宏块,和预测误差相加后就得到了块或宏块在当前帧中的位置。

背景技术中的运动估计方式基本都是以帧为单位进行处理,也就是在编码过程中,直接在编码帧中搜索相对于参考帧的运动矢量。但是,这样的处理方式的一大缺点是:处理时延大。

背景技术中也有划分条带的方式进行运动向量的识别,但是扔存在一些问题:由于针对每帧图像按照自上而下的顺序进行条带化的特征点检测和特征点的匹配,得到匹配特征点,计算各个匹配特征点的运动矢量,根据预设阈值确定出现次数最多的运动矢量中是否存在全局运动矢量,这种方式不能保证在每帧图像的第一个图像即准确判断出全局运动矢量,也就很容易发生这种情况:比如,在中间或者偏后位置才确定全局运动矢量的话,则只能根据确定的全局运动矢量对当前和后续的条带进行编码,而前面的条带由于已经处理过了,因此,并不会根据后续确定的全局运动矢量进行编码。因此,这种方式,不能保证图像压缩效果。

发明内容

本公开在上述方案基础上提出了一种改进技术方案,以期对上述问题进行至少部分改善。

所述技术方案如下:

根据本公开实施例的第一方面,提供一种图像处理方法,该方法包括:

将当前图像帧划分为多个条带;其中,所述条带至少包含一个宏块;

识别当前图像帧中的多个特征点,并根据所述多个特征点确定至少一个目标条带;

确定所述至少一个目标条带的条带运动矢量,并将所述条带运动矢量作为全局运动矢量。

在一个实施例中,根据所述特征点确定目标条带包括:

确定包含特征点数量满足第一预设条件的条带作为目标条带。

具体的,确定包含特征点数量满足第一预设条件的条带作为目标条带包括:

确定包含特征点数量最多的条带作为目标条带。

在一个实施例中,确定所述至少一个目标条带的条带运动矢量之前,所述方法还包括:

识别参考图像帧中多个特征点,并计算参考帧中多个特征点的特征值。

在一个实施例中,确定所述至少一个目标条带的条带运动矢量包括:

计算所述目标条带中各个特征点的特征值,将各个特征点的特征值与参考帧中多个特征点的特征值进行比对;

识别所述目标条带中与参考帧中的特征点存在相同特征值的特征点,将目标条带中识别出的特征点标识为目标特征点,将参考帧中特征值相同的特征点标识为匹配特征点;

计算各个目标特征点相对于所述匹配特征点的条带运动矢量;

将出现次数满足第二预设条件的条带运动矢量标识为全局运动矢量。

具体的,将出现次数最多的条带运动矢量标识为全局运动矢量。

在一个实施例中,上述方法还包括:根据所述全局运动矢量,逐条带进行宏块类型识别。

根据本公开实施例的第二方面,提供一种图像处理装置,该装置包括:

划分模块,用于将当前图像帧划分为多个条带;其中,所述条带至少包含一个宏块;

第一识别模块,用于识别当前图像帧中的多个特征点,并根据所述多个特征点确定至少一个目标条带;

确定模块,用于确定所述至少一个目标条带的条带运动矢量,并将所述条带运动矢量作为全局运动矢量。

在一个实施例中,第一识别模块具体用于:

用于识别当前图像帧中的多个特征点,确定包含特征点数量满足第一预设条件的条带作为目标条带。

具体的,确定包含特征点数量满足第一预设条件的条带作为目标条带包括:确定包含特征点数量最多的条带作为目标条带

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

第二识别模块,用于确定所述至少一个目标条带的条带运动矢量之前,识别出参考图像帧中所有特征点。

在一个实施例中,确定模块包括:

第一计算子模块,用于计算所述目标条带中各个特征点的特征值,将各个特征点的特征值与参考帧中多个特征点的特征值进行比对;

第一标识子模块,用于识别所述目标条带中与参考帧中的特征点存在相同特征值的特征点,将目标条带中识别出的特征点标识为目标特征点,将参考帧中特征值相同的特征点标识为匹配特征点;

第二计算子模块,用于计算出各个目标特征点相对于所述匹配特征点的条带运动矢量;

第二标识子模块,用于将出现次数满足第二预设条件的条带运动矢量标识为全局运动矢量。

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

第三识别模块,用于根据所述全局运动矢量,逐条带进行宏块类型识别。

本公开所提供的的运动向量检测方法,简单快捷,具有较高的准确度,且图像压缩率高。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种图像处理方法的流程图;

图2是本公开实施例提供的一种平移前和平移后的图像示意图;

图3是本公开实施例提供的一种条带划分示意图;

图4是本公开实施例提供的确定条带运动矢量流程图;

图5是本公开实施例提供的一种图像处理方法的流程图;

图6是本公开图像编解码的一种应用环境示例图;

图7是本公开实施例提供的一种图像处理装置的结构图;

图8是本公开实施例提供的一种图像处理装置的结构图;

图9是本公开实施例提供的一种图像处理装置的结构图;

图10是本公开实施例提供的一种图像处理装置的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

针对上述方案存在一些问题:由于针对每帧图像按照自上而下的顺序进行条带化的特征点检测和特征点的匹配,得到匹配特征点,计算各个匹配特征点的运动矢量,根据预设阈值确定出现次数最多的运动矢量中是否存在全局运动矢量,这种方式不能保证在每帧图像的第一个图像即准确判断出全局运动矢量,也就很容易发生这种情况:比如,在中间或者偏后位置才确定全局运动矢量的话,则只能根据确定的全局运动矢量对当前和后续的条带进行编码,而前面的条带由于已经处理过了,因此,并不会根据后续确定的全局运动矢量进行编码。因此,这种方式,不能保证好的图像压缩效果。

本公开在上述背景技术方案基础上提出了一种改进技术方案,以期对上述问题进行至少部分改善。

本公开主要针对桌面虚拟化和云桌面场景,主要用于计算机图像的运动向量识别和编解码。所谓计算机图像,简单来说就是用户操作计算机所产生的桌面图像。连续变化自然图像形成自然图像视频,而连续变化的计算机图像则形成计算机图像视频。相较于自然视频,计算机图像视频有着比较显著的特点,比如,运动矢量相对于自然视频存在一定规律性。这是由图像的产生方式决定的,由于计算机图像是由用户操作产生的,用户的操作有可能使两帧画面之间产生运动向量,也有可能不产生运动向量,如果产生运动向量,则多数是由用户的鼠标拖动操作产生的,这种情况下,运动矢量的个数通常为一个,这一个运动矢量可以被称为全局运动矢量;而自然图像视频中运动矢量则呈现出不规律性,这是因为自然视频中两帧图像之间可能有多个物体发生不同方向的位移,从而产生多个运动矢量。而本公开主要对情况相对简单的计算机图像进行研究。

图1是本公开实施例提供的一种图像处理方法的流程图,如图1所示,该图像处理方法包括以下步骤:

步骤101、将当前图像帧划分为多个条带;其中,所述条带至少包含一个宏块;

该步骤中,通过图像采集装置获取当前帧图像。

将当前图像帧划分为多个条带包括:

将当前帧图像划分为多个宏块,具体的,按照预设的宏块划分方式将当前帧图像划分为多个宏块,其中每一个宏块大小为M×N,其中,M可以等于N。具体的,每个宏块大小可以为16×16、8×8等。

该步骤中,按照预设方式将当前帧图像的多个宏块划分为多个条带,每一个条带的高度可以等于一个宏块行或者多个连续宏块行的高度。具体的,条带划分方式可以根据实际需要进行设置和调整。

通常可以将一帧图像等分为N个条带,N的个数根据需要进行设定。

图2是平移前和平移后的图像示意图。图3是对图2中右图进行条带划分后的示意图,参照图3,将原图像等分为(a)-(f)共六个条带,每一个条带的高度是两个宏块行的高度,长度则等于十七个宏块列的长度。

步骤102、识别当前图像帧中的多个特征点,并根据所述多个特征点确定至少一个目标条带;

在一个实施例中,根据所述特征点确定目标条带包括:

确定包含特征点数量满足第一预设条件的条带作为目标条带。

具体的,确定包含特征点数量满足第一预设条件的条带作为目标条带包括:确定包含特征点数量最多的条带作为目标条带。

该步骤中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。

根据单个条带中特征点数量和全局运动矢量出现概率的正相关性,将包含特征点最多的条带作为目标条带。

进一步的,上述方案还包括:

如果当前特征点数量最多的目标条带中,对特征点所计算的运动矢量中,出现次数最多的运动矢量超过一个;则继续对特征点数量次多的条带中的特征点,进行运动矢量计算,将两个条带所计算得到的运动矢量中出现次数最多的运动矢量确定为全局运动矢量。如果根据特征点最多的条带以及特征点次多的条带,所计算出的运动矢量中,出现次数最多的运动矢量仍然超多一个,则继续对剩余条带中特征点最多的条带进行计算,直到找到出现次数最多的一个运动矢量。

步骤103、确定所述至少一个目标条带的条带运动矢量,并将所述条带运动矢量作为全局运动矢量。

在一个实施例中,步骤103之前,该方法还包括:识别出当参考图像帧中多个特征点,并计算参考帧中多个特征点的特征值。

具体的,识别出当参考图像帧中所有特征点,并计算参考帧中所有特征点的特征值。

所述参考帧不仅仅指当前图像帧的前一帧,实际上可以指当前图像之前的任意一帧图像。

具体的,计算特征点的特征值的方案有很多,比如,可以根据如SIFT,FAST、MSER、STAR等特征提取算法来计算各个特征点的特征值;也可以计算特征点像素值的哈希值作为特征值。

如图4所示,确定所述至少一个目标条带的条带运动矢量包括:

1031、计算目标条带中各个特征点的特征值,将各个特征点的特征值与参考帧中所有特征点的特征值进行比对;

1032、从目标条带中找出与参考帧中的特征点存在相同特征值的特征点,将目标条带中找出的特征点标识为目标特征点,将参考帧中特征值相同的特征点标识为匹配特征点;

1033、计算出各个目标特征点相对于其匹配特征点的运动矢量;

该步骤中,各个目标特征点相对于其匹配特征点的运动矢量的表示方式为(mv_x,mv_y),其中,mv_x代表x轴(横向)上的偏移量,mv_y代表y轴(纵向)上的偏移量。

1034、将出现次数满足第二预设条件的运动矢量作为全局运动矢量。

具体的,将出现次数最多的运动矢量作为全局运动矢量

举例来说,假设目标条带中各个特征点的特征值取值包括:(mv_x1,mv_y1)、(mv_x2,mv_y2)和(mv_x3,mv_y3);其中,(mv_x1,mv_y1)出现3次、(mv_x2,mv_y2)出现8次、(mv_x3,mv_y3)98次,因此,将出现最多的运动矢量(mv_x3,mv_y3)确定为全局运动矢量。

在一个实施例中,如图5所示,该方法还包括:

步骤104、根据确定出的全局运动矢量,逐条带进行宏块类型识别。

具体的,根据上一步确定出的全局运动矢量,自上而下逐条带进行宏块类型识别。具体的识别步骤包括:

将当前条带所包含的宏块,分别与参考帧中的宏块进行逐一比对,根据比对结果进行宏块类型识别。

所述根据比对结果进行宏块类型识别具体包括:

如果当前比对宏块与参考帧中相同位置上的宏块完全相同,则确定当前比对宏块为零运动宏块;将当前比对宏块按照全局运动矢量进行反向运动(假设当前比对宏块是按照全局运动矢量运动后的宏块,所谓反向运动是指将当前比对宏块还原至发送运动之前的初始位置),确定反向运动后当前比对宏块所处的位置(即初始位置);如果参考帧中对应位置(初始位置)上的宏块与当前比对宏块相同,则确定当前比对宏块为全局运动宏块。除上述两种情况之外的其它宏块,则认为图片内容变化,可以采用其它编码规则进行编码(例如视频可以采用H.264编码)。

具体的,对比过程为将两个宏块的所有像素点的像素值逐一进行对比,当像素点完全相同时,可以确定两个宏块相同;反之,则确定两个宏块不相同。

在一个实施例中,如图5所示,该方法还包括:

步骤105、针对每一个条带,基于宏块识别结果,进行帧间编码。

该方案中,在编码过程中,按照条带顺序进行流水线处理,也就是:编码一个条带,则立即对该条带进行传输,从而降低编解码端的时延。

图6是本公开图像编解码的一种应用环境示例图,参照图6,视频信号在编码端中进行编码,之后,再通过网络传输通道传输至解码端。本领域技术人员能够理解的是,编码端位于服务器端;解码端位于接收设备之上,在云桌面场景下,接收设备可以为个人电脑、移动电话等等,在桌面虚拟化场景下,接收设备可以为零终端。接收设备的数量可以为一个或者多个,本公开对此不做限制。

图7公开了一种图像处理装置,该装置70包括划分模块701、第一识别模块702和确定模块703,其中,划分模块701,用于将当前图像帧划分为多个条带;其中,所述条带至少包含一个宏块;第一识别模块702,用于识别当前图像帧中的多个特征点,并根据所述多个特征点确定至少一个目标条带;确定模块703,用于确定所述至少一个目标条带的条带运动矢量,并将所述条带运动矢量作为全局运动矢量。

在一个实施例中,第一识别模块702具体用于:

用于识别当前图像帧中的多个特征点,确定包含特征点数量满足第一预设条件的条带作为目标条带。

具体的,确定包含特征点数量满足第一预设条件的条带作为目标条带包括:确定包含特征点数量最多的条带作为目标条带。

图8公开了一种图像处理装置,该装置80包括划分模块801、第二识别模块802、第一识别模块803和确定模块804,其中,第二识别模块802用于确定所述至少一个目标条带的条带运动矢量之前,识别出参考图像帧中所有特征点。

图9公开了一种图像处理装置,该装置90包括划分模块901、第二识别模块902、第一识别模块903和确定模块904,其中,确定模块904包括:

第一计算子模块9041,用于计算所述目标条带中各个特征点的特征值,将各个特征点的特征值与参考帧中多个特征点的特征值进行比对;

第一标识子模块9042,用于识别所述目标条带中与参考帧中的特征点存在相同特征值的特征点,将目标条带中识别出的特征点标识为目标特征点,将参考帧中特征值相同的特征点标识为匹配特征点;

第二计算子模块9043,用于计算出各个目标特征点相对于所述匹配特征点的条带运动矢量;

第二标识子模块9044,用于将出现次数满足第二预设条件的条带运动矢量标识为全局运动矢量。

图10公开了一种图像处理装置100,该装置100包括划分模块1001、第一识别模块1002、确定模块1003和第三识别模块1004,用于根据所述全局运动矢量,逐条带进行宏块类型识别。

本公开所提供的的运动向量检测方法,简单快捷,具有较高的准确度,且图像压缩率高。

在本申请中,可以将当前帧划分为多个条带,同时将各条带与当前帧进行匹配和计算偏移矢量,可以提高处理效率,加快全局运动矢量的计算速度,以满足高清视频实时传输对压缩效率的高要求。

基于上述图1对应的实施例中所描述的图像处理方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的图像处理方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:变换矩阵选择的系数相关的编码

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类