掌桥专利:专业的专利平台
掌桥专利
首页

一种图像处理方法及设备

文献发布时间:2023-06-19 13:49:36


一种图像处理方法及设备

技术领域

本申请涉及终端技术领域,尤其涉及一种图像处理方法及设备。

背景技术

近年来,随着电子产业和通信技术的飞速发展,以数据、话音、视频为基础的新业务发展迅猛。微电子技术、计算机软硬件技术的快速发展,为图像处理设备处理越来越复杂的工作打下了基础,为图像处理设备个性化提供了实现可能,使得终端从某种程度上摆脱了网络的制约,可以具备越来越强大的功能。此外,用户本身也对终端有迫切的需求,希望终端功能更强大、更灵活、更简捷。信息技术的发展,使终端技术走向智能化、移动化、多功能化。

随着移动终端的普及,尤其是智能手机的迅猛发展,不仅使人们的生活更方便,也使人们享受到高科技带来的成果。智能移动终端如智能手机,因为其有强大的操作系统,大容量的存储空间,可以方便地安装各种软件等诸多优点而越来越被人们接受。较之于传统的移动终端,智能移动终端能够安装更多的第三方应用。具有安卓(Android)系统的智能移动终端,操作系统从高层到低层通常依次包括:应用层、框架层、运行时、核心类库、硬件抽象层、Linux内核层。通常,Android系统中核心的功能实现,包括框架层、核心类库等,每个Android应用的开发者,都是在此基础上进行应用开发的。Android系统的应用层由运行在Android设备上的所有应用共同构成,它不仅包括通话、短消息、联系人等系统应用(随Android系统一起预装在智能移动终端上),还包括其他后续安装到设备中的第三方应用。第三方应用都是基于Android提供的软件开发工具包(software development kit,SDK)进行开发的,并受到SDK接口的约束。而预装在设备中的系统应用,则可以调用整个框架层的接口和模块。现有智能移动终端操作系统,第三方应用在安装完毕并获得系统授权后,即可直接从Android框架层调取控件接口,例如,一个应用程序在显示图像时通常会调用Android系统的框架层的Image View控件来绘制图像、但是因为图像显示时为了节省流量,所以很多图像细节基于频宽考量都被压缩掉了,导致图像清晰度不佳。

发明内容

本申请提供一种图像处理方法及设备,用以解决现有终端设备中的应用程序显示图像信息存在清晰度不佳的问题。

第一方面,本申请实施例提供了一种图像处理方法,所述方法适用于具备操作系统的图像处理设备,包括:操作系统的图像处理模块接收第一应用程序调用操作系统的图像处理模块的指令,因为,所述指令中携带有待显示图像;所以所述图像处理模块对所述待显示图像进行图像优化处理,并显示图像优化处理后的图像。

通过上述方法,完善了图像处理设备的操作系统的图像处理模块,增加图像优化的功能,以对应用层中不同应用程序中的待显示图像进图像行优化处理。也就是说当应用程序中多媒体文件调用操作系统的图像处理模块的接口显示图像时,会先经过图像处理模块的图像优化处理过程,最终显示的图像是经过优化的图像,比如说优化后的图像的分辨率得到提高,因此清晰度也更佳。

在一种可能的设计中,所述操作系统为安卓操作系统,所述图像处理模块为所述安卓操作系统的框架层中的图像视图类,这样,图像视图类就可以从指令中获取所述待显示图像的宽高,然后所述图像视图类确定所述待显示图像的宽高满足设定条件,所述设定条件为所述图像处理设备的显示屏的高与所述待显示图像的高之间的差值小于第二阈值,和/或,所述图像处理设备的显示屏的宽与所述待显示图像的宽之间的差值小于第三阈值。也就是说,图像视图类可以仅对足够大尺寸的图像进行图像优化,这样有助于提高图像优化的效率。

在一种可能的设计中,所述操作系统为安卓操作系统,所述图像处理模块为所述安卓操作系统的框架层中位图工厂类,这样的话,所述图像处理模块对所述待显示图像进行图像优化处理之前,解码所述待显示图像。这一方法主要弥补在应用程序自身具备图像视图类的场景下的图像优化,因为当应用层中的应用程序自身已具有图像视图类时,就不再调用框架层中的ImageView,但是仍然会调用框架层的位图工厂类(BitmapFactory),对待显示图像进行解码,得到解码后的图像。所以可以在BitmapFactory上扩展图像优化功能,这样,应用层中的应用程序一旦调用这一接口,就会触发图像优化。

在一种可能的设计中,所述图像处理模块确定所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理,通过超分辨率处理可以调整原有图像的分辨率,因此经过图像优化后的图像清晰度变高。

在一种可能的设计中,所述图像处理模块还可以根据指令中的所述第一应用程序的标识,确定所述第一应用程序具有超分辨率处理的权限,显然,这样做可以提高图像优化的效率,有助于集中处理具有图像元素的多媒体文件。

可选地,所述图像处理模块判断所述第一应用程序的标识是否存在于预设的白名单列表中;若存在,则所述图像处理模块确定所述第一应用程序具备图像优化的权限,否则的话,就不对这一应用程序的图像进行图像优化,因为白名单可以随时被用户更新,所以较为方便管控。

具体地,所述图像处理模块对所述待显示图像进行超分辨率处理的方法可以是:所述图像处理模块将所述待显示图像作为任务对象加入到任务队列中;

所述图像处理模块根据所述待显示图像的分辨率,确定所述待显示图像对应的图像优化算法;所述图像处理模块利用对应的图像优化算法,对所述任务队列中所述待显示图像对应的任务对象进行超分辨率处理。

另外,所述图像处理模块确定所述待显示图像对应的任务对象完成超分辨率处理后,释放所述任务对象对应的内存空间,以便于进行内存管理。

另外,所述任务队列中的第一任务被分配至第一处理器执行超分辨率处理,所述任务队列中的第二任务被分配至第二处理器执行超分辨率处理,这样可以实现异构加速。

第二方面,本发明实施例提供了一种图像处理装置,所述图像处理装置具有实现上述方法实例中操作系统的图像处理模块行为的功能。所述功能可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

在一种可能的设计中,所述图像处理装置包括接收单元和处理单元,其中:

接收单元,用于接收第一应用程序调用操作系统的图像处理模块的指令,所述指令中携带有待显示图像;

处理单元,用于对所述待显示图像进行图像优化处理,并显示图像优化处理后的图像。

在一种可能的设计中,所述处理单元具体用于:确定所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理。

在另一种可能的设计中,该图像处理装置还包括确定单元,用于根据所述第一应用程序的标识,确定所述第一应用程序具有超分辨率处理的权限。

进一步地,所述确定单元具体用于:判断所述第一应用程序的标识是否存在于预设的白名单列表中;若存在,则确定所述第一应用程序具备图像优化的权限。

在一种可能的设计中,所述处理单元具体用于:

将所述待显示图像作为任务对象加入到任务队列中;

根据所述待显示图像的分辨率,确定所述待显示图像对应的图像优化算法;

利用对应的图像优化算法,对所述任务队列中所述待显示图像对应的任务对象进行超分辨率处理。

进一步地,所述处理单元还用于:确定所述待显示图像对应的任务对象完成超分辨率处理后,释放所述任务对象对应的内存空间。

另外,在一种可能的设计中,所述任务队列中的第一任务被分配至第一处理器执行超分辨率处理,所述任务队列中的第二任务被分配至第二处理器执行超分辨率处理,以便于加速进行图像处理。

在一种可能的设计中,该图像处理装置为操作系统的图像视图类,所述指令中还包括所述待显示图像的宽高;所述处理单元还用于:确定所述待显示图像的宽高满足设定条件,所述设定条件为所述终端设备的显示屏的高与所述待显示图像的高之间的差值小于第二阈值,和/或,所述终端设备的显示屏的宽与所述待显示图像的宽之间的差值小于第三阈值。

在一种可能的设计中,所述图像处理装置为所述安卓操作系统的框架层中的位图工厂类,那么述图像处理装置对所述待显示图像进行图像优化处理之前,解码所述待显示图像。

第三方面,本发明实施例提供了一种图像处理设备,所述图像处理设备包括存储器、显示器以及处理器;处理器,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。处理器根据第一应用程序调用操作系统的图像处理模块的指令,执行图像优化功能。存储器,用于存储所述第一应用程序的指令、存储了操作系统的程序指令,以及处理器所执行的程序。

显示器,用于在第一应用程序的人机交互界面显示经过处理器图像优化处理后的图像。

具体的,所述处理器用于确定所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理。

在一种可能的设计中,所述第一应用程序的指令还包括所述第一应用程序的标识,所述处理器还用于:根据所述第一应用程序的标识,确定所述第一应用程序具有超分辨率处理的权限。

在一种可能的设计中,所述处理器具体用于:判断所述第一应用程序的标识是否存在于预设的白名单列表中;若存在,则确定所述第一应用程序具备图像优化的权限。

在一种可能的设计中,所述处理器具体用于:将所述待显示图像作为任务对象加入到任务队列中;根据所述待显示图像的分辨率,确定所述待显示图像对应的图像优化算法;

利用对应的图像优化算法,对所述任务队列中所述待显示图像对应的任务对象进行超分辨率处理。

在一种可能的设计中,所述操作系统为安卓操作系统,所述图像处理模块为所述安卓操作系统的框架层中的图像视图类或者位图工厂类,所述处理器可以采用如下两种方式优化图像:

方式一,处理器确定所述待显示图像的宽高满足设定条件,对满足条件的图像进行超分辨率处理,其中,所述设定条件为所述图像处理设备的显示屏的高与所述待显示图像的高之间的差值小于第二阈值,和/或,所述图像处理设备的显示屏的宽与所述待显示图像的宽之间的差值小于第三阈值。

方式二,处理器解码所述待显示图像,再满足条件的图像进行超分辨率处理。

在一种可能的设计中,所述处理器还用于确定所述待显示图像对应的任务对象完成超分辨率处理后,释放所述任务对象对应的内存空间

在一种可能的设计中,所述任务队列中的第一任务被分配至第一处理器执行超分辨率处理,所述任务队列中的第二任务被分配至第二处理器执行超分辨率处理,这样可以实现异构加速。

第四方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面的任意一种设计提供的方法。

第五方面,本申请实施例中还提供一种计算机程序产品,当所述计算机程序产品被计算机执行时,使所述计算机执如第一方面的任意一种设计提供的方法。

本申请实施例提供的方案中,改进的是操作系统中的图像处理模块,不需要对各个应用程序进行分别开发,所以具有具有较强的复用性,另外来自不同应用程序中多媒体文件在的图像信息在显示时实现自动图像优化,提高了用户体验。

附图说明

图1为本申请实施例提供的一种图像处理设备结构示意图;

图2为本申请实施例提供的一种手机的结构示意图;

图3为本申请实施例提供的一种图像处理的方法流程示意图;

图4为本申请实施例提供的一种撑屏判断方法示意图;

图5为本申请实施例提供的一种具有图像优化功能的安卓操作系统框架示意图;

图6为本申请实施例提供的一种集成图像优化功能的图像视图类的示意图;

图7为本申请实施例提供的一种集成图像优化功能的位图工厂类的示意图;

图8为本申请实施例提供的一种图像视图类的图像优化方法流程示意图一;

图8a为本申请实施例提供的一种图像视图类的图像优化方法流程示意图二;

图9为本申请实施例提供的一种位图工厂类的图像优化方法流程示意图;

图10为本申请实施例提供的一种图像优化队列的管控策略方法示意图;

图11为本申请提供的一种图像处理装置结构示意图;

图12为本申请提供的另一种图像处理设备结构示意图。

具体实施方式

下面将结合附图对本申请实施例作进一步地详细描述。

本发明实例提供的一种图像处理的方法,可以适用于如图1所示的图像处理设备,该图像处理设备包括应用层110、框架层120,其中,所述应用层110包括第一应用程序111,以及其它多个应用程序,所述框架层120中包含有图像处理模块122。其中,图像处理模块122接收第一应用程序111传输的图像,图像处理模块122用于图像进行图像优化处理,将图像处理模块122处理后的图像传输给第一应用程序111,以使第一应用程序111显示所述处理后的图像。可以理解地,框架层120中还包括存储模块,用于缓存待处理的图像以及处理后的图像以下述图像处理过程为例,说明图像处理模块的工作流程:

图像处理模块122接收到待显示图像后,首先获取所述待显示图像的分辨率,判断该分辨率是否低于低于阈值,若是,则对所述待显示图像进行超分辨率处理,并显示超分辨率处理后的图像。所谓超分辨率处理,指的是通过硬件或软件的方法提高原有图像的分辨率,通过一系列低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建。图像处理模块122将超分辨率处理后的图像返回至第一应用程序111进行界面显示。

本发明实例提供的一种图像处理的方法,也同样适用于如图2所示的手机,下述先简单介绍手机的具体结构组成。

参考图2所示,为本申请实施例应用的手机的硬件结构示意图。如图2所示,手机200包括显示设备210、处理器220以及存储器230。存储器230可用于存储软件程序以及数据,处理器220通过运行存储在存储器230的软件程序以及数据,从而执行手机200的各种功能应用以及数据处理。存储器230可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如图像采集功能等)等;存储数据区可存储根据手机200的使用所创建的数据(比如音频数据、电话本、图像等)等。此外,存储器230可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器220是手机200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器230内的软件程序和/或数据,执行手机200的各种功能和处理数据,从而对手机进行整体监控。处理器220可以包括一个或多个通用处理器,还可包括一个或多个DSP(digital signal processor,数字信号处理器),也可以包括一个或者多个ISP(image signal processor,图像信号处理器),用于执行相关操作,以实现本申请实施例所提供的技术方案。

手机200中还包括用于拍摄图像或视频的摄像头260。摄像头260可以是普通摄像头,也可以是对焦摄像头。

手机200还可以包括输入设备240,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与手机200的用户设置以及功能控制有关的信号输入等。

显示设备210,包括的显示面板211,用于显示由用户输入的信息或提供给用户的信息以及手机200的各种菜单界面等,在本申请实施例中主要用于显示手机100中摄像头或者传感器获取的待检测图像。可选的,显示面板可以采用液晶显示器(liquid crystaldisplay,LCD)或OLED(organic light-emitting diode,有机发光二极管)等形式来配置显示面板211。

除以上之外,手机200还可以包括用于给其他模块供电的电源250。手机200还可以包括一个或多个传感器270,例如图像传感器、红外传感器、激光传感器等。手机200还可以包括无线射频(radio frequency,RF)电路280,用于与无线网络设备进行网络通信,还可以包括WiFi模块290,用于与其他设备进行WiFi通信,获取其他设备传输的图像或者数据等。

