数据处理方法和设备与流程

文档序号:17488780发布日期:2019-04-23 20:13阅读:238来源:国知局
数据处理方法和设备与流程

本发明涉及操作系统技术领域,尤其涉及一种数据处理方法和设备。



背景技术:

手机等终端设备中一般都提供了相机(camera)功能,并且,终端设备中也会存在一些应用程序会使用到相机采集的数据,比如视频通话应用、图像处理应用等。

一般来说,相机在被使用过程中,会同时输出多路数据,如预览、拍照、录像、回调等图像数据,而需要使用图像数据的应用程序往往需要同时对多路数据进行各种处理:如对预览、拍照、录像这三路图像数据都进行美颜、滤镜、特定物体识别等处理。比如在预览数据上增加美颜效果,同时希望该效果也同步到拍照数据中。

目前,android等操作系统中对图像数据的处理一般涉及到应用层(application)、应用程序框架层(applicationframework)、硬件抽象层(hardwareabstractionlayer)等。处理过程可以简单描述为:硬件抽象层将图像采集到的多路图像数据传输至应用程序框架层,从而,如图1所示,应用程序框架层通过各自独立的接口将多路图像数据分别发送至应用程序,应用程序分别重复地对各路图像数据进行处理,比如:假设应用程序需要对接收的图像数据进行美颜的处理,并且假设接收到两路图像数据,则应用程序需要对这两路图像数据分别进行美颜的处理,这会成倍增加资源消耗,比如会成倍增加cpu运算和带宽消耗,功耗也会大大增加。另外,为实现应用程序对多路图像数据的各种处理以及保证多路图像数据的处理同步性,应用程序需开发复杂的软件方案来保证多路图像数据的并行化处理,而且要保证处理图像数据时不能影响到诸如ui等重要线程的处理,这使得应用程序的开发难度较大。



技术实现要素:

有鉴于此,本发明实施例提供一种数据处理方法和设备,用以降低图像数据的处理成本以及应用程序的开发难度。

第一方面,本发明实施例提供一种数据处理方法,应用于应用程序框架层中,包括:

接收硬件抽象层发送的多路图像数据;

从所述多路图像数据中选出至少一路第一图像数据;

根据设定的数据处理方式对选出的所述至少一路第一图像数据进行处理。

第二方面,本发明实施例提供一种数据处理装置,应用于应用程序框架层中,包括:

接收模块,用于接收硬件抽象层发送的多路图像数据;

选择模块,用于从所述多路图像数据中选出至少一路第一图像数据;

处理模块,用于根据设定的数据处理方式对选出的所述至少一路第一图像数据进行处理。

第三方面,本发明实施例提供一种电子设备,该电子设备可以实现为用户终端设备,包括处理器和存储器,所述存储器用于存储支持用户终端设备执行上述第一方面中数据处理方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。该电子设备中还可以包括通信接口,用于与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存该电子设备所用的计算机软件指令,其包含用于执行上述第一方面中数据处理方法所涉及的程序。

第四方面,本发明实施例提供一种数据处理方法,应用于应用程序中,包括:

将数据处理方式发送至应用程序框架层,以使所述应用程序框架层根据所述数据处理方式对接收自硬件抽象层的多路图像数据中的至少一路图像数据进行处理;

接收所述应用程序框架层发送的处理后的图像数据。

第五方面,本发明实施例提供一种数据处理装置,应用于应用程序中,包括:

发送模块,用于将数据处理方式发送至应用程序框架层,以使所述应用程序框架层根据所述数据处理方式对多路图像数据中的至少一路图像数据进行处理,所述多路图像数据由硬件抽象层发送至所述应用程序框架层;

接收模块,用于接收所述应用程序框架层发送的处理后的图像数据。

第六方面,本发明实施例提供一种电子设备,该电子设备可以实现为用户终端设备,比如智能手机等,包括处理器和存储器,所述存储器用于存储支持该电子设备执行上述第四方面中数据处理方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。该电子设备中还可以包括通信接口,用于与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存该电子设备所用的计算机软件指令,其包含用于执行上述第四方面中数据处理方法所涉及的程序。

本发明实施例提供的数据处理方法和设备,对多路图像数据的处理在应用程序框架层实现。具体来说,可选地,位于应用层的应用程序可以将针对多路图像数据的数据处理方式发送至应用程序框架层,以使得应用程序框架层在接收到硬件抽象层发送的多路图像数据后,从多路图像数据中选出至少一路第一图像数据,进而对该至少一路第一图像数据进行该数据处理方式的处理。通过本方案,在应用程序框架层中实现对多路图像数据的处理,降低了应用程序的开发难度,而且,在应用程序框架层中,针对某种数据处理方式,并非对多路图像数据都进行该数据处理方式的处理,而比如仅从多路图像数据中选择出一路最合适的图像数据进行该数据处理方式的处理,从而降低了数据处理成本,即降低了对处理资源的消耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供的一种图像数据处理的原理示意图;

图2为本发明实施例提供的一种数据处理方法的原理示意图;

图3为本发明实施例提供的一种数据处理方法的流程图;

图4为本发明实施例提供的另一种数据处理方法的流程图;

图5为本发明实施例提供的一种数据处理方法的交互图;

图6为与图3所示实施例对应的一种数据处理装置的结构示意图;

图7为与图6所示数据处理装置对应的电子设备的结构示意图;

图8为与图4所示实施例对应的一种数据处理装置的结构示意图;

图9为与图8所示数据处理装置对应的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

图2为本发明实施例提供的一种数据处理方法的原理示意图,用于对多路图像数据进行相同的处理。如图2所示,android等操作系统中对图像数据的处理一般涉及到应用程序(application)层、应用程序框架(applicationframework)层、硬件抽象层(hardwareabstractionlayer)等。本发明实施例提供的数据处理方法,是在应用程序框架层实现对多路图像数据的处理,以降低应用程序的开发难度,避免在应用程序中开发相关的处理逻辑;而且,可选地,在需要对多路图像数据进行某一种或多种处理时,针对每种处理,只需从多路图像数据中选择出最合适的一路图像数据进行该处理即可,将处理结果同步给或者说复用给其他路图像数据即完成了对多路图像数据的并行处理,从而克服对多路图像数据需要重复进行相同的处理导致处理成本增加的问题,降低了cpu计算成本、功耗、带宽等成本。

值得说明的是,上述多路图像数据可以认为是同时产生的,差别主要在于每路图像数据的图像分辨率不同,比如,预览图像数据对应的图像分辨率小于拍照图像数据对应的图像分辨率。另外,以实际应用中较为常见的拍照场景为例来说,实际拍照过程中,并非仅产生一路拍照图像数据,而是会同时产生预览图像数据。同时产生的多路图像数据可以是直接由硬件产生的,也可以是由软件产生的。

可选地,应用程序框架层中可以包括控制器、选择器、合成器三个组成部分,由这三个组成部分配合完成对接收自硬件抽象层的多路图像数据的处理,并可以将多路图像数据(例如:录像图像数据、拍照图像数据、预览图像数据)的处理结果反馈至应用程序。其中,这三个组成部分可以理解为是应用程序框架层中的三个功能模块,各自具有不同的处理逻辑,下面结合图3所示实施例,对应用程序框架层中的这三个组成部分如何相互配合完成对多路图像数据的处理进行说明。

值得说明的是,上述三个组成部分仅为人为划分的便于理解的一种示例,并非严格限定实际产品形态上一定会存在上述三个组成部分。

图3为本发明实施例提供的一种数据处理方法的流程图,本实施例提供的该数据处理方法在图2所示的应用程序框架层中实现。如图3所示,该方法包括如下步骤:

101、接收硬件抽象层发送的多路图像数据。

102、从多路图像数据中选出至少一路第一图像数据。

103、根据设定的数据处理方式对至少一路第一图像数据进行处理。

上述多路图像数据可以是由用户终端设备中的图像采集装置同时采集到的,经由硬件抽象层传输至应用程序框架层。

在实际应用中,用户终端设备中往往会安装有需要使用摄像头的应用程序,比如一些图像处理应用程序、某些即时通信应用程序等。用户可以通过操作该应用程序以启动摄像头采集上述多路图像数据。

另外,可选地,用户还可以在应用程序的相关界面中设置拍摄参数,比如设置需要摄像头采集哪些路图像数据,比如采集预览图像数据和拍照图像数据;比如采集预览图像数据和录像图像数据,等等,以控制摄像头采集相应的多路图像数据。另外,该界面中还可以提供数据处理方式的设置项,以供用户选择所需的数据处理方式,比如需要对多路图像数据进行滤镜、美颜、增强现实(ar)、人脸检测等一种或多种处理。

当然,上述数据处理方式除了可以来自于用户在应用程序界面上的设置外,可选地,还可以为操作系统默认配置的数据处理方式等。

从而,当用户在应用程序的界面中设定了数据处理方式时,应用程序会将用户设置的针对当前采集的多路图像数据的数据处理方式发送至应用程序框架层,由应用程序框架层中的控制器接收该数据处理方式,从而使得控制器触发选择器从多路图像数据中选出至少一路第一图像数据,以根据该数据处理方式对该至少一路第一图像数据进行处理。其中,选择出的至少一路第一图像数据的路数小于多路图像数据的路数。

在一可选实施例中,从多路图像数据中选出至少一路第一图像数据可以实现为:从多路图像数据中选出与设定的数据处理方式对应的至少一路第一图像数据,此时,数据处理方式不仅指示了对图像数据需要进行什么样的数据处理,还可以作为图像数据选择的一种依据。

此时,可以根据预设的数据处理方式与图像数据的对应关系来进行针对任一种数据处理方式所对应的至少一种第一图像数据的选择,其中,一种数据处理方式可以对应有一种或几种图像数据。

由于针对当前同时采集的多路图像数据所设定的数据处理方式可能是一种也可能是多种,因此,需分别针对每种数据处理方式,从多路图像数据中选择出至少一路第一图像数据进行该数据处理方式的处理。不同数据处理方式对应的至少一路第一图像数据可能是不同的也可能是相同的。

在一种可选实施例中,应用程序框架层在根据设定的数据处理方式对选择出的至少一路第一图像数据进行处理后,可以将该至少一路第一图像数据的处理结果发送至应用程序,或者,也可以将该至少一路第一图像数据的处理结果以及多路图像数据中未处理的其他路图像数据发送至应用程序。

举例来说,假设当前的多路图像数据包括预览图像数据和录像图像数据,设定的数据处理方式为美颜处理,假设从中选择出的至少一路第一图像数据为录像图像数据,则可以仅对该录像图像数据进行美颜处理,将美颜后的录像图像数据反馈至应用程序,而预览图像数据则可以不进行处理,直接反馈给应用程序供用户观看。

在另一可选实施例中,在根据设定的数据处理方式对选择出的至少一路第一图像数据进行处理之后,还可以根据该至少一路第一图像数据的处理结果,处理多路图像数据中的至少一路第二图像数据,该至少一路第二图像数据是多路图像数据中除第一图像数据外剩余的全部或部分图像数据。从而,可选地,步骤103之后,还可以包括如下步骤:

104、根据至少一路第一图像数据的处理结果,处理多路图像数据中的至少一路第二图像数据。

105、将处理后的图像数据传输至应用程序;或者将处理后的图像数据以及多路图像数据中未被处理的图像数据传输至应用程序。

此时,处理后的图像数据包括处理后的第一图像数据以及处理后的第二图像数据。

值得说明的是,本实施例中,是根据至少一路第一图像数据的处理结果,来对至少一路第二图像数据进行处理,而非直接采用上述设定的数据处理方式对该至少一路第二图像数据进行处理。其中,根据至少一路第一图像数据的处理结果对至少一路第二图像数据所进行的处理,可以简单理解为是将至少一路第一图像数据的处理结果复用或者说同步给该至少一路第二图像数据。

结合图2,可以由控制器对至少一路第一图像数据进行处理,进而由合成器将处理结果同步给该至少一路第二图像数据。

举例来说,假设当前采集的多路图像数据包括预览图像数据以及录像图像数据,数据处理方式包括依次进行滤镜、美颜和某种预设物体检测这三种处理方式,再假设与滤镜和美颜处理方式对应的至少一路第一图像数据都为预览图像数据,与某种预设物体检测的处理方式对应的至少一路第一图像数据为录像图像数据,则可以先对预览图像数据进行滤镜和美颜处理,对录像图像数据进行某种预设物体检测处理,在检测出包含有预设物体的图像帧中添加与该预设物体对应的语义信息,之后,再将预览图像数据的处理结果同步给添加语义后的录像图像数据,以及将录像图像数据的处理结果同步给经滤镜和美颜处理后的预览图像数据,从而,预览图像数据和录像图像数据都具有滤镜、美颜和预设物体检测的处理效果。

结合上述举例,在一可选实施例中,针对每种数据处理方式,仅从多路图像数据中选择出一路图像数据进行该种数据处理方式的处理,并将该一路图像数据的处理结果复用给剩余的其他各路图像数据,从而实现对该多路图像数据的并行处理,使得多路图像数据具有相同的处理效果。

另外,结合上述举例,根据至少一路第一图像数据的处理结果,处理多路图像数据中的至少一路第二图像数据,可以包括如下两种方式的图像处理:尺寸变换以及添加图像语义。

其中,尺寸变换具体为:根据至少一路第一图像数据对应的图像分辨率与至少一路第二图像数据对应的图像分辨率,对至少一路第一图像数据的处理结果进行尺寸变换处理,以尺寸变换后的结果替换至少一路第二图像数据。具体地,可以是根据至少一路第一图像数据对应的图像分辨率与至少一路第二图像数据对应的图像分辨率间的比例,对至少一路第一图像数据的处理结果进行尺寸变换处理。

可选地,当至少一路第一图像数据的路数不为1时,可以从中随机选择出一个第一图像数据,或者从中选出具有最高或最低分辨率的第一图像数据,以基于该选出的第一图像数据与各第二图像数据间的分辨率比例,分别对选择出的该第一图像数据的处理结果进行尺寸变换处理,比如降采样或插值处理。

其中,上述添加图像语义具体为:假设设定的数据处理方式包括物体识别处理,则根据至少一路第一图像数据中的物体识别结果,在至少一路第二图像数据中添加与物体识别结果对应的图像语义信息。实际应用中,可选地,用户可以设定需要识别的物体,比如设定进行人脸识别。其中,与物体识别结果对应的图像语义信息可以是对识别出的物体的相关描述信息,或者,也可以简单地为一个标注框,用于标注出识别出的物体。

简单举例来说,假设有两路图像数据,其中作为第一图像数据的分辨率为640*480,另一路作为第二图像数据的分辨率为320*240,并且假设数据处理方式为美颜处理,则对第一图像数据进行美颜处理后,可以通过降采样的方式,将该美颜结果同步给第二图像数据,比如逐行将美颜处理后的第一图像数据中相邻两个像素的像素值进行平均计算合成一个像素点,从而得到320*240的一路具有美颜效果的图像数据,以此图像数据替换原来的第二图像数据。

再比如,假设有两路图像数据,其中作为第一图像数据的分辨率为640*480,另一路作为第二图像数据的分辨率为320*240,并且假设数据处理方式为预设物体检测处理,则对第一图像数据进行预设物体检测处理以在包含预设物体的图像帧中标注出该预设物体,比如通过矩形框标注出检测到的预设物体。之后,基于分辨率320*240与640*480的比例关系,先对标注后的第一图像数据进行降采样处理,再对其中的矩形框缩小两倍,从而将物体检测结果同步给第二图像数据。当然,该举例中,也可以不进行降采样处理,而是直接将第一图像数据中标注出预设物体的处理结果复用即同步给第二图像数据,即直接以标注后的第一图像数据替换原来的第二图像数据。

前述可选实施例中提到,可以根据一定的数据选择依据选出至少一路第一图像数据,而数据选择依据的获取方式可以通过如下两种可选的方式实现:

