CN106020777B - 一种数据处理方法、装置及系统 - Google Patents
一种数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN106020777B CN106020777B CN201610287018.3A CN201610287018A CN106020777B CN 106020777 B CN106020777 B CN 106020777B CN 201610287018 A CN201610287018 A CN 201610287018A CN 106020777 B CN106020777 B CN 106020777B
- Authority
- CN
- China
- Prior art keywords
- data
- data processing
- acquisition
- application program
- processed result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Abstract
本发明涉及Android系统领域,尤其涉及一种数据处理方法、装置及系统,该方法为,接收多个应用程序各自发送的数据处理命令;根据获得的多个数据处理命令,设置数据采集参数;指示数据采集设备基于数据采集参数进行数据采集,并接收数据采集设备返回的数据采集结果;分别对数据采集结果进行处理,获得对应的数据处理结果;将获得的每一个数据处理结果发送至相应的应用程序,这样,可以支持多个应用程序同时获取数据,并且,进行处理后再发送给相应的应用程序,使得各个应用程序不会受到数据采集设备对数据采集结果的限制,而获得符合本身业务需求的数据。
Description
技术领域
本发明涉及Android系统领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
目前,在基于Android系统的许多应用场景中,有越来越多的应用程序需要同时去获取并处理数据,例如,获取MIC采集到的音频数据或camera采集到的视频数据,进而对数据进行各种分析处理。例如,用户通过一个应用程序进行视频聊天,同时需要通过另一个应用程序进行人脸识别;又例如,用户通过一个应用程序进行语音聊天,同时有另一个应用程序同时需要采集语音数据用于语音识别或声纹处理。
但是,现有技术下,Android原生框架并不支持这种应用场景和需求。也就是说,同一时刻,对于采集到的视频数据,只能有一个应用程序获取并进行处理,并且,Android应用程序不能随意设置视频数据的参数,例如,视频的分辨率和帧率,只能设置camera硬件支持的分辨率和帧率,这样,应用程序不能获取到符合业务所需的分辨率和帧率的视频数据。同样地,同一时刻,对于同一个MIC,Android系统中只允许一个应用程序与它建立连接并获取到采集的音频数据,并且,应用程序也无法随意设置音频数据的参数,例如,音频的采样率和声道数,也就不能获取到所需的采样率和声道数的音频数据,这样就无法满足实际业务场景中多个应用程序同时获取数据的需求。
由此可见,现有技术下,在Android系统中,不支持多个应用程序同时获取数据并进行处理。
发明内容
本发明实施例提供一种数据处理方法、装置及系统,以解决现有技术中不能支持多个应用程序同时获取数据并进行处理的问题。
本发明实施例提供的具体技术方案如下:
一种数据处理方法,包括:
接收多个应用程序各自发送的数据处理命令;
根据获得的多个数据处理命令,设置数据采集参数;
指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;
分别对上述数据采集结果进行处理,获得对应的数据处理结果;
将获得的每一个数据处理结果发送至相应的应用程序。
本发明实施例中,接收多个应用程序各自发送的数据处理命令;根据获得的多个数据处理命令,设置数据采集参数;指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;分别对上述数据采集结果进行处理,获得对应的数据处理结果;将获得的每一个数据处理结果发送至相应的应用程序,这样,可以支持多个应用程序同时获取数据,并且,根据每一个数据处理命令,将数据采集结果进行相应处理后,再发送给相应的应用程序,可以使得各个应用程序获得符合本身业务需求的数据。进一步地,本发明实施例中的数据处理方法,可以灵活适配到Android原生框架层,基于Android原生框架的应用程序不需要做任何修改就可正常运行,非常方便。
较佳的,接收多个应用程序各自发送的数据处理命令之后,根据获得的多个数据处理命令,设置数据采集参数之前,进一步包括:
分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值;其中,上述内存统计量表示,应用程序当前累计接收到的数据处理结果的总大小。
这样,分别给每一个应用程序设置一个内存统计量,便于管理各个应用程序接收到数据结果的大小。
较佳的,根据获得的多个数据处理命令,设置数据采集参数,具体包括:
若上述数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数,其中,一个数据处理命令中至少包括视频数据的分辨率;或,
若上述数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数,其中,一个数据处理命令中至少包括音频数据的采样率。
较佳的,分别对上述数据采集结果进行处理,获得对应的数据处理结果,具体包括:
若上述数据处理命令为视频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的视频数据参数进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率;或,
若上述数据处理命令为音频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的音频数据参数进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
较佳的,进一步包括:
若确定有多个数据处理命令相同,则根据上述多个数据处理命令中任意一个数据处理命令,对上述数据采集结果进行处理,获得相应的数据处理结果,并将上述数据处理结果分别发送至上述多个数据处理命令各自对应的应用程序。
这样,当多个数据处理命令相同时,只需进行一次处理,节省了CPU开销和内存开销。
较佳的,将获得的每一个数据处理结果发送至相应的应用程序,具体包括:
分别判断每一个应用程序对应的内存统计量的当前取值是否小于当前的最大值,若确定小于时,则将获得的每一个数据处理结果发送至相应的应用程序。
这样,在发送时,进行一次内存判断,可以防止某些恶意(或有缺陷的)应用程序不断获取数据,占用宝贵的内存资源,进而影响其他应用程序的正常运行。
一种数据处理装置,包括:
第一接收单元,用于接收多个应用程序各自发送的数据处理命令;
设置单元,用于根据获得的多个数据处理命令,设置数据采集参数;
第二接收单元,用于指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;
处理单元,用于分别对上述数据采集结果进行处理,获得对应的数据处理结果;
发送单元,用于将获得的每一个数据处理结果发送至相应的应用程序。
本发明实施例中,接收多个应用程序各自发送的数据处理命令;根据获得的多个数据处理命令,设置数据采集参数;指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;分别对上述数据采集结果进行处理,获得对应的数据处理结果;将获得的每一个数据处理结果发送至相应的应用程序,这样,可以支持多个应用程序同时获取数据,并且,根据每一个数据处理命令,将数据采集结果进行相应处理后,再发送给相应的应用程序,可以使得各个应用程序获得符合本身业务需求的数据。进一步地,本发明实施例中的数据处理方法,可以灵活适配到Android原生框架层,基于Android原生框架的应用程序不需要做任何修改就可正常运行,非常方便。
较佳的,接收多个应用程序各自发送的数据处理命令之后,根据获得的多个数据处理命令,设置数据采集参数之前,进一步包括:
内存管理单元,用于分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值;其中,上述内存统计量表示,应用程序当前累计接收到的数据处理结果的总大小。
这样,分别给每一个应用程序设置一个内存统计量,便于管理各个应用程序接收到数据结果的大小。
较佳的,根据获得的多个数据处理命令,设置数据采集参数时,设置单元具体用于:
若上述数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数,其中,一个数据处理命令中至少包括视频数据的分辨率;或,
若上述数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数,其中,一个数据处理命令中至少包括音频数据的采样率。
较佳的,分别对上述数据采集结果进行处理,获得对应的数据处理结果时,处理单元具体用于:
若上述数据处理命令为视频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的视频数据参数进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率;或,
若上述数据处理命令为音频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的音频数据参数进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
较佳的,处理单元进一步用于:
若确定有多个数据处理命令相同,则根据上述多个数据处理命令中任意一个数据处理命令,对上述数据采集结果进行处理,获得相应的数据处理结果,并由发送单元将上述数据处理结果分别发送至上述多个数据处理命令各自对应的应用程序。
这样,当多个数据处理命令相同时,只需进行一次处理,节省了CPU开销和内存开销。
较佳的,将获得的每一个数据处理结果发送至相应的应用程序时,发送单元具体用于:
分别判断每一个应用程序对应的内存统计量的当前取值是否小于当前的最大值,若确定小于时,则将获得的每一个数据处理结果发送至相应的应用程序。
这样,在发送时,进行一次内存判断,可以防止某些恶意(或有缺陷的)应用程序不断获取数据,占用宝贵的内存资源,进而影响其他应用程序的正常运行。
一种数据处理系统,至少包括多个应用程序、数据采集设备和数据分发模块,其中,
多个应用程序,用于各自向数据分发模块发送数据处理命令;
数据采集设备,用于基于数据分发模块指示的数据采集参数进行数据采集,并将数据采集结果返回给数据分发模块;
数据分发模块,用于接收上述多个应用程序各自发送的数据处理命令,根据获得的多个数据处理命令,设置数据采集参数,并指示数据采集设备基于上述数据采集参数进行数据采集,接收上述数据采集设备返回的数据采集结果,以及,分别对上述数据采集结果进行处理,获得对应的数据处理结果,并将获得的每一个数据处理结果发送至相应的应用程序。
附图说明
图1为本发明实施例中,数据处理方法概述流程图;
图2为本发明实施例中,数据处理系统结构示意图;
图3为本发明实施例中,数据处理方法详细流程图;
图4为本发明实施例中,数据处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中不能支持多个应用程序同时获取数据并进行处理的问题,本发明实施例中,设置一个数据分发模块,当接收到不同应用程序发送的的数据处理命令时,设置数据采集参数,并获取采集到的数据,以及分别将获取到的数据进行处理,并将数据处理结果发送给相应的应用程序。
下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
参阅图1所示,本发明实施例中,数据处理方法的具体流程如下:
步骤100:接收多个应用程序各自发送的数据处理命令。
具体为,本发明实施例中,设置一个数据分发模块,在多个应用程序需要同时获取并处理数据时,多个应用程序发送的数据处理命令会先发送到数据分发模块,数据分发模块接收多个应用程序发送的数据处理命令,这样,便于实现多个数据处理命令的统一管理。
其中,数据处理命令中至少包括数据处理的参数,具体为:若数据处理命令为视频数据处理命令,则数据处理命令中至少包括视频数据的分辨率和帧率;或,若数据处理命令为音频数据处理命令,则数据处理命令中至少包括音频数据的采样率和声道数。当然,并不仅限于上述列举的参数,还可以包括其它和音频数据、视频数据相关的参数,这里就不再一一列举了,本发明实施例中仅以视频数据的分辨率和帧率、音频数据的采样率和声道数为例进行说明。
进一步地,在执行完步骤100之后,即接收多个应用程序各自发送的数据处理命令之后,包括:
分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值,例如为MEM(max)。
其中,内存统计量的初始赋值为0,表示应用程序当前累计接收到的数据处理结果的总大小。
其中,设置内存统计量,是因为可能有某些恶意(或有缺陷的)应用程序,获取到数据后,没有释放内存,或不断获取数据,导致系统可用内存越来越少,可能导致所有的应用程序都无法获取到数据,进而无法正常运行,给每一个应用程序设置一个内存统计量,可以监控各个应用程序累计获取到的数据大小,进而控制各个应用程序占用的内存大小。
实际中,多个应用程序发送的数据处理命令中的数据处理参数一般是不同的,所需的内存也是不同的,因此,需要根据不用应用程序的需求和系统当前可用内存大小,按照一定比例来分别计算上述多个应用程序对应的内存统计量的最大值,并且,系统当前可用内存大小,或当前发送数据处理命令的应用程序的个数可能发生变化,因此,每隔一段时间,都会重新进行计算MEM(max)。其中,各个应用程序对应的MEM(max)和系统当前可用内存成正比,和当前应用程序个数成反比,即系统当前可用内存增大了,那么各个应用程序对应的MEM(max)就增大,系统当前可用内存减小了,那么各个应用程序对应的MEM(max)就减小;当前应用程序个数增加了,那么各个应用程序对应的MEM(max)就减小,当前应用程序个数减小了,那么各个应用程序对应的MEM(max)就增加。
步骤110:根据获得的多个数据处理命令,设置数据采集参数。
执行步骤110时,具体可以分为以下两种情况:
第一种情况:数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数。
第二种情况:数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数。
其中,进行选择时,可以从提取最大的前N个视频数据的分辨率或最大的前N个音频数据的采样率中,选择最大的一个,也可以选择次最大的一个,具体可以根据实际情况进行选择,这样,可以达到效果和性能最佳。
步骤120:指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果。
执行步骤120时,具体包括:
首先,指示数据采集设备基于上述数据采集参数进行数据采集。
例如,接收到两个应用程序发送的视频数据处理命令,则视频数据采集设备为camera,这两个应用程序所需的视频分辨率分别为P(1)、P(2),且P(1)>P(2),则数据分发模块选择P(1)作为数据采集参数,并从camera硬件所支持的分辨率中选择出与P(1)最接近的分辨率P(hardware),将P(hardware)设置给camera。
又例如,接收到两个应用程序发送的音频数据处理命令,则音频数据采集设备为MIC,这两个应用程序所需的音频采样率分别为S(1)、S(2),且S(1)>S(2),则数据分发模块选择S(1)作为数据采集参数,并将S(1)设置给MIC。
然后,数据采集设备采集到数据后,将数据采集结果返回给数据分发模块。
步骤130:分别对上述数据采集结果进行处理,获得对应的数据处理结果。
也就是说,数据采集设备基于数据采集参数获得的数据采集结果,并一定都能满足所有应用程序的需求,因此,需要再对数据采集结果分别进行处理,获得满足每一个应用程序所需的数据处理结果。
执行步骤130时,可以分为以下两种情况:
第一种情况:上述数据处理命令为视频数据处理命令,则分别按照每一个数据处理命令中的的视频数据参数,对上述数据采集结果进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率。
具体为,分别按照每一个数据处理命令中的视频数据分辨率和帧率,将视频数据采集结果调整为相应的分辨率和帧率,获得满足相应应用程序所需的数据处理结果。
例如,接收到两个应用程序发送的视频数据处理命令,这两个应用程序所需的视频分辨率分别为P(1)、P(2),所需的帧率分别为f(1)、f(2),则数据分发模块接收到camera返回的数据采集结果后,分别对该数据采集结果进行处理,即按照分辨率为P(1)、帧率为f(1)进行处理,获得对应的数据处理结果,以及按照分辨率为P(2)、帧率为f(2)进行处理,获得对应的数据处理结果。
第二种情况:上述数据处理命令为音频数据处理命令,则分别按照每一个数据处理命令中的音频数据参数,对上述数据采集结果进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
具体为,分别按照每一个数据处理命令中的音频数据采样率和声道数,对音频数据采集结果进行音频重采样,获得满足相应应用程序所需的数据处理结果。
例如,接收到两个应用程序发送的音频数据处理命令,这两个应用程序所需的音频采样率分别为S(1)、S(2),所需的声道数分别为H(1)、H(2),则数据分发模块接收到MIC返回的数据采集结果后,分别对该数据采集结果进行处理,即按照采样率为S(1)、声道数为H(1)进行处理,获得对应的数据处理结果,以及按照采样率为S(2)、声道数为H(2)进行处理,获得对应的数据处理结果。
进一步地,对于有多个应用程序的数据处理命令中数据处理参数相同的情况,则不需要针对这多个应用程序的数据处理命令,对数据采集结果都进行一次相应处理,只需进行一次相应处理,获得相应的数据处理结果,并将数据处理结果分别发送给上述多个数据处理命令各自对应的应用程序即可,即数据处理命令中数据处理参数相同的多个应用程序,可以共享一份数据处理结果,节省了CPU开销和内存开销。
这样,将数据采集结果,根据不同的数据处理命令进行相应处理,可以使得应用程序可以获取到自身业务所需的数据,无需在获取到数据后,对数据进行二次处理才能使用。
步骤140:将获得的每一个数据处理结果发送至相应的应用程序。
执行步骤140时,具体包括:
首先,分别判断每一个应用程序对应的内存统计量的当前取值是否小于上述内存统计量的当前的最大值。
然后,若确定小于时,则将数据处理结果发送给相应的应用程序,否则,本次不进行发送。
进一步地,应用程序接收到数据处理结果(即处理后的数据)后,根据上述数据处理结果的大小,调整该应用程序对应的内存统计量的当前的取值:将上述应用程序对应的内存统计量的取值加上上述数据处理结果的大小。
同样地,当应用程序在使用完接收到的数据处理结果后,调整该应用程序对应的内存统计量的当前的取值:将上述应用程序对应的内存统计量的取值减去上述数据处理结果的大小,即将该数据处理结果对应的内存释放掉,避免占用过多的内存资源。
这样,在进行发送时,进行一次内存判断,可以防止某些恶意(或有缺陷的)应用程序不断获取数据,占用宝贵的内存资源,进而影响其他应用程序的正常运行。
具体参阅图2所示,本发明实施例中,数据处理系统的结构框架示意图。
1)可以有多个Android应用程序,例如,应用程序1和应用程序2同时发出数据处理命令(例如,视频数据处理命令和音频数据处理命令),应用程序发出的数据处理命令先发送到数据分发模块。
2)数据分发模块,根据接收到的多个数据处理命令,设置数据采集参数,并配置给Android框架层。
3)数据采集设备,例如,camera驱动或声卡/MIC驱动,就会基于数据采集参数进行数据采集,并将采集到数据通过Android框架层发送给数据分发模块。
4)数据分发模块根据各个应用程序的数据处理命令,将数据采集结果进行相应处理,并将数据处理结果分别发送给相应的应用程序。
其中,将数据分发模块插入到Android原始框架层,例如可以通过嵌入式技术实现,就可以实现本发明的数据处理方法,Android原始框架层不需要做任何实质性修改,只需在执行数据处理时,调用数据分发模块即可。
这样,多个应用程序可以同时获取并处理视频数据或音频数据,并且,可以获取到符合自身业务所需的视频数据或音频数据。
下面采用一个具体的应用场景对上述实施例作出进一步详细说明。具体参阅图3所示,本发明实施例中,数据处理方法的执行过程具体如下:
步骤200:接收多个应用程序发送的数据处理命令。
步骤201:分别为每一个应用程序配置一个内存统计量,并分别计算出每一个内存统计量的当前的最大值。
具体为,分别根据每一个数据处理命令和系统当前的内存大小,计算每一个内存统计量的当前的最大值。
步骤202:根据各个数据处理命令,设置数据采集参数。
步骤203:指示数据采集设备进行数据采集,并接收数据采集设备返回的数据采集结果。
步骤204:根据每一个数据处理命令,分别对数据采集结果进行处理,获得对应的数据处理结果。
步骤205:分别判断每一个应用程序对应的内存统计量的当前的取值是否小于当前的最大值,若是,则执行步骤206,否则,执行步骤207。
步骤206:将数据处理结果发送给相应的应用程序。
步骤207:本次不用给相应的应用程序发送。
基于上述实施例,参阅图4所示,本发明实施例中,数据处理装置,具体包括:
第一接收单元30,用于接收多个应用程序各自发送的数据处理命令;
设置单元31,用于根据获得的多个数据处理命令,设置数据采集参数;
第二接收单元32,用于指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;
处理单元33,用于分别对上述数据采集结果进行处理,获得对应的数据处理结果;
发送单元34,用于将获得的每一个数据处理结果发送至相应的应用程序。
较佳的,接收多个应用程序各自发送的数据处理命令之后,根据获得的多个数据处理命令,设置数据采集参数之前,进一步包括:
内存管理单元35,用于分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值;其中,上述内存统计量表示,应用程序当前累计接收到的数据处理结果的总大小。
较佳的,根据获得的多个数据处理命令,设置数据采集参数时,设置单元31具体用于:
若上述数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数,其中,一个数据处理命令中至少包括视频数据的分辨率;或,
若上述数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数,其中,一个数据处理命令中至少包括音频数据的采样率。
较佳的,分别对上述数据采集结果进行处理,获得对应的数据处理结果时,处理单元33具体用于:
若上述数据处理命令为视频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的视频数据参数进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率;或,
若上述数据处理命令为音频数据处理命令,则将上述数据采集结果分别按照每一个数据处理命令中的音频数据参数进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
较佳的,处理单元33进一步用于:
若确定有多个数据处理命令相同,则根据上述多个数据处理命令中任意一个数据处理命令,对上述数据采集结果进行处理,获得相应的数据处理结果,并由发送单元34将上述数据处理结果分别发送至上述多个数据处理命令各自对应的应用程序。
较佳的,将获得的每一个数据处理结果发送至相应的应用程序时,发送单元34具体用于:
分别判断每一个应用程序对应的内存统计量的当前取值是否小于当前的最大值,若确定小于时,则将获得的每一个数据处理结果发送至相应的应用程序。
综上所述,本发明实施例中,接收多个应用程序各自发送的数据处理命令;根据获得的多个数据处理命令,设置数据采集参数;指示数据采集设备基于上述数据采集参数进行数据采集,并接收上述数据采集设备返回的数据采集结果;分别对上述数据采集结果进行处理,获得对应的数据处理结果;将获得的每一个数据处理结果发送至相应的应用程序,这样,多个应用程序需要获取数据时,可以同时发送数据处理命令,在接收到多个应用程序发送的数据处理命令时,指示进行数据采集,并将采集到的数据分发给各个应用程序,可以支持多个应用程序同时获取数据,并且,根据每一个数据处理命令,将数据采集结果进行相应处理后,再发送给相应的应用程序,可以使得各个应用程序不会受到数据采集设备硬件本身对数据采集结果的限制,获得符合本身业务需求的数据,以及,本发明实施例中的数据处理方法,可以灵活适配到Android原生框架层,基于Android原生框架的应用程序不需要做任何实质性的修改就可正常运行,非常方便。
并且,在向应用程序发送数据时,进行一次内存判断,可以防止某些恶意(或有缺陷的)应用程序不断获取数据,占用宝贵的内存资源,进而影响其他应用程序的正常运行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
接收多个应用程序各自发送的数据处理命令;
根据获得的多个数据处理命令,设置数据采集参数;
指示数据采集设备基于所述数据采集参数进行数据采集,并接收所述数据采集设备返回的数据采集结果;
分别对所述数据采集结果进行处理,获得对应的数据处理结果;
将获得的每一个数据处理结果发送至相应的应用程序。
2.如权利要求1所述的方法,其特征在于,接收多个应用程序各自发送的数据处理命令之后,根据获得的多个数据处理命令,设置数据采集参数之前,进一步包括:
分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值;其中,所述内存统计量表示应用程序当前累计接收到的数据处理结果的总大小。
3.如权利要求1所述的方法,其特征在于,根据获得的多个数据处理命令,设置数据采集参数,具体包括:
若所述数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数,其中,一个数据处理命令中至少包括视频数据的分辨率;或,
若所述数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数,其中,一个数据处理命令中至少包括音频数据的采样率。
4.如权利要求1或3所述的方法,其特征在于,分别对所述数据采集结果进行处理,获得对应的数据处理结果,具体包括:
若所述数据处理命令为视频数据处理命令,则将所述数据采集结果分别按照每一个数据处理命令中的视频数据参数进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率;或,
若所述数据处理命令为音频数据处理命令,则将所述数据采集结果分别按照每一个数据处理命令中的音频数据参数进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
5.如权利要求4所述的方法,其特征在于,进一步包括:
若确定有多个数据处理命令相同,则根据所述多个数据处理命令中任意一个数据处理命令,对所述数据采集结果进行处理,获得相应的数据处理结果,并将所述数据处理结果分别发送至所述多个数据处理命令各自对应的应用程序。
6.如权利要求2所述的方法,其特征在于,将获得的每一个数据处理结果发送至相应的应用程序,具体包括:
分别判断每一个应用程序对应的内存统计量的当前取值是否小于当前的最大值,若确定小于时,则将获得的每一个数据处理结果发送至相应的应用程序。
7.一种数据处理装置,其特征在于,包括:
第一接收单元,用于接收多个应用程序各自发送的数据处理命令;
设置单元,用于根据获得的多个数据处理命令,设置数据采集参数;
第二接收单元,用于指示数据采集设备基于所述数据采集参数进行数据采集,并接收所述数据采集设备返回的数据采集结果;
处理单元,用于分别对所述数据采集结果进行处理,获得对应的数据处理结果;
发送单元,用于将获得的每一个数据处理结果发送至相应的应用程序。
8.如权利要求7所述的装置,其特征在于,接收多个应用程序各自发送的数据处理命令之后,根据获得的多个数据处理命令,设置数据采集参数之前,进一步包括:
内存管理单元,用于分别给每一个应用程序设置一个内存统计量,并按照预设周期,根据每一个应用程序的数据处理命令和系统当前可用内存大小,分别计算每一个应用程序对应的内存统计量的当前的最大值;其中,所述内存统计量表示应用程序当前累计接收到的数据处理结果的总大小。
9.如权利要求7所述的装置,其特征在于,根据获得的多个数据处理命令,设置数据采集参数时,设置单元具体用于:
若所述数据处理命令为视频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个视频数据的分辨率,并从中选择一个视频数据的分辨率,以及将选取的一个视频数据的分辨率作为数据采集参数,其中,一个数据处理命令中至少包括视频数据的分辨率;或,
若所述数据处理命令为音频数据处理命令,则从获得的多个数据处理命令中提取最大的前N个音频数据的采样率,并从中选择一个音频数据的采样率,以及将选择的一个音频数据的采样率作为数据采集参数,其中,一个数据处理命令中至少包括音频数据的采样率。
10.如权利要求7或9所述的装置,其特征在于,分别对所述数据采集结果进行处理,获得对应的数据处理结果时,处理单元具体用于:
若所述数据处理命令为视频数据处理命令,则将所述数据采集结果分别按照每一个数据处理命令中的视频数据参数进行处理,获得对应的数据处理结果,其中,视频数据参数至少包括视频数据的分辨率和帧率;或,
若所述数据处理命令为音频数据处理命令,则将所述数据采集结果分别按照每一个数据处理命令中的音频数据参数进行处理,获得对应的数据处理结果,其中,音频数据参数至少包括音频数据的采样率和声道数。
11.如权利要求10所述的装置,其特征在于,处理单元进一步用于:
若确定有多个数据处理命令相同,则根据所述多个数据处理命令中任意一个数据处理命令,对所述数据采集结果进行处理,获得相应的数据处理结果,并由发送单元将所述数据处理结果分别发送至所述多个数据处理命令各自对应的应用程序。
12.如权利要求8所述的装置,其特征在于,将获得的每一个数据处理结果发送至相应的应用程序时,发送单元具体用于:
分别判断每一个应用程序对应的内存统计量的当前取值是否小于当前的最大值,若确定小于时,则将获得的每一个数据处理结果发送至相应的应用程序。
13.一种数据处理系统,其特征在于,至少包括多个应用程序、数据采集设备和数据分发模块,其中,
多个应用程序,用于各自向数据分发模块发送数据处理命令;
数据采集设备,用于基于数据分发模块指示的数据采集参数进行数据采集,并将数据采集结果返回给数据分发模块;
数据分发模块,用于接收所述多个应用程序各自发送的数据处理命令,根据获得的多个数据处理命令,设置数据采集参数,并指示数据采集设备基于所述数据采集参数进行数据采集,接收所述数据采集设备返回的数据采集结果,以及,分别对所述数据采集结果进行处理,获得对应的数据处理结果,并将获得的每一个数据处理结果发送至相应的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610287018.3A CN106020777B (zh) | 2016-04-29 | 2016-04-29 | 一种数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610287018.3A CN106020777B (zh) | 2016-04-29 | 2016-04-29 | 一种数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020777A CN106020777A (zh) | 2016-10-12 |
CN106020777B true CN106020777B (zh) | 2018-08-07 |
Family
ID=57081716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610287018.3A Active CN106020777B (zh) | 2016-04-29 | 2016-04-29 | 一种数据处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020777B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234190B (zh) * | 2016-12-22 | 2019-02-05 | 视联动力信息技术股份有限公司 | 一种视联网设备的管理方法和系统 |
CN106649140A (zh) * | 2016-12-29 | 2017-05-10 | 深圳前海弘稼科技有限公司 | 一种数据处理方法、装置及系统 |
CN108107250B (zh) * | 2018-01-05 | 2020-10-09 | 深圳市道通科技股份有限公司 | 一种示波器数据处理方法、装置及示波器 |
CN110351105B (zh) * | 2018-04-02 | 2022-07-19 | 阿里巴巴集团控股有限公司 | 一种抽样配置方法及装置 |
CN110704201A (zh) * | 2018-07-10 | 2020-01-17 | 深圳市优必选科技有限公司 | 多媒体数据共享方法及终端设备 |
CN111830039B (zh) * | 2020-07-22 | 2021-07-27 | 南京认知物联网研究院有限公司 | 一种智能化的产品质量检测方法及装置 |
CN113032054B (zh) * | 2021-04-21 | 2023-07-14 | 杭州华橙软件技术有限公司 | 一种服务执行方法、装置、存储介质及电子装置 |
CN113076082B (zh) * | 2021-06-03 | 2021-09-03 | 杭州星犀科技有限公司 | 音频源处理的方法、系统、电子装置和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031100A (ja) * | 2004-07-12 | 2006-02-02 | Olympus Corp | 電子機器、データ更新システム及びデータ更新プログラム |
CN1744048A (zh) * | 2004-09-02 | 2006-03-08 | 英特尔公司 | 摄像机共享 |
CN101035260A (zh) * | 2007-04-11 | 2007-09-12 | 北京中星微电子有限公司 | 一种访问视频设备的方法和系统 |
CN101344869A (zh) * | 2008-08-22 | 2009-01-14 | 北京中星微电子有限公司 | Mac OS X操作系统上的USB摄像头驱动解决方案 |
CN101667143A (zh) * | 2009-09-18 | 2010-03-10 | 北京中星微电子有限公司 | 一种视频数据处理系统及方法 |
CN101848356A (zh) * | 2009-03-24 | 2010-09-29 | 鸿富锦精密工业(深圳)有限公司 | 网络语音视频通信系统及方法 |
-
2016
- 2016-04-29 CN CN201610287018.3A patent/CN106020777B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031100A (ja) * | 2004-07-12 | 2006-02-02 | Olympus Corp | 電子機器、データ更新システム及びデータ更新プログラム |
CN1744048A (zh) * | 2004-09-02 | 2006-03-08 | 英特尔公司 | 摄像机共享 |
CN101035260A (zh) * | 2007-04-11 | 2007-09-12 | 北京中星微电子有限公司 | 一种访问视频设备的方法和系统 |
CN101344869A (zh) * | 2008-08-22 | 2009-01-14 | 北京中星微电子有限公司 | Mac OS X操作系统上的USB摄像头驱动解决方案 |
CN101848356A (zh) * | 2009-03-24 | 2010-09-29 | 鸿富锦精密工业(深圳)有限公司 | 网络语音视频通信系统及方法 |
CN101667143A (zh) * | 2009-09-18 | 2010-03-10 | 北京中星微电子有限公司 | 一种视频数据处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106020777A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106020777B (zh) | 一种数据处理方法、装置及系统 | |
US11412270B2 (en) | Method and apparatus for processing multimedia file, storage medium, and electronic apparatus | |
CN109600642B (zh) | 一种cdn资源调度方法及装置 | |
Morín et al. | Toward the distributed implementation of immersive augmented reality architectures on 5G networks | |
CN107818790B (zh) | 一种多路音频混音方法及装置 | |
CN108062499A (zh) | 一种人脸识别的方法、系统及平台 | |
CN113613066B (zh) | 一种实时视频特效的渲染方法、系统、装置及存储介质 | |
CN115220921B (zh) | 资源调度方法及相关装置、图形处理器、摄像器件和介质 | |
CN107423122A (zh) | 一种复杂运维作业编排与调度系统及其方法 | |
CN107204930A (zh) | 令牌添加方法及装置 | |
CN106331764A (zh) | 一种全景视频分享方法及其分享装置 | |
CN107027176B (zh) | 一种资源调度的方法及装置 | |
CN106791648B (zh) | 一种监控视频分析方法及装置 | |
CN110034830A (zh) | 一种多子带协同检测方法、装置、基站及终端设备 | |
CN111539281A (zh) | 分布式人脸识别方法及系统 | |
CN107396030B (zh) | 一种视频通话的处理方法及调度控制端 | |
CN106598599B (zh) | 一种程序的执行方法和设备 | |
CN103002245B (zh) | 音视频通信方法及系统 | |
CN112817732A (zh) | 一种适应云边协同多数据中心场景下的流数据处理方法及系统 | |
CN104754655B (zh) | 一种业务调整方法和设备 | |
CN104185042B (zh) | 一种电视节目单校验方法及系统 | |
CN109981731B (zh) | 一种数据处理方法和设备 | |
CN106020438A (zh) | 一种虚拟现实头盔状态信息的提示方法、装置及系统 | |
CN111026793A (zh) | 一种数据处理方法、装置、介质和设备 | |
CN113141627B (zh) | 一种基于nsa的下行数据分流方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |