CN117130680A - 一种芯片资源的调用方法及电子设备 - Google Patents
一种芯片资源的调用方法及电子设备 Download PDFInfo
- Publication number
- CN117130680A CN117130680A CN202310207086.4A CN202310207086A CN117130680A CN 117130680 A CN117130680 A CN 117130680A CN 202310207086 A CN202310207086 A CN 202310207086A CN 117130680 A CN117130680 A CN 117130680A
- Authority
- CN
- China
- Prior art keywords
- chip
- algorithm
- service module
- camera
- resource service
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 307
- 230000008569 process Effects 0.000 claims abstract description 264
- 238000012545 processing Methods 0.000 claims abstract description 183
- 238000004422 calculation algorithm Methods 0.000 claims description 299
- 230000006870 function Effects 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 28
- 230000001133 acceleration Effects 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 13
- 239000010410 layer Substances 0.000 description 85
- 238000013461 design Methods 0.000 description 21
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 13
- 238000009877 rendering Methods 0.000 description 10
- 230000006978 adaptation Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 6
- 239000000306 component Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 208000002874 Acne Vulgaris Diseases 0.000 description 1
- 206010000496 acne Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000005282 brightening Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000002087 whitening effect Effects 0.000 description 1
- 230000037303 wrinkles 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供一种芯片资源的调用方法及电子设备,应用于终端领域。电子设备的硬件抽象层HAL中设有芯片资源服务模块,芯片资源服务模块不同于相机资源服务模块,且芯片资源服务模块在第一进程中运行,相机资源服务模块在第二进程中运行,第一进程与第二进程相互独立;该方法中,电子设备响应于接收到第一处理请求,基于在第一进程中运行的芯片资源服务模块,调用芯片硬件资源。该方法通过在硬件抽象层HAL中配置一个与相机资源服务模块不同的芯片资源服务模块,来负责对芯片硬件资源的调用处理,从而使得第一进程和第二进程不会相互影响,提高了进程稳定性。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种芯片资源的调用方法及电子设备。
背景技术
电子设备中的芯片硬件资源可以起到计算和存储数据的作用,因而电子设备可以调用芯片硬件资源(下文简称芯片资源)来实现推理、加速等功能。
目前应用在需要访问芯片资源的情况下,通常调用电子设备硬件抽象层中的相机资源服务模块,通过相机资源服务模块来调用底层的芯片资源。这就导致芯片资源服务和相机资源服务模块本身提供的相机资源服务都在相机进程中运行。那么一旦任一服务出现问题,都会影响相机进程的正常使用。因此相机进程的稳定性较差,经常出现相机进程崩溃的情况。
发明内容
基于此,本申请提供一种芯片资源的调用方法及电子设备,新增芯片资源服务模块使芯片资源服务和相机资源服务解耦,且芯片资源服务模块运行在第一进程中,第一进程与既有的其它进程(相当于第二进程)相互独立,任一进程崩溃不会影响另一进程,因而进程稳定性更好。
第一方面,本申请提供一种芯片资源的调用方法,应用于电子设备,电子设备的硬件抽象层HAL中设有芯片资源服务模块,芯片资源服务模块不同于相机资源服务模块,且芯片资源服务模块在第一进程中运行,相机资源服务模块在第二进程中运行,第一进程与第二进程相互独立。该方法中,电子设备响应于接收到第一处理请求,基于在第一进程中运行的芯片资源服务模块,调用芯片硬件资源。
其中,芯片硬件资源又称芯片计算资源。本方案中,芯片硬件资源的算力强,因而电子设备通过芯片硬件资源实现对处理程序的执行过程的加速。在HAL层增设芯片资源服务模块,并与相机资源服务模块在不同进程中运行。当电子设备通过在第一进程中运行的芯片资源服务模块来加载与第一处理请求对应的处理程序时,若相机资源服务模块崩溃,则第二进程也会一同崩溃,但与他们独立的第一进程以及在第一进程中的芯片资源服务模块都不会收到影响,因而芯片硬件资源输出的结果可正常返回给应用,用户体验较好。
在第一方面的另一种可能的设计方式中,调用芯片硬件资源,包括:调用芯片硬件资源对第一处理请求指示的媒体文件进行处理。
该设计方式下,媒体文件包括图片文件、音视频文件和文档文件等。第一处理请求可以是对图片、视频、音频、文档的识别或者编辑。电子设备在非拍摄过程中也能对媒体文件进行处理,因此与媒体文件相关的处理程序可以不用相机进程来加载。所以通过芯片资源服务模块来调用与媒体文件相关的芯片硬件资源,使得与媒体文件相关的处理程序在第一进程中加载。
在第一方面的另一种可能的设计方式中,电子设备的硬件抽象层HAL中还集成有第一处理算法和第二处理算法,其中,第一处理算法被第一进程加载,第二处理算法被第二进程加载。上述基于在第一进程中运行的芯片资源服务模块,调用芯片硬件资源,包括:电子设备基于在第一进程中运行的芯片资源服务模块,加载第一处理算法,并通过第一处理算法调用芯片硬件资源。
该设计方式下,电子设备通过调用芯片硬件资源对算法对应的功能进行推理、加速。算法包括:图像渲染算法、图像处理算法等。其中,图像渲染算法是对拍摄过程中采集的图像数据进行剪裁、美化等处理,由于图像渲染算法在拍摄过程中被相机进程加载,所以图像渲染算法是第二处理算法中的一种算法。图像处理算法根据是否需要在拍摄过程中加载被分为,需要在拍摄过程中被相机进程加载的第二处理算法,以及无需在拍摄过程中被相机进程加载的第一处理算法。第一处理算法可以通过第一进程中运行的芯片资源服务模块加载,那么第一处理算法崩溃,只会引起第一进程崩溃,第二进程不会收到影响,那么第二进程的稳定性更好。
在第一方面的另一种可能的设计方式中,第一处理算法用于针对已有图像数据、已有音视频文件或已有文档文件进行处理。
针对已有图像数据、已有音视频文件或已有文档文件进行处理的第一处理算法可以不被既有进程加载,所以将这类算法可被从既有进程中解耦的新的进程加载,如第一处理算法被第一进程加载,第一进程与既有进程是彼此独立的关系。第一处理算法并通过芯片资源服务模块来加载,使得这类算法崩溃并不会影响既有进程的运行,进程稳定性更好。
在第一方面的另一种可能的设计方式中,第一处理算法包括目标检测算法、视频编辑算法,上述基于在第一进程中运行的芯片资源服务模块,加载第一处理算法,并通过第一处理算法调用芯片硬件资源,包括:电子设备基于在第一进程中运行的芯片资源服务模块,调用目标检测算法,并通过目标检测算法调用芯片硬件资源,对第一进程中运行的目标检测算法对应的功能进行推理加速处理,以输出图像数据对应的目标检测结果;或者,电子设备基于在第一进程中运行的芯片资源服务模块,加载视频编辑算法,并通过视频编辑算法调用芯片硬件资源,对第一进程中运行的视频编辑算法对应的功能进行推理加速处理,以将图像数据处理为预设风格的目标视频。
该设计方式下,目标检测算法和视频编辑算法是针对已有图像数据进行处理的算法,因而,目标检测算法和视频编辑算法都运行在第一进程中,第一进程是由电子设备启动后创建的独立进程,即第一进程不为包括相机进程以内的既有进程,第一进程与既有进程相互独立,所以第一进程不会因既有进程崩溃而受到影响,那么目标检测算法、视频编辑算法的处理结果可正常返回给应用。
在第一方面的另一种可能的设计方式中,该方法还包括:响应于接收到第二处理请求,电子设备基于在第二进程中运行的相机资源服务模块,在拍摄过程中调用芯片硬件资源来处理摄像头采集的图像数据,其中,第二进程包括相机进程。
第二处理请求包括第二图像处理请求、第二音频处理请求、第二文档处理请求等。
第二进程为电子设备中的既有进程,如相机进程、Wi-Fi进程、音频进程等。
该设计方式下,通过相机资源服务模块调用涉及到相机进程的处理程序,以使得第二进程中的处理程序不会受到芯片资源服务模块的崩溃或第一进程的崩溃影响而无法执行,因而第二进程中的图像处理程序相关的应用可接收到芯片硬件资源返回的处理结果。比如,相机应用在打开摄像头拍摄图像时,若第一处理算法如目标检测算法在第一进程中运行,那么在第二进程中运行的图像渲染算法不会受到第一进程中的目标检测算法的影响,即使第一进程崩溃,也不影响摄像头拍摄图像,相机进程的稳定性较好。
在第一方面的另一种可能的设计方式中,第一处理算法无需在拍摄过程中也可调用,如第一处理算法是对已有的媒体文件进行处理的算法,所以第一处理算法可以被不在相机进程中的服务加载。第二处理算法需要在拍摄过程中调用,比如第二处理算法是对摄像头实时采集的数据进行渲染的算法,所以第二处理算法仍被相机进程中的服务(即相机资源服务模块)加载。由于第一处理算法和第二处理算法被不同的服务加载,所以第一处理算法崩溃不会引起影响相机进程的崩溃,使得进程稳定性更好。
在第一方面的另一种可能的设计方式中,电子设备还包括芯片平台配置模块,芯片平台配置模块内置不同芯片平台接口,根据电子设备所采用的芯片平台,调用对应的芯片平台接口。
该设计方式下,电子设备配置芯片平台配置模块,提供不同的芯片平台接口。不同电子设备可配置相同的芯片平台配置模块,并通过调用其中提供的芯片平台接口,从而调用不同芯片平台的芯片。这样不必为不同电子设备单独配置不同接口,降低了开发和维护成本。
第二方面,本申请提供一种电子设备,该电子设备包括:处理器,用于存储处理器可执行指令的存储器,处理器被配置为执行指令时,使得电子设备实现如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种电子设备,该电子设备包括:存储器和一个或多个处理器,存储器与处理器耦合;其中,该存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得处理器执行如下步骤:电子设备响应于接收到第一处理请求,基于在第一进程中运行的芯片资源服务模块,调用芯片硬件资源。
在第三方面的一种可能的设计方式中,当该计算机指令被处理器执行时,使得电子设备还执行如下步骤:调用芯片硬件资源对第一处理请求指示的媒体文件进行处理。
在第三方面的另一种可能的设计方式中,电子设备的硬件抽象层HAL中还集成有第一处理算法和第二处理算法,其中,第一处理算法被第一进程加载,第二处理算法被第二进程加载。当该计算机指令被处理器执行时,使得电子设备还执行如下步骤:基于在第一进程中运行的芯片资源服务模块,加载第一处理算法,并通过第一处理算法调用芯片硬件资源。
在第三方面的另一种可能的设计方式中,第一处理算法用于针对已有图像数据、已有音视频文件或已有文档文件进行处理。
在第三方面的另一种可能的设计方式中,第一处理算法包括目标检测算法、视频编辑算法。当该计算机指令被处理器执行时,使得电子设备还执行如下步骤:基于在第一进程中运行的芯片资源服务模块,调用目标检测算法,并通过目标检测算法调用芯片硬件资源,对第一进程中运行的目标检测算法对应的功能进行推理加速处理,以输出图像数据对应的目标检测结果。或者,基于在第一进程中运行的芯片资源服务模块,加载视频编辑算法,并通过视频编辑算法调用芯片硬件资源,对第一进程中运行的视频编辑算法对应的功能进行推理加速处理,以将图像数据处理为预设风格的目标视频。
在第三方面的另一种可能的设计方式中,当该计算机指令被处理器执行时,使得电子设备还执行如下步骤:响应于接收到第二处理请求,电子设备基于在第二进程中运行的相机资源服务模块,调用芯片硬件资源来处理摄像头采集的数据,其中,第二进程包括相机进程。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面所述的电子设备,第三方面及其任一种可能的设计方式的电子设备,第四方面所述的计算机可读存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为相关技术中算法调用芯片资源的示意图;
图2为相关技术中一种软件架构的示意图;
图3为本申请实施例提供的一种软件架构的示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件结构示意图;
图6为本申请实施例提供的一种芯片资源的调用方法的模块交互图;
图7为本申请实施例提供的另一种软件架构的示意图;
图8为本申请实施例提供的又一种软件架构的示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
电子设备中的芯片硬件资源可以起到计算和存储数据的作用,因而应用程序层或框架层中的功能模块可以调用芯片资源来实现推理、加速等处理。由于一些操作系统平台的限制,如图1所示,在应用程序层或框架层的功能模块不能直接调用底层的芯片平台提供的软件开发工具包(softwaredevelopmentkit,SDK)来实现对芯片资源的调用,而需要借助硬件抽象层(hardwareabstractlayer,HAL)实现。具体的,部署在应用程序层或框架层的功能模块可以通过电子设备在HAL层提供的相机资源服务模块来调用芯片资源。存在的问题是,由于目前算法在相机进程内部集成和运行,二者耦合紧密,因而,不论算法还是相机资源服务模块出现崩库,都将导致相机进程崩溃等,使得相机进程的稳定性受到影响,那么使用相机进程的功能模块接收不到芯片资源的返回结果,相机APP也无法正常运行,用户的使用体验较差。如图2所示,应用程序(application,APP)需通过HAL层的相机资源服务模块调用HAL层的算法资源。其中,相机资源服务模块运行在第二进程中。算法资源包括第一处理算法和第二处理算法,第一处理算法不涉及到相机进程,第二处理算法涉及到相机进程。算法资源可以调用硬件层的芯片资源实现对第一处理算法、第二处理算法的推理、加速等。在图2所示软件架构中,一旦相机资源服务模块、第一处理算法和第二处理算法的任一模块出现崩库,相机资源服务模块提供给APP的功能便无法正常使用。
由此可见,常规技术中算法资源与相机资源服务模块、相机进程高度依赖,无法实现彼此间的解耦,虽然第一处理算法不涉及相机进程,但其也需要被相机进程加载,因而一旦第一处理算法崩溃,相机进程会受到第一处理算法崩溃的影响,导致相机进程的稳定性较差,崩溃频率高。
在一些实施例中,第一处理算法、第二处理算法可以是图像算法,比如,第一处理算法是目标检测算法,用于对图像中的目标进行识别。第二处理算法是渲染算法,用于在拍摄过程中实时渲染图像。当第一处理算法崩溃时,引起相机进程崩溃,那么第二处理算法也无法被加载,相机APP的功能无法正常使用,用户体验较差。
除了上文提到的图像算法外,应用程序不涉及到图像算法的情况下也有调用芯片资源的需求。比如,音频资源服务模块既要加载语音识别算法,又要负责播放音频,那么当语音识别算法崩溃时,音频资源服务模块所运行的音频进程也崩溃,导致电子设备无法播放音频,即音乐APP的功能无法正常使用,用户体验较差。
有鉴于此,本申请实施例提供一种芯片资源的调用方法,应用于电子设备,电子设备的硬件抽象层HAL中设有芯片资源服务模块,芯片资源服务模块不同于相机资源服务模块,且芯片资源服务模块在第一进程中运行,相机资源服务模块在第二进程中运行,第一进程与第二进程相互独立。该方法中,电子设备响应于接收到第一处理请求,第一处理请求用于调用芯片硬件资源,第一处理请求包括第一图像处理请求,第一音频处理请求,第一文档处理请求等。基于在第一进程中运行的芯片资源服务模块,调用芯片硬件资源。该方法通过在硬件抽象层HAL中配置一个与相机资源服务模块不同的芯片资源服务模块,来负责对芯片硬件资源的调用处理,从而使得第一进程和第二进程不会相互影响,提高了进程稳定性。
在一些实施例中,电子设备中可集成第一处理算法和第二处理算法,第一处理算法被第一进程加载,第二处理算法被第二进程加载。第一处理算法是在非拍摄过程中也可执行的算法,第一处理算法可以不被相机进程加载,所以电子设备可通过在第一进程运行的芯片资源服务模块加载第一处理算法,从而调用芯片资源。由于第一处理算法与第二处理算法运行的进程不同,所以第一处理算法崩溃不会影响第二进程的正常运行,第二处理算法崩溃也不会影响第一进程的正常运行,两类算法所在进程的稳定性都更好。
在本申请实施例中,电子设备可以为便携式计算机(如手机)、平板电脑、笔记本电脑、个人计算机(personalcomputer,PC)、可穿戴电子设备(如智能手表)、增强现实(augmented reality,AR)\虚拟现实(virtualreality,VR)设备、车载电脑等设备,以下实施例对该电子设备的具体形式不做特殊限制。
如图3所示,电子设备中部署有芯片资源和算法资源,APP侧通过HAL层中运行于第二进程中的相机资源服务模块调用算法资源模块中的第二处理算法,从而调用芯片资源实现对第二处理算法采集到的图像数据进行处理。APP侧还通过HAL层中运行于第一进程中的芯片资源服务模块调用算法资源模块中的第一处理算法,从而调用芯片资源对第一处理算法对应的功能实现推理、加速、数字信号处理(digitalsignalprocessing,DSP)深度学习加速。
如图4所示,以电子设备是手机为例,手机可以包括处理器410,外部存储器接口420,内部存储器421,通用串行总线(universalserialbus,USB)接口430,充电管理模块440,电源管理模块441,电池442,天线1,天线2,移动通信模块450,无线通信模块460,音频模块470,扬声器470A,受话器470B,麦克风470C,耳机接口470D,传感器模块480,按键490,马达491,指示器492,摄像头493,显示屏494,以及用户标识模块(subscriberidentificationmodule,SIM)卡接口495等。
其中,上述传感器模块480可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。
可以理解的是,本实施例示意的结构并不构成对手机的具体限定。在另一些实施例中,手机可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器410可以包括一个或多个处理单元,例如:处理器410可以包括应用处理器(applicationprocessor,AP),调制解调处理器,图形处理器(graphicsprocessingunit,GPU),图像信号处理器(imagesignalprocessor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digitalsignalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processingunit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器410中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器410中的存储器为高速缓冲存储器。该存储器可以保存处理器410刚用过或循环使用的指令或数据。如果处理器410需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器410的等待时间,因而提高了系统的效率。
在一些实施例中,处理器410可以包括一个或多个接口。接口可以包括集成电路(inter-integratedcircuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,I2S)接口,脉冲编码调制(pulsecodemodulation,PCM)接口,通用异步收发传输器(universal asynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobileindustryprocessor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriberidentitymodule,SIM)接口,和/或通用串行总线(universalserialbus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备通过GPU,显示屏494,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏494和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器410可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
外部存储器接口420可以用于连接外部存储卡,例如MicroSD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口420与处理器410通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器421可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器421可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器421可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,UFS)等。处理器410通过运行存储在内部存储器421的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
显示屏494用于显示图像,视频等。该显示屏494包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,LCD),有机发光二极管(organiclight-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemitting diode,AMOLED),柔性发光二极管(flexlight-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantumdotlightemittingdiodes,QLED)等。
电子设备可以通过ISP,摄像头493,视频编解码器,GPU,显示屏494以及应用处理器等实现拍摄功能。
ISP用于处理摄像头493反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头493中。
摄像头493用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(chargecoupleddevice,CCD)或互补金属氧化物半导体(complementarymetal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括N个摄像头493,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其它数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving pictureexpertsgroup,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
在一些实施例中,电子设备中的大量核心部件,比如,处理器(中央处理器、图像处理器等)、内存以及多类主机控制器(hostcontrol)等,可以集成于主芯片中。主芯片的高集成度有助于缩小电子设备的物理空间,满足当前用户对电子设备追求轻量化、便携化的需求。
以下实施例中的方法均可以在具有上述硬件结构的电子设备中实现。
在一些实施例中,电子设备开启摄像头,采集图像信号,电子设备通过ISP对图像信号进行处理,转化为图像。
在另一些实施例中,电子设备开启摄像头,通过ISP对拍摄场景的参数进行处理,如自动对焦、自动曝光以及自动白平衡。
在另一些实施例中,电子设备通过NPU对图片进行人脸识别,得到NPU输出的识别结果。该实施例中,针对的图片是已拍摄成像的图像,因而电子设备在非拍摄过程中就能处理图片。
在另一些实施例中,电子设备响应于检测到针对视频编辑应用的触发区域的触发操作,通过NPU将视频显示为电子设备中预设的默认风格,或者在视频中增加默认背景音乐。
电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的安卓AndroidTM系统为例,示例性说明电子设备的软件结构。
如图5所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将AndroidTM系统分为五层,从上至下分别为应用程序层,应用程序框架层(简称框架层),安卓运行时(AndroidTMruntime)和系统库,硬件抽象层(hardwareabstractionlayer,HAL)以及内核层。
其中,应用程序包可以包括相机,日历、地图、视频、音乐、短消息、图库、通话、桌面、视频剪辑等应用程序。
视频剪辑APP可以调用第一处理算法,第一处理算法在非拍摄过程中便可对视频进行剪辑处理。
相机程序(application,APP)可以调用第二处理算法,第二处理算法在拍照、录制的过程中被加载。
框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,API)和编程框架。框架层包括一些预先定义的函数。如图5所示,框架层可以包括窗口管理器、内容管理器、视图系统、电话管理器、资源管理器、通知管理器、活动管理器等。
其中,视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标、图片、布局文件、视频文件等等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小、判断是否有状态栏、锁定屏幕、截取屏幕等。
活动管理器用于管理各个应用程序的生命周期以及导航回退功能,负责AndroidTM的主线程创建,各个应用程序的生命周期的维护。
HAL层是对硬件的抽象和封装,向上提供接口,屏蔽低层硬件的实现细节。
HAL层中可以包括相机资源服务、芯片资源服务、算法资源、Wi-FiHAL,音频(audio)HAL、芯片资源HAL、相机HAL等。
其中,相机资源服务模块可以用于传递和保存拍摄过程中获取的信息。比如,相机资源服务模块负责调用第二处理算法,第二处理算法需要在拍摄过程中加载,第二处理算法可以借助底层芯片资源来实现推理、加速。
芯片资源服务模块可以用于传递和保存无需在拍摄过程中获取的信息。比如,芯片资源服务模块负责调用第一处理算法,第一处理算法无需在拍摄过程中加载,第一处理算法可以借助底层芯片资源来实现推理、加速。
算法资源可以包括多种算法。例如,算法资源包括启动相机进程运行的第二处理算法如美肤算法、补光算法、瘦脸算法、亮眼算法、祛痘算法、去皱算法、滤镜算法、美妆算法、发型更换算法、马赛克算法、对比度算法、饱和度算法、锐化算法、背景虚化算法以及高动态范围图像算法等,算法资源还可以包括以不运行于包括相机进程在内的其它既有进程的服务可调用的第一处理算法如人脸识别算法、视频剪辑算法等。
芯片资源HAL可以响应于接收到芯片资源服务模块发送的第一算法调用请求,调用第一处理算法。第一处理算法可在非拍摄过程中执行,从而对电子设备中已拍摄成像的媒体文件进行处理。
相机HAL可以响应于接收到相机资源服务模块发送的第二算法调用请求,调用第二处理算法。在拍摄过程中执行第二处理算法对摄像头采集的图像数据进行处理。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。其中,摄像头驱动是摄像头的驱动层,主要负责和硬件的交互。比如,摄像头驱动可以启动硬件层的摄像头,被启动的摄像头可以采集图像数据。
下面以电子设备为手机为例,对本申请实施例提供的芯片资源的调用方法所涉及的软件模块和模块间的交互进行说明。
1、调用第一处理算法。
电子设备启动,创建第一进程,第一进程独立于既有进程,芯片资源服务模块运行在第一进程中。响应于检测到针对视频剪辑APP中“视频剪辑”控件的触发操作,应用程序层的视频剪辑APP向框架层发送第一算法接口调用指令。框架层根据第一算法接口调用指令确定需调用第一处理算法,且第一图像算法所涉及的功能需要利用到芯片资源。因而,框架层向HAL层的芯片资源服务模块发送视频处理请求。视频处理请求中包括第一图像算法的算法标识、视频ID、视频编辑风格信息等参数。其中,视频编辑风格信息包括视频的滤镜参数、音乐参数等。
芯片资源服务模块将视频处理请求发送至HAL层的芯片资源HAL。芯片资源HAL接收到视频处理请求,在第一进程中加载第一处理算法对视频ID对应的视频资源进行处理。
示例性的,当视频ID对应的是原始视频1,视频编辑风格为“滤镜参数:黑白”、“音乐参数:链接1”时,芯片资源HAL可以调用视频剪辑算法,在第一进程中执行该算法对原始视频1进行处理,并通过芯片资源为视频剪辑算法对应的功能进行推理加速,芯片资源的调用结果将会通过硬件抽象层接口定义语言(HALinterfacedefinitionlanguage,HIDL)接口从HAL层返回至框架层及应用程序层,并在视频剪辑APP中输出被调整为预设风格的目标视频1。
2、调用第二处理算法。
电子设备启动,相机资源服务模块运行在既有进程如相机进程中。响应于检测到针对相机APP的触发操作,应用程序层的相机APP向框架层发送拍摄请求。拍摄请求中包括摄像头的相关信息,比如当前拍摄场景对应的摄像头标识(identity,ID)、拍摄模式等参数。框架层将拍摄请求发送给HAL层的相机资源服务模块,并由相机资源服务模块将拍摄请求发送至相机HAL。相机HAL接收到拍摄请求后,向内核层的摄像头驱动发送当前拍摄场景对应的摄像头ID等参数。摄像头驱动根据当前拍摄场景对应的摄像头ID向硬件层中的相应的摄像头发送启动指令以启动相应摄像头。被启动的摄像头可以采集图像数据,并通过摄像头驱动将图像数据上报给相机HAL。之后,相机HAL可以通过调用相机进程中运行的相机资源服务模块,来调用相应的第二处理算法,在相机进程中执行第二处理算法对摄像头采集的图像数据进行处理。
示例性的,当拍摄模式为美颜模式时,相机HAL可以调用美肤算法、年龄识别算法、补光算法、美白算法以及瘦脸算法等第二处理算法,在第二进程中执行第二处理算法对摄像头采集的图像数据进行美颜处理,在相机APP的预览界面上输出美颜处理后的图像。
需要说明的是,本申请实施例提供的芯片资源的调用方法不仅可用于上述方案中相机APP、视频剪辑APP等实现摄影图像功能的应用程序对芯片资源的调用,还可用于如游戏、翻译、音乐、地图等可能用到芯片资源的其它APP。比如,在地图APP和相机APP都需通过HAL层的服务调用芯片资源的情况下,地图APP通过芯片资源服务模块调用底层芯片资源,而相机APP通过相机资源服务模块调用底层芯片资源。再比如,音乐APP可以通过芯片资源服务模块调用底层芯片资源对语音进行文字识别的计算处理。其中,芯片资源服务模块和相机资源服务模块分别运行于不同进程中,这样相机进程不会受到地图APP加载的算法、音乐APP加载的算法的崩溃影响而无法正常使用,因而相机进程稳定性更好。
下面以第一处理算法和第二处理算法同为图像处理算法为例,并结合附图说明本申请实施例提供的芯片资源的调用方法。
本申请提供一种芯片资源的调用方法,应用于如图4所示的电子设备。如图6所示,为本申请实施例提供的芯片资源的调用方法的流程示意图,该方法包括以下步骤:
S601、手机启动,创建进程1。
由于芯片资源服务模块和相机资源服务模块解耦,因而手机会在启动会为芯片资源服务模块创建一个新的进程,该进程1是不包括相机进程在内的其它既有进程,芯片资源服务模块运行在该进程1中。由于进程1与相机进程相互独立,任一进程崩溃不会影响另一进程,因而进程稳定性更好。
S602、启动芯片资源服务模块,芯片资源服务模块运行于进程1中。
手机新增芯片资源服务模块。在执行芯片资源调用方法前,芯片资源服务模块启动。需要说明的是,由于一些操作系统平台的限制,算法需借助HAL层的服务来调用芯片资源,因而芯片资源服务模块设置在HAL层,以便算法通过HAL层提供的服务来调用底层芯片资源。在HAL层中还预设有相机资源服务模块,常规技术中,手机是通过调用相机进程中的相机资源服务模块来调用底层芯片资源的,且相机进程集成了各种算法,所以一旦算法或相机资源服务崩溃,会影响相机进程的稳定性。换句话说,一些可以在非拍摄过程中处理的算法也由相机进程加载,使得相机进程稳定性会受到算法库中第一处理算法、第二处理算法、相机资源服务模块等多方影响。而本实施例的改进之处在于,手机新增芯片资源服务模块来负责调用可以不被相机进程加载的第一处理算法,并让芯片资源服务模块运行在进程1中。如此,芯片资源服务模块便可以和相机资源服务模块解耦,二者运行在不同进程中,彼此互不影响。
HAL层的芯片资源服务模块和相机资源服务模块在开机时便可启动,并完成初始化和注册工作。用户在使用APP的过程中,若APP的功能需要利用芯片资源,则手机中的软件模块执行下文S603。
S603、响应于用户打开视频编辑功能的触发操作,视频剪辑APP向框架层发送第一图像处理请求。
其中,视频剪辑功能可理解为手机针对用户的触发操作,自动化编辑视频,得到成片的功能。用户打开视频剪辑功能的触发操作具体为,用户针对视频剪辑APP中视频剪辑功能触发区域的触发操作,或者用户通过其它应用调用视频剪辑APP的视频剪辑功能。
由于视频剪辑APP对视频的剪辑处理可以在非拍摄过程中进行,所以即使不被相机进程加载,该算法也可正常运行,因而视频剪辑APP检测到上述触发操作后,向框架层发送第一图像处理请求,用于通过框架层向HAL层调用第一图像算法对原始视频进行处理。第一图像处理请求包括第一图像算法的算法标识、原始视频的视频信息。其中,原始视频是已拍摄好的待处理视频,如原始视频是用户在视频库中选择的原始视频1、原始视频是从外部存储卡中获取的原始视频2等。
S604、响应于第一图像处理请求,框架层向芯片资源服务模块发送第一算法接口调用指令。
在HAL层预先配置有各个算法的标识信息与服务模块的对应关系,比如将非拍摄过程中也可被进程加载的第一图像算法与芯片资源服务模块相关联,配置为对应关系1;将需要在拍摄过程中被进程加载的第二图像算法与相机资源服务模块相关联,配置为对应关系2。因而,在本实施例中,框架层接收到第一图像处理请求,并根据对应关系1确定需向芯片资源服务模块发送第一算法接口调用指令后,框架层调用HAL层对其暴露的芯片资源服务模块的HIDL接口,从而将第一算法接口调用指令发送给芯片资源服务模块。其中,第一算法接口调用指令包括第一图像算法的算法接口信息、原始视频的视频数据等。
S605、芯片资源服务模块向HAL层的芯片资源HAL发送第一算法接口调用指令。
由于芯片资源服务模块与相机资源服务模块解耦,所以HAL层中还新增芯片资源HAL对无需在拍摄过程中获取到的信息进行传递和处理。比如该步骤中,芯片资源服务模块接收到第一算法接口调用指令,向芯片资源HAL传递第一处理算法接口指令,以便芯片资源HAL来调用芯片资源。
S606、响应于第一算法接口调用指令,芯片资源HAL向算法资源模块发送第一算法调用请求。
算法资源模块集成在HAL层,算法资源模块中的算法资源可被既有进程或新增的进程1加载。比如,算法资源模块中的第一图像算法可被既有进程和进程1加载,但出于降低既有进程的崩溃几率的目的,第一图像算法由进程1加载。算法资源模块中的第二图像算法需在拍摄过程中被加载,所以其仍被既有进程加载。
如果芯片资源HAL根据第一算法接口调用指令确定从算法资源模块中调用的是第一图像算法,那么向算法资源模块发送对第一图像算法的第一算法调用请求。
S607、响应于第一算法调用请求,算法资源模块中的视频剪辑算法向硬件层的芯片资源模块发送芯片调用请求。
本实施例中,芯片资源HAL在算法资源模块中调用视频剪辑算法。由于视频剪辑算法需要芯片资源对其进行计算处理如推理加速,因此,接收到第一算法调用请求后,视频剪辑算法向芯片资源模块发送芯片调用请求,以调用芯片资源。
在一些实施例中,芯片调用请求包括芯片资源标识、视频信息。芯片资源标识用于确定芯片资源模块(或称芯片)中的目标芯片资源。比如芯片资源标识包括芯片资源ID、芯片资源的接口信息的至少一种。
S608、响应于芯片调用请求,芯片资源模块对进程1中运行的视频剪辑算法对应的功能进行推理加速处理,其中,视频剪辑算法用于将视频信息对应的原始视频处理为预设风格的目标视频。
需要解释的是,手机启动了一个新进程,即进程1(或称第一进程)来运行芯片资源服务及其加载的视频剪辑算法,使得视频剪辑算法不必被既有进程(或称第二进程)加载。那么即使视频剪辑算法崩溃,也不会影响既有进程崩溃,既有进程仍可正常运行。通过启动新进程加载视频剪辑算法的方法,提高了既有进程稳定性。
示例性的,如图7的所示,在进程1中的视频剪辑算法与进程2中的图像渲染算法在各自进程中独立执行的情况下,图像渲染算法、相机资源服务、相机进程的任一者崩溃,都会导致相机进程停止响应,因而相机资源服务模块无法向框架层返回处理结果,造成应用侧的功能无法响应。而芯片资源服务模块及其调用的视频剪辑算法运行于单独进程中,因此视频剪辑算法仍可以正常运行,并向框架层返回处理结果,那么视频剪辑APP的功能也可正常使用。
在S608之后,芯片资源模块的调用结果会通过HIDL接口从HAL层返回至视频剪辑APP。如下文S609-S613所示。
S609、芯片资源模块向算法资源模块发送目标视频。
S610、算法资源模块向芯片资源HAL发送目标视频。
S611、芯片资源HAL向芯片资源服务模块发送目标视频。
S612、芯片资源服务模块向框架层发送目标视频。
S613、框架层向视频剪辑APP发送目标视频。
在该实施例中,视频剪辑APP对原始视频进行了视频剪辑处理,即将原始视频处理为预设风格如预设滤镜参数、预设音乐参数的目标视频,并且在处理时调用芯片资源模块对视频剪辑算法对应的功能进行推理加速,提高了处理速度。不仅如此,视频剪辑算法运行于独立进程中,不受相机进程、相机资源服务、算法资源模块的影响,因而视频剪辑算法及对应的进程1的崩溃几率较低、稳定性更好,那么用户的使用体验更好。
在手机调用进程2中的相机资源服务模块来加载第二图像算法,并通过第二图像算法调用芯片资源的方法中,相机资源服务模块运行于进程2中该步骤可参考S601。应用(如相机APP)可以向框架层发送第二图像处理请求,用于请求所述芯片资源服务模块调用芯片硬件资源来处理图像数据,其中图像数据包括图像的ISO(或称感光度)、分辨率、帧缓冲(frame buffer)等。该步骤具体可参考S603。响应于第二图像处理请求,框架层向相机资源服务模块发送芯片调用请求,具体可参考S604。相机资源服务模块向相机HAL发送第二算法接口调用指令,其中,第二算法接口调用指令用于调用第二处理算法如美肤算法,该步骤可参考S605。响应于第二算法接口调用指令,相机HAL向算法资源模块发送第二算法调用请求,该步骤可参考S606。响应于第二算法调用请求,算法资源模块中的美肤算法向硬件层的芯片资源发送芯片调用请求,该步骤可参考S607。响应于芯片调用请求,芯片资源对进程2中运行的美肤算法对应的功能进行推理加速处理,其中,美肤算法用于将摄像头拍摄过程中渲染得到的图像帧中的人像肤色进行调色,处理为预设人像肤色的图像帧并显示在拍摄界面上。
该实施例中,需在拍摄过程中加载的美肤算法与视频剪辑算法运行于两个不同的进程,二者互不干扰,且任一算法的进程崩溃也不会影响另一算法进程的运行,因而进程稳定性更好。
上文是以HAL层部署有算法资源模块为例进行说明的,在实际使用时,应用程序层(或框架层)无需执行第一图像算法或第二图像算法,也可调用芯片资源来实现推理加速。比如,相机APP调用芯片资源对摄像头拍摄过程中采集的图像数据进行处理,图库APP调用芯片资源对图库中的图像进行编辑处理等。
在上述实施例的基础上,可以在HAL层增设芯片平台适配模块,芯片平台配置模块配置不同芯片平台的标识信息,标识信息包括接口信息。不同手机可根据标识信息调用不同的芯片平台,实现不同手机跨芯片平台使用的芯片资源的调用的目的,降低开发成本。如图8所示,针对手机1芯片资源HAL接收到芯片调用请求后,将芯片调用请求发送给芯片平台适配模块。芯片平台适配模块根据芯片调用请求确定适配的芯片平台1,并调用适配的芯片平台1的接口。针对手机2,芯片平台模块还可以根据芯片调用请求确定适配的芯片平台2,并调用适配的芯片平台2的接口,以便利用芯片平台2提供的芯片所分配的芯片资源实现应用程序层(或框架层)的相关功能。如此,对手机而言,可以实现跨芯片平台的芯片资源的调用。继续参考图8,相机HAL接收到芯片调用请求后,通过将芯片调用请求发送给芯片平台适配模块,以使得芯片平台适配模块调用适配的芯片平台,并将芯片平台中芯片资源的处理结果返回给相机资源服务模块。
综上,本申请实施例提供一种芯片资源的调用方法,在HAL层新增芯片资源服务模块,芯片资源服务模块独立于原有的相机资源服务模块运行,因而与芯片资源服务模块互不影响。当应用程序层(或框架层)需调用芯片资源对算法功能进行计算处理比如推理加速处理时,可通过将处理请求发送给芯片资源服务模块,并由芯片资源服务模块发送给芯片资源HAL,使相关功能能够在独立进程中运行。不仅如此,HAL层还可构建芯片平台适配模块,提供不同的芯片平台的接口,芯片平台适配模块可以通过芯片调用请求确定适配的芯片平台,以便不同电子设备可以跨平台使用芯片资源。
本申请另一些实施例提供了一种电子设备,该电子设备可以包括:显示屏(如触摸屏)、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。该电子设备的结构可以参考图4所示的电子设备的结构。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(readonlymemory,ROM)、随机存取存储器(random accessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种芯片资源的调用方法,其特征在于,应用于电子设备,所述电子设备的硬件抽象层HAL中设有芯片资源服务模块;所述芯片资源服务模块不同于相机资源服务模块,且所述芯片资源服务模块在第一进程中运行,所述相机资源服务模块在第二进程中运行,所述第一进程与所述第二进程相互独立;所述方法包括:
响应于接收到第一处理请求,基于在所述第一进程中运行的芯片资源服务模块,调用芯片硬件资源。
2.根据权利要求1所述的方法,其特征在于,所述调用芯片硬件资源,包括:
调用所述芯片硬件资源对所述第一处理请求指示的媒体文件进行处理。
3.根据权利要求1所述的方法,其特征在于,所述电子设备的硬件抽象层HAL中还集成有第一处理算法和第二处理算法,其中,所述第一处理算法用于被所述第一进程加载,所述第二处理算法用于被所述第二进程加载;
所述基于在所述第一进程中运行的芯片资源服务模块,调用芯片硬件资源,包括:
基于在所述第一进程中运行的芯片资源服务模块,加载所述第一处理算法,并通过所述第一处理算法调用所述芯片硬件资源。
4.根据权利要求3所述的方法,其特征在于,所述第一处理算法用于针对已有图像数据、已有音视频文件或已有文档文件进行处理。
5.根据权利要求4所述的方法,其特征在于,所述第一处理算法包括目标检测算法或视频编辑算法,所述基于在所述第一进程中运行的芯片资源服务模块,加载所述第一处理算法,并通过所述第一处理算法调用所述芯片硬件资源,包括:
基于在所述第一进程中运行的芯片资源服务模块,加载所述目标检测算法,并通过所述目标检测算法调用所述芯片硬件资源,对所述第一进程中运行的所述目标检测算法对应的功能进行推理加速处理,以输出所述图像数据对应的目标检测结果;或者,
基于在所述第一进程中运行的芯片资源服务模块,加载所述视频编辑算法,并通过所述视频编辑算法调用所述芯片硬件资源,对所述第一进程中运行的所述视频编辑算法对应的功能进行推理加速处理,以将所述图像数据处理为预设风格的目标视频。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
响应于接收到第二处理请求,基于在所述第二进程中运行的相机资源服务模块,在拍摄过程中调用所述芯片硬件资源来处理摄像头采集的图像数据,其中,所述第二进程包括相机进程。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述电子设备还包括芯片平台配置模块,所述芯片平台配置模块内置不同芯片平台接口,根据所述电子设备所采用的芯片平台,调用对应的所述芯片平台接口。
8.一种电子设备,其特征在于,包括:处理器,用于存储所述处理器可执行指令的存储器,所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至7中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在所述电子设备上运行时,使得所述电子设备执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310207086.4A CN117130680A (zh) | 2023-02-24 | 2023-02-24 | 一种芯片资源的调用方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310207086.4A CN117130680A (zh) | 2023-02-24 | 2023-02-24 | 一种芯片资源的调用方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130680A true CN117130680A (zh) | 2023-11-28 |
Family
ID=88860617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310207086.4A Pending CN117130680A (zh) | 2023-02-24 | 2023-02-24 | 一种芯片资源的调用方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130680A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016149894A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Workload scheduler for computing devices with camera |
CN109101352A (zh) * | 2018-08-30 | 2018-12-28 | Oppo广东移动通信有限公司 | 算法架构、算法调用方法、装置、存储介质及移动终端 |
US20200327698A1 (en) * | 2019-04-10 | 2020-10-15 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image Processing Apparatus, Method for Image Processing, and Electronic Device |
CN113746998A (zh) * | 2020-05-29 | 2021-12-03 | 北京小米移动软件有限公司 | 图像处理方法、装置、设备及存储介质 |
CN114125284A (zh) * | 2021-11-18 | 2022-03-01 | Oppo广东移动通信有限公司 | 图像处理方法、电子设备及存储介质 |
-
2023
- 2023-02-24 CN CN202310207086.4A patent/CN117130680A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016149894A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Workload scheduler for computing devices with camera |
US20180027177A1 (en) * | 2015-03-23 | 2018-01-25 | Intel Corporation | Workload scheduler for computing devices with camera |
CN109101352A (zh) * | 2018-08-30 | 2018-12-28 | Oppo广东移动通信有限公司 | 算法架构、算法调用方法、装置、存储介质及移动终端 |
US20200327698A1 (en) * | 2019-04-10 | 2020-10-15 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image Processing Apparatus, Method for Image Processing, and Electronic Device |
CN113746998A (zh) * | 2020-05-29 | 2021-12-03 | 北京小米移动软件有限公司 | 图像处理方法、装置、设备及存储介质 |
CN114125284A (zh) * | 2021-11-18 | 2022-03-01 | Oppo广东移动通信有限公司 | 图像处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
US20230419570A1 (en) | Image Processing Method and Electronic Device | |
US20210358523A1 (en) | Image processing method and image processing apparatus | |
CN113722058B (zh) | 一种资源调用方法及电子设备 | |
CN113704205B (zh) | 日志存储的方法、芯片、电子设备和可读存储介质 | |
CN110780929B (zh) | 调用硬件接口的方法及电子设备 | |
WO2021052311A1 (zh) | 一种根据后壳颜色显示用户界面的方法和电子设备 | |
US11816494B2 (en) | Foreground element display method and electronic device | |
CN114461057A (zh) | Vr显示控制方法、电子设备及计算机可读存储介质 | |
CN113641271A (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
CN115333941A (zh) | 获取应用运行情况的方法及相关设备 | |
CN113656089B (zh) | 应用程序中的类验证方法和装置 | |
CN111381996B (zh) | 内存异常处理方法及装置 | |
CN113380240B (zh) | 语音交互方法和电子设备 | |
CN116048243A (zh) | 一种显示方法和电子设备 | |
CN115967851A (zh) | 快速拍照方法、电子设备及计算机可读存储介质 | |
CN117130680A (zh) | 一种芯片资源的调用方法及电子设备 | |
CN114398108A (zh) | 电子设备及其驱动加载方法、介质 | |
CN116795476B (zh) | 一种删除壁纸的方法及电子设备 | |
CN115482143B (zh) | 应用的图像数据调用方法、系统、电子设备及存储介质 | |
CN114006969B (zh) | 一种窗口启动方法和电子设备 | |
CN117707242A (zh) | 温度控制方法及相关装置 | |
CN118043836A (zh) | 一种广告归因的系统、方法以及装置 | |
CN117850896A (zh) | 一种预加载方法、电子设备、芯片及可读存储介质 | |
CN117372089A (zh) | 一种广告归因的系统、方法以及装置 |
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 |