其一,用户自行设置的方式。此时,用户可以在应用程序的相关界面中选择一种数据选择依据。在一可选实施例中,应用程序中不仅可以提供数据处理方式的选择界面,还可以提供数据选择依据的设置界面。从而,用户可以在该数据处理方式选择界面中选择一种或几种数据处理方式,并且,当用户选择好某种数据处理方式后,可以弹出该数据选择依据设置界面,其中显示有多种数据选择依据的选项供用户选择。当用户设置了多种数据处理方式时,用户可以分别为每种设置的数据处理方式关联设置各自对应的数据选择依据,从而,可以根据用户设置的各数据处理方式分别对应的数据选择依据,从多路图像数据中选出分别与各数据处理方式对应的至少一路第一图像数据。

该方式下,可选地,所述数据选择依据包括如下一种:性能满足设定条件、质量满足设定条件、设定的特定相机数据、预设的数据处理方式与图像数据的对应关系。

其二,应用程序框架层可以结合用户终端设备的资源使用状态来动态确定数据选择依据。即获取终端设备的资源使用状态,以根据终端设备的资源使用状态确定数据选择依据,从而根据确定出的数据选择依据从多路图像数据中选出至少一路第一图像数据。

其中,终端设备的资源使用状态比如表现为cpu负载程度、剩余电量等一种或多种的组合。可选地,此时,数据选择依据可以为性能满足设定条件或质量满足设定条件。

可选地,比如可以以一定阈值为基准,简单地将终端设备的资源使用状态划分为资源消耗大和资源消耗小两种情形;或者,将终端设备的资源使用状态根据资源消耗量超出或低于该阈值的程度预先划分为多个区间。从而,当终端设备的实际资源消耗量大于该阈值或者位于对应于资源消耗大的某个区间内时,确定此时的数据选择依据为性能满足设定条件,反之,如果终端设备的资源消耗量小于该阈值或者位于对应于资源消耗小的某个区间内时,则可以确定此时的数据选择依据为质量满足设定条件。

可选地,当资源使用状态的度量指标包括多种时,可以设置不同度量指标对资源使用状态的贡献权重,比如当资源使用状态以cpu负载程度和剩余电量为度量指标时,可以设置cpu负载程度的贡献权重为0.7,剩余电量的贡献程度为0.3,从而以两者的加权和来评价资源使用状态。

另外可选地,除了可以根据终端设备的资源使用状态进行数据选择依据的确定外,还可以进一步结合各数据处理方式各自对应的预设资源消耗量(也可以称为各数据处理方式对应的算法复杂度)进行数据选择依据的确定。其中,可以预先设定各种常用的数据处理方式分别对应的资源消耗量。可以预先通过测试的方式设定各数据处理方式对应的资源消耗量。可选地,该资源消耗量可以体现为具体数值;也可以体现为一种程度,如资源消耗大、资源消耗小,比如可以将资源消耗量大于一定阈值的数据处理方式设置为资源消耗大;将资源消耗量小于一定阈值的数据处理方式设置为资源消耗小。从而,可以根据终端设备的资源使用状态以及预先设定的数据处理方式所对应的资源消耗量,确定数据选择依据。

可选地,此时,数据选择依据的确定可以实现为:可以预先将终端设备的资源使用状态根据终端设备的资源消耗量超出或低于一定阈值的程度,预先划分为多个区间,比如按照资源消耗量的多少顺序依次划分为a,b,c三个区间。累计用户当前设置的各种数据处理方式对应的资源消耗量,以根据累计资源消耗量以及当前终端设备的资源使用状态所位于的区间来确定与当前用户设置的所有数据处理方式对应的数据选择依据。具体来说,可以根据该累计资源消耗量以及当前终端设备的资源使用状态所位于的区间是否会引起终端设备的资源使用状态所位于的区间发生改变来确定与数据选择依据。举例来说,假设当前用户设置的所有数据处理方式对应的累计资源消耗量为x,当前终端设备的资源消耗量使得终端设备的资源使用状态位于区间b,则如果在当前终端设备的资源消耗量的基础上加上该x后会超出区间b的范围而落入区间a的范围,则确定数据选择依据为性能满足设定条件,相反地,如果不会超出区间b的范围,则确定数据选择依据为质量满足设定条件。

也就是说,如果数据处理方式的累计资源消耗量会使得终端设备的资源消耗量变得很重,则以性能满足设定条件作为数据选择依据,相反地,可以以质量满足设定条件作为数据选择依据,以在图像数据处理后的图像质量和终端设备的资源消耗情况之间做出平衡。