基于上述介绍,本申请实施例提供了一种图像处理的方法及图像处理设备,用以解决应用程序中的多媒体文件的图像显示不清晰的问题。其中,本申请所述方法和图像处理设备基于同一发明构思,由于所述方法和所述图像处理设备解决问题的原理相似,因此所述图像处理设备与方法的实施可以相互参见,重复之处不再赘述。

在本申请实施例中,主要是通过完善图像处理设备的操作系统的图像处理模块,增加图像优化的功能,以对应用层中不同应用程序中的待显示图像进图像行优化处理。也就是说,本申请实施例改进了操作系统中除了应用层之外的层(例如框架层),增加图像优化程序并调用相关的硬件来实现优化处理,当应用程序中多媒体文件调用操作系统的图像处理模块显示图像时,会先经过图像处理模块的图像优化处理过程,最终显示的图像是经过优化的图像,这时分辨率已经被提高,因此清晰度也更佳,因为本申请实施例改进的是操作系统中的图像处理模块,不需要对各个应用程序进行分别开发,对于操作应用层中的应用程序的用户来说,整个图像优化过程用户是无感知的,所以说该方法在具有较强复用性的同时也更为自动化。

以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

1)、本申请实施例涉及的应用程序,指的是具有可视的用户界面,可以和用户进行人机交互的软件,例如,短信应用、彩信应用、各种邮箱应用、微博、微信、腾讯聊天软件(QQ)、连我(Line)、照片分享(instagram)、钉钉、头条新闻、浏览器等。用户通过应用,可以将文字、语音、图像、视频文件以及其他各种文件等信息分享给其他联系人,或者获取到上述信息。

3)、本申请实施例涉及的图像处理设备,又可以称为用户设备(User Equipment,UE)为可以安装各种通信应用,或具有通信功能的设备。例如,智能手机、平板电脑、各类可穿戴设备、车载设备、计算机等。

4)、本申请实施例涉及的图像来源于多媒体文件,其中,多媒体文件为图像、图像集合、或由多帧图像组成的视频文件。

结合图1所述的图像处理设备的操作系统架构,在本申请如下实施例中,对图像处理方法的具体过程进行详细阐述,参阅图3所示,该方法的具体流程可以包括:

步骤201a:第一应用程序向操作系统的图像处理模块发送指令以调用该图像处理模块执行图像优化。

具体地,在检测到用户查看图像时,第一应用程序向该图像处理模块发送指令。比如,用户使用微信时收到好友发的图像,微信的对话界面上以缩略图进行显示收到该图像,用户点击该缩略图以查看该图像的大图时,微信调用该图像处理模块。

步骤202a:图像处理模块判断所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理,并显示超分辨率处理后的图像。

在步骤202a中,因为指令中携带有待显示图像,以及所述待显示图像的分辨率,所以图像处理模块可以先获取待显示图像的分辨率,然后对分辨率进行判断,若判断低于第一阈值,再启动超分辨率处理,否则,则不进行超分辨率处理。此处图像优化处理以超分辨率处理为例进行说明。

需要说明的是,除了超分辨处理这种图像优化方法,还可以采用其它的图像优化方法对图像进行优化,例如调节图像的亮度、饱和度、颜色,或者美化人脸等等。这些图像优化方法也可以一起使用,也可以根据不同检测条件来触发不同的图像优化方法,例如识别当前处于夜间阅读模式,则降低图像的亮度;或者识别出图像中有人脸,则执行人脸美颜的图像优化方法等等。

考虑到图像优化处理的意义在于使图像的质量得到改善,这在不同的应用中对用户的影响和意义是不同的。比如说,微博用户通常浏览短视频或者照片,所以微博这一类应用程序对图像分辨率要求较高,再比如说邮箱应用,邮件多为文字信息,邮件中通常仅插入少量图像或者没有图像信息,所以这一类应用程序对图像分辨率要求较低。如果按照传统的方法基于频宽考量,丢失部分像素,降低图像分辨率,就会严重影响用户体验,因此在一种可能的设计中,图像处理模块会进一步根据指令中携带的第一应用程序的标识,确定第一应用程序是否具有图像优化的权限,对具有图像优化权限的应用程序执行图像优化。

也就是说,图像处理模块中预先保存有具有图像优化权限的白名单,在该白名单中包含有应用层应用程序的标识,如果图像处理模块判断指令中获取的应用程序的标识在白名单中,显然就具有图像优化的权限,可以进一步触发超分辨率处理,否则,则不进行超分辨率处理。或者是,图像处理模块对应用程序的标识进行认证,若认证通过,则证明该应用程序具有图像优化的权限,可以进一步触发超分辨率处理,否则,则不进行超分辨率处理。

在另一种可能的设计中,为了提高图像处理的效率,在执行超分辨率处理之前,还可以利用其它条件进一步判断待显示的图像是否需要图像优化。比如说,图像处理模块获取到图像之后,判断该图像是否已经经过超分辨率处理,若已经处理过,则不再对该图像进行超分辨率处理。

考虑应用程序中有较多待显示的图像时,图像处理模块在性能和内存上会出现较大压力,因此这时可以过滤部分图像,比如对尺寸符合预设条件的图像进行处理。例如,图像处理模块判断待显示图像的图像尺寸是否接近全屏,只有在图像尺寸接近屏幕尺寸的情况下才会做超分辨率处理。如图4所示,待显示图像的宽与屏幕宽相一致,这一待显示图像满足执行超分辨率处理的条件。因为在实际操作中,部分应用的图像宽度会略小于屏宽,所以当待显示屏的高与所述待显示图像的高之间的差值小于第二阈值,或者,所述图像处理设备的显示屏的宽与所述待显示图像的宽之间的差值小于第三阈值,这两个条件任意一个满足时,则对该待显示图像执行超分辨率处理。所述第二阈值和所述第三阈值可以相同比如说,所述待显示图像的宽度满足屏宽的[0.95,1.0]倍,或者是待显示图像高度满足高度的[0.95,1.0]倍时,就可以继续执行超分辨率处理。

目前图像处理设备较为常用的操作系统为安卓操作系统,本申请实施例进一步结合安卓操作系统的系统架构,对上述图像处理方法进行说明。安卓操作系统从高层到低层通常依次包括:应用层、框架层、运行时、核心类库、硬件抽象层、Linux内核层。本申请实施例的图像处理模块属于框架层中功能模块。

如图5所示,具有图像优化功能的安卓操作系统架构包括应用层301、框架层302、硬件抽象层303、内核芯片304;其中,框架层中的图像处理模块中场景识别模块305,其中设置有各种条件,用于是否需要进行图像优化,例如判断调用图像处理模块的第一应用程序是否在图像优化的白名单中,待显示的图像是否要撑屏显示,如待显示的图像的宽度或高度是否接近屏幕的宽度或高度;待显示的图像的分辨率是否满足分辨率阈值,待显示图像中是否有人脸等等。图像视图类(ImageView)306和位图工厂类(BitmapFactory)307用于对待显示图像执行图像优化,具体可以管理图像优化的任务队列、内存的调用,通过调用HiAI服务中的图像优化算法对图像执行优化处理。框架层中的HiAI服务平台308中包含有各种图像优化算法,例如DNN硬算法和Raisr软算法等,其中DNN硬算法为超分辨率图像硬算法,透过与神经网络处理器(IPU)交互,性能与效果得到提升;类Raisr软算法为超分图像软算法,主要针对的是没有IPU硬件的中低端图像处理设备。除此之外,框架层中还包括存储模块309,作用在图1中已经说明,在此不再赘述。

因为应用层的应用程序不同,部分应用程序会调用图像视图类(ImageView)306绘制图像,但是部分应用不会调用ImageView,而是调用位图工厂类(BitmapFactory)307,所以图像处理模块在图像优化的具体实现主要有以下两种方式。

方式一,因为应用层中的大部分应用程序会调用框架层中的图像视图类306去显示一张图像,所以可以在图像视图类上扩容图像优化功能,这样,应用层中的应用程序可以调用图像视图类,触发上述图像处理方法。如图6所示,应用层401中的不同的应用程序显示图像时会分别创建ImageView类,例如第一应用程序的ImageView1、第二应用程序的ImageView2、第三应用程序的ImageView3,进而触发框架层402中的图像处理模块404调用异构处理器403执行图像优化,图像处理模块404中的图像视图类405调用图像优化算法以执行图像优化处理,图像处理模块在执行图像优化处理过程中会通过多个处理器进行异构加速,从而加快图像优化的进程。

方式二,当应用层401中的应用程序自身已具有图像视图类405时,就不再调用框架层402中的ImageView,但是仍然会调用框架层的位图工厂类(BitmapFactory)406,对待显示图像进行解码,得到解码后图像。所以可以在BitmapFactory上扩展图像优化功能,这样,应用层中的应用程序一旦调用位图工厂类,就会触发上述图像处理方法。如图7所示,步骤501,应用层中的第一应用程序在进行图像显示过程中会调用操作系统的框架层中的BitmapFactory对多媒体文件进行解码;步骤502解码之后的图像经过场景识别模块的一系列条件判断,例如分辨率大小的识别等,满足条件的图像加入到图像优化队列中;步骤503,考虑部分图像,例如前几帧图像或者最后几帧图像通常包含的信息不重要,可以直接对其放弃图像优化;步骤504,过滤之后,剩余的图像则依次进行超分辨处理。

对于方式一,具体来说,在Android操作系统中,最为常用的图像显示模块就是ImageView(图像视图模块)。通过分析Android ImageView源码,不论各个应用程序的ImageView以何种方式创建,最后均会统一走到initImageView()(初始化图像视图接口)中,执行一般的数据初始化。因此本申请实施例在此接口中增加与图像优化权限相关的条件判断过程,以判断当前应用程序是否具有图像优化的权限,以下以超分辨率处理为例进行说明,如图8所示:

步骤601,应用程序创建ImageView,调用initImageView()接口进行数据初始化。

步骤602,initImageView()中设置有多个条件,用于判断当前应用程序是否具有图像优化能力的权限,条件如下:

(1)、预设的图像优化能力开关是否开启;(2)、手机型号是否支持图像优化;(3)、应用程序的包名是否在白名单中。

其中,若满足上述三个条件,则可以确定当前该应用程序创建的ImageView具有图像优化权限,可以继续后面的判断逻辑,即执行步骤603;否则的话就不再继续图像优化处理,即执行步骤605绘制图像进行显示。

其中,因为图像优化处理的意义在于使图像较差的质量得到改善,这在不同的应用中对用户的影响和意义是不同的,需要根据重要性和功能的价值区分,所以当前图像优化处理只针对特定的部分应用开启。另外,因为在Android应用中,package(包)名和应用程序通常是一一对应的,所以通过调用getPackageName()可以获取当前应用程序的包名。若应用程序的包名在白名单中,则确定ImageView允许进行图像优化,继续后面的场景识别逻辑;如果不满足则ImageView后续行为和无图像优化特性时一致。

步骤603,获取图像尺寸。为了继续根据图像尺寸判断图像是否需要图像优化,Android View绘制系统的中的Drawable的getIntrinsicWidth()和getIntrinsicHeight()方法可以获取一种图像的“宽高”,所以可以通过这些方法测量待显示图像的宽高,例如,以BitmapDrawable为例,实际上返回的就是所持有的Bitmap的宽与高。

步骤604,当待显示屏的高与所述待显示图像的高之间的差值小于第一阈值,或者,所述图像处理设备的显示屏的宽与所述待显示图像的宽之间的差值小于第二阈值,这两个条件任意一个满足时,则对该待显示图像执行超分辨率处理,即执行步骤605,否则的话执行步骤609。比如说,所述待显示图像的宽度满足屏宽的[0.95,1.0]倍,或者是待显示图像高度满足高度的[0.95,1.0]倍时,就可以确定待显示图像尺寸足够大,因此有必要对该图像仅图像优化。

步骤605,ImageView在View的标准方法onDraw()中绘制被设置好的Drawable数据,通过Drawable的标准方法draw()绘制内容,例如BitmapDrawable就是将一张Bitmap的内容绘制到ImageView上,而ColorDrawable就是将颜色涂至ImageView等。

步骤606,判断超分辨率优化算法器件状态是否正常,因为当图像批量显示时,会导致分辨率优化算法器件任务队列拥塞,所以需要确定当前超分辨率优化算法器件状态正常,是的话,则执行步骤507,否则执行步骤509。

步骤607,出于性能、内存及效果的考虑,图像优化处理只针对一定范围分辨率的图像才进行。分辨率大小设置规则针对不同应用程序的要求不同,例如微博对图像的分辨率要求高于其它应用。只有在该应用程序的分辨率低于对应的大小设置规则时,才出发图像优化,因此需要继续判断分辨率是否满足设定条件,是的话,则执行步骤608,否则执行步骤609。

步骤608,对满足上述条件的待显示图像执行超分辨率处理,其中超分辨率所执行的超分辨率算法与该应用程序的图像分辨率大小设置相对应。然后再返回执行步骤605,对优化后图像进行重新绘制和显示,需要说明的是,这时执行完步骤605之后就结束了图像优化流程。

步骤609,Imageview不对图像执行优化,也需要按照在View的标准方法onDraw()中绘制被设置好的Drawable数据,通过Drawable的标准方法draw()绘制内容,即如步骤505所示。

需要说明的是,上述判断顺序,并不存在严格的先后顺序,一般地,本申请实施例先判断一下开关是否开启,再测量图像的尺寸是否足够大,进而判断分辨率是否低于设定标准。

如图8a示出了使用ImageView类实现图像优化的框架和流程,操作系统中包括应用层A10,框架层A20,HAL层/硬件A30。应用层A10中具有使用Imageview的应用程序A11。框架层A20中的ImageViewA21中的触发图像优化模块用于判断图像优化的时机;场景识别A211用于判断哪些图像需要进行图像优化处理,比如图像尺寸是否符合预设条件,图像分辨率是否复核分辨率阈值,图像中是否有人脸等等,具体地可以包括上述步骤502-504,506-507,实际可根据图像优化的目的设置不同的条件来判断哪些图像需要进行图像优化处理;优化任务分配和内容管理模块A212用于管理图像优化处理的多线程任务以及内容,具体可以参照图10的方式进行管理;优化算法A22提供多种图像优化模型A221,即图像优化算法;异构优化处理模块A222用于调用不同的处理器A32加速图像优化处理。HAL层/硬件用于实现显示,处理器的硬件驱动。应用A11将图像发给ImageViewA21,ImageViewA21中的触发图像优化模块确认出图像优化处理的时机,场景识别模块A211判断所述图像是否需要进行优化,对需要优化的图像放入优化任务的队列中,由优化任务分配及内存管理模块A212管理优化任务,调用优化算法A22对优化任务队里中的图像进行优化处理,实现优化处理时,通过异构优化处理模块A222调用不同的处理器A32来运行优化算法,使用优化后的图像进行更新画面,在显示器A31上显示。

