高动态范围图像HDR实现方法及相关产品与流程

文档序号:20272600发布日期:2020-04-03 19:13阅读:252来源:国知局
高动态范围图像HDR实现方法及相关产品与流程

本申请涉及电子设备技术领域,具体涉及一种高动态范围图像hdr实现方法及相关产品。



背景技术:

随着时代的发展,人们对照片还原度的要求越来越高。为了满足上述需求,高动态范围图像(high-dynamicrange,hdr)应运而生。hdr是由多个不同曝光时间的低动态范围图像(low-dynamicrange,ldr),通过图像合成技术生成的。相较于普通图像,hdr可以提供更多的动态范围和图像细节,能够更好的反映出真实环境中的视觉效果。

现有的android平台中,第三方相机应用拥有可以访问底层的基本能力,但是若是想使用底层的更多的功能,却没有相应的标准来映射底层的能力给三方访问,导致上层第三方相机应用的hdr转换方式通常耗时较长,成本较高,图像匹配区域会相对少和曝光融合效果会差。



技术实现要素:

本申请实施例提供了一种高动态范围图像hdr实现方法及相关产品,以期提高第三方相机应用实现hdr的高效性和便捷性。

第一方面,本申请实施例提供一种高动态范围图像hdr实现方法,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:

所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;

所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;

所述预设目标根据所述第二相机应用数据实现hdr效果。

第二方面,本申请实施例提供一种高动态范围图像hdr实现装置,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述高动态范围图像hdr实现装置包括处理单元、通信单元和存储单元,其中,

所述处理单元,用于所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;以及用于所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;以及用于所述预设目标根据所述第二相机应用数据实现hdr效果。

第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。

第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第二方面任一方法中所描述的部分或全部步骤。

第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第二方面任一方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

可以看出,本申请实施例中,提供了一种高动态范围图像hdr实现方法及相关产品,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;所述预设目标根据所述第二相机应用数据实现hdr效果。可见,通过媒体平台充分利用底层硬件能力,有利于第三方相机应用实现hdr效果,同时有利于丰富第三方相机应用hdr实现的效果,有利于提高拍摄成片率,降低维护成本。

附图说明

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

图1是本申请实施例提供一种电子设备的结构示意图;

图2a本申请实施例提供的一种高动态范围图像hdr实现方法的流程示意图;

图2b本申请实施例提供的一种hdr功能的算法模块的使能方法的流程示意图;

图3是本申请实施例提供的另一种高动态范围图像hdr实现方法的流程示意图;

图4是本申请实施例提供的一种电子设备的结构示意图;

图5是本申请实施例提供的一种高动态范围图像hdr实现装置的功能单元组成框图。

具体实施方式

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

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请实施例所涉及到的电子设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(userequipment,ue),移动台(mobilestation,ms),终端设备(terminaldevice)等等。

目前,android平台,三方相机应用现在通过标准的android应用程序接口(applicationprogramminginterface,api)可以访问底层的相机数据,但是若是想使用底层的更多的增强功能或通过算法处理后的图像,却没有相应的标准接口来映射底层的能力给三方访问,现在流行的手机厂商的拍照方案,一般选取mf-hdr方式,其他几种应用在视频场景更多,底层模块相应请求的时间间隔比较长,曝光时间间隔较长,图像在运动间隔会大,从而导致hdr的实现过程时间较长,图像匹配区域会相对少和曝光融合效果较差。

针对上述问题,本申请实施例提供一种相机数据处理方法及相关装置,下面结合附图对本申请实施例进行详细介绍。

请参阅图1,图1是本申请实施例提供的一种电子设备的结构示意图,应用于电子设备100,所述电子设备100包括操作系统和媒体服务模块,所述操作系统可以是安卓系统,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;此外,所述操作系统的硬件抽象层还设置有媒体策略模块模块和算法管理模块,所述算法管理模块管理算法模块库,所述相机硬件抽象模块与媒体策略模块通信连接,操作系统原生架构还包括框架层、驱动层与硬件层等,框架层包括各种原生应用的应用接口(如原生相机应用程序接口)、应用服务(如原生相机服务)、框架层接口(如googlehal3interface),硬件抽象层包括硬件抽象层接口(如hal3.0)、各种原生应用的硬件抽象模块(如相机硬件抽象模块),驱动层包括各种驱动(如屏幕display驱动、音频audio驱动),该驱动层用于使能电子设备的各种硬件(如图像信号处理器isp+、前端图像传感器sensors)。

