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

视频防抖方法及相关设备

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


视频防抖方法及相关设备

技术领域

本申请涉及计算机领域,尤其涉及视频防抖方法及相关设备。

背景技术

在电子设备录制过程中,为了避免电子设备抖动,影像录制效果,通常会采用电子防抖技术(Electric Image Stabilization,EIS)对视频进行防抖处理。通常在存储视频前,电子设备就会对视频中各个帧的图像进行防抖处理,然后再将防抖处理后的视频进行存储。

而在电子设备录制过程中,电子设备会在电子设备上显示预览画面,也就是电子设备的摄像头捕捉到的画面会实时在电子设备上显示。在显示预览画面前,也会对视频中各个帧的图像进行防抖处理。所以通常在存储视频前会针对预览画面进行第一防抖处理,在存储视频时会针对存储的视频进行第二防抖处理。现有的流程,针对预览画面的第一防抖处理和针对存储的视频的第二防抖处理是同步进行的,也就是在同一时间段内,对电子摄像头捕捉到的画面并行进行第一防抖处理和第二防抖处理。这种并行进行第一防抖处理和第二防抖处理的方式,在同一时间消耗的计算资源较大。

发明内容

本申请提供了一种视频防抖方法及相关设备,可以实现计算资源错峰,从而有利于减少在同一时间的计算资源的消耗。

第一方面,本申请的一些实施例提供了一种视频防抖方法。该视频防抖方法可以包括:在开启电子设备录像功能后进行视频的录制;将第一图像和第一图像对应的第一防抖信息进行存储,第一图像为录制的视频中的任意一帧图像;当检测到电子设备的空闲计算资源大于第一阈值时,基于第一防抖信息对第一图像进行防抖处理,得到第二图像;将存储的第一图像更新为第二图像。

通过上述方式,在存储了第一图像和第一图像对应的防抖信息后,在电子设备的计算资源充足时,再对第一图像进行防抖处理。而预览画面的防抖处理是在获取图像后实时进行的,所以避免了预览画面和存储的第一图像同时并行进行防抖处理,从而实现计算资源错峰,从而有利于减少在同一时间的计算资源的消耗。

在一种可能实现中,第一防抖信息包括第一图像前M帧图像的图像信息以及第一图像前M帧对应的陀螺仪信息,M为正整数;基于第一防抖信息对第一图像进行防抖处理,得到第二图像,具体为:基于第一图像前M帧图像的图像信息和第一图像前M帧对应的陀螺仪信息,确定第一图像对应的第一裁剪框;基于第一裁剪框对第一图像进行裁剪,得到第二图像。

通过上述方式,在存储时,将第一图像、第一图像前M帧图像的图像信息以及所述第一图像前M帧对应的陀螺仪信息一同进行存储,在完成后,再基于存储的一图像前M帧图像的图像信息以及所述第一图像前M帧对应的陀螺仪信息对第二图像进行防抖处理,使得电子设备具有充足的计算资源得到准确的第一裁剪框。

在一种可能的实现中,当将存储的第一图像更新为第二图像后,检测到对第一图像所在录像视频的回放操作时,显示第二图像。

在一种可能的实现中,第一防抖信息还包括第二裁剪框,第二裁剪框是基于第一帧图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息确定的,其中,N为小于M的正整数;还包括:当将存储的第一图像更新为第二图像前,检测到对视频的回放操作时,基于第二裁剪框对第一图像进行裁剪,得到第三图像;显示第三图像。

通过上述方式,由于在存储第一图像时,同时存储第二裁剪框,所以在视频录制完成后,用户立刻进行回放,也可以进行防抖处理。确保了用户进行回放时,能够快速高效地显示防抖处理后的第三图像。

在一种可能的实现中,在将第一图像和第一图像对应的第一防抖信息进行存储之前,该方法还包括:确定第一图像前N帧对应的陀螺仪信息以及第一图像前N帧的图像信息;基于第一图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息,确定第一图像对应的第二裁剪框。

通过上述方式,在存储第一图像前,确定出第二裁剪框,确保在第一图像更新为第二图像前,用户对录制的视频进行回放时,该视频也是进行了防抖处理的。并且,第二裁剪框考虑的帧图像的图像信息以及陀螺仪信息更少,所以更节约电子设备的计算资源。

