掌桥专利:专业的专利平台
掌桥专利
首页

一种拍摄方法及相关电子设备

文献发布时间:2024-04-18 19:58:30


一种拍摄方法及相关电子设备

技术领域

本申请涉及拍摄领域,尤其涉及一种拍摄方法及相关电子设备。

背景技术

现在,手机等支持拍摄视频的电子设备可以实现自动追踪的拍摄模式。在录制视频时,电子设备可以接收用户选中的主角。然后,电子设备可以在后续录制视频的过程中,始终跟随该主角,从而得到视频中心始终为上述被选中主角的特写视频。

发明内容

本申请实施例提供了一种拍摄方法及相关电子设备,解决了在主角录制模式下,录制多个小窗视频后,后面的小窗视频中会出现前一个小窗视频图像的问题。

第一方面,本申请实施例提供了一种拍摄方法,应用于具备摄像头的电子设备,该方法包括:显示第一界面;第一界面包括预览窗、第一控件、视频录制控件,预览窗用于显示摄像头采集的图像;响应针对第一控件的第一操作,在第一图像上显示N个标记,第一图像为预览窗当前显示的图像,N个标记分别对应第一图像中的N个对象;响应针对第一标记的第二操作,在第一界面上显示小窗,在小窗中显示第一对象的特写图像;第一标记为N个标记中的任意一个,第一对象为第一标记对应的对象;在第一时刻,响应针对视频录制控件的第三操作,录制第一视频和第二视频;第一视频为预览窗的视频,第二视频为小窗的视频;在小窗上显示第二控件;在第二时刻,响应针对第二控件的第四操作,停止录制第二视频,在第一界面上不显示小窗;在第三时刻,响应针对第二标记的第五操作,在第一界面上显示小窗,在小窗上显示第二对象的特写图像,第二标记为N个标记中的任意一个,第二对象为第二标记对应的对象;录制第三视频,第三视频为小窗的视频。

结合第一方面,在一种可能实现的方式中,响应针对视频录制控件的第三操作,在录制第一视频和第二视频的过程中,还包括:检测到针对第三标记的第一输入操作;响应第一输入操作,在小窗上显示第三对象的特写图像,第三标记为N个标记中,除第一标记以外的任意一个标记,第三对象为第三标记对应的对象。

结合第一方面,在一种可能实现的方式中,所述电子设备还包括模式模块、流管理模块、存储模块、编码控制模块、编码器模块、相机HAL模块以及摄像头。

结合第一方面,在一种可能实现的方式中,响应针对第一控件的第一操作之后,包括:模式模块触发流管理模块配置第一数据流和第二数据流;第一数据流为预览窗的数据流,第二数据流为小窗的数据流;流管理模块配置第一数据流和第二数据流;流管理模块将数据流配置信息发送给编码控制模块;数据流配置信息包括第一存储区的地址和第二存储区的地址,第一存储区用于缓存第一数据流,第二存储区用于缓存第二数据流;存储模块创建第一视频文件和第二视频文件,并将视频文件信息发送给编码控制模块;第一视频文件用于存储预览窗对应的视频,第二视频文件用于存储小窗对应的视频,视频文件信息包括第一视频文件信息和第二视频文件信息;编码控制模块基于视频文件信息和数据流配置信息配置第一编码器参数和第二编码器参数,并将第一编码配置参数发送给编码器模块;第一编码配置参数包括第一编码器参数和第二编码器参数;编码器模块基于第一编码器参数创建第一编码器,基于第二编码器参数创建第二编码器;第一编码器与预览窗对应,第二编码器与小窗对应;流管理模块配置第一流标识参数和第二流标识参数,并将第一流标识参数和第二流标识参数发送给相机HAL模块;第一流标识参数用于标识第一数据流,第二流标识参数用于标识第二数据流;相机HAL模块解析第一流标识参数和第二流标识参数。这样,在进入主角模式后进行视频录制时,可以对预览窗视频的数据流和小窗视频的数据流进行编码,从而得到预览窗和小窗两个视频的视频文件。

结合第一方面,在一种可能实现的方式中,响应针对视频录制控件的第三操作之后,还包括:模式模块触发流管理模块向相机HAL模块发送第一数据请求消息;第一数据请求消息用于指示相机HAL模块将第一数据流缓存到第一存储区中,将第二数据流缓存到第二存储区中;模式模块触发编码控制模块启动第一编码器和第二编码器;流管理模块向相机HAL模块发送第一数据请求消息;相机HAL将摄像头发送的第一数据流进行复制,得到复制后的数据流;相机HAL模块对复制后的数据流中的每帧图像以第一对象为中心进行裁剪处理,得到第二数据流;第二数据流中的每帧图像为第一对象的特写图像;相机HAL模块将第一数据流缓存到第一存储区中,将第二数据流缓存到第二存储区中;编码控制模块启动第一编码器和第二编码器;第一编码器从第一存储区中获取第一数据流,并对第一数据流进行编码,得到编码后的第一数据流;第一编码器将编码后的第一数据流发送给编码控制模块;第二编码器从第二存储区中获取第二数据流,并对第二数据流进行编码,得到编码后的第二数据流;第二编码器将编码后的第二数据流发送给编码控制模块;编码控制模块分别对编码后的第一数据流和编码后的第二数据流进行打包,得到打包后的第一数据流和打包后的第二数据流;编码控制模块将打包后的第一数据流缓存到第一视频文件中,将打包后的第二数据流缓存到第二视频文件中。这样,主角模式下,可以同时预览窗和小窗的视频流进行编码,从而得到两个视频文件。

结合第一方面,在一种可能实现的方式中,响应针对第二控件的第四操作之后,还包括:模式模块触发流管理模块向相机HAL模块发送第二数据请求消息;第二数据请求消息用于指示相机HAL模块停止向第二存储区中缓存第二数据流;模式模块触发编码控制模块控制第二编码器停止工作;流管理模块向所述相机HAL模块发送第二数据请求消息;相机HAL模块不向第二存储区中缓存第二数据流且不对第一数据流进行复制;编码控制模块向编码器模块发送第一停止编码请求,第一停止编码请求用于指示编码模块控制第二编码器停止工作,删除第二编码器并创建第三编码器;编码控制模块向存储模块发送第一保存消息;第一保存消息用于指示存储模块保存第二视频文件,并创建第三视频文件;第三视频文件为小窗的视频文件;编码器模块指示第二编码器停止工作,删除第二编码器,创建第三编码器;第三编码器为小窗的编码器;存储模块保存第二视频文件,创建第三视频文件;存储模块将第三视频文件的信息发送给编码控制模块;编码控制模块基于第三视频文件的信息和数据流配置信息配置第三编码器参数,并将第二编码配置参数发送给编码器模块;第二编码配置参数包括第三编码器参数;编码器模块基于第二编码配置参数创建第三编码器。这样,可以提前结束小窗视频的录制,从而得到小窗视频文件。

结合第一方面,在一种可能实现的方式中,响应针对第二标记的第五操作之后,还包括:模式模块触发流管理模块向相机HAL模块发送第三数据请求消息;第三数据请求消息用于指示相机HAL模块将第三数据流缓存到第二存储区中;流管理模块向相机HAL模块发送第三数据请求消息;相机HAL模块将摄像头发送的第一数据流进行复制,得到复制后的数据流;相机HAL模块对复制后的数据流中的每帧图像以第二对象为中心进行裁剪处理,得到第三数据流;第三数据流中的每帧图像为第二对象的特写图像;相机HAL模块在第三数据流中添加第二时间戳;相机HAL模块将第三数据流缓存到所述第二存储区中;模式模块触发所述编码控制模块启动第三编码器;编码控制模块启动第三编码器;第三编码器从第二存储区中获取第三数据流;第三编码器将编码后的第三数据流发送给编码控制模块;编码控制模块在编码后的第三数据流中,对第二时间戳大于或等于第二系统时间的图像数据进行打包,得到打包后的第三数据流;第二系统时间为保存第二视频文件的时间;编码控制模块将打包后的第三数据流缓存到第三视频文件中。这样,电子设备可以另外录制小窗视频,从而得到新的小窗视频。

结合第一方面,在一种可能实现的方式中,响应针对视频录制控件的第三操作之后,第一界面显示停止录制控件,响应针对视频录制控件的第三操作之后,还包括:检测到针对停止录制控件的第六操作;响应第六操作,保存第一视频和第三视频。

结合第一方面,在一种可能实现的方式中,检测到针对停止录制控件的第六操作之后,还包括:模式模块触发流管理模块向相机HAL模块发送第四数据请求消息;第四数据请求消息用于指示相机HAL停止缓存数据流;模式模块触发编码控制模块控制第一编码器和第三编码器停止工作;第三编码器为小窗的编码器;相机HAL模块停止向第一存储区中缓存第一数据流,停止向第二存储区中缓存第三数据流;第三数据流为小窗的数据流;编码控制模块向编码器模块发送第二停止编码请求,第二停止编码请求用于指示编码模块控制第一编码器和第三编码器停止工作;编码器模块控制第一编码器和第三编码器停止工作;模式模块触发存储模块保存第一视频文件和第三视频文件;第一视频文件为第一视频对应的文件,第三视频文件为第三视频对应的文件;存储模块保存第一视频文件和第三视频文件。

第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器,显示屏和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过显示屏显示第一界面;第一界面包括预览窗、第一控件、视频录制控件,预览窗用于显示摄像头采集的图像;响应针对第一控件的第一操作,通过显示屏在第一图像上显示N个标记,第一图像为预览窗当前显示的图像,N个标记分别对应第一图像中的N个对象;响应针对第一标记的第二操作,控制显示屏在第一界面上显示小窗,在小窗中显示第一对象的特写图像;第一标记为N个标记中的任意一个,第一对象为第一标记对应的对象;在第一时刻,响应针对视频录制控件的第三操作,录制第一视频和第二视频;第一视频为预览窗的视频,第二视频为小窗的视频;控制显示屏在小窗上显示第二控件;在第二时刻,响应针对第二控件的第四操作,停止录制第二视频,控制显示屏在第一界面上不显示小窗;在第三时刻,响应针对第二标记的第五操作,控制显示屏在第一界面上显示小窗,在小窗上显示第二对象的特写图像,第二标记为N个标记中的任意一个,第二对象为第二标记对应的对象;录制第三视频,第三视频为小窗的视频。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:检测到针对第三标记的第一输入操作;响应该操作,控制显示屏在小窗上显示第三对象的特写图像,第三标记为N个标记中,除第一标记以外的任意一个标记,第三对象为第三标记对应的对象。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过模式模块触发流管理模块配置第一数据流和第二数据流;第一数据流为预览窗的数据流,第二数据流为小窗的数据流;通过流管理模块配置第一数据流和第二数据流;通过流管理模块将数据流配置信息发送给编码控制模块;通过数据流配置信息包括第一存储区的地址和第二存储区的地址,第一存储区用于缓存第一数据流,第二存储区用于缓存第二数据流;通过存储模块创建第一视频文件和第二视频文件,并将视频文件信息发送给编码控制模块;第一视频文件用于存储预览窗对应的视频,第二视频文件用于存储小窗对应的视频,视频文件信息包括第一视频文件信息和第二视频文件信息;通过编码控制模块基于视频文件信息和数据流配置信息配置第一编码器参数和第二编码器参数,并将第一编码配置参数发送给编码器模块;第一编码配置参数包括第一编码器参数和第二编码器参数;通过编码器模块基于第一编码器参数创建第一编码器,基于第二编码器参数创建第二编码器;第一编码器与预览窗对应,第二编码器与小窗对应;通过流管理模块配置第一流标识参数和第二流标识参数,并将第一流标识参数和第二流标识参数发送给相机HAL模块;第一流标识参数用于标识第一数据流,第二流标识参数用于标识第二数据流;通过相机HAL模块解析第一流标识参数和第二流标识参数。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过模式模块触发流管理模块向相机HAL模块发送第一数据请求消息;第一数据请求消息用于指示相机HAL模块将第一数据流缓存到第一存储区中,将第二数据流缓存到第二存储区中;通过模式模块触发编码控制模块启动第一编码器和第二编码器;通过流管理模块向相机HAL模块发送第一数据请求消息;通过相机HAL将摄像头发送的第一数据流进行复制,得到复制后的数据流;通过相机HAL模块对复制后的数据流中的每帧图像以第一对象为中心进行裁剪处理,得到第二数据流;第二数据流中的每帧图像为第一对象的特写图像;通过相机HAL模块将第一数据流缓存到第一存储区中,将第二数据流缓存到第二存储区中;通过编码控制模块启动第一编码器和第二编码器;通过第一编码器从第一存储区中获取第一数据流,并对第一数据流进行编码,得到编码后的第一数据流;通过第一编码器将编码后的第一数据流发送给编码控制模块;通过第二编码器从第二存储区中获取第二数据流,并对第二数据流进行编码,得到编码后的第二数据流;通过第二编码器将编码后的第二数据流发送给编码控制模块;通过编码控制模块分别对编码后的第一数据流和编码后的第二数据流进行打包,得到打包后的第一数据流和打包后的第二数据流;通过编码控制模块将打包后的第一数据流缓存到第一视频文件中,将打包后的第二数据流缓存到第二视频文件中。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过模式模块触发流管理模块向相机HAL模块发送第二数据请求消息;第二数据请求消息用于指示相机HAL模块停止向第二存储区中缓存第二数据流;通过模式模块触发编码控制模块控制第二编码器停止工作;通过流管理模块向所述相机HAL模块发送第二数据请求消息;通过相机HAL模块不向第二存储区中缓存第二数据流且不对第一数据流进行复制;通过编码控制模块向编码器模块发送第一停止编码请求,第一停止编码请求用于指示编码模块控制第二编码器停止工作,删除第二编码器并创建第三编码器;通过编码控制模块向存储模块发送第一保存消息;第一保存消息用于指示存储模块保存第二视频文件,并创建第三视频文件;第三视频文件为小窗的视频文件;通过编码器模块指示第二编码器停止工作,删除第二编码器,创建第三编码器;第三编码器为小窗的编码器;通过存储模块保存第二视频文件,创建第三视频文件;通过存储模块将第三视频文件的信息发送给编码控制模块;通过编码控制模块基于第三视频文件的信息和数据流配置信息配置第三编码器参数,并将第二编码配置参数发送给编码器模块;第二编码配置参数包括第三编码器参数;通过编码器模块基于第二编码配置参数创建第三编码器。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过模式模块触发流管理模块向相机HAL模块发送第三数据请求消息;第三数据请求消息用于指示相机HAL模块将第三数据流缓存到第二存储区中;通过流管理模块向相机HAL模块发送第三数据请求消息;通过相机HAL模块将摄像头发送的第一数据流进行复制,得到复制后的数据流;通过相机HAL模块对复制后的数据流中的每帧图像以第二对象为中心进行裁剪处理,得到第三数据流;第三数据流中的每帧图像为第二对象的特写图像;通过相机HAL模块在第三数据流中添加第二时间戳;通过相机HAL模块将第三数据流缓存到所述第二存储区中;通过模式模块触发所述编码控制模块启动第三编码器;通过编码控制模块启动第三编码器;通过第三编码器从第二存储区中获取第三数据流;通过第三编码器将编码后的第三数据流发送给编码控制模块;通过编码控制模块在编码后的第三数据流中,对第二时间戳大于或等于第二系统时间的图像数据进行打包,得到打包后的第三数据流;第二系统时间为保存第二视频文件的时间;通过编码控制模块将打包后的第三数据流缓存到第三视频文件中。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:检测到针对停止录制控件的第六操作;响应第六操作,保存第一视频和第三视频。

结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过模式模块触发流管理模块向相机HAL模块发送第四数据请求消息;第四数据请求消息用于指示相机HAL停止缓存数据流;通过模式模块触发编码控制模块控制第一编码器和第三编码器停止工作;第三编码器为小窗的编码器;通过相机HAL模块停止向第一存储区中缓存第一数据流,停止向第二存储区中缓存第三数据流;第三数据流为小窗的数据流;通过编码控制模块向编码器模块发送第二停止编码请求,第二停止编码请求用于指示编码模块控制第一编码器和第三编码器停止工作;通过编码器模块控制第一编码器和第三编码器停止工作;通过模式模块触发存储模块保存第一视频文件和第三视频文件;第一视频文件为第一视频对应的文件,第三视频文件为第三视频对应的文件;通过存储模块保存第一视频文件和第三视频文件。

第三方面,本申请实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。

第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。

第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。

附图说明

图1A-图1J是本申请实施例提供的一组示例性的用户界面图;

图2A-图2M是本申请实施例提供的另一组示例性的用户界面图;

图3A-图3E是本申请实施例提供的一组拍摄方法的流程图;

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

图5为本申请实施例提供的一种电子设备的软件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

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

附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。

在现有的自动追焦拍摄模式下,在选定拍摄主角之后,电子设备最后拍摄并保存的视频为被选中主角的特写视频。特写视频中主角附近的图像内容大多数情况下是不完整的。这样,最终得到的视频忽略了拍摄过程中除主角之外的其他内容。用户无法通过难以从上述视频中获取拍摄时主角所处的环境(主角周围对象的状态和动作等)。

因此,本申请实施例提供了一种拍摄方法。该方法可应用于手机、平板电脑等电子设备上。后续统一使用电子设备100指代上述电子设备。

不限于手机、平板电脑,电子设备100还可以是桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该终端的具体类型不作特殊限制。

实施本申请实施例提供的拍摄方法,电子设备100在确定拍摄主角之后,可同时生成两个视频,记为原始视频和特写视频。其中,原始视频是由摄像头采集的原始图像组成的。特写视频是在原始图像的基础上,识别图像中的主角,然后裁剪主角图像得到的。特写视频即始终以主角为拍摄中心的主角视频。在录制视频的过程中,电子设备100可同时显示上述原始视频和特写视频,以供用户预览。

这样,在选定主角之后,用户既可以拍得以主角为中心的特写视频,又可以同时得到由原始的摄像头采集的原始图像组成的原始视频。

下面具体介绍电子设备100实施本申请实施例提供的拍摄方法的用户示意图。

首先,图1A示例性示出了电子设备100启用摄像头执行拍摄动作的用户界面。

如图1A所示,该用户界面可包括菜单栏111、拍摄控件112、预览窗113、回看控件114。

菜单栏111中可显示有多个拍摄模式选项,例如夜景、录像、拍照、人像等拍摄模式。夜景模式可用于光线较暗的场景下拍摄照片,例如夜晚拍摄照片。录像模式可用于录制视频。拍照模式可用于日光场景下拍摄照片。人像模式可用于拍摄人物特写照片。

在启用摄像头执行拍摄动作时,如图1A所示,电子设备100可首先启用录像模式,准备开始录制视频。当然,电子设备100可以首先启用拍照、人像等其他拍摄模式,这时,电子设备100可根据用户操作进入录像模式。

拍摄控件112可用于接收用户的拍摄操作。在拍照场景下(包括拍照模式、人像模式、夜景模式),上述拍摄操作即作用于拍摄控件112的控制拍照的操作。在录制视频的场景下(录像模式),上述拍摄操作包括作用于拍摄控件112的开始录制的操作。

预览窗113可用于实时地显示摄像头采集的图像流。任意时刻,预览窗113中显示的一帧图像为一帧原始图像。

回看控件114可用于查看前一次拍摄的照片或视频。一般的,回看控件114可显示前一次拍摄的照片的缩略图或前一次拍摄的视频的首帧图像的缩略图。

在录像模式下,图1A所示的用户界面还可包括功能栏115。功能栏115中可包括多个功能控件,例如闪光灯1151、滤镜1152、设置1153、主角模式1154等功能控件。闪光灯1152可用于开启或关闭闪光灯,从而改变摄像头采集到的图像的画面亮度。滤镜1152可用于选择滤镜风格,进而调整预览窗113中的图像色彩。设置1153可用于提供更多的用于调整摄像头拍摄参数或图像优化参数的控件,例如白平衡控件、ISO控件、美颜控件、美体控件等等,从而为用户提供更丰富的拍摄服务。

主角模式1154可用于提供拍摄以主角为中心的特写视频的功能。特别的,在本申请实施例提供的主角模式拍摄方法中,电子设备100可根据用户操作选择和变更主角,拍摄并保存两路视频:分别为以主角为中心的特写视频,和基于摄像头采集的原始图像生成原始视频。

在显示图1A所示的用户界面的过程中,电子设备100可检测到作用于主角模式1152的用户操作,以开启主角模式拍摄功能。上述作用于主角模式1154的用户操作例如点击主角模式1154的操作。响应于上述操作,电子设备100可执行主角模式对应的算法,进入主角模式拍摄场景中,参考图1B。

图1B示例性示出了电子设备100进入主角模式拍摄场景后进行拍摄的用户界面。

在进入主角模式之后,电子设备100可对摄像头采集的图像进行图像识别,识别该图像中包括的对象(即对象识别)。上述对象包括但不限于人、动物、植物。本申请实施例后续主要以人为例进行说明。

参考图1B中预览窗113中展示的图像,某一时刻,电子设备100的摄像头采集的图像中包括人物1、人物2。在接收到上述图像之后,电子设备100可首先利用预设的对象识别算法识别图像中包括的对象。这里,上述对象识别算法可以为人体检测算法。可以理解的,当电子设备100还支持识别动物、植物类型的对象。相应的,上述对象识别算法还包括针对一种或多种动物的识别算法,以及针对一种或多种植物的识别算法,本申请实施例对此不作限制。这时,经过对象识别算法的处理,电子设备100可识别到上述图像中包括人物1、人物2这2个对象。

在接收到上述图像之后,电子设备100可在预览窗113中显示上述图像。基于已识别到的图像中包括的对象,在显示上述图像的同时,电子设备100还可显示与上述各个对象上对应的选择框。例如,电子设备100可在人物1上显示对应人物1的选择框122,在人物2上显示对应人物2的选择框123。这时,一方面,用户可以通过上述选择框确认电子设备100已检测的到可供用户选择的对象;另一方面,用户可以通过点击上述选择框中的任意一个,设定与之对应的对象为主角。

可选的,电子设备100还可在预览窗113中显示提示语125,例如“请选择主角人物,开启自动追焦录像”,用于提示用户选定主角。

在图1B所示的用户界面中,预览窗113中可包括美颜控件127。美颜控件127可用于调整图像中的人物的人脸图像。当检测作用于美颜控件127的用户操作之后,电子设备100可对图像中的人物进行美颜处理,并在预览窗中显示美颜处理后的图像。图1B所示的用户界面还可显示有其他拍摄控件,例如用于调整摄像头的焦距的焦距控件等,这里不再一一例举。

在显示图1B所示的用户界面时,电子设备100可检测到作用于任一选择框的用户操作。响应于上述操作,电子设备100可确定上述选择框对应的对象为主角。例如,参考图1C所示的用户界面,电子设备100可检测到作用于选择框123的用户操作。响应于上述操作,电子设备100可确定选择框123对应的人物2为主角。

随后,电子设备100可在预览窗113中以画中画的形式显示一个小窗,并在该小窗中显示人物2的特写图像。上述特写图像是指在摄像头采集的原始图像(预览窗中显示的图像)的基础上,以选定的主角为中心进行裁剪得到的图像。

图1D示例性示出了电子设备100显示小窗并在小窗中显示人物2的特写图像的用户界面。

如图1D所示,预览窗113中可包括小窗141。此时,小窗141中可显示人物2的特写图像。随着预览窗113中显示的原始图像中人物2的变化,小窗141中显示的人物2的特写图像也会相应的变化。并且,小窗141中显示的人物2始终在小窗141的中心位置。这样,小窗141中显示的连续的以人物2为中心的特写图像即构成了人物3的特写视频。

在确定人物2为拍摄主角之后,人物2对应的选择框123可变成图1D中选中框142。用户可通过选中框142区分主角和非主角的对象。不限于用户界面中所示的选中框142,电子设备100还可显示其他样式的图标,或使用不同的颜色,本申请实施例对此不作限制。

可选的,用于展示特写图像的窗口141还可包括关闭控件143和转置控件144。关闭控件143可用于关闭窗口141。转置控件可用于调整小窗141的尺寸。

参考图1E,电子设备100可以检测到作用于关闭控件143的用户操作。响应于上述操作,电子设备100可关闭小窗141,参考图1F。如图1F所示,在关闭小窗141时,电子设备100可取消之前选定的主角(人物2)。相应地,对应人物2的选中框142可变更为选择框123。这时,用户可以重新选择预览窗113中已识别到的任一对象为主角。电子设备100可基于重新确定的主角,再次在预览窗113中显示小窗141。此时,小窗141中显示以新主角为中心对原始图像进行处理得到的特写图像。

参考图1G,电子设备100可以检测到作用于转置控件144的用户操作。响应于上述操作,电子设备100可将图1F中竖向的小窗141调整为横向,参考图1H。

可选的,在确定主角之后,电子设备100可首先生成宽高比9:16的用于展示特写图像的小窗(竖窗),参考图1D中的小窗141。上述宽高比为示例性例举,竖窗的宽高比包括但不限于9:16这一类。其中,可选的,电子设备100可固定地在屏幕的左下方(或右下方、左上方、右上方)显示上述小窗141。当检测到作用于转置控件144的用户操作之后,电子设备100可将原来的竖窗变更为宽高比16:9的横向小窗(横窗)。当然,电子设备100也可默认生成横窗,然后,根据用户操作将横窗调整为竖窗,本申请实施例对此不作限制。这样,用户可用过转置控件144调整特写视频的视频内容和视频格式,以满足自身个性化需求。

在一些示例中,上述小窗还可根据预览窗中的主角的位置,调整显示位置,以避免对预览窗中主角的造成遮挡。进一步的,电子设备100还可根据用户操作调整小窗的位置和大小。在一些示例中,电子设备100还可检测到作用于小窗141的长按操作和拖动操作。响应于上述操作,电子设备100可将小窗移动到用户拖动操作最后停下的位置。

在另一些示例中,电子设备100还可检测到作用于小窗141的双击操作,响应于上述操作,电子设备100可将放大或缩小小窗141。不限于上述介绍的长按操作、拖动操作以及双击操作,电子设备100还可通过手势识别和语音识别来控制调整小窗的位置和大小。例如,电子设备100可通过摄像头采集的图像识别到用户做出了握拳手势,响应于上述握拳手势,电子设备100可缩小小窗141。电子设备100可通过摄像头采集的图像识别到用户做出了张手手势,响应于上述张手手势,电子设备100可放大小窗141。

在开始录制视频之前,在确定主角之后,若选定的主角丢失(预览窗113中显示的图像中不包括主角),则小窗141中显示的主角的特写图像会定格在丢失前的最后一帧。

参考图1D,预览窗113中显示图像可以为摄像头采集的第n帧图像。此时,小窗141中显示的图像为基于上述第n帧图像得到的以主角(人物2)为中心的特写图像。参考图1I,预览窗113中显示图像可以为摄像头采集的第n+1帧图像。此时,第n+1帧图像中不包括之前选定的主角(人物2),即主角丢失。这时,小窗141中保持显示基于上述第n帧图像得到的以主角(人物2)为中心的特写图像。

如图1I所示,在检测到主角丢失之后,电子设备100还可显示在预览窗113中显示提示语151,例如“主角丢失,5秒后退出追焦”,用于提示用户调整摄像头位置或角度,使得电子设备100可以重新获取到包括主角的原始图像。

如图1J所示,如果在5秒后,电子设备100仍未找回主角(人物3),即摄像头采集的图像中仍然不包括之前选定的主角(人物3),则电子设备100可关闭小窗141,并取消之前选定的主角(人物3)。上述5秒是预设的,电子设备100还可设定其他时间长度,例如10秒等等,本申请实施例对此不作限制。

在预览过程中,在确定主角之后,电子设备100可开始录制视频。在本申请实施例提供的主角模式下,电子设备100可基于预览窗113中显示的原始图像生成原始视频,同时,电子设备100还可基于小窗141中的主角的特写图像生成特写视频。

如图2A所示,电子设备100可检测到作用于拍摄控件112的用户操作。上述操作可称为开始拍摄的用户操作。响应于上述操作,电子设备100可开始录制视频(原始视频和特写视频),即编码并保存摄像头采集的原始图像,和以主角为中心的特写图像。

在开始录制视频之后,如图2A所示的用户界面可变更为图2B所示的样子。如图2B所示,在开始录制视频之后,电子设备100可显示控制模组211。控制模组211中可包括暂停控件2111和停止控件2112。暂停控件2111可用于暂停录制视频,包括暂停录制预览窗113对应的原始视频,和暂停录制小窗141对应的特写视频。停止控件2112可用于停止录制视频,包括停止录制原始视频,和停止录制特写视频。

在开始录制视频之后,预览窗113和小窗141中均可显示时间戳。例如预览窗113左上角显示的时间戳“00:01”,小窗141左上角显示的时间戳“00:01”。初始时,预览窗113和小窗141中的时间戳是相同的。后续,根据主角在预览窗113中的出镜情况,预览窗113和小窗141中的时间戳可能会不同,这里先不展开。

可选的,在开始录制视频之后,小窗141中还可显示停止控件212。停止控件212可用于停止录制特写视频。在检测到的作用于停止控件212的用户操作之后,电子设备100可关闭小窗141,并停止录制小窗141对应的特写视频。此后,可选的,用户可以重新选择主角。这时,电子设备100不停止录制原始视频。在选定新的主角之后,电子设备100可重新显示小窗141,并在小窗141中显示新主角的特写视频,录制新主角的特写视频。

在开始录制视频之后,电子设备100还可提供切换主角的服务。参考图2C所示的用户界面,在开始录制视频后的第5秒时,电子设备100可检测到作用于选择框122的用户操作。上述操作可称为切换主角的用户操作。响应于上述操作,电子设备100可将选择框122对应的人物1设定为主角。此时,之前设定为主角的人物2不再为主角。

参考图2D所示的用户界面,在将人物1设定为主角之后,电子设备100可在小窗141中显示人物1的特写图像,不再显示人物2的特写图像。适应性的,电子设备100可将人物1对应的选择框122更新为选中框211,同时,将人物2对应的选中框143更新为选择框123。

其中,在切换主角的过程中,小窗141可以直接显示切换后的人物1的特写图像,呈现跳跃式的显示效果。可选的,小窗141还可通过平滑策略实现非跳跃式的主角切换显示效果。例如,在将主角切换为人物1之后,电子设备100可根据预览窗113中人物2到人物1的路径,确定一组平滑移动的图像帧,然后在小窗141中显示上述图像帧,以实现非跳跃式的主角切换显示。例如,电子设备100还可使用固定的过渡效果,连接切换前后的主角的特写图像。上述固定的过渡效果例如视频编辑中常用的叠加、旋涡、平移等等。本申请实施例对此不作限定。

在录制视频的过程中,用户可以通过单击小窗中的停止控件保存小窗的录制视频。参考图2E所示的用户界面。在录制视频后的第5秒时,电子设备100检测到针对停止控件212的输入操作,响应该操作,电子设备100显示如图2F所示的用户界面。

如图2F所示,该用户界面中,预览窗113中不包括小窗。这时,在预览窗113中显示人物1和人物2,且在人物1中显示选择框122,在人物2中显示选择框123。若用户想再次对预览窗113中的目标对象进行单独的小窗录制,用户可以再次对预览窗113中的选择框122~选择框123中任意一个选择框进行单击操作。如图2G所示,在录制视频后第8秒时,电子设备100检测到针对选择框123的单击操作后,响应该操作,电子设备100显示如图2H所示的用户界面。

如图2H所示,用户界面的预览窗113中在此显示小窗141,预览窗113中显示人物1和人物2在小窗141中显示人物2,且在小窗141中显示小窗视频的录制时间为第0秒。

在录制视频的过程中,用户初始选定的主角可能离开电子设备100的摄像头的取景范围。这时,预览窗113对应的原始图像也会出现主角丢失的情况。同样的,在识别到主角丢失之后,电子设备100也可显示主角丢失的提示,并定格小窗141中的主角的特写图像。

参考图2I所示的用户界面,在开始录制视频后的第10秒时,电子设备100可检测到预览窗113中显示的原始图像(摄像头采集的原始图像)包括人物2,但不包括人物1(主角),即主角丢失。这时,电子设备100可在预览窗113中显示提示语231(“主角丢失,5秒后退出追焦”),以提示用户调整摄像头位置或角度,使得电子设备100可以重新获取到包括主角的原始图像。同时,电子设备100可小窗141中保持显示前一时刻确定的主角(人物1)的特写图像。从用户角度,小窗141中显示的特写图像暂停了,定格在了前一时刻确定的主角(人物1)的特写图像上。相应的,小窗141中左上角显示的时间戳暂停计时。

在看到上述提示语231之后,用户可调整摄像头位置以使得主角在摄像头的取景范围内,从而使得摄像头可以重新采集到包括主角的图像。

如图2J所示,如果在5秒后(开始录制视频后的第15秒00:15),电子设备100仍未找回主角(人物1),即摄像头采集的图像中仍然不包括之前选定的主角(人物1),则电子设备100可显示提示语232(“主角追焦已暂停”)。同时,电子设备100可在小窗141显示特写图像的图层之上显示一个半透明的灰色蒙板,以提示用户追焦录制已暂停。

可以理解的,在图2I所示的第10秒时,电子设备100就已经暂停录制小窗141中的特写视频了。其中,第10秒~第15秒这5秒的时间,是给电子设备100设置的过渡时间。

如果在暂停录制特写视频之后的某一时刻,电子设备100重新识别到了上述主角(人物1),这时,电子设备100可在小窗141中显示新获取的主角(人物1)的特写图像,并继续录制特写视频。

例如,参考图2K所示的用户界面,在开始录制视频后的第18秒时,摄像头重新采集到了包括人物1的图像,即预览窗113中显示的图像再次包括人物1。这时,电子设备100可基于上述包括人物1的原始图像确定以人物1为中心的特写图像,然后,在小窗141中显示上述特写图像。相应的,小窗141中左上角显示的时间戳回复计时。同时,电子设备100继续编码上述特写图像,即继续录制特写视频。

在录制视频一段时间之后,电子设备100可检测到结束拍摄的用户操作。参考图2L所示的用户界面,例如,在开始录制视频之后的第25秒时,电子设备100可检测到作用于停止控件2112的用户操作。上述用户操作可称为结束拍摄的用户操作。响应于上述结束拍摄的用户操作,电子设备100可停止编码图像,并将开始录制至结束录制期间已编码的图像封装为视频保存到本地存储器中。

其中,响应于上述结束拍摄的用户操作,电子设备100可停止编码预览窗113对应的原始图像,并将开始录制至结束录制期间已编码的原始图像封装为原始视频保存到本地存储器中。同时,电子设备100可停止编码小窗141对应的特写图像,并将开始录制至结束录制期间已编码的特写图像封装为特写视频保存到本地存储器中。

保存完成之后,电子设备100可显示图2M所示的用户界面。如图2L所示,电子设备100可重新显示拍摄控件112和回看控件114。此时,回看控件114上可显示用于指示上述已录制的原始视频和特写视频的缩略图。可选的,上述标识可以为上述原始视频的第一帧图像的缩略图,或者上述特写视频的第一帧图像的缩略图。

在显示图2M所示的用户界面的过程中,电子设备100可检测到作用于回看控件114的用户操作。响应于上述操作,电子设备100可播放已拍摄原始视频和/或特写视频。这样,用户立刻查看上述原始视频和/或特写视频。

实施图1A-图1J、图2A-图2M所示的自动追焦拍摄方法(主角模式),电子设备100可以实时地检测摄像头采集的原始图像中的对象。用户可以随时选择电子设备100已识别到的一个或多个对象中的任一对象为主角,也可以随时切换主角。

在开始录制之前,当已设定为主角的对象丢失时超过一段时间,电子设备100可取消上述对象的主角资格,然后,指示用户重新选定主角。在录制过程中,当已设定为主角的对象丢失时,电子设备100可暂停录制;当找回主角时,电子设备100可以继续录制。这样,用户可以得到连贯的以主角为中心的特写视频,并且上述主角不限定为一个对象。

在录制结束后,电子设备100可同时保存原始视频和特写视频。其中,原始视频可以保留录制过程中摄像头采集到的全部图像内容。特写视频可以集中地展示用户选定的主角的视频内容。用户可根据不同的需求,浏览或使用上述原始视频或特写视频,从而为用户提供更丰富的使用体验。

下面,结合图3A-图3E对本申请实施例提供的一种拍摄方法的流程图进行介绍。如图3A所示,图3A是本申请实施例提供的一种拍摄方法的流程图,具体过程如下:

步骤301:电子设备启动相机应用,进入视频录制界面。

具体的,电子设备启动相机应用后,模式模块(Mode模块)会启动摄像头实时采集图像。其中,视频录制界面包括预览窗和追焦控件,该预览窗用于实时显示摄像头采集的图像。示例性的,视频录制界面可以为上述图1A实施例中用户界面,预览窗可以为该用户界面中的预览窗113,追焦控件可以为该用户界面中的主角模式功能控件1154。本申请实施例以视频录制界面为第一界面,第一控件为追焦控件为例,进行说明。

步骤302:检测到针对追焦控件的输入操作,电子设备开启追焦功能。

具体地,在检测到针对追焦控件的输入操作后,电子设备开启追焦功能,并识别预览窗中图像的对象。本申请实施例以电子设备能够识别图像中的对象为人为例,进行说明。此外,电子设备还会在预览窗上显示与对象相关的追踪框。示例性的,追踪框可以为上述图1B所示的用户界面中的选择框122~选择框123中的任意一个。本申请实施例以标记为追踪框为例,进行说明。

步骤303:模式模块(Mode模块)触发流管理模块配置预览窗和小窗的数据流。

具体的,预览窗用于显示摄像头采集的原始图像,小窗用于显示在原始图像的基础上,基于选定的主角为中心进行裁剪得到的图像。示例性的,小窗可以为上述图1D所示的用户界面中的小窗141,预览窗可以为该用户界面中的预览窗113。

应当理解的是,由于电子设备未检测到针对追踪框的输入操作,此时在视频录制界面上仅存在预览窗,不存在小窗。

流管理模块配置预览窗和小窗的数据流可以为:为预览窗在缓冲区Buffer中分配一个用于编码器编码预览窗数据流的存储区(第一存储区),为小窗在缓冲区Buffer中分配一个用于编码器编码小窗数据流的存储区(第二存储区)。其中,预览窗和小窗的数据流可以为视频流。

步骤304:流管理模块配置预览窗和小窗的数据流,生成数据流配置信息,并将该数据流配置信息发送给编码控制模块。

具体地,数据流的配置信息包括第一存储区的地址(Video_surface_1)和第二存储区的地址(Video_surface_2)。

步骤305:模式模块触发存储模块生成第一视频文件和第二视频文件。

具体地,第一视频文件用于存储预览窗的编码后的数据流,第二视频文件用于存储小窗的编码后的视频流。

应当理解的是,步骤305可以在步骤303之前执行,步骤305也可以在步骤303之后执行,步骤305也可以和步骤303同时执行,本申请实施例不做限制。

步骤306:存储模块生成第一视频文件和第二视频文件,并将第一视频文件和第二视频文件的信息发送给编码控制模块。

具体的,第一视频文件的信息可以为第一视频文件的标识信息,例如,第一视频文件的ID。第二视频文件的信息可以为第二视频文件的标识信息,例如,第二视频文件的ID。

步骤307:编码控制模块配置第一编码器参数和第二编码器参数,并将第一编码器与第一视频文件和第一存储区的地址信息对应,将第二编码器与第二视频文件和第二存储区的存储地址对应。

具体的,编码控制模块可以通过配置第一编码器参数和第二编码器参数来指示编码器模块创建预览窗的编码器和小窗的编码器。其中,第一编码器为预览窗对应的编码器,第二编码器为小窗对应的编码器。预览窗对应的编码器用于将预览窗的数据流进行编码,并将编码后的数据流发送给编码控制器,再由编码控制器将该数据流进行编码打包,把编码打包后的数据流写入第一视频文件中。小窗对应的编码器用于将小窗的数据流进行编码,并将编码后的数据流发送给编码控制器,再由编码控制器将编码后的数据流进行编码打包,再将编码打包后的数据流写入第二视频文件中。

编码控制模块可以将第一编码器、第一视频文件、Video_surface_1匹配,建立“第一编码器-第一视频文件-Video_surface_1”的关联关系,使得后续第一编码器能够根据Video_surface_1获取预览窗的视频流,并对该视频流进行编码。然后,编码控制器将编码后的数据流进行编码打包,再将编码打包后的数据流写入存储模块创建的第一视频文件。编码控制模块将第二编码器、第二视频文件、Video_surface_2匹配,建立“第二编码器-第二视频文件-Video_surface_2”的关联关系,使得后续第二编码器能够根据Video_surface_2获取小窗的视频流,并对该视频流进行编码。然后,编码控制器将编码后的数据流进行编码打包,再将编码打包后的数据流写入存储模块创建的第二视频文件中。

步骤308:编码控制模块向编码器模块发送第一编码配置参数。

具体地,该第一编码配置参数包括第一编码器参数、第二编码器参数、第一编码器与第一视频文件和Video_surface_1的关联关系的信息,第二编码器与第二视频文件和Video_surface_2的关联关系的信息。该第一编码配置参数用于指示编码器模块基于第一编码器参数创建预览窗的编码器(第一编码器),基于第二编码器参数创建小窗的编码器(第二编码器)。

此外,并将预览窗的编码器与第一视频文件和Video_surface_1关联起来,将小窗的编码器与第二视频文件和Video_surface_2关联起来。使得后续第一编码器能够根据Video_surface_1获取预览窗的视频流,并对该视频流进行编码,然后将编码后的视频流发送给编码控制模块。使得后续第二编码器能够根据Video_surface_2获取小窗的视频流,并对该视频流进行编码,然后将编码后的视频流发送给编码控制模块。

步骤309:编码器模块根据第一编码配置参数创建第一编码器和第二编码器,并将第一编码器与第一视频文件和第一存储区关联,将第二编码器与第二视频文件和第二存储区关联。

步骤310:流管理模块配置第一流标识参数和第二流标识参数。

具体地,第一流标识参数用于标识预览窗的数据流,第二流标识参数用于标识小窗的数据流。

应当理解的是,步骤310可以在步骤304之前执行,步骤310也可以在步骤304之后执行,步骤310还可以和步骤304同时执行,本申请实施例不做限制。

步骤311:流管理模块配置将第一流标识参数和第二流标识参数发送给相机HAL(Camera HAL)模块。

具体地,第一流标识参数包括第一存储区的地址信息,第二流标识参数包括第二存储区的地址信息。

步骤312:CameraHAL模块解析第一流标识参数和第二流标识参数,并将预览窗的数据流和小窗的数据流分别与第一流标识参数和第二流标识参数进行匹配。

具体地,CameraHAL模块在解析第一流标识参数和第二流标识参数之后,确定第一流标识参数对应的数据流为电子设备开始录制视频(示例性的,上述图2C中的录制界面)后,预览窗的视频流。电子设备确定第二流标识参数对应的数据流为电子设备开始录制视频后,小窗的数据流,并预先将电子设备录制视频后预览窗的数据流与第一流标识参数进行匹配,将小窗的数据流与第二流标识参数进行匹配,从而使得CameraHAL模块在获得预览窗的数据流和小窗的数据流后,能够确定将大窗的数据流发送给第一存储区,将小窗的数据流发送给第二存储区。

在检测到针对视频录制界面上的开始录制控件的输入操作后,电子设备开始录制视频,并在视频录制界面上显示小窗,在小窗上显示在原始图像(预览窗上显示的图像)的基础上,基于选定的主角为中心进行裁剪得到的图像。

下面,结合图3B中的步骤313-步骤322对电子设备在同时对预览窗视频和小窗视频进行录制的情况下,分别对预览窗和小窗的数据流进行编码的过程进行说明。其中,预览窗和小窗的数据流可以是视频流。

步骤313:开始录像后,模式模块(Mode模块)触发流管理模块向CameraHAL模块动态发送第一数据请求消息。

具体地,当电子设备检测到针对视频录制界面上的开始录制控件后,电子设备开始录像,并触发模式模块(Mode模块)指示流管理模块发送第一数据请求消息。本申请实施例以视频录制控件为开始录制控件为例,进行说明。

其中,该第一数据请求消息包括第一流标识参数和第二流标识参数,该第一数据请求消息用于指示CameraHAL模块在第一存储区中缓存预览窗的数据流,在第二存储区中缓存小窗的数据流。

在一种可能实现的方式中,在开始录像之前,若检测到针对视频录制界面中,第一追踪框(第一标记)的单击操作,响应该操作,电子设备在视频录制上同时显示预览窗和小窗。其中,预览窗显示摄像头采集的原始图像,在该图像中包括N个对象(本申请实施例以对象为人物为例,进行说明),在小窗上显示第一对象,第一对象为第一追踪框对应的人物。

步骤314:流管理模块向CameraHAL模块动态发送第一数据请求消息。

步骤315:CameraHAL模块处理摄像头发送的数据流,并将摄像头传送的数据流进行复制和处理,得到第一数据流和第二数据流,并将第一数据流和第二数据流分别发送到第一存储区和第二存储区中。

具体地,CameraHAL模块在接收到第一数据请求消息之后,将接收到的摄像头传输的数据流进行复制,得到两路数据流。这两路数据流是视频录制过程中的数据流。示例性的,该数据流包括摄像头实时采集的图像帧的数据。其中,预览窗对应的数据流为第一数据流,小窗对应的数据流为第二数据流。CameraHAL模块可以将摄像头采集的数据流作为第一数据流,将第一数据流进行复制得到复制后的数据流。然后,将复制后的数据流中的每帧图像按照选定的主角(对象)为中心进行裁剪处理,从而得到裁剪后的数据流,该数据流为第二数据流。

在一些实施例中,CameraHAL模块也可以将摄像头采集的数据流进行复制,得到复制后的数据流,并将复制后的数据流作为第一数据流。将摄像头采集的数据流中的每帧图像按照选定的主角(对象)为中心进行裁剪处理,从而得到裁剪后的数据流,该数据流为第二数据流。

由于第一数据流和第二数据流是两路相同的数据流,为了区别第一数据流和第二数据流,CameraHAL模块在第一数据流的每帧图像中添加第一流标识参数,在第二数据流的每帧图像中添加第二流标识参数,从而区分第一数据流和第二数据流。这样,以便透传第一数据流和第二数据流的相机框架模块(Camera FWK模块)和其他模块可以根据第一流标识参数和第二流标识参数区分这两路数据流。

此外,CameraHAL模块还可以在第一数据流和第二数据流的每一帧图像数据中添加时间戳pts,或者仅在第二数据流的每一帧图像数据中添加pts。其中,时间戳pts可以为CameraHAL模块接收该帧图像数据时的系统时间,也可以为CameraHAL模块发送该帧图像时的系统时间。

步骤316:开始录像后,模式模块(Mode模块)触发编码器控制模块启动编码器。

示例性的,当电子设备检测到针对视频录制界面上的开始录制控件后,电子设备开始录像,并触发编码器控制模块启动第一编码器工作和第二编码器工作。

步骤316可以在步骤313之前执行,也可以在步骤313之后执行,也就可以和步骤313同时执行,本申请实施例不做限制。

步骤317:编码控制模块向编码器模块发送第一启动消息。

具体地,编码控制模块在接收到模式模块(Mode模块)的触发消息后,向编码器模块发送第一启动消息。该第一启动消息用于触发编码器模块启动第一编码器和第二编码器工作。

步骤318:第一编码器从第一存储区中获取第一数据流,第二编码器在第二存储区中获取第二数据流。

具体地,编码器模块接收到编码控制模块发送的第一启动消息后,编码器模块会触发第一编码器和第二编码器工作。第一编码器会基于Video_surface_1(第一存储区的地址)从Buffer中获取缓存的第一数据流。第二编码器会基于Video_surface_2(第二存储区的地址)从Buffer中获取缓存的第二数据流。

步骤319:第一编码器将第一数据流进行编码,得到编码后的第一数据流,第二编码器将第二数据流进行编码,得到编码后的第二数据流。

步骤320:第一编码器将编码后的第一数据流发送给编码控制模块,第二编码器将编码后的第二数据流发送给编码控制模块。

步骤321:编码控制模块将编码后的第一数据流进行编码打包,得到编码打包后的第一数据流,将编码后的第二数据流进行编码打包,得到编码打包后的第二数据流。

步骤322:编码控制模块将编码打包后的第一数据流发送到第一视频文件中,将编码打包后的第二数据流发送到第二视频文件中。

在一些实施例中,用户可以提前结束对小窗中的视频的录制,继续预览窗中的视频录制。示例性的,如上述图2B显示的用户界面,在小窗141中显示停止控件212,当电子设备检测到针对停止控件212的单击操作时,电子设备会停止录制小窗视频,并将已录制的小窗视频进行保存。此时,电子设备仍然进行预览窗中视频的录制。

下面,结合图3C中的步骤323-步骤332对在提前结束小窗中的视频录制,继续录制预览窗中视频的情况下,电子设备对数据流进行编码的过程进行介绍。

步骤323:检测到针对小窗中停止录制控件的输入操作后,模式模块(Mode模块)触发流管理模块向CameraHAL模块动态发送第二数据请求消息。

具体地,第二数据请求消息用于指示CameraHAL模块仅对预览窗的数据流进行处理,即:仅对第一数据流进行处理,并将第一数据流发送到第一存储区中。在第二数据请求消息中仅包括第一流标识参数。

示例性的,停止录制控件可以为上述图2B中的停止控件212。本申请实施例以第二控件为停止录制控件为例,进行说明。

步骤324:流管理模块向CameraHAL模块动态发送第二数据请求消息。

步骤325:CameraHAL模块处理摄像头发送的数据流,得到第一数据流,并将第一数据流发送到第一存储区中缓存。

具体地,CameraHAL模块接收到流管理模块发送的第二数据请求消息后,CameraHAL模块不再对其接收的摄像头的数据进行复制,也不再对复制后的数据流中的每帧图像进行裁剪处理。CameraHAL模块对其从摄像头接收的数据流(第一数据流)进行处理后,在第一数据流的每帧图像中添加第一流标识参数。然后,将第一数据流发送到第一存储区中。

步骤326:检测到针对小窗中停止录制控件的输入操作后,模式模块(Mode模块)触发编码控制器发送第一停止编码请求。

具体地,第一停止编码请求用于指示编码器模块停止并删除第二编码器。此外,第一停止编码请求用于指示编码器模块新创建一个小窗的编码器,即:第三编码器。

应当理解的是,步骤323和步骤326同时执行,步骤323可以在步骤326之前执行,步骤323可以在步骤326之后执行,本申请实施例不做限制。

步骤327:编码控制模块指示编码器模块停止并删除第二编码器,创建第三编码器。

步骤328:编码控制模块向存储模块发送第一保存消息。

具体地,第一保存消息用于指示存储模块停止接收编码控制模块发送的编码打包后的第二数据流,并保存第二视频文件,第二视频文件中保存的视频为小窗的视频(特写视频)。此外,第一保存消息还用指示存储模块创建第三视频文件。

应当理解的是,步骤327和步骤328同时执行,步骤327可以在步骤328之前执行,步骤327可以在步骤328之后执行,本申请实施例不做限制。

步骤329:存储模块保存第二视频文件并创建第三视频文件,并将第三视频文件的信息发送给编码控制模块。

具体地,在接收到第一保存消息后,存储模块保存第二视频文件。其中,第二视频文件可以以第一系统时间Time_1来命名。第一系统时间可以为创建第二视频文件的时间。此外,电子设备可以创建第三视频文件。其中,第三视频文件用于存储小窗视频数据。

第三视频文件的信息可以为第三视频文件的标识信息,如第三视频文件的ID等,本申请实施例对此不做限制。

步骤330:编码控制模块配置第三编码器参数,并将第三编码器与第三视频文件和第二存储区对应。

具体地,编码控制模块可以将第三编码器、第三视频文件、第二存储区匹配,建立“第一编码器-第三视频文件-第二存储区”的关联关系,使得后续第三编码器能够根据第二存储区的地址获取小窗的数据流,并对该数据流进行编码,然后将编码后的数据流发送给编码控制模块进行编码打包。进而使得编码控制模块将编码打包后的小窗的数据流发送到到存储模块创建的第三视频文件中。

步骤331:编码控制模块向编码器模块发送第二编码配置参数。

具体地,该第二编码配置参数包括第三编码器参数、第三编码器与第三视频文件和Video_surface_2的关联关系。该第二编码配置参数用于指示编码器模块基于第三编码器参数创建小窗的编码器(第三编码器)。此外,并将小窗的编码器与第三视频文件和Video_surface_2关联起来。使得后续第三编码器能够根据Video_surface_2获取小窗的视频流,并对该视频流进行编码,然后将编码后的视频流发送给编码控制模块。

步骤332:编码器模块根据第二编码器配置参数创建第三编码器,并将第三编码器与第三视频文件和第二存储区关联。

上述步骤323-步骤332对在停止小窗的视频录制后,电子设备对摄像头采集图像的数据流进行编码过程进行了介绍。在停止小窗录制后,预览窗中的对象会显示选择框221和选择框123,示例性的如上述图2G所示。当电子设备检测到针对选择框123的输入操作后,电子设备会再次显示小窗,并在小窗上再次显示用户选中的主角人物1(之前的主角是人物2)。

下面,结合图3D中的步骤333-步骤342对电子设备在提前结束小窗视频录制后,再次选中主角,进行新的小窗录制的过程进行说明。

步骤333:在检测到用户重新选中主角后,模式模块(Mode模块)触发流管理模块向CameraHAL模块动态发送第三数据请求消息。

示例性的,在检测到用户针对上述图2G中的选择框123(第二标记)的单击操作后,电子设备确定用户重新选中主角。

此外,在检测到用户重新选中主角后,模式模块会触发流管理模块向CameraHAL模块动态发送第三数据请求消息,该第三数据请求消息可以包括第一流标识参数和第二流标识参数,该第三数据请求消息用于指示CameraHAL模块在第一存储区中缓存预览窗的数据流,在第二存储区中缓存小窗的数据流。

步骤334:流管理模块向CameraHAL模块动态发送第三数据请求消息。

步骤335:CameraHAL模块处理摄像头发送的数据流,并将摄像头传送的数据流进行复制和处理,得到第一数据流和第三数据流,并将第一数据流发送到第一存储区中,将第三数据流发送到第二存储区中。

具体地,CameraHAL模块在接收到第三数据请求消息之后,将接收到的摄像头传输的数据流进行复制,得到两路数据流。这两路数据流是视频录制过程中的数据流,示例性的,该数据流包括摄像头采集实时采集的图像帧的数据。其中,预览窗对应的数据流为第一数据流,小窗对应的数据流为第二数据流。CameraHAL模块可以将摄像头采集的数据流作为第一数据流,将第一数据流进行复制得到复制后的数据流。然后,将复制后的数据流中的每帧图像按照选定的主角(对象)为中心进行裁剪处理,从而得到裁剪后的数据流,该数据流为第三数据流。

在一些实施例中,CameraHAL模块也可以将摄像头采集的数据流进行复制,得到复制后的数据流,并将复制后的数据流作为第一数据流。将摄像头采集的数据流中的每帧图像按照选定的主角(对象)为中心进行裁剪处理,从而得到裁剪后的数据流,该数据流为第三数据流。

由于第一数据流和第三数据流是两路相同的数据流,为了区别第一数据流和第三数据流,由于CameraHAL模块在第一数据流的每帧图像中添加第一流标识参数,在第三数据流的每帧中添加第二流标识参数,从而区分第一数据流和第三数据流。这样,以便透传第一数据流和第三数据流的Camera Fwk模块可以根据第一流标识参数和第二流标识参数定将第一数据流发送到第一存储区,将第三数据流发送到第二存储区。

此外,CameraHAL模块还可以在第一数据流和第三数据流的每一帧图像数据中添加时间戳pts,或者仅在第三数据流的每一帧图像数据中添加pts。其中,时间戳pts可以为CameraHAL模块接收该帧图像数据时的系统时间,也可以为CameraHAL模块发送该帧图像时的系统时间。

步骤336:模式模块(Mode模块)触发编码器控制模块向编码器模块发送第二启动消息。

具体地,第二启动消息用于指示第三编码器工作。(之前并未停止预览窗的视频录制,因此,第一编码器一直在正常工作)

应当理解的是,步骤333和步骤336同时执行,步骤333可以在步骤336之前执行,步骤333可以在步骤336之后执行,本申请实施例不做限制。

步骤337:编码器控制模块向编码器模块发送第二启动消息。

步骤338:第一编码器从第一存储区中获取第一数据流,第三编码器在第二存储区中获取第三数据流。

具体地,编码器模块接收到编码控制模块发送的第二启动消息后,编码器模块会触发第一编码器和第三编码器工作。第一编码器会基于Video_surface_1(第一存储区的地址)从Buffer中获取缓存的第一数据流。第三编码器会基于Video_surface_2(第二存储区的地址)从Buffer中获取缓存的第三数据流。

步骤339:第一编码器对第一数据流进行编码,并将编码后的第一数据流发送给编码控制模块,第三编码器对第三数据流进行编码,并将编码后的第三数据流发送给编码控制模块。

步骤340:编码控制模块对编码后的第一数据流进行编码打包,并将编码打包后的第一数据流发送到第一视频文件中。

步骤341:编码控制模块确定第三数据流中的目标图像数据。

具体地,第三数据流和第二数据流存储的位置相同。由于Buffer只是暂时存储数据流,在一段时间过后,当存在新的数据流需要存储时,Buffer会清理原来的数据流,以便能够存储新的数据流。在切换主角时,可能会在相邻两个主角切换的时间间隔较小,导致第二存储区中可能残留第二数据流。如果将残留的第二数据流中的图像数据进行编码打包,那么在下一个小窗的视频中,就会显示上一个小窗视频的画面,造成画面显示错乱。因此,编码控制模块可以对第三编码器发送的第三数据流中的图像进行筛选。

编码控制模块可以根据第三数据流(编码控制模块可以通过第一流标识参数和第二流标识参数分辨第一数据流和第三数据流)中,每帧图像的时间戳pts来确定目标图像数据。目标图像数据为第三数据流中,pts大于或等于第二系统时间的图像的数据。其中,第二系统时间可以为创建第三视频文件的时间,第二系统时间也可以为第三编码器的启动时间,还可以为流管理模块发送第二数据请求消息的时间,还可以为保存第二视频文件的时间,本申请实施例对此不做限制。

步骤342:编码控制模块对编码后的第三数据流中的目标图像数据进行编码打包,并将编码打包后的第三数据流发送到第三视频文件中。

具体地,编码控制模块对编码后的第三数据流中的目标图像数据进行编码打包,能够有效避免因存在残留的第二数据流,而使得最后使得第三视频文件中的视频在播放时,前N帧图像显示第二视频文件中视频的画面的问题。