对于方式二,具体来说,在BitmapFactory的图像优化处理提供了预测模型,预测显示界面内图像需要进行超分辨率处理,过滤掉显示界面外的图像,这样确保符合条件的图像可以进行图像优化处理,满足性能端到端的要求,具体步骤如图9所示。

步骤701,应用程序的图像通过调用BitmapFactory的BitmapFactory.decodeFile()去解码待显示图像,输出source bitmap(源位图)对象,例如将待显示的JPEG格式的图像解码为位图。

步骤702、BitmapFactory调用框架层的BitmapFactory类,代入source bitmap对象。

步骤703,图像处理模块内部创建/管理Destination Bitmap(目标位图),把图像的source bitmap和Destination Bitmap当做参数,调用HisiDDK的Native API执行数据处理。

步骤704,HisiDDK内部透过Binder接口,进程间通信(inter-processcommunication,IPC)传输sourceBitmap和Destination Bitmap到HIAI服务进程,调用IPU做超分辨率算法处理。

步骤705,HIAI服务进程处理完的超分图像存储在Destination Bitmap,在透过Binder接口异步调回图库进程的Binder进程。

步骤706,Binder收到图像处理模块处理完成后,再把Destination Bitmap传送到视图显示接口进行重新绘制。

步骤707,经过重新绘制后的图像在应用程序的显示界面进行显示。

因为上述图像优化处理过程中,涉及到Bitmap的创建,在多数应用场景下,Bitmap是最有可能导致内存异常的因素。Bitmap遵循Java GC机制,当没有强引用指向Bitmap对象时,Bitmap对象就会被释放,若是存在不合理的指针持有Bitmap,就会导致内存占用或者泄露。因此本申请实施例明确给出了图像优化处理中Bitmap的生命周期,以便于进行内存管理。同时,目前图像优化算法众多,运行计算要求高,可以进一步管理GPU、FPGA等不同的异构处理器,对其进行任务分配,以加速图像优化的处理性能。

举例来说,假设第一应用程序是微信,用户A通过微信向用户B发了一个自拍图,用户B的微信聊天框中会显示出该自拍图的缩略图,当用户B点击查看该自拍图时,用户B手机中微信这一应用程序会触发操作系统的图像处理模块进行图像显示流程,所以图像处理模块的ImageView或者BitmapFactory会对该自拍图进行图像优化,进而用户B查看到的自拍图的分辨率会变高,清晰度更佳。

综上,上述图像处理方法对于第三方应用而言,各个第三方应用并不需要重复开发图像优化功能,通过直接调用操作系统上的已有接口,就可以触发超分辨率处理,该方法较为通用。

另外,本申请实施例进一步对图像处理模块的图像优化队列增加管控策略,如图10所示,步骤801,管控策略主要是任务队列接收到图像处理模块发起的超分辨率任务请求,就会将这一任务加入到队列;步骤802,若接收到图像处理模块发起的取消超分辨率任务请求,则将这一任务从队列中删除;步骤803,另外任务队列检测到超分辨率状态机就绪状态时,就会从任务队列中取出任务发送至DDK处理。

同时,考虑到在完整的图像优化处理过程中,涉及到Bitmap的创建,在多数应用场景下,Bitmap是最有可能导致内存异常的因素。Bitmap遵循Java GC机制,当没有强引用指向Bitmap对象时,Bitmap对象就会被释放,若是存在不合理的指针持有Bitmap,就会导致内存占用/泄露。因此本申请实施例明确了图像优化处理中Bitmap的生命周期,以便于管理内存。

基于与方法实施例的同一发明构思,本申请实施例提供一种图像处理装置900,所述图像处理装置属于图像处理设备的操作系统的框架层,具体用于实现图3所述的实施例描述的方法,该装置的结构如图11所示,包括接收单元901和处理单元902,其中:

接收单元901,用于接收第一应用程序调用操作系统的图像处理模块的指令,所述指令中携带有待显示图像;

处理单元902,用于对所述待显示图像进行图像优化处理,并显示图像优化处理后的图像。

在一种可能的设计中,所述处理单元902具体用于:确定所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理。

在另一种可能的设计中,该图像处理装置还包括确定单元903,用于根据所述第一应用程序的标识,确定所述第一应用程序具有超分辨率处理的权限。

进一步地,所述确定单元903具体用于:判断所述第一应用程序的标识是否存在于预设的白名单列表中;若存在,则确定所述第一应用程序具备图像优化的权限。

在一种可能的设计中,所述处理单元902具体用于:

