CN117221709A - 一种拍摄方法及相关电子设备 - Google Patents
一种拍摄方法及相关电子设备 Download PDFInfo
- Publication number
- CN117221709A CN117221709A CN202210752470.8A CN202210752470A CN117221709A CN 117221709 A CN117221709 A CN 117221709A CN 202210752470 A CN202210752470 A CN 202210752470A CN 117221709 A CN117221709 A CN 117221709A
- Authority
- CN
- China
- Prior art keywords
- data stream
- module
- camera
- encoder
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims description 191
- 238000003860 storage Methods 0.000 claims description 112
- 230000003796 beauty Effects 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 51
- 230000015654 memory Effects 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 10
- 239000003550 marker Substances 0.000 claims description 6
- 239000002537 cosmetic Substances 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 58
- 238000012545 processing Methods 0.000 description 40
- 230000006870 function Effects 0.000 description 23
- 239000000872 buffer Substances 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 7
- 238000004806 packaging method and process Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 238000010295 mobile communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012552 review Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000196324 Embryophyta Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Television Signal Processing For Recording (AREA)
Abstract
本申请提供一种拍摄方法及相关电子设备,该方法包括:显示录制界面,该录制界面包括预览窗和第一控件,预览窗用于显示摄像头采集的图像;检测到作用于第一控件的第一操作后,在第一图像上显示一个或多个标记,第一图像为预览窗显示的图像,一个或多个标记分别对应第一图像中的一个或多个对象;检测到针对第一标记的第二操作,在第一界面上显示小窗,在小窗上显示第一对象的特写图像;第一标记为所述一个或多个标记中的任意一个,第一对象为第一标记对应的对象;响应于结束录像的操作,保存预览窗的视频和小窗的视频。
Description
技术领域
本申请涉及拍摄领域,尤其涉及一种拍摄方法及相关电子设备。
背景技术
现在,手机等支持拍摄视频的电子设备可以实现自动追踪的拍摄模式。在录制视频时,电子设备可以接收用户选中的主角。然后,电子设备可以在后续录制视频的过程中,始终跟随该主角,从而得到视频中心始终为上述被选中主角的特写视频。
发明内容
本申请实施例提供了一种拍摄方法及相关电子设备,解决了在主角录制模式下,在同时录制小窗和预览窗视频的过程中,预览窗视频和小窗视频文件中存在首帧图像未被美颜处理,而造成首帧图像和其它图像视觉效果差异大的问题。
第一方面,本申请实施例提供了一种拍摄方法,应用于具备摄像头的电子设备,该方法包括:显示第一界面;第一界面包括预览窗、第一控件、视频录制控件,预览窗用于显示摄像头采集的图像;响应针对第一控件的第一操作,在第一界面上显示美颜控件,在第一图像上显示N个标记;第一图像为预览窗当前显示的图像,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模块将美颜后的第三数据流中的每帧图像以第二对象为中心进行裁剪处理,得到处理后的第三数据流;处理后的第三数据流中的每帧图像为第二对象的特写图像;相机HAL模块将处理后的第三数据流通过相机框架模块缓存到第二存储区中。
结合第一方面,在一种可能实现的方式中,编码器模块通过编码控制模块将编码后的第三数据流进行打包,得到打包后的第三数据流,具体包括:第三编码器将编码后的第三数据流发送给编码控制模块;编码控制模块在编码后的第三数据流中,对目标图像进行打包,得到打包后的第三数据流;目标图像为在编码后的第三数据流中,除首帧图像以外的全部图像。这样,在再次录制小窗视频时,将小窗数据流中未被美颜的图像进行删除,从而避免了第三视频流中首帧图像与其他图像视觉效果差异过大的问题。
第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器、显示屏和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:控制显示屏显示第一界面;第一界面包括预览窗、第一控件、视频录制控件,预览窗用于显示摄像头采集的图像;响应针对第一控件的第一操作,控制显示屏在第一界面上显示美颜控件,在第一图像上显示N个标记;第一图像为预览窗当前显示的图像,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模块将处理后的第三数据流通过相机框架模块缓存到第二存储区中。
结合第二方面,在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:通过第三编码器将编码后的第三数据流发送给编码控制模块;通过编码控制模块在编码后的第三数据流中,对目标图像进行打包,得到打包后的第三数据流;目标图像为在编码后的第三数据流中,除首帧图像以外的全部图像。
第三方面,本申请实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
附图说明
图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中的任意一个,预览窗可以为上述图1B用户界面中的预览窗113。本申请实施例以标记为追踪框为例,进行说明。
步骤303:模式模块(Mode模块)触发流管理模块配置预览窗和小窗的数据流。
具体的,预览窗用于显示摄像头采集的原始图像,小窗用于显示在原始图像的基础上,基于选定的主角为中心进行裁剪得到的图像。示例性的,小窗可以为上述图1D所示的用户界面中的小窗141,预览窗可以为该用户界面中的预览窗113。
应当理解的是,由于电子设备未检测到针对追踪框的输入操作,此时在视频录制界面上仅存在预览窗,不存在小窗。
流管理模块配置预览窗和小窗的数据流可以为:为预览窗在缓冲区Buffer中分配一个用于缓存预览窗数据流的存储区(第一存储区),为小窗在Buffer中分配一个用于小窗数据流的存储区(第二存储区)。其中,预览窗和小窗的数据流可以为视频流。
步骤304:流管理模块配置预览窗的数据流和小窗的数据流,并将数据流的配置信息发送给编码控制模块。
具体地,流管理模块在接收到模式模块的触发信息后,配置预览窗和小窗的数据流,具体可以为:流管理模块在Buffer中创建用于缓存预览窗数据流的存储区(第一存储区)和用于缓存小窗数据流的存储区(第二存储区)。
数据流的配置信息包括第一存储区的地址(Video_surface_1)和第二存储区的地址(Video_surface_2)。
步骤305:模式模块触发存储模块生成第一视频文件和第二视频文件。
具体地,第一视频文件用于存储预览窗的编码后的数据流,第二视频文件用于存储小窗的编码后的视频流。
应当理解的是,步骤303可以在步骤305之前执行,步骤303也可以在步骤305之后执行,步骤303还可以和步骤305同时执行,本申请实施例不做限制。
步骤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模块在获得预览窗的数据流和小窗的数据流后,能够确定将预览窗的数据流发送给第一存储区,将小窗的数据流发送给第二存储区。
步骤313:检测到开启美颜功能的输入操作后,相机模式模块向相机算法模块下发打开美颜功能的指令。
具体地,开启美颜功能的输入操作可以为针对美颜控件的单击操作,美颜控件可以为上述图1B中的美颜控件127。本申请实施例所述的美颜功能可以为对视频图像中的拍摄对象进行色度、对比度等处理,也可以为对视频图像中的像素颜色进行优化,使得处理后的视频图像拥有更好的视觉效果。
步骤314:相机算法模块启动第一算法模块和第二算法模块。
具体地,在接收到打开美颜功能的指令后,相机算法模块启动第一算法模块和第二算法模块。其中,第一算法模块可以为预览窗对应的算法模块,用于对预览窗的数据流中每帧图像进行美颜处理。第二算法模块可以为小窗对应的算法模块,用于对小窗的数据流中每帧图像进行美颜处理。
在检测到针对视频录制界面上的开始录制控件的输入操作后,电子设备开始录制视频,并在视频录制界面上显示小窗,在小窗上显示在原始图像(预览窗上显示的图像)的基础上,基于选定的主角为中心进行裁剪得到的图像。
下面,结合图3B中的步骤315-步骤331对电子设备对预览窗和小窗的数据流进行编码的过程进行说明。其中,预览窗和小窗的数据流可以是视频流,该视频流中包括多帧图像数据。
步骤315:开始录像后,模式模块触发流管理模块向相机HAL模块和相机算法模块动态发送第一数据请求消息。
具体地,当电子设备开始录像后,模式模块触发流管理模块向相机HAL模块和相机算法模块发送第一数据请求消息。
其中,当电子设备检测到针对视频录制界面上的开始录制控件后,电子设备可以开始录像。示例性的,开始录制控件可以为上述图2A中的拍摄控件112。
第一数据请求消息用于指示相机HAL模块对预览窗的数据流和小窗的数据流进行处理,并将处理后的数据流缓存到Buffer中。
此外,第一数据请求消息还用于指示相机算法模块对摄像头发送的第一数据流(一路数据流)进行复制,得到第一数据流和第二数据流(复制的数据流),并对第一数据流和第二数据流中的每帧图像进行美颜处理。
第一数据请求消息可以包括第一流标识参数和第二流标识参数。
在一种可能实现的方式中,在开始录像之前,若检测到针对视频录制界面中,第一追踪框(第一标记)的单击操作,响应该操作,电子设备在视频录制上同时显示预览窗和小窗。其中,预览窗显示摄像头采集的原始图像,在该图像中包括N个对象(本申请实施例以对象为人物为例,进行说明),在小窗上显示第一对象,第一对象为第一追踪框对应的人物。
步骤316:流管理模块向相机HAL模块和相机算法模块动态发送第一数据请求消息。
步骤317:相机算法模块接收摄像头发送的第一数据流,并将第一数据流进行复制,得到第一数据流和第二数据流。
具体地,摄像头在视频录制过程中动态向相机算法模块发送对第一数据流(单路数据流),在第一数据流中包括视频录制过程中,摄像头连续采集的多帧图像数据。
在接收流管理模块发送的第一数据请求消息后,相机算法模块会对其接收的第一数据流进行复制,得到两路相同的数据流(视频流),复制得到的数据流为第二数据流。
相机算法模块可以将第一数据流发送给相机算法模块中的第一算法模块进行美颜处理,可以将第二数据流发送给相机算法模块中的第二算法模块进行处理。或者,相机算法模块可以将第一数据流发送给第二算法模块进行处理,将第二数据流发送给第一算法模块进行处理。
本申请实施例以相机算法模块将第一数据流发送给第一算法模块进行处理,将第二数据流发送给第二算法模块进行处理为例,进行说明。
步骤318:第一数据流的首帧图像触发第一算法模块工作,第二数据流中的首帧图像触发第二算法模块工作。
具体地,在开始录像后,若要第一算法模块和第二算法模块分别对其接收的数据流中每帧图像进行美颜处理,需要使用数据流中的首帧图像进行使能,才能触发第一算法模块和第二算法模块工作。对于使能帧图像,第一算法模块和第二算法模块不会对其进行美颜处理。
步骤319:第一算法模块对第一数据流中除首帧以外的每帧图像进行美颜处理,第二算法模块对第二数据流除首帧以外的每帧图像进行处理。
步骤320:相机算法模块将美颜处理后的第一数据流和美颜处理后的第二数据流发送给相机HAL模块。
步骤321:相机HAL模块将相机算法模块发送的第二数据流进行裁剪处理,并将第一数据流中的首帧图像和第二数据流中的首帧图像打上第一标识。
具体地,相机HAL模块在接收到相机算法模块发送的第一数据流和第二数据流后,相机HAL模块可以将第二数据流中的每帧图像按照选定的主角(对象)为中心进行裁剪处理,从而得到处理后的第二数据流。
由于相机算法模块未对第一数据流和第二数据流中的首帧图像进行美颜处理。在录制完成后,播放预览窗的视频或小窗的视频时,会存在首帧图像的视觉效果与视频其它帧图像的视觉效果相差太大的问题,从而造成画面视觉效果的突变,从而影响用户的观看体验。
因此,为了解决上述问题,相机HAL模块可以对其同时接收的第一数据流和第二数据流中的首帧图像打上第一标识,从而将数据流中的首帧图像与其它图像进行区分。
由于第一数据流和第二数据流是两路相同的数据流,为了便于透传第一数据流和第二数据流的相机框架模块能够识别这两路数据流,将第一数据流准确缓存在第一存储区中,将第二数据流缓存在第二存储区中。相机HAL模块可以在第一数据流的每帧图像中添加第一流标识参数,在第二数据流的每帧图像中添加第二流标识参数,以便于相机框架模块区分第一数据流和第二数据流。
步骤322:相机HAL模块将其处理的第一数据流和第二数据流发送给相机框架模块(Camera FWK模块)。
步骤323:相机框架模块将第一数据流和第二数据流中,打上第一标识的图像数据清除,得到处理后的第一数据流和处理后的第二数据流。
具体地,相机框架模块在接收到第一数据流和第二数据流之后,会读取第一数据流和第二数据流中的每帧图像。在读取到图像中存在第一标识的情况下,相机框架模块会将第一数据流和第二数据流中,存在第一标识的图像清除,从而使得第一数据流和第二数据流中的每帧图像都为经过美颜处理后的图像,保证第一数据流和第二数据流中每帧图像的视觉显示效果尽可能一致。这样,在视频录制结束后,当用户观看小窗视频和预览窗视频时,不会发生画面视觉效果突变的问题。
步骤324:相机框架模块将其处理后的第一数据流发送到第一存储区中,将处理后的第二数据流发送到第二存储区中。
具体地,相机框架模块在读取到第一数据流中的第一流标识参数后,可以确定将第一数据流缓存到Buffer中的第一存储区中。相机框架模块在读取到第二数据流中的第二流标识参数后,可以确定将第二数据流缓存到Buffer中的第二存储区中。
步骤325:模式模块触发编码控制模块启动编码器。
具体地,电子设备开始录像后,模式模块会触发编码控制模块启动编码器工作。
应当理解的是,步骤315可以在步骤325之前执行,步骤315也可以在步骤325之后执行,步骤315还可以和步骤325同时执行,本申请实施例不做限制。
步骤326:编码控制模块向编码器模块发送第一启动消息。
具体地,编码控制模块在接收到模式模块的触发消息后,可以向编码器模块发送第一启动消息。第一启动消息用于触发编码器模块启动第一编码器和第二编码器工作,对第一数据流和第二数据流进行编码。
步骤327:第一编码器从第一存储区中获取第一数据流,第二编码器在第二存储区中获取第二数据流。
具体地,编码器模块接收到编码控制模块发送的第一启动消息后,编码器模块会触发第一编码器和第二编码器工作。第一编码器可以基于Video_surface_1(第一存储区的地址)从Buffer中获取缓存的第一数据流。第二编码器可以基于Video_surface_2(第二存储区的地址)从Buffer中获取缓存的第二数据流。
步骤328:第一编码器将第一数据流进行编码,第二编码器将第二数据流进行编码。
步骤329:编码器模块将编码后的第一数据流和编码后的第二数据流发送给编码控制模块。
步骤330:编码控制模块对编码后的第一数据流和编码后的第二数据流进行编码打包。
步骤331:编码控制模块将编码打包后的第一数据流缓存到第一视频文件中,将编码打包后的第二数据流缓存到第二视频文件中。
在一些实施例中,用户可以提前结束对小窗中的视频的录制,继续预览窗中的视频录制。示例性的,如上述图2B显示的用户界面,在小窗141中显示停止控件212,当电子设备检测到针对停止控件212的单击操作时,电子设备会停止录制小窗视频,并将已录制的小窗视频进行保存。此时,电子设备仍然进行预览窗中视频的录制。
下面,结合图3C中的步骤332-步骤347对在提前结束小窗中的视频录制,继续录制预览窗中视频的情况下,电子设备对数据流进行编码的过程进行介绍。
步骤332:在检测到针对停止小窗视频录制的操作后,模式模块触发流管理模块向相机HAL模块和相机算法模块动态发送第二数据请求消息。
示例性的,停止录制小窗视频的操作可以为上述图2E中,针对停止控件212的输入操作。
第二数据请求消息用于指示相机算法模块仅对其从摄像头处接收的第一数据流进行美颜处理,即:将第一数据流发送给第一算法模块进行美颜处理,不将第二数据流发送给第二算法模块,也不对第一数据流进行复制,得到第二数据流。
步骤333:流管理模块向相机HAL模块和相机算法模块动态发送第二数据请求消息。
步骤334:相机算法模块中的第二算法模块停止工作。
具体地,由于流管理模块向相机算法模块发送第二数据请求消息,因此相机算法模块对其接收的第一数据流不再进行复制操作。由于第一数据流流向第一算法模块,因此,在设定时长内,若第二算法模块未接收到数据流,便会停止工作。
步骤335:第一算法模块将第一数据流中的每帧图像进行美颜处理,得到处理后的第一数据流,并将处理后的第一数据流发送给相机HAL模块。
步骤336:相机HAL模块对其接收的第一数据流进行处理,并将其处理后的第一数据流经由相机框架模块缓存到第一存储区中。
具体地,由于相机HAL模块仅收到第一数据流,相机HAL模块默认第一数据流为预览窗的数据流,不对第一数据流中的每帧图像按照选定的主角为中心进行裁剪处理。
CameraHAL模块在第一数据流的每帧图像中添加第一流标识参数,以便透传第一数据流和第二数据流的Camera Fwk模块可以根据第一流标识参数确定将第一数据流发送到第一存储区。
步骤337:第一编码器从第一存储区中获取第一数据流,并对第一数据流进行编码。
步骤338:第一编码器将编码后的第一数据流发送给编码控制模块。
步骤339:编码控制模块对编码后的第一数据流进行编码打包,并将编码打包后的第一数据流缓存到第一视频文件中。
步骤340:模式模块触发编码控制器发送第一停止编码请求。
具体地,第一停止编码请求用于指示编码器模块停止并删除第二编码器。
应当理解的是,步骤332可以在步骤340之前执行,步骤332也可以在步骤340之后执行,步骤332还可以和步骤340同时执行,本申请实施例不做限制。
步骤341:编码控制模块向编码器模块发送第一停止编码请求。
步骤342:编码器模块停止并删除第二编码器。
步骤343:编码控制模块向存储模块发送第一通知消息。
具体地,第一通知消息用于指示存储模块,第二编码器已经停止对小窗的数据流进行编码。
应当理解的是,步骤341可以在步骤343之前执行,步骤341也可以在步骤343之后执行,步骤341还可以和步骤343同时执行,本申请实施例不做限制。
步骤344:存储模块保存第二视频文件并创建第三视频文件,并将第三视频文件的信息发送给编码控制模块。
具体地,在接收到第一通知消息后,存储模块保存第二视频文件。其中,第二视频文件可以以第一系统时间Time_1来命名。第一系统时间可以为创建第二视频文件的时间。此外,电子设备可以创建第三视频文件。其中,第三视频文件用于存储小窗的视频数据流。
第三视频文件的信息可以为第三视频文件的标识信息,如第三视频文件的ID等,本申请实施例对此不做限制。
步骤345:编码控制模块配置第三编码器参数,并将第三编码器与第三视频文件和第二存储区对应。
具体地,编码控制模块可以将第三编码器、第三视频文件、第二存储区匹配,建立“第一编码器-第三视频文件-第二存储区”的关联关系,使得后续第三编码器能够根据第二存储区的地址获取小窗的数据流,并对该数据流进行编码,然后将编码后的数据流发送给编码控制模块进行编码打包。进而使得编码控制模块将编码打包后的小窗的数据流发送到到存储模块创建的第三视频文件中。
步骤346:编码控制模块向编码器模块发送第二编码配置参数。
具体地,该第二编码配置参数包括第三编码器参数、第三编码器与第三视频文件和Video_surface_2的关联关系。该第二编码配置参数用于指示编码器模块基于第三编码器参数创建小窗的编码器(第三编码器)。
此外,编码控制模块可以将小窗的编码器与第三视频文件和Video_surface_2关联起来。使得后续第三编码器能够根据Video_surface_2获取小窗的视频流,并对该视频流进行编码,然后将编码后的视频流发送给编码控制模块。
步骤347:编码器模块根据第二编码器配置参数创建第三编码器,并将第三编码器与第三视频文件和第二存储区关联。
上述步骤332-步骤347对在停止小窗的视频录制后,电子设备对摄像头采集图像的数据流进行编码过程进行了介绍。在停止小窗录制后,预览窗中的对象会显示选择框221和选择框123,示例性的如上述图2G所示。当电子设备检测到针对选择框123的输入操作后,电子设备会再次显示小窗,并在小窗上再次显示用户选中的主角人物1(之前的主角是人物2)。
下面,结合图3D中的步骤348-步骤363对电子设备在提前结束小窗视频录制后,再次选中主角,进行新的小窗录制的过程进行说明。
步骤348:在检测到用户重新选中主角后,模式模块(Mode模块)触发流管理模块向相机HAL模块和相机算法模块动态发送第三数据请求消息。
示例性的,在检测到用户针对上述图2G中的选择框123(第二标记)的单击操作后,电子设备确定用户重新选中主角。
在检测到用户重新选中主角后,模式模块会触发流管理模块向相机HAL模块和相机算法模块动态发送第三数据请求消息。第三数据请求消息该第三数据请求消息包括第一流标识参数和第二流标识参数。
第三数据请求消息用于指示相机HAL模块对预览窗的数据流和小窗的数据流进行处理,并将处理后的数据流缓存到Buffer中。
此外,第三数据请求消息还用于指示相机算法模块对摄像头发送的第一数据流(一路数据流)进行复制,得到第一数据流和第三数据流(复制的数据流),并对第一数据流和第三数据流中的每帧图像进行美颜处理。
步骤349:流管理模块向相机HAL模块和相机算法模块动态发送第三数据请求消息。
步骤350:相机算法模块接收摄像头发送的第一数据流,并将第一数据进行复制,得到第一数据流和第三数据流。
具体地,在接收流管理模块发送的第三数据请求消息后,相机算法模块会对其接收的第一数据流进行复制,得到两路相同的数据流(视频流),复制得到的数据流为第三数据流。
相机算法模块可以将第一数据流发送给相机算法模块中的第一算法模块进行美颜处理,可以将第三数据流发送给相机算法模块中的第二算法模块进行处理。或者,相机算法模块可以将第一数据流发送给第二算法模块进行处理,将第三数据流发送给第一算法模块进行处理。
本申请实施例以相机算法模块将第一数据流发送给第一算法模块进行处理,将第三数据流发送给第二算法模块进行处理为例,进行说明。
步骤351:第三数据流中的首帧图像触发第二算法模块工作。
具体地,由于第二算法模块停止工作,若要第二算法模块对其接收的数据流中每帧图像中进行美颜处理,需要使用首帧图像进行使能,才能触发第二算法模块工作。对于使能帧图像,第二算法模块不会对其进行美颜处理。
步骤352:第一算法模块对第一数据流中每帧图像进行美颜处理,第二算法模块对第三数据流除首帧以外的每帧图像进行处理。
步骤353:相机算法模块将美颜处理后的第一数据流和美颜处理后的第三数据流发送给相机HAL模块。
步骤354:相机HAL模块将相机算法模块发送的第三数据流进行裁剪处理。
具体地,CameraHAL模块在接收到相机算法模块发送的第一数据流和第三数据流后,CameraHAL模块可以将第三数据流中的每帧图像按照选定的主角(第二对象)为中心进行裁剪处理,从而得到处理后的第三数据流。
由于第一数据流和第三数据流是两路相同的数据流,且相机HAL模块一直接收第一数据流。当相机HAL模块接收到第一数据流和第三数据流后,无法区分第一数据流和第三数据流。只是将其中一路数据流中每帧图像进行裁剪,将经过裁剪处理后的数据流确定为小窗的数据流(第二数据流),将未经裁剪处理后的数据流确定为预览窗的数据流(第一数据流)。
因此,当相机HAL接收到与第一数据流相同的第三数据流后,相机HAL模块会将第三数据流中的首帧图像视为第一数据流中的非首帧图像,不会对第三数据流中的首帧图像打上第一标识。其中,第一数据流的首帧图像为在相机HAL模块接收到第一数据请求(第一数据请求会通过相机HAL模块透传给相机算法模块)后接收到的相机算法模块传输的第一数据流中的首帧图像。
步骤355:相机算法模块将其处理的第一数据流和第三数据流发送给相机框架模块。
步骤356:相机框架模块将第一数据流发送到第一存储区中,将第三数据流发送到第二存储区中。
具体地,由于相机框架模块未检测到第三数据流中存在打上第一标识的图像。因此,相机框架模块不会清除第三数据流中的图像。
步骤357:模式模块触发编码控制模块启动第三编码器。
应当理解的是,步骤348可以在步骤357之前执行,步骤348也可以在步骤357之后执行,步骤348还可以和步骤357同时执行,本申请实施例不做限制。
步骤358:编码器控制模块向编码器模块发送第二启动消息。
具体地,编码控制模块在接收到模式模块的触发消息后,可以向编码器模块发送第二启动消息。第二启动消息用于触发编码器模块启动第三编码器,对第三数据流进行编码。第一编码器一直在正常工作。
步骤359:第一编码器从第一存储区中获取第一数据流,第三编码器在第二存储区中获取第三数据流。
具体地,编码器模块接收到编码控制模块发送的第二启动消息后,编码器模块会触发第三编码器工作。第三编码器会基于Video_surface_2(第二存储区的地址)从Buffer中获取缓存的第三数据流。第一编码器一直在正常工作。
步骤360:第一编码器对第一数据流进行编码,并将编码后的第一数据流发送给编码控制模块,第三编码器对第三数据流进行编码,并将编码后的第三数据流发送给编码控制模块。
步骤361:编码控制模块对编码后的第一数据流进行编码打包,并将编码打包后的第一数据流缓存到第一视频文件中。
步骤362:编码控制模块将编码后的第三数据流中的首帧图像丢弃,并对丢弃首帧图像后的第三数据流进行编码打包,将编码打包后的第三数据流缓存到第三视频文件中。
具体地,编码控制模块可以通过第三数据流中的第二流标识参数识别第三数据流为小窗的数据流。由于编码控制模块中断接收包括第二流标识参数的第二数据流,当编码控制模块再次接收到包括第二流标识参数的第三数据流时,会将第三数据流中的首帧图像进行丢弃。在将第三数据流中的首帧图像丢弃后,编码控制模块将编码后的第三数据流进行编码打包,并将编码打包后的第三数据流缓存给第三视频文件中。
应当理解的是,步骤361可以在步骤362之前执行,步骤361也可以在步骤362之后执行,步骤361还可以和步骤362同时执行,本申请实施例不做限制。
步骤363:编码控制模块向第三编码器发送编码关键帧,该编码关键帧用于第三编码器给第三编码器后续编码提供参考。
具体地,编码器每编码L帧图像之后,需要之前编码的L帧图像中的首帧图像作为参考帧进行编码,否则,编码器在对后面的数据流中图像进行编码时,会发生编码失败的问题。例如,编码器每编码33帧图像就需要编码关键帧对之后的33帧图像进行编码。编码器在对数据流中第1帧图像~第33帧图像进行编码后,需要编码控制器将之前编码的首帧图像(第1帧图像)发送给编码器作为参考关键帧,以使得编码器能够基于该参考关键帧对数据流后面的第34帧图像~第66帧图像进行编码。
由于编码控制模块在打包过程中丢弃的第三数据流中首帧图像,因此,编码控制模块需要向第三编码器发送一个参考关键帧,以便第三编码器能够成功对第三数据流中其它图像帧进行编码。
上述步骤348-步骤363介绍了电子设备切换主角后,电子设备对预览窗对应的数据流和小窗对应的数据流进行编码的流程进行了介绍。
下面,结合图3E中的步骤364-步骤371,对电子设备同时结束预览窗和小窗的录制,电子设备中各模块所执行的流程进行说明。
步骤364:在检测到针对同时结束预览窗和小窗视频录制的输入操作后,模式模块触发编码控制模块向相机HAL模块动态和相机算法模块动态发送第四数据请求消息。
具体地,第四数据请求消息用于指示相机算法模块和相机HAL模块停止工作。
示例性的,同时结束预览窗和小窗视频录制的输入操作可以为上述图2L中,作用于停止控件2112的用户操作。
步骤365:流管理模块向相机HAL模块和相机算法模块动态发送第四数据请求消息。
步骤366:相机HAL模块和相机算法模块停止工作。
步骤367:模式模块触发编码控制模块停止第一编码器和第三编码器工作。
应当理解的是,步骤364可以在步骤367之前执行,步骤364也可以在步骤367之后执行,步骤364还可以和步骤367同时执行,本申请实施例不做限制。
步骤368:编码控制模块向编码器模块发送第二停止编码请求。
具体地,第二停止编码请求用于指示编码器模块停止并删除第一编码器和第三编码器。
步骤369:第一编码器和第三编码器停止工作。
在一些实施例中,在接收到第二停止编码请求后,编码器模块指示第一编码器和第三编码器停止工作,并且清除第一编码器和第三编码器。
步骤370:模式模块触发存储模块保存第一视频文件和第三视频文件。
具体地,存储模块可以以第二系统时间来对第三视频文件命名,可以以当前系统时间来对第一视频文件来命名,本申请实施例对第三视频文件和第一视频文件的命名方式不做限制。
步骤364、步骤367和步骤370的执行顺序,本申请实施例不做限制。
步骤371:存储模块保存第一视频文件和第三视频文件。
其中,第一视频文件中缓存的视频为预览窗视频(原始视频),第三视频文件中缓存的视频为小窗视频(特写视频)。
图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-图2I所示的拍摄方法。
骨传导传感器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、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种拍摄方法,其特征在于,应用于具备摄像头的电子设备,所述方法包括:
显示第一界面;所述第一界面包括预览窗、第一控件、视频录制控件,所述预览窗用于显示所述摄像头采集的图像;
响应针对所述第一控件的第一操作,在所述第一界面上显示美颜控件,在第一图像上显示N个标记;所述第一图像为所述预览窗当前显示的图像,所述N个标记分别对应所述第一图像中的N个对象;
响应针对第一标记的第二操作,在所述第一界面上显示小窗,在所述小窗中显示第一对象的特写图像;所述第一标记为所述N个标记中的任意一个,所述第一对象为所述第一标记对应的对象;
检测到针对所述美颜控件的第三操作;
响应所述第三操作,对所述预览窗中的N个对象和所述小窗中的第一对象进行美颜处理;
在第一时刻,响应针对所述视频录制控件的第四操作,录制第一视频和第二视频;所述第一视频为所述预览窗的视频,所述第二视频为所述小窗的视频。
2.如权利要求1所述的方法,其特征在于,响应针对所述视频录制控件的第四操作之后在所述小窗上显示第二控件,在所述录制第一视频和第二视频的过程中,还包括:
在第二时刻,响应针对所述第二控件的第五操作,停止录制第二视频,在所述第一界面上不显示所述小窗;
在第三时刻,响应针对第二标记的第六操作,在所述第一界面上显示小窗,在所述小窗上显示第二对象的特写图像,所述第二标记为所述N个标记中的任意一个,所述第二对象为所述第二标记对应的对象;
录制第三视频,所述第三视频为所述小窗的视频。
3.如权利要求1所述的方法,其特征在于,所述响应针对所述视频录制控件的第四操作,录制第一视频和第二视频之后,还包括:
检测到针对第三标记的第一输入操作;
响应该操作,在所述小窗上显示第三对象的特写图像;所述第三标记为所述N个标记中,除所述第一标记以外的任意一个标记,所述第三对象为所述第三标记对应的对象,所述第三对象为美颜处理后的对象。
4.如权利要求1-3任一项所述的方法,其特征在于,所述电子设备包括模式模块、流管理模块、存储模块、编码控制模块、编码器模块、相机HAL模块,所述响应针对所述第一控件的第一操作之后,包括:
所述模式模块触发所述流管理模块配置第一数据流和第二数据流;所述第一数据流为所述预览窗的数据流,所述第二数据流为所述小窗的数据流;
所述流管理模块配置所述第一数据流和所述第二数据流;
所述流管理模块将数据流配置信息发送给所述编码控制模块;所述数据流配置信息包括第一存储区的地址和第二存储区的地址,所述第一存储区用于缓存所述第一数据流,所述第二存储区用于缓存所述第二数据流;
所述存储模块创建第一视频文件和第二视频文件,并将视频文件信息发送给所述编码控制模块;所述第一视频文件用于存储所述预览窗对应的视频,所述第二视频文件用于存储所述小窗对应的视频,所述视频文件信息包括第一视频文件信息和第二视频文件信息;
所述编码控制模块基于所述视频文件信息和所述数据流配置信息配置第一编码器参数和第二编码器参数,并将第一编码配置参数发送给所述编码器模块;所述第一编码配置参数包括所述第一编码器参数和所述第二编码器参数;
所述编码器模块基于所述第一编码器参数创建第一编码器,基于所述第二编码器参数创建第二编码器;所述第一编码器与所述预览窗对应,所述第二编码器与所述小窗对应;
所述流管理模块配置第一流标识参数和第二流标识参数,并将所述第一流标识参数和所述第二流标识参数发送给所述相机HAL模块;所述第一流标识参数用于标识所述第一数据流,所述第二流标识参数用于标识所述第二数据流;
所述相机HAL模块解析所述第一流标识参数和所述第二流标识参数。
5.如权利要求1-4任一项所述的方法,其特征在于,所述电子设备还包括相机算法模块,所述相机算法模块包括第一算法模块和第二算法模块,所述检测到针对所述美颜控件的第三操作之后,还包括:
所述模式模块向所述相机算法模块下发美颜指令;所述美颜指令用于触发所述第一算法模块和所述第二算法模块工作,所述第一算法模块与所述第一数据流对应,所述第二算法模块与所述第二数据流对应;
所述相机算法模块启动所述第一算法模块和所述第二算法模块。
6.如权利要求1-5任一项所述的方法,其特征在于,所述电子设备还包括相机框架模块,所述响应针对视频录制控件的第四操作之后,还包括:
所述模式模块触发所述流管理模块向所述相机HAL模块和所述相机算法模块发送第一数据请求消息;
所述模式模块触发所述编码控制模块启动所述第一编码器和所述第二编码器;
所述流管理模块向所述相机HAL模块发送所述第一数据请求消息;
所述相机HAL模块向所述相机算法模块发送所述第一数据请求消息;
所述相机算法模块对所述摄像头发送的第一数据流进行复制,得到第二数据流,并对所述第一数据流中目标图像的对象和第二数据流中目标图像的对象进行美颜处理,得到美颜后的第一数据流和美颜后的第二数据流;
所述相机算法模块将所述美颜后的第一数据流和所述美颜后的第二数据流依次通过所述相机HAL模块和所述相机框架模块进行处理,得到处理后的第一数据流和处理后的第二数据流;
所述相机框架模块将所述处理后的第一数据流缓存到所述第一存储区中,将所述处理后的第二数据流缓存到所述第二存储区中;
所述编码控制模块触发编码器模块工作;
所述编码器模块对所述处理后的第一数据流和所述处理后的第二数据流进行编码,得到编码后的第一数据流和编码后的第二数据流;
所述编码器模块通过所述编码控制模块将所述编码后的第一数据流和所述编码后的第二数据流进行打包,得到打包后的第一数据流和打包后的第二数据流;
所述编码控制模块将所述打包后的第一数据流缓存到所述第一视频文件中,将所述打包后的第二数据流缓存到所述第二视频文件中。
7.如权利要求6所述的方法,其特征在于,所述编码器模块通过所述编码控制模块将所述编码后的第一数据流和所述编码后的第二数据流进行打包,得到打包后的第一数据流和打包后的第二数据流,具体包括:
所述编码器模块将所述编码后的第一数据流和所述编码后的第二数据流发送给所述编码控制模块;
所述编码控制模块分别对所述编码后的第一数据流中,首帧图像以外的图像进行打包,得到所述打包后的第一数据流;
所述编码控制模块分别对所述编码后的第二数据流中,首帧图像以外的图像进行打包,得到所述打包后的第二数据流。
8.如权利要求6-7任一项所述的方法,其特征在于,所述相机算法模块对所述摄像头发送的第一数据流进行复制,得到第二数据流,并对所述第一数据流中目标图像的对象和第二数据流中目标图像的对象进行美颜处理,得到美颜后的第一数据流和美颜后的第二数据流,具体包括:
所述相机算法模块对所述摄像头发送的第一数据流进行复制,得到第二数据流;
所述第一算法模块接收所述第一数据流,所述第二算法模块接收所述第二数据流;
所述第一算法模块在所述第一数据流中,对除首帧图像以外的全部图像中的对象进行美颜处理,得到所述美颜后的第一数据流;
所述第二算法模块在所述第二数据流中,对除首帧图像以外的全部图像中的对象进行美颜处理,得到所述美颜后的第二数据流。
9.如权利要求6-8任一项所述的方法,其特征在于,所述相机算法模块将所述美颜后的第一数据流和所述美颜后的第二数据流依次通过所述相机HAL模块和所述相机框架模块进行处理,得到处理后的第一数据流和处理后的第二数据流,包括:
所述相机算法模块将所述美颜后的第一数据流和所述美颜后的第二数据流发送给所述相机HAL模块;
所述相机HAL模块将所述美颜后的第二数据流中的每帧图像以所述第一对象为中心进行裁剪处理,得到裁剪后的第二数据流;所述裁剪后的第二数据流中的每帧图像为所述第一对象的特写图像;
所述相机HAL模块对美颜后的第一数据流中的首帧图像打上第一标识,对所述裁剪后的第二数据流中的首帧图像打上第一标识;
所述相机HAL模块将打上第一标识的第一数据流和打上第一标识的第二数据流发送给所述相机框架模块;
所述相机框架模块在接收的第一数据流和第二数据流中,删除打上第一标识的图像,得到所述处理后的第一数据流和所述处理后的第二数据流。
10.如权利要求6-9任一项所述的方法,其特征在于,所述编码器模块对所述处理后的第一数据流和所述处理后的第二数据流进行编码,得到编码后的第一数据流和编码后的第二数据流,具体包括:
所述第一编码器在所述第一存储区中获取所述处理后的第一数据流;
所述第一编码器对所述处理后的第一数据流进行编码,得到编码后的第一数据流;
所述第二编码器在所述第二存储区中获取所述处理后的第二数据流;
所述第二编码器对所述处理后的第二数据流进行编码,得到编码后的第二数据流。
11.如权利要求6-10任一项所述的方法,其特征在于,所述响应针对所述第二控件的第五操作之后,还包括:
所述模式模块触发所述流管理模块向所述相机HAL模块和相机算法模块发送第二数据请求消息;所述第二数据请求消息用于指示所述相机HAL模块停止向所述第二存储区中缓存所述第二数据流,指示所述相机算法模块停止复制第一数据流,不对第二数据流进行美颜处理;
所述模式模块触发所述编码控制模块控制所述第二编码器停止工作;
所述流管理模块向所述相机HAL模块发送所述第二数据请求消息;
所述相机HAL模块向所述相机算法模块发送所述第二数据请求消息;
所述编码控制模块触发所述编码器模块删除所述第二编码器,创建第三编码器;
所述编码控制模块触发所述存储模块保存所述第二视频文件,创建第三视频文件;所述第三视频文件与所述小窗对应;
所述编码器模块指示所述第二编码器停止工作,删除所述第二编码器,创建所述第三编码器;所述第三编码器为小窗的编码器;
所述存储模块保存所述第二视频文件,创建所述第三视频文件;
所述存储模块将所述第三视频文件的信息发送给所述编码控制模块;
所述编码控制模块基于所述第三视频文件的信息和所述数据流配置信息配置第三编码器参数,并将第二编码配置参数发送给所述编码器模块;所述第二编码配置参数包括所述第三编码器参数;
所述编码器模块基于所述第二编码配置参数创建所述第三编码器。
12.如权利要求6-11任一项所述的方法,其特征在于,所述响应针对第二标记的第六操作之后,还包括:
所述模式模块触发所述流管理模块向所述相机HAL模块和所述相机算法模块发送第三数据请求消息;
所述模式模块触发所述编码控制模块启动所述第一编码器和所述第二编码器;
所述流管理模块向所述相机HAL模块发送所述第三数据请求消息;
所述相机HAL模块向所述相机算法模块发送所述第三数据请求消息;
相机算法模块对所述摄像头发送的第一数据流进行复制,得到第三数据流,并对所述第三数据流中的目标图像的对象进行美颜处理,得到美颜后的第三数据流;所述目标图像为所述第三数据流中,除首帧图像以外的所有图像;
所述相机算法模块将所述美颜后的第三数据流依次通过所述相机HAL模块和所述相机框架模块进行处理,得到处理后的第三数据流;
所述相机框架模块将所述处理后的第三数据流缓存到所述第二存储区中;
所述编码控制模块触发编码器模块工作;
所述编码器模块对所述处理后的第三数据流进行编码,得到编码后的第三数据流;
所述编码器模块通过所述编码控制模块将所述编码后的第三数据流进行打包,得到打包后的第三数据流;
所述编码控制模块将所述打包后的第三数据流缓存到所述第三视频文件中。
13.如权利要求12所述的方法,其特征在于,所述相机算法模块将所述美颜后的第三数据流通过所述相机HAL模块进行处理,得到处理后的第三数据流,包括:
所述相机算法模块将所述美颜后的第三数据流发送给所述相机HAL模块;
所述相机HAL模块将所述美颜后的第三数据流中的每帧图像以所述第二对象为中心进行裁剪处理,得到处理后的第三数据流;所述处理后的第三数据流中的每帧图像为所述第二对象的特写图像;
所述相机HAL模块将所述处理后的第三数据流通过所述相机框架模块缓存到所述第二存储区中。
14.如权利要求12-13任一项所述的方法,其特征在于,所述编码器模块通过所述编码控制模块将所述编码后的第三数据流进行打包,得到打包后的第三数据流,具体包括:
所述第三编码器将所述编码后的第三数据流发送给所述编码控制模块;
所述编码控制模块在所述编码后的第三数据流中,对目标图像进行打包,得到所述打包后的第三数据流;所述目标图像为在所述编码后的第三数据流中,除首帧图像以外的全部图像。
15.一种电子设备,其特征在于,包括:存储器、处理器和触控屏;其中:
所述触控屏用于显示内容;
所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;
所述处理器用于调用所述程序指令,使得所述电子设备执行如权利要求1-14任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现如权利要求1-14任意一项所述的方法。
17.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-14中任意一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022106035263 | 2022-05-30 | ||
CN202210603526 | 2022-05-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117221709A true CN117221709A (zh) | 2023-12-12 |
Family
ID=89039500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210752470.8A Pending CN117221709A (zh) | 2022-05-30 | 2022-06-29 | 一种拍摄方法及相关电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117221709A (zh) |
-
2022
- 2022-06-29 CN CN202210752470.8A patent/CN117221709A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417991B (zh) | 一种录屏方法及电子设备 | |
US11669242B2 (en) | Screenshot method and electronic device | |
CN115484380B (zh) | 拍摄方法、图形用户界面及电子设备 | |
CN113726950A (zh) | 一种图像处理方法和电子设备 | |
CN111526314A (zh) | 视频拍摄方法及电子设备 | |
CN113891009B (zh) | 曝光调整方法及相关设备 | |
CN114363462B (zh) | 一种界面显示方法、电子设备及计算机可读介质 | |
WO2022042769A2 (zh) | 多屏交互的系统、方法、装置和介质 | |
CN113935898A (zh) | 图像处理方法、系统、电子设备及计算机可读存储介质 | |
CN114040242A (zh) | 投屏方法和电子设备 | |
CN115633255B (zh) | 视频处理方法和电子设备 | |
WO2021238740A1 (zh) | 一种截屏方法及电子设备 | |
WO2021204103A1 (zh) | 照片预览方法、电子设备和存储介质 | |
US20240406540A1 (en) | Preview method, electronic device, and system | |
WO2023016014A1 (zh) | 视频编辑方法和电子设备 | |
CN115442509B (zh) | 拍摄方法、用户界面及电子设备 | |
WO2023160224A9 (zh) | 一种拍摄方法及相关设备 | |
CN117221709A (zh) | 一种拍摄方法及相关电子设备 | |
CN117177064A (zh) | 一种拍摄方法及相关设备 | |
CN117221708A (zh) | 一种拍摄方法及相关电子设备 | |
CN115686403A (zh) | 显示参数的调整方法、电子设备、芯片及可读存储介质 | |
CN116055861B (zh) | 一种视频编辑方法和电子设备 | |
CN117692714B (zh) | 视频显示方法、电子设备、计算机程序产品和存储介质 | |
EP4277257A1 (en) | Filming method and electronic device | |
WO2022228010A1 (zh) | 一种生成封面的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |