CN116709023A - 视频处理方法和装置 - Google Patents

视频处理方法和装置 Download PDF

Info

Publication number
CN116709023A
CN116709023A CN202211608819.7A CN202211608819A CN116709023A CN 116709023 A CN116709023 A CN 116709023A CN 202211608819 A CN202211608819 A CN 202211608819A CN 116709023 A CN116709023 A CN 116709023A
Authority
CN
China
Prior art keywords
shake
shake parameter
values
video
parameter set
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.)
Granted
Application number
CN202211608819.7A
Other languages
English (en)
Other versions
CN116709023B (zh
Inventor
李壮
唐巍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211608819.7A priority Critical patent/CN116709023B/zh
Publication of CN116709023A publication Critical patent/CN116709023A/zh
Application granted granted Critical
Publication of CN116709023B publication Critical patent/CN116709023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Studio Devices (AREA)

Abstract

本申请提供了一种视频处理方法和装置,能够提高视频防抖处理方法的效率,提高用户体验。该方法包括:确定多个防抖参数组,多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,N个防抖参数用于确定视频的抖动误差;将多个防抖参数组中的部分防抖参数组的初始值输入至信赖域算法,得到部分防抖参数组的更新值;将多个防抖参数组中除部分防抖参数组之外的剩余防抖参数组的初始值和部分防抖参数组的更新值输入至群智能进化算法,得到剩余防抖参数组的更新值;基于多个防抖参数组的更新值,确定目标防抖参数组,并将目标防抖参数组的更新值确定为N个防抖参数的目标取值,目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。

Description

视频处理方法和装置
技术领域
本申请涉及终端技术领域,尤其涉及一种视频处理方法和装置。
背景技术
用户使用终端设备拍摄视频时,通常会因为终端设备放置不稳定从而出现拍摄画面抖动的情况。为了减小视频的抖动程度,在终端设备上市之前,研发人员通常会采用电子防抖技术和光学防抖技术对终端设备进行防抖处理,即研发人员会设定终端设备中的陀螺仪时延、陀螺仪零漂、驱动马达位置偏置、驱动马达于X轴和Y轴方向的补偿零漂等防抖参数,从而使得终端设备在后续拍摄视频的过程中,能够根据上述的防抖参数对镜头进行补偿移动,或者对拍摄的视频进行防抖处理,从而减小拍摄的视频的抖动程度。
终端设备上市后,随着用户使用终端设备的时间的增长,终端设备中的器件会出现老化、轻微损伤等情况,使得终端设备根据上市之前设定的防抖参数进行防抖处理的效果下降。因此,目前终端设备会每间隔一定时间段,就对上述的防抖参数进行调整,以使调整后的防抖参数与终端设备更加适配,从而使得终端设备拍摄的视频的抖动程度能够进一步减小。
然而,目前更新终端设备的防抖参数的效率较低,使得视频防抖处理方法的效率较低。
发明内容
本申请提供一种视频处理方法和装置,能够提高减小视频抖动程度的方法的效率,从而提高用户体验。
第一方面,提供了一种视频处理方法,该方法包括:确定多个防抖参数组,所述多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,所述N个防抖参数用于确定视频的抖动误差,N为正整数;将所述多个防抖参数组中的部分防抖参数组的初始值输入至信赖域算法,得到所述部分防抖参数组的更新值,所述部分防抖参数组的更新值是基于测试视频的抖动误差确定的;将所述多个防抖参数组中除所述部分防抖参数组之外的剩余防抖参数组的初始值和所述部分防抖参数组的更新值输入至群智能进化算法,得到所述剩余防抖参数组的更新值,所述剩余防抖参数组的更新值是基于所述测试视频的抖动误差确定的;基于所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组,并将所述目标防抖参数组的更新值确定为所述N个防抖参数的目标取值,所述目标取值对应的所述测试视频的抖动误差最小,所述目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。
本申请提供的视频处理方法,首先确定多个防抖参数组,每个防抖参数组中包括至少一个防抖参数,并且每个防抖参数组中的每个防抖参数均有一个初始值,首先通过信赖域算法对部分防抖参数组进行优化更新,得到部分防抖参数组的更新值;然后基于部分防抖参数组的更新值和多个防抖参数组中除了部分防抖参数组之外的剩余防抖参数组的初始值,通过群智能进化算法对剩余防抖参数组进行优化更新,得到剩余防抖参数组的更新值,再根据剩余防抖参数组的更新值和部分防抖参数组的更新值,能够确定目标防抖参数组的取值,相较于其他防抖参数组的更新值,目标防抖参数组的取值对应的测试视频的抖动误差最小。信赖域算法对防抖参数组的优化更新效率较高,通过信赖域算法能够快速得到部分防抖参数组的更新值,部分防抖参数组的更新值对应的测试视频的抖动误差小于部分防抖参数组的初始值对应的测试视频的抖动误差,这样,相比于部分防抖参数组的初始值,在对应的测试视频的抖动误差更下的部分防抖参数组的更新值的引导作用下,通过群智能进化算法,有助于减小剩余防抖参数组的更新值对应的测试视频的抖动误差,从而提高视频防抖处理的效率。
应理解,防抖参数为终端设备在拍摄视频时对视频进行防抖处理时所参考的参数。防抖参数可以为陀螺仪采样频率、陀螺仪零漂、陀螺仪温漂、陀螺仪数据时间戳与图像时间戳之间的延迟、传感器读出图像的时间、陀螺仪模组与传感器之间的旋转矩阵、驱动马达位置偏置、驱动马达在X轴方向的补偿零漂以及驱动马达在Y轴方向的补偿零漂等。防抖参数组为包括N个防抖参数的初始值的集合。
在第一方面的某些实现方式中,所述将所述多个防抖参数组中除所述部分防抖参数组之外的剩余防抖参数组的初始值和所述部分防抖参数组的更新值输入至群智能进化算法,得到所述剩余防抖参数组的更新值,包括:对于所述剩余防抖参数组中的每个剩余防抖参数组,分别从所述剩余防抖参数组的初始值和所述部分防抖参数组的更新值中,选择至少一组数值,所述至少一组数值是按照优先选择未选过的数值的原则确定的;根据所述每个剩余防抖参数组的初始值和所述每个剩余防抖参数组对应的所述至少一组数值,确定所述每个剩余防抖参数组的变异值;基于所述测试视频的抖动误差,从所述每个剩余防抖参数组的变异值和所述每个剩余防抖参数组的初始值中,确定所述每个剩余防抖参数组的更新值。
通过在选择至少一组数值时按照优选选择未选过的数值的原则,使得在通过群智能进化算法分别优化更新剩余防抖参数组的初始值时,选择得到的至少一组数值会选择到部分防抖参数组的更新值,由于部分防抖参数组的更新值对应的测试视频的抖动误差小于等于部分防抖参数组的初始值对应的测试视频的抖动误差,这样,相比于部分防抖参数组的初始值,在部分防抖参数组的更新值的引导作用下,有助于减小剩余防抖参数组的更新值对应的测试视频的抖动误差,进而提高视频防抖处理方法的效率。
在第一方面的某些实现方式中,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最小的防抖参数组。
通过采用效率较高的信赖域算法对多个防抖参数组中使得测试视频的抖动误差最小的防抖参数组进行优化更新,得到该防抖参数组的更新值,相比于多个防抖参数的初始值对应的测试视频的抖动误差,该防抖参数组的更新值对应的测试视频的抖动误差最小,这样,在该防抖参数组的更新值的引导作用下,有助于减小剩余防抖参数组的更新值对应的测试视频的抖动误差,从而进一步提高视频防抖处理方法的效率。
在第一方面的某些实现方式中,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最大的防抖参数组。
通过采用效率较高的信赖域算法对多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组进行优化更新,得到该防抖参数组的更新值,使得多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组对应的测试视频的抖动误差减小,相比于多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组的初始值,在多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组的更新值的引导作用下,有助于减小剩余防抖参数组的更新值对应的测试视频的抖动误差,从而进一步提高视频防抖处理方法的效率。
在第一方面的某些实现方式中,所述基于所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组,包括:基于所述多个防抖参数组的更新值,重复通过所述信赖域算法和所述群智能进化算法,确定所述多个防抖参数组的新的更新值,直至满足下列条件中的任一项为止:能够选择出使得所述测试视频的抖动误差小于或等第一预设阈值的防抖参数组;重复次数大于或等于第二预设阈值;重复时间大于或等于第三预设阈值;或者,所述测试视频的抖动误差在预设时长或预设重复次数内不再减小;基于所述多个防抖参数组的新的更新值和所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组。
通过重复通过信赖域算法和群智能进化算法,确定多个防抖参数组的新的更新值,在多个防抖参数组的更新值以及多次迭代得到的多组多个防抖参数组的新的更新值中,确定使测试视频的抖动误差最小的防抖参数组的取值,并将该防抖参数组的取值作为N个防抖参数的目标取值,这样,能够减小N个防抖参数的目标取值对应的测试视频的抖动误差。
在第一方面的某些实现方式中,所述N个防抖参数的目标取值是周期性更新的,和/或,基于用户的触发更新的。
通过上述方案,随着用户使用终端设备的时间的推移,终端设备的N个防抖参数的目标取值能够保持与终端设备具有良好的适配性,有助于使终端设备拍摄的视频具有较小的抖动程度。
在第一方面的某些实现方式中,所述测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值。
通过以拍摄时间与当前时间的时间间隔较小的视频作为测试视频,使得测试视频能够反应当前时间下终端设备在拍摄视频时的抖动程度,有助于提高视频防抖处理的准确率。
在第一方面的某些实现方式中,所述测试视频包括多个视频,所述多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值。
在测试视频包括的视频的数量为多个时,以拍摄时间之间的时间间隔较小的多个视频作为测试视频,使得测试视频中包括的各个视频对应的抖动误差相近,测试视频的抖动误差能够更加准确的反应终端设备在测试视频拍摄时间段拍摄视频的抖动程度,这样,通过以测试视频的抖动误差确定多个防抖参数组的更新值,能够提高N个防抖参数的目标取值与终端设备之间的适配性,有助于进一步提高终端设备视频防抖处理的准确率。
在第一方面的某些实现方式中,所述测试视频为用户新拍摄的视频,所述方法还包括:显示第一界面,所述第一界面包括提示消息,所述提示消息用于提示所述用户拍摄视频;检测到用户的拍摄指令,获取所述测试视频。
通过以用户新拍摄的视频作为测试视频,使得测试视频的抖动误差能够准确反应终端设备于当前时间下拍摄视频的抖动程度,这样,能够提高N个防抖参数的目标取值与终端设备之间的适配性,有助于提高视频防抖处理的准确率。
在第一方面的某些实现方式中,所述方法还包括:基于所述目标取值,通过驱动马达调整镜头的角度和位置,并对拍摄到的视频画面进行防抖处理。
应理解,驱动马达安装于终端设备中,并且能够推动终端设备的镜头的移动。根据目标取值,驱动马达调整镜头的角度和位置,从而弥补由于终端设备的运动造成的视频的抖动,这样,能够减小终端设备拍摄的视频的抖动程度。
第二方面,提供了一种视频处理装置,用于执行上述第一方面中任一种可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面中任一种可能的实现方式中的方法的模块。
第三方面,本申请提供了又一种视频处理装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
在一种实现方式中,该装置为终端设备。当该装置为终端设备时,上述通信接口可以是收发器,或,输入/输出接口。
在另一种实现方式中,该装置为配置于终端设备中的芯片。当该装置为配置于终端设备中的芯片时,上述通信接口可以是输入/输出接口。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。所述处理电路用于通过所述输入电路接收信号,并通过所述输出电路发射信号,使得所述处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现流程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现流程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互流程例如发送指示信息可以为从处理器输出指示信息的流程,接收能力信息可以为处理器接收输入能力信息的流程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1为本申请实施例提供的终端设备的结构示意图;
图2为本申请实施例的终端设备的软件结构框图;
图3为本申请实施例提供的一种视频处理方法的流程示意图;
图4为本申请实施例提供的信赖域算法的流程示意图;
图5为本申请实施例提供的另一种视频处理方法的流程示意图
图6为本申请实施例提供的一种视频处理装置的结构示意图;
图7为本申请实施例提供的另一种视频处理装置的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一数值和第二数值仅仅是为了区分不同的数值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a--c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中的终端设备也可以称为:用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
终端设备可以是一种向用户提供语音/数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端设备的举例包括:手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备,虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(sessioninitiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请对此并不限定。
作为示例而非限定,在本申请中,终端设备可以是物联网(internet of things,IoT)系统中的终端设备。物联网是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。示例性地,本申请实施例中的终端设备可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备是可以直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更可以通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
作为示例而非限定,在本申请实施例中,终端设备还可以是机器类型通信(machine type communication,MTC)中的终端设备。此外,终端设备还可以是作为一个或多个部件或者单元而内置于车辆的车载模块、车载模组、车载部件、车载芯片或者车载单元等,车辆通过内置的所述车载模块、车载模组、车载部件、车载芯片或者车载单元等可以实施本申请提供的方法。因此,本申请实施例也可以应用于车联网,例如车辆外联(vehicleto everything,V2X)、车间通信长期演进技术(long term evolution-vehicle,LTE-V)、车到车(vehicle-to-vehicle,V2V)技术等。
本申请实施例的终端设备具有摄像功能,能够拍摄并存储视频,例如手机、平板电脑、摄像机等。
为了更好的理解本申请实施例中的终端设备,下面结合图1对本申请实施例的终端设备的硬件结构进行详细说明。
图1为本申请实施例提供的终端设备100的结构示意图。如图1所示,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial 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)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备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的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块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可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备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的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端设备100可以设置至少一个麦克风170C。在另一些实施例中,终端设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180A检测所述触摸操作强度。终端设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性地,当按下快门,陀螺仪传感器180B检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端设备100是翻盖机时,终端设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180G检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备100对电池142加热,以避免低温导致终端设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。马达191具体还可以为驱动马达,用于在终端设备100拍摄视频时,根据终端设备100的防抖参数,例如驱动马达于X轴和Y轴方向的补偿零漂,控制终端设备100的镜头的位置和角度,从而使得终端设备100拍摄的视频的抖动较小。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端设备100中,不能和终端设备100分离。终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图2为本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图、图像渲染、合成和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含显示驱动,屏幕驱动、图像处理器(graphics processing unit,GPU)驱动、摄像头、以及传感器驱动等,本申请实施例对此不做限制。例如,屏幕驱动可以驱动屏幕亮屏或息屏。
用户使用终端设备拍摄视频,拍摄的视频中的画面通常会出现抖动的现象。这种视频抖动的现象通常是由于用户拍摄视频的终端设备放置不稳等原因造成的。为了减小视频的抖动,提高终端设备拍摄视频的质量,在终端设备上市之前,研发人员会采用电子防抖和光学防抖两种技术对终端设备进行防抖处理。
电子防抖是一种软件补偿算法,通过算法对传感器上的图像进行分析、采集,以机身抖动的程度来动态修正图像。光学防抖是一种通过镜头的运动来补偿终端设备的晃动的技术。在终端设备中,通过内置的陀螺仪能够检测到终端设备的晃动轨迹,并将晃动的幅度和轨迹转换为电信号发送至终端设备的处理器。处理器根据该电信号生成能够抵消终端设备的晃动的运动方式。终端设备通过控制镜头按照上述的运动方式运动,能够补偿终端设备的晃动,减小终端设备拍摄的视频的抖动程度。
为实现更好的防抖效果,终端设备通常在电子防抖的基础上结合光学防抖技术来对拍摄视频进行处理,处理过程中将涉及到终端设备中的陀螺仪时延、陀螺仪零漂、驱动马达位置偏置、驱动马达于X轴和Y轴方向的补偿零漂等防抖参数。因此,防抖参数与终端设备之间的适配性将会影响终端设备的视频防抖效果。在终端设备上市前,研发人员会对终端设备的防抖参数进行校准,以使终端设备能够根据防抖参数减小终端设备拍摄的视频的抖动程度。在终端设备上市后,随着用户使用终端设备的时间的增长,终端设备中的器件会出现老化、轻微损伤等情况,使得终端设备与上市之前设定的防抖参数之间的适配性下降,从而使终端设备的视频防抖效果变差。因此,终端设备需要每隔一定的时间段,对防抖参数进行更新。
目前,终端设备对防抖参数进行更新的方法通常为:对防抖参数在一定的取值范围内进行搜索,以确定在该取值范围内使得终端设备拍摄的视频的抖动误差较小的防抖参数取值。搜索方法可以为网格搜索、坐标下降法、群智能优化算法、信赖域算法等算法中的任意一种。然而,上述的算法的搜索效率较低,耗时较长,使得目前的视频防抖处理的效率较低。
为了解决上述问题,本申请提供一种视频处理方法,在防抖参数的取值范围内确定多个防抖参数初始值,首先通过信赖域算法对部分防抖参数初始值进行优化更新,得到部分防抖参数初始值的更新值;然后基于部分防抖参数初始值的更新值以及多个防抖参数初始值中除了部分防抖参数初始值之外的剩余防抖参数初始值,通过群智能进化算法对剩余防抖参数初始值进行优化更新,得到剩余防抖参数初始值的更新值,再根据剩余防抖参数的更新值和部分防抖参数的更新值,能够确定防抖参数的目标取值。基于目标取值,终端设备能够在拍摄视频的过程中调整镜头的位置和角度,和/或,对拍摄的视频进行防抖处理,从而使得视频的抖动程度能够减小。信赖域算法对防抖参数的优化更新效率较高,通过信赖域算法能够快速得到部分防抖参数的更新值,相较于部分防抖参数的初始值,部分防抖参数的更新值对应的测试视频的抖动误差更小,这样,相比于部分防抖参数的初始值的引导作用,在部分防抖参数的更新值的引导作用下,通过群智能进化算法,有助于减小得到的剩余防抖参数的更新值对应的测试视频的抖动误差。这样,能够高效的搜索得到使得测试视频的抖动误差满足预设条件的目标防抖参数组的取值,从而有助于提高视频防抖处理的效率。
下面结合图3至图5对本申请的视频处理方法进行详细介绍。本申请实施例的视频处理方法可以由具有摄像功能的终端设备执行,例如平板电脑、笔记本电脑、台式电脑、手机等,也可以为支持终端设备实现视频处理方法的芯片、芯片系统或处理器,还可以是能实现全部或部分终端设备功能的逻辑模块或软件,本申请对此不做具体限制。下面以终端设备为执行主体对本申请实施例的视频处理方法进行详细说明。
图3为本申请实施例提供的视频处理方法300的流程示意图。方法300由终端设备执行,该终端设备的硬件结构如图1所示,软件结构如图2所示。方法300包括以下步骤:
S301、确定多个防抖参数组,多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,N个防抖参数用于确定视频的抖动误差,N为正整数。
应理解,防抖参数为终端设备在拍摄视频时对视频进行防抖处理时所参考的参数。视频指任意的视频。示例性地,防抖参数可以为与终端设备100中包括的陀螺仪传感器180B、马达191相关的参数,例如可以为陀螺仪采样频率、陀螺仪零漂、陀螺仪温漂、陀螺仪数据时间戳与图像时间戳之间的延迟、传感器读出图像的时间、陀螺仪模组与传感器之间的旋转矩阵、驱动马达位置偏置、驱动马达在X轴方向的补偿零漂以及驱动马达在Y轴方向的补偿零漂等。防抖参数组为包括N个防抖参数的初始值的集合。多个防抖参数组中的每两个防抖参数组,包括的N个防抖参数均是相同的,包括的N个防抖参数中的同一个的防抖参数的初始值是不同的。示例性地,假设多个防抖参数组为3个防抖参数组:第一防抖参数组、第二防抖参数组以及第三防抖参数组,3个防抖参数组中的每个防抖参数组均包括陀螺仪零漂的初始值、传感器读出图像的时间的初始值以及驱动马达位置偏置的初始值,则第一防抖参数组中,陀螺仪零漂的初始值可以为a1,传感器读出图像的时间的初始值可以为b1,驱动马达位置偏置的初始值可以为c1;第二防抖参数组中,陀螺仪零漂的初始值可以为a2,传感器读出图像的时间的初始值可以为b2,驱动马达位置偏置的初始值可以为c2;第三防抖参数组中,陀螺仪零漂的初始值可以为a3,传感器读出图像的时间的初始值可以为b3,驱动马达位置偏置的初始值可以为c3
在一种可能的实施方式中,根据多个防抖参数组中每个防抖参数的取值范围,确定多个防抖参数组中每个防抖参数的初始值,每个防抖参数的初始值均在该防抖参数的取值范围之内。每个防抖参数的取值范围可以为终端设备上市之前,研发人员输入并存储于终端设备中的;或者,每个防抖参数的取值范围可以为终端设备根据终端设备当前状态下所设置的该防抖参数的取值确定的。示例性地,假设防抖参数组包括陀螺仪零漂的初始值、传感器读出图像的时间的初始值以及驱动马达位置偏置的初始值,陀螺仪零漂的取值范围为a4至a5;传感器读出图像的时间的取值范围可以为b4至b5;驱动马达位置偏置的取值范围可以为c4至c5。该三个取值范围可以为终端设备上市之前,研发人员输入并存储于终端设备中的,还可以为终端设备根据当前状态下其内设的陀螺仪零漂的取值、传感器读出图像的时间的取值以及驱动马达位置偏置的取值,按照一定的算法或函数,计算得到的。例如,假设终端设备当前状态下的陀螺仪零漂为a6,则陀螺仪零漂的取值范围可以根据a4=a6-i至a5=a6+i确定,i为大于0的任意值。
在另一种可能的实施方式中,多个防抖参数组中每个防抖参数的初始值可以根据每个防抖参数的取值范围均匀取值,或者,随机取值。多个防抖参数组中每个防抖参数的初始值的数量与防抖参数组的数量相同,防抖参数组的数量可以根据N个防抖参数的取值范围的大小确定。
在一个具体的示例中,假设防抖参数组包括陀螺仪零漂和传感器读出图像的时间,该两个防抖参数的取值范围均超过一百,此时,防抖参数组的数量可以设置为100,该100个防抖参数组中的每个防抖参数组均包括一个陀螺仪零漂的初始值和一个传感器读出图像的时间的初始值。陀螺仪零漂的100个初始值可以根据陀螺仪零漂的取值范围等分取值,得到100个在陀螺仪零漂的取值范围之间均匀分布的陀螺仪零漂的初始值;传感器读出图像的时间的100个初始值可以根据传感器读出图像的时间的取值范围等分取值,得到100个在传感器读出图像的时间的取值范围之间均匀分布的传感器读出图像的时间的初始值。传感器读出图像的时间的100个初始值中的每个初始值分别与传感器读出图像的时间的100个初始值中的任一初始值组成一个防抖参数组,共得到100个防抖参数组,每两个防抖参数组包括的陀螺仪零漂和传感器读出图像的时间的初始值不同。
在另一个具体的示例中,假设防抖参数组包括陀螺仪零漂和传感器读出图像的时间,该两个防抖参数的取值范围均小于10,此时,该两个防抖参数的取值范围均较小,防抖参数组的数量可以设置为10。10组防抖参数组中的陀螺仪零漂和传感器读出图像的时间初始值的确定方法与第一个示例类似,可参看上文,在此不再赘述。
在又一种可能的实施方式中,视频的抖动误差通过以下方式确定:基于视频中的特征点的位置信息和N个防抖参数确定抖动误差函数,基于抖动误差函数计算视频的抖动误差。基于视频中的特征点的位置信息和N个防抖参数确定抖动误差函数包括:对视频包括的每个帧图像进行特征点检测和选择,匹配对应的下一帧图像中的特征点,根据防抖参数对下一帧图像中的特征点进行运动估计和防抖处理。视频的个数可以为一个或者多个。视频中第i个视频的抖动误差函数为:
其中,i为正整数;ei为第i个视频的抖动误差;p为N个防抖参数;F为第i个视频包含的图像的帧数,F为正整数;M(xif;p)表示第f帧图像中的特征点xi f在N个防抖防抖参数p下基于运动估计和防抖处理后的位置信息。
视频的抖动误差函数为:
其中,i为正整数;ei为第i个视频的抖动误差;L为视频的个数,L为正整数;E为视频的抖动误差。在视频的个数为多个的情况下,视频的抖动误差为多个视频的抖动误差的平均值。
S302、将多个防抖参数组中的部分防抖参数组中的初始值输入至信赖域算法,得到部分防抖参数组的更新值,部分防抖参数组的更新值是基于测试视频的抖动误差确定的。
应理解,部分防抖参数组可以为多个防抖参数组中的一个或者多个,例如,多个防抖参数组指10个防抖参数组,则部分防抖参数组可以指该10个防抖参数组中的任意1个、2个或者3个等。测试视频指对终端设备的防抖参数进行更新时所使用的该终端设备拍摄的视频。测试视频的抖动误差可以表示测试视频的抖动程度,抖动程度越大,抖动误差越大。部分防抖参数组的更新值可以为与部分防抖参数组的初始值相同或者不同的值。信赖域算法是一种求解非线性优化问题的数值的迭代方法。信赖域算法从给定的部分防抖参数组的初始值出发,通过逐步迭代,不断改进,直到获得满意的近似最优解为止,该最优解即为部分防抖参数组的更新值。
可选地,部分防抖参数组中包括多个防抖参数组中使得测试视频的抖动误差最小的防抖参数组。
可选地,部分防抖参数组中包括多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组。
S303、将多个防抖参数组中除部分防抖参数组之外的剩余防抖参数组的初始值和部分防抖参数组的更新值输入至群智能进化算法,得到剩余防抖参数组的更新值,剩余防抖参数组的更新值是基于测试视频的抖动误差确定的。
应理解,剩余防抖参数组的个数可以为一个或者多个。剩余防抖参数组的更新值可以为与剩余防抖参数组的初始值相同或者不同的值。在通过群智能进化算法得到剩余防抖参数组的更新值过程中,会依据部分防抖参数组的更新值对剩余防抖参数组的初始值进行变异更新。这样,由于部分防抖参数组的更新值的引导作用,有助于使剩余防抖参数组的更新值对应的测试视频的抖动误差更小。
示例性地,假设多个防抖参数组包括第一防抖参数组、第二防抖参数组、第三防抖参数组、第四防抖参数组以及第五防抖参数组,且该五个防抖参数组中均包括陀螺仪零漂和传感器读出图像的时间的初始值,五个防抖参数组中每两个防抖参数组中的陀螺仪零漂的初始值均不相同,五个防抖参数组中每两个防抖参数组中的传感器读出图像的时间的初始值也均不相同。若部分防抖参数组为第一防抖参数组和第四防抖参数组,则剩余防抖参数组为第二防抖参数组、第三防抖参数组以及第五防抖参数组。假设第一防抖参数组包括陀螺仪零漂的初始值(x1)和传感器读出图像的时间的初始值(y1),第一防抖参数组的更新值为陀螺仪零漂的更新值(x1’)和传感器读出图像的时间的更新值(y1’);第二防抖参数组包括陀螺仪零漂的初始值(x2)和传感器读出图像的时间的初始值(y2);第三防抖参数组包括陀螺仪零漂的初始值(x3)和传感器读出图像的时间的初始值(y3);第四防抖参数组包括陀螺仪零漂的初始值(x4)和传感器读出图像的时间的初始值(y4),第四防抖参数组的更新值为陀螺仪零漂的更新值(x4’)和传感器读出图像的时间的更新值(y4’);第五防抖参数组包括陀螺仪零漂的初始值(x5)和传感器读出图像的时间的初始值(y5)。在通过群智能进化算法对第二防抖参数组进行优化更新时,需要基于x1’、x2、x3、x4’以及x5中的一个或者多个,和y1’、y2、y3、y4’以及y5中的一个或者多个。得到第二防抖参数组的更新值:陀螺仪零漂的更新值(x2’)和传感器读出图像的时间的更新值(y2’),x2与x2’可能相同或者不同,y2与y2’可能相同或者不同。
S304、基于多个防抖参数组的更新值,从多个防抖参数组中,确定目标防抖参数组,并将目标防抖参数组的更新值确定为N个防抖参数的目标取值,目标取值对应的测试视频的抖动误差最小,目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。
应理解,目标防抖参数组为多个防抖参数组中能够使测试视频的抖动误差最小的一个防抖参数组。示例性地,多个防抖参数组包括第一防抖参数组、第二防抖参数组、第三防抖参数组、第四防抖参数组以及第五防抖参数组,在该五个防抖参数组中,第二防抖参数组的更新值对应的测试视频的抖动误差最小,则第二防抖参数组可以为目标防抖参数组。目标取值指终端设备最终确定的N个防抖参数的取值。防抖处理指终端设备基于N个防抖参数的目标取值,控制镜头运动和/或对拍摄到的视频画面进行处理以使拍摄的视频抖动程度减小的操作。
本申请提供的视频处理方法,首先确定多个防抖参数组,每个防抖参数组中包括至少一个防抖参数,并且每个防抖参数组中的每个防抖参数均有一个初始值,首先通过信赖域算法对部分防抖参数组进行优化更新,得到部分防抖参数组的更新值;然后基于部分防抖参数组的更新值和多个防抖参数组中除了部分防抖参数组之外的剩余防抖参数组的初始值,通过群智能进化算法对剩余防抖参数组进行优化更新,得到剩余防抖参数组的更新值,再根据剩余防抖参数组的更新值和部分防抖参数组的更新值,能够确定目标防抖参数组的取值,相较于其他防抖参数组的更新值,目标防抖参数组的取值对应的测试视频的抖动误差最小。信赖域算法对防抖参数组的优化更新效率较高,通过信赖域算法能够快速得到部分防抖参数组的更新值,部分防抖参数组的更新值对应的测试视频的抖动误差小于部分防抖参数组的初始值对应的测试视频的抖动误差,这样,相比于部分防抖参数组的初始值,在对应的测试视频的抖动误差更小的部分防抖参数组的更新值的引导作用下,通过群智能进化算法,有助于减小剩余防抖参数组的更新值对应的测试视频的抖动误差,从而提高视频防抖处理的效率。
下面结合图4,以部分防抖参数组的数量为1,且部分防抖参数组为第一防抖参数组为例,对S302中所述的信赖域算法进行详细的描述。
图4为本申请实施例提供的信赖域算法400的流程示意图。如图4所示,算法400包括以下步骤:
S401、根据第一防抖参数的初始值以及信赖域半径,确定第一防抖参数组中每个防抖参数的取值范围。
应理解,信赖域半径为一个大于0的值,例如,假设第一防抖参数组中包括陀螺仪零漂的初始值(x0),信赖域半径为m,m为大于0的值,则陀螺仪零漂的取值范围为x0-m至x0+m。
S402、根据第一防抖参数组中每个防抖参数的取值范围,确定多个第一防抖参数组的初始值。
应理解,第一防抖参数组中包括多个防抖参数的情况下,多个防抖参数对应的信赖域半径可以相同或者不同,多个防抖参数中每个防抖参数对应的初始值的数量是相同的,即根据第一防抖参数组中每个防抖参数的取值范围,可以得到多个第一防抖参数组的初始值。示例性地,假设第一防抖参数组包括陀螺仪零漂和传感器读出图像的时间,陀螺仪零漂的取值范围为a1至a2,在a1至a2范围内得到10个陀螺仪零漂的初始值;传感器读出图像的时间的取值范围为b1至b2,在b1至b2范围内得到10个传感器读出图像的时间的初始值,则10个陀螺仪零漂的初始值中的一个初始值和10个传感器读出图像的时间的初始值中的一个初始值组合得到1个第一防抖参数组的初始值,一共能够得到10个第一防抖参数组的初始值。
S403、基于第一防抖参数组的多个初始值构造二次近似函数。
S404、在多个第一防抖参数组的初始值集中,确定使得测试视频的抖动误差最小的第一防抖参数组的初始值(K)。
S405、基于K、可信赖域半径和二次近似函数,获得试探步长和K的候选更新值(K’)。
S406、在K和K’中,确定第一防抖参数组的更新值,第一防抖参数组的更新值为K和K’中使得测试视频的抖动误差最小的值。
S407、在满足停止条件的情况下,此流程结束。
在一种可能的实施方式中,停止条件可以下述条件中的任意一种:
第一防抖参数组的更新值对应的测试视频的抖动误差小于或等于第一阈值;
S404至S407的重复次数大于或等于第二阈值;
S404至S407的重复时间大于或等于第三阈值;或者,
测试视频的抖动误差在特定时长或特定重复次数内不再减小。
S408、在不满足停止条件的情况下,基于第一防抖参数组的更新值确定新的多个第一防抖参数组的初始值和新的二次近似函数。
S409、根据试探步长和新的二次近似函数,确定新的信赖域半径,然后重新执行S404,S404至S409是循环执行的。
作为一个可选的实施例,S301具体可以通过以下方式实现:对N个防抖参数的取值范围进行归一化处理,以使N个防抖参数的取值范围均为0至1;在0至1之间确定多个初始值,得到多个防抖参数组的初始值;对应地,在S304中,将目标防抖参数组的更新值确定为N个防抖参数的目标取值,包括:将目标防抖参数组的更新值进行逆归一化处理,得到N个防抖参数的目标取值。
应理解,归一化处理可以为通过一定的算法或函数将某一个数值改变为0至1之间的数值的方法。逆归一化处理指根据得到的目标防抖参数组的更新值,基于归一化处理的函数或算法,得到目标防抖参数组的更新值对应的归一化处理之前的数值的过程。
示例性地,对于陀螺仪零漂,其取值范围为Tmin至Tmax,则对于陀螺仪零漂的取值范围中的任意值T,T的归一化处理可以通过以下公式计算得到:
其中,T为陀螺仪零漂的取值范围内的任一取值,Tmax为T的取值范围的最大值,Tmin为T的取值范围的最小值,T’为归一化的T。通过上述的公式,对防抖参数的取值范围的归一化处理,将得到防抖参数组的搜索范围为0至1。假设得到的目标防抖参数组的更新值为0.5,则T’为0.5,Tmin和Tmax是已知的,此时能够通过上述公式求解得到T,T为目标防抖参数组的更新值对应的归一化处理之前的数值,即防抖参数T的目标取值。按照上述过程,根据N个防抖参数中的每个防抖参数的取值范围对应的Tmin和Tmax,能够得到N个防抖参数中的每个防抖参数的目标取值。
通过归一化处理,使得终端设备可以将多个防抖参数的取值范围均变化为0至1,然后终端设备在0到1之间分别确定多个初始值,多个初始值中的每个初始值分别能够代表N个防抖参数的实际值,使得能够以一个0至1的数值表示多个防抖参数的实际值,最后通过逆归一化处理目标防抖参数组的更新值,能够确定N个防抖参数的目标取值。这样,能够通过信赖域算法和群智能进化算法同时对多个防抖参数进行优化更新,有助于提高视频防抖处理的效率。
作为一个可选的实施例,S303具体可以通过以下方式实现:对于剩余防抖参数组中的每个剩余防抖参数组,分别从剩余防抖参数组的初始值和部分防抖参数组的更新值中,选择至少一组数值,至少一组数值是按照优先选择未选过的数值的原则确定的;根据每个剩余防抖参数组的初始值和每个剩余防抖参数组对应的至少一组数值,确定每个剩余防抖参数组的变异值;基于测试视频的抖动误差,从每个剩余防抖参数组的变异值和每个剩余防抖参数组的初始值中,确定每个剩余防抖参数组的更新值。
对于剩余防抖参数组中的每个剩余防抖参数组,分别从剩余防抖参数组的初始值和部分防抖参数组的更新值中,选择至少一组数值,至少一组数值是按照优先选择未选过的数值的原则确定的。应理解,通过群智能进化算法优化更新每个剩余防抖参数组时,均需要选择至少一组数值,选择的至少一组数值用于更新对应的剩余防抖参数组。优先选择未选过的数值的原则是指,对于剩余防抖参数组中的第二防抖参数组,在选择与第二防抖参数组对应的至少一组数值时,在剩余防抖参数组的初始值和部分防抖参数组的更新值中,选择剩余防抖参数组中除了第二防抖参数组之外的防抖参数组对应的至少一组数值之外的数值。
示例性地,假设多个防抖参数组包括第一防抖参数组、第二防抖参数组、第三防抖参数组、第四防抖参数组以及第五防抖参数组,该五个防抖参数组的初始值依次分别由H1、H2、H3、H4和H5表示,其中第二防抖参数组和第三防抖参数组为部分防抖参数组,对应地,第一防抖参数组、第四防抖参数组以及第五防抖参数组为剩余防抖参数组。通过信赖域算法,得到第二防抖参数组和第三防抖参数组的更新值,分别用H2’和H3’表示。第一防抖参数组、第四防抖参数组以及第五防抖参数组需要分别通过群智能进化算法优化更新。在优化更新H1时,从H1、H2’、H3’、H4和H5中选择两组数值,例如选择H3’和H5;在优化更新H4时,从H1、H2’、H3’、H4和H5中选择两组数值,由于H3’和H5在优化更新H1时已经选择过,因此优先在H1、H2’和H4中选择两组数值,例如,可以选择H1和H2’;在优化更新H5时,从H1、H2’、H3’、H4和H5中选择两组数值,H4未被选择过,因此会选择H4,并在H1、H2’、H3’和H5中再任意选择一组数值。
在一种可能的实施方式中,在防抖参数组包括多个防抖参数的情况下,对于剩余防抖参数组中的第二防抖参数组,第二防抖参数组中不同的防抖参数对应的至少一个防抖参数可以在不同的防抖参数组中选择得到。示例性地,多个防抖参数组包括第一防抖参数组、第二防抖参数组、第三防抖参数组以及第四防抖参数组,每个防抖参数组包括陀螺仪零漂和传感器读出图像的时间的初始值,则第一防抖参数组的初始值包括第一陀螺仪零漂的初始值和第一传感器读出图像的时间的初始值;第二防抖参数组的初始值包括第二陀螺仪零漂的初始值和第二传感器读出图像的时间的初始值;第三防抖参数组的初始值包括第三陀螺仪零漂的初始值和第三传感器读出图像的时间的初始值;第四防抖参数组的初始值包括第四陀螺仪零漂的初始值和第四传感器读出图像的时间的初始值。第一防抖参数组为部分防抖参数组,第一防抖参数组的更新值为第一陀螺仪零漂的更新值和第一传感器读出图像的时间的更新值。在通过群智能进化优化优化更新第二防抖参数组时,至少一组数值为1组防抖参数组,选择的至少一组数值可以包括第一陀螺仪零漂的更新值和第四传感器读出图像的时间的初始值。
根据每个剩余防抖参数组的初始值和每个剩余防抖参数组对应的至少一组数值,确定每个剩余防抖参数组的变异值。
本领域的技术人员可以理解,变异值是基于一个剩余防抖参数组的初始值和该剩余防抖参数组对应的至少一组数值得到的,变异值可以为与该剩余防抖参数组的初始值相同或者不同的数值,每个剩余防抖参数的变异值可以通过对每个剩余防抖参数的初始值依次经过变异处理和交叉处理得到。具体地,变异处理可以为通过一定的算法或函数对每个剩余防抖参数的初始值进行处理得到每个剩余防抖参数的变化值的过程。示例性地,对于剩余防抖参数组的初始值中的第三防抖参数组中陀螺仪零漂的初始值(c1),选择的与其对应的至少一组数值为第四防抖参数组中陀螺仪零漂的初始值(c4)和第五防抖参数组中陀螺仪零漂的初始值(c5),c1的变化值(c1’)可以通过以下公式计算得到:c1’=c1+F*(c4-c5);其中,F为缩放因子,并且缩放因子通常为小于2大于0的任意预设值。上述通过公式对c1进行处理得到c1’的过程可以称为对c1的变异处理。然后终端设备再对c1’进行交叉处理:终端设备首先生成随机数值r(0≤r≤1),在r大于或等于交叉概率(CR)的情况下,第三防抖参数组的变异值(c1”)即为c1’,否则,c1”=c1,交叉概率为预设的0到1之间的数值。
基于测试视频的抖动误差,从每个剩余防抖参数组的变异值和每个剩余防抖参数组的初始值中,确定每个剩余防抖参数组的更新值。
应理解,每个剩余防抖参数组的更新值为每个剩余防抖参数组的变异值和每个剩余防抖参数组的初始值中,使测试视频的抖动误差更小的数值。示例性地,剩余防抖参数组中第三防抖参数组的初始值为D1,第三防抖参数组的变异值为D1’,若D1对应的测试视频的抖动误差小于D1’对应的测试视频的抖动误差,则D1为第三防抖参数组的更新值。
本领域的技术人员可以理解,在剩余防抖参数组包括多个剩余防抖参数组的情况下,多个剩余防抖参数组可以并行通过群智能进化的方法进行优化更新,也可以依次分别通过群智能进化的方法进行优化更新。
作为一个可选的实施例,S304具体可以通过以下方式实现:
基于多个防抖参数组的更新值,重复通过信赖域算法和群智能进化算法,确定多个防抖参数组的新的更新值,直至满足下述四种停止条件中的任一条件为止:
能够选择出使得对应的测试视频的抖动误差小于或等于第一预设阈值的防抖参数组;
重复次数大于或等于第二预设阈值;
重复时间大于或等于第三预设阈值;或者,
测试视频的抖动误差在预设时长或预设重复次数内不再减小;
然后基于多个防抖参数组的新的更新值和多个防抖参数组的更新值,从多个防抖参数组中,确定目标防抖参数组,并将目标防抖参数组的更新值确定为N个防抖参数的目标取值。
应理解,基于多个防抖参数组的更新值,通过信赖域算法和群智能进化算法,得到多个防抖参数组的新的更新值的过程是循环进行的,在满足停止条件的情况下,该循环过程结束。在多个防抖参数组的更新值以及多个防抖参数组的新的更新值中,目标防抖参数组的更新值为使得测试视频的抖动误差最小的防抖参数组取值。
在一个具体的示例中,假设多个防抖参数组为第一防抖参数组、第二防抖参数组以及第三防抖参数组,上述重复过程共循环了2次,得到2组三个防抖参数组的新的更新值。首先基于三个防抖参数组的初始值(第一防抖参数组的初始值用E表示;第二防抖参数组的初始值用F表示;第三防抖参数组的初始值用G表示),通过信赖域算法和群智能进化算法,得到三个防抖参数组的第一更新值(第一防抖参数组的第一更新值用E1表示;第二防抖参数组的第一更新值用F1表示;第三防抖参数组的第一更新值用G1表示);然后基于E1、F1和G1第一次重复通过信赖域算法和群智能进化算法,得到三个防抖参数组的第二更新值(第一防抖参数组的第二更新值用E2表示;第二防抖参数组的第二更新值用F2表示;第三防抖参数组的第二更新值用G2表示);再基于E2、F2和G2第二次重复通过信赖域算法和群智能进化算法,得到定三个防抖参数组的第三更新值(第一防抖参数组的第三更新值用E3表示;第二防抖参数组的第三更新值用F3表示;第三防抖参数组的第三更新值用G3表示),在E1、F1、G1、E2、F2、G2、E3、F3和G3中,G2对应的测试视频的抖动误差最小,则第三防抖参数组为目标防抖参数组,第三防抖参数组的第二更新值为目标防抖参数组的更新值,目标防抖参数组的更新值为N个防抖参数的目标取值。
条件一:能够选择出使得对应的测试视频的抖动误差小于或等于第一预设阈值的防抖参数组。
应理解,第一预设阈值为预设的任意大于0的值。多个防抖参数组的更新值每通过信赖域算法和群智能进化算法优化更新一次,均能够得到一组多个防抖参数组的新的更新值,多组多个防抖参数组的新的更新值中对应的测试视频的抖动误差最小的一个防抖参数组,对应的测试视频的抖动误差小于或等于第一预设阈值的情况下,则上述迭代过程停止,该一个防抖参数组为目标防抖参数组。
示例性地,假设第一预设阈值为s,多个防抖参数组为第一防抖参数组、第二防抖参数组以及第三防抖参数组,第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值对应的测试视频的抖动误差依次分别为:o1、p1和q1,o1、p1和q1中的最小值为p1,并且p1>s,因此,终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值,第一次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的新的更新值。上述三个防抖参数组的新的更新值对应的测试视频的抖动误差依次分别为:o2、p2和q2,o2、p2和q2中的最小值为q2,并且q2>s,因此,终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的新的更新值,第二次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的再新的更新值。上述三个防抖参数组的再新的更新值对应的测试视频的抖动误差依次分别为:o3、p3和q3,o3、p3和q3中的最小值为q3,并且q3<s,此时,满足条件一,迭代过程停止。
条件二:重复次数大于或等于第二预设阈值。
应理解,第二预设阈值为预设的任意大于0的整数,例如10、12、20等。多个防抖参数组的更新值每通过信赖域算法和群智能进化算法优化更新一次,均能够得到一组多个防抖参数组的新的更新值。在终端设备重复使用通过信赖域算法和群智能进化算法优化更新的次数大于或等于第二预设阈值时,重复过程停止,并且多次重复过程中得到的多组多个防抖参数组的新的更新值中,对应的测试视频的抖动误差最小的一个防抖参数组,为目标防抖参数组,目标防抖参数组的新的更新值为N个防抖参数的目标取值。一种可能的实施方式中,终端设备每重复一次通过信赖域算法和群智能进化算法,确定多个防抖参数组的新的更新值,可以先确定该组新的更新值中使得测试视频对应的防抖参数最小的一个更新值。另一种可能的实施方式中,终端设备在停止重复过程后,在多组多个防抖参数组的新的更新值和多个防抖参数组的更新值中确定使得测试视频对应的防抖参数最小的一个更新值。
在一个具体的示例中,假设第二预设阈值为2,多个防抖参数组为第一防抖参数组、第二防抖参数组以及第三防抖参数组,第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值对应的测试视频的抖动误差依次分别为:o1、p1和q1,o1、p1和q1中的最小值为p1;终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值,第一次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的新的更新值。上述三个防抖参数组的新的更新值对应的测试视频的抖动误差依次分别为:o2、p2和q2,o2、p2和q2中的最小值为q2;终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的新的更新值,第二次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的再新的更新值。上述三个防抖参数组的再新的更新值对应的测试视频的抖动误差依次分别为:o3、p3和q3,o3、p3和q3中的最小值为q3。此时,满足条件二,迭代过程停止。p1、q2和q3中,q2对应的测试视频的抖动误差最小,则第二防抖参数组为目标防抖参数组,第二防抖参数组的新的更新值为N个防抖参数的目标取值。
在另一个具体的示例中,假设第二预设阈值为2,多个防抖参数组为第一防抖参数组、第二防抖参数组以及第三防抖参数组,第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值对应的测试视频的抖动误差依次分别为:o1、p1和q1;终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值,第一次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的新的更新值。上述三个防抖参数组的新的更新值对应的测试视频的抖动误差依次分别为:o2、p2和q2。终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的新的更新值,第二次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的再新的更新值。上述三个防抖参数组的再新的更新值对应的测试视频的抖动误差依次分别为:o3、p3和q3。此时,满足条件二,迭代过程停止。o1、p1、q1、o2、p2、q2、o3、p3和q3中,q2对应的测试视频的抖动误差最小,则第二防抖参数组为目标防抖参数组,第二防抖参数组的新的更新值为N个防抖参数的目标取值。
条件三:重复时间大于或等于第三预设阈值。
应理解,第三预设阈值为任意时长,例如1小时、30分钟等。多个防抖参数组的更新值每通过信赖域算法和群智能进化算法优化更新一次,均能够得到多个防抖参数组的新的更新值。在终端设备重复使用通过信赖域算法和群智能进化算法优化更新的时间大于或等于第三预设阈值时,重复过程停止,并且多次重复过程中得到的多组多个防抖参数组的新的更新值中对应的测试视频的抖动误差最小的一个防抖参数组,为目标防抖参数组。一种可能的实施方式中,终端设备每重复一次通过信赖域算法和群智能进化算法,确定多个防抖参数组的新的更新值,可以先确定该组新的更新值中使得测试视频对应的防抖参数最小的一个更新值。另一种可能的实施方式中,终端设备在停止重复过程后,在多组多个防抖参数组的新的更新值和多个防抖参数组的更新值中确定使得测试视频对应的防抖参数最小的一个更新值。
条件三对应的具体的实施方式与条件二类似,可参考上文中条件二所给出的具体的示例,在此不再赘述。
条件四:测试视频的抖动误差在预设时长或预设重复次数内不再减小。
应理解,预设时长为任意时长,例如20分钟、30分钟等。预设重复次数为任意大于0的整数,例如3、5等。多个防抖参数组的更新值每通过信赖域算法和群智能进化算法优化更新一次,均能够得到多个防抖参数组的新的更新值。多个防抖参数组的新的更新值中的使得测试视频的抖动误差最小的防抖参数组的新的更新值对应的测试视频的抖动误差,在预设时长或预设重复次数内不再减小时,该防抖参数组为目标防抖参数组,防抖参数组的新的更新值为N个防抖参数的目标取值。
在一种可能的实施方式中,测试视频的抖动误差在预设时长内不再减小,则迭代过程停止。示例性地,假设预设时长为3min,多个防抖参数组为第一防抖参数组、第二防抖参数组以及第三防抖参数组,第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值对应的测试视频的抖动误差依次分别为:o1、p1和q1,o1、p1和q1中的最小值为p1;终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的更新值,第一次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的新的更新值。上述三个防抖参数组的新的更新值对应的测试视频的抖动误差依次分别为:o2、p2和q2,o2、p2和q2中的最小值为q2,此时重复时间为1min,且q2>p1;终端设备基于第一防抖参数组、第二防抖参数组以及第三防抖参数组的新的更新值,第二次重复通过信赖域算法和群智能进化算法,确定上述三个防抖参数组的再新的更新值。上述三个防抖参数组的再新的更新值对应的测试视频的抖动误差依次分别为:o3、p3和q3,o3、p3和q3中的最小值为q3,此时重复时间为4min,且q3>p1。此时,重复时间大于预设时长,迭代过程停止,第二防抖参数组为目标防抖参数组,第二防抖参数的更新值为N个防抖参数的目标取值。可选地,若在第一次重复过程后,o2、p2和q2中的最小值q2<p1,则此时重复时间重新从0开始计时,若在3min内测试视频的抖动误差不再减小,则第三防抖参数组为目标防抖参数组,第三防抖参数组的新的更新值为N个防抖参数的目标取值。
在另一种可能的实施方式中,测试视频的抖动误差在预设重复次数内不再减小,则迭代过程停止。应理解,该实施方式与第一种可能的实施方式类似,可参看第一种可能的实施方式中的示例,在此不再赘述。
在又一种可能的实施方式中,测试视频的抖动误差在预设时长以及预设重复次数内均不再减小,则迭代过程停止。应理解,该实施方式与第一种可能的实施方式类似,可参看第一种可能的实施方式中的示例,在此不再赘述。
作为一个可选的实施例,N个防抖参数的目标取值是周期性更新的,和/或,基于用户的触发更新的。
应理解,N个防抖参数的目标取值是周期性更新可以指N个防抖参数的目标取值每隔固定的时长则会进行更新,例如,N个防抖参数的目标取值每隔一个月更新一次。基于用户的触发可以指在用户想要对终端设备的N个防抖参数的目标取值进行更新时,向终端设备进行输入操作,然后终端设备基于用户的输入操作更新N个防抖参数的目标取值,例如,用户点击终端设备显示的用于更新N个防抖参数的按钮,终端设备基于用户的点击操作,更新N个防抖参数的目标取值。
作为一个可选的实施例,方法300中所涉及的测试视频符合下述要求中的至少一个要求:测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值;测试视频包括多个视频,多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值;或者,测试视频为用户新拍摄的视频。
要求一、测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值。
应理解,第四预设阈值为预设的任意时间段,例如2天、1天、5h等。当前时间可以指终端设备在获取测试视频时的实时时刻。测试视频为所要更新N个防抖参数的目标取值的终端设备拍摄的一个或者多个视频,测试视频可以存储于所要更新N个防抖参数的目标取值的终端设备中,也可以存储于其余设备中。所要更新N个防抖参数的目标取值的终端设备或者其余设备可以存储多个视频,该多个视频中拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值的视频中一个或者多个作为测试视频。示例性地,终端设备中存储了五个视频:第一视频、第二视频、第三视频、第四视频以及第五视频,当前时间为2022年3月5日12:00,第一视频、第二视频、第三视频、第四视频以及第五视频的拍摄时间依次分别为2022年3月1日12:00、2022年3月1日14:00、2022年3月4日15:00、2022年3月4日16:00以及2022年3月5日10:00,第四预设阈值为24h,则第三视频、第四视频以及第五视频中的任何一个或者多个视频可以作为测试视频,例如,以第四视频作为测试视频,或者,以第三视频、第四视频以及第五视频作为测试视频。
要求二、测试视频包括多个视频,多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值。
应理解,第五预设阈值为预设的任意时间段,例如2h、5h等。
在一个具体的示例中,终端设备中存储了五个视频:第一视频、第二视频、第三视频、第四视频以及第五视频,当前时间为2022年3月5日12:00,第一视频、第二视频、第三视频、第四视频以及第五视频的拍摄时间依次分别为2022年3月1日12:00、2022年3月1日14:00、2022年3月4日15:00、2022年3月4日16:00以及2022年3月5日10:00,第五预设阈值为2h,则测试视频可以为第一视频和第二视频,测试视频也可以为第三视频和第四视频。在测试视频同时满足要求一和要求二的情况下,第四预设阈值为24h,则测试视频为第三视频和第四视频。
要求三、测试视频为用户新拍摄的视频,方法300还包括:显示第一界面,第一界面包括提示消息,提示消息用于提示用户拍摄视频;检测到用户的拍摄指令,获取测试视频。
应理解,第一界面指终端设备显示的包括提示消息的界面。提示消息具体可以为终端设备向用户显示的弹窗,该弹窗中包括能够提示用户拍摄视频的信息。
在一种可能的实施方式中,在终端设备已经拍摄且存储的视频中,所有的视频均不满足要求一和/或要求二的情况下,向用户显示第一界面。
作为一个可选的实施例,方法300还包括:基于目标取值,通过驱动马达调整镜头的角度和位置,并对拍摄到的视频画面进行防抖处理。
应理解,驱动马达安装于终端设备中,并且能够推动终端设备的镜头的移动。根据目标取值,驱动马达调整镜头的角度和位置,从而弥补终端设备的运行造成的视频的抖动,这样,能够减小终端设备拍摄的视频的抖动程度。
下面结合图5对视频处理方法进行详细的说明。
图5为本申请实施例提供的一种视频处理方法500的流程示意图。方法500由终端设备执行,该终端设备的硬件结构如图1所示,软件结构如图2所示。如图5所示,方法500包括:
S501、对防抖参数组中包括的N个防抖参数的取值范围进行归一化处理,得到防抖参数组的搜索范围,N为正整数。
S502、基于防抖参数组的搜索范围,确定多个防抖参数组,多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,N个防抖参数用于确定视频的抖动误差。
S503、确定多个防抖参数组中每个防抖参数组的初始值对应的测试视频的抖动误差。
S504、确定多个防抖参数组中使得对应的测试视频的抖动误差最小的防抖参数组,作为优选防抖参数组。
S505、将优选防抖参数组的初始值输入至信赖域算法,得到优选防抖参数组的更新值,优选防抖参数组的更新值是基于测试视频的抖动误差确定的。
S506、将多个防抖参数组中除优选防抖参数组之外的剩余防抖参数组的初始值和优选防抖参数组的更新值输入至群智能进化算法,得到剩余防抖参数组的更新值,剩余防抖参数组的更新值是基于测试视频的抖动误差确定的。
S507、确定优选防抖参数组的更新值和剩余防抖参数组的更新值中每个防抖参数组对应的测试视频的抖动误差。
S508、确定优选防抖参数组的更新值和剩余防抖参数组的更新值对应的测试视频的抖动误差是否满足停止条件;
在满足停止条件的情况下,执行S509;
在不满足停止条件的情况下,重复执行S504。
应理解,停止条件可以为上述实施例中的四种停止条件中的任一条件。
S509、基于优选防抖参数组的更新值和剩余防抖参数组的更新值对应的测试视频的抖动误差,在多个防抖参数组中确定目标防抖参数组。
S510、将目标防抖参数组的更新值进行逆归一化处理,得到N个防抖参数的目标取值。
应理解,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定。
上文结合图3至图5,详细描述了本申请实施例的视频处理方法,下面结合图6和图7,详细描述本申请实施例的视频处理装置。
图6为本申请实施例提供的一种视频处理装置600的结构示意图。如图6所示,装置600包括:确定模块601和处理模块602。
装置600用于实现上述方法实施例中终端设备对应的步骤。
确定模块601,用于确定多个防抖参数组,多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,N个防抖参数用于确定视频的抖动误差,N为正整数;
处理模块602,用于将多个防抖参数组中的部分防抖参数组中的初始值输入至信赖域算法,得到部分防抖参数组的更新值,部分防抖参数组的更新值是基于测试视频的抖动误差确定的;将多个防抖参数组中除部分防抖参数组之外的剩余防抖参数组的初始值和部分防抖参数组的更新值输入至群智能进化算法,得到剩余防抖参数组的更新值,剩余防抖参数组的更新值是基于测试视频的抖动误差确定的;基于多个防抖参数组的更新值,从多个防抖参数组中,确定目标防抖参数组,并将目标防抖参数组的更新值确定为N个防抖参数的目标取值,目标取值对应的测试视频的抖动误差最小,目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。
可选地,处理模块602具体用于:对于剩余防抖参数组中的每个剩余防抖参数组,分别从剩余防抖参数组的初始值和部分防抖参数组的更新值中,选择至少一组数值,至少一组数值是按照优先选择未选过的数值的原则确定的;根据每个剩余防抖参数组的初始值和每个剩余防抖参数组对应的至少一组数值,确定每个剩余防抖参数组的变异值;基于测试视频的抖动误差,从每个剩余防抖参数组的变异值和每个剩余防抖参数组的初始值中,确定每个剩余防抖参数组的更新值。
可选地,部分防抖参数组中包括多个防抖参数组中使得测试视频的抖动误差最小的防抖参数组。
可选地,部分防抖参数组中包括多个防抖参数组中使得测试视频的抖动误差最大的防抖参数组。
可选地,处理模块602具体用于:基于多个防抖参数组的更新值,重复通过信赖域算法和群智能进化算法,确定多个防抖参数组的新的更新值,直至满足下列条件中的任一项为止:能够选择出使得对应的测试视频的抖动误差小于或等于第一预设阈值的防抖参数组;重复次数大于或等于第二预设阈值;重复时间大于或等于第三预设阈值;或者,测试视频的抖动误差在预设时长或预设重复次数内不再减小;基于多个防抖参数组的新的更新值和多个防抖参数组的更新值,从多个防抖参数组中,确定目标防抖参数组。
可选地,N个防抖参数的目标取值是周期性更新的,和/或,基于用户的触发更新的。
可选地,测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值。
可选地,测试视频包括多个视频,多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值。
可选地,测试视频为用户新拍摄的视频;
处理模块602还用于:显示第一界面,第一界面包括提示消息,提示消息用于提示用户拍摄视频;检测到用户的拍摄指令,获取测试视频。
可选地,处理模块602还用于:基于目标取值,通过驱动马达调整镜头的角度和位置,并对拍摄到的视频画面进行防抖处理。
应理解,这里的装置600以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,装置600可以具体为上述实施例中的终端设备,装置600可以用于执行上述方法实施例中与终端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置600具有实现上述方法中终端设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,上述处理模块602可以包括输入模块,该输入模块可以用于实现上述处理模块602对应的用于执行输入动作的各个步骤和/或流程。
在本申请的实施例,图6中的装置600也可以是芯片,例如:SOC。对应地,处理模块602可以是该芯片的收发电路,在此不做限定。
图7示出了本申请实施例提供的一种视频处理装置700的结构示意图。该装置700包括处理器701、收发器702和存储器703。其中,处理器701、收发器702和存储器703通过内部连接通路互相通信,该存储器703用于存储指令,该处理器701用于执行该存储器703存储的指令,以控制该收发器702发送信号和/或接收信号。
应理解,装置700可以具体为上述实施例中的终端设备,并且可以用于执行上述方法实施例中与终端设备对应的各个步骤和/或流程。可选地,该存储器703可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器701可以用于执行存储器中存储的指令,并且当该处理器701执行存储器中存储的指令时,该处理器701用于执行上述方法实施例的各个步骤和/或流程。该收发器702可以包括发射器和接收器,该发射器可以用于实现上述收发器对应的用于执行发送动作的各个步骤和/或流程,该接收器可以用于实现上述收发器对应的用于执行接收动作的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述方法实施例中所示的方法。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例所示的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应所述以权利要求的保护范围为准。

Claims (23)

1.一种视频处理方法,其特征在于,包括:
确定多个防抖参数组,所述多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,所述N个防抖参数用于确定视频的抖动误差,N为正整数;
将所述多个防抖参数组中的部分防抖参数组的初始值输入至信赖域算法,得到所述部分防抖参数组的更新值,所述部分防抖参数组的更新值是基于测试视频的抖动误差确定的;
将所述多个防抖参数组中除所述部分防抖参数组之外的剩余防抖参数组的初始值和所述部分防抖参数组的更新值输入至群智能进化算法,得到所述剩余防抖参数组的更新值,所述剩余防抖参数组的更新值是基于所述测试视频的抖动误差确定的;
基于所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组,并将所述目标防抖参数组的更新值确定为所述N个防抖参数的目标取值,所述目标取值对应的所述测试视频的抖动误差最小,所述目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述多个防抖参数组中除所述部分防抖参数组之外的剩余防抖参数组的初始值和所述部分防抖参数组的更新值输入至群智能进化算法,得到所述剩余防抖参数组的更新值,包括:
对于所述剩余防抖参数组中的每个剩余防抖参数组,分别从所述剩余防抖参数组的初始值和所述部分防抖参数组的更新值中,选择至少一组数值,所述至少一组数值是按照优先选择未选过的数值的原则确定的;
根据所述每个剩余防抖参数组的初始值和所述每个剩余防抖参数组对应的所述至少一组数值,确定所述每个剩余防抖参数组的变异值;
基于所述测试视频的抖动误差,从所述每个剩余防抖参数组的变异值和所述每个剩余防抖参数组的初始值中,确定所述每个剩余防抖参数组的更新值。
3.根据权利要求1或2所述的方法,其特征在于,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最小的防抖参数组。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最大的防抖参数组。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组,包括:
基于所述多个防抖参数组的更新值,重复通过所述信赖域算法和所述群智能进化算法,确定所述多个防抖参数组的新的更新值,直至满足下列条件中的任一项为止:
能够选择出使得所述测试视频的抖动误差小于或等于第一预设阈值的防抖参数组;
重复次数大于或等于第二预设阈值;
重复时间大于或等于第三预设阈值;或者,
所述测试视频的抖动误差在预设时长或预设重复次数内不再减小;
基于所述多个防抖参数组的新的更新值和所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定所述目标防抖参数组。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述N个防抖参数的目标取值是周期性更新的,和/或,基于用户的触发更新的。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述测试视频包括多个视频,所述多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述测试视频为用户新拍摄的视频,所述方法还包括:
显示第一界面,所述第一界面包括提示消息,所述提示消息用于提示所述用户拍摄视频;
检测到用户的拍摄指令,获取所述测试视频。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
基于所述目标取值,通过驱动马达调整镜头的角度和位置,并对拍摄到的视频画面进行防抖处理。
11.一种视频处理装置,其特征在于,包括:
确定模块,用于确定多个防抖参数组,所述多个防抖参数组中的每个防抖参数组包括N个防抖参数的初始值,所述N个防抖参数用于确定视频的抖动误差,N为正整数;
处理模块,用于将所述多个防抖参数组中的部分防抖参数组的初始值输入至信赖域算法,得到所述部分防抖参数组的更新值,所述部分防抖参数组的更新值是基于测试视频的抖动误差确定的;将所述多个防抖参数组中除所述部分防抖参数组之外的剩余防抖参数组的初始值和所述部分防抖参数组的更新值输入至群智能进化算法,得到所述剩余防抖参数组的更新值,所述剩余防抖参数组的更新值是基于所述测试视频的抖动误差确定的;基于所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定目标防抖参数组,并将所述目标防抖参数组的更新值确定为所述N个防抖参数的目标取值,所述目标取值对应的所述测试视频的抖动误差最小,所述目标取值用于拍摄视频并对拍摄到的视频画面进行防抖处理。
12.根据权利要求11所述的装置,其特征在于,所述处理模块具体用于:
对于所述剩余防抖参数组中的每个剩余防抖参数组,分别从所述剩余防抖参数组的初始值和所述部分防抖参数组的更新值中,选择至少一组数值,所述至少一组数值是按照优先选择未选过的数值的原则确定的;
根据所述每个剩余防抖参数组的初始值和所述每个剩余防抖参数组对应的所述至少一组数值,确定所述每个剩余防抖参数组的变异值;
基于所述测试视频的抖动误差,从所述每个剩余防抖参数组的变异值和所述每个剩余防抖参数组的初始值中,确定所述每个剩余防抖参数组的更新值。
13.根据权利要求11或12所述的装置,其特征在于,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最小的防抖参数组。
14.根据权利要求11至13任一项所述的装置,其特征在于,所述部分防抖参数组中包括所述多个防抖参数组中使得所述测试视频的抖动误差最大的防抖参数组。
15.根据权利要求11至14任一项所述的装置,其特征在于,所述处理模块具体用于:
基于所述多个防抖参数组的更新值,重复通过所述信赖域算法和所述群智能进化算法,确定所述多个防抖参数组的新的更新值,直至满足下列条件中的任一项为止:
能够选择出使得所述测试视频的抖动误差小于或等于第一预设阈值的防抖参数组;
重复次数大于或等于第二预设阈值;
重复时间大于或等于第三预设阈值;或者,
所述测试视频的抖动误差在预设时长或预设重复次数内不再减小;
基于所述多个防抖参数组的新的更新值和所述多个防抖参数组的更新值,从所述多个防抖参数组中,确定所述目标防抖参数组。
16.根据权利要求11至15任一项所述的装置,其特征在于,所述N个防抖参数的目标取值是周期性更新的,和/或,基于用户的触发更新的。
17.根据权利要求11至16任一项所述的装置,其特征在于,所述测试视频的拍摄时间与当前时间之间的时间间隔小于或等于第四预设阈值。
18.根据权利要求11至17任一项所述的装置,其特征在于,所述测试视频包括多个视频,所述多个视频中任意两个视频的拍摄时间之间的时间间隔小于或等于第五预设阈值。
19.根据权利要求11至16任一项所述的装置,其特征在于,所述测试视频为用户新拍摄的视频;
所述处理模块还用于:
显示第一界面,所述第一界面包括提示消息,所述提示消息用于提示所述用户拍摄视频;
检测到用户的拍摄指令,获取所述测试视频。
20.根据权利要求11至19任一项所述的装置,其特征在于,所述处理模块还用于:
基于所述目标取值,通过驱动马达调整镜头的角度和位置,并对拍摄到的视频画面进行防抖处理。
21.一种视频处理装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行如权利要求1至10中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至10中任一项所述的方法的指令。
23.一种计算机程序产品,其特征在于,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得所述计算机实现如权利要求1至10中任一项所述的方法。
CN202211608819.7A 2022-12-14 2022-12-14 视频处理方法和装置 Active CN116709023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211608819.7A CN116709023B (zh) 2022-12-14 2022-12-14 视频处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211608819.7A CN116709023B (zh) 2022-12-14 2022-12-14 视频处理方法和装置

Publications (2)

Publication Number Publication Date
CN116709023A true CN116709023A (zh) 2023-09-05
CN116709023B CN116709023B (zh) 2024-03-26

Family

ID=87844008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211608819.7A Active CN116709023B (zh) 2022-12-14 2022-12-14 视频处理方法和装置

Country Status (1)

Country Link
CN (1) CN116709023B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080284858A1 (en) * 2007-05-18 2008-11-20 Casio Computer Co., Ltd. Image pickup apparatus equipped with function of detecting image shaking
CN110210087A (zh) * 2019-05-20 2019-09-06 中国科学院光电技术研究所 一种基于粒子群算法的光束抖动模型参数实时辨识方法
CN111225155A (zh) * 2020-02-21 2020-06-02 Oppo广东移动通信有限公司 视频防抖方法、装置、电子设备、计算机设备和存储介质
CN113452919A (zh) * 2021-07-21 2021-09-28 杭州海康威视数字技术股份有限公司 用于利用光学防抖和电子防抖实现协同防抖的摄像机
CN113660408A (zh) * 2020-05-12 2021-11-16 华为技术有限公司 一种视频拍摄防抖方法与装置
CN114205515A (zh) * 2020-09-18 2022-03-18 荣耀终端有限公司 一种视频的防抖处理方法及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080284858A1 (en) * 2007-05-18 2008-11-20 Casio Computer Co., Ltd. Image pickup apparatus equipped with function of detecting image shaking
CN110210087A (zh) * 2019-05-20 2019-09-06 中国科学院光电技术研究所 一种基于粒子群算法的光束抖动模型参数实时辨识方法
CN111225155A (zh) * 2020-02-21 2020-06-02 Oppo广东移动通信有限公司 视频防抖方法、装置、电子设备、计算机设备和存储介质
CN113660408A (zh) * 2020-05-12 2021-11-16 华为技术有限公司 一种视频拍摄防抖方法与装置
CN114205515A (zh) * 2020-09-18 2022-03-18 荣耀终端有限公司 一种视频的防抖处理方法及电子设备
CN113452919A (zh) * 2021-07-21 2021-09-28 杭州海康威视数字技术股份有限公司 用于利用光学防抖和电子防抖实现协同防抖的摄像机

Also Published As

Publication number Publication date
CN116709023B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
CN115866121B (zh) 应用界面交互方法、电子设备和计算机可读存储介质
CN115798390B (zh) 屏幕显示方法和终端设备
WO2021169370A1 (zh) 服务元素的跨设备分配方法、终端设备及存储介质
CN116048358A (zh) 悬浮球的控制方法和相关装置
CN111104295A (zh) 一种页面加载过程的测试方法及设备
CN114548141A (zh) 生成波形文件的方法、装置、电子设备和可读存储介质
CN114384465A (zh) 方位角确定方法及装置
CN116048831B (zh) 一种目标信号处理方法和电子设备
CN117726929A (zh) 图像处理方法及装置
CN116709023B (zh) 视频处理方法和装置
CN117348894A (zh) 一种软件升级方法、终端设备及系统
CN117009005A (zh) 一种显示方法、汽车和电子设备
CN116232959B (zh) 网络质量检测方法和装置
CN116738033B (zh) 用于推荐服务的方法和装置
CN115619628B (zh) 图像处理方法和终端设备
CN116703741B (zh) 一种图像对比度的生成方法、装置和电子设备
CN115513571B (zh) 电池温度的控制方法和终端设备
CN115880198B (zh) 图像处理方法和装置
CN116382728B (zh) 传播名显示方法和终端设备
CN116450026B (zh) 用于识别触控操作的方法和系统
CN114006976B (zh) 一种界面显示方法及终端设备
CN117133311B (zh) 音频场景识别方法及电子设备
CN116320880B (zh) 音频处理方法和装置
CN116522400B (zh) 图像处理方法和终端设备
CN116346982B (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
GR01 Patent grant
GR01 Patent grant