其中,媒体服务模块独立于操作系统设置,第三方相机应用可以通过媒体管理模块与媒体服务模块进行通信,媒体服务模块可以通过由应用接口、应用服务、框架层接口、硬件抽象层接口以及硬件抽象模块组成的安卓原生信息链路与媒体策略模块通信,媒体策略模块与算法管理模块通信,算法管理模块维护安卓原生的算法库,算法库包括各种原生应用所支持的增强功能,如针对原生相机应用,支持其实现双目拍照、美颜、锐化、夜景等各类增强功能。此外,媒体服务模块也可以与媒体策略模块或者算法管理模块直连通信。

基于上述架构,所述媒体服务模块可以通过安卓原生信息链路、媒体策略模块、算法管理模块使能算法库中的算法模块,或者,直接通过媒体策略模块和算法管理模块使能算法库中的算法模块,或者,直接通过算法管理模块使能算法库中的算法模块,从而实现针对第三方相机应用开放原生应用关联的增强功能。

基于上述架构,所述媒体服务模块可以通过安卓原生信息链路,或者,通过由媒体策略模块和相机硬件抽象模块组成的第一信息链路,或者,通过由媒体策略模块、算法管理模块和相机硬件抽象模块组成的第二信息链路,调用应用的驱动以使能某些硬件,从而实现针对第三方相机应用开放原生应用关联的硬件。

下面对本申请实施例进行详细介绍。

请参阅图2a,图2a是本申请实施例提供了一种高动态范围图像hdr实现方法的流程示意图,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:

s201,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;

s202,所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据;

其中,所述预设目标包括第三方相机应用。

其中,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的。

其中,所述第一相机应用数据包括指示处理的控制命令,实际进行数据处理时,所处理的数据可以是图像数据。

s203,所述预设目标根据所述第二相机应用数据实现hdr效果。

可以看出,本申请实施例中,提供了一种高动态范围图像hdr实现方法及相关产品,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;所述预设目标根据所述第二相机应用数据实现hdr效果。可见,通过媒体平台充分利用底层硬件能力,有利于第三方相机应用实现hdr效果,同时有利于丰富第三方相机应用hdr实现的效果,有利于提高拍摄成片率,降低维护成本。

在一个可能的示例中,所述相机硬件抽象模块获取待处理的第一相机应用数据,包括:所述相机硬件抽象模块调用相机驱动通过摄像头采集本地图像数据;和/或,所述相机硬件抽象模块接收来自所述第三方相机应用发送的网络图像数据。

具体实现中,相机硬件抽象模块调用相机驱动通过摄像头采集本地图像数据一、图像数据二和图像数据三。

具体实现中,相机硬件抽象模块调用相机驱动通过摄像头采集本地图像数据一,同时接收来自所述第三方相机应用发送的网络图像数据一。

可见,本示例中,所述相机硬件抽象模块获取待处理的第一相机应用数据包括来自相机驱动通过摄像头采集本地图像数据,和/或来自所述第三方相机应用发送的网络图像数据,有利于提高图像数据的来源多样性。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,包括:当所述预设目标为所述第三方相机应用时,所述第三方相机应用接收所述第二相机应用数据;所述第三方相机应用检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片。

其中,所述曝光融合包括对所述第三方相机应用获取的图像进行图像匹配,确定图像像素,若确定所述图像存在过度曝光的情况,则选取所述hdr帧数据的较低值;若确定所述图像存在曝光不足的情况,则选取所述hdr帧数据的较高值;若确定所述图像曝光正常,则选取所述hdr帧数据的均值。

其中,所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片包括所述第三方相机应用将hdr数据帧,编码生成多个jpeg文件,对所述多个jpeg文件进行清晰度检测,选取最清晰jpeg编码生成图片。

具体实现中,所述第三方相机应用接收到所述第二相机应用数据后,检测到所述第二相机应用数据中包括长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用确定图像存在过度曝光的情况,则选取所述帧数据的较低值;根据所述hdr数据帧编码生成hdr照片。

可见,本示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,包括:当所述预设目标为所述第三方相机应用时,所述第三方相机应用接收所述第二相机应用数据;所述第三方相机应用检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片;有利于所述第三方相机应用灵活对视频或照片进行hdr处理,有利于提高hdr实现的准确性和便捷性。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,包括:当所述预设目标为所述相机硬件抽象模块时,所述相机硬件抽象模块检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述相机硬件抽象模块将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片。

其中,所述曝光融合包括对所述相机硬件抽象模块获取的图像进行图像匹配,确定图像像素,若确定所述图像存在过度曝光的情况,则选取所述hdr帧数据的较低值;若确定所述图像存在曝光不足的情况,则选取所述hdr帧数据的较高值;若确定所述图像曝光正常,则选取所述hdr帧数据的均值。

其中,所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片之后,方法还包括所述相机硬件抽象模块向第三方应用app发送处理完的hdr文件。

具体实现中,所述相机硬件抽象模块检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述相机硬件抽象模块将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片。

可见,本示例中,当所述预设目标为所述相机硬件抽象模块时,所述相机硬件抽象模块检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述相机硬件抽象模块将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片;有利于减少hdr实现所使用的带宽,有利于降低所述第三方应用的自由控制程度,从而提高底层安全性。

在一个可能的示例中,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求之前,方法还包括:所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表;所述第三方相机应用从所述媒体服务模块查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力;所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符;所述媒体服务模块向所述相机硬件抽象模块发送所述预设功能配置字符;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的算法模块的使用权限。

其中,所述操作系统的硬件抽象层还设置有媒体策略模块和算法管理模块,所述算法管理模块管理算法模块库,所述相机硬件抽象模块与媒体策略模块通信连接。

具体实现中,第三方相机应用从媒体服务模块获取电子设备预设的底层相机能力列表,查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力,确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,所述媒体服务模块向相机硬件抽象模块发送所述预设功能配置字符,接着所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的算法模块的使用权限。

可见,本示例中,所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表,所述第三方相机应用从所述媒体服务模块查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力,所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,所述媒体服务模块向所述相机硬件抽象模块发送所述预设功能配置字符,所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的算法模块的使用权限,上述预处理过程有利于在不同场景下灵活适配算法,同时向第三方应用开放hdr功能。

在一个可能的示例中,所述操作系统的硬件抽象层还设置有媒体策略模块和算法管理模块,所述算法管理模块用于管理算法库中的算法模块;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的算法模块的使用权限,包括:所述相机硬件抽象模块接收到来自所述媒体服务模块的所述预设功能配置字符,向所述媒体策略模块发送第一hdr参数;所述媒体策略模块将所述第一hdr参数转换为所述算法管理模块能够识别的第二hdr参数,并向所述算法管理模块发送所述第二hdr参数;所述算法管理模块接收所述第二hdr参数,根据所述第二hdr参数开放所述第三方应用针对算法库中的所述hdr功能的算法模块的使用权限;所述相机硬件抽象模块接收到所述使用权限开放后,选择hdr线性通信模型;所述相机硬件抽象模块根据所述hdr线性通信模型使能解析硬件hdr算法。

其中,所述第二hdr参数能够被底层模块的识别处理。

其中,所述相机硬件抽象模块选择hdr线性通信模型即所述相机硬件抽象模块为上层的配置选择合适的底层软件hdr线性通信模型。

具体实现中,如图2b所示,所述相机硬件抽象模块接收到来自所述媒体服务模块的所述预设功能配置字符后,向所述媒体策略模块发送第一hdr参数,所述媒体策略模块将所述第一hdr参数转换为所述算法管理模块能够识别的第二hdr参数,并向所述算法管理模块发送所述第二hdr参数,所述算法管理模块接收所述第二hdr参数,根据所述第二hdr参数开放所述第三方应用针对算法库中的所述hdr功能的算法模块的使用权限,所述相机硬件抽象模块接收到所述使用权限开放后,选择hdr线性通信模型,根据所述hdr线性通信模型使能解析硬件hdr算法。

可见,本示例中,所述相机硬件抽象模块接收到来自所述媒体服务模块的所述预设功能配置字符,向所述媒体策略模块发送第一hdr参数,所述媒体策略模块将所述第一hdr参数转换为所述算法管理模块能够识别的第二hdr参数,并向所述算法管理模块发送所述第二hdr参数,所述算法管理模块接收所述第二hdr参数,根据所述第二hdr参数开放所述第三方应用针对算法库中的所述hdr功能的算法模块的使用权限,所述相机硬件抽象模块接收到所述使用权限开放后,选择hdr线性通信模型,根据所述hdr线性通信模型使能解析硬件hdr算法;有利于提高hdr算法与上层模块的适配度,有利于提高第三方相机应用hdr实现的高效性。

在一个可能的示例中,所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,包括:所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力;所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能;当所述第三方相机应用确定请求相机拍摄视频服务时,所述第三方相机应用对所述媒体服务模块设置json字符串{“hdr-video”:1};当所述第三方相机应用确定请求相机拍摄照片服务时,所述第三方相机应用对所述媒体服务模块设置json字符串“hdr-capture”:1。