应当理解的是,步骤339可以在步骤341之前执行,步骤339也可以在步骤341之后执行,步骤339还可以与步骤341同时执行,本申请实施例不做限制。

上述步骤333-步骤342介绍了电子设备切换主角后,电子设备对预览窗对应的数据流和小窗对应的数据流进行编码的流程进行了介绍。

下面,结合图3E中的步骤343-步骤349,对电子设备同时结束预览窗和小窗的录制,电子设备中各模块所执行的流程进行说明。

步骤343:在检测到针对同时结束预览窗和小窗视频录制的输入操作后,模式模块(Mode模块)触发编码控制模块向CameraHAL模块动态发送第四数据请求消息。

具体地,第四数据请求消息用于指示CameraHAL模块不再对摄像头发送的数据流进行处理,停止将第一数据流发送到第一存储区中,停止将第三数据流发送到第二存储区中。第二停止录制控件可以为上述2L中的停止控件2112。

示例性的,同时结束预览窗和小窗视频录制的输入操作可以为上述图2L中,作用于停止控件2112的用户操作。

步骤344:流管理模块向CameraHAL模块动态发送第四数据请求消息。

步骤345:模式模块(Mode模块)触发编码控制模块向第一编码器和第三编码器发送停止编码的工作指令。

应当理解的是,步骤343和步骤345同时执行,步骤343可以在步骤345之前执行,步骤343可以在步骤345之后执行,本申请实施例不做限制。

步骤346:编码控制模块向编码器模块发送第二停止编码请求。

具体地,第二停止编码请求用于指示编码器模块停止并删除第一编码器和第三编码器。

步骤347:第一编码器和第三编码器停止编码数据流。

在一些实施例中,在接收到第二停止编码请求后,编码器模块指示第一编码器和第三编码器停止工作,并且清除第一编码器和第三编码器。

步骤348:模式模块触发存储模块保存第一视频文件和第三视频文件。

具体地,存储模块可以以第二系统时间来对第三视频文件命名,可以以当前系统时间来对第一视频文件来命名,本申请实施例对第三视频文件和第一视频文件的命名方式不做限制。

应当理解的是,步骤345和步骤348同时执行,步骤345可以在步骤348之前执行,步骤345可以在步骤348之后执行,本申请实施例不做限制。

步骤349:存储模块保存第一视频文件和第三视频文件。

其中,第一视频文件中缓存的视频为预览窗视频(原始视频),第三视频文件中缓存的视频为小窗视频(选中对象的特写视频)。

图4是本申请实施例提供的电子设备100的硬件结构示意图。

电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。

可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。

电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。

天线1和天线2用于发射和接收电磁波信号。

移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。

无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。

电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD)。显示面板还可以采用有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,QLED)等制造。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。

在本申请实施例中,电子设备100显示摄像头采集的原始图像、经过主角追焦确定的主角的特写图像,以及图1A-图1J、图2A-图2I所示的用户界面的能力,依赖于上述GPU,显示屏194,以及应用处理器提供的显示功能。

电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。

ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。

摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。

数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。

视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。

NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。

在本申请实施例中,电子设备100实施本申请实施例提供的拍摄方法,首先依赖于ISP,摄像头193采集的图像,其次还依赖于视频编解码器,GPU提供的图像计算与处理能力。其中,电子设备100可通过NPU提供的计算处理能力,实施人脸识别、人体识别、重识别(ReID)等神经网络算法。

内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。

随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等。

非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-levelcell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universal flashstorage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。

随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。

在本申请实施例中,实现本申请实施例所述的拍摄方法的代码可存储在非易失性存储器上。在运行相机应用时,电子设备100可将非易失性存储器中存储的可执行代码加载到随机存取存储器。

外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。

电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。

音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。

在本申请实施例中,电子设备100在启用摄像头采集图像的过程中,可以同时启用麦克风170C采集声音信号,并将声音信号转换为电信号存储下来。这样,用户可以得到有声的视频。

压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。

陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。

气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。

触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。

在本申请实施例中,电子设备100可利用触摸传感器180K检测用户作用于显示屏194上的点击、滑动等操作,以实现图1A-图1J、图2A-图2L所示的拍摄方法。

骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。

图5为本申请实施例提供的一种电子设备的软件结构示意图。

如图5所示,本申请涉及的电子设备的软件框架可以包括应用程序层,应用程序框架层(framework,FWK)、系统库、安卓运行时、硬件抽象层(HAL)和内核层(kernel)。

其中,应用程序层可以包括一系列应用程序包,例如相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。其中,相机应用可以用于获取图像和视频。

如图5所示,相机应用可以包括相机模式模块、流管理模块、编码控制模块和存储模块。

相机模式模块可以用于监听用户操作并确定相机的模式。相机的模式可以包括但不限于:拍照模式、录像预览模式、录像模式、延时摄影模式、连拍模式等。其中,录像预览模式可以包括追焦模式下的录像预览模式。录像模式可以包括追焦模式下的录像模式。

流管理模块用于进行数据流管理。例如,数据流配置信息(可简称为配流信息)的下发。流管理模块可以包括数据流缓存的地址。例如,Video_surface_1和Video_surface_2。Video_surface_1用于指示缓存预览窗的数据流(第一数据流)的Buffer,Video_surface_2用于指示缓存小窗的数据流(第二数据流和第三数据流)的Buffer。

编码控制模块用于将编码器编码的数据流进行编码打包,并将编码打包后的数据流发送到存储模块创建的对应视频文件中。

存储模块用于存储原始视频(预览窗的视频)和特写视频(小窗视频)。

应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。

如图5所示,应用程序框架层可以包括相机FWK和媒体FMK。

相机FWK可以提供API接口给应用(例如,相机应用)进行调用,进而接收来自应用的请求,同时维护着请求在内部流转的业务逻辑,最终通过调用相机AIDL跨进程接口将请求发送至相机服务(Camera Service)中进行处理,紧接着,等待相机服务(CameraService)结果的回传,进而将最终结果发送至相机应用。其中,AIDL的英文全称为AndroidInterface Definition Language,中文含义为安卓接口定义语言。类似的,媒体FWK可以API接口给相应应用(例如,相机应用)进行调用,进而接收来自应用(例如,相机应用)的请求,并向下传递应用的请求,然后再回传给应用。

可理解,应用程序框架层还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。其具体含义可以参考相关技术文档,在此不展开说明。

运行时(Runtime)负责系统的调度和管理。Runtime包括核心库和虚拟机。其中,核心库包含两部分:一部分是编程语言(例如,java语言)需要调用的功能函数,另一部分是系统的核心库。

应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的编程文件(例如,java文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。

系统库可以包括多个功能模块。例如:表面管理器(Surface Manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。

表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维(2-Dimensional,2D)和三维(3-Dimensional,3D)图层的融合。

媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。

三维图形处理库用于实现3D图形绘图,图像渲染,合成,和图层处理等。

2D图形引擎是2D绘图的绘图引擎。

硬件抽象层(HAL)是位于操作系统内核与上层软件之间的接口层,其目的在于将硬件抽象化。硬件抽象层是设备内核驱动的抽象接口,用于实现向更高级别的Java API框架提供访问底层设备的应用编程接口。HAL包含多个库模块,例如相机HAL、Vendor仓、显示屏、蓝牙、音频等。其中每个库模块都为特定类型的硬件组件实现一个接口。可理解,相机HAL可以为相机FWK提供访问摄像头等硬件组件的接口。Vendor仓可以为媒体FWK提供访问编码器等硬件组件的接口。为当系统框架层API要求访问便携设备的硬件时,Android操作系统将为该硬件组件加载库模块。

内核层是Android操作系统的基础,Android操作系统最终的功能都是通过内核层完成。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动。

需要说明的是,本申请提供的图5所示的电子设备的软件结构示意图仅作为一种示例,并不限定Android操作系统不同分层中的具体模块划分,具体可以参考常规技术中对Android操作系统软件结构的介绍。另外,本申请提供的拍摄方法还可以基于其他操作系统实现,本申请不再一一举例。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

总之,以上所述仅为本发明技术方案的实施例,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种多焦距图像拍摄方法、电子设备、存储介质
  • 摄像头模组、电子设备及拍摄方法
  • 拍摄方法和装置、电子设备、计算机可读存储介质
  • 电影拍摄场景的调度方法、装置、电子设备和存储介质
  • 一种利用三维电影拍摄设备拍摄电影的方法
  • 一种拍摄方法及相关电子设备
  • 一种拍摄对焦方法及相关电子设备
技术分类

06120116503021