在一种可能的实现中,第一图像为优化处理后的得到的图像;基于第二裁剪框对第一图像进行裁剪,得到第三图像,具体为:基于第二裁剪框对第一图像进行裁剪,得到第三图像;方法还包括:基于第二裁剪框对第一图像进行裁剪,得到第四图像,并在预览界面中显示第四图像。

通过上述方式,由于在优化处理后对预览画面以及存储画面进行防抖处理的,所以只需要进行一次优化处理。节约了电子设备的计算资源以及能耗。

在一种可能的实现中,第二图像所占内存小于第一图像所占内存。

通过上述方式,由于第二图像为基于第一裁剪框对第一图像进行裁剪后得到的,所以第二图像在进行防抖处理后,所占内存更少。

第二方面,本申请提供了一种电子设备,包括一个或多个处理器和一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述第一方面任一项可能的实现方式中的视频防抖方法。

第三方面,本申请提供了一种视频防抖装置,该装置可以是电子设备,也可以是电子设备中的装置,或者是能够和电子设备匹配使用的装置;其中,该视频防抖装置还可以是芯片系统,该视频防抖装置可执行第一方面中电子设备所执行的方法。该视频防抖装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该单元可以是软件和/或硬件。该视频防抖装置执行的操作及有益效果可以参见上述第一方面所述的方法以及有益效果,重复之处不再赘述。

第四方面,本申请提供了一种芯片,该芯片包括处理器和接口,处理器和接口耦合;接口用于接收或输出信号,处理器用于执行代码指令,以执行上述第一方面任一项可能的实现方式中的视频防抖方法。

第五方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面任一项可能的实现方式中的视频防抖方法。

附图说明

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

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

图3A是本申请实施例提供的一种视频防抖方法的抽象流程示意图;

图3B是本申请实施例提供的一种EISv2和EISv3对图像处理的流程示意图;

图4是本申请实施例提供的一种视频防抖方法的流程示意图;

图5A是本申请实施例提供的一种录制开启录像功能的界面示意图;

图5B是本申请实施例提供的一种进入图库的界面示意图;

图5C是本申请实施例提供的另一种进入图库的界面示意图;

图5D是本申请实施例提供的一种基于裁剪框进行裁剪处理的示意图;

图5E是本申请实施例提供的一种触发回放操作的界面示意图;

图6是本申请实施例提供的另一种视频防抖方法的流程示意图;

图7是本申请实施例提供的一种视频防抖装置的结构示意图;

图8是本申请实施例提供的一种芯片的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

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

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

为了便于理解本申请实施例提供的方案,下面对本申请实施例涉及的相关概念进行介绍:

防抖技术:现流行的防抖技术包括:人工智能防抖(AI Image Stabilization,AIS):AIS是一种基于人工智能的图像防抖技术。可以在相机拍摄过程中,减少因为手抖动造成的画面模糊,获得更加稳定,清晰的画面。即使在拍摄视频或者拍摄夜景时,也可取得良好的防抖效果。

光学防抖(Optical Image Stabilization,OIS):OIS是相机镜头特殊马达结构实现的物理防抖技术。通过陀螺仪计算拍摄过程中手机的抖动情况,控制镜头移动进行光学补偿,实现防抖。在各种防抖技术中,多数场景中呈现的图像效果更好。

传感器防抖(Sensor Shift):传感器防抖是透过特殊马达结构实现的物理防抖技术。通过陀螺仪计算拍摄过程中手机抖动状况,控制传感器进行光学补偿,因移动的是传感器而非镜头,因此相较于传统OIS系统能提升动态捕捉效果,除X-Y轴外,支持R轴补偿,从而获得更好的拍摄体验。

电子防抖(Electric Image Stabilization,EIS):EIS是通过裁剪画面来实现。一般取感光芯片中心位置的部分画面进行出图,当手机抖动时,再在感光芯片上调整裁剪位置,进行画面补偿,实现画面稳定。

下面对电子设备100的硬件结构进行介绍。请参阅图1,图1是本申请实施例提供的电子设备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)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

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

在一些实施例中,处理器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)接口等。

充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。

电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电在其他一些实施例中,电源管理模块141也可以设置于处理器110中。

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

天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。

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

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

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

显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。其中,显示屏194可以是外折折叠屏,即向外折叠起来的显示屏。

电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP 用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。摄像头193可以包括前置摄像头和后置摄像头,前置摄像头位于屏幕的显示区域,后置摄像头位于屏幕的背部区域。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。

NPU为神经网络(neural-network ,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。

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

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如闪存器件等。

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

音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。

扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。

另外,在上述部件之上,运行有操作系统。例如iOS、Android等操作系统。电子设备100的操作系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于其他操作系统的电子设备。

图2是本申请实施例的电子设备100的软件结构框图。软件结构采用分层架构,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在本申请实施例中,可以将操作系统(以Android系统,Android系统运行在AP上为例)分为三层,从上至下分别为应用程序层(application,APP)、应用程序框架层(framework,FWK)和硬件抽象层(hardware abstraction layer,HAL)。

其中,应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机和图库等应用程序。在本申请实施例中,相机指的是相机应用。相机应用可以包括相机接口模块(可以称为CameraApi2Module)等。图库指的是图库应用,图库应用用于存放电子设备拍摄的图像和视频等。该图库应用还用于为用户提供回放功能,用户可以在图库应用中观看历史拍摄的图像和视频等。

应用程序框架层为应用开发者提供了用以访问核心功能的应用编程接口(application programming interface,API)框架及各种服务和管理工具,包括界面管理、数据访问、应用层的消息传递、应用包的管理、电话管理、定位管理等功能。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括媒体后处理中台以及相机服务。

媒体后处理中台用于负责图库应用的启动流程调度、进程的创建和管理、窗口的创建和管理等。

CameraService用于负责相机应用的启动流程调度、进程的创建和管理、窗口的创建和管理等。

硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,能够为操作系统提供虚拟硬件平台。如图2所示,硬件抽象层可以包括相机资源服务(CameraResourceService)、相机提供服务(CameraProvider)等。除此之外,该硬件抽象层还可以包括:相机设备会话接口(CameraDeviceSession)、相机预览画面接口(PreviewFlowImpl)等。其中,相机资源服务用于与硬件中的内存条进行交互;CameraProvider用于枚举单个设备并管理其状态,能够打开和关闭物理相机设备(如后置摄像头);CameraDeviceSession用于创建相机设备会话,存储相机设备会话所需的属性及配置信息等;PreviewFlowImpl以负责在预览画面的首帧显示出来后,告知APP时预览画面的首帧已经显示等。

内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。

为了更好的介绍本申请实施例,在图2的软件结构框图中,将涉及本申请视频防抖方法相关的硬件进行了展示。该硬件层包括:图像信号处理(Image Signal Processing,ISP)、陀螺仪以及传感器(Sensor)。上述三个硬件均可以包含在相机中,也可以是独立于相机的硬件。

其中,ISP在相机成像的整个环节中负责接收Sensor的原始信号数据,可以理解为整个相机拍照、录像的第一步处理流程,用于处理图像信号传感器输出的图像信号。主要作用是对前端图像传感器输出的信号做后期处理,主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等。Sensor:将光信号转换成电信号。陀螺仪(gyro):能够测量并感知物体在三维空间中的姿态角速度和方向。ISP中包括IFE:

该硬件抽象层中与相机资源服务进行交互的流程,以及与相机提供服务进行交互的流程为电子设备中各个硬件进行交互的流程的抽象流程示意图。

流程的抽象流程示意图可参见图3A所示,图像前端模块(Image Front End,IFE):Sensor输出的数据首先会到达IFE,该硬件模块会针对预览以及存储进图库的视频去做一些颜色校正、下采样、去马赛克统计3A数据的处理;图像进程处理引擎((Image ProcessingEngine,IPE):承担诸如硬件降噪、图像的裁剪、降噪、颜色处理、细节增强等图像处理工作。优化处理模块用于客制化实现各种功能,该优化处理模块可以是高通的ChiNode。上述中的IFE、IPE均在ISP中。

如图3A所示,在传感器将光信号转换成电信号后,将该电信号发送给IFE,由该IFE对该电信号进行颜色校正、下采样、去马赛克统计3A数据的处理得到成像的图像,再基于陀螺仪数据(各个时刻陀螺仪的偏移量等),对图像进行EISv2处理(EISv2为EIS处理中的一种方式),该EISv2处理是由IPE进行的。处理后得到图像对应的裁剪框A(只得到裁剪框A,不对该图像进行裁剪,将该图像、陀螺仪数据以及裁剪框A交予后续模块进行处理)。再通过优化处理模块对图像进行优化处理(美肤以及虚化等),并且将该优化处理交予IPE实施。最后在预览时,基于裁剪框A对图像进行裁剪,实现防抖处理。在存入图库时,将图像、陀螺仪数据以及裁剪框A进行存储,在电子设备空闲计算资源充足时,通过陀螺仪数据进行EISv3处理(EISv3为EIS处理中的一种方式)确定裁剪框B,基于裁剪框B对图像进行裁剪,实现防抖处理。并将基于裁剪框B后的图像更新在图像中。

其中,EISv2和EISv3均包括两个步骤,帧内矫正以及帧间防抖。EISv2和EISv3对图像处理的流程均可参见如图3B所示,首先对原始的图像301进行帧内矫正,得到图像302,再对图像302进行帧间防抖,得到裁剪后的图像303。虚线框为裁剪框。图像303为基于该裁剪框进行裁剪后的图像。也就是说,对图像302按照虚线框进行裁剪后,得到图像303,这一步骤成为帧间防抖。

上述的帧内矫正主要是基于当前帧的图像对图像进行矫正,也就是说帧内矫正只考虑本帧的图像;上述的帧间防抖是基于当前帧前面帧的图像以及前面帧对应的裁剪框进行防抖处理,也就是如图3B所示的裁剪框是基于本帧图像前面帧的图像以及前面帧对应的裁剪框确定的。

EISv2和EISv3最大的区别在于,EISv2在帧间防抖时考虑的前帧图像数量较少,而EISv3在帧间防抖时考虑的前帧图像数量较多,例如,当前帧为第30帧的图像,在对该第30帧图像进行EISv2的防抖处理时,帧内矫正后,基于第29帧图像对该第30帧图像进行帧间防抖。而对该第30帧图像进行EISv3的防抖处理时,帧内矫正后,基于第11帧图像~第20帧图像对该第30帧图像进行帧间防抖。

基于上述对EISv2和EISv3的介绍,EISv2和EISv3的帧内矫正是相同的,所以对于如图3A所示的流程,在进行EISv2后,在后续的流程中,可以传递的是进行帧内矫正后的图像,也就是例如图3B所示,原始的图像301进行EISv2后,将图像302向后续流程传递,图像302进行优化处理模块流程。从而在进行EISv3时,由于传递到EISv3的图像为进行过帧内矫正的图像,所以在EISv3时可以不再进行帧内矫正,从而整个流程减少一次帧内矫正,实现对电子设备的计算资源和功耗的节约。

基于上述所述,下面进一步对本申请实施例提供的一种视频防抖方法进行详细描述。如图4所示,该视频防抖方法包括如下步骤401~步骤404。图4所示的方法执行主体可以为上述提及的电子设备。或者,图4所示的方法执行主体可以为电子设备中的芯片,本申请实施例不做限定。为了方便描述,图4以电子设备为方法的执行主体为例进行说明。其中:

401、电子设备在开启电子设备录像功能后进行视频的录制。

其中,该开启电子设备录像功能可以是用户在相机应用点击录像按钮后开启的,例如,如图5A所示,在用户点击录制按钮501后,电子设备进行视频的录制。

402、电子设备将第一图像和第一图像对应的第一防抖信息进行存储,第一图像为录制的视频中的任意一帧图像。

其中,第一图像为录制的视频中的任意一帧图像,在用户开启视频录制后,电子设备的摄像头实时捕捉画面,第一图像为该电子设备的摄像头捕捉到的任意一帧的画面。对该第一图像进行存储可以是将该第一图像存储进电子设备的图库中。用户可以在图库中回放历史录制的视频。如图5B所示,用户可以在电子设备的主菜单里点击图库应用对应的图标,以进入图库应用,然后在图库应用的视频列表中点击想要进行回放的视频,以回放该视频。或者,用户可以在相机应用中点击图库按钮,以进入图库应用。如图5C所示,用户点击图库按钮502后进入图库应用,然后在图库应用的视频列表中点击想要进行回放的视频,以回放该视频。图5C中的录制完成的视频为时长12秒的视频,若一帧的时间为8.33毫秒,则该视频包括1440帧,该第一图像为1440帧中的任意一帧。

其中,在录制视频的过程中,若用户再次点击如图5A所示的录制按钮501,则结束录制,并且在如图5C中的图库按钮502上显示刚刚录制完成的视频的缩略图。也就是说,在未录制时,若点击录制按钮,则开启视频录制;若在录制过程中,点击录制按钮,则结束录制,将录制的适配进行存储。或者,用户也可以设定录制的时间,在录制的时间达到设定的时间时,结束视频的录制。例如,用户设定的录制的时间为30秒,在录制了30秒后,结束视频的录制。

在一种可能的实施例中,对该视频的各个帧图像的存储可以是:在录制过程中,一边录制一边进行存储,也可以是一边录制一边存储在缓存区内,当录制完成后,将缓存区内该视频的所有图像存储进图库中。

403、电子设备当检测到电子设备的空闲计算资源大于第一阈值时,基于第一防抖信息对第一图像进行防抖处理,得到第二图像。

其中,第二图像为对第一图像进行防抖处理后的图像。该防抖处理可以为上述中的EIS,具体可以为上述中的EISv3,EIS和EISv3可参见上述中的介绍,本申请在此不做赘述。该电子设备的空闲计算资源是基于电子设备的处理器等硬件确定的。例如该电子设备的处理器的空闲资源为70%,大于第一阈值(65%),则对第一图像进行防抖处理。该第一防抖信息用于对第一图像进行防抖处理,该第一防抖信息至少包括第一图像前帧图像的图像信息以及前帧对应的陀螺仪信息。

在一种可能的实施例中,第一防抖信息包括第一图像前M帧图像的图像信息以及第一图像前M帧对应的陀螺仪信息,M为正整数;电子设备基于第一防抖信息对第一图像进行防抖处理,得到第二图像,包括:电子设备基于第一图像前M帧图像的图像信息和第一图像前M帧对应的陀螺仪信息,确定第一图像对应的第一裁剪框;基于第一裁剪框对第一图像进行裁剪,得到第二图像。

其中,M为预先设置的值,例如该M为20,则第一防抖信息包括第一图像所在帧的前20帧图像的图像信息,以及第一图像所在帧的前20帧对应的陀螺仪信息。该图像信息可以包括图像中主体的位置信息等,该陀螺仪信息可参见上述的介绍,本申请在此不做赘述。第一裁剪框为第一图像对应的裁剪框,每一帧图像均对应一个裁剪框,例如视频包括1440帧图像,则这1440帧图像与1440个裁剪框一一对应。不同图像的裁剪框可以是不同的,也可以是相同的。

例如图5D所示,图5D中503标记的图像503为第一图像前一帧的图像,该图像中的主体位于图像的正中间。由于用户手抖,电子设备的摄像头的位置发生改变,导致第一图像中的主体在图像中的位置偏移,如图5D中的504所示,该主体在第一图像504中的位置向左上侧偏移。确定该第一图像504对应的第一裁剪框505,得到第二图像506,第二图像506中的主体也处于图像的正中间。

可选的,如果第一图像位于的帧小于M,则第一防抖信息包括第一图像前所有的图像信息以及第一图像前所有帧对应的陀螺仪信息。例如,该第一图像为第15帧的图像,M为20,该第一图像位于的帧小于M,也就是第一图像前没有20帧图像,则该第一防抖信息包括视频前15帧的图像信息以及前15帧对应的陀螺仪信息。该第一裁剪框是基于第一图像前所有的图像信息以及第一图像前所有帧对应的陀螺仪信息确定的,也就是前15帧的图像信息以及前15帧对应的陀螺仪信息确定的第一裁剪框。

通过上述方式,在存储时,将第一图像、第一图像前M帧图像的图像信息以及所述第一图像前M帧对应的陀螺仪信息一同进行存储,在完成后,再基于存储的一图像前M帧图像的图像信息以及所述第一图像前M帧对应的陀螺仪信息对第二图像进行防抖处理,使得电子设备具有充足的计算资源得到准确的第一裁剪框。

在一种可能的实施例中,第二图像所占内存小于第一图像所占内存。例如,第一图像如果占的内存为130KB,则第二图像占的内存为100KB。

在一种可能的实施例中,第一防抖信息还包括第二裁剪框,第二裁剪框是基于第一帧图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息确定的,其中,N为小于M的正整数;方法还包括:电子设备当将存储的第一图像更新为第二图像前,检测到对视频的回放操作时,基于第二裁剪框对第一图像进行裁剪,得到第三图像;显示第三图像。

其中,第二裁剪框可以是通过EISv2确定出的裁剪框,该EISv2可参见上述中的介绍,本申请在此不做赘述。由于EISv2相较于EISv3最大的区别在于EISv2在确定裁剪框时考虑的前帧图像数量较少。所以N为小于M的正整数。

示例性的,如图5A所示,在用户点击录制按钮501,结束视频录制后,如果用户立马点击图库,回放录制的视频,此时电子设备还未将第一图像更新为第二图像,电子设备只能基于EISv2确定的第二裁剪框,对第一图像进行裁剪,得到第三图像。

其中,对视频的回放操作包括:如图5B所示,用户在图库中点击进行回放的视频后,电子设备检测到对视频的回放操作;或者如图5E所示,用户在选择要进行回放的视频后,点击播放按钮,电子设备检测到对视频的回放操作。还可以是其他操作触发电子设备检测到对视频的回放操作,本申请对此不做限制。

通过上述方式,由于在存储第一图像时,同时存储第二裁剪框,所以在视频录制完成后,用户立刻进行回放,也可以进行防抖处理。确保了用户进行回放时,能够快速高效地显示防抖处理后的第三图像。

在一种可能的实施例中,在将第一图像和第一图像对应的第一防抖信息进行存储之前,方法还包括:电子设备确定第一图像前N帧对应的陀螺仪信息以及第一图像前N帧的图像信息;基于第一图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息,确定第一图像对应的第二裁剪框。

其中,每一帧对应的一个图像,如果每1/5帧对应一个陀螺仪信息,则一帧图像对应的陀螺仪信息是基于这一帧图像内的五个陀螺仪信息确定的。例如,第3帧的图像对应的陀螺仪信息,可以是基于第二帧与第三帧之间的五个陀螺仪信息确定的。

电子设备基于第一图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息,确定第一图像对应的第二裁剪框,可以参见上述中的电子设备基于第一图像前M帧图像的图像信息以及第一图像前M帧对应的陀螺仪信息,确定第一图像对应的第一裁剪框。本申请在此不做赘述。

通过上述方式,在存储第一图像前,确定出第二裁剪框,确保在第一图像更新为第二图像前,用户对录制的视频进行回放时,该视频也是进行了防抖处理的。并且,第二裁剪框考虑的帧图像的图像信息以及陀螺仪信息更少,所以更节约电子设备的计算资源。

404、电子设备将存储的第一图像更新为第二图像。

在一种可能的实施例中,当将存储的第一图像更新为第二图像后,检测到对第一图像所在录像视频的回放操作时,显示第二图像。

其中,在第一图像更新完成后,如果进行回放操作,则显示的图像为第二图像,也就是进行了防抖处理后的图像,具体可以是进行了EISv3后的图像。

通过上述方式,在存储了第一图像和第一图像对应的防抖信息后,在电子设备的计算资源充足时,再对第一图像进行防抖处理。而预览画面的防抖处理是在获取图像后实时进行的,所以避免了预览画面和存储的第一图像同时并行进行防抖处理,从而实现计算资源错峰,从而有利于减少在同一时间的计算资源的消耗。

下面进一步对本申请实施例提供的另一种视频防抖方法进行详细描述。如图6所示,该视频防抖方法包括如下步骤601~步骤605。图6所示的方法执行主体可以为上述提及的电子设备。或者,图6所示的方法执行主体可以为电子设备中的芯片,本申请实施例不做限定。为了方便描述,图6以电子设备为方法的执行主体为例进行说明。其中:

601、电子设备在开启电子设备录像功能后进行视频的录制。

该步骤可参见上述步骤401中的介绍,本申请在此不做赘述。

602、电子设备将第一图像和第一图像对应的第一防抖信息进行存储,第一图像为录制的视频中的任意一帧图像。

该步骤可参见上述步骤402中的介绍,本申请在此不做赘述。

603、电子设备当将存储的第一图像更新为第二图像前,检测到对视频的回放操作时,基于第二裁剪框对第一图像进行裁剪,得到第三图像。

其中,该步骤可参见上述步骤403中的介绍,与步骤403不同的是该实施例下的第一图像为进行优化处理后的第一图像,该优化处理可以具体为对第一图像进行美肤处理以及对第一图像进行虚化处理等。本申请对此不做限制。

604、电子设备显示第三图像。

该步骤可参见上述步骤604中的介绍,也就是说,步骤603和步骤604这条分支为对视频进行存储时,在还未对存储的第一图像进行防抖处理之前,电子设备采用前序流程(如图3A中的EISv2)中得到的裁剪框,先对第一图像进行防抖处理。

605、基于第二裁剪框对第一图像进行裁剪,得到第四图像,并在预览界面中显示第四图像。

其中,第四图像与第三图像是相同的,第四图像和第三图像都是基于第二裁剪框对第一图像进行裁剪后得到的。但是第四图像和第三图像不为同一个图像,第四图像用于预览显示,也就是用户在拍摄时,实时在电子设备的显示屏上显示摄像头捕捉到的画面;而第三图像用于存储进图库,在用户进行回放时,显示在电子设备的显示屏上。

也就是说,该图6所示的实施例下,无论是用于预览还是存储的图像,均只需要进行一次优化处理。

请参见图7,图7为本申请实施例提供的一种视频防抖装置700的结构示意图。图7所示的视频防抖装置可以是电子设备,也可以是电子设备中的装置,或者是能够和电子设备匹配使用的装置。图7所示的视频防抖装置可以包括处理单元701和存储单元702。其中:

处理单元701,用于在开启电子设备录像功能后进行视频的录制;

存储单元702,用于将第一图像和第一图像对应的第一防抖信息进行存储,第一图像为录制的视频中的任意一帧图像;

处理单元701,还用于当检测到电子设备的空闲计算资源大于第一阈值时,基于第一防抖信息对第一图像进行防抖处理,得到第二图像;将存储的第一图像更新为第二图像。

在一种可能的实现方式中,第一防抖信息包括第一图像前M帧图像的图像信息以及第一图像前M帧对应的陀螺仪信息,M为正整数;处理单元701,还用于基于第一图像前M帧图像的图像信息和第一图像前M帧对应的陀螺仪信息,确定第一图像对应的第一裁剪框;基于第一裁剪框对第一图像进行裁剪,得到第二图像。

在一种可能的实现方式中,处理单元701,还用于当将存储的第一图像更新为第二图像后,检测到对第一图像所在录像视频的回放操作时,显示第二图像。

在一种可能的实现方式中,第一防抖信息还包括第二裁剪框,第二裁剪框是基于第一帧图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息确定的,其中,N为小于M的正整数;处理单元701,还用于当将存储的第一图像更新为第二图像前,检测到对视频的回放操作时,基于第二裁剪框对第一图像进行裁剪,得到第三图像;显示第三图像。

在一种可能的实现方式中,处理单元701,还用于确定第一图像前N帧对应的陀螺仪信息以及第一图像前N帧的图像信息;基于第一图像前N帧图像的图像信息以及第一图像前N帧对应的陀螺仪信息,确定第一图像对应的第二裁剪框。

在一种可能的实现方式中,第一图像为优化处理后的得到的图像;处理单元701,还用于基于第二裁剪框对第一图像进行裁剪,得到第三图像;基于第二裁剪框对第一图像进行裁剪,得到第四图像,并在预览界面中显示第四图像。

在一种可能的实现方式中,第二图像所占内存小于第一图像所占内存。

对于视频防抖装置可以是芯片或芯片系统的情况,可参见图8所示的芯片的结构示意图。图8所示的芯片800包括处理器801、接口802。可选的,还可包括存储器803。其中,处理器801的数量可以是一个或多个,接口802的数量可以是多个。

对于芯片用于实现本申请实施例中电子设备的情况:

所述接口802,用于接收或输出信号;

所述处理器801,用于执行电子设备的数据处理操作。

以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

可以理解的是,本申请实施例中的一些可选的特征,在某些场景下,可以不依赖于其他特征,比如其当前所基于的方案,而独立实施,解决相应的技术问题,达到相应的效果,也可以在某些场景下,依据需求与其他特征进行结合。相应地,本申请实施例中给出的视频防抖装置也可以相应的实现这些特征或功能,在此不予赘述。

应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序包括程序指令,当该程序指令在电子设备上运行时,实现上述任一方法实施例的功能。

本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机实现上述任一方法实施例的功能。

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

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 开关量信号防抖判别方法及开关量信号防抖判别装置
  • 视频防抖拼接方法及相关设备
  • 一种视频防抖方法及相关设备
技术分类

06120116513403