摄像头访问方法、访问装置、终端设备及可读存储介质转让专利
申请号 : CN202010423175.9
文献号 : CN111447370B
文献日 : 2021-07-27
发明人 : 邹剑
申请人 : OPPO广东移动通信有限公司
摘要 :
权利要求 :
1.一种摄像头访问方法,其特征在于,包括:若接收到开启相机类程序的指令时,向底层框架请求一个缓冲管道BQ,其中,所述底层框架为用于对摄像头进行访问的程序框架,所述BQ用于缓存目标摄像头采集的图像,所述目标摄像头为待访问的摄像头;
基于所述BQ缓存的所述目标摄像头采集的图像,进行预览画面显示;
若接收到拍照指令,基于所述拍照指令对应时刻处,在所述BQ缓存的图像,获取拍照所得图像;其中,所述拍照指令对应时刻指的是与用户发出拍照指令的时间点相距小于预设时长的时刻;
其中,若拍照所得图像为预览画面,则所述拍照所得图像的可交换图像文件格式信息的确定方式为:对所述拍照所得图像对应的预览画面的图像参数信息解析得到。
2.如权利要求1所述的摄像头访问方法,其特征在于,所述相机类程序具备录像功能;
相应地,所述摄像头访问方法还包括:若接收到录像指令,则将录像期间的各个预览画面进行整合,以生成视频文件。
3.如权利要求2所述的摄像头访问方法,其特征在于,所述相机类程序具备录像期间拍照功能;
相应地,所述若接收到拍照指令,基于所述拍照指令对应时刻处,在所述BQ缓存的图像,获取拍照所得图像,包括:
若在录像期间接收到拍照指令,基于所述拍照指令对应时刻处,在所述BQ缓存的图像,获取拍照所得图像。
4.如权利要求1所述的摄像头访问方法,其特征在于,在所述基于所述拍照指令对应时刻处,在所述BQ缓存的图像,获取拍照所得图像的步骤之后,还包括:对所述拍照所得图像进行图像处理,得到拍照所得最终图像。
5.如权利要求1所述的摄像头访问方法,其特征在于,所述基于所述BQ缓存的所述目标摄像头采集的图像,进行预览画面显示,包括:对所述BQ缓存的所述目标摄像头采集的图像进行图像处理,得到图像处理后图像;
将所述图像处理后图像作为预览画面进行显示。
6.一种摄像头访问装置,其特征在于,包括:缓存管道请求模块,用于若接收到开启相机类程序的指令时,向底层框架请求一个缓冲管道BQ,其中,所述底层框架为用于对摄像头进行访问的程序框架,所述BQ用于缓存目标摄像头采集的图像,所述目标摄像头为待访问的摄像头;
预览显示模块,用于基于所述BQ缓存的所述目标摄像头采集的图像,进行预览画面显示;
拍照模块,用于若接收到拍照指令,基于所述拍照指令对应时刻处,在所述BQ缓存的图像,获取拍照所得图像;其中,所述拍照指令对应时刻指的是与用户发出拍照指令的时间点相距小于预设时长的时刻;
其中,若拍照所得图像为预览画面,则所述拍照所得图像的可交换图像文件格式信息的确定方式为:对所述拍照所得图像对应的预览画面的图像参数信息解析得到。
7.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述摄像头访问方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述摄像头访问方法的步骤。
说明书 :
摄像头访问方法、访问装置、终端设备及可读存储介质
技术领域
背景技术
发明内容
备卡顿现象。
所述目标摄像头为待访问的摄像头;
的图像;然后,基于该BQ所存储的图像,进行预览画面显示,比如可直接将该BQ存储的图像
作为预览画面进行显示,并在接收到拍照指令时,基于该拍照指令对应时刻处,所述BQ缓存
的图像,获取拍照所得图像。由此可见,本申请所提供的方案中,拍照所得图像也是来源于
上述BQ,因此,上述BQ一方面用于预览画面的显示,另一方面用于拍照。
的摄像头访问方法在相机类程序启动之后,仅仅向底层框架请求了1个BQ,该BQ不但用于预
览画面的显示,还用于拍照,因此,本申请所提供的技术方案相比于现有技术,能够在一定
程度上减少相机类程序在拍照时的存储空间占据量,进而在一定程度上减轻长时间使用相
机类程序进行拍照所导致的终端设备卡顿现象。
目标摄像头采集的图像,所述目标摄像头为待访问的摄像头;
现如上述第一方面所述方法的步骤。
步骤。
步骤。
附图说明
实施例。
具体实施方式
细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电
路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
操作、元素、组件和/或其集合的存在或添加。
下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或
“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
访问,该底层框架101包括应用框架层102、相机服务层103以及硬件抽象层104。
hardware camera2.0 CameraManager)以及黏合Binder接口(Android hardware
camera2.0 ICameraDeviceUser以及Android hardware camera2.0 ICameraService),从
而使得相机类程序可以通过调用上述API函数,进而通过调用上述Binder接口实现对摄像
头的访问。
层102中的Android hardware camera2.0 ICameraDeviceUser是已打开的特定相机设备的
接口,Android hardware camera2.0 ICameraService是相机服务的接口。相机服务层103
的ICameraDeviceCallbacks和ICameraServiceListener分别是对应用框架102的Android
hardware camera2.0 CameraDevice和Android hardware camera 2.0 CameraManager的
回调接口。
av/services/camera/libcameraservice/CameraService.cpp下,由于为现有技术,这里不
再赘述。HAL104定义了由相机服务层103调用的接口函数,由于为现有技术,此处亦不再赘
述。
头采集的图像,所述目标摄像头为待访问的摄像头;
相机类程序的指令,本申请并不对接收上述开启相机类程序的指令场景进行限定。
以如图1所示。
申请仅仅会向底层框架请求一个BQ,该BQ同时用于预览画面显示以及获取拍照图像。
以先对上述BQ缓存的上述目标摄像头采集的图像进行图像处理(比如添加滤镜、人脸美化
和/或增添贴纸等处理),得到图像处理后图像,然后再将上述图像处理后图像作为预览画
面进行显示。
卡顿现象。
相机类程序的大小,另一方面能够在一定程度上提高拍照效率,避免了获取拍照所得图像
的耗时过长,再一方面能够减少了终端设备的数据处理量,减小终端设备的功耗。
请实施例中,若直接将预览画面作为拍照所得图像,一方面由于避免了使用专用于拍照的
BQ使得存储空间占据量减少,另一方面避免了拍照时相机类程序与底层框架的再次沟通,
提高了拍照效率。
小于2ms的任意时刻均可以是上述“拍照指令对应时刻”。
照所得图像对应的预览画面的图像参数信息解析得到。比如,若拍照所得图像为图像X,该
图像X为预览画面Y,则可对该预览画面Y的图像参数信息(比如图像尺寸等信息)进行解析,
得到图像X的exif信息,该exif信息可以被写入图像X的头文件中。
以生成视频文件。此外,上述相机类程序还可提供录像期间的拍照功能,则步骤S203可为具
体包括:若在录像期间接收到拍照指令,基于所述拍照指令对应时刻处,在所述BQ缓存的图
像,获取拍照所得图像。
于现有技术,减少了BQ的数量,进而减少了拍照时的存储空间占据量,从而在一定程度上减
轻长时间使用相机类程序进行拍照所导致的终端设备卡顿现象。
架来实现对摄像头的访问,其中,相机类程序包括参数配置模块、摄像头控制模块、视图显
示控制模块、录像组件以及文件保存模块等。该参数配置模块主要是配置预览画面的显示
帧率以及录像视频帧率等参数;该摄像头控制模块用于控制待打开摄像头的标识以及待关
闭摄像头的标识等参数;该视图显示控制模块用于控制显示界面上显示控件以及隐藏空间
等;该文件保存模块用于对录像得到的视频文件以及拍照所的的图像进行保存;该录像组
件用于对各个经过特效处理的预览图像进行整合,以得到视频文件。
中灰色部分所示的BQ),然后对该BQ中存储的图像进行一系列图像处理之后(如图3中灰色
部分所示的处理1’、处理2’以及处理N’所示,其中,处理1’可以为人像美化,处理2’可以为
增加贴纸,处理N’可以为增添滤镜),得到拍照所得图像。
度上解决长时间采用相机类程序拍照出现卡顿的情况。此外,如图3所示,拍照所得图像其
实为预览图像,因此,避免了传统的相机类程序需再和底层框架进行通信的过程,能够在一
定程度上解决拍照延迟的问题,从而更快地获得拍照所得图像,并且减少了终端设备的数
据处理量,减少了终端设备的拍照功耗。
存目标摄像头采集的图像,所述目标摄像头为待访问的摄像头;
处不再赘述。
上运行的计算机程序503。上述处理器501执行上述计算机程序503时实现上述方法实施例
一中的步骤。或者,上述处理器601执行上述计算机程序503时实现上述装置实施例二中各
模块的功能。
模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机
程序503在上述终端设备500中的执行过程。例如,上述计算机程序503可以包括缓存管道请
求模块、预览显示模块以及拍照模块,各模块具体功能如下:
所述目标摄像头为待访问的摄像头;
多或更少的部件,或者组合某些部件,或者不同的部件,例如上述终端设备还可以包括输入
输出设备、网络接入设备、总线等。
(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑
Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器
等。
500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure
Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器502还可以既包括上述终端
设备500的内部存储单元也包括外部存储设备。上述存储器502用于存储上述计算机程序以
及上述终端设备所需的其它程序和数据。上述存储器502还可以用于暂时地存储已经输出
或者将要输出的数据。
模块完成,即将上述装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者
部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物
理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件
的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为
了便于相互区分,并不用于限制本申请的保护范围。上述装置中模块的具体工作过程,可以
参考前述方法实施例中的对应过程,在此不再赘述。
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本申请的范围。
实施例中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计
算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上
述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代
码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质
可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁
碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,
Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述
计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增
减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电
信信号。
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改
或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应
包含在本申请的保护范围之内。