可以理解的是,当以终端设备的资源使用状态或结合终端设备的资源使用状态和各数据处理方式的预设资源消耗量作为数据选择依据时,可以认为此时设定的各种数据处理方式对应相同的数据选择依据。

下面具体说明根据前述提及的几种数据选择依据选择至少一种第一图像数据的具体实现:

性能满足设定条件:从多路图像数据中按照对应图像分辨率由低到高的顺序选择图像数据作为至少一路第一图像数据。一种简单的情形可以是:从多路图像数据中选择出对应于图像分辨率最低的图像数据作为第一图像数据。

质量满足设定条件:从多路图像数据中按照对应图像分辨率由高到低的顺序选择图像数据作为至少一路第一图像数据。一种简单的情形可以是:从多路图像数据中选择出对应于图像分辨率最高的图像数据作为第一图像数据。

设定的特定图像数据。从多路图像数据中选择出该特定图像数据作为至少一路第一图像数据。

预设的数据处理方式与图像数据的对应关系:该对应关系可以是用户在应用程序相关界面中自定义设定的。从而,可以根据该对应关系从多路图像数据中选择出至少一路第一图像数据。

其中,性能或质量满足设定条件可以理解为对终端设备的处理性能影响最小或处理后图像数据的质量最佳。

针对上述几种数据选择依据,假设选择出的是一路第一图像数据,并假设至少一路第二图像数据为多路图像数据中剩余的其他路图像数据,则仅以尺寸变换为例,根据将该第一图像数据的处理结果,处理其他路图像数据可以实现为:

若数据选择依据为性能满足设定条件,则在对多路图像数据中对应于最低图像分辨率的第一图像数据进行数据处理后,可以根据其他路图像数据各自对应的图像分辨率与该第一图像数据的分辨率间的比例,分别对该第一图像数据的处理结果进行插值处理,分别以插值后的第一图像数据替换对应的其他路图像数据。

若数据选择依据为质量满足设定条件,则在对多路图像数据中对应于最高图像分辨率的第一图像数据进行数据处理后,可以根据其他路图像数据各自对应的图像分辨率与该第一图像数据的分辨率间的比例,分别对该第一图像数据的处理结果进行降采样处理,分别以降采样后的第一图像数据替换对应的其他路图像数据。

若数据选择依据为设定的特定图像数据或预设的数据处理方式与图像数据的对应关系,则在对多路图像数据中选出的第一图像数据进行数据处理后,可以根据其他路图像数据各自对应的图像分辨率与该第一图像数据的分辨率间的比例,分别对该第一图像数据的处理结果进行降采样或差值处理,分别以降采样或差值处理的结果替换对应的其他路图像数据。

综上,本发明实施例中,对多路图像数据的各种处理在应用程序框架层实现。具体地,位于应用层的应用程序将针对多路图像数据的数据处理方式发送至应用程序框架层,以使得应用程序框架层在接收到来自于硬件抽象层的多路图像数据后,从多路图像数据中选出与该数据处理方式对应的待处理图像数据,进而先对该待处理图像数据进行该数据处理方式的处理,之后将该待处理图像数据的处理结果同步到其他路图像数据,使得其他路图像数据也具有该数据处理方式对应的处理效果,最后将处理后的多路图像数据传输至应用程序。通过本方案,在应用程序框架层中实现对多路图像数据的处理,降低了应用程序的开发难度,而且,在应用程序框架层中,针对某种数据处理方式,仅从多路图像数据中选择出一路最合适的图像数据进行该数据处理方式的处理,而并非对多路图像数据都进行该数据处理方式的处理,从而降低了数据处理成本,即降低了对处理资源的消耗。

图4为本发明实施例提供的另一种数据处理方法的流程图,本实施例提供的该数据处理方法可以由图2所示的应用程序层中的某个需要使用图像数据的应用程序来实现。如图4所示,该方法可以包括如下步骤:

201、将数据处理方式发送至应用程序框架层,以使应用程序框架层根据数据处理方式对接收自硬件抽象层的多路图像数据中的至少一路图像数据进行处理。