将所述待显示图像作为任务对象加入到任务队列中;

根据所述待显示图像的分辨率,确定所述待显示图像对应的图像优化算法;

利用对应的图像优化算法,对所述任务队列中所述待显示图像对应的任务对象进行超分辨率处理。

进一步地,所述处理单元902还用于:确定所述待显示图像对应的任务对象完成超分辨率处理后,释放所述任务对象对应的内存空间。

另外,在一种可能的设计中,所述任务队列中的第一任务被分配至第一处理器执行超分辨率处理,所述任务队列中的第二任务被分配至第二处理器执行超分辨率处理,以便于加速进行图像处理。

在一种可能的设计中,假设该图像处理装置为操作系统的图像视图类,所述指令中还包括所述待显示图像的宽高;所述处理单元902还用于:确定所述待显示图像的宽高满足设定条件,所述设定条件为所述终端设备的显示屏的高与所述待显示图像的高之间的差值小于第二阈值,和/或,所述终端设备的显示屏的宽与所述待显示图像的宽之间的差值小于第三阈值。

在一种可能的设计中,所述图像处理装置为所述安卓操作系统的框架层中的位图工厂类,那么述图像处理装置对所述待显示图像进行图像优化处理之前,解码所述待显示图像。

基于以上实施例,本申请实施例还提供了一种图像处理设备,所述图像处理设备用于实现图3所述的实施例描述的方法,参阅如图12所示,所述设备包括处理器1001、存储器1002以及显示器1003。

处理器1001,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等优化功能。

存储器1002,用于存储所述第一应用程序的指令、存储了操作系统的程序指令。

显示器1003,用于在第一应用程序的人机交互界面显示经过处理器1001图像优化处理后的图像。

本申请实施例中不限定上述处理器1001以及存储器1002之间的具体连接介质。本申请实施例在图12中以存储器1002、处理器1001以及显示器1003之间通过总线1004连接,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器1002可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1002也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1003可以是上述存储器的组合。

处理器1001执行存储器1002中的程序指令,用于实现如图3所示的图像处理的方法,包括:第一应用程序向操作系统中的图像处理模块发送指令以调用该图像处理模块执行图像优化算法,所述图像处理模块对所述待显示图像进行图像优化处理返回给第一应用程序进行显示。

所述处理器1001采用的图像优化处理方法可通过如下方式:确定所述待显示图像的分辨率低于第一阈值时,对所述待显示图像进行超分辨率处理。

在一种可能的实现方式中,所述第一应用程序的指令还包括所述第一应用程序的标识,所述处理器1001还用于:根据所述第一应用程序的标识,确定所述第一应用程序具有超分辨率处理的权限。

本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机软件指令,其包含用于执行上述处理器所需执行的程序。

本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品被计算机执行时,使所述计算机执如上述图像处理方法。

综上所述,在本申请实施例中,主要是通过完善图像处理设备的操作系统的图像处理模块,增加图像优化的功能,以对应用层中不同应用程序中的待显示图像进图像行优化处理。也就是说当应用程序中多媒体文件调用操作系统的图像处理模块的接口显示图像时,会先经过图像处理模块的图像优化处理过程,最终显示的图像是经过优化的图像,这时分辨率已经被提高,因此清晰度也更佳,因为本申请实施例改进的是操作系统中的图像处理模块,不需要对各个应用程序进行分别开发,对于操作应用层中的应用程序的用户来说,整个图像优化过程用户是无感知的,所以说该方法在具有较强复用性的同时也更为自动化。

本所属领域的技术人员可以清楚地了解到,本发明提供的各实施例的描述可以相互参照,为描述的方便和简洁,关于本申请实施例提供的各装置、设备的功能以及执行的步骤可以参照本发明方法实施例的相关描述,在此不做赘述。

本领域技术人员还可以了解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components)和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。

本申请实施例中所描述的各种说明性的逻辑块,模块和电路可以通过通用处理单元,数字信号处理单元,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理单元可以为微处理单元,可选地,该通用处理单元也可以为任何传统的处理单元、控制器、微控制器或状态机。处理单元也可以通过计算装置的组合来实现,例如数字信号处理单元和微处理单元,多个微处理单元,一个或多个微处理单元联合一个数字信号处理单元核,或任何其它类似的配置来实现。

本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理单元执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理单元连接,以使得处理单元可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理单元中。处理单元和存储媒介可以配置于ASIC中,ASIC可以配置于用户终端中。可选地,处理单元和存储媒介也可以配置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本申请实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理单元读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电脑、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

本申请的上述描述可以使得本领域技术任何可以利用或实现本申请的内容,任何基于所公开内容的修改都应该被认为是本领域显而易见的,本申请所描述的基本原则可以应用到其它变形中而不偏离本申请的发明本质和范围。因此,本申请所公开的内容不仅仅局限于所描述的实施例和设计,还可以扩展到与本申请原则和所公开的新特征一致的最大范围。

技术分类

06120113820750