其中,所述json字符串{“hdr-video”:1}用于表示所述媒体支持针对所述第三方相机应用的hdr视频能力。

其中,所述json字符串“hdr-capture”:1用于表示所述媒体支持针对所述第三方相机应用的hdr照片能力。

其中,所述第三方相机应用接收所述媒体服务模块发送的空字符串,则确定所述全部底层核心能力不包括hdr功能。

具体实现中,所述第三方相机应用向所述媒体服务模块发送确定所述媒体平台针对所述第三方相机应用所支持的全部底层核心能力的请求,所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力,所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能,当所述第三方相机应用确定请求相机拍摄视频服务时,所述第三方相机应用对所述媒体服务模块设置json字符串{“hdr-video”:1},以便后续为所述第三方相机应用配置选择适配的hdr方案。

具体实现中,所述第三方相机应用向所述媒体服务模块发送确定所述媒体平台针对所述第三方相机应用所支持的全部底层核心能力的请求,所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力,所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能,当所述第三方相机应用确定请求相机拍摄照片服务时,所述第三方相机应用对所述媒体服务模块设置json字符串“hdr-capture”:1,以便后续为所述第三方相机应用配置选择适配的hdr方案。

可见,本示例中,所述第三方相机应用向所述媒体服务模块发送确定所述全部底层核心能力包括hdr功能,根据所述第三方相机应用确定请求的服务不同设置不同的预设字符串,有利于充分利用底层硬件能力,实现hdr效果,同时能够将不同种类的hdr功能转换成适配于所述第三方相机应用的mf-hdr方法,有利于提高拍摄视频成片率,同时有利于在相同的时间生成更多的hdr数据帧,满足高帧率下减少hdr运动的抖动,提高成片清晰度。

与上述图2a所示的实施例一致的,请参阅图3,图3是本申请实施例提供的另一种高动态范围图像hdr实现方法的流程示意图,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;如图所示,本高动态范围图像hdr实现方法包括:

s301,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;

s302,所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向所述第三方相机应用发送所述第二相机应用数据;

s303,所述第三方相机应用接收到所述第二相机应用数据后,检测到所述第二相机应用数据中包括长曝光帧数据和短曝光帧数据;

s304,所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;

s305,所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片。

可以看出,本申请实施例中,提供了一种高动态范围图像hdr实现方法及相关产品,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向所述第三方相机应用发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;所述第三方相机应用根据所述第二相机应用数据实现hdr效果。可见,通过媒体平台充分利用底层硬件能力,有利于第三方相机应用实现hdr效果,同时有利于丰富第三方相机应用hdr实现的效果,有利于提高拍摄成片率,降低维护成本。

此外,所述第三方相机应用接收到所述第二相机应用数据后,检测到所述第二相机应用数据中包括长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片;有利于所述第三方相机应用灵活对视频或照片进行hdr处理,有利于提高hdr实现的准确性和便捷性。

与上述图1、图2a、图3所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种电子设备400的结构示意图,如图所示,所述电子设备400包括应用处理器410、存储器420、通信接口430以及一个或多个程序421,其中,所述一个或多个程序421被存储在上述存储器420中,并且被配置由上述应用处理器410执行,所述一个或多个程序421包括用于执行以下步骤的指令;

所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;

所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向所述第三方相机应用发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;

所述第三方相机应用根据所述第二相机应用数据实现hdr效果。

可以看出,本申请实施例中,提供了一种高动态范围图像hdr实现方法及相关产品,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;所述预设目标根据所述第二相机应用数据实现hdr效果。可见,通过媒体平台充分利用底层硬件能力,有利于第三方相机应用实现hdr效果,同时有利于丰富第三方相机应用hdr实现的效果,有利于提高拍摄成片率,降低维护成本。

在一个可能的示例中,所述相机硬件抽象模块获取待处理的第一相机应用数据,所述程序中的指令具体用于执行以下操作:所述相机硬件抽象模块调用相机驱动通过摄像头采集本地图像数据;和/或,所述相机硬件抽象模块接收来自所述第三方相机应用发送的网络图像数据。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,所述程序中的指令具体用于执行以下操作:当所述预设目标为所述第三方相机应用时,所述第三方相机应用接收所述第二相机应用数据;所述第三方相机应用检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,所述程序中的指令具体用于执行以下操作:当所述预设目标为所述相机硬件抽象模块时,所述相机硬件抽象模块检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述相机硬件抽象模块将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片。

在一个可能的示例中,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求之前,所述程序中的指令具体用于执行以下操作:所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表;所述第三方相机应用从所述媒体服务模块查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力;所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符;所述媒体服务模块向所述相机硬件抽象模块发送所述预设功能配置字符;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的使用权限。

在一个可能的示例中,所述操作系统的硬件抽象层还设置有媒体策略模块和算法管理模块,所述相机硬件抽象模块连接所述媒体策略模块,所述媒体策略模块连接所述算法管理模块;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的使用权限,所述程序中的指令具体用于执行以下操作:所述相机硬件抽象模块接收到来自所述媒体服务模块的所述预设功能配置字符,向所述媒体策略模块发送第一hdr参数;所述媒体策略模块将所述第一hdr参数转换为所述算法管理模块能够识别的第二hdr参数,并向所述算法管理模块发送所述第二hdr参数;所述算法管理模块接收所述第二hdr参数,根据所述第二hdr参数开放所述第三方应用针对算法库中的所述hdr功能的算法模块的使用权限;所述相机硬件抽象模块接收到所述使用权限开放后,选择hdr线性通信模型;所述相机硬件抽象模块根据所述hdr线性通信模型使能解析硬件hdr算法。

在一个可能的示例中,所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,所述程序中的指令具体用于执行以下操作:所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力;所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能;当所述第三方相机应用确定请求相机拍摄视频服务时,所述第三方相机应用对所述媒体服务模块设置json字符串{“hdr-video”:1},其中,所述json字符串{“hdr-video”:1}用于表示所述媒体支持针对所述第三方相机应用的hdr视频能力;当所述第三方相机应用确定请求相机拍摄照片服务时,所述第三方相机应用对所述媒体服务模块设置json字符串“hdr-capture”:1,其中,所述json字符串“hdr-capture”:1用于表示所述媒体支持针对所述第三方相机应用的hdr照片能力。

上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

图5是本申请实施例中所涉及的高动态范围图像hdr实现装置500的功能单元组成框图。该高动态范围图像hdr实现装置500应用于电子设备,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述高动态范围图像hdr实现装置500包括处理单元501、通信单元502和存储单元503,其中,

所述处理单元501,用于所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;以及用于所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向所述第三方相机应用发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;以及用于所述第三方相机应用根据所述第二相机应用数据实现hdr效果。

可以看出,本申请实施例中,提供了一种高动态范围图像hdr实现方法及相关产品,应用于电子设备,所述电子设备包括操作系统和媒体服务模块,所述操作系统的应用层设置有第三方相机应用,所述操作系统的硬件抽象层设置有相机硬件抽象模块;所述方法包括:所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求;所述相机硬件抽象模块接收所述hdr处理请求,获取待处理的第一相机应用数据,调用用于实现hdr功能的算法模块处理所述第一相机应用数据,得到第二相机应用数据,并向预设目标发送所述第二相机应用数据,所述用于实现hdr功能的算法模块是所述第三方相机应用通过所述媒体服务模块请求所述操作系统针对所述第三方相机应用开放的;所述预设目标根据所述第二相机应用数据实现hdr效果。可见,通过媒体平台充分利用底层硬件能力,有利于第三方相机应用实现hdr效果,同时有利于丰富第三方相机应用hdr实现的效果,有利于提高拍摄成片率,降低维护成本。

可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本申请中方法实施例部分的内容应同步适配于装置实施例部分,此处不再赘述。

在一个可能的示例中,所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表,所述处理单元501具体用于:所述第三方相机应用向所述媒体服务模块发送携带有鉴权码的媒体平台版本获取请求;所述媒体服务模块校验所述鉴权码;所述媒体服务模块确定校验结果为校验通过后,将所述媒体平台版本信息返回给所述第三方相机应用;所述第三方相机应用向所述媒体服务模块发送获取所述电子设备预设的底层相机能力列表的请求;所述媒体服务模块收集所述底层相机能力列表,并向所述第三方相机应用发送所述底层相机能力列表。

在一个可能的示例中,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求之前,方法还所述处理单元501具体用于:所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表;所述第三方相机应用从所述媒体服务模块查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力;所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符;所述媒体服务模块向所述相机硬件抽象模块发送所述预设功能配置字符;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的算法模块的使用权限。