202、接收应用程序框架层发送的处理后的图像数据。

可选地,应用程序中可以包含有数据采集设置界面和数据处理方式选择界面。用户可以在数据采集设置界面中设置需要启动摄像头采集哪些路图像数据,比如:如果用户将摄像头置为拍照模式,则采集的是预览图像数据和拍照图像数据;如果用户将摄像头置为录像模式,则采集的是预览图像数据和录像图像数据。在用户进行完图像数据的采集设置后,可以显示数据处理方式选择界面,该选择界面中包含多种数据处理方式供用户选择。当用户从中选择出与多路图像数据对应的一种或多种数据处理方式后,应用程序将该一种或多种数据处理方式发送至应用程序框架层,以使应用程序框架层根据前述实施例中所介绍的方法从多路图像数据中选出至少一路第一图像数据,并根据设定的各数据处理方式对该至少一路第一图像数据进行处理。

另外,可选地,如前述实施例中所提及的,用户还可以在应用程序中设置与各数据处理方式对应的数据选择依据,以供应用程序框架层从多路图像数据中选择出与每种数据处理方式对应的第一图像数据。因此,可选地,还可以在用户选择出一种数据处理方式时,弹出数据选择依据设置界面,其中包含有多种数据选择依据供用户选择。

由于对多路图像数据的处理逻辑都在应用程序框架层中实现,应用程序仅需要向应用程序框架层输入设置信息以及接收应用程序框架层的处理结果,降低了应用程序的开发难度。

下面结合图5所示实施例,以实际采集的多路图像数据包括预览图像数据和拍照图像数据,对多路图像数据的处理包括滤镜和美颜处理为例进行说明本发明实施例提供的数据处理方法。

图5为本发明实施例提供的一种数据处理方法的交互图,如图5所示,可以包括如下步骤:

301、应用程序响应于用户的设置,触发摄像头开启以采集预览图像数据和拍照图像数据。

302、应用程序将用户设置的滤镜和美颜方式发送至应用程序框架层。

303、应用程序框架层接收来自于硬件抽象层的预览图像数据和拍照图像数据。

304、应用程序框架层选出拍照图像数据进行滤镜和美颜处理。

305、应用程序框架层将拍照图像数据的滤镜和美颜结果同步到预览图像数据。

比如根据预先图像数据与拍照图像数据的分辨率比例,对已经处理后的拍照图像数据进行插值或降采样处理,以插值或降采样的处理结果替换掉原来的预览图像数据即可。

306、应用程序框架层将处理后的预览图像数据和拍照图像数据发送至应用程序。

用户从而可以看到经过滤镜和美颜处理后的预览图像数据。

以下将详细描述本发明的一个或多个实施例的数据处理装置。本领域技术人员可以理解,这些数据处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。

图6为与图3所示实施例对应的一种数据处理装置的结构示意图,该数据处理装置对应于应用程序框架层,如图6所示,该装置包括:接收模块11、选择模块12、处理模块13、发送模块14。

接收模块11,用于接收硬件抽象层发送的多路图像数据。

选择模块12,用于从所述多路图像数据中选出至少一路第一图像数据。

处理模块13,用于根据设定的数据处理方式对选出的所述至少一路第一图像数据进行处理。

其中,所述至少一路第一图像数据的路数小于所述多路图像数据的路数。

可选地,该处理模块13,还用于根据所述至少一路第一图像数据的处理结果,处理所述多路图像数据中的至少一路第二图像数据。

该装置还包括:发送模块14,用于将处理后的图像数据传输至应用程序;或者,将处理后的图像数据以及所述多路图像数据中未被处理的图像数据传输至应用程序。

可选地,所述处理模块13具体用于:

根据所述至少一路第一图像数据对应的图像分辨率与所述至少一路第二图像数据对应的图像分辨率,对所述至少一路第一图像数据的处理结果进行尺寸变换处理,以尺寸变换后的结果替换所述至少一路第二图像数据。

可选地,在设定的数据处理方式包括物体识别处理时,所述处理模块13具体用于:根据所述至少一路第一图像数据中的物体识别结果,在所述至少一路第二图像数据中添加与所述物体识别结果对应的图像语义信息。

可选地,所述接收模块11还用于:接收应用程序发送的数据选择依据。

相应地,所述选择模块12具体用于:根据所述数据选择依据从所述多路图像数据中选出所述至少一路第一图像数据。

其中,所述数据选择依据包括如下一种:性能满足设定条件、质量满足设定条件、设定的特定相机数据、预设的数据处理方式与图像数据的对应关系。

可选地,所述选择模块12还用于:

获取终端设备的资源使用状态;根据所述终端设备的资源使用状态确定数据选择依据;根据所述数据选择依据从所述多路图像数据中选出所述至少一路第一图像数据。

其中,所述选择模块12具体用于:

根据所述终端设备的资源使用状态以及预先设定的所述数据处理方式对应的资源消耗量,确定数据选择依据。

其中,所述数据选择依据为性能满足设定条件或质量满足设定条件。

具体地,所述数据选择依据为性能满足设定条件,所述选择模块12具体用于:

从所述多路图像数据中按照对应图像分辨率由低到高的顺序选择图像数据作为所述至少一路第一图像数据。

具体地,所述数据选择依据为质量满足设定条件,所述选择模块12具体用于:

从所述多路图像数据中按照对应图像分辨率由高到低的顺序选择图像数据作为所述至少一路第一图像数据。

图6所示装置可以执行图3的方法,本实施例未详细描述的部分,可参考对图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图3所示实施例中的描述,在此不再赘述。

在一个可能的设计中,图6所示数据处理装置的结构可实现为一电子设备,该电子设备为用户终端设备,比如智能手机,如图7所示,该用户终端设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持用户终端设备执行上述各所示实施例中提供的数据处理方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:

接收硬件抽象层发送的多路图像数据;

从所述多路图像数据中选出至少一路第一图像数据;

根据设定的数据处理方式对选出的所述至少一路第一图像数据进行处理。

可选地,所述处理器21还用于执行前述各所示方法步骤中的全部或部分步骤。

其中,所述用户终端设备的结构中还可以包括通信接口23,用于用户终端设备与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存用户终端设备所用的计算机软件指令,其包含用于执行上述各所示方法实施例中数据处理方法所涉及的程序。

图8为与图4所示实施例对应的一种数据处理装置的结构示意图,如图8所示,该装置包括:发送模块31、接收模块32。

发送模块31,用于将数据处理方式发送至应用程序框架层,以使所述应用程序框架层根据所述数据处理方式对多路图像数据中的至少一路图像数据进行处理,所述多路图像数据由硬件抽象层发送至所述应用程序框架层。

接收模块32,用于接收所述应用程序框架层发送的处理后的图像数据。

可选地,所述发送模块31还用于:

将数据选择依据发送至所述应用程序框架层,以供所述应用程序框架层选出所述至少一路图像数据。

图8所示装置可以执行图4所示实施例的方法,本实施例未详细描述的部分,可参考对图4所示实施例的相关说明。该技术方案的执行过程和技术效果参见图4所示实施例中的描述,在此不再赘述。

在一个可能的设计中,图8所示数据处理装置的结构可实现为一电子设备,该电子设备为用户终端设备,比如智能手机,如图9所示,该用户终端设备可以包括:处理器41和存储器42。其中,所述存储器42用于存储支持用户终端设备执行上述各所示实施例中提供的数据处理方法的程序,所述处理器41被配置为用于执行所述存储器42中存储的程序。

所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器41执行时能够实现如下步骤:

将数据处理方式发送至应用程序框架层,以使所述应用程序框架层根据所述数据处理方式对多路图像数据中的至少一路图像数据进行处理,所述多路图像数据由硬件抽象层发送至所述应用程序框架层;

接收所述应用程序框架层发送的处理后的图像数据。

可选地,所述处理器41还用于执行前述各所示方法步骤中的全部或部分步骤。

其中,所述用户终端设备的结构中还可以包括通信接口43,用于用户终端设备与其他设备或通信网络通信。

另外,本发明实施例提供了一种计算机存储介质,用于储存用户终端设备所用的计算机软件指令,其包含用于执行上述各所示方法实施例中数据处理方法所涉及的程序。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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