CN116775317B - 一种数据分配方法、装置、存储介质及电子设备 - Google Patents
一种数据分配方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116775317B CN116775317B CN202311073808.8A CN202311073808A CN116775317B CN 116775317 B CN116775317 B CN 116775317B CN 202311073808 A CN202311073808 A CN 202311073808A CN 116775317 B CN116775317 B CN 116775317B
- Authority
- CN
- China
- Prior art keywords
- data
- application program
- call request
- image
- image processing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 94
- 239000000872 buffer Substances 0.000 claims abstract description 212
- 238000012545 processing Methods 0.000 claims description 258
- 230000005540 biological transmission Effects 0.000 claims description 42
- 230000002159 abnormal effect Effects 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 37
- 238000013500 data storage Methods 0.000 claims description 13
- 239000003795 chemical substances by application Substances 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 19
- 238000003672 processing method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000010076 replication Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005286 illumination Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Facsimiles In General (AREA)
Abstract
本说明书公开了一种数据分配方法、装置、存储介质及电子设备,其中方法包括:获取至少一个应用程序针对摄像组件的调用请求,基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话,基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区,采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序,采用本说明书,通过在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据分配方法、装置、存储介质及电子设备。
背景技术
现如今,在终端设备使用摄像头的过程中,终端设备中的应用程序在运行过程中可能需要访问摄像头采集的图像数据,进而可能存在同时有多个应用程序需要访问图像数据的情况。
发明内容
本说明书实施例提供一种数据分配方法、装置、存储介质及电子设备,可以通过在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
第一方面,本说明书实施例提供一种数据分配方法,所述方法包括:
获取至少一个应用程序针对摄像组件的调用请求;
基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
第二方面,本说明书实施例提供一种数据分配方法,所述方法包括:
获取至少一个应用程序针对摄像组件的调用请求;
基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
第三方面,本说明书实施例提供一种数据分配装置,所述装置包括:
第一请求获取单元,用于获取至少一个应用程序针对摄像组件的调用请求;
会话创建单元,用于基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
第一缓冲区分配单元,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
第一数据存储单元,用于基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
第一数据发送单元,用于采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
第四方面,本说明书实施例提供一种数据分配装置,所述装置包括:
第二数据获取单元,用于获取至少一个应用程序针对摄像组件的调用请求;
输出流创建单元,用于基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
第二缓冲区分配单元,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
第二数据存储单元,用于基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
第二数据发送单元,用于采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
第五方面,本说明书实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法的步骤。
第六方面,本说明书实施例提供一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法的步骤。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并存储在各缓冲区后,根据调用请求的图像处理方式对各图像数据进行图像处理,将处理后的图像数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
附图说明
为了更清楚地说明本说明书或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的一种数据分配方法的系统架构图;
图2为本说明书实施例提供的一种数据分配方法的流程示意图;
图3为本说明书实施例提供的一种确定应用数量的举例示意图;
图4为本说明书实施例提供的一种分配缓冲区的举例示意图;
图5为本说明书实施例提供的一种得到目标数据的举例示意图;
图6为本说明书实施例提供的一种数据分配方法的流程示意图;
图7为本说明书实施例提供的一种数据分配方法的流程示意图;
图8为本说明书实施例提供的一种数据分配方法的流程示意图;
图9为本说明书实施例提供的一种数据分配装置的结构示意图;
图10为本说明书实施例提供的一种数据分配装置的结构示意图;
图11为本说明书实施例提供的一种第一缓冲区分配单元的结构示意图;
图12为本说明书实施例提供的一种代理创建单元的结构示意图;
图13为本说明书实施例提供的一种第一数据存储单元的结构示意图;
图14为本说明书实施例提供的一种数据分配装置的结构示意图;
图15为本说明书实施例提供的一种第二缓冲区分配单元的结构示意图;
图16为本说明书实施例提供的一种数据分配装置的结构示意图;
图17为本说明书实施例提供的一种电子设备的结构示意图;
图18为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
为使得本说明书的特征和优点能够更加的明显和易懂,下面将结合本说明书中的附图,对本说明书中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而非全部实施例。基于本说明书中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
现有技术中,在多应用程序访问图像数据时,所采用的方法为根据应用程序的优先级或访问权限的优先级,依次访问图像数据,不足以满足多应用程序同时访问图像数据的实际需求。
基于此,本说明书实施例提供了一种数据分配方法,采用本说明书实施例,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并存储在各缓冲区后,根据调用请求的图像处理方式对各图像数据进行图像处理,将处理后的图像数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
请参见图1,为本说明书实施例提供了一种数据分配的系统结构图。如图1所示,本说明书实施例提供的数据分配方法可以应用于终端设备,以实现数据分配的过程,本说明书实施例提供的系统结构主要包括终端设备10以及摄像组件20。其中,终端设备10可以为包括但不限于会议平板、手机、个人电脑、笔记本电脑、智能家具、车载设备、可穿戴设备等具备终端应用安装、运行等功能在内的终端设备;摄像组件20可以为终端设备10中用于摄像采集图像数据的组件或外接设备。
在本说明书实施例中,终端设备10获取到至少一个应用程序针对摄像组件20的调用请求,基于架构层的第一摄像服务中的会话管理器创建各应用程序对应的访问会话,基于调用请求再内存池中分配对应的缓冲区,基于调用请求控制摄像组件20采集图像数据,将图像数据存储于各缓冲区,采用访问会话将各图像数据传输至对应的应用程序。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并存储在各缓冲区后,根据调用请求的图像处理方式对各图像数据进行图像处理,将处理后的图像数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
基于图1所示的系统架构,下面将结合图2,对本说明书实施例提供的数据分配方法进行详细介绍。
请参见图2,为本说明书实施例提供了一种数据分配方法的流程示意图。如图2所示,所述方法可以包括以下步骤S101-步骤S105。
S101,获取至少一个应用程序针对摄像组件的调用请求;
在一个实施例中,调用请求可以为应用程序发送的获取摄像组件所拍摄的数据的请求,该调用请求中可以为包括应用程序的标识和所需图像数据的图像处理方式等信息。
可以理解的是,调用请求可以为一个应用程序针对摄像组件中的其中一个摄像组件所拍摄的图像数据发起的请求,也可以为一个应用程序针对摄像组件中多个摄像组件所拍摄的图像数据等。
其中,应用程序的标识可以为用于标记该调用请求对应的应用程序,以便于将图像数据准确地发送至该调用请求对应的应用程序,避免出现数据发生错误的情况。
图像处理方式可以为应用程序针对所要获取的图像数据的处理方式,例如可以为对图像数据的分辨率进行调整,也可以为对图像数据进行添加滤镜等。
进一步的,在获取调用请求之前,在终端设备的架构层中创建第一摄像服务,在第一摄像服务中添加会话管理器。第一摄像服务可以为继承了终端设备中的第二摄像服务,该第二摄像服务可以为终端设备中原生摄像服务。
可以理解的,由于第一摄像服务继承了第二摄像服务,因此第一摄像服务能够与终端设备中第二摄像服务原有的接口等相兼容。
会话管理器可以为用于与应用程序创建访问会话的管理器。
S102,基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
在一个实施例中,访问会话可以为第一摄像服务在获取到调用请求后,基于第一摄像服务中的会话管理器,根据调用请求中的各应用程序的标识所创建的与各应用程序对应的数据传输通道。
可以理解的,为了保证数据传输的高效性和准确性,针对同一个应用程序仅创建一个访问会话。
示例性的,一种可行的访问会话的创建和关闭方法可以为,针对调用请求中的标识创建与该标识对应的应用程序的访问会话,并在完成该调用请求对应的数据传输后,且未再接收到同一应用程序的调用请求时,关闭与该应用程序的访问会话。例如,该调用请求所请求的图像数据为持续三秒每秒三十帧的图像数据,在将九十帧的图像数据通过访问会话发送至应用程序后,未接收到该应用程序发送的其他调用请求,则关闭该访问会话。另一种可行的方法可以为,将某一帧图像数据发送至应用程序后,关闭该访问会话,当获取到下一帧图像数据时再恢复该访问会话,将该下一帧图像数据发送至应用程序。具体所采用的方法可根据实际需要进行设置。
S103,基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
在一个实施例中,获取到调用请求后,获取调用请求的至少一个应用程序的应用数量,基于应用数量在内存池中为各应用程序分配对应的缓冲区。
应用数量可以为根据调用请求中的标识进行计算,相同应用程序的标识记为一个应用程序。例如,如图3所示,图3中存在有6个调用请求,且调用请求A和调用请求D为应用程序1所发送的调用请求,调用请求B为应用程序2所发送的调用请求,调用请求C为应用程序3所发送的调用请求,因此应用数量为3。
缓冲区可以为内存池为调用请求对应的应用程序所分配的临时存储空间,每一个应用程序分配有一个一个缓冲区,用于存储获取到的图像数据。可以理解的,各缓冲区与各应用程序根据访问会话相连接,因此为了提高调用请求的处理效率,步骤S102和步骤S103可以为同步执行的步骤。
S104,基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
在一个实施例中,基于调用请求控制摄像组件采集图像数据,基于应用数量对图像数据进行复制,得到复制数据,将该复制数据分别存储于分配的各缓冲区中。
复制数据可以为基于应用数量进行复制后得到的数据,复制数据的数量与应用数量相同。例如,如图4所示,图4中的图像数据“图像a”经过复制后得到复制数据,将复制数据分别存储于内存池中各应用程序对应的缓冲区中进行存储。
进一步的,在将复制数据存储于缓冲区后,由于调用请求中可能存在图像处理方式,因此需要针对不同调用请求对复制数据进行图像处理。
示例性的,一种可行的对复制数据进行图像处理的方法可以为,解析调用请求,得到调用请求对应的图像处理方式,确定图像处理方式关联的关联硬件为图像处理硬件,基于第一调用指令使能该图像处理方式对应的图像处理硬件,基于调用请求中的图像处理方式,采用图像处理硬件和第一摄像服务中的图像处理模块对缓冲区中的复制数据进行图像处理,以得到该复制数据对应的目标数据。例如,如图5所示,图5中的各复制数据通过图像处理后,得到各复制数据分别对应的目标数据。可以看出,“图像a”经过图像处理后得到“图像①”,且“图像a”进行图像处理后得到的图像数据“图像①”对“图像a”进行了覆写,从而避免在进行将目标数据发生至应用程序时出现错误。
进一步的,若存在应用程序发送的调用请求包括多个图像处理方式,一种可行的方法可以为,基于图像处理方式的方式数量对该复制数据进行复制,得到待处理数据,并将复制后的待处理数据根据各图像处理方式进行图像处理后得到各图像处理方式对应的目标数据。需要说明的是,单一应用程序的调用请求中存在多个图像处理方式,也仍在同一个缓冲区中进行图像处理。
图像处理方式可以为对图像数据进行分辨率的调整,也可以为对图像数据添加滤镜,还可以为对图像数据进行人脸检测等。
图像处理硬件可以为终端设备中具有图像处理功能的硬件,例如GPU(图形处理器,graphics processing unit)等。
第一调用指令可以为第一摄像服务中用于使能终端设备中的图像处理硬件的指令,第一调用指令可以为预先在第一摄像服务中添加的指令,在需要使能图像处理硬件时,通过调用该第一调用指令使能图像处理硬件。
图像处理模块可以为第一摄像服务中包括有的具有图像处理功能的模块,例如可以为预先存储有的图像处理模型,也可以为具有通过网络采用云端处理器进行图像处理的算法等。
进一步的,基于调用请求控制摄像组件采集图像数据时,基于当前拍摄环境进行判断,和/或解析调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件,基于第二调用指令使能摄像复制硬件和摄像组件获取图像数据。
第二调用指令可以为第一摄像服务中用于使能终端设备中摄像辅助硬件的指令。
拍摄环境可以为根据终端设备的光敏传感器等采集到的数据确定的终端设备所处环境,例如为在不借助光照设备提供亮光时无法看到周围事物的暗光条件等。
摄像辅助硬件可以为闪光灯等硬件组件。
可以理解的,在检测到终端设备所处的拍摄环境为暗光条件时,为了能够采集到可用性高的图像数据,基于第二调用指令使能终端设备的闪光灯在采集图像数据时发出亮光。
可以理解的,即使根据拍摄环境进行判断时确定不需要摄像辅助硬件,若通过解析调用请求确定需要调用摄像辅助硬件,则仍基于第二调用指令使能摄像辅助硬件在摄像组件采集图像数据时进行工作。
S105,采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序;
在一个实施例中,在获取到各调用请求对应的目标数据后,采用各访问会话,将内存池中各缓冲区的目标数据分别发送至各应用程序。
进一步的,在将各目标数据分别发送至各应用程序后,为了便于后续采集到的图像数据能够存储于内存池中,避免内存池中空间不足,释放该缓冲区,将该缓冲区归还至内存池,内存池获取到新的图像数据后,可直接将新的图像数据存储于该缓冲区中。
进一步的,在架构层中预先创建共享代理,该共享代理用于对会话管理器等进行管理。当检测到异常状况时,对异常状况进行处理或上报,以解决该异常状况;当解决该异常状况后,控制会话管理器重新建立各缓冲区和各应用程序之间访问会话。从而避免在发生异常状况时,无法对异常状况进行及时处理,导致数据传输发生错误。
可以理解的,为了避免在发生异常状况时出现数据传输错误,一种可行的方法为,断开各缓冲区与各应用程序之间的访问会话。
其中,异常状况可以为摄像头故障、应用程序崩溃等。
进一步的,为了保证目标数据能够准确地发送至对应的应用程序,且避免图像处理和摄像组件以及终端设备在显示界面对目标数据进行预览之间发送冲突或干扰,一种可行的方法为,创建各应用程序对应的线程,采用该线程执行对该应用程序相关的图像数据的采集、处理和显示等步骤,从而提高目标数据发送的准确性和可靠性以及高效性。例如,在接收到应用程序针对图像数据的指令时,创建该应用程序的线程,基于该应用程序对应的线程执行图像数据的采集,复制数据的图像处理以及目标数据的发送等步骤。
需要说明的是,若调用请求中不包括图像数据的处理请求,则将缓冲区中的复制数据作为目标数据,将该目标数据采用访问会话传输至该调用请求对应的应用程序。
进一步的,若仅获取到一个应用程序的调用请求,则不需要对图像数据进行复制操作,就将该图像数据存储到该调用请求对应的应用程序的缓冲区中,对该图像数据进行图像处理后得到目标数据,采用对应的访问会话将该目标数据传输至该应用程序。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并存储在各缓冲区后,根据调用请求的图像处理方式对各图像数据进行图像处理,将处理后的图像数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
请参见图6,为本说明书实施例提供了一种数据分配方法的流程示意图。如图6所示,所述方法可以包括以下步骤S201-步骤S211。
S201,在架构层中创建第一摄像服务,在所述第一摄像服务中添加会话管理器;
在一个实施例中,第一摄像服务可以为终端设备的架构层中创建的用于获取和管理图像数据的服务。第一摄像服务可以为继承了终端设备中的第二摄像服务,该第二摄像服务可以为终端设备中原生摄像服务。
可以理解的,由于第一摄像服务继承了第二摄像服务,因此第一摄像服务能够与终端设备中第二摄像服务原有的接口等相兼容。
会话管理器可以为用于与应用程序创建访问会话的管理器。
S202,获取至少一个应用程序针对摄像组件的调用请求;
在一个实施例中,调用请求可以为应用程序发送的获取摄像组件所拍摄的数据的请求,该调用请求中可以为包括应用程序的标识和所需图像数据的图像处理方式等信息。
可以理解的是,调用请求可以为一个应用程序针对摄像组件中的其中一个摄像组件所拍摄的图像数据发起的请求,也可以为一个应用程序针对摄像组件中多个摄像组件所拍摄的图像数据等。
其中,应用程序的标识可以为用于标记该调用请求对应的应用程序,以便于将图像数据准确地发送至该调用请求对应的应用程序,避免出现数据发生错误的情况。
图像处理方式可以为应用程序针对所要获取的图像数据的处理方式,例如可以为对图像数据的分辨率进行调整,也可以为对图像数据进行添加滤镜等。
S203,获取发起调用请求的至少一个应用程序的应用数量;
在一个实施例中,应用数量可以为根据调用请求中的应用程序的标识进行计算,相同应用程序的标识记为一个应用程序。
示例性的,如图3所示,图3中存在有6个调用请求,且调用请求A和调用请求D为应用程序1所发送的调用请求,调用请求B为应用程序2所发送的调用请求,调用请求C为应用程序3所发送的调用请求,因此应用数量为3。
S204,基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
在一个实施例中,访问会话可以为第一摄像服务在获取到调用请求后,基于第一摄像服务中的会话管理器,根据调用请求中的各应用程序的标识所创建的与各应用程序对应的数据传输通道。
可以理解的,为了保证数据传输的高效性和准确性,针对同一个应用程序仅创建一个访问会话。
示例性的,一种可行的访问会话的创建和关闭方法可以为,针对调用请求中的标识创建与该标识对应的应用程序的访问会话,并在完成该调用请求对应的数据传输后,且未再接收到同一应用程序的调用请求时,关闭与该应用程序的访问会话。例如,该调用请求所请求的图像数据为持续三秒每秒三十帧的图像数据,在将九十帧的图像数据通过访问会话发送至应用程序后,未接收到该应用程序发送的其他调用请求,则关闭该访问会话。另一种可行的方法可以为,将某一帧图像数据发送至应用程序后,关闭该访问会话,当获取到下一帧图像数据时再恢复该访问会话,将该下一帧图像数据发送至应用程序。具体所采用的方法可根据实际需要进行设置。
S205,基于所述应用数量为各所述应用程序分配对应的缓冲区;
在一个实施例中,缓冲区可以为内存池为调用请求对应的应用程序所分配的临时存储空间,每一个应用程序分配有一个一个缓冲区,用于存储获取到的图像数据。可以理解的,各缓冲区与各应用程序根据访问会话相连接,因此为了提高调用请求的处理效率,步骤S204和步骤S205可以为同步执行的步骤。
可以理解的,为了避免内存池中的空间被各应用程序占据,导致终端设备的运行效率降低,一种可行的方法为,缓冲区的分配为在接收到调用请求后再进行分配,以避免部分应用程序长时间占用内存池的空间但不进行使用的情况。
需要说明的是,若某个应用程序在白名单中,则该应用程序在内存池中对应的分配池即使该应用程序不进行数据处理也仍不归还给内存池,具体可根据实际情况进行设置。
S206,基于所述调用请求控制摄像组件采集图像数据;
在一个实施例中,基于调用请求控制摄像组件采集图像数据时,基于当前拍摄环境进行判断,和/或解析调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件,基于第二调用指令使能摄像复制硬件和摄像组件获取图像数据。
第二调用指令可以为第一摄像服务中用于使能终端设备中摄像辅助硬件的指令。
拍摄环境可以为根据终端设备的光敏传感器等采集到的数据确定的终端设备所处环境,例如为在不借助光照设备提供亮光时无法看到周围事物的暗光条件等。
摄像辅助硬件可以为闪光灯等硬件组件。
可以理解的,在检测到终端设备所处的拍摄环境为暗光条件时,为了能够采集到可用性高的图像数据,基于第二调用指令使能终端设备的闪光灯在采集图像数据时发出亮光。
可以理解的,即使根据拍摄环境进行判断时确定不需要摄像辅助硬件,若通过解析调用请求确定需要调用摄像辅助硬件,则仍基于第二调用指令使能摄像辅助硬件在摄像组件采集图像数据时进行工作。
S207,基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中;
在一个实施例中,在获取到图像数据后,基于应用数量对图像数据进行复制,得到复制数据,将该复制数据分别存储于各应用程序在内存池中分配的各缓冲区中。
一种可行的对图像数据进行复制的方法可以为,基于应用数量对图像数据进行复制,得到图像数据对应的复制数据,复制数据的数量与应用数量相同。
示例性的,如图4所示,图4中的图像数据“图像a”经过复制后得到复制数据,将复制数据分别存储于内存池中各应用程序对应的缓冲区中进行存储。
S208,解析所述调用请求,得到所述调用请求对应的图像处理方式,确定所述图像处理方式指示的关联硬件为图像处理硬件;
在一个实施例中,在将复制数据存储于缓冲区后,由于调用请求中可能存在图像处理方式,因此需要针对不同调用请求进行解析,得到各调用请求对应的图像数量方式,确定该图像处理方式指示的关联硬件为图像处理硬件,以基于图像处理硬件对复制数据进行图像处理。
图像处理方式可以为对图像数据进行分辨率的调整,也可以为对图像数据添加滤镜,还可以为对图像数据进行人脸检测等。
图像处理硬件可以为终端设备中具有图像处理功能的硬件,例如GPU(图形处理器,graphics processing unit),ISP(图像信号处理,Image Signal Processing)芯片等。
S209,基于第一调用指令使能所述图像处理方式对应的图像处理硬件;
在一个实施例中,第一调用指令可以为第一摄像服务中用于使能终端设备中的图像处理硬件的指令,第一调用指令可以为预先在第一摄像服务中添加的指令,在需要使能图像处理硬件时,通过调用该第一调用指令使能图像处理硬件。
S210,基于所述调用请求中的图像处理方式,采用所述图像处理硬件和所述第一摄像服务中的图像处理模块对所述缓冲区中的图像数据进行数据处理,以得到所述图像数据对应的目标数据;
在一个实施例中,确定图像处理方式和图像处理硬件后,基于调用请求中的图像处理方式,采用图像处理硬件和第一摄像服务中的图像处理模块对各缓冲区中的复制数据分别进行图像处理,以得到该复制数据对应的目标数据。
示例性的,如图5所示,图5中的各复制数据通过图像处理后,得到各复制数据分别对应的目标数据。可以看出,“图像a”经过图像处理后得到“图像①”,且“图像a”进行图像处理后得到的图像数据“图像①”对“图像a”进行了覆写,从而避免在进行将目标数据发生至应用程序时出现错误,将未进行图像处理的“图像a”发送至应用程序的情况等。
进一步的,若存在应用程序发送的调用请求包括多个图像处理方式,一种可行的方法可以为,基于图像处理方式的方式数量对该复制数据进行复制,得到待处理数据,并将复制后的待处理数据根据各图像处理方式进行图像处理后得到各图像处理方式对应的目标数据。需要说明的是,单一应用程序的调用请求中存在多个图像处理方式,也仍在同一个缓冲区中进行图像处理。
可以理解的,由于图像处理硬件能够同时处理多个数据,因此能够同时对各复制数据进行图像处理,进而同时得到各复制数据对应的目标数据,各应用程序无需排队等待。
S211,采用各所述访问会话,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序;
在一个实施例中,在获取到各调用请求对应的目标数据后,采用各访问会话,将内存池中各缓冲区的目标数据分别发送至各应用程序。
进一步的,在将各目标数据分别发送至各应用程序后,为了便于后续采集到的图像数据能够存储于内存池中,避免内存池中空间不足,释放该缓冲区,将该缓冲区归还至内存池,内存池获取到新的图像数据后,可直接将新的图像数据存储于该缓冲区中。
进一步的,在架构层中预先创建共享代理,该共享代理用于对会话管理器等进行管理。当检测到异常状况时,对异常状况进行处理或上报,以解决该异常状况;当解决该异常状况后,控制会话管理器重新建立各缓冲区和各应用程序之间访问会话。从而避免在发生异常状况时,无法对异常状况进行及时处理,导致数据传输发生错误。
可以理解的,为了避免在发生异常状况时出现数据传输错误,一种可行的方法为,断开各缓冲区与各应用程序之间的访问会话。
其中,异常状况可以为摄像头故障、应用程序崩溃等。
需要说明的是,若调用请求中不包括图像数据的处理请求,则将缓冲区中的复制数据作为目标数据,将该目标数据采用访问会话传输至该调用请求对应的应用程序。
进一步的,若仅获取到一个应用程序的调用请求,则不需要对图像数据进行复制操作,就将该图像数据存储到该调用请求对应的应用程序的缓冲区中,对该图像数据进行图像处理后得到目标数据,采用对应的访问会话将该目标数据传输至该应用程序。
进一步的,为了保证目标数据能够准确地发送至对应的应用程序,且避免图像处理和摄像组件以及终端设备在显示界面对目标数据进行预览之间发送冲突或干扰,一种可行的方法为,创建各应用程序对应的线程,采用该线程执行对该应用程序相关的图像数据的采集、处理和显示等步骤,从而提高目标数据发送的准确性和可靠性以及高效性。例如,在接收到应用程序针对图像数据的指令时,创建该应用程序的线程,基于该应用程序对应的线程执行图像数据的采集,复制数据的图像处理以及目标数据的发送等步骤。
进一步的,一种可行的对摄像组件采集的数据进行分配的方法可以为,开发一个应用程序,将各项权限赋予该应用程序,以使该应用程序能够作为一个第三方程序对摄像组件采集到的摄像数据进行分配。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并复制后得到复制数据,将各复制数据分别存储在对应的缓冲区后,根据调用请求的图像处理方式采用图像处理硬件和第一摄像服务中的图像处理模块,对各复制数据进行图像处理目标数据,将目标数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
请参见图7,为本说明书实施例提供了一种数据分配方法的流程示意图。如图7所示,所述方法可以包括以下步骤S301-步骤S305。
S301,获取至少一个应用程序针对摄像组件的调用请求;
在一个实施例中,调用请求可以为应用程序发送的获取摄像组件所拍摄的数据的请求,该调用请求中可以为包括应用程序的标识和所需图像数据的图像处理方式等信息。
可以理解的是,调用请求可以为一个应用程序针对摄像组件中的其中一个摄像组件所拍摄的图像数据发起的请求,也可以为一个应用程序针对摄像组件中多个摄像组件所拍摄的图像数据等。
其中,应用程序的标识可以为用于标记该调用请求对应的应用程序,以便于将图像数据准确地发送至该调用请求对应的应用程序,避免出现数据发生错误的情况。
图像处理方式可以为应用程序针对所要获取的图像数据的处理方式,例如可以为对图像数据的分辨率进行调整,也可以为对图像数据进行添加滤镜等。
进一步的,在获取调用请求之前,在终端设备的硬件层的摄像接口中添加共享函数。
可以理解的,共享函数可以为终端设备的硬件层的摄像接口中新添加的函数,为了使得共享函数能够与终端设备中底层硬件驱动程序相兼容,一种可行的方法可以为通过阅读和了解硬件驱动程序的文档和源代码后,针对性地进行创建。
需要说明的是,硬件层可以为操作系统中的硬件抽象层,摄像接口可以为硬件层中用于进行摄像相关的图像数据的传输的通信规则。
S302,基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
在一个实施例中,输出流可以为共享函数在获取到调用请求后,基于硬件层中共享函数,根据调用请求中的各应用程序的标识所创建的与各应用程序对应的数据传输通道。
可以理解的,为了保证数据传输的高效性和准确性,针对同一个应用程序仅创建一个输出流。
示例性的,一种可行的输出流的创建和关闭方法可以为,针对调用请求中的标识创建与该标识对应的应用程序的输出流,并在完成该调用请求对应的数据传输后,且未再接收到同一应用程序的调用请求时,关闭与该应用程序的输出流。例如,该调用请求所请求的图像数据为持续三秒每秒三十帧的图像数据,在将九十帧的图像数据通过输出流发送至应用程序后,未接收到该应用程序发送的其他调用请求,则关闭该输出流。另一种可行的方法可以为,将某一帧图像数据发送至应用程序后,关闭该访输出流,当获取到下一帧图像数据时再恢复该输出流,将该下一帧图像数据发送至应用程序。具体所采用的方法可根据实际需要进行设置。
需要说明的是,为了能够保证创建的输出流能够正确地进行数据传输,一种可行的方法可以为,预先对输出流进行注册,从而能够在获取到调用请求后,针对调用请求的应用程序创建的输出流能够进行数据传输。
S303,基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
在一个实施例中,获取到调用请求后,获取调用请求的至少一个应用程序的应用数量,基于应用数量在内存池中为各应用程序分配对应的缓冲区。
应用数量可以为根据调用请求中的标识进行计算,相同应用程序的标识记为一个应用程序。例如,如图3所示,图3中存在有6个调用请求,且调用请求A和调用请求D为应用程序1所发送的调用请求,调用请求B为应用程序2所发送的调用请求,调用请求C为应用程序3所发送的调用请求,因此应用数量为3。
缓冲区可以为内存池为调用请求对应的应用程序所分配的临时存储空间,每一个应用程序分配有一个一个缓冲区,用于存储获取到的图像数据。可以理解的,各缓冲区与各应用程序根据访问会话相连接,因此为了提高调用请求的处理效率,步骤S302和步骤S303可以为同步执行的步骤。
S304,基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
在一个实施例中,基于调用请求控制摄像组件采集图像数据,基于复用器对图像数据进行复制,得到复制数据,将该复制数据分别存储于分配的各缓冲区中。
复制数据可以为基于应用数量进行复制后得到的数据,复制数据的数量与应用数量相同。例如,如图4所示,图4中的图像数据“图像a”经过复制后得到复制数据,将复制数据分别存储于内存池中各应用程序对应的缓冲区中进行存储。
进一步的,在将复制数据存储于缓冲区后,由于调用请求中可能存在图像处理方式,因此需要针对不同调用请求对复制数据进行图像处理。
示例性的,一种可行的对复制数据进行图像处理的方法可以为,解析调用请求,得到调用请求对应的图像处理方式,确定图像处理方式关联的关联硬件为图像处理硬件,基于复用器使能该图像处理方式对应的图像处理硬件,基于调用请求中的图像处理方式,采用图像处理硬件对缓冲区中的复制数据进行图像处理,以得到该复制数据对应的目标数据。例如,如图5所示,图5中的各复制数据通过图像处理后,得到各复制数据分别对应的目标数据。可以看出,“图像a”经过图像处理后得到“图像①”,且“图像a”进行图像处理后得到的图像数据“图像①”对“图像a”进行了覆写,从而避免在进行将目标数据发生至应用程序时出现错误。
需要说明的是,由于复用器为硬件层中用于对数据进行处理的工具,因此采用复用器调用图像处理硬件对复制数据进行图像处理时,由于不需要对调用操作系统的不同层级的硬件进行权限的申请,所需要的调用时长相较于架构层和应用层的软件等所需的调用时长更短,进而缩短图像处理所需的时长。
进一步的,若存在应用程序发送的调用请求包括多个图像处理方式,一种可行的方法可以为,基于图像处理方式的方式数量对该复制数据进行复制,得到待处理数据,并将复制后的待处理数据根据各图像处理方式进行图像处理后得到各图像处理方式对应的目标数据。需要说明的是,单一应用程序的调用请求中存在多个图像处理方式,也仍在同一个缓冲区中进行图像处理。
图像处理方式可以为对图像数据进行分辨率的调整,也可以为对图像数据添加滤镜,还可以为对图像数据进行人脸检测等。
图像处理硬件可以为终端设备中具有图像处理功能的硬件,例如GPU(图形处理器,graphics processing unit)等。
S305,采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序;
在一个实施例中,在获取到各调用请求对应的目标数据后,采用各输出流,将内存池中各缓冲区的目标数据分别发送至各应用程序。
进一步的,在将各目标数据分别发送至各应用程序后,为了便于后续采集到的图像数据能够存储于内存池中,避免内存池中空间不足,释放该缓冲区,将该缓冲区归还至内存池,内存池获取到新的图像数据后,可直接将新的图像数据存储于该缓冲区中。
进一步的,在硬件层中预先添加一个新的数据结构,该数据结构可以为作为资源管理器,用于对获取到的调用请求和图像数据等进行管理。当检测到异常状况时,对异常状况进行处理或上报,以解决该异常状况;当解决该异常状况后,控制共享函数重新建立各缓冲区和各应用程序之间输出流。从而避免在发生异常状况时,无法对异常状况进行及时处理,导致数据传输发生错误。
可以理解的,为了避免在发生异常状况时出现数据传输错误,一种可行的方法为,断开各缓冲区与各应用程序之间的输出流。
其中,异常状况可以为摄像头故障、应用程序崩溃等。
进一步的,为了保证目标数据能够准确地发送至对应的应用程序,且避免图像处理和摄像组件以及终端设备在显示界面对目标数据进行预览之间发送冲突或干扰,一种可行的方法为,创建各应用程序对应的线程,采用该线程执行对该应用程序相关的图像数据的采集、处理和显示等步骤,从而提高目标数据发送的准确性和可靠性以及高效性。例如,在接收到应用程序针对图像数据的指令时,创建该应用程序的线程,基于该应用程序对应的线程执行图像数据的采集,复制数据的图像处理以及目标数据的发送等步骤。
可以理解的,新添加的数据结构也与终端设备中的底层硬件驱动程序兼容,从而保证操作系统的正常运行。
需要说明的是,若调用请求中不包括图像数据的处理请求,则将缓冲区中的复制数据作为目标数据,将该目标数据采用输出流传输至该调用请求对应的应用程序。
进一步的,若仅获取到一个应用程序的调用请求,则不需要采用复用器对图像数据进行复制操作,就将该图像数据存储到该调用请求对应的应用程序的缓冲区中,对该图像数据进行图像处理后得到目标数据,采用对应的输出流将该目标数据传输至该应用程序。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于共享函数创建应用程序对应的输出流,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并存储在各缓冲区后,根据调用请求的图像处理方式对各图像数据进行图像处理,将处理后的图像数据采用各输出流分别发送至对应的应用程序,从而根据在硬件层对摄像接口进行修改,实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
请参见图8,为本说明书实施例提供了一种数据分配方法的流程示意图。如图8所示,所述方法可以包括以下步骤S401-步骤S410。
S401,在硬件层的摄像接口中添加共享函数;
在一个实施例中,在终端设备的硬件层的摄像接口中添加共享函数。
可以理解的,共享函数可以为终端设备的硬件层的摄像接口中新添加的函数,为了使得共享函数能够与终端设备中底层硬件驱动程序相兼容,一种可行的方法可以为通过阅读和了解硬件驱动程序的文档和源代码后,针对性地进行创建。
需要说明的是,硬件层可以为操作系统中的硬件抽象层,摄像接口可以为硬件层中用于进行摄像相关的图像数据的传输的通信规则。
S402,获取至少一个应用程序针对摄像组件的调用请求;
在一个实施例中,调用请求可以为应用程序发送的获取摄像组件所拍摄的数据的请求,该调用请求中可以为包括应用程序的标识和所需图像数据的图像处理方式等信息。
可以理解的是,调用请求可以为一个应用程序针对摄像组件中的其中一个摄像组件所拍摄的图像数据发起的请求,也可以为一个应用程序针对摄像组件中多个摄像组件所拍摄的图像数据等。
其中,应用程序的标识可以为用于标记该调用请求对应的应用程序,以便于将图像数据准确地发送至该调用请求对应的应用程序,避免出现数据发生错误的情况。
图像处理方式可以为应用程序针对所要获取的图像数据的处理方式,例如可以为对图像数据的分辨率进行调整,也可以为对图像数据进行添加滤镜等。
S403,获取发起调用请求的至少一个应用程序的应用数量;
在一个实施例中,应用数量可以为根据调用请求中的应用程序的标识进行计算,相同应用程序的标识记为一个应用程序。
示例性的,如图3所示,图3中存在有6个调用请求,且调用请求A和调用请求D为应用程序1所发送的调用请求,调用请求B为应用程序2所发送的调用请求,调用请求C为应用程序3所发送的调用请求,因此应用数量为3。
S404,基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
在一个实施例中,输出流可以为共享函数在获取到调用请求后,基于硬件层中共享函数,根据调用请求中的各应用程序的标识所创建的与各应用程序对应的数据传输通道。
可以理解的,为了保证数据传输的高效性和准确性,针对同一个应用程序仅创建一个输出流。
示例性的,一种可行的输出流的创建和关闭方法可以为,针对调用请求中的标识创建与该标识对应的应用程序的输出流,并在完成该调用请求对应的数据传输后,且未再接收到同一应用程序的调用请求时,关闭与该应用程序的输出流。例如,该调用请求所请求的图像数据为持续三秒每秒三十帧的图像数据,在将九十帧的图像数据通过输出流发送至应用程序后,未接收到该应用程序发送的其他调用请求,则关闭该输出流。另一种可行的方法可以为,将某一帧图像数据发送至应用程序后,关闭该访输出流,当获取到下一帧图像数据时再恢复该输出流,将该下一帧图像数据发送至应用程序。具体所采用的方法可根据实际需要进行设置。
需要说明的是,为了能够保证创建的输出流能够正确地进行数据传输,一种可行的方法可以为,预先对输出流进行注册,从而能够在获取到调用请求后,针对调用请求的应用程序创建的输出流能够进行数据传输。
S405,基于所述应用数量为各所述应用程序分配对应的缓冲区;
在一个实施例中,获取到调用请求后,获取调用请求的至少一个应用程序的应用数量,基于应用数量在内存池中为各应用程序分配对应的缓冲区。
缓冲区可以为内存池为调用请求对应的应用程序所分配的临时存储空间,每一个应用程序分配有一个一个缓冲区,用于存储获取到的图像数据。可以理解的,各缓冲区与各应用程序根据访问会话相连接,因此为了提高调用请求的处理效率,步骤S404和步骤S405可以为同步执行的步骤。
可以理解的,为了避免内存池中的空间被各应用程序占据,导致终端设备的运行效率降低,一种可行的方法为,缓冲区的分配为在接收到调用请求后再进行分配,以避免部分应用程序长时间占用内存池的空间但不进行使用的情况。
需要说明的是,若某个应用程序在白名单中,则该应用程序在内存池中对应的分配池即使该应用程序不进行数据处理也仍不归还给内存池,具体可根据实际情况进行设置。
S406,基于所述调用请求控制摄像组件采集图像数据;
在一个实施例中,基于调用请求控制摄像组件采集图像数据时,基于当前拍摄环境进行判断,和/或解析调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件,采用摄像复制硬件和摄像组件获取图像数据。
拍摄环境可以为根据终端设备的光敏传感器等采集到的数据确定的终端设备所处环境,例如为在不借助光照设备提供亮光时无法看到周围事物的暗光条件等。
摄像辅助硬件可以为闪光灯等硬件组件。
可以理解的,在检测到终端设备所处的拍摄环境为暗光条件时,为了能够采集到可用性高的图像数据,采用终端设备的闪光灯在采集图像数据时发出亮光。
可以理解的,即使根据拍摄环境进行判断时确定不需要摄像辅助硬件,若通过解析调用请求确定需要调用摄像辅助硬件,则仍基于摄像辅助硬件在摄像组件采集图像数据时进行工作。
S407,采用所述硬件层中的复用器,基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中;
在一个实施例中,基于调用请求控制摄像组件采集图像数据,基于复用器对图像数据进行复制,得到复制数据,将该复制数据分别存储于分配的各缓冲区中。
复制数据可以为基于应用数量进行复制后得到的数据,复制数据的数量与应用数量相同。例如,如图4所示,图4中的图像数据“图像a”经过复制后得到复制数据,将复制数据分别存储于内存池中各应用程序对应的缓冲区中进行存储。
S408,解析所述调用请求,得到所述调用请求对应的图像处理方式;
在一个实施例中,在将复制数据存储于缓冲区后,由于调用请求中可能存在图像处理方式,因此需要针对不同调用请求进行解析,得到各调用请求对应的图像数量方式,确定该图像处理方式指示的关联硬件为图像处理硬件,以基于图像处理硬件对复制数据进行图像处理。
图像处理方式可以为对图像数据进行分辨率的调整,也可以为对图像数据添加滤镜,还可以为对图像数据进行人脸检测等。
图像处理硬件可以为终端设备中具有图像处理功能的硬件,例如GPU(图形处理器,graphics processing unit),ISP(图像信号处理,Image Signal Processing)芯片等。
S409,基于所述图像处理方式,采用终端设备中的图像处理硬件对所述缓冲区中的图像数据进行数据处理,得到所述图像数据对应的目标数据;
在一个实施例中,确定图像处理方式和图像处理硬件后,基于调用请求中的图像处理方式,采用图像处理硬件对各缓冲区中的复制数据分别进行图像处理,以得到该复制数据对应的目标数据。
示例性的,如图5所示,图5中的各复制数据通过图像处理后,得到各复制数据分别对应的目标数据。可以看出,“图像a”经过图像处理后得到“图像①”,且“图像a”进行图像处理后得到的图像数据“图像①”对“图像a”进行了覆写,从而避免在进行将目标数据发生至应用程序时出现错误,将未进行图像处理的“图像a”发送至应用程序的情况等。
进一步的,若存在应用程序发送的调用请求包括多个图像处理方式,一种可行的方法可以为,基于图像处理方式的方式数量对该复制数据进行复制,得到待处理数据,并将复制后的待处理数据根据各图像处理方式进行图像处理后得到各图像处理方式对应的目标数据。需要说明的是,若单一应用程序发送的调用请求中存在多个图像处理方式,也仍可以在同一个缓冲区中进行图像处理。
可以理解的,由于图像处理硬件能够同时处理多个数据,因此能够同时对各复制数据进行图像处理,进而同时得到各复制数据对应的目标数据,各应用程序无需排队等待。
需要说明的是,由于复用器为硬件层中用于对数据进行处理的工具,因此采用复用器调用图像处理硬件对复制数据进行图像处理时,由于不需要对调用操作系统的不同层级的硬件进行权限的申请,所需要的调用时长相较于架构层和应用层的软件等所需的调用时长更短,进而缩短图像处理所需的时长。
S410,采用所述输出流,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序;
在一个实施例中,在获取到各调用请求对应的目标数据后,采用各输出流,将内存池中各缓冲区的目标数据分别发送至各应用程序。
进一步的,在将各目标数据分别发送至各应用程序后,为了便于后续采集到的图像数据能够存储于内存池中,避免内存池中空间不足,释放该缓冲区,将该缓冲区归还至内存池,内存池获取到新的图像数据后,可直接将新的图像数据存储于该缓冲区中。
进一步的,在硬件层中预先添加一个新的数据结构,该数据结构可以为作为资源管理器,用于对获取到的调用请求和图像数据等进行管理。当检测到异常状况时,对异常状况进行处理或上报,以解决该异常状况;当解决该异常状况后,控制共享函数重新建立各缓冲区和各应用程序之间输出流。从而避免在发生异常状况时,无法对异常状况进行及时处理,导致数据传输发生错误。
进一步的,数据结构还可以为包含一个队列,该队列中包括有发起调用请求的应用标识,以便于基于该应用标识准确地将目标数据发送至调用请求对应的应用程序。
可以理解的,为了避免在发生异常状况时出现数据传输错误,一种可行的方法为,断开各缓冲区与各应用程序之间的输出流。
其中,异常状况可以为摄像头故障、应用程序崩溃等。
进一步的,为了保证目标数据能够准确地发送至对应的应用程序,且避免图像处理和摄像组件以及终端设备在显示界面对目标数据进行预览之间发送冲突或干扰,一种可行的方法为,创建各应用程序对应的线程,采用该线程执行对该应用程序相关的图像数据的采集、处理和显示等步骤,从而提高目标数据发送的准确性和可靠性以及高效性。例如,在接收到应用程序针对图像数据的指令时,创建该应用程序的线程,基于该应用程序对应的线程执行图像数据的采集,复制数据的图像处理以及目标数据的发送等步骤。
可以理解的,新添加的数据结构也与终端设备中的底层硬件驱动程序兼容,从而保证操作系统的正常运行。
需要说明的是,若调用请求中不包括图像数据的处理请求,则将缓冲区中的复制数据作为目标数据,将该目标数据采用输出流传输至该调用请求对应的应用程序。
进一步的,若仅获取到一个应用程序的调用请求,则不需要采用复用器对图像数据进行复制操作,就将该图像数据存储到该调用请求对应的应用程序的缓冲区中,对该图像数据进行图像处理后得到目标数据,采用对应的输出流将该目标数据传输至该应用程序。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于共享函数创建应用程序对应的输出流,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并采用复用器对图像数据进行复制后,将得到的各复制数据存储在各缓冲区后,根据调用请求的图像处理方式对各复制数据进行图像处理得到目标数据,将处理后的目标数据采用各输出流分别发送至对应的应用程序,从而根据对硬件层中的摄像接口进行修改,实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
基于图1所示的系统架构,下面将结合图9-图13,对本说明书实施例提供的数据分配装置进行详细介绍。需要说明的是,图9-图13中的数据分配装置,用于执行本说明书实施例图2-图6所示实施例的方法,为了便于说明,仅示出了与本说明书实施例相关的部分,具体技术细节未揭示的,请参照本说明书实施例图2-图6所示的实施例。
请参见图9,为本说明书实施例提供了一种数据分配装置的结构示意图。如图9所示,本说明书实施例的所述数据分配装置1可以包括:第一请求获取单元11、会话创建单元12、第一缓冲区分配单元13、第一数据存储单元14和第一数据发送单元15。
第一请求获取单元11,用于获取至少一个应用程序针对摄像组件的调用请求;
会话创建单元12,用于基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
第一缓冲区分配单元13,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
第一数据存储单元14,用于基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
第一数据发送单元15,用于采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
可选的,如图10所示,所述数据分配装置1还包括:
服务创建单元16,用于在架构层中创建第一摄像服务,在所述第一摄像服务中添加会话管理器。
可选的,如图11所示,所述第一缓冲区分配单元13包括:
第一数量获取子单元131,用于获取发起调用请求的至少一个应用程序的应用数量;
第一分配子单元132,用于基于所述应用数量为各所述应用程序分配对应的缓冲区。
可选的,所述第一数据存储单元14还用于:
基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
可选的,如图10所示,所述数据分配装置1还包括:
第一方式获取单元17,用于解析所述调用请求,得到所述调用请求对应的图像处理方式,确定所述图像处理方式指示的关联硬件为图像处理硬件;
硬件调用单元18,用于基于第一调用指令使能所述图像处理方式对应的图像处理硬件,所述第一调用指令为所述第一摄像服务中用于使能终端设备中的图像处理硬件的指令;
第一数据处理单元19,用于基于所述调用请求中的图像处理方式,采用所述图像处理硬件和所述第一摄像服务中的图像处理模块对所述缓冲区中的图像数据进行数据处理,以得到所述图像数据对应的目标数据;
可选的,所述第一数据发送单元15,还用于:
采用各所述访问会话,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
可选的,如图10所示,所述数据分配装置1还包括:
代理创建单元110,用于在所述架构层中创建共享代理,所述共享代理用于对所述会话管理器进行管理。
可选的,如图12所示,所述代理创建单元110包括:
异常解决子单元1101,用于当检测到发生异常状况时,对所述异常状况进行处理或上报,以解决所述异常状况;
会话重建子单元1102,用于当解决所述异常状况后,控制所述会话管理器重新建立各所述缓冲区和各所述应用程序之间的访问会话。
可选的,如图13所示,所述第一数据存储单元14包括:
硬件确定子单元141,用于基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件;
数据获取子单元142,用于基于第二调用指令使能所述摄像辅助硬件和所述摄像组件获取所述图像数据,所述第二调用指令为所述第一摄像服务中用于使能终端设备中的摄像辅助硬件的指令。
可选的,如图10所示,所述数据分配装置1还包括:
释放单元111,用于释放所述缓冲区。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并复制后得到复制数据,将各复制数据分别存储在对应的缓冲区后,根据调用请求的图像处理方式采用图像处理硬件和第一摄像服务中的图像处理模块,对各复制数据进行图像处理目标数据,将目标数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
基于图1所示的系统架构,下面将结合图14-图16,对本说明书实施例提供的数据分配装置进行详细介绍。需要说明的是,图14-图16中的数据分配装置,用于执行本说明书实施例图3-图5、图7和图8所示实施例的方法,为了便于说明,仅示出了与本说明书实施例相关的部分,具体技术细节未揭示的,请参照本说明书实施例图3-图5、图7和图8所示的实施例。
请参见图14,为本说明书实施例提供了一种数据分配装置的结构示意图。如图14所示,本说明书实施例的所述数据分配装置2可以包括:第二数据获取单元21、输出流创建单元22、第二缓冲区分配单元23、第二数据存储单元24和第二数据发送单元25。
第二数据获取单元21,用于获取至少一个应用程序针对摄像组件的调用请求;
输出流创建单元22,用于基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
第二缓冲区分配单元23,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
第二数据存储单元24,用于基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
第二数据发送单元25,用于采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
可选的,如图15所示,所述第二缓冲区分配单元23包括:
第二数量获取子单元231,用于获取发起调用请求的至少一个应用程序的应用数量;
第二分配子单元232,用于基于所述应用数量为各所述应用程序分配对应的缓冲区。
可选的,所述第二数据存储单元24还用于:
采用所述硬件层中的复用器,基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
可选的,如图16所示,所述数据分配装置2包括:
第二方式获取单元26,用于解析所述调用请求,得到所述调用请求对应的图像处理方式;
第二数据获取单元27,用于基于所述图像处理方式,采用终端设备中的图像处理硬件对所述缓冲区中的图像数据进行数据处理,得到所述图像数据对应的目标数据;
可选的,所述第二数据发送单元25还用于:
采用所述输出流,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
可选的,如图16所示,所述数据分配装置2还包括:
函数添加单元28,用于在硬件层的摄像接口中添加共享函数。
可选的,如图16所示,所述数据分配装置2还包括:
第二释放单元29,用于释放所述缓冲区。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于共享函数创建应用程序对应的输出流,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并采用复用器对图像数据进行复制后,将得到的各复制数据存储在各缓冲区后,根据调用请求的图像处理方式对各复制数据进行图像处理得到目标数据,将处理后的目标数据采用各输出流分别发送至对应的应用程序,从而根据对硬件层中的摄像接口进行修改,实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
本说明书实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条程序指令,所述程序指令适于由处理器加载并执行如上述图1-图8所示实施例的方法步骤,具体执行过程可以参见图1-图8所示实施例的具体说明,在此不进行赘述。
请参见图17,为本说明书实施例提供了一种电子设备的结构示意图。如图17所示,所述电子设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,输入输出接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图17所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、输入输出接口模块以及数据分配应用程序。
在图17所示的电子设备1000中,输入输出接口1003主要用于为用户提供输入的接口,获取用户输入的数据。
在一个实施例中,处理器1001可以用于调用存储器1005中存储的数据分配应用程序,并具体执行以下操作:
获取至少一个应用程序针对摄像组件的调用请求;
基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
可选的,所述处理器1001在执行获取至少一个应用程序针对摄像组件的调用请求之前,还执行以下操作:
在架构层中创建第一摄像服务,在所述第一摄像服务中添加会话管理器;
所述第一摄像服务继承第二摄像服务,所述第二摄像服务为终端设备中原生摄像服务。
可选的,所述处理器1001在执行基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区时,具体执行以下操作:
获取发起调用请求的至少一个应用程序的应用数量;
基于所述应用数量为各所述应用程序分配对应的缓冲区。
可选的,所述处理器1001在执行将所述图像数据存储于各所述缓冲区时,具体执行以下操作:
基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
可选的,所述处理器1001在执行将所述图像数据存储于内存池中所述调用请求对应的缓冲区中之后,还执行以下操作:
解析所述调用请求,得到所述调用请求对应的图像处理方式,确定所述图像处理方式指示的关联硬件为图像处理硬件;
基于第一调用指令使能所述图像处理方式对应的图像处理硬件,所述第一调用指令为所述第一摄像服务中用于使能终端设备中的图像处理硬件的指令;
基于所述调用请求中的图像处理方式,采用所述图像处理硬件和所述第一摄像服务中的图像处理模块对所述缓冲区中的图像数据进行数据处理,以得到所述图像数据对应的目标数据;
可选的,所述处理器1001在执行采用各所述访问会话,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序时,具体执行以下操作:
采用各所述访问会话,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
可选的,所述处理器1001还执行以下操作:
在所述架构层中创建共享代理,所述共享代理用于对所述会话管理器进行管理。
可选的,所述处理器1001在执行对所述会话管理器进行管理时,具体执行以下操作:
当检测到发生异常状况时,对所述异常状况进行处理或上报,以解决所述异常状况;
当解决所述异常状况后,控制所述会话管理器重新建立各所述缓冲区和各所述应用程序之间的访问会话。
可选的,所述处理器1001在执行基于所述调用请求控制摄像组件采集图像数据时,具体执行以下操作:
基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件;
基于第二调用指令使能所述摄像辅助硬件和所述摄像组件获取所述图像数据,所述第二调用指令为所述第一摄像服务中用于使能终端设备中的摄像辅助硬件的指令。
可选的,所述处理器1001还执行以下操作:
释放所述缓冲区。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于第一摄像服务创建应用程序对应的访问会话,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并复制后得到复制数据,将各复制数据分别存储在对应的缓冲区后,根据调用请求的图像处理方式采用图像处理硬件和第一摄像服务中的图像处理模块,对各复制数据进行图像处理目标数据,将目标数据采用各访问会话分别发送至对应的应用程序,从而在架构层中创建第一摄像服务,基于第一摄像服务实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
请参见图18,为本说明书实施例提供了一种电子设备的结构示意图。如图18所示,所述电子设备2000可以包括:至少一个处理器2001,例如CPU,至少一个网络接口2004,输入输出接口2003,存储器2005,至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图18所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、输入输出接口模块以及数据分配应用程序。
在图18所示的电子设备2000中,输入输出接口2003主要用于为用户提供输入的接口,获取用户输入的数据。
在一个实施例中,处理器2001可以用于调用存储器2005中存储的数据分配应用程序,并具体执行以下操作:
获取至少一个应用程序针对摄像组件的调用请求;
基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区;
基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序。
可选的,所述处理器2001在执行基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区时,具体执行以下操作:
获取发起调用请求的至少一个应用程序的应用数量;
基于所述应用数量为各所述应用程序分配对应的缓冲区。
可选的,所述处理器2001在执行将所述图像数据存储于各所述缓冲区时,具体执行以下操作:
采用所述硬件层中的复用器,基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
可选的,所述处理器2001在执行将所述图像数据存储于内存池中所述调用请求对应的缓冲区中之后,还执行以下操作:
解析所述调用请求,得到所述调用请求对应的图像处理方式;
基于所述图像处理方式,采用终端设备中的图像处理硬件对所述缓冲区中的图像数据进行数据处理,得到所述图像数据对应的目标数据;
可选的,所述处理器2001在执行采用所述输出流,将各所述缓冲区中的所述图像数据分别发送至各所述应用程序时,具体执行以下操作:
采用所述输出流,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
可选的,所述处理器2001在执行获取至少一个应用程序针对摄像组件的调用请求之前,还执行以下操作:
在硬件层的摄像接口中添加共享函数。
可选的,所述处理器2001还执行以下操作:
释放所述缓冲区。
在本说明书实施例中,通过获取应用程序针对摄像组件的调用请求,基于共享函数创建应用程序对应的输出流,并在内存池中分配各应用程序对应的缓冲区,基于调用请求采集图像数据并采用复用器对图像数据进行复制后,将得到的各复制数据存储在各缓冲区后,根据调用请求的图像处理方式对各复制数据进行图像处理得到目标数据,将处理后的目标数据采用各输出流分别发送至对应的应用程序,从而根据对硬件层中的摄像接口进行修改,实现多应用程序同时获取到摄像组件采集的图像数据,进而提高图像数据的使用效率和图像数据传输的准确性和可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本说明书较佳实施例而已,当然不能以此来限定本说明书之权利范围,因此依本说明书权利要求所作的等同变化,仍属本说明书所涵盖的范围。
Claims (16)
1.一种数据分配方法,其特征在于,所述方法包括:
获取至少一个应用程序针对摄像组件的调用请求,所述调用请求包括所述应用程序的标识和所需图像数据的图像处理方式;
基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话,所述访问会话为根据所述调用请求中的各所述应用程序的标识所创建的与各所述应用程序对应的数据传输通道;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,所述缓冲区与所述访问会话的创建和分配步骤同步执行,各所述缓冲区与各所述应用程序根据所述访问会话相连接;
基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件;
基于第二调用指令使能所述摄像辅助硬件和所述摄像组件获取图像数据,将所述图像数据存储于各所述缓冲区,所述第二调用指令为所述第一摄像服务中用于使能终端设备中的摄像辅助硬件的指令;
解析所述调用请求,得到所述调用请求对应的图像处理方式,确定所述图像处理方式指示的关联硬件为图像处理硬件;
基于第一调用指令使能所述图像处理方式对应的图像处理硬件,所述第一调用指令为所述第一摄像服务中用于使能终端设备中的图像处理硬件的指令;
基于所述调用请求中的图像处理方式,采用所述图像处理硬件和所述第一摄像服务中的图像处理模块对所述缓冲区中的图像数据进行数据处理,以得到所述图像数据对应的目标数据;
采用各所述访问会话,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述获取至少一个应用程序针对摄像组件的调用请求之前,还包括:
在架构层中创建第一摄像服务,在所述第一摄像服务中添加会话管理器;
所述第一摄像服务继承第二摄像服务,所述第二摄像服务为终端设备中原生摄像服务。
3.根据权利要求1所述的方法,其特征在于,所述基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,包括:
获取发起调用请求的至少一个应用程序的应用数量;
基于所述应用数量为各所述应用程序分配对应的缓冲区。
4.根据权利要求3所述的方法,其特征在于,所述将所述图像数据存储于各所述缓冲区,包括:
基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
5.根据权利要求1-2中任一项所述的方法,其特征在于,还包括:
在所述架构层中创建共享代理,所述共享代理用于对所述会话管理器进行管理。
6.根据权利要求5所述的方法,其特征在于,所述对所述会话管理器进行管理,包括:
当检测到发生异常状况时,对所述异常状况进行处理或上报,以解决所述异常状况;
当解决所述异常状况后,控制所述会话管理器重新建立各所述缓冲区和各所述应用程序之间的访问会话。
7.根据权利要求1、3、4中任一项所述的方法,其特征在于,所述方法还包括:
释放所述缓冲区。
8.一种数据分配方法,其特征在于,所述方法包括:
获取至少一个应用程序针对摄像组件的调用请求,所述调用请求包括所述应用程序的标识和所需图像数据的图像处理方式;
基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流,所述输出流为根据所述调用请求中的各所述应用程序的标识所创建的与各所述应用程序对应的数据传输通道;
基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,所述缓冲区与所述输出流的创建和分配步骤同步执行,各所述缓冲区与各所述应用程序根据所述输出流相连接;
基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件,采用所述摄像辅助硬件和所述摄像组件获取图像数据,将所述图像数据存储于各所述缓冲区;
解析所述调用请求,得到所述调用请求对应的图像处理方式;
基于所述图像处理方式,采用终端设备中的图像处理硬件对所述缓冲区中的图像数据进行数据处理,得到所述图像数据对应的目标数据;
采用所述输出流,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
9.根据权利要求8所述的方法,其特征在于,所述基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,包括:
获取发起调用请求的至少一个应用程序的应用数量;
基于所述应用数量为各所述应用程序分配对应的缓冲区。
10.根据权利要求9所述的方法,其特征在于,所述将所述图像数据存储于各所述缓冲区,包括:
采用所述硬件层中的复用器,基于所述应用数量对所述图像数据进行复制,得到复制数据,将所述复制数据分别存储于各所述缓冲区中。
11.根据权利要求8所述的方法,其特征在于,所述获取至少一个应用程序针对摄像组件的调用请求之前,还包括:
在硬件层的摄像接口中添加共享函数。
12.根据权利要求8-10中任一项所述的方法,其特征在于,所述方法还包括:
释放所述缓冲区。
13.一种数据分配装置,其特征在于,所述装置包括:
第一请求获取单元,用于获取至少一个应用程序针对摄像组件的调用请求,所述调用请求包括所述应用程序的标识和所需图像数据的图像处理方式;
会话创建单元,用于基于架构层的第一摄像服务中的会话管理器创建各所述应用程序对应的访问会话,所述访问会话为根据所述调用请求中的各所述应用程序的标识所创建的与各所述应用程序对应的数据传输通道;
第一缓冲区分配单元,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,所述缓冲区与所述访问会话的创建和分配步骤同步执行,各所述缓冲区与各所述应用程序根据所述访问会话相连接;
第一数据存储单元,用于基于所述调用请求控制摄像组件采集图像数据,将所述图像数据存储于各所述缓冲区;
第一方式获取单元,用于解析所述调用请求,得到所述调用请求对应的图像处理方式,确定所述图像处理方式指示的关联硬件为图像处理硬件;
硬件调用单元,用于基于第一调用指令使能所述图像处理方式对应的图像处理硬件,所述第一调用指令为所述第一摄像服务中用于使能终端设备中的图像处理硬件的指令;
第一数据处理单元,用于基于所述调用请求中的图像处理方式,采用所述图像处理硬件和所述第一摄像服务中的图像处理模块对所述缓冲区中的图像数据进行数据处理,以得到所述图像数据对应的目标数据;
第一数据发送单元,用于采用各所述访问会话,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序;
所述第一数据存储单元包括:
硬件确定子单元,用于基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件;
数据获取子单元,用于基于第二调用指令使能所述摄像辅助硬件和所述摄像组件获取图像数据,所述第二调用指令为所述第一摄像服务中用于使能终端设备中的摄像辅助硬件的指令。
14.一种数据分配装置,其特征在于,所述装置包括:
第二数据获取单元,用于获取至少一个应用程序针对摄像组件的调用请求,所述调用请求包括所述应用程序的标识和所需图像数据的图像处理方式;
输出流创建单元,用于基于硬件层的共享函数创建与各所述调用请求对应的应用程序对应的输出流,所述输出流为根据所述调用请求中的各所述应用程序的标识所创建的与各所述应用程序对应的数据传输通道;
第二缓冲区分配单元,用于基于所述调用请求在内存池中为各所述应用程序分配对应的缓冲区,所述缓冲区与所述输出流的创建和分配步骤同步执行,各所述缓冲区与各所述应用程序根据所述输出流相连接;
第二数据存储单元,用于基于当前拍摄环境进行判断,和/或解析所述调用请求,确定拍摄需求指示的关联硬件为摄像辅助硬件,采用所述摄像辅助硬件和所述摄像组件获取图像数据,将所述图像数据存储于各所述缓冲区;
第二方式获取单元,用于解析所述调用请求,得到所述调用请求对应的图像处理方式;
第二数据获取单元,用于基于所述图像处理方式,采用终端设备中的图像处理硬件对所述缓冲区中的图像数据进行数据处理,得到所述图像数据对应的目标数据;
第二数据发送单元,用于采用所述输出流,将各所述缓冲区中的所述目标数据分别发送至各所述应用程序。
15.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~12中任意一项所述方法的步骤。
16.一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~12中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311073808.8A CN116775317B (zh) | 2023-08-24 | 2023-08-24 | 一种数据分配方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311073808.8A CN116775317B (zh) | 2023-08-24 | 2023-08-24 | 一种数据分配方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116775317A CN116775317A (zh) | 2023-09-19 |
CN116775317B true CN116775317B (zh) | 2024-03-22 |
Family
ID=87986418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311073808.8A Active CN116775317B (zh) | 2023-08-24 | 2023-08-24 | 一种数据分配方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775317B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125284A (zh) * | 2021-11-18 | 2022-03-01 | Oppo广东移动通信有限公司 | 图像处理方法、电子设备及存储介质 |
CN114205529A (zh) * | 2021-12-20 | 2022-03-18 | 北京鸿合爱学教育科技有限公司 | 一种单摄像头的调用方法、装置、终端和可读存储介质 |
CN114302101A (zh) * | 2021-06-09 | 2022-04-08 | 海信视像科技股份有限公司 | 显示设备和数据共享方法 |
WO2023050418A1 (zh) * | 2021-09-30 | 2023-04-06 | 深圳传音控股股份有限公司 | 数据处理方法、数据处理系统、电子设备及存储介质 |
CN116546258A (zh) * | 2023-04-27 | 2023-08-04 | 贵州省广播电视信息网络股份有限公司 | 单路摄像头同一时刻多场景共同使用的实现方法 |
-
2023
- 2023-08-24 CN CN202311073808.8A patent/CN116775317B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114302101A (zh) * | 2021-06-09 | 2022-04-08 | 海信视像科技股份有限公司 | 显示设备和数据共享方法 |
WO2023050418A1 (zh) * | 2021-09-30 | 2023-04-06 | 深圳传音控股股份有限公司 | 数据处理方法、数据处理系统、电子设备及存储介质 |
CN114125284A (zh) * | 2021-11-18 | 2022-03-01 | Oppo广东移动通信有限公司 | 图像处理方法、电子设备及存储介质 |
CN114205529A (zh) * | 2021-12-20 | 2022-03-18 | 北京鸿合爱学教育科技有限公司 | 一种单摄像头的调用方法、装置、终端和可读存储介质 |
CN116546258A (zh) * | 2023-04-27 | 2023-08-04 | 贵州省广播电视信息网络股份有限公司 | 单路摄像头同一时刻多场景共同使用的实现方法 |
Non-Patent Citations (1)
Title |
---|
基于PC机的雷达图像信号采集与显示系统;李少伟 等;《舰船科学技术》;20090131;第31卷(第1期);第92-95页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116775317A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213611B (zh) | 跨进程通讯方法、装置、终端及存储介质 | |
CN109462726B (zh) | 摄像头的控制方法和装置 | |
US11829303B2 (en) | Methods and apparatus for device driver operation in non-kernel space | |
CN107959582B (zh) | 一种切片实例的管理方法及装置 | |
CN109068059B (zh) | 一种调用相机的方法、移动终端及存储介质 | |
WO2004111847A1 (ja) | リソース管理方法及び装置、リソース管理プログラム、記憶媒体 | |
CN110944146B (zh) | 智能分析设备资源调整方法及装置 | |
JP7100154B2 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN113766120B (zh) | 拍摄模式的切换方法及电子设备 | |
CN115665342B (zh) | 图像处理方法、图像处理电路、电子设备和可读存储介质 | |
EP3905740A1 (en) | Sim card registration method and apparatus, computer device, and storage medium | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN116775317B (zh) | 一种数据分配方法、装置、存储介质及电子设备 | |
CN111865630A (zh) | 拓扑信息获取方法、装置、终端及存储介质 | |
CN114911632B (zh) | 一种进程间通信的控制方法和系统 | |
CN113271228B (zh) | 带宽资源调度方法、装置、设备及计算机可读存储介质 | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115934585A (zh) | 内存管理方法、装置和计算机设备 | |
CN110633141A (zh) | 一种应用程序的内存管理方法、装置、终端设备及介质 | |
CN105630710A (zh) | 外设设备的访问控制方法、系统和服务器 | |
CN110888822A (zh) | 内存处理方法、装置及存储介质 | |
CN117827709B (zh) | 直接内存访问的实现方法、装置、设备及存储介质 | |
CN116599917B (zh) | 网口确定方法、装置、设备及存储介质 | |
CN110247828B (zh) | 识别码分配方法及装置 | |
US20190278638A1 (en) | Image data management apparatus and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |