图像处理方法及装置、电子设备、存储介质与流程

文档序号:21369274发布日期:2020-07-04 04:45阅读:142来源:国知局
图像处理方法及装置、电子设备、存储介质与流程

本公开涉及电子设备中的图像更新技术,尤其涉及一种图像处理方法及装置、电子设备、存储介质。



背景技术:

目前的电子设备中,为满足用户针对屏幕响应的需求,支持60hz乃至90hz的屏幕刷新率。以60hz屏幕刷新率为例,操作系统如安卓(android)系统要求每一帧图像都需要在约16ms内绘制完成以此来保证电子设备图像显示的流畅体验。虽然目前已支持60hz乃至90hz的屏幕刷新率,但当用户开启了多个应用时,或开启了大型的应用时,当前的屏幕刷新率仍难以满足用户对显示屏显示图像的处理需求。



技术实现要素:

本公开提供一种图像处理方法及装置、电子设备、存储介质。

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

确定显示区域的脏区域,计算所述脏区域在所述显示区域的占比;

获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

根据所述相似性检测结果和所述脏区域在所述显示区域的占比,确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果,包括:

确定所述第一图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,确定所述第一二进制字符串的第一哈希值;

确定所述第二图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串,确定所述第二二进制字符串的第二哈希值;

计算所述第一哈希值和所述第二哈希值之间的汉明距离,将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述确定所述第一二进制字符串的第一哈希值包括:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,计算所述第一图像数据和所述第一图像数据中相邻像素之间的颜色强度差异值之前,所述方法还包括:

将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述方法还包括:

为所述脏区域在所述显示区域的占比设置第一权重值,为所述相似度值设置第二权重值;

所述确定是否将所述待更新显示的图像帧更新到所述显示区域,包括:

计算所述第一权重值与所述脏区域在所述显示区域的占比之间的第一乘积值,计算所述第二权重值与所述相似度值之间的第二乘积值;

计算第一乘积值和所述第二乘积值之间的和值;

将所述和值与设定阈值进行比较,所述和值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,所述和值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

可选的,所述屏蔽对所述待更新显示的图像帧的更新请求,包括:

接收到所述显示区域的动态调整vysnc信号时,拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。

根据本公开实施例的第二方面,提供一种图像处理方法,其特征在于,所述方法包括:

确定显示区域的脏区域;

获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

根据所述相似性检测结果确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果,包括:

确定所述第一图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,确定所述第一二进制字符串的第一哈希值;

确定所述第二图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串,确定所述第二二进制字符串的第二哈希值;

计算所述第一哈希值和所述第二哈希值之间的汉明距离,将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述确定所述第一二进制字符串的第一哈希值包括:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,计算所述第一图像数据和所述第一图像数据中相邻像素之间的颜色强度差异值之前,所述方法还包括:

将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述方法还包括:

将所述相似度值与设定阈值进行比较,所述相似度值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,所述相似度值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

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

第一确定单元,用于确定显示区域的脏区域;

计算单元,用于计算所述脏区域在所述显示区域的占比;

获取单元,用于获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据;

相似性检测单元,用于对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

第二确定单元,用于根据所述相似性检测结果和所述脏区域在所述显示区域的占比,确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时触发屏蔽单元;

屏蔽单元,用于屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述相似性检测单元包括:

第一确定子单元,用于确定所述第一图像数据中相邻像素之间的颜色强度差异值,以及所述第二图像数据中相邻像素之间的颜色强度差异值;

赋值子单元,用于为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,以及,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串;

第二确定子单元,用于确定所述第一二进制字符串的第一哈希值,以及所述第二二进制字符串的第二哈希值;

第一计算子单元,用于计算所述第一哈希值和所述第二哈希值之间的汉明距离;

相似性检测子单元,用于将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述第二确定子单元,还用于:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,所述装置还包括:

压缩单元,用于将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

转换单元,用于将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述装置还包括:

设置单元,用于为所述脏区域在所述显示区域的占比设置第一权重值,为所述相似度值设置第二权重值;

所述第二确定单元包括:

第二计算子单元,用于计算所述第一权重值与所述脏区域在所述显示区域的占比之间的第一乘积值,计算所述第二权重值与所述相似度值之间的第二乘积值;

第三计算子单元,用于计算第一乘积值和所述第二乘积值之间的和值;

比较子单元,用于将所述和值与设定阈值进行比较;

第三确定子单元,用于在所述和值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,在所述和值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

可选的,所述屏蔽单元包括:

接收子单元,用于接收到所述显示区域的动态调整vysnc信号;

拦截子单元,用于拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。

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

第一确定单元,用于确定显示区域的脏区域;

获取单元,用于获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据;

相似性检测单元,用于对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

第二确定单元,用于根据所述相似性检测结果确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时触发屏蔽单元;

屏蔽单元,用于屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述相似性检测单元包括:

第一确定子单元,用于确定所述第一图像数据中相邻像素之间的颜色强度差异值,以及所述第二图像数据中相邻像素之间的颜色强度差异值;

赋值子单元,用于为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,以及,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串;

第二确定子单元,用于确定所述第一二进制字符串的第一哈希值,以及所述第二二进制字符串的第二哈希值;

第一计算子单元,用于计算所述第一哈希值和所述第二哈希值之间的汉明距离;

相似性检测子单元,用于将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述第二确定子单元,还用于:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,所述装置还包括:

压缩单元,用于将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

转换单元,用于将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述第二确定单元包括:

比较子单元,用于将所述相似度值与设定阈值进行比较;

第三确定子单元,用于在所述相似度值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,在所述相似度值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

根据本公开实施例的第五方面,提供一种电子设备,其特征在于,所述电子设备包括:处理器和用于存储处理器可执行指令的存储器,其中,所述处理器被配置为在调用存储器中的可执行指令时,能够执行如上述的图像处理方法。

根据本公开实施例的第六方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述的图像处理方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

在本公开的实施例中,确定显示区域的脏区域,获取待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据,通过对待更新显示的图像帧和当前显示的图像帧的脏区域相似度检测算法来比较前后两图像帧的脏区域的相似度大小,当确定前后两图像帧的脏区域的相似度小于设定阈值时,通过拦截针对系统的图像帧更新请求vyscn信号的方式来实现显示区域的动态调帧效果,以此实现降低图形处理单元(gpu,graphicsprocessingunit)和中央处理器(cpu,centralprocessingprocessor)绘制所带来的功耗的影响,使得电子设备的显示区域刷新功耗有所降低,提升了电子设备整体的性能与续航能力。

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

附图说明

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

图1为本公开实施例示出的一种图像处理方法流程示意图一。

图2为本公开实施例示出的一种图像处理方法流程示意图二。

图3为本公开实施例示出的一种图像处理方法流程示意图三。

图4为本公开实施例示出的一种图像处理装置一的组成结构示意图。

图5为本公开实施例示出的一种图像处理装置二的组成结构示意图。

图6是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

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

本公开的实施例记载的图像处理方法,适用于安装有安卓操作系统的电子设备中,尤其是手机智能终端,游戏机等电子设备中,主要是针对电子设备帧刷新的优化处理。

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

s11、确定显示区域的脏区域(dirtyregion),计算所述脏区域在所述显示区域的占比。

在本公开的实施例的图像处理方法,应用于电子设备中。电子设备可以是手机、游戏机、可穿戴式设备、虚拟现实设备、个人数字助理、笔记本电脑、平板电脑或电视终端等。

脏区域重绘是在对每一帧绘制图形界面时,只重新绘制有变化的区域,而不是全屏刷新,因而,本公开实施例中,在响应操作系统的图像帧更新之前,先确定显示区域的脏区域,并计算出所述脏区域在所述显示区域的占比。

