拍摄方法、介质、程序产品及电子设备与流程

文档序号:32790839发布日期:2023-01-03 20:57阅读:29来源:国知局
拍摄方法、介质、程序产品及电子设备与流程

1.本技术涉及通信技术领域,特别涉及一种拍摄方法、介质、程序产品及电子设备。


背景技术:

2.随着通信技术的不断进步,用户对手机、平板电脑等移动终端的操作便捷性的需求越来越高。例如,用户对移动终端拍摄照片的便捷性的要求越来越高。
3.目前,移动终端在视频录制过程中,用户只能手动进行抓拍,一旦错过时机就无法抓拍而错过精彩瞬间。另外,用户的手动操作可能会使移动终端抓拍时发生晃动,导致抓拍的照片清晰度不够,用户体验差。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种拍摄方法、程序产品、介质及电子设备。本技术的技术方案中,电子设备在录制视频的过程中,可以自动分析视频流的内容和变化,以自动生成多张高质量、符合用户预期的照片,并将多张照片批量回传至图库应用中,向用户提供精彩瞬间。
5.第一方面,本技术实施例提供了一种拍摄方法,应用于电子设备,该方法包括:电子设备开始录像并生成视频流;电子设备对视频流中的视频帧进行评分;电子设备基于评分选择视频帧进行算法优化,并生成多张照片;电子设备通过扩展接口将多张照片硬件抽象层批量回传至应用程序层。在一些实施例中,电子设备基于评分选择出的视频帧可以为质量较高、符合用户预期的照片,实现对精彩瞬间的记录。
6.另外,上述扩展接口为电子设备的硬件抽象层和应用程序层之间的接口,具体为电子设备中的相机硬件抽象单元(即下文中的相机硬件抽象单元406)和相机应用(如下文中的相机应用401)之间的接口。而扩展接口与不是电子设备的原生系统架构中的接口。从而,通过扩展接口支持批量回传照片,可以方便用户统一查看视频录制过程中自动生成的多张照片。
7.其中,上述多张照片可以为下文中的n张jpeg照片,即多张照片的数量为n,可以为预设数值,如5。
8.在上述第一方面的一种可能的实现中,上述电子设备通过扩展接口将多张照片硬件抽象层批量回传至应用程序层,包括:电子设备将多种照片保存在电子设备的共享内存中,并得到句柄信息,句柄信息用于指示多张照片在共享内存中的存储地址;电子设备通过扩展接口将句柄信息从硬件抽象层回传至应用程序层中电子设备的相机应用;电子设备通过相机应用按照句柄信息从共享内存中批量读取多张照片,并将多张照片批量保存至电子设备的图库应用中。
9.在上述第一方面的一种可能的实现中,上述电子设备将录像得到的视频保存至图库应用中,并关联视频和多张照片。其中,电子设备关联视频和多张照片,使得用户可以通过该视频去查找该多张照片,或者通过该多张照片去查找该视频。
10.在上述第一方面的一种可能的实现中,上述视频的信息中包括唯一标识视频的标识符,多张照片中的每张照片的信息中携带有标识符,标识符用于关联视频和多张照片。
11.在上述第一方面的一种可能的实现中,上述标识符为视频的通用唯一识别码uuid。
12.在上述第一方面的一种可能的实现中,上述方法还包括:电子设备检测到用户对电子设备中的图库应用的第一操作;电子设备基于第一操作,在图库应用的界面中显示视频的缩略图和与视频关联的多张照片对应的缩略图。其中,第一操作可以为下文中用户对图12a示出的“智慧多拍”相册进行点击操作等,以触发电子设备向用户提供该视频和关联的多张照片的查看入口。
13.在上述第一方面的一种可能的实现中,上述多张照片中每张照片的缩略图上携带有预设标识,预设标识用于指示照片为对视频中的视频帧自动进行算法优化得到的。例如,上述预设标识可以为下文中图12f示出的六角星的标识
14.在上述第一方面的一种可能的实现中,上述方法还包括:电子设备检测到用户对视频的缩略图的第二操作;电子设备基于第二操作,显示视频的播放界面,并在播放界面上显示多张照片的缩略图。上述第二操作,可以包括用户点击图12f示出的视频a的缩略图,用户再点击图12e示出的原视频控件的操作。
15.在上述第一方面的一种可能的实现中,上述方法还包括:电子设备检测到用户对播放界面的第三操作;电子设备基于第三操作,从图库中删除视频,或者,删除视频并删除多张照片。例如,第三操作为用户点击图12c示出的删除控件的操作。
16.在上述第一方面的一种可能的实现中,上述电子设备是基于检测到的结束录像指令,将多张照片保存至图库应用中的;或者,电子设备是基于用户对图库应用中已经保存的视频的第四操作,将多张照片保存至图库应用中的。从而,可以根据用户的实际需求保存照片,以避免保存不必要的照片造成的资源浪费。
17.在上述第一方面的一种可能的实现中,上述扩展接口为硬件抽象层接口定义语言hidl接口。
18.在上述第一方面的一种可能的实现中,上述对视频流中的视频帧进行评分通过以下步骤实现:电子设备获取视频流的风格信息、场景信息、场景变化信息和多维预设信息,风格信息用于表征视频的主题和氛围,场景信息将视频分为不同类别的多个视频片段,该多维预设信息为对视频帧评分的多个维度的信息;电子设备根据多维预设信息,对视频帧评分。
19.作为一种示例,风格信息、场景信息、场景变化信息和多维预设信息的粒度逐渐减小,并且均可以按照相同或不同预设间隔获取。另外,评分为按照多维预设信息决策得到的,具体地,可以在具有多维预设信息的视频帧的评分大于第一阈值时,对该视频帧进行算法优化。
20.在上述第一方面的一种可能的实现中,上述基于评分选择视频帧进行算法优化,包括:电子设备基于评分和场景变化信息,选择出评分最高的多张视频帧。作为一种示例,场景变化信息表示的每一个转场可以输出评分最高的一个视频帧。
21.第二方面,本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有指令,该指令在电子设备上执行时使电子设备执行如第一方面及其任一中可能
的实现方式中的拍摄方法。
22.第三方面,本技术实施例提供了一种计算机程序产品,该计算机程序产品包括指令,指令用于实现如第一方面及其任一中可能的实现方式中的拍摄方法。
23.第四方面,本技术实施例提供了电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,当指令被一个或多个处理器执行时,处理器用于执行如第一方面及其任一中可能的实现方式中的拍摄方法。
附图说明
24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1a和图1b根据本技术的一些实施例,示出了一种拍摄场景下的界面示意图;
26.图2根据本技术的一些实施例,示出了一种拍摄方法的网络架构图;
27.图3根据本技术的一些实施例,示出了一种手机的结构示意图;
28.图4a根据本技术的一些实施例,示出了一种手机的软件结构框图;
29.图4b根据本技术的一些实施例,示出了一种拍摄方法应用的架构框架;
30.图5a根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
31.图5b根据本技术的一些实施例,示出了一种精彩帧识别流程的示意图;
32.图5c根据本技术的一些实施例,示出了一种精彩帧识别流程的示意图;
33.图6根据本技术的一些实施例,示出了一种拍摄方法应用的架构示意图;
34.图7根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
35.图8a根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
36.图8b根据本技术的一些实施例,示出了一种拍摄方法应用的架构示意图;
37.图8c根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
38.图8d根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
39.图9根据本技术的一些实施例,示出了一种拍摄方法的流程示意图;
40.图10a至图10h根据本技术的一些实施例,示出了一种拍摄过程的界面示意图;
41.图11根据本技术的一些实施例,示出了一种照片查看流程的示意图;
42.图12a至图12i根据本技术的一些实施例,示出了一种照片查看以及操作流程的界面变化图;
43.图13根据本技术的一些实施例,示出了一种照片保存流程的示意图;
44.图14a至图14d根据本技术的一些实施例,示出了一种照片保存流程的界面变化图;
45.图15a至图15c根据本技术的一些实施例,示出了一种针对已存储视频生成照片过程的界面变化图。
具体实施方式
46.本技术的说明性实施例包括但不限于一种拍摄方法、介质、程序产品和电子设备。
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
48.用户在拍摄视频,或者拍摄照片的过程中,可能想要拍摄到一些精彩瞬间。例如用户在运动会现场拍摄运动员竞技场景时,可能会出现一些精彩的运动瞬间,即精彩瞬间。此时用户可能想通过电子设备及时拍摄到这些画面。由于现有技术中拍摄照片需要用户手动操作,因此存在延误的情况。
49.在另一些场景中,用户可能在拍摄家庭视频,由于拍摄过程中人物的表情和动作往往难以预测。拍摄过程中,可能会出现人物的表情特别好,具有艺术感的画面,用户往往想要通过拍摄照片的形式记录这种精彩瞬间。若用户没有及时手动拍摄,可能会错过这些精彩的画面。
50.示例性的,参见图1a,在拍摄人物奔跑视频的过程中,用户想要拍摄人物奔跑的预期姿势的照片时,用户可以点击图1a示出的视频拍摄界面中提供的抓拍控件203,触发电子设备对当前视频帧进行处理以生成照片。
51.然而,由于用户手动操作抓拍控件203的时机可能出现误差而错过抓拍时机,或者用户手动操作时引起电子设备10晃动导致抓拍的照片出现模糊,使得抓拍的照片不符合用户预期。例如,用户期望拍摄图1a示出人物的一只手臂上举另一只手臂向后伸展的照片,但是由于用户点击抓拍控件203时间较晚,导致手动生成图1b示出的人物一只手臂上举另一只手臂下垂的照片,不符合用户预期。鉴于此,本技术实施例提供一种拍摄方法,电子设备在录制视频或者拍照片的过程中,可以通过自动分析视频流或者预览画面的内容和变化,以拍摄得到多张高质量、符合用户预期的照片,并将多张照片批量回传至图库应用中,向用户展示这些照片。
52.需要理解的是,不同用户对精彩瞬间的理解不同,评价标准也不同,本技术实施例对此不做限定。同时,本技术实施例的解决方案是通过算法自动分析视频帧,从而确定评分高的视频帧并生成照片。因此本技术实施例提供的方案适用于用户拍摄的任何场景,不局限于动态画面。例如,用户对一个静止的物体录制视频时,也可以适用本技术实施例提供的方案。
53.图2根据本技术的一些实施例,示出了一种拍摄方法的网络架构图。参考图2,其中包括多个电子设备,如电子设备10、电子设备20和电子设备30等。该多个电子设备相互可以通过无线连接或有线连接通信,本技术实施例对此不做具体限定。
54.具体地,上述多个电子设备中每个电子设备可以是台式机、便携式电脑、掌上电脑、手机、平板电脑等,本技术实施例对此不作限定。例如,图2中以电子设备10为手机,电子设备30为平板电脑,电子设备30为便携式电脑为例示出。
55.在一些实施例中,上述多个电子设备中的任意电子设备可以登录预先注册的用户账号,来与其它电子设备通信。作为一种示例,上述多个电子设备登录的用户账号相同,即该多个电子设备可以为同一用户的不同设备。其中,上述用户账户为软件系统账户或者相机应用/图库应用等应用的账户。
56.在一种可能的应用场景中,图2示出的多个电子设备(如手机10)均可以执行本技术的拍摄方法,在录制视频的过程中自动生成多张照片。
57.在一种可能的多设备协同场景中,图2示出的多个电子设备中的一些电子设备可以调用其他电子设备的相机,协同执行本技术的拍摄方法。例如,手机10可以调用平板电脑20的摄像头录制视频的同时获取得到多张照片。
58.在另一种可能的多设备协同场景中,图2示出的多个电子设备中的一个电子设备保存录制视频过程中生成的多张照片之后,该电子设备可以协同其他电子设备同步录制的视频或照片。例如,在手机10和平板电脑20登录同一用户账户的情况下,手机10在本机中存储或删除照片和视频等文件时,手机10可以触发平板电脑20同步存储或删除相应的照片和视频等文件。
59.以下实施例中,主要以电子设备10为拍摄方法的执行主体,且电子设备10为手机为例,对本技术实施例提供的拍摄方法的具体方案进行描述。
60.参照图3所示,为一种手机的结构示意图。手机10可以包括处理器110,外部存储器接口120,内部存储器121,传感器模块180,按键190,摄像头193,显示屏194等。其中,传感器模块180可以包括压力传感器180a,触摸传感器180k等。
61.可以理解的是,本技术实施例示意的结构并不构成对手机10的具体限定。在本技术另一些实施例中,手机10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
62.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本技术实施例中的拍摄方法。
63.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。作为示例,该存储器中可以缓存录制视频过程中生成的照片的存储地址等。
64.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展手机10的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
65.作为示例,手机10可以连接外部存储器,该外部存储器可以存储手机拍摄的视频和视频拍摄过程中生成的照片。例如,该外部存储器可以为另一个手机中的存储器。
66.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机10的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如视频拍摄功能,视频播放功能等)。
67.此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,
ufs)等。
68.作为示例,内部存储器可以存储用于实现本技术实施例提供的拍摄方法的计算机程序。
69.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。手机10根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,手机10根据压力传感器180a检测触摸操作强度。手机10也可以根据压力传感器180a的检测信号计算触摸的位置。
70.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于手机10的表面,与显示屏194所处的位置不同。
71.作为示例,手机通过压力传感器和触摸传感器可以检测到用户作用在显示屏上的操作,例如,用户点击控件的操作等。
72.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机10可以接收按键输入,产生与手机10的用户设置以及功能控制有关的键信号输入。
73.手机10通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
74.显示屏194用于显示图像,视频等。在一些实施例中,手机10可以包括1个或m个显示屏194,m为大于1的正整数。
75.摄像头193用于捕获静态图像或视频。在一些实施例中,手机10可以包括1个或p个摄像头193,p为大于1的正整数。
76.本技术实施中,摄像头可以采集视频画面,gpu对摄像头采集的视频画面进行处理,显示屏显示gpu处理后的界面。显示屏显示的具体内容可以参照后面实施例中的描述。
77.本技术实施例并未特别限定一种拍摄方法的执行主体的具体结构,只要可以通过运行记录有本技术实施例的一种拍摄方法的代码,以根据本技术实施例提供的一种拍摄方法进行通信即可。例如,本技术实施例提供的一种拍摄方法的执行主体可以是手机10中能够调用程序并执行程序的功能模块,或者为应用于手机10中的处理装置,例如,芯片。
78.下面介绍手机10的软件系统。手机10的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的android系统为例,示例性说明手机10的软件结构。
79.图4a是本发明实施例的手机10的软件结构框图。
80.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(android runtime)和系统库,以及内核层。
81.应用程序层可以包括一系列应用程序包。
82.如图4a所示,应用程序包可以包括相机应用(camera app)401,图库应用(gallary app)402,日历,通话,地图,导航,wlan,蓝牙,音乐,视频等应用程序。
83.其中,图库应用401用于提供视频和照片拍摄功能,图库应用402用于提供视频和照片的存储和显示功能。
84.应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
85.如图4a所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器,以及相机框架(camerafwk)403、扩展框架404以及编码框架405等。
86.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
87.内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
88.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
89.电话管理器用于提供手机10的通信功能。例如通话状态的管理(包括接通,挂断等)。
90.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
91.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口(如弹窗)形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,手机振动,指示灯闪烁等。
92.相机框架403接收来自相机应用401的录像请求等请求,同时维护着录像请求等请求在内部流转的业务逻辑,并将请求的最终结果发送至相机应用401。
93.扩展框架404用于接收来自相机应用401的查询视频录制中生成的照片的存储地址的句柄信息的请求。
94.编码框架405用于对传输的视频数据流进行编码处理。
95.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。
96.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
97.应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
98.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),2d图形引擎(例如:sgl)等。
99.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。
100.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
101.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
102.2d图形引擎是2d绘图的绘图引擎。
103.内核层是硬件和软件之间的层。内核层至少包含显示驱动,相机驱动407(也可以称为摄像头驱动),音频驱动,传感器驱动。
104.此外,手机10的架构中还包括硬件抽象层(hardware abstraction layer,hal)。硬件抽象层是位于图4a示出的内核层与手机10的硬件之间的接口层,其目的在于将硬件抽象化。
105.进一步的,基于图4a示出的软件架构中的相机应用401,图库应用402、相机框架403、扩展框架404以及编码框架405等模块的交互,参照图4b所示,为本技术实施例提供的拍摄方法应用的结构框架。
106.图4b示出的相机系统架构包括:相机应用401、相机框架403、扩展框架404、编码框架405、相机硬件抽象单元(camerahal)406、相机驱动(cameradriver)407、相机硬件(camerahardware)408。其中,相机硬件抽象单元406位于手机10的架构的硬件抽象层中,相机硬件408位于手机10的架构的硬件层中。
107.相机应用401中包括录像模块(video module)4011和照片存储接口4012。
108.其中,录像模块4011用于发起录像请求。例如,用户对相机应用401提供的录像控件的点击操作对应的录像请求。
109.照片存储接口4012提供了访问本地存储的功能,例如,可以添加、修改或删除存储的数据项。例如,照片存储接口4012可以用于根据照片存储地址的句柄信息等读取照片并存储至图库应用402中。作为一种示例,照片存储接口4012可以为jpeg存储接口(jpegstorage)。
110.相机框架403中包括相机设备(cameradevice)4031、配置单元4032、相机供应(cameraprovider)4033。
111.其中,相机设备4031代表一个被打开的系统相机。
112.配置单元4032用于对视频数据流进行配置,如创建数据流和删除数据流等。示例性的,配置单元4032可以是配置流(configstream)。
113.相机供应4033用于通过原生相机hidl接口将请求转发给相机硬件抽象单元406。
114.具体地,相机设备4031、配置单元4032、相机供应4033用于协同将来自录像模块4011的录像请求转发至相机硬件抽象单元406。
115.扩展框架404中包括照片接口处理单元4041。示例性的,照片接口处理单元可以是jpeg接口处理单元(jpegpostprocess)。其中,照片接口处理单元4041用于提供扩展的硬件抽象层接口定义语言(hal interface definition language,hidl)接口,将经过算法优化的照片存储地址的句柄信息从相机硬件抽象单元406回传至相机应用相机应用401。需要强调的是,上述照片接口处理单元4041用于提供扩展hidl接口。
116.编码框架405中包括媒体记录器(mediarecorder)4051、媒体编码译码器
(mediacodec)4052、媒体合并器(mediamuxer)4053。
117.其中,媒体记录器4051用于开始录制视频。
118.媒体编码译码器4052可以获取底层媒体编码/解码库。
119.媒体合并器4053用于合成录制的音频或视频。
120.具体地,编码框架405使用媒体记录器4051、媒体编码译码器4052、媒体合并器4053将录像流编码为mp4格式的视频,下文中为了方便描述有时直接称为mp4。可以理解的是,上述录像流编码采用视频编码格式可以为hevc(high efficiency video coding)编码标准、h.264/avc编码标准、h.266、vp8、vp9或av1等,本技术对比不做限定。
121.相机硬件抽象单元406中包括视频流水线(video pipeline)4061、精彩帧决策引擎4062、帧缓存(frame buffer)4063、照片流水线(photo pipeline)4064、jpeg编码单元4065、照片缓存4066。
122.其中,视频流水线4061用于提供视频录制功能,产生录像流(即录像过程中的视频流)。其中,pipeline作为提供单一特定功能的所有资源的集合,维护着所有硬件资源以及数据的流转,负责整条pipeline的软硬件资源的维护以及业务逻辑的处理。即,视频流水线4061是提供视频录制功能的所有资源的集合。
123.精彩帧决策引擎4062用于识别出视频流水线4061产生的录像流中评分较高的视频帧。
124.帧缓存4063用于临时存储视频流水线4061生成的视频流中的视频帧。
125.照片流水线4064用于对帧缓存4063中缓存的视频帧进行算法优化。其中,照片流水线4064为提供算法优化的功能的所有资源的集合。其中,上述算法优化可以为拍照处理算法,例如包括高光动态渲染(high dynamic range,hdr)、单帧降噪(single frame noise reduction,mfnr)、多帧降噪(multi frame noise reduction,sfnr)、细节增强(detail enhancement,de)等处理,但不限于此。
126.jpeg编码单元4065用于对照片流水线4064产生的视频帧进行jpeg编码。具体的,编码格式为(joint photographic experts group,jpeg)格式,编码得到的照片对应的图像文件后缀名为.jpg或.jpeg。
127.照片缓存4066用于缓存jpeg编码单元4065编码得到的jpeg格式的照片,下文中为了方便描述有时直接称为jpeg、jpeg照片或jpeg图像。
128.相机驱动407用于驱动相机硬件408中的单元工作。
129.相机硬件408是相机系统的物理实现部分,该部分包括镜头(lens)4081、感光器(sensor)4082、图像信号处理(image signal processing,isp)4083三个最重要的模块,还有对焦马达、闪光灯、滤光片、光圈等辅助模块。镜头的作用是汇聚光线,利用光的折射性把射入的光线汇聚到感光器上。感光器的作用是负责光电转换,通过内部感光元件将接收到的光信号转换为电子信号进而通过数电转换模块转为数字信号,并最后传给isp。isp负责对数字图像进行一些算法处理,如白平衡、降噪、去马赛克等。
130.接下来,基于图4b示出的架构图,参照图5a所示,示出了本技术实施例提供的拍摄方法的具体流程,包括如下步骤:
131.s501:手机10启动录像。
132.手机10可以自动或者响应于用户的操作启动录像。另外,手机10可以通过相机应
用401调用相机硬件408启动录像,也可以通过第三方应用调用相机硬件408启动录像。
133.在一些实施例中,用户可以手动打开手机10的相机应用401,并通过相机应用401启动录像。示例性的,参照图10a示出了手机10的桌面主界面,该桌面主界面中包括相机相应401的图标。用户对图10a示出的相机应用401的图标进行点击操作之后,手机10显示如图10b所示的相机应用401的相机主界面,用户对该相机主界面中录像模式下的拍摄控件303的点击操作,可以触发手机10开始录像。
134.在另一些实施例中,在一些语音交互场景或手势交互场景中,用户可以通过预设的语音指令(如“打开相机开始录像”语音)或者手势指令(如对手机10连续5秒的晃动手势),触发手机10打开相机应用401并启动录像。
135.在另一些实施例中,用户可以使用社交应用等第三方软件调用手机10的摄像头启动录像。
136.根据本技术的一些实施例,在用户点击操作图10b示出的拍摄控件303、说出预设语音指令、或做出录像手势指令之后,参照图4b,相机应用401可以通过录像模块4011向相机框架403发送录像请求。相机框架403将录像请求发送给相机硬件抽象单元406。相机硬件抽象单元406通过视频流水线4061启动录像,生成视频流,并将视频流中的视频帧缓存到帧缓存4063。作为一种示例,视频帧可以按照先进先出的顺序缓存到帧缓存4063中。帧缓存4063的容量可以是固定的,也可以动态分配。在一些实施例中,帧缓存4063的容量可以为30帧。
137.此外,在一些实施例中,视频录制过程中生成的jpeg照片可以通过录像标识与录制的视频建立关联关系。
138.作为一种示例,手机10启动录像时,可以生成一个通用唯一识别码(universally unique identifier,uuid),后续将该uuid保存在对应的mp4文件中。
139.在一些实施例中,在用户点击操作图10b示出的拍摄控件303时,相机应用401可以生成一个uuid,并在录像模块4011向相机框架403发送的录像请求中增加扩展标签(tag),用于携带该uuid给相机硬件抽象单元406。
140.另外,在其他一些实施例中,手机10可以调用其他设备中的相机硬件(如摄像头)录像,例如该其他设备为另一个手机或者独立的摄像头模组等。
141.s502:手机10对视频帧评分,并对评分最高的多个精彩帧进行算法优化。
142.可以理解的是,本技术中将评分较高的视频帧称为精彩帧,但在其他实施例中,评分较高的视频帧还可以称为最优帧、精彩瞬间帧,精彩时刻帧等,本技术实施例对比不做限定。
143.在一些实施例中,参照图4b,针对帧缓存4063中的视频帧,精彩帧决策引擎4062可以对视频帧进行评分,并判断出评分大于设定的阈值的视频帧,作为精彩帧。
144.作为一种示例,上述阈值可以为预先设定的,也可以随着精彩帧数量的增多而调整,设定流程将在下文中的s5021至s5032的实施例中描述,此处不做限定。另外,设定阈值的具体取值可以根据需求设定,本技术不做具体限定。
145.作为一种示例,精彩帧决策引擎4062是工作在tiny数据上的,需要额外考虑tiny流与零秒延迟(zero shutter lag,zsl)序列的对齐问题,因此帧缓存4063中保存的是tiny流与零秒延迟序列对齐的原始(raw)视频帧数据。
146.在一些实施例中,精彩帧决策引擎4062可以对每帧视频帧均执行精彩帧识别。
147.在另一些实施例中,精彩帧决策引擎4062还可以按照设定的帧间隔或者时间间隔对视频流中的部分视频帧进行评分,以识别精彩帧。例如,精彩帧决策引擎4062可以按照10秒的时间间隔执行一次精彩帧识别,或者,可以按照10帧的帧间隔执行一次精彩帧识别,如识别出当前时刻的视频帧是否为精彩帧。
148.具体地,上述识别精彩帧的流程将在下文中的s5021至s5032的实施例中详细描述,此处不再赘述。
149.s503:手机10对算法优化后的精彩帧,进行jpeg编码,得到携带评分的jpeg照片。
150.在一些实施例中,照片流水线4064对的评分较高,如评分大于设定阈值的精彩帧进行算法优化,并将算法优化后的数据送入jpeg编码单元4065编码得到jpeg照片,即图像文件(exif)。
151.在一些实施例中,参照图4b,在jpeg编码单元4065进行jpeg编码时,可以将精彩帧的评分保存到对应的jpeg的exif信息中,使得jpeg照片携带评分。
152.此外,在一些实施例中,手机10可以将录制的视频的uuid分别写入每个自动生成的jpeg照片的exif信息中,以实现后续录制的视频和对应的jpeg照片的关联查看。
153.具体地,上述选择视频帧进行算法优化以生成照片的方法将在下文中详细描述,此处不再赘述。
154.s504:手机10缓存n张jpeg照片。
155.作为一种示例,上述n为预设数值,如5,但不限定。可以理解的是,n张jpeg照片为评分最高的n个精彩帧生成的照片。
156.在一些实施例中,jpeg编码单元4065将n张jpeg照片缓存到照片缓存4066中。照片缓存4065的容量可以是固定的,也可以动态分配。在一些实施例中,帧缓存4063的容量可以为n张照片。
157.可以理解的是,在照片缓存4066中缓存的jpeg照片数量达到预设数量n之后,随着视频的录制,精彩帧决策引擎4062识别出最新的精彩帧并经过jpeg编码单元4065生成最新的jpeg照片时,会使用评分较高的jpeg照片替换照片缓存4066中的评分最低的jpeg照片,以使得照片缓存4066中最终缓存的是评分最高的n张jpeg照片。
158.s505:手机10结束录像,统一回传n张jpeg照片到图库应用402中。
159.本技术中,手机10可以自动结束录像,或者响应于用户的操作结束录像。另外,手机10可以通过相机应用401控制相机硬件408结束录像,也可以通过第三方应用控制相机硬件408结束录像。
160.在一些实施例中,录像结束后,用户可以手动触发将n张jpeg照片存储在图库应用402(即图4b示出的jpeg照片)。在另一些实施例中,录像结束后,手机10可以自动通过照片存储接口4012按照n张jpeg照片的存储地址的句柄信息读取n张jpeg照片以存储在图库应用402。
161.在一些实施例中,用户可以手动控制相机应用401结束录像。示例性的,参照图10d所示的相机应用401的视频录制界面,用户对该视频录制界面中的结束控件202的点击操作,可以触发手机10结束录像。
162.在另一些实施例中,在一些语音交互场景或手势交互场景中,用户可以通过另一
些预设的语音指令(如“结束录像”语音)或者手势指令(如对手机10连续5秒的晃动手势),触发手机10通过相机应用401结束录像。
163.在另一些实施例中,用户使用社交应用等第三方软件调用手机10的摄像头启动录像时,可以在第三方软件中触发结束录像。
164.根据本技术的一些实施例,作为一种示例,在用户点击操作图10d示出的结束控件202、说出用于结束录像的预设语音指令、或做出用于结束录像的手势指令之后,相机应用401可以通过录像模块4011向相机框架403发送结束录像请求。相机框架403将结束录像请求发送给相机硬件抽象单元406,相机硬件抽象单元406停止录像。
165.在一些实施例中,参照图4b,扩展框架404中的照片接口处理单元4041统一将n张jpeg照片的存储地址的句柄信息从相机硬件抽象单元406回传给相机应用401,并通过照片存储接口4012按照n张jpeg照片的存储地址的句柄信息读取n张jpeg照片并存储在图库应用402中,实现批量回传。
166.可以理解的是,目前android原生相机框架中不支持相机硬件抽象单元将照片批量回传给应用。即图4b示出的框架中的原生系统hidl接口不支持从相机硬件抽象单元406批量回传n张jpeg照片到图库应用402中。
167.而本技术实施例中,图4b示出的框架中的照片接口处理单元4041提供了扩展hidl接口,即新增了从硬件抽象层到应用程序层(hal

app)的照片批量回传通路,支持从相机硬件抽象单元406批量回传多张照片到图库应用402。
168.s506:手机10录像结束,对录像流编码得到mp4视频,并将mp4视频存储至图库应用402中。
169.在一些实施例中,编码框架405对相机硬件抽象单元406中的视频流水线4061生成的录像流进行视频编码得到mp4格式的视频,并在录像结束后将mp4格式的视频(即图4b示出的mp4视频)存储在图库应用402中。
170.在其他一些实施例中,本技术提供的照片的编码格式不限于jpeg,视频的格式也不限于上述mp4格式,还可以为其他格式。
171.作为一种示例,手机10可以将uuid写入mp4视频的扩展信息中。在一些实施例中,编码框架405对录像流编码时,可以将uuid写入对应的mp4文件的扩展信息中,以关联自动生成的n张jpeg照片。从而,图库应用401可以解析n张jpeg照片中的exif信息得到uuid,并解析录制的视频的扩展信息中的uuid,实现录制的视频和自动生成的照片的关联关系,以方便用户关联查看。
172.类似的,在其他一些实施例中,针对手动拍照的场景,手机10也可以通过uuid实现录制的视频与手动拍照的照片的关联。
173.进一步的,在一些实施例中,精彩帧决策引擎4062可以基于多层级的决策信息识别精彩帧。具体地,精彩帧识别过程中可以对视频录制过程中的视频帧进行语义分类处理,处理过程分为4个level(层),即lv0、lv1、lv2、lv3。其中,4层分别由语义层面不断细化,提供由粗到细、由高度抽象到具象的不同粒度决策信息。
174.参照图5b,对上述实施例中涉及精彩帧识别的过程进行介绍。如图5b所示,上述s502具体地包括以下步骤s5021-s5032,执行主体为手机10中的精彩帧决策引擎4062。
175.s5021:针对录像过程中的视频流,基于第一预设间隔获取风格信息和场景信息,
风格信息用于表征视频的主题和氛围,该场景信息将视频分为多个视频片段,每个视频片段所属的类别不同。
176.其中,风格信息和场景信息为分别为lv0和lv1的决策信息。
177.上述风格信息以及场景信息可以是基于第一预设间隔一起获得的。可以理解,本技术对第一预设间隔不作具体限定。比如,每间隔10帧获取一次场景信息以及风格信息。其中,场景信息对应的粒度可以比风格信息对应的粒度更细。
178.作为一种示例,可以通过lv0识别出整段视频的风格得到风格信息。具体的,上述lv0用于给出整段视频的风格和氛围,例如,童趣、人物、春节、圣诞节、生日、婚礼、毕业、美食、艺术、旅行、夜景、运动、大自然、氛围(轻松欢快/小伤感/动感节奏/休闲),但不限于此。
179.作为一种示例,上述lv1用于语义层面场景识别,将视频分成若干片段,并给出每个片段的类别,得到场景信息,例如:山脉、人像等。
180.以下表1给出了lv0和lv1的定义的举例。
181.表1:
[0182][0183][0184]
例如,假设精彩帧决策引擎4062通过识别视频中的内容为生日蛋糕,可得知视频的场景为生日。
[0185]
又例如,假设精彩帧决策引擎4062通过识别视频中的内容为喜字、婚纱、头纱、中式婚服、婚车等婚礼元素,可得知视频的场景为婚礼。
[0186]
应理解,上述关于lv0和lv1提供的风格信息和场景信息的举例只是示例性描述,本技术并不限于此。
[0187]
上述获取风格信息和场景信息的过程可以是在录制过程中实时进行的。另外,在录制完成后,也可以通过统计获取的风格信息和场景信息,生成唯一的风格信息和场景信息,以表征整个视频的风格和氛围。其中,视频整体的主题可由投票决定。可以理解,整个视
频的风格和氛围对各个视频片段也适用,比如,如果整个视频的主题是生日,那么整个视频下的各个视频片段所对应的主题也是关于生日的,当然各个视频片段的具体场景类别可以不同。
[0188]
s5022:针对多个视频片段,基于第二预设间隔获取场景变化信息。
[0189]
场景变化信息对应的粒度比风格信息和场景信息对应的粒度更细。通过场景变化信息,可以得知视频的场景是否发生变化。场景是否发生变化也可以表述为是否发生转场。场景变化信息可以辅助精彩帧决策引擎4062进行最终精彩照片的精选。
[0190]
精彩帧决策引擎4062可以基于第二预设间隔获得。可以理解,本技术对第二预设间隔不作具体限定。比如,每间隔10帧给出场景变化信息。又比如,每间隔3帧给出场景变化信息。
[0191]
具体来说,精彩帧决策引擎4062通过识别多个视频片段中的内容,获得场景变化信息,可以获知视频片段是否发生场景变化,以及发生场景变化的帧号。
[0192]
示例性地,可以通过lv2判断是否发生转场,得到场景变化信息。即场景变化信息为lv2的决策信息。
[0193]
具体地,场景变化信息可以给出视频转场位置(比如,发生转场的帧号),以及转场类型(比如,人物主角切换、快速运镜、场景类别变化、其他情况引起的图像内容变化),以防止相似场景推荐数量过多。场景变化信息包括但不限于以下变化中的一种或多种:人物主体(或主角)变化,图像内容构成发生较大变化,语义层面场景发生变化,以及图像亮度或颜色发生变化。
[0194]
其中,人物主体变化:当人物主体发生改变时,视为一次转场。人物主体可以定义图像中占比最大的人物。例如,若第t-1帧图像的人物主体为a,第t帧图像的人物主体增加了b,但是主体仍为a,则不算一次转场。又例如,若第t-1帧图像的人物主体为a,第t帧图像的人物主体变成b,则算一次转场。
[0195]
图像内容构成发生较大变化视为一次转场。例如,在相机基本稳定时,如果录制画面中有较多物体移动,导致画面内容发送较大变化(如观看赛车比赛),则视为一次转场。快速运镜(e.g.快速从a摇到b)。又例如,在相机缓慢平稳运镜时,此时画面内容一般不会有明显的转场分界,但是转场检测帧率为2fps,比如第t帧图像与第t-16帧图像内容构成差别较大时,视为一次转场。又例如,在相机快速运镜期间,画面模糊严重,帧与帧之间的内容变化较大,但是只能将整个运镜过程视为一次转场。
[0196]
图像亮度或颜色发生变化视为一次转场。比如,演唱会中,画面内容变化较小,但是氛围灯的颜色和亮度发生了变化,则视为一次转场。
[0197]
应理解,上述关于lv2给出的场景变化信息的举例只是示例性描述,本技术并不限于此。
[0198]
s5023:针对每个视频片段,基于第三预设间隔获取多维预设信息。其中,多维预设信息表示视频帧是否具有预设的多维度信息。其中,多维预设信息为对视频帧评分的多个维度的信息。
[0199]
需要说明的是,包含上述多维预设信息中的信息的视频帧通常为高质量或者包含某些人物动作或表情的符合用户预期的视频帧。
[0200]
可以理解,本技术对第三预设间隔不作具体限定。比如,基于第三预设间隔获取多
维预设信息是指:每间隔3帧获取一次多维预设信息。
[0201]
示例性地,假设上述多维预设信息所对应的层级为lv3,lv3的信息的粒度相比于lv2而言会更细。lv3给出的多维预设信息用于确定多维预设信息。即多维预设信息为lv3的决策信息。
[0202]
如下表2所示,为多维预设信息包括的不同类别和不同维度的信息的示例,这些维度为预设的多维度。
[0203]
表2:
[0204][0205][0206]
应理解,上述关于lv3给出的多维预设信息的举例只是示例性描述,本技术并不限于此。
[0207]
上述s5021-s5023的过程可以理解为:随着视频的拍摄,精彩帧决策引擎4062会基于固定间隔(该间隔可以预设,具体实现时,预设间隔的取值可取决于硬件资源)给出不同层级的决策信息,以用于决策出进入算法优化以生成jpeg照片的精彩帧。
[0208]
示例性地,参照图5c所示,将决策信息按照粒度由粗到细依次划分为lv0、lv1、lv2和lv3。lv0给出了整个视频的整体氛围,即概况。lv1在lv0的基础上将视频划分为3个类别(即分类1、分类2和分类3)的视频片段得到场景信息,比如,所属类别分别为肖像(portrait)、风景(landscape)以及建筑物(building)这三种类别。lv2在lv1的基础上获得场景发生变化的信息(比如发生转场的帧号),具体包括3次转场的场景变化信息。lv3在lv2的基础上,获得以下精彩帧:精彩帧1(在第一次转场和第二次转场之间)、精彩帧2(在第一次转场和第二次转场之间)、精彩帧3(在第二次转场和第三次转场之间),精彩帧4(第三次转场以后)。可以看到,第一次转场和第二次转场之间发生了两次可能出现多维预设信息中设定的表情、动作等的画面。当然,对于同一场景下的精彩帧1与精彩帧2,为避免相似场景下照片推荐数量过多,在决策时可比较精彩帧1与精彩帧2的评分,保留评分较高的精彩帧,
进入后续算法优化以生成jpeg照片。
[0209]
视频帧决策引擎4062基于上述不同层级的决策信息,按照如下方式决策进入算法优化(即拍照算法)的视频帧。
[0210]
s5024:获取具有多维预设信息的关键帧,并判断关键帧的评分是否大于第一阈值,以识别精彩帧。如果是则将关键帧作为精彩帧进入s5025;如果否,则进入s5026。
[0211]
在一些实施例中,上述多维预设信息相关的多个维度包括但不限于视频帧的基础画质、图像评价、人物相关特征等维度。可以理解的是,为增强算法鲁棒性和通用性,分析的维度应尽可能精确。进而,对每个视频帧在设定的每个维度上打分,为每个维度的分数设置权重,进而对每张视频帧在各个维度上的分数进行加权,得到每张视频帧最终的评分。再根据最终的评分判断是否为精彩帧。
[0212]
可以理解的是,基于上述不同层级的决策信息,有助于更精确的识别包含上述多维预设信息指示的画面所在的视频帧,从而获得高质量、符合用户预期的照片。
[0213]
第一阈值是可以配置的。作为一种示例,第一阈值表示多维中的动作被探测,即第一阈值用于分离出预定义的动作,如表2示出的奔跑、跳跃等动作。
[0214]
s5025:对关键帧进行算法优化。
[0215]
即,在关键帧的评分大于第一阈值时,对关键帧进行算法优化。
[0216]
可以理解的是,评分大于第一阈值的关键帧就是精彩帧。
[0217]
对于关键帧的精彩时刻评分小于或等于第一阈值的情形,还可以判断其与第二阈值的关系。引入第二阈值的作用在于至少生成一张保底照片。
[0218]
s5026:判断关键帧的评分是否大于第二阈值。如果是,则进进入s5027;如果否则结束。
[0219]
即在关键帧的评分小于或等于第一阈值时,判断关键帧的评分是否大于第二阈值。
[0220]
作为一种示例,在录制开始时,可以初始化第二阈值。第二阈值的初始阈值可以设置为0,目的在于保证至少可以生成一张照片。
[0221]
s5027:将第二阈值更新为关键帧的评分。这样做的目的是使得第二阈值始终保持最新最高值。
[0222]
可选地,精彩帧决策引擎4062还可以基于场景变化信息,判断是否触发对视频帧的算法优化,执行下述s5028。
[0223]
s5028:基于当前帧的场景变化信息,判断当前帧是否发生转场。
[0224]
s5029:如果发生转场,判断本次转场距离上一次转场的时间是否大于时间阈值。时间阈值可以表述为最短转场时间限制阈值,可以用于避免频繁转场导致的录像过程中生成照片过于频繁。
[0225]
s5030:在本次转场距离上一次转场的时间大于时间阈值时,判断本次转场是能够触发对视频帧进行算法优化的转场。如果是则进入s5031,如果否则结束。
[0226]
s5031:在发生转场时,判断当前转场片段中是否存在关键帧,以及第二阈值是否小于第一阈值。如果是,则进入s5031;如果否,则结束。
[0227]
作为一种示例,如果第二阈值小于第一阈值,则说明该转场片段下还未触发过视频帧的算法优化,并且,当前转场片段中存在关键帧,那么此时,可以将这些关键帧中的评
分较高的关键帧作为精彩帧,进入算法优化,即执行步骤s5025。这样做的目的在于,使得该转场下至少能够输出一张照片。
[0228]
s5032:在录像结束后,基于评分由大到小的次序,输出n张精彩帧。
[0229]
可以理解的是,在录制结束后,n张jpeg照片为按照评分由大到小的次序确定的,以向用户推荐高质量或符合用户预期的照片,极大提升用户体验。
[0230]
基于上述流程,可以更精确的识别精彩时刻,从而获得图像质量较高的精彩照片。
[0231]
进一步的,在其他一些实施例中,手机10还可以通过精彩帧决策引擎4062识别出已经存储的视频中的精彩帧,并对精彩帧进行算法优化以生成照片,来记录该视频中的精彩瞬间。相当于后期自动生成视频中的照片,进一步方便用户记录视频中的一些精彩瞬间。其中,对于已经存储的视频识别精彩帧并生成照片的方法可以参照上述图5a和图5b中的实施例,此处不再赘述。
[0232]
另外,在其他一些实施例中,在手机10拍摄预览,例如显示图10b示出的拍摄界面时,也可以通过精彩帧决策引擎4062识别出预览的视频帧中的精彩帧,并对精彩帧进行算法优化以生成照片。从而,记录精彩瞬间,而不录制视频。其中,对于已经存储的视频识别精彩帧并生成照片的方法可以参照上述图5a和图5b中的实施例,此处不再赘述。
[0233]
接下来,基于图4b示出的架构图,参照图6的拍摄方法的架构图,对本技术实施例提供的拍摄方法中扩展hdil接口的相关内容进行描述。相比于图4b,图6未示出部分模块,并增加了共享内存409。
[0234]
其中,相机框架403使用andriod标准录像hidl接口(即原生camera系统hidl接口)与相机硬件抽象单元406交互。具体地,相机应用401指令相机框架403开始录像之后,相机框架403通过andriod标准录像hidl接口指令相机硬件抽象单元406中的视频流水线4061开始录像。
[0235]
另外,基于扩展框架404中的照片接口处理单元(jpegpostprocess)4041,相机应用401中设置有照片接口处理客户端(jpegpostprocessclient)4041a,相机硬件抽象单元406中设置有照片接口处理服务端(jpegpostprocessserver)4041b。具体地,照片接口处理客户端4041a与照片接口处理服务端4041b之间形成了返回批量的jpeg照片的句柄信息的通路。
[0236]
共享内存409用于存储视频录制中生成的n张jpeg照片,以供相机应用401从中读取n张jpeg照片。
[0237]
接下来,基于图6示出的架构图,参照图7示出的方法流程,对本技术实施例提供的拍摄方法中通过扩展hdil接口回传自动生成的照片的句柄信息的过程进行介绍,执行主体为手机10。图7示出的方法包括以下步骤:
[0238]
s701:手机10开始录像。
[0239]
在一些实施例中,相机应用401并通过录像模块相机应用4011指令相机框架403开始录像,并通过相机框架403基于andriod标准录像hidl接口指令相机硬件抽象单元406中的视频流水线单元4061启动录像。对s701的描述以参照上文中对s501的相关描述。
[0240]
s702:手机10识别精彩帧。
[0241]
对s702的描述以参照上文中对s502的相关描述。
[0242]
s703:手机10从识别出的精彩帧中选择n张精彩帧进行算法优化,并进行jpeg编
码,得到n张jpeg照片。
[0243]
在一些实施例中,s702和s703之间虽然未示出帧缓存4063存储识别出的评分较高的视频帧以及jpeg编码等,但是实际实施过程中仍存在这些过程。
[0244]
s704:手机10将n张jpeg照片写入共享内存409中。
[0245]
在一些实施例中,相机应用401通过照片处理接口服务端4041b将照片流水线4064生成的n张jpeg照片(如图6示出的照片a1-照片a5)写入共享内存409中。
[0246]
可以理解的是,在n张jpeg照片写入共享内存409中时,照片处理接口服务端4041b可以获取得到这n张jpeg照片写入共享内存409的句柄信息,即n张jpeg照片的存储地址的句柄信息。
[0247]
s705:在录像结束后,手机10基于扩展hidl接口从硬件抽象层向应用程序层回传n张jpeg照片的句柄信息。
[0248]
在一些实施例中,相机硬件抽象单元406通过照片接口处理服务端4041b向照片接口处理客户端4041a批量返回自动生成的n张jpeg照片的句柄信息。
[0249]
s706:手机10按照n张jpeg照片的句柄信息读取n张jpeg照片并保存到图库应用402中。
[0250]
在一些实施例中,相机应用401通过照片接口处理客户端4041a按照n张jpeg照片的句柄信息,从共享内存409中读取n张jpeg照片。
[0251]
s707:手机10将视频流水线4061生成的录像流处理得到视频成片的mp4。
[0252]
在一些实施例中,s707虽然未示出录像流编码过程等,但是实际实施过程中仍存在这些过程。
[0253]
可以理解的是,上述图7示出的s701-s707的执行顺序包括但不限上述示例,还可以为其他执行顺序,此处不做限定。
[0254]
进一步的,基于上述图4b和图6示出的架构图,图8a为本技术实施例提供的一种拍摄方法的流程示意图,该方法的执行主体为图4b和6示出的结构图中的各个部件。具体的,图8a示出的方法包括:
[0255]
s801:相机应用401中的录像模块相机应用4011指令相机框架403开始录像。
[0256]
其中,录像模块4011可以接收到用户对下文中的图10a示出的手机10处于拍摄模式以及智慧多拍模式下用户对拍摄控件302的点击操作之后,开始执行步骤s801,即开始录像。作为一种示例,录像模块4011可以向相机框架403发起录像请求,此处不做具体描述。
[0257]
s802:相机框架403指令相机硬件抽象单元406启动视频流水线4061开始录像。
[0258]
s803:相机硬件抽象单元406中的视频流水线4061指令精彩帧决策引擎4062实时分析视频帧。
[0259]
s804:相机硬件抽象单元406中的精彩帧决策引擎4062识别精彩帧。
[0260]
其中,识别精彩帧的过程可以参照上述实施例中的相关内容,此处不赘述。
[0261]
s805:相机硬件抽象单元406中的精彩帧决策引擎4062指令照片流水线4064选择精彩帧进行算法优化。
[0262]
s806:相机硬件抽象单元406中的照片流水线4064生成n张jpeg照片,该n张jpeg照片为对选择出的精彩帧进行算法优化得到的。
[0263]
s807:相机硬件抽象单元406中的照片流水线4064通过照片接口处理服务端4041b
将n张jpeg照片存储至共享内存409中。
[0264]
s808:相机应用401中的录像模块4011指示相机框架403结束录像。
[0265]
其中,录像模块4011可以接收到用户对上文中的图10d示出的手机10处于拍摄模式且智慧多拍模式下用户对结束控件202的点击操作之后,开始执行s808,即结束录像。
[0266]
s809:相机应用401中的录像模块4011指令相机硬件抽象单元406中的视频流水线4061停止录像。
[0267]
s810:相机硬件抽象单元406将n张jpeg照片的句柄信息通过照片接口处理服务端4041b和照片接口处理客户端4041a上传至相机应用401中。
[0268]
可以理解的是,上述s810中相机硬件抽象单元406主动向相机应用401中上传录像中生成的n张jpeg照片的句柄信息。
[0269]
s811:相机应用401中的照片接口处理客户端4041a按照n张jpeg照片的句柄信息从共享内存409中读取n张jpeg照片。
[0270]
需要说明的是,上述s810与s811和s812这两个步骤为并列的步骤。
[0271]
可以理解的是,上述s811中相机硬件抽象单元406可以是在用户的触发下向相机应用401中上传n张jpeg照片的句柄信息。
[0272]
在一些实施例中,在相机应用401中的照片接口处理客户端4041a接收到n张jpeg照片的句柄信息之后,可以根据n张jpeg照片的数据从共享内存409中读取jpeg照片的文件,进而生成这些照片的缩略图并显示。
[0273]
s812:相机应用401中的照片接口处理客户端4041a将n张jpeg照片保存到图库应用402中。
[0274]
在一些实施例中,相机应用401中的照片存储接口4012调用照片接口处理客户端4041a,按照n张jpeg照片的句柄信息从共享内存409中读取n张jpeg照片,并将n张jpeg照片保存到图库应用402中。
[0275]
在一些实施例中,相机应用401可以自动将n张jpeg照片保存到图库应用402,在其他一些实施例中用户可以在图库应用402中手动触发保存n张jpeg照片。具体过程可以参见下文中的图14a-图14d示出的实施例。例如,上述实施例中手机10自动在所有相册中保存的照片a1-a5,或者用户对视频播放界面中的照片a1-a5的缩略图的操作触发保存照片a1-a5。
[0276]
可以理解,上述s801至s812的执行顺序只是一种示意,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
[0277]
接下来,参照图8b示出了手机10的另一种框架图,相机应用401中还包括手动抓拍模块(capture module)4013,用于在录像过程中手动触发生成照片。与图6示出的框架不同之处在于,图8示出的框架省略显示了录像中执行自动生成照片的一些单元模块,而增加显示了手动抓拍模块4013。
[0278]
基于图8b示出的架构图,参照图8c示出的方法流程,对本技术实施例提供的在拍摄方法中关联mp4视频和jpeg照片的过程进行介绍,执行主体为手机10。图8c示出的方法包括以下步骤流程:
[0279]
s801a:手机10启动录像,生成uuid。
[0280]
其中,对s801a的详细描述可以参照上文中对s501中的相关描述。
[0281]
s802a:手机10进行录像流编码写入uuid,以生成mp4视频。即,mp4视频中携带有
uuid。
[0282]
其中,对s801a的详细描述可以参照上文中对s506中的相关描述。
[0283]
s803a:在录像过程中,手机10启动手动拍照。
[0284]
在一些实施例中,相机模块401中的手动抓拍模块4013可以向相机框架403发送拍照请求,相机框架403向相机硬件抽象单元406中的照片流水线4064发送拍照请求。
[0285]
s804a:手机10进行拍照编码,将uuid写入jpeg照片的exif信息中。
[0286]
在一些实施例中,照片流水线4064对当前帧进行算法优化,通过jpeg编码单元4065进行编码并将uuid写入jpeg照片的exif信息中。
[0287]
s805a:手机10回传jpeg照片到图库应用402中。
[0288]
在一些实施例中,相机硬件抽象单元406可以通过相机原生系统的hdil接口将jpeg照片经过照片存储接口4012回传并存储中图库应用402中。
[0289]
s806a:手机10解析mp4视频和jpeg照片中的uuid,实现关联查看mp4视频和jpeg照片。
[0290]
具体地,图库应用402解析mp4视频和jpeg照片中的uuid,并显示关联的mp4视频和jpeg照片。
[0291]
进一步的,结合图8d对本技术提供的录像中手动拍照的方法进行描述,执行主体为手机10中的各个单元,包括如下步骤:
[0292]
s801b:录像模块4011指令编码框架405构造编码器,以开始录像。
[0293]
s802b:录像模块4011生成uuid。
[0294]
s803b:录像模块4011指令相机框架403启动录像并配流,并将uuid作为扩展信息传递。
[0295]
s804b:相机框架403指令相机硬件抽象单元406启动录像并配流,将uuid作为扩展信息传递。
[0296]
s805b:相机硬件抽象单元406向录像模块4011指示配流完成。
[0297]
s806b:相机硬件抽象单元406将实时视频帧送入编码框架405。
[0298]
s807b:编码框架405对视频帧编码并写入mp4文件。
[0299]
s808b:录像模块4011指令编码框架405启动编码器。
[0300]
s809b:录像模块4011指令编码框架405将uuid作为扩展信息写入mp4文件。
[0301]
s810b:在录像过程中,手动抓拍模块4013指令相机硬件抽象单元406启动拍照。
[0302]
在一些实施例中,针对当前帧,相机硬件抽象单元406通过照片流水线4064启动拍照。
[0303]
s811b:相机硬件抽象单元406指令jpeg编码单元4065对当前帧进行jpeg编码并将uuid写入jpeg文件的exif信息。
[0304]
s812b:相机硬件抽象单元406经过相机应用401中的照片存储接口4012回传jpeg照片。
[0305]
s813b:照片存储接口4012将jpeg照片保存到jpeg文件中,例如保存到共享内存409中。
[0306]
s814b:图库应用402解析mp4文件的扩展信息提取uuid。
[0307]
s815b:图库应用402解析jpeg文件的exif信息提取uuid。
[0308]
s816b:图库应用402根据uuid实现mp4视频和jpeg照片关联查看。
[0309]
接下来结合附图按照人机交互的角度对本技术实施例提供的拍摄方法进行介绍。需要说明,本技术实施例以下示出的界面示意图中的控件图标的大小、位置及样式仅用于举例,并不对本技术造成任何限定。
[0310]
在一些实施例中,手机10的相机应用可以默认开启称智慧多拍模式。而在另一些实施例中,在手机10的相机应用未开启智慧多拍模式的情况下,可以提示并引导用户开启智慧多拍拍模式,或者由用户自主在相机应用的设置中手动开启智慧多拍模式。
[0311]
需要说明的是,上述智慧多拍指的是:手机10在录像过程中自动生成多张照片,来记录精彩瞬间。而在其他实施例中,智慧多拍还可以为其他名称,如一拍多得,自动抓拍,精彩瞬间拍照等,但不影响智慧多拍功能的本质。
[0312]
可以理解的是,手机10开启智慧多拍模式,在录像的场景中,就会执行图5a和图5b等实施例中的方法,来记录精彩瞬间。反之,手机10关闭智慧多拍模式,在录像的场景中,就不会执行上述图5a和图5b等实施例中的方法,不会自动记录精彩瞬间。
[0313]
参照图9所示,为一种拍摄方法的流程图,该方法的执行主体为手机10。以下实施例中,为方便描述,将相机应用401称为相机应用,将图库应用402称为图库应用。该方法包括:
[0314]
s901:手机10基于用户打开相机应用的操作1,打开相机应用显示相机应用的拍照主界面。
[0315]
参照图10a示出了手机10的桌面主界面,包括相机相应的图标和图库应用的图标。用户对图10a示出的相应的图标401的点击操作(即操作1)之后,手机10显示如图10b所示的相机应用的拍照主界面,该相机主界面中包括智慧多拍模式控件301和录像模式控件302以及拍摄控件303等,且录像模式控件302处于选中状态,智慧多拍控件301设置智慧多拍模式处于选中状态(即开启智慧多拍模式)。
[0316]
在一些实施例中,手机10的相机应用可以默认开启智慧多拍模式。
[0317]
在另一些实施例中,在手机10的相机应用未开启智慧多拍模式的情况下,手机10可以提示并引导用户开启智慧多拍模式,或者由用户自主在相机应用的设置界面中手动开启智慧多拍模式。
[0318]
作为一种示例,在手机10开始拍摄视频之前,用户打开如图10c所示的相机应用的拍照主界面,该拍照主界面中的智慧多拍控件301设置智慧多拍模式处于未选中状态(即未开启智慧多拍模式)。此时,如果用户点击图10c示出智慧多拍控件301之后,手机10可以显示如图10b所示的拍照主界面,该拍照主界面中的智慧多拍模式控件301处于选中状态(即开启了智慧多拍模式),以提示用户当前已经开启智慧多拍模式。
[0319]
s902:手机10基于用户开启录像的操作2,启动录像并自动生成n张照片(如上文中的n张jpeg照片)。
[0320]
作为一种示例,用户对图10b示出的拍摄控件303点击(即操作2)之后,手机10可以显示如图10d示出的视频拍摄界面。图10d示出的视频拍摄界面与图1示出的视频拍摄界面的不同之处在于,图10d示出的视频拍摄界面增加显示了处于选中状态的智慧多拍模式控件304,以提示用户当前已经开启智慧多拍模式。那么,手机10后续在拍摄视频的过程中,可以识别出自动生成评分最高的n张照片,实现智慧多拍,无需手动抓拍。同时,手机10还支持
用户使用抓拍控件303手动触发手机10对当前帧进行处理并生成图像,实现手动抓拍。
[0321]
另外,图10d示出的视频拍摄界面可以包括一些功能控件,暂停/继续控件201、结束控件202和抓拍控件203。当然,实际应用中,还可以包括其他控件,例如,图10d中所示的缩放控件204。其中,结束控件202用于结束当前视频拍摄过程。暂停/继续控件201用于在视频拍摄暂停时显示拍摄图标,用户点击该拍摄图标继续当前视频拍摄过程。抓拍控件203用于在不暂停当前视频拍摄过程且不结束当前视频拍摄过程的情况下自动生成照片。
[0322]
在一些实施例中,在智慧多拍模式下,上述张数n为预先定义的(如n=5)。在其他一些实施例中,上述张数n还可以是用户在相机的设置菜单中自定义的,本技术实施例对此不做具体限定。
[0323]
s903:手机10在视频录制过程中,显示自动生成的照片的缩略图。
[0324]
可以理解的是,为了方便用户及时获知手动抓拍的照片是否符合用户预期,在手动抓拍过程中手机10可以及时向用户展示手动抓拍的照片。
[0325]
另外,在其他一些实施例中,手机10在视频录制过程中可以不显示自动生成的照片。
[0326]
参照图10e所示,在手机10拍摄视频过程中,在智慧多拍模式下自动生成一张照片之后,手机10可以在图10e显示的视频拍摄界面悬浮显示刚刚自动生成的照片a1的缩略图。
[0327]
s904:手机10基于用户对视频拍摄界面上的照片的缩略图的操作3,执行与操作3指示的动作。
[0328]
在一些实施例中,手机10在悬浮显示照片a1时,如图10f所示用户可以向右滑动操作照片a1的缩略图(操作3),以取消悬浮显示照片a1,继续进行当前拍摄以及后续生成照片,并保存该照片a1(即与操作3指示的动作)。
[0329]
另外,在一些实施例中,手机10在悬浮显示照片a1的缩略图时,如果用户对该照片a1不满意,那么如图10g所示用户可以向上滑动照片a1的缩略图(即操作3)来删除照片a1并取消显示照片a1的缩略图,后续手机10将不会保存该照片a1(即与操作3指示的动作)。
[0330]
可以理解的是,上述用户对照片a1的具体操作仅为一种示例,还可以为其他任意可实现的操作,本技术实施例对此不做具体限制。
[0331]
在一些实施例中,用户可以通过点击上述图10d-图10g中任意视频拍摄界面中的结束控件302,结束视频拍摄,手机10可以保存视频(如视频a),并保存拍摄过程中生成的预设数量的照片(如照片a1-a5这五张照片)。进而,若用户想要查看拍摄的视频a和生成的照片,用户可以退出相机应用回到手机10的桌面主界面,主界面的示意图可以参照图10a示出的界面示意图。
[0332]
在另一些实施例中,用户不点击视频拍摄界面中的图10d-图10g中任意视频拍摄界面中的结束控件302,而是如图10h所示在视频拍摄界面的底部进行上划操作,自动停止当前视频拍摄,并退出相机应用回到手机10的桌面主界面,主界面的示意图可以参照图10a示出的界面示意图。
[0333]
s905:手机10在图库应用中保存录制的视频(如视频a),以及在图库应用中保存自动生成的n张照片(如照片a1-a5)。如此,用户可以在图库应用中查看录制的视频和自动生成的照片。
[0334]
接下来,针对手机10录像结束,在图库应用中查看自动生成的n张照片的方案,参
照图11所示,提供了一种用户查看并操作自动生成的照片的方法,执行主体依然为手机10,包括如下步骤:
[0335]
s1101:手机10基于用户打开图库应用的操作4,打开图库应用显示图库主界面。
[0336]
可以理解的是,在一些是实施例中,手机10在自动生成的照片之后,可以将这些照片自动存储到图库应用中,如存储在图库应用中的“所有照片”相册和单独的“智慧多拍”相册中,以方便用户查看手动抓拍的照片。
[0337]
作为一种示例,用户对图10a示出的图库应用的图标进行点击操作之后,如图12a所示,手机10显示的图库主界面,该主界面中包括“相机”相册、“所有照片”相册、“视频”相册和“智慧多拍”相册。
[0338]
其中,“相机”相册保存的是手机10在拍照模式下拍摄的照片,即“相机”相册的预览界面按照时间倒序显示照片的缩略图,该预览界面中的第一个缩略图即为最新拍摄的照片的缩略图。“视频”相册默认保存的是手机10在视频拍摄模式下拍摄的视频,即“视频”相册的预览界面按照时间倒序显示视频的缩略图,该预览界面中的第一个缩略图即为最新拍摄的视频的缩略图。“所有照片”相册保存的是手机10已经拍摄的所有视频和照片,即“所有照片”相册的预览界面按照时间倒序显示视频或以及生成的照片的缩略图,该预览界面中的第一个缩略图即为最新拍摄的视频或照片以及生成的照片的缩略图。“智慧多拍”相册保存的是手机10已经生成的照片,即“智慧多拍”相册的预览界面按照时间倒序显示生成的照片的缩略图,该预览界面中的第一个缩略图即为最新生成的照片的缩略图。
[0339]
s1102:手机10基于用户对已经保存的自动生成的照片a1的缩略图的操作5,显示该照片a1。
[0340]
作为一种示例,用户对图12a示出的“智慧多拍”相册进行点击操作(即第一操作),手机10可以显示如图12b示出的“智慧多拍”相册的预览界面,该预览界面中包括照片a1-a5的缩略图。进一步的,在用户点击图12b示出的照片a1缩略图(即操作5)之后,手机10可以显示如图12c示出的照片a1的预览界面,该预览界面中还包括分享、删除、编辑以及更多等控件。
[0341]
另外,作为一种示例,在用户点击图12c示出的更多控件之后,如图12d手机10可以在照片a1的预览界面上显示链接原视频的原视频控件。用户点击该原视频控件之后,手机10可以解析照片a1的exif信息中的uuid,并根据该uuid查找扩展信息中包含该uuid的视频,进而显示下文中12e示出的视频a的播放界面。即,用户可以通过自动生成的照片的预览界面跳转至相关的视频的播放界面,方便用户查看相关联的视频和自动生成的照片。
[0342]
作为一种示例,用户点击之后图12a示出的“所有照片”相册或“视频”相册,手机10显示的预览界面中显示的第一个缩略图为最新拍摄的视频的缩略图。
[0343]
例如,用户点击图12a示出的“所有照片”相册,手机10可以显示如图12e示出的预览界面,该预览界面的第一个缩略图为最新拍摄的视频a的缩略图。在用户点击图12f示出的视频a的缩略图之后,如图12e所示手机10显示视频a的视频播放界面,该视频播放界面中还包括原视频扩展控件。用户点击图12e示出的原视频控件之后,手机10可以解析该视频的扩展信息中的uuid,并根据该uuid查找exif信息中包含该uuid的照片(即照片a1-a5),进而可以显示如图12g示出的视频播放界面,显示视频a相关的照片a1-a5各自的缩略图。进而,用户对图12g示出照片a1的缩略图的点击(即操作5)之后,可以显示图12c示出的照片a1的
预览界面。
[0344]
此外,图12f示出的“所有照片”相册的预览界面中,按照时间倒序显示的缩略图中第二个缩略图到第六个缩略图分别为照片a1-a5的缩略图,并且照片a1-a5的缩略图的右上角上分别显示有一个六角星的标识,用于标识这些照片是视频录制过程中自动生成的,区别于正常拍照模式拍摄得到的照片。当然,对于自动生成的照片的标识不限于上述示例,还可以为其他形式,本技术实施例对此不做具体限定。
[0345]
s1103:手机10基于用户对自动生成的照片a1的操作6,删除照片a1。
[0346]
作为一种示例,用户点击图12c示出的删除控件之后,如图12h所示手机10可以显示弹框,该弹框中包括“是否删除视频”的提示信息,还包括选择框“删除相关智慧多拍”以及确定控件和取消控件。即该弹框中的相关选项为
[0347]
其中,如果用户未选中选择框“删除相关智慧多拍”并点击了确定控件,则手机10从图库应用中仅删除视频a,而不会删除相关的照片(即照片a1-a5)。如果用户选中选择框“删除相关智慧多拍”并点击了确定控件,则手机10从图库应用中删除视频a和所有相关的照片(即照片a1-a5)。如果用户点击取消控件,则不会删除视频a。
[0348]
s1104:手机10基于用户对自动生成的照片a1的操作7,在本地删除照片a1,并向平板电脑20发送指示消息,该指示消息用于指示同步平板电脑20删除照片a1。
[0349]
作为一另种示例,用户点击图12c示出的删除控件之后,如图12i所示手机10可以显示弹框,该弹框中包括“是否删除视频”的提示信息,还包括选择框“删除本机相关智慧多拍”、选择框“删除云端相关智慧多拍”以及确定控件和取消控件。如果用户选中选择框“删除本机相关智慧多拍”并点击了确定控件,则手机10从手机10的图库应用中删除视频a和所有相关的照片(即照片a1-a5)。如果用户选中选择框“删除本机相关智慧多拍”、选中选择框“删除云端相关智慧多拍”并点击了确定控件,则手机10从手机10的图库应用中删除视频a和所有相关的照片(即照片a1-a5),向平板电脑20发起指令,使得平板电脑20从图库应用中删除视频a和所有相关的照片(即照片a1-a5)。
[0350]
可以理解的是,在手机10从图库应用中删除视频a和照片a1-a5之后,手机10的相册的预览界面中将不再显示这些视频和照片的缩略图。
[0351]
接下来,针对手机10录像结束,手机在用户的触发下在图库应用中保存自动生成的n张照片的方案,参照图13所示,提供了一种用户保存并操作自动生成的照片的方法,执行主体依然为手机10,包括如下步骤:
[0352]
s1301:手机10基于用户对视频(例如视频a)的操作8,显示视频的视频预览界面,该视频预览界面中包括自动生成的照片的缩略图。
[0353]
s1302:手机10基于用户对自动生成的照片的缩略图的操作9,在图库应用中保存自动生成的照片。
[0354]
作为一种示例,如图14a所示,为手机10显示的一种相册的预览界面,即“所有照片”相册的预览界面。该预览界面与上述图10a示出的“所有照片”相册的预览界面的不同之处在于,不包含视频a相关的照片的缩略图。
[0355]
进一步的,在用户点击图14a示出的预览界面中的第一个缩略图(即视频a的缩略图)之后,如图14b所示手机10显示的视频播放界面。该视频播放界面与图10b显示的视频播放界面类似,不同之处在于,用户对图14a示出的视频播放界面中的照片a1-a5的缩略图的
操作可以引导用户是否选择在图库应用中保存自动生成的照片。
[0356]
在一些实施例中,用户对图14b示出的视频播放界面中的照片a1-a5中的任意一个缩略图进行长按操作之后,手机10可以显示图14c示出的界面。图14c示出的界面中包括每个缩略图对应的选择框以及保存控件和取消控件。在用户通过这些选择控件选中自动生成的图片a1-a5对应的所有缩略图之后,手机10可以在图库中保存这些照片,例如在图库中的“所有照片”相册和“智慧多拍”相册中保存这些照片。类似的,用户手动在图库中保存自动生成的图片a1-a5之后,“所有照片”相册的预览界面和“智慧多拍”相册的预览界面中均可以显示自动生成的图片a1-a5分别对应的缩略图,具体参照上述图10a示出的“所有照片”相册的预览界面和图10a示出的“智慧多拍”相册的预览界面。
[0357]
在另一些实施例中,用户点击图14b示出的视频播放界面中的照片a1的缩略图之后,手机10可以显示如图14d示出的照片a1的预览界面。该照片a1的预览界面与上述图12c示出的预览界面类似,不同之处在于,增加了保存控件。用户对点击该保存控件之后,手机10可以在图库应用中保存照片a1。类似的,用户可以分别操作图14b示出照片a4、a2、a3分别对应的缩略图,来保存这些照片。如此,可以根据用户的实际需求存储自动生成的照片。
[0358]
进一步的,在一些可能的实现方式中,手机10对于图库应用中已有的视频,如未使用智慧多拍模式自动照片的视频,还可以后期生成相关的照片。
[0359]
在一些实施例中,手机10已经拍摄的视频b在拍摄的过程中没有自动生成的照片,用户对图10a示出的视频b的缩略图进行点击操作之后,如图15a所示,手机10可以显示视频b的视频播放界面。该视频播放界面中包括分享、编辑以及更多等控件。用户点击操作图15a示出的更多控件之后,手机10可以显示如图15b示出的智慧多拍控件。进而,在用户点击该智慧多拍控件之后,手机10可以识别出评分较高的视频帧进行算法优化,以生成该视频b的照片,并如图15c在视频b的下方显示生成的多张照片。如此,方便用户记录已有的视频中的精彩瞬间。
[0360]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机10(如手机10中的各个器件)执行的各个功能或者步骤。
[0361]
本技术实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机10(如手机10中的各个器件)执行的各个功能或者步骤。
[0362]
本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0363]
可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
[0364]
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统
通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0365]
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
[0366]
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
[0367]
需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
[0368]
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0369]
虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1