在一个可能的示例中,所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表,所述处理单元501具体用于:所述第三方相机应用向所述媒体服务模块发送携带有鉴权码的媒体平台版本获取请求;所述媒体服务模块校验所述鉴权码;所述媒体服务模块确定校验结果为校验通过后,将所述媒体平台版本信息返回给所述第三方相机应用;所述第三方相机应用通过所述媒体服务模块获取所述电子设备预设的底层相机能力列表。

在一个可能的示例中,所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,所述处理单元501具体用于:所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力;所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能;当所述第三方相机应用确定请求相机拍摄视频服务时,所述第三方相机应用对所述媒体服务模块设置json字符串{“hdr-video”:1},其中,所述json字符串{“hdr-video”:1}用于表示所述媒体支持针对所述第三方相机应用的hdr视频能力;当所述第三方相机应用确定请求相机拍摄照片服务时,所述第三方相机应用对所述媒体服务模块设置json字符串“hdr-capture”:1,其中,所述json字符串“hdr-capture”:1用于表示所述媒体支持针对所述第三方相机应用的hdr照片能力。

在一个可能的示例中,所述相机硬件抽象模块获取待处理的第一相机应用数据,所述处理单元501具体用于:所述相机硬件抽象模块调用相机驱动通过摄像头采集本地图像数据;和/或,所述相机硬件抽象模块接收来自所述第三方相机应用发送的网络图像数据。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,所述处理单元501具体用于:当所述预设目标为所述第三方相机应用时,所述第三方相机应用接收所述第二相机应用数据;所述第三方相机应用检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述第三方相机应用将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述第三方相机应用根据所述hdr数据帧编码生成hdr视频和/或照片。

在一个可能的示例中,所述预设目标根据所述第二相机应用数据实现hdr效果,所述处理单元501具体用于:当所述预设目标为所述相机硬件抽象模块时,所述相机硬件抽象模块检测所述第二相机应用数据中的长曝光帧数据和短曝光帧数据;所述相机硬件抽象模块将所述长曝光帧数据和所述短曝光帧数据进行曝光融合,生成hdr数据帧;所述相机硬件抽象模块根据所述hdr数据帧编码生成hdr视频和/或照片。

在一个可能的示例中,所述第三方相机应用向所述相机硬件抽象模块发送hdr处理请求之前,所述处理单元501具体用于:所述第三方相机应用从所述媒体服务模块获取所述电子设备预设的底层相机能力列表;所述第三方相机应用从所述媒体服务模块查询所述底层相机能力列表,获取支持所述第三方相机应用的全部底层核心能力;所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符;所述媒体服务模块向所述相机硬件抽象模块发送所述预设功能配置字符;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的使用权限。

在一个可能的示例中,所述操作系统的硬件抽象层还设置有媒体策略模块和算法管理模块,所述相机硬件抽象模块连接所述媒体策略模块,所述媒体策略模块连接所述算法管理模块;所述相机硬件抽象模块根据预设功能配置字符开放所述第三方应用针对所述hdr功能的使用权限,所述处理单元501具体用于:所述相机硬件抽象模块接收到来自所述媒体服务模块的所述预设功能配置字符,向所述媒体策略模块发送第一hdr参数;所述媒体策略模块将所述第一hdr参数转换为所述算法管理模块能够识别的第二hdr参数,并向所述算法管理模块发送所述第二hdr参数;所述算法管理模块接收所述第二hdr参数,根据所述第二hdr参数开放所述第三方应用针对算法库中的所述hdr功能的算法模块的使用权限;所述相机硬件抽象模块接收到所述使用权限开放后,选择hdr线性通信模型;所述相机硬件抽象模块根据所述hdr线性通信模型使能解析硬件hdr算法。

在一个可能的示例中,所述第三方相机应用确定所述全部底层核心能力包括hdr功能,对所述媒体服务模块设置预设功能配置字符,所述处理单元501具体用于:所述媒体服务模块采用js对象简谱json收集所述第三方相机应用所支持的全部底层核心能力;所述第三方相机应用接收所述媒体服务模块发送的大写字符串,确定所述全部底层核心能力包括hdr功能;当所述第三方相机应用确定请求相机拍摄视频服务时,所述第三方相机应用对所述媒体服务模块设置json字符串{“hdr-video”:1},其中,所述json字符串{“hdr-video”:1}用于表示所述媒体支持针对所述第三方相机应用的hdr视频能力;当所述第三方相机应用确定请求相机拍摄照片服务时,所述第三方相机应用对所述媒体服务模块设置json字符串“hdr-capture”:1,其中,所述json字符串“hdr-capture”:1用于表示所述媒体支持针对所述第三方相机应用的hdr照片能力。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。

本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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