s12、获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果。

在本公开的实施例中,当确定出脏区域后,并不将待更新显示的图像帧的所述脏区域的第一图像数据进行合成显示给所述显示区域,而是需对待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据进行比较,及确定出二者之间的差异是否超出了设定阈值,当待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的差异超出设定阈值时,将待更新显示的图像帧的所述脏区域的图像数据更新至所述显示区域,通过屏幕进行展示,而当待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的差异未超出设定阈值时,屏蔽对所述待更新显示的图像帧的更新请求,不再将所述待更新显示的图像帧的所述脏区域的图像数据更新至所述显示区域。

在本公开的实施例中,为了提升两图像帧的所述脏区域的图像数据的相似度的比对效率,再对图像数据进行比对前,需要对脏区域的图像数据进行处理。

作为一种实现手段,将待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的分辨率压缩为设定分辨率。如可以将dirtyregion区域的图像数据压缩成9×8的小图,从而减少图像细节信息。当然,根据需要,也可以将dirtyregion区域的图像数据压缩成其他分辨率的小图,具体可根据操作系统的实际需求设定,如18×17、20×17、35×33、48×33等,图像缩小的越多,针对图像的相似性比较的处理速度越快,而相应的相似性的准确率有所下降。

作为一种实现手段,将设定分辨率的待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的彩色rgb值转换为灰度图像显示的灰度值。将缩小后的图像由彩色的rgb值转化为由0-255的整数表示的灰度,将三维比较简化为了一维比较,从而提升本公开实施例的dirtyregion区域的图像数据相似性的比较效率。

在本公开的实施例中,所述对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果,包括:确定所述第一图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,确定所述第一二进制字符串的第一哈希值;确定所述第二图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串,确定所述第二二进制字符串的第二哈希值;计算所述第一哈希值和所述第二哈希值之间的汉明距离,这里,所计算的所述第一哈希值和所述第二哈希值之间的汉明距离,即为待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像之间的汉明距离;将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

在本公开的实施例中,可以采用感知哈希算法对第一图像数据和所述第二图像数据进行相似性检测。感知哈希算法是一类算法的总称,包括平均值哈希(ahash)、感知哈希(phash)、差异值哈希(dhash)等。感知哈希不是以严格的方式计算具体的hash值,而是以更加相对的方式计算哈希值,因为相似与否是一种相对的判定。其原理是对每张图像生成一个指纹(fingerprint)字符串,即将图像按照一定的哈希算法,经过运算后得出的一组二进制数字,然后比较不同图像指纹的汉明距离,结果越接近,就说明图像越相似。汉明距离即:假如一组二进制数据为101,另外一组为111,那么把第一组的第二位数据0改成1就可以变成第二组数据111,所以两组数据的汉明距离就为1。简单点说,汉明距离就是一组二进制数据变成另一组数据所需的步骤数,显然,这个数值可以衡量两张图片的差异,汉明距离越小,则代表相似度越高。汉明距离为0,即代表两张图片完全一样。

ahash算法计算速度比较快,但是精确度相对较差。phash算法计算的精确度比较高,但是运输速度较差。dhash算法的精确度较高,且速度也非常快。因此,本公开的实施例中优选使用dhash算法对第一图像数据和所述第二图像数据进行相似性检测,确定二图像帧的脏区域的相似度值。

所述确定所述第一二进制字符串的第一哈希值包括:将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

dhash算法是基于渐变算法实现的。具体实现如下:①先将图片压缩成9*8的小图,有72个像素点;②将图片转化为灰度图;③计算差异值:dhash算法是首先确定图像帧帧的相邻像素之间的差异,左边的像素比右边的更亮,则记录为1,否则为0。这样每行9个像素之间产生了8个不同的差异值,一共8行,则产生了64个差异值,或者是32位的01字符串;④基于上述的差异值字符串,通过hash值来计算图像帧之间的汉明距离,将汉明距离作为两图像帧之间的相似度值。

在本公开的实施例中,也可以采用直方图的方式计算两图像帧之间的相似度。直方图方式是基于简单的向量相似度来对图像相似度进行度量,一般是利用颜色特征来进行度量,适合描述难以自动分割的图像。但由于其主要反映的是图像灰度值的概率分布,并没有图像的空间位置信息,信息丢失量较大,因此,容易出现误判。但作为一种实现手段,也可以采用直方图的方式计算两图像帧之间的相似度。

s13、根据所述相似性检测结果和所述脏区域在所述显示区域的占比,确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

在本公开的实施例中,为所述脏区域在所述显示区域的占比设置第一权重值,为所述相似度值设置第二权重值;

计算所述第一权重值与所述脏区域在所述显示区域的占比之间的第一乘积值,计算所述第二权重值与所述相似度值之间的第二乘积值;计算第一乘积值和所述第二乘积值之间的和值;将所述和值与设定阈值进行比较,所述和值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,所述和值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

在本公开的实施例中,屏蔽对所述待更新显示的图像帧的更新请求,包括:接收到所述显示区域的动态调整vysnc信号时,拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。以安卓(android)系统中的vysnc信号为例,android系统中的vysnc信号可以分为两种:一种是屏幕产生的硬件vysnc信号;另一种则是由surfaceflinger产生的软件vysnc信号。第一种硬件vysnc信号其本质是一种脉冲信号,它是由硬件合成(hwc,hardwarecomposer)模块,其根据屏幕刷新率产生,用来触发或者开关某些操作。第二种vysnc信号经由binder传递给choreographer。这样,电子设备的屏幕每次刷新之前就会发送一个vysnc信号通知操作系统准备刷新,之后系统再去调用cpu和gpu进行ui更新。

本公开的实施例通过确定前后两图像帧的脏区域的相似度小于设定阈值时,通过拦截针对系统的图像帧更新请求vyscn信号的方式来实现显示区域的动态调帧效果,以此实现降低gpu和cpu绘制所带来的功耗的影响,使得电子设备的显示区域刷新功耗有所降低,提升了电子设备整体的性能与续航能力。

图2为本公开实施例示出的一种图像处理方法流程示意图二,如图2所示,本公开实施例的图像处理方法包括以下步骤:

s21、确定显示区域的脏区域(dirtyregion)。

在本公开的实施例的图像处理方法,应用于电子设备中。电子设备可以是手机、游戏机、可穿戴式设备、虚拟现实设备、个人数字助理、笔记本电脑、平板电脑或电视终端等。

脏区域重绘是在对每一帧绘制图形界面时,只重新绘制有变化的区域,而不是全屏刷新,因而,本公开实施例中,在响应操作系统的图像帧更新之前,先确定显示区域的脏区域。

s22、获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果。

在本公开的实施例中,当确定出脏区域后,并不将待更新显示的图像帧的所述脏区域的第一图像数据进行合成显示给所述显示区域,而是需对待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据进行比较,及确定出二者之间的差异是否超出了设定阈值,当待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的差异超出设定阈值时,将待更新显示的图像帧的所述脏区域的图像数据更新至所述显示区域,通过屏幕进行展示,而当待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的差异未超出设定阈值时,屏蔽对所述待更新显示的图像帧的更新请求,不再将所述待更新显示的图像帧的所述脏区域的图像数据更新至所述显示区域。

在本公开的实施例中,为了提升两图像帧的所述脏区域的图像数据的相似度的比对效率,再对图像数据进行比对前,需要对脏区域的图像数据进行处理。

作为一种实现手段,将待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的分辨率压缩为设定分辨率。如可以将dirtyregion区域的图像数据压缩成9×8的小图,从而减少图像细节信息。当然,根据需要,也可以将dirtyregion区域的图像数据压缩成其他分辨率的小图,具体可根据操作系统的实际需求设定,如18×17、20×17、35×33、48×33等,图像缩小的越多,针对图像的相似性比较的处理速度越快,而相应的相似性的准确率有所下降。

作为一种实现手段,将设定分辨率的待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像数据的彩色rgb值转换为灰度图像显示的灰度值。将缩小后的图像由彩色的rgb值转化为由0-255的整数表示的灰度,将三维比较简化为了一维比较,从而提升本公开实施例的dirtyregion区域的图像数据相似性的比较效率。

在本公开的实施例中,所述对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果,包括:确定所述第一图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,确定所述第一二进制字符串的第一哈希值;确定所述第二图像数据中相邻像素之间的颜色强度差异值,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串,确定所述第二二进制字符串的第二哈希值;计算所述第一哈希值和所述第二哈希值之间的汉明距离,这里,所计算的所述第一哈希值和所述第二哈希值之间的汉明距离,即为待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像之间的汉明距离;将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

在本公开的实施例中,可以采用感知哈希算法对第一图像数据和所述第二图像数据进行相似性检测。感知哈希算法是一类算法的总称,包括平均值哈希(ahash)、感知哈希(phash)、差异值哈希(dhash)等。感知哈希不是以严格的方式计算具体的hash值,而是以更加相对的方式计算哈希值,因为相似与否是一种相对的判定。其原理是对每张图像生成一个指纹(fingerprint)字符串,即将图像按照一定的哈希算法,经过运算后得出的一组二进制数字,然后比较不同图像指纹的汉明距离,结果越接近,就说明图像越相似。汉明距离即:假如一组二进制数据为101,另外一组为111,那么把第一组的第二位数据0改成1就可以变成第二组数据111,所以两组数据的汉明距离就为1。简单点说,汉明距离就是一组二进制数据变成另一组数据所需的步骤数,显然,这个数值可以衡量两张图片的差异,汉明距离越小,则代表相似度越高。汉明距离为0,即代表两张图片完全一样。

ahash算法计算速度比较快,但是精确度相对较差。phash算法计算的精确度比较高,但是运输速度较差。dhash算法的精确度较高,且速度也非常快。因此,本公开的实施例中优选使用dhash算法对第一图像数据和所述第二图像数据进行相似性检测,确定二图像帧的脏区域的相似度值。

所述确定所述第一二进制字符串的第一哈希值包括:将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

dhash算法是基于渐变算法实现的。具体实现如下:①先将图片压缩成9*8的小图,有72个像素点;②将图片转化为灰度图;③计算差异值:dhash算法是首先确定图像帧帧的相邻像素之间的差异,左边的像素比右边的更亮,则记录为1,否则为0。这样每行9个像素之间产生了8个不同的差异值,一共8行,则产生了64个差异值,或者是32位的01字符串;④基于上述的差异值字符串,通过hash值来计算图像帧之间的汉明距离,将汉明距离作为两图像帧之间的相似度值。

在本公开的实施例中,也可以采用直方图的方式计算两图像帧之间的相似度。直方图方式是基于简单的向量相似度来对图像相似度进行度量,一般是利用颜色特征来进行度量,适合描述难以自动分割的图像。但由于其主要反映的是图像灰度值的概率分布,并没有图像的空间位置信息,信息丢失量较大,因此,容易出现误判。但作为一种实现手段,也可以采用直方图的方式计算两图像帧之间的相似度。

s23、根据所述相似性检测结果确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

在本公开的实施例中,将所述相似度值与设定阈值进行比较,所述相似度值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,所述相似度值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

在本公开的实施例中,屏蔽对所述待更新显示的图像帧的更新请求,包括:接收到所述显示区域的动态调整vysnc信号时,拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。以android系统中的vysnc信号为例,android系统中的vysnc信号可以分为两种:一种是屏幕产生的硬件vysnc信号;另一种则是由surfaceflinger产生的软件vysnc信号。第一种硬件vysnc信号其本质是一种脉冲信号,它是由hwc模块,其根据屏幕刷新率产生,用来触发或者开关某些操作。第二种vysnc信号经由binder传递给choreographer。这样,电子设备的屏幕每次刷新之前就会发送一个vysnc信号通知操作系统准备刷新,之后系统再去调用cpu和gpu进行ui更新。

本公开的实施例通过确定前后两图像帧的脏区域的相似度小于设定阈值时,通过拦截针对系统的图像帧更新请求vyscn信号的方式来实现显示区域的动态调帧效果,以此实现降低gpu和cpu绘制所带来的功耗的影响,使得电子设备的显示区域刷新功耗有所降低,提升了电子设备整体的性能与续航能力。

以下结合具体示例,进一步阐明本公开实施例的技术方案实质。

在安卓系统中,图像显示到屏幕中的过程中,需要对不同显示区域进行重绘,具体重绘刷新的部分就被称为dirtyregion,即脏的可见区域,也就是要刷新的区域。本公开实施例通过利用显示过程中的待刷新区域dirtyregion,计算dirtyregion在整个显示区域的占比,同时对该dirtyregion区域采用差异值哈希算法进行相似性检测,基于这两个值构建新的两帧相似度检测模型。相对于整块显示区域都进行相似性检测,提高了处理速度。或者,直接利用dirtyregion中的两图像帧的差异值哈希值,确定两图像帧的dirtyregion的图像数据之间的相似度值,基于相似度值确定surfaceflinger对下一帧图层数据是否进行合成处理。

通过利用显示过程中的待刷新区域dirtyregion,计算dirtyregion在整个显示区域的占比p,同时对该dirtyregion区域采用差异值哈希算法进行相似性检测,得到相似度s,基于这两个值构建新的两帧相似度检测模型。基于这个检测模型得到的相似度结果值会被应用到surfaceflinger图层的合成策略中,用来控制调整帧信号的传递,从而实现动态调整帧的目的来降低由于gpu和cpu绘制所带来的性能上的影响。

图3为本公开实施例示出的一种图像处理方法流程示意图三,如图3所示,本公开实施例的图像处理方法主要包括以下处理步骤:

s31.获取电子设备的显示区域的dirtyregion,计算dirtyregion在整个显示区域的占比p。

s32.分别计算两图像帧dirtyregion区域的dhash值。

1)首先缩小图像:将dirtyregion区域压缩成9*8的小图,压缩图像以减少图像细节信息。

2)灰度化处理:将缩小后的图像由彩色的rgb值转化为由0-255的整数表示的灰度,将三维比较简化为了一维比较。

3)差异计算:分别计算灰度处理后每个图像中相邻像素之间的颜色强度差异,在每个图像中,相邻像素差异值是以每行为单位分别计算的,由于缩小后的图像每行有9个像素,就会产生8个差异值,正好可以转换为16进制。如果第一个像素的颜色强度大于第二个像素的颜色强度,那么差异值就设置为true(也就是1),如果不大于第二个像素,就设置为false(也就是0)。

4)转换为hash值:将差异值数组中每一个值看作一个bit,每8个bit组成为一个16进制值,得到8个16进制的数,将16进制值数连接起来转换为字符串,就得出了最后的dhash值。

s33.基于dhash算法计算两图像帧之间的汉明距离,根据汉明距离的大小,进而得到相似度值s。这里的两图像帧分别指待更新显示的图像帧和当前显示的图像帧。

1)将两个dhash值转为二进制difference,并进行异或运输,计算异或结果的“1”的位数,也就是不相同的位数,得到汉明距离。

2)比较两帧dirtyregion的汉明距离,该值即为相似度s。

3)根据求得的dirtyregion所占百分比p和相似度s建立新的两帧相似度模型计算公式,即:

式(1)中,p表示dirtyregion在整个显示区域所占的百分比,s代表dirtyregion前后两帧的相似度,α是p的权值参数,β是s的权值参数,其中。α和β的值可根据需要进行调整。

s34.每隔周期t,按照前文介绍的相似度算法计算前后两帧图层的相似度。设定相似度阈值£,计算比较相似度与阈值£的大小。当小于等于£时,此时表明前后两帧的相似度较小,也即前后两帧有较大的区别,因此不处理vyscn信号,使其正常分发传递给surfaceflinger,进行正常的layer合成及更新。当小于等于£时,此时表明前后两帧具有较高的相似度,此时系统对更新的vyscn信号进行拦截,触发不让surfaceflinger更新下一帧的机制,从而达到降低gpu和cpu运行时功耗的目的、来实现降低电子设备运行时由于ui界面的更新绘制所带来的功耗影响,从而提升了电子设备的整体性能。

图4为本公开实施例示出的一种图像处理装置一的组成结构示意图,如图4所示,本公开实施例的图像处理装置包括:

第一确定单元41,用于确定显示区域的脏区域;

计算单元42,用于计算所述脏区域在所述显示区域的占比;

获取单元43,用于获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据;

相似性检测单元44,用于对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

第二确定单元45,用于根据所述相似性检测结果和所述脏区域在所述显示区域的占比,确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时触发屏蔽单元;

屏蔽单元46,用于屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述相似性检测单元44包括:

第一确定子单元(图4中未示出),用于确定所述第一图像数据中相邻像素之间的颜色强度差异值,以及所述第二图像数据中相邻像素之间的颜色强度差异值;

赋值子单元(图4中未示出),用于为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,以及,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串;

第二确定子单元(图4中未示出),用于确定所述第一二进制字符串的第一哈希值,以及所述第二二进制字符串的第二哈希值;

第一计算子单元(图4中未示出),用于计算所述第一哈希值和所述第二哈希值之间的汉明距离;这里,所计算的所述第一哈希值和所述第二哈希值之间的汉明距离,即为待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像之间的汉明距离;

相似性检测子单元(图4中未示出),用于将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述第二确定子单元,还用于:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,所述装置还包括:

压缩单元(图4中未示出),用于将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

转换单元(图4中未示出),用于将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述装置还包括:

设置单元(图4中未示出),用于为所述脏区域在所述显示区域的占比设置第一权重值,为所述相似度值设置第二权重值;

所述第二确定单元45包括:

第二计算子单元(图4中未示出),用于计算所述第一权重值与所述脏区域在所述显示区域的占比之间的第一乘积值,计算所述第二权重值与所述相似度值之间的第二乘积值;

第三计算子单元(图4中未示出),用于计算第一乘积值和所述第二乘积值之间的和值;

比较子单元(图4中未示出),用于将所述和值与设定阈值进行比较;

第三确定子单元(图4中未示出),用于在所述和值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,在所述和值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

可选的,所述屏蔽单元46包括:

接收子单元(图4中未示出),用于接收到所述显示区域的动态调整vysnc信号;

拦截子单元(图4中未示出),用于拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。

图5为本公开实施例示出的一种图像处理装置二的组成结构示意图,如图5所示,本公开实施例的图像处理装置包括:

第一确定单元51,用于确定显示区域的脏区域;

获取单元52,用于获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据;

相似性检测单元53,用于对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

第二确定单元54,用于根据所述相似性检测结果确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时触发屏蔽单元;

屏蔽单元55,用于屏蔽对所述待更新显示的图像帧的更新请求。

可选的,所述相似性检测单元54包括:

第一确定子单元(图5中未示出),用于确定所述第一图像数据中相邻像素之间的颜色强度差异值,以及所述第二图像数据中相邻像素之间的颜色强度差异值;

赋值子单元(图5中未示出),用于为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第一二进制字符串,以及,为所述颜色强度差异值赋以二进制值,赋值后的连续颜色强度差异值形成第二二进制字符串;

第二确定子单元(图5中未示出),用于确定所述第一二进制字符串的第一哈希值,以及所述第二二进制字符串的第二哈希值;

第一计算子单元(图5中未示出),用于计算所述第一哈希值和所述第二哈希值之间的汉明距离;这里,所计算的所述第一哈希值和所述第二哈希值之间的汉明距离,即为待更新显示的图像帧和当前显示的图像帧的所述脏区域的图像之间的汉明距离;

相似性检测子单元(图5中未示出),用于将计算的所述汉明距离作为所述第一图像数据和所述第二图像数据的相似度值,得到所述相似性检测结果。

可选的,所述第二确定子单元,还用于:

将所述第一二进制字符串进行高进制转换,形成转换后的第一高进制字符;将所述第一高进制字符按顺序组成字符串而形成第一差异哈希值;

将所述第二二进制字符串进行高进制转换,形成转换后的第二高进制字符;将所述第二高进制字符按顺序组成字符串而形成第二差异哈希值。

可选的,所述装置还包括:

压缩单元(图5中未示出),用于将所述第一图像数据和所述第二图像数据的分辨率压缩为设定分辨率;

转换单元(图5中未示出),用于将设定分辨率的所述第一图像数据和所述第二图像数据的彩色rgb值转换为灰度图像显示的灰度值。

可选的,所述第二确定单元54包括:

比较子单元(图5中未示出),用于将所述相似度值与设定阈值进行比较;

第三确定子单元(图5中未示出),用于在所述相似度值大于或大于等于所述设定阈值时,确定将所述待更新显示的图像帧更新到所述显示区域,对应地,在所述相似度值小于等于或小于所述设定阈值时,确定不将所述待更新显示的图像帧更新到所述显示区域。

可选的,所述屏蔽单元55包括:

接收子单元(图5中未示出),用于接收到所述显示区域的动态调整vysnc信号;

拦截子单元(图5中未示出),用于拦截所述vysnc信号,使surfaceflinger不合成所述待更新显示的图像帧的内容。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图6为根据一示例性实施例示出的一种电子设备800的框图,如图6所示,参照图6,电子设备800支持多屏输出,电子设备800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。

处理组件802通常控制电子设备800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。

存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在电子设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件806为电子设备800的各种组件提供电力。电力组件806可以包括电源管理系统,一个或多个电源,及其他与为电子设备800生成、管理和分配电力相关联的组件。

多媒体组件808包括在所述电子设备800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当电子设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。

i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件814包括一个或多个传感器,用于为电子设备800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为电子设备800的显示器和小键盘,传感器组件814还可以检测电子设备800或电子设备800一个组件的位置改变,用户与电子设备800接触的存在或不存在,电子设备800方位或加速/减速和电子设备800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件816被配置为便于电子设备800和其他设备之间有线或无线方式的通信。电子设备800可以接入基于通信标准的无线网络,如wi-fi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例的多屏电子设备的屏幕录制方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由电子设备800的处理器820执行以完成上述实施例的多屏电子设备的屏幕录制方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开实施例还记载了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行控制方法,所述方法包括:

确定显示区域的脏区域,计算所述脏区域在所述显示区域的占比;

获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

根据所述相似性检测结果和所述脏区域在所述显示区域的占比,确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

本公开实施例还记载了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行控制方法,所述方法包括:

确定显示区域的脏区域;

获取待更新显示的图像帧的所述脏区域的第一图像数据和当前显示的图像帧的所述脏区域的第二图像数据,对所述第一图像数据和所述第二图像数据进行相似性检测,生成相似性检测结果;

根据所述相似性检测结果确定是否将所述待更新显示的图像帧更新到所述显示区域,不更新时屏蔽对所述待更新显示的图像帧的更新请求。

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

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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