实时视频特效系统和方法

文档序号:1943020 发布日期:2021-12-07 浏览:19次 >En<

阅读说明:本技术 实时视频特效系统和方法 (Real-time video special effect system and method ) 是由 亨利·佩纳 托马斯·布莱恩特三世 于 2019-10-29 设计创作,主要内容包括:公开了一种视频录制系统和方法,该视频录制系统和方法在录制之前和/或录制的同时在实时应用特效的同时来录制视频。处理器从相机(12)或远程视频流接收具有原生速率的原始视频数据(22),并从界面(30)接收输入。系统确定是否改变原始视频数据的原生速率,如果是,那么修改原始视频数据中的至少一个帧以创建具有不同于原生速率的修改速率的修改视频数据。然后,系统生成输出视频录制数据并将其写入存储器(18)。这允许以不同的速率连续录制来自相机或视频馈送的视频,而不改变相机(12)的操作或设置。(A video recording system and method are disclosed that record video prior to and/or while recording while applying special effects in real time. The processor receives raw video data (22) having a native rate from a camera (12) or a remote video stream and receives input from an interface (30). The system determines whether to change a native rate of the original video data and, if so, modifies at least one frame in the original video data to create modified video data having a modified rate that is different from the native rate. The system then generates and writes output video recording data to memory (18). This allows video from a camera or video feed to be recorded continuously at different rates without changing the operation or settings of the camera (12).)

实时视频特效系统和方法

相关申请的交叉引用

本申请要求2018年10月29日在美国专利和商标局提交的美国专利申请号为16173033的优先权并且是该美国专利申请的继续,为了公开的连续性,以引证的方式将该美国专利申请的全部内容并入本文。

技术领域

本技术涉及用于与在录制进行的同时控制或创建视频录像中的特效结合使用的实时视频特效系统和方法。更具体地,本技术涉及在没有后期编辑的情况下在来自设备的视频流录制和写入到长期存储储存器之前实况或实时地解码该视频流并改变其速率的系统和方法。

背景技术

现代视频格式利用各种帧率。几乎普遍地以24帧每秒拍摄的胶片无法以其原生帧率显示,这需要下拉转换(pulldown conversion),经常导致“抖动”。例如,为了将24帧每秒转换成60帧每秒,将每个奇数帧加倍,将每个偶数帧增至三倍,这产生不均匀的运动。其它转换具有类似的不均匀的帧加倍。较新的视频标准支持120、240或300帧每秒,因此对于普通帧率,例如24帧每秒(fps)的胶片和30fps的视频、以及在300fps显示器的情况下25fps和50fps的视频,帧可以均匀地成倍增加。这些标准还支持原生地具有较高帧率的视频、以及在原生帧之间具有内插帧的视频。

在电子设备(例如智能电话)上运行的设备内原生相机应用(app)可以在常规时间进行录制,然后在加速时间或延时地处理视频数据流以创建慢动作。然而,这些已知的系统或方法不使用用户界面,其中,用户可以在录制的同时实时地手动控制视频内的“时间特效”。例如,三星Galaxy中的原生相机应用具有特效特征,其中,当应用检测到对象已经在屏幕的一部分内部穿过时,相机改变每秒帧数捕获速率,如在这种情况下用屏幕中间的方框轮廓指示的。

如照片墙脸书和色拉布的第三方应用使用来自移动设备的相机,但是这些应用不具有允许app的用户在录制进行的同时实时地修改录制速度的减速或加速的特征。

利用如FILMiC的较高端特征丰富的相机应用,用户可以彼此独立地预先设置录制帧率速度和回放帧率速度,因此在最终产生的视频中创建慢动作和加速效果。

类似于Premiere Pro CC 2015,光流的时间重映射是已知的,这使得用户能够通过内插丢弃的帧来实现平滑的速度和帧率变化。光流内插修改包含没有运动模糊的对象的剪辑的速度,这些对象在与运动中的对象高度对比的大部分静态背景前面移动。

运动内插或运动补偿帧内插(Motion-Compensated Frame Interpolation,MCFI)是一种视频处理形式,其中,借助于内插在现有的帧之间生成中间动画帧,以试图使动画更流畅并补偿显示运动模糊。

可以理解,使用运动内插是因为它减少了由相机摇拍(panning)和抖动相机产生的运动模糊,因此产生了这种图像的更好的清晰度。它也可以用于增加视频游戏软件的表观帧率以用于更逼真地感觉,但输入滞后的增加可能是不期望的副作用。这种“视频外观”通过视频场内插恢复效应(Video Field Interpolation Restoration Effect,VidFIRE)技术故意创建,以恢复仅作为胶片电视录像存在的存档电视节目。VidFIRE是一种恢复技术,旨在恢复连续镜头的类似视频的运动,该连续镜头原始利用电视相机拍摄,现在仅以电视录像为基础的格式存在。人工和自然高帧率(经由内插与相机中)之间的主要差别在于,后者不受任何上述伪影的影响,包含更准确的(或“逼真的”)图像数据,并且由于帧不是实时产生而需要更多的存储空间和带宽。

运动补偿是一种算法技术,其用于通过考虑相机和/或视频中对象的运动给出先前和/或将来帧来预测视频中的帧。它用于视频数据的编码以用于视频压缩,例如在MPEG-2文件的生成中。运动补偿根据参考图片到当前图片的变换来描述图片。参考图片可以是时间上在前的甚至来自将来。当可以从先前传输/存储的图像准确地合成图像时,可以提高压缩效率。

运动补偿利用了以下事实:通常,对于影片的许多帧,一个帧与另一个帧之间的唯一差别是相机移动或帧中的对象移动的结果。关于视频文件,这意味着表示一帧的许多信息将与下一帧中使用的信息相同。

使用运动补偿,视频流将包含一些完整(参考)帧;那么为其间的帧存储的唯一信息将是将先前帧变换到下一帧所需的信息。

帧混合可以是本领域技术人员已知的另一种技术。在一些连续镜头中,使用光流来创建更平滑的运动无法产生期望的结果。在这种场景中,可以使用其他时间内插选项中的一个——帧采样或帧混合。帧采样根据需要重复或去除帧以达到期望的速度。帧混合重复帧,并且它还根据需要在它们之间混合以帮助平滑运动。

虽然上述设备实现了它们各自的特定目的和要求,但是上述专利并没有描述允许在录制进行的同时在视频录像中创建特效的实时视频特效系统和方法。

发明内容

鉴于现有技术中现在存在的已知类型的视频速率改变系统和方法中固有的前述缺点,本技术提供了一种新颖的实时视频特效系统和方法,并且克服了现有技术的一个或多个所提及的缺点和不足。由此可见,随后将更详细描述的本技术的一般目的是提供一种新的且新颖的实时视频特效系统和方法,该系统和方法具有迄今为止提及的现有技术的所有优点和许多新颖的特征,这些特征导致不能由现有技术单独地或以其任何组合来预期、使得明显、建议甚至暗示的实时视频特效系统和方法。

根据本技术的一个方面,提供了一种用于实时控制实况视频录制数据的特效操作的视频捕获和显示系统。系统可以包括:相机,其被配置成捕获真实世界场景的视频;图形用户界面;和至少一个处理单元,其可操作地连接或可连接到所述相机和所述图形用户界面。所述至少一个处理单元可以被配置成:以正常速度在所述图形用户界面上播放被捕获的视频;以及响应于由所述图形用户界面接收的用户输入,将所述被捕获的视频在图形界面上的视频播放速度从所述正常播放速度改变为修改的播放速度。

根据另一方面,提供了一种用于实时控制实况视频捕获数据的特效操作的方法。方法可以包括步骤:用相机捕获真实世界场景的视频;在图形用户界面上以正常速度播放被捕获的视频;响应于在录制进行的同时由图形用户界面实时接收的用户界面输入,将被录制的视频在图形用户界面上的播放速度从如在实况录制期间在图形用户设备上显示的正常播放速度改变到如在录像的立即回放期间在图形用户设备上显示的修改的播放速度。

根据本技术的另一方面,本技术基本上可以是用于实时控制实况视频录制数据的特效操作的视频录制系统。该视频录制系统包括:被配置或可配置成以原生速率提供原始视频数据的至少一个相机、至少一个存储器、以及与相机和存储器可操作地通信的至少一个处理单元。其中,原始视频数据可以至少部分地对应于由相机实时捕获的图像。处理单元可以被配置或可配置成从相机实时接收原始视频数据。在此之后,确定输入是否与改变原始视频数据的原生速率相关联,如果是,则与从相机接收原始视频数据中实时地修改原始视频数据中的至少一个帧,以创建具有与原生速率不同的一个或多个修改速率的修改的视频数据。然后,将至少一个输出视频录制数据写入存储器,其中,输出视频录制数据是具有原生速率的原始视频数据、具有修改速率的修改的视频数据、以及原始视频数据和修改的视频数据的组合中的一者。

根据本技术的另一方面,本技术可以是用于实时控制实况视频录制数据的特效操作的客户侧电子系统。系统可以包括分别被配置成存储和执行软件指令的存储器和处理器。指令被组织成:原始数据接收组件,该原始数据接收组件被配置或可配置成接收从相机获取具有原生速率的原始视频数据的请求,其中,原始视频数据可至少部分地对应于由相机实时捕获的图像;速率确定组件,该速率确定组件被配置或可配置成接收将来自相机的原始视频数据的原生速率改变为至少一个修改速率的至少一个请求;帧修改组件,该帧修改组件其被配置或可配置成在接收到改变所述原生速率的请求时识别待修改的所述原始视频数据中的至少一个帧或位置,并且修改所述帧或位置,以创建具有修改速率的修改的视频数据,所述修改速率与从所述相机实时接收的所述原始视频数据的所述原生速率不同;以及输出视频录制数据写入组件,该输出视频录制数据写入组件被配置或可配置成通过从所述相机实时接收所述原始视频数据将输出视频录制数据写入到所述存储器和辅助存储器的一者中,其中,所述输出视频录制数据选自具有所述原生速率的所述原始视频数据、具有所述修改速率的所述修改的视频数据、以及所述原始视频数据和所述修改的视频数据的组合中的一者。

根据本技术的又一方面,本技术可以是用于实时控制实况视频录制数据的特效操作的方法。方法可包括以下步骤:通过至少一个处理单元接收具有原生速率的原始视频数据,其中,原始视频数据至少部分地对应于由相机实时捕获的图像;以及通过处理单元从与处理单元可操作地相关联的至少一个界面接收至少一个输入。方法可包括:通过处理单元确定输入是否与改变原始视频数据的原生速率相关联,如果是,则与从相机接收原始视频数据实时地修改原始视频数据,以创建具有与原生速率不同的一或多个修改速率的修改视频数据。方法还可以包括:通过处理单元将输出视频录制数据写入到至少一个存储器,其中,输出视频录制数据是具有原生速率的原始视频数据、具有修改速率的修改视频数据以及原始视频数据与修改视频数据的组合中的一者。

根据本技术的另一方面,本技术可以是一种用于控制实况视频录制数据的实时特效操作的系统。系统包括:至少一个相机,该至少一个相机被配置或可配置成提供具有原生速率的原始视频数据,其中,原始视频数据至少部分地对应于由相机捕获的图像;至少一个存储单元;以及至少一个处理单元,该至少一个处理单元与相机和存储单元可操作地通信。处理单元被配置或可配置成从相机实时接收原始视频数据,并且从与处理单元可操作地相关联的至少一个界面接收输入。处理单元还被配置或可配置成确定所述输入是否与改变所述原始视频数据的所述原生速率相关联,如果是,则修改所述原始视频数据中的至少一个帧,以创建具有一个或多个修改速率的修改的视频数据,所述一个或多个修改速率与从所述相机实时接收的所述原始视频数据的所述原生速率不同。处理单元然后被配置或可配置成将至少一个输出视频录制数据写入所述存储器,其中,所述输出视频录制数据是具有所述原生速率的所述原始视频数据、具有所述修改速率的所述修改的视频数据、以及所述原始视频数据和所述修改的视频数据的组合中的一者。

根据本技术的又一方面,本技术可包括界面系统,该界面系统包括:界面,该界面与处理单元可操作地通信,该处理单元与被配置或可配置成提供具有原生速率的原始视频数据的至少一个相机可操作地通信,其中,原始视频数据至少部分地对应于由相机捕获的图像;至少一个存储单元;和至少一个显示器。界面可以与至少一个计算机可读存储介质相关联,该计算机可读存储介质与处理单元或包括至少一个处理器的计算机系统通信。界面可以是图形用户界面,该图形用户界面包括被配置或可配置成生成与从相机接收的原始视频数据的期望速率相关联的输入的部分。处理单元被配置或可配置成使用输入来确定是否将与从相机接收原始视频数据实时地修改原始视频数据,以创建具有与原始视频数据的原生速率不同的速率的修改视频数据。界面可以被配置或可配置成与从相机接收原始视频数据实时地显示输出视频录制数据。输出视频录制数据可以被配置或可配置成包括原始视频数据和修改视频数据的组合,其中原始视频数据与修改视频数据之间的转变取决于输入。

根据本技术的另一方面,本技术可以是一种用于控制实况视频录制数据的实时特效操作的计算机实现的方法。方法可包括以下步骤:在来自与处理单元可操作地相关联的至少一个界面的用户输入的请求下,通过至少一个处理单元从相机接收具有原生速率的原始视频数据,其中,原始视频数据至少部分地对应于由相机实时捕获的图像。方法可包括:确定输入是否与改变原始视频数据的原生速率相关联,如果是,则与从相机接收原始视频数据实时地修改原始视频数据,以创建具有与原生速率不同的一或多个修改速率的修改视频数据。方法还可包括:将至少一个输出视频录制数据写入存储器,其中,输出视频录制数据是具有原生速率的原始视频数据、具有修改速率的修改视频数据以及原始视频数据和修改视频数据的组合中的一个。

在本技术的一些实施例中,该方法可包括:阻止原始视频数据被从相机写入存储器。

在本技术的一些实施例中,输入不与改变原生速率相关联,则将原始视频数据写入存储器。

在一些实施例中,方法可包括:确定修改速率是否小于原生速率,如果是,则原始视频数据的修改包括:将至少一个新帧添加到原始视频数据,以创建修改视频数据。

在一些实施例中,方法可包括:添加新帧包括:复制至少一个原始帧以创建新帧;以及将新帧与原始帧相邻地添加到原始视频数据。

在一些实施例中,新帧可以是多个新帧,各个新帧是来自原始视频数据的至少一个原始帧的副本。

在本技术的一些实施例中,各个新帧可与原始视频数据的原始帧或与第二原始帧相邻地添加到原始视频数据。

在本技术的一些实施例中,方法可包括:确定修改速率是否大于原生速率,如果是,则其中,原始视频数据的修改包括:从原始视频数据去除至少一个第一原始帧,以创建修改视频数据。

在本技术的一些实施例中,该方法可包括:去除第一原始帧包括:选择要去除的第一原始帧,然后从原始视频数据中去除第一原始帧以创建修改视频数据。

在一些实施例中,界面可以是图形用户界面,该图形用户界面包括被配置或可配置成生成与原生速率或修改速率相关联的输入的部分,并且其中,界面被配置或可配置成显示输出视频录制数据。

在一些实施例中,输出视频录制数据可以是原始视频数据和修改视频数据的组合,修改视频数据被配置或可配置成包括多个子集,各个子集具有取决于输入的速率,其中原始视频数据与子集中的任何一个之间或子集中的任何子集之间的转变取决于输入,并且其中,输出视频录制数据与从相机接收原始视频数据实时地显示在图形用户界面中。

当然,本技术的附加特征将在下文中描述,并且将形成所附权利要求的主题。

附图说明

当考虑到以下对本技术的详细描述时,将更好地理解本技术,并且除了以上阐述的那些目的以外的其它目的也将变得明了。这样的描述参考附图,在附图中,假想线描绘了环境结构并不形成所要求保护的本技术的一部分:

图1是根据本技术的原理构建的实时视频特效系统的实施例的框图。

图2是本技术的实时录制速度控制方法的框图。

图3A是根据本技术教导的指示原生帧率的示例的一系列视频帧的表示。

图3B是一系列视频帧的表示,其指示根据2倍原生帧率的快动作速度的帧丢弃的示例。

图3C是一系列视频帧的表示,其指示根据3倍原生帧率的快动作速度的帧丢弃的示例。

图3D是一系列视频帧的表示,其指示根据-2倍原生帧率的慢动作速度的使用帧复制的帧添加的示例。

图3E是一系列视频帧的表示,其指示根据-3倍原生帧率的慢动作速度的使用帧复制的帧添加的示例。

图3F是一系列视频帧的表示,其指示根据-2倍原生帧率的慢动作速度的使用帧混合的帧添加的示例。

图3G是一系列视频帧的表示,其指示根据-3倍原生帧率的慢动作速度的使用帧混合的帧添加的示例。

图4例示了嵌入在可以用于实现本技术的实施例的电子计算设备中的示例性集成电路芯片。

图5例示了可以用于实现本技术的实施例的示例性电子计算设备。

图6是包括可以利用的子例程的总体过程的示例的流程图。

图7是主过程的示例的流程图,该主过程最初确定是否应该实时利用加速和/或减速特效。

图8是与本技术相关联的写入视频流子例程的示例的流程图。

图9是与本技术相关联的应用特效子例程的示例的流程图。

图10是与本技术相关联的加速子例程的示例的流程图。

图11是与本技术相关联的用于模拟快动作的帧丢弃子例程的示例的流程图。

图12是与本技术相关联的高级慢动作子例程的示例的流程图。

图13是与本技术相关联的用于模拟慢动作的帧添加子例程的示例的流程图。

图14是与本技术相关联的用于模拟慢动作的可变高录制fps子例程(120fps)的示例的流程图。

图15是与本技术相关联的恒定帧率慢动作子例程的示例的流程图。

图16是与本技术相关联的用于模拟慢动作的恒定高录制fps子例程(60fps)的示例的流程图。

图17是与本技术相关联的用于模拟慢动作的恒定高录制fps子例程(120fps)的示例的流程图。

图18是与本技术相关联的用于模拟慢动作的恒定高录制fps子例程(240fps)的示例的流程图。

图19是与本技术相关联的极端慢动作子例程的示例的流程图。

图20是与本技术相关联的模拟慢动作和快动作的时间扩展和压缩子例程的示例的流程图。

图21是每以秒为单位的时间的一系列相关联的录制和回放视频片段的表示,指示图20的时间压缩的示例。

图22是与本技术相关联的使用可变回放速率来模拟慢动作和快动作的录像的示例的流程图。

图23是与本技术相关联的回放设备播放由应用创建的视频文件的示例的流程图,该应用采用图22中的算法来模拟慢动作和快动作。

图24是与本技术相关联的由用户利用用户界面的可能过程的示例的流程图。

图25是本技术的界面系统的样本图形用户界面(GUI)屏幕截图。

具体实施方式

在以下描述中,出于解释而非限制的目的,阐述了例如特定实施例、过程、技术等的具体细节,以便提供对本技术的透彻理解。然而,对于本领域技术人员来说明了的是,可以在脱离这些具体细节的其它实施例中实践本技术。

众所周知,视频录像由以一定速率显示以产生运动的一系列帧或图片组组成。这些图像帧或视频帧可以被表征为数字帧数据,该数据可以在视频的回放中被缓冲。帧率(以每秒帧数或fps表达)是这些连续帧出现在显示器上的频率(速率)。这可以同样地应用于胶片相机和摄像机、计算机图形和运动捕获系统。帧率也可以称为帧频率,并且以赫兹来表达。

视频的实时录制和/或回放通常以三十(30)fps的速率执行。在几种情况下,期望加速或减速视频的回放。这通常在保持每秒录制和回放帧数为30fps的同时进行,以便维持与现有部件(例如显示设备等)的兼容性。例如,如果观看者想要将视频的回放从标准的实时回放速度加速某一百分比并同时保持30fps,则需要在针对30帧分段的时间中回放特定数量的帧的信息或数据。创建其方案是从录制的视频中以每预定数量的帧跳过一个帧,使得以30fps显示适当数量的视频帧。注意,这些已知的系统和方法提供为后期录像处理,其从30fps录像中跳帧。录像最初以30fps实时地写入存储器,而没有特效。

本技术解决了需要“后期制作编辑”来插入时间修改特效的问题,而后期制作编辑将是时间和资源昂贵的,尤其是对于业余电影制作人来说将是时间和资源昂贵的。

此外,本技术解决了将用户无法在录制过程期间实时调节动作录制速度的动作录制速度预先设置为快动作或慢动作的问题。

更进一步地,本技术解决了用户在录制过程期间无法连续调节动作录制速度以及从快动作到慢动作实时变化的预先设置动作录制速度的问题。

本技术缓解并解决了需要对每个设备的硬件支持的问题。通过使用软件算法来模拟慢动作,本技术不是设备相关的,并且所得到的文件比硬件支持的慢动作视频小得多。

虽然上述设备实现了它们各自的特定目的和要求,但是上述设备或系统没有描述允许在录制进行的同时在视频录像中创建特效的实时视频特效系统和方法。本技术通过添加或去除来自通过相机实时提供的帧带的帧来另外克服与现有技术相关联的缺点中的一个或多个。

更进一步,没有已知的界面供用户在录制进行的同时实时改变录制速度和应用特效的持续时间。此外,场景必须相对固定,其中相机不摇拍或不跟随动作。与这种已知系统相关联的算法使用运动传感器,而相机保持稳定地固定在场景上,并且对象必须穿过场景,而场景的其余部分保持固定。

本技术可以利用与电子设备相关联的用户界面,该电子设备在录制或保存之前实时修改来自相机的帧。

需要一种新的且新颖的实时视频特效系统和方法,它们可以用于在录制进行的同时在视频录像中创建特效。在这方面,本技术基本上满足了这种需要。在这方面,根据本技术的实时视频特效系统和方法基本上脱离了现有技术的传统概念和设计,并且在这样做时提供了一种主要为了在录制进行的同时在视频录制中创建特效的目的而开发的装置。

本技术的用户可以通过使用用户界面来“实时”产生包含用户可控的可变时间修改的特效(亦称快动作或慢动作)的视频,其中该用户界面被编程到在其支持的操作系统和其他嵌入式设备上运行的设备的应用中。所产生的视频是一次拍摄的,其中在录制的同时实时地加入所有的时间修改命令。

出于示例性目的,本技术可以利用30fps的设定视频帧率,这在录制的同时产生30帧每秒帧率。

在本技术的一些实施例中,用户可以利用本技术的快进选项,这导致根据设置的快进速率(如1倍、2倍、3倍等)帧丢弃。如果用户设置2倍快进视频,那么本技术可以在写入器中附加第1帧并跳过第2帧,然后写入第3帧,然后跳过第4帧,以此类推。所录制的结果视频在保持30fps的同时实时地具有预定快进速度。

在一些实施例中,用户可以利用本技术的慢动作选项,这导致附加相同的帧两次,从而重复该帧,因此所录制的最终视频处于慢动作。例如,如果用户设置2倍慢视频,那么本技术可以在写入器中附加第1帧,并且相同的帧附加到下一时刻/帧槽。所录制的结果视频在保持30fps的同时实时地具有预定慢动作速度。

本技术允许用户在通过使用定制用户界面进行录制的同时控制录制设备(以及任何其他视频录制设备)的录制速度和其他相机设置,使得当用户在本技术算法已经处理了命令之后立即播放视频时,场景的回放速度在录制期间与命令相对应。本技术利用软件模拟来实现这一点,而不必增加录制设备的帧率,并且不是设备相关的,并且跨所有平台工作。

本技术的另一方面可以是在录制进行的同时增加录制设备的帧率。这要求应用编程接口(Application Programming Interface,API)访问有限数量的支持硬件,并且没有限制支持设备数量的工业标准API。显示器示出当前时间录制速率,从正常速度到快3倍或-3倍(可以是4倍、5倍或更多)。用户可以通过利用该界面控制录制速率。

本技术具有许多优点,例如易于使用定制的用户界面,其中,用户可以在录制进行的同时将时间修改的特效实时地添加到视频中。这是优于现有技术的优点,因为用户可以在进行视频录制的同时产生具有特效(可变的快和慢动作录制速度)的视频。这通过不需要单独的视频编辑软件和/或向视频编辑器付费以编辑和产生可比较的视频,从而减少了产生具有这些种类特效的视频的时间和成本。一旦用户完成了录制和设备处理添加特效并自动产生具有所实现的特效的新视频的简短处理时间,他们就可以立即欣赏观看他们创建的具有特效的视频。

用户实时手动控制特效的另一优点是用户可随着场景的移动而摇拍,且捕获动作的峰值时刻,且恰好在正确的时间且在与期望的一样长的时间内使用连续可变的慢/快动作,然后在用户正录制时返回到正常速度。

再一优点是,本技术对于慢或快动作特效而言不依赖于硬件来工作。软件算法模拟慢动作或快动作。

又一优点是,利用手动用户界面,相机在指向静止场景时不必保持静止,以便AI软件确定应用特效的“动作”。

又一优点是,本技术可以从但不限于远程相机馈送、操纵杆、视网膜扫描仪、紧身衣控制器、屏幕上对象姿势和触觉用户界面接受输入。

在一些实施例中,本技术还可以应用于向预先存在的视频添加时间修改特效。用户可以通过使用在兼容设备(例如智能电话或平板电脑)上同样熟悉的易于左右使用的设备来控制回放中的时间变量,以控制和修改回放时间值的值,在这种情况下从-3倍到4倍。可以理解,一旦数字处理技术已经充分发展到能够在视频中捕获的帧之间内插数据和图像,则存在时间修改因子之外的能力。

当用户滑向4倍时,录制的速度比正常更快地(快至4倍)回放。当用户滑向-3倍时,录制的速度比正常更慢地(慢至3倍)回放。

在一些实施例中,原始视频数据可以包括例如但不限于流视频数据、视频、音频、深度、对象标识、直方图及其组合的数据。

在一些方面中,处理单元可被配置或可配置成阻止原始视频数据被从相机写入到存储单元,使得本技术可拦截原始视频数据。

在一些实施例中,输入可以是修改的速率所基于的一个或多个期望的速率值。其中,修改的速率可以是小于原生速率或大于原生速率中的一个。

如果修改速率小于原生速率,那么处理单元可被配置或可配置成将至少一个帧添加到原始视频数据以创建修改视频数据。

如果修改速率大于原生速率,那么处理单元可被配置或可配置成从原始视频数据去除至少一个帧以创建修改视频数据。

如果输入不是改变原生速度的请求,那么处理单元可被配置或可配置位保持来自原始视频数据的所有帧并将原始视频数据写入到存储器。

在一些实施例中,界面可以是图形用户界面,该图形用户界面包括被配置或可配置成生成与原生速率或修改速率相关联的输入的部分。图形用户界面可以被配置或可配置成与从相机接收原始视频数据实时地显示输出视频录制数据。输出视频录制数据可以被配置或可配置成包括原始视频数据和修改视频数据的组合,其中原始视频数据与修改视频数据之间的转变取决于输入。可以理解,界面可以是操纵杆或者可以利用操纵杆。

在又一方面,界面可以与存储指令的至少一个计算机可读存储介质相关联地操作,这些指令在由计算机系统的处理单元或处理器执行时,使得处理单元与从相机接收原始视频数据实时地将原始视频数据从相机引导到处理单元以及到存储单元,并且将原始视频数据从处理单元写入到存储单元或将至少一个算法应用到原始视频数据,以创建修改的视频数据并将修改的视频数据从处理单元写入到存储单元。

根据本技术的又一方面,本技术可以是一种与从相机接收原始视频数据实时地以一个或多个速率录制视频的方法。方法可包括以下步骤:通过至少一个处理单元与捕获图像实时地从相机接收具有原生速率的原始视频数据,这些图像至少部分地对应于来自相机的原始视频数据;以及从与处理单元可操作地相关联的至少一个界面接收输入。方法可包括:通过处理单元确定输入是否与改变原始视频数据的原生速率相关联,如果是,则与从相机接收原始视频数据实时地修改原始视频数据,以创建具有与原生速率不同的一或多个修改速率的修改视频数据。方法还可以包括:通过处理单元将输出视频录制数据写入到至少一个存储器,其中,输出视频录制数据是具有原生速率的原始视频数据、具有修改速率的修改视频数据以及原始视频数据与修改视频数据的组合中的一个。

本技术的一些实施例可以包括:确定修改速率是否小于原生速率,如果是,那么修改原始视频数据可以包括:将至少一个新帧添加到原始视频数据以创建修改视频数据。

在一些实施例中,方法可包括:通过以下方式添加新帧:复制至少一个原始帧以创建新帧,并且将新帧与原始帧相邻地添加到原始视频数据。

在一些实施例中,要添加的新帧可以是多个新帧,各个新帧是来自原始视频数据的至少一个原始帧的副本,其中新帧与被复制的原始帧相邻地添加到原始视频数据。

在一些实施例中,方法可以包括:通过以下方式添加新帧:对至少两个原始帧进行帧混合以创建新帧,并且将新帧在两个原始帧之间添加到原始视频数据。

在一些实施例中,要添加的新帧可以是多个新帧,各个新帧是来自原始视频数据的至少两个原始帧的混合,其中新帧在被混合的原始帧之间添加到原始视频数据。

在一些实施例中,各个新帧可与原始视频数据的原始帧或与第二原始帧相邻地添加到原始视频数据。

一些实施例可以包括以下步骤:确定修改速率是否大于原生速率,如果是,那么修改原始视频数据可以包括:从原始视频数据中去除至少一个第一原始帧以创建修改视频数据。

在一些实施例中,去除第一原始帧可包括:选择要去除的第一原始帧,然后从原始视频数据中去除第一原始帧以创建修改的帧。

在一些实施例中,界面可以是图形用户界面,该图形用户界面包括被配置或可配置成生成与原生速率或修改速率相关联的输入的部分,并且其中,界面被配置或可配置成显示输出视频录制数据。

一些实施例可以包括:输出视频录制数据是原始视频数据和修改视频数据的组合。其中修改视频数据被配置或可配置成包括多个子集,各个子集具有取决于输入的速率。其中,原始视频数据与任何一个子集之间或者任何子集之间的转变取决于输入,并且其中,输出视频录制数据与从相机接收原始视频数据实时地显示在图形用户界面中。

在一些实施例中,本技术可以包括恒定高录制fps下的极端慢动作子例程。通过使未改变的视频流通过或者对各个帧进行预定次数的复制,该子例程可以用于大于或等于-8倍的慢动作速度范围。

在一些实施例中,本技术可以包括片段时间压缩和扩展子例程,该子例程通过在录制已经停止之后的视频处理期间加速或减速回放时间来提供用于慢动作和快动作的算法。该子例程可以设置设备的录制和/或回放fps,并且使用部分利用片段回放fps和录制fps的算法将视频片段回放fps设置为等于录制fps。

在一些实施例中,本技术可包括可变回放速度录制子例程,该子例程通过在视频录制进行的同时加速或减速回放帧率来提供用于慢动作和快动作的算法。该算法可以产生具有嵌入在视频的元数据中的快/慢动作命令的正常视频。

在一些实施例中,本技术可包括可变回放速度回放子例程,该子例程通过在视频回放进行的同时加速或减速回放帧率来提供用于播放具有慢动作和快动作特效的视频文件的算法。

因此,已经相当广泛地概述了本技术的特征,以便可以更好地理解其随后的详细描述,并且以便可以更好地理解本技术对现有技术的贡献。

在阅读结合附图采取的本技术的但仍是本技术的例示性实施例的以下详细描述之后,本技术的众多目的、特征和优点对本领域的普通技术人员将是显而易见的。

由此可见,本领域技术人员将理解,本公开所基于的概念可以容易地用作设计用于进行本技术的若干目的其他结构、方法和系统的基础。因此,权利要求被认为包括这些等同构造,只要它们不偏离本技术的精神和范围即可。

本技术的再一目的是提供一种用于在录制进行的同时在视频录像中创建特效的实时视频特效系统和方法。这允许用户在从相机获取视频的同时,在实时进行录制之前和同时控制视频的速率。

这些目的与本技术的其它目的一起,连同表征本技术的新颖的各种特征,在所附的并且形成本公开的一部分的权利要求中被特别指出。为了更好地理解本技术、其操作优点和通过其使用获得的特定目的,应当参考其中存在本技术的例示性实施例的附图和描述性内容。虽然本文已经识别了本技术的多个目的,但是将理解,要求保护的本技术不限于满足所识别的大多数或所有目的,并且本技术的一些实施例可以仅满足或根本不满足一个这样的目的。

现在参考附图,特别是参考图1至图25,其示出了本技术的实时视频特效系统和方法的一些实施例,并且通体上由附图标记10来表示。作为总体概述,系统包括:相机,该相机被配置成捕获真实世界场景的视频或任何视频远程视频馈送(包括视频游戏);图形用户界面;至少一个存储器;以及至少一个处理单元,该至少一个处理单元可操作地连接或可连接到相机、图形用户界面和至少一个存储器。至少一个处理单元被配置成:以正常速度在图形用户界面上播放被捕获的视频;以及响应于由图形用户界面接收的用户输入,将被捕获的视频在图形界面上的视频播放速度从正常播放速度改变为修改的播放速度。

现在更详细地参考一些实施例,本技术的用于在录制进行的同时在视频录像中创建特效的新的且新颖的实时视频特效系统和方法10将参考图1来例示和描述。更具体地,实时视频特效系统和方法10可以包括相机12、图像处理器或处理单元14、与处理单元相关联的用户界面30、储存或存储单元18、和显示单元20。至少一个RAM和/或至少一个非易失性长期存储器可以可操作地连接或可连接到处理单元14。可以理解,相机12可以是能够捕获图像和/或视频的任何设备,并且可以与麦克风16相关联或集成。图像处理单元14与相机12、麦克风16、存储单元18和/或显示单元20可操作地通信。图像处理单元14截取来自相机12和/或麦克风16的原始视频数据、可根据至少一种算法实时处理原始视频数据、然后将输出/最终视频录制数据录制在存储单元18中和/或将输出/最终视频录制数据显示在显示单元20中。

可以理解,系统10可以被配置或可配置成具有一个或多个摄像机12、一个或多个显示设备20以及一个或多个集成电路或处理器的电子设备的完整视频系统。替代性地,可以理解,成像处理单元14可被配置或可配置成嵌入在电子设备中或具有电子设备的部件的模块或集成电路芯片。进一步地,在替代方案中,系统10可被配置或可配置成视频数据处理设备,例如但不限于图形处理单元(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、动态服务器页面(Active Server Page,ASP)、中央处理单元(Ccentral Processing Unit,CPU)、加速处理单元(Accelerated ProcessingUnit,APU)、专用集成电路(Application Specific Integrated Circuit,ASIC)。甚至进一步在替代方案中,系统10可被配置或可配置成作为在电子设备或相机上运行或控制电子设备或相机的操作系统或应用的一部分的软件或编程代码。

包括相机12、麦克风16和显示单元20的电子设备可以是但不限于智能电话、智能手表、平板电脑、笔记本电脑、台式计算机、膝上型电脑、DVD播放器、电视数字相机(对准即拍相机(point and shoot)、单镜头反光相机(single-lens reflex)、摄像机、高端音频/视频设备)、护目镜、无人机、常平架和其他稳定器、自拍杆、闭路视频监控系统、汽车用行车记录仪、内窥镜、显微镜、望远镜、相机和/或显示器嵌入式电路、可穿戴设备、“物联网”(Internet of Things,IoT)等。

参考图2,处理单元14可以被配置或可配置成接收用户对所请求的录制速度的选择的输入。来自相机12的原始视频数据可以被转移到成像处理单元14,在那里,程序和/或算法修改或保留包含在来自相机12的原始视频数据中的原始帧。数据流中的原始帧由成像处理单元14实时修改或保留,然后被传递到存储单元18和/或显示单元20。

图3A至图3G中例示了使用帧添加、帧混合和帧丢弃的成像处理单元14的操作的示例。当执行时或在操作的同时,成像处理单元14截取来自相机12的原始视频数据22,该原始视频数据包括用于由显示单元20适当呈现的具有原生帧率的一系列帧#1至#n。为了示例性目的,图3A所示的帧率可以是30fps。成像处理单元14接收原始帧22,然后可以根据由成像处理单元14接收的一个或多个输入信号修改或保留原始帧。如果成像处理单元14没有接收到请求调节帧速率的输入信号,那么原始视频数据22中包含的所有原始帧被传递到例如电子设备的存储单元的其他部件,如图3A中最佳例示的。

在一些实施例中,如果成像处理单元14接收到与快动作录制操作相关联的特效输入信号,那么成像处理单元14适当地修改原始视频数据22,该快动作录制操作表示以2倍原生帧率的加速或快进显示。基于此,使用丢弃每一个第二帧的算法来处理原始帧22,如图3B中最佳地例示的。可以将原始帧#1附加在写入器中,可以跳过/丢弃原始帧#2,然后可以写入原始帧#3,然后可以跳过/丢弃原始帧#4,以此类推,直到以2倍快动作速度生成修改或输出的视频录制数据24为止。该过程实时进行,并且快动作输出视频代替原始视频数据22被录制和/或实时显示。

在一些实施例中,如果成像处理单元14接收到与快动作录制操作相关联的特效输入信号,那么成像处理单元14适当地修改原始视频数据22,该快动作录制操作表示以3倍原生帧率的加速或快进显示。基于此,使用丢弃每一个第二帧和第三帧的算法来处理原始帧22,如图3C中最佳地例示的。可以将原始帧#1附加在写入器中,可以跳过/丢弃原始帧#2和#3,然后可以写入原始帧#4,然后可以跳过/丢弃原始帧#5和#6,然后可以写入原始帧#7,以此类推,直到以3倍快动作速度生成修改或输出的视频录制数据24为止。该过程实时进行,并且快动作输出视频代替原始视频数据22被录制和/或实时显示。

例如,如果成像处理单元14接收到与慢动作录制操作相关联的特效输入信号,则表示以-2倍原生帧率显示的减速或慢动作。基于此,使用复制/重复每一帧的算法来处理原始帧22,如图3D中最佳地例示的。可以将原始帧#1附加在写入器中,然后复制和写入原始帧#1,然后写入原始帧#2,然后复制和写入原始帧#2,然后写入原始帧#3,然后复制和写入原始帧#3,以此类推,直到以-2倍慢动作速度生成修改或输出的视频录制数据24为止。该过程实时进行,并且慢动作输出视频代替原始视频数据22被录制,和/或实时显示或紧接在录制停止并且后期录制算法完成了对录制的同时录入的命令的处理之后显示。

在一些实施例中,如果成像处理单元14接收到与慢动作录制操作相关联的特效输入信号,那么成像处理单元14适当地修改原始视频数据22,该慢动作录制操作表示以-3倍原生帧率的减速或慢动作显示。基于此,使用将每一帧复制/重复至少两次的算法来处理原始帧,如图3E中最佳地例示的。可以将原始帧#1附加在写入器中,然后将原始帧#1复制两次并写入各个帧,然后写入原始帧#2,然后将原始帧#2复制两次并写入各个帧,然后写入原始帧#3,然后将原始帧#3复制两次并写入各个帧,以此类推,直到以-3倍慢动作速度生成修改或输出的视频录制数据24为止。该过程实时进行,并且录制慢动作输出视频。

在一些实施例中,如果成像处理单元14接收到与慢动作录制操作相关联的特效输入信号,则折表示以-2倍原生帧率显示的减速或慢动作。基于此,使用其中作为两个相邻帧的“混合”的结果而创建新帧的算法来处理原始帧22,如图3F中最佳地例示的。可以将原始帧#1附加在写入器中,然后将原始帧#1与原始帧#2“混合”以创建1个新帧#1a,然后写入#1a,然后写入原始帧#2,然后将原始帧#2与原始帧#3“混合”以创建1个新帧#2a,然后写入#2a,然后写入原始帧#3,然后将原始帧#3与原始帧#4“混合”以创建1个新帧#3a,然后写入#3a,以此类推,直到以-2倍慢动作速度生成修改或输出的视频录制数据24。该过程实时进行,并且慢动作输出视频代替原始视频数据22被录制,和/或实时显示或紧接在录制停止并且后期录制算法完成了对录制的同时录入的命令的处理之后显示。

在一些实施例中,如果成像处理单元14接收到与慢动作录制操作相关联的特效输入信号,则折表示以-3倍原生帧率显示的减速或慢动作。基于此,使用其中作为两个相邻帧的“混合”的结果而创建新帧的算法来处理原始帧22,如图3G中最佳地例示的。可以将原始帧#1附加在写入器中,然后将原始帧#1与原始帧#2“混合”以创建2个新帧#1a和#1b,然后写入#1a和#1b,然后写入原始帧#2,然后将原始帧#2与原始帧#3“混合”以创建2个新帧#2a和#2b,然后写入#2a和#2b,然后写入原始帧#3,然后将原始帧#3与原始帧#4“混合”以创建2个新帧#3a和#3b,然后写入#3a和#3b,以此类推,直到以-3倍慢动作速度生成修改或输出的视频录制数据24。该过程实时进行,并且慢动作输出视频代替原始视频数据22被录制,和/或实时显示或紧接在录制停止并且后期录制算法完成了对录制的同时录入的命令的处理之后显示。

可以理解,可以用比上述更大的快动作或慢动作速度来执行附加的快和/或慢动作操作。还可以理解,可以实时地对单个原始视频数据实现快动作和慢动作速度的组合。因此产生包含原生速率、快动作速度、慢动作速度或其任意组合的部分的输出/最终视频录制数据。

参考图4和图5,组合式软件应用可与图像处理单元14或可操作地与图像处理单元14相关联的电子计算设备、机器或系统2相关联和/或由其执行。图4是与集成电路芯片26合并的图像处理单元14的图示,集成电路芯片可以嵌有电子设备2(例如相机12)形式的示例机器或其部件,在该示例机器或其部件内可以执行用于使部件或电子设备执行本文讨论的方法中的任何一个或多个的一组指令。包含图像处理单元14的集成电路芯片26可以被配置或可配置成包括用于其操作的固件。可以理解,集成电路芯片26可以嵌有相机12、显示单元20或电子设备2的其它部件。可以理解,可以利用通过蓝牙或其它协议连接到电子设备或相机的遥控器。

集成电路芯片26可以包括在其上存储了具体实施或利用本文描述的方法或功能中的任何一个或多个的一组或多组指令和数据结构(例如,指令)的计算机或机器可读介质。指令被配置或可配置用于图像处理单元14的操作,该图像处理单元可以从界面或GUI接收操作指令。

设备2还可以包括多个不同的输入(包括来自多个馈送的同时输入)和/或输出(Input and/or Output,I/O)系统,例如但不限于触摸屏和GUI、声呐或亚音速发送器、接收器和/或收发器、语音命令、蓝牙、遥控器、屏幕上手势命令或红外线。设备2还可以将视频或图像从视频录制设备录制到存储/储存系统,例如但不限于内部存储器、外部存储器、外部固态驱动器(SSD)或云。

图5是与电子设备2合并的图像处理单元14的图示,在该电子设备内可以执行用于使电子设备执行本文讨论的方法中的任何一个或多个的一组指令。

在各种示例实施例中,电子设备2作为独立设备操作或者可以连接(例如,联网)到其他设备。在联网部署中,电子设备可以在服务器-客户端网络环境中以服务器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。电子设备可以是个人计算机(Personal Computer,PC)、平板PC、机顶盒(Set-Top Box,STB)、个人数字助理(Personal Digital Assistant,PDA)、蜂窝电话、便携式音乐播放器(例如,例如动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer 3,MP3)播放器的便携式硬盘驱动器音频设备)、网络电器、网络路由器、交换机或网桥、或者能够执行指定该设备要采取的动作的一组指令(顺序的或以其他方式的)的任何机器。进一步地,虽然仅例示了单个电子设备,但是术语“设备”还应当被采取为包括单独地或联合地执行一组(或多组)指令以执行本文所讨论的方法中的任何一个或多个的设备的任何集合。

示例电子设备2包括经由总线彼此通信的一个处理器或多个处理器(例如,CPU、GPU或两者)以及主存储器和/或静态存储器。在其他实施例中,电子设备2还可以包括视频显示器(例如,液晶显示器(Liquid Crystal Display,LCD))。电子设备2还可以包括一个或多个字母数字输入设备(例如,键盘)、光标控制设备(例如,鼠标)、语音识别或生物特征验证单元(未示出)、驱动单元(也称为盘驱动单元)、信号生成设备(例如,扬声器)、通用串行总线(Universal Serial Bus,USB)和/或其他外围连接、以及网络接口设备。在其他实施例中,电子设备2还可以包括数据加密模块(未示出)以加密数据。

图像处理单元14可以是与驱动单元可操作地相关联的模块,其中驱动单元包括计算机或机器可读介质,在其上存储了具体实施或利用本文描述的方法或功能中的任何一个或多个的一组或多组指令和数据结构(例如,指令)。指令还可以在其由电子设备2执行期间完全或至少部分地驻留在存储器和/或处理器内。存储器和处理器还可以构成机器可读介质。

指令还可以利用多种公知的传输协议(例如,可扩展标记语言(ExtensibleMarkup Language,XML))中的任何一种经由网络接口设备通过网络发送或接收。虽然在示例实施例中将机器可读介质示出为单个介质,但是术语“计算机可读介质”应当被采取为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读介质”还应当被采取为包括能够存储、编码或承载由设备执行的一组指令并且使设备执行本申请的方法中的任何一个或多个的任何介质,或者能够存储、编码或承载由这样的一组指令利用或与这样的一组指令相关联的数据结构的任何介质。术语“计算机可读介质”因此应当被采取为包括但不限于固态存储器、光和磁介质以及载波信号。这样的介质还可以包括但不限于硬盘、软盘、闪存卡、数字视频盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)等。本文描述的示例实施例可以在包括安装在计算机上的软件的操作环境中、在硬件中、或在软件和硬件的组合中实现。

可以理解,软件应用被配置或可配置成存储在电子设备2的任何存储器中或与电子设备2通信的远程计算机上。软件应用被配置或可配置成包括能够允许用户定义要录制的视频的定制帧速率而不改变相机12的默认帧速率的界面。

现在更多地参考用于实时控制实况视频捕获数据的特效操作的方法。如所概述的,在一些实施例中,方法包括:用相机捕获真实世界场景的视频;在图形用户界面上以正常速度播放被捕获的视频;响应于由图形用户界面接收的用户界面输入,将被录制的视频在图形用户界面上的播放速度从正常播放速度改变为修改的播放速度。现在将更详细地参考根据一些实施例的用于实时控制实况视频捕获数据的特效操作的特定过程。

图6、图7和图24中例示了软件应用或界面的可能过程。界面和/或软件应用允许用户实时地选择预定的视频录制速率,而不改变由相机提供的原始速率。这使得本技术不依赖于相机或设备。图6例示了本技术的总体过程,包括用户界面、设备和与总体过程相关联的子例程。

参考图7,描述了本技术的过程,该过程确定是否已经为来自相机的原始视频数据流请求了任何特效选项。出于示例性目的,特效可以是通过修改原始视频数据中的帧来改变视频速率。该过程可以被配置或可配置成启动子例程和/或子过程以辅助总体过程。

启动本技术软件应用并将用户界面提供给用户。初始步骤可以供用户打开应用(app)50。之后,步骤51允许用户进入相机设置,并且选择使用电子设备的相机或者远程视频馈送。然后,过程进行到步骤52,其中,用户开始录制过程。相机或电子设备接收“开始”命令53以启动音频/视频录制。可以理解,相机“开始”命令可由本技术软件应用、相机应用、与电子设备或和电子设备或相机通信的远程设备相关联的任何其它应用来启动。

过程中的步骤54可以是确定用户是否具有继续该过程的适当许可。在步骤56处,可以从单独的用户设置、配置文件、数据库、密钥、帐户等获得许可属性。许可属性可以从用户数据库58获得。

步骤60确定用户是否具有适当的许可,并且如果用户不具有适当的许可,那么停止或结束过程(步骤94)。如果用户确实具有适当的许可,那么过程进行到步骤62,该步骤将获得设备支持的设置,包括最大录制帧率每秒帧数(fps)。然后,过程在步骤64中基于用户许可和设备支持来设置本地或远程设备的录制fps,然后在步骤66中打开来自设备的输入流。

一旦来自相机的原始数据输入流被传送到图像处理单元,那么过程将在步骤68中确定来自相机的视频数据流是否被打开,同时从步骤62接收信息。该请求可以用于检查图像处理单元是否从相机接收原始视频数据。原始视频数据流可以包括一体的或外围的麦克风,并且可以传递到图像处理单元而不是存储单元或视频录制设备。如果该过程确定输入流未被打开,那么停止或结束过程(步骤94)。

如果输入流打开,那么过程进行到步骤70以确定是否应当保存/录制原始视频数据。如果要保存原始视频数据,那么过程进行到步骤72,以利用如图8中的实例1所例示的写入视频流子例程来启动新的并行过程。来自录制设备的附加输入数据(步骤74)可以与原始视频数据一起保存。

如果在步骤70中确定不保存原始视频数据,那么过程进行到步骤76以确定视频输入流是否打开,如果视频输入流打开,那么过程进行到步骤76以确定用户是否已经录入了特效命令(步骤82)。在该过程中可以借助于界面录入特效命令。如果用户录入了特效命令,那么启动步骤84以应用特效子例程,如图9中最佳例示的。来自录制设备的附加输入数据(步骤86)可以与步骤84中的特效的应用一起被包括。

如果在步骤82中用户尚未输入对特效的请求,例如视频速率的改变,那么初始化步骤88,该初始化步骤应用其它命令,例如输入来自录制设备的数据(步骤90)和/或输入具有特效的处理后的视频和音频数据(步骤92)。步骤88可以包括来自步骤84的其他信息。

如果在步骤76中确定视频输入流关闭,那么过程停止或结束(步骤94)。

如果需要,则步骤78可以利用如图8中的实例2所例示的写入视频流子例程来启动新的并行过程。附加的处理后的视频和音频数据(步骤80)可以与来自步骤78的视频数据一起保存。步骤78的新的并行过程可以与步骤84和/或88分开并独立地启动。在步骤78之后,过程返回到步骤76。

在已经使用应用特效子例程处理了原始视频数据流或者已经保留了原始视频数据流之后,该过程可以使用写入视频流子例程来写入原始视频数据流。

参考图8,描述了写入视频数据流子例程,该子例程提供将视频数据流写入/保存/录制到一个或多个内部存储器、与电子设备通信的一个或多个可移动存储器、一个或多个外部设备、和/或上传到一个或多个云设备或账户的过程。

本技术过程依次确定视频数据流将写入到哪个或哪些设备、以及用户是否具有对与写入视频流子例程相关联的各个步骤的适当许可。如果用户确实具有写入到该特定设备或多个设备的适当许可,那么该过程根据任何用户偏好将视频数据流写入到该特定设备或多个设备。

该子例程在由来自图7中的过程的命令启动时开始(步骤104),该子例程然后继续从图7中的过程或数据库(步骤104和106)获得用户的偏好和许可(步骤102)。在步骤102之后,该子例程从相机获取原始视频数据流作为输入(步骤108)。原始视频数据流可以是按照步骤110来自电子设备、相机和/或麦克风的音频/视频流和/或按照步骤112来自设备的RAM和/或非易失性长期存储器的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤114,该步骤确定用户是否具有写入内部存储器的许可。如果用户确实具有适当的许可,并且如果用户偏好允许到内部存储器的写入/复制动作(步骤116),那么在步骤118处开始新的过程,该过程将视频数据流写入内部存储器。

如果从步骤114用户没有写入内部存储器的许可,或者如果在步骤116中用户偏好不允许写入/复制动作,或者在步骤118中开始过程之后,那么该子例程继续确定用户是否具有写入可移动存储器的许可(步骤120)。如果用户确实具有适当的许可,并且如果用户偏好允许到可移动存储器的写入/复制动作(步骤122),那么在步骤124处开始新的过程,该过程将视频数据流写入可移动存储器。

如果从步骤120用户没有写入可移动存储器的许可,或者如果在步骤122中用户偏好不允许这种动作,或者在步骤124中开始过程之后,那么该子例程继续确定用户是否具有写入外部设备的许可(步骤126)。如果用户确实具有适当的许可,并且如果用户偏好允许请求到外部设备的写入/复制动作(步骤128),那么在步骤130处开始新的过程,该过程将视频数据流写入外部设备。

如果从步骤126用户没有写入外部设备的许可,或者如果在步骤128中用户偏好不允许写入/复制动作,或者完成在步骤130中开始过程之后,那么该子例程继续确定用户是否具有写入云的许可(步骤132)。如果用户确实具有适当的许可,并且如果用户偏好允许到云的写入/复制动作(步骤134),那么在步骤136处开始新的过程,该过程将视频数据流写入云。

如果从步骤132用户没有写入云的许可,或者如果从步骤134用户偏好不允许这种动作,或者在步骤136中开始过程之后,那么该子例程停止或结束(步骤138)。

参考图9,描述了应用特效子例程,该子例程确定是否已经请求特效选项以及特效请求的特定操作。该子例程在由来自图7中的过程的命令启动时开始(步骤140),在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤142)。按照步骤146,原始视频数据流可以是来自电子设备、相机和/或麦克风的音频/视频流。

在获取原始视频数据流之后,启动步骤148,该步骤确定当前速度是否等于正常或原生速度,例如但不限于Recording_fps大于Playback_fps。如果用户已经做出速度改变请求,那么步骤150启动高级慢动作子例程,如图12中最佳例示的。在步骤150完成之后,该子例程停止或结束(步骤168)。

如果用户尚未做出速度改变请求,使得新的速度没有被设置为正常,例如如果Recording_fps不大于Playback_fps或者如果Recording_fps等于Playback_fps,那么该子例程进行到步骤152,该步骤确定当前速度是否等于正常或原生速度。如果用户已经做出速度改变请求或者如果用户已经将速度从之前修改的速度设置设置回正常,那么该子例程继续到步骤154以将视频流写入RAM和/或非易失性长期存储缓冲器,按照图3A。在步骤154完成之后,子例程进行到步骤164,以将视频缓冲器(RAM和/或非易失性长期存储器)返回到调用函数,该调用函数可以作为确定视频流是否打开或者该子例程是否停止或结束的步骤(步骤168)。

如果用户尚未做出速度改变请求,使得新的速度没有被设置为正常,那么该子例程将进行到步骤156,该步骤确定速度改变请求是快于还是慢于原始视频数据流的正常速度。这可以通过确定当前速度是否大于正常速度来实现。如果当前速度大于正常速度,那么该子例程将启动加速子例程(步骤158),如图10中最佳例示的。在加速子例程完成之后,该子例程然后将启动步骤164,以将视频缓冲器(RAM和/或非易失性长期存储器)返回到调用函数。

如果所请求的当前速度不大于正常速度,那么该子例程继续到步骤160以确定当前速度是否小于正常速度。如果当前速度小于正常速度,那么该子例程将启动减速子例程(步骤162),如图13中最佳例示的。在减速子例程完成之后,或者如果当前速度不小于正常速度,那么该子例程将启动步骤164,以将视频缓冲器(RAM和/或非易失性长期存储器)返回到调用函数。

参考图10,描述了加速子例程,该子例程确定是否需要帧丢弃选项和/或其他插件。该子例程在由来自应用特效子例程(图9,步骤158)的命令启动时开始(步骤170)。在开始之后,该子例程从相机和/或从来自远程视频馈送的流式输入获取原始视频数据流作为输入(步骤172)。按照步骤174,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤176,该步骤确定来自相机的视频数据输入流是否打开。如果它未打开,那么该子例程进行到步骤189,该步骤停止或结束该子例程。

如果输入流打开,那么该子例程确定是否需要帧丢弃(步骤178),并且如果需要,那么继续到步骤180,该步骤启动帧丢弃子例程,如图11中最佳例示的。

如果从步骤178不需要帧丢弃,或者在步骤180的帧丢弃子例程完成之后,那么该子例程进行到步骤181,以确定是否请求使用时间压缩或扩展,并且如果需要,那么继续到步骤182,该步骤启动时间压缩和扩展子过程,如图20中最佳例示的。

如果从步骤181不需要帧时间压缩和/或扩展,或者在步骤182的时间压缩和/或扩展子过程完成之后,那么子例程进行到步骤183,以确定是否请求使用可变FPS回放,并且如果需要,那么继续到步骤184,该步骤启动可变FPS回放子过程,如图21中最佳例示的。

如果从步骤183不需要帧可变FPS回放,或者在步骤184的可变FPS回放子过程完成之后,那么该子例程进行到步骤185,以确定是否请求了其它插件或应用。

在请求其他插件或应用的情况下,那么该子例程进行至步骤186以执行其他插件或应用,并且将它们的功能应用于来自步骤178的原始视频流或来自步骤180、182和/或184中的任何一个的修改视频流。例如,其他插件或应用可以是但不限于平滑技术等。这些其他插件或应用可以与本技术软件应用集成,或者可以远离本技术但是利用本技术软件应用可访问和可操作。

在从步骤185用户没有请求使用其他插件或应用的情况下或在步骤186的其他插件过程完成之后,那么该子例程将继续到步骤188以将数据返回到调用函数,该调用函数循环回到步骤176以确定视频输入流是否打开。步骤188可以从RAM和/或非易失性长期存储器接收视频/音频流(步骤187)。

可以理解,该应用特效子例程包括循环子过程,该循环子过程包括步骤178、180、185、186和188,直到在步骤176中确定输入流未打开为止。

参考图11,描述了帧丢弃子例程,该子例程确定是否丢弃帧以及丢弃哪些帧以模拟所请求的快动作视频。该子例程的示例性情况可以是Record_fps是否等于Playback_fps。该子例程在由来自加速子例程的命令启动时开始(步骤190)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤192)。按照步骤194,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤196,该步骤确定来自相机的视频数据输入流是否打开。如果步骤196确定输入流未打开,那么该子例程进行到步骤198,该步骤将数据返回到调用函数,即图10中的步骤180。步骤198可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤200)。在完成步骤198之后,然后该子例程停止或结束(步骤202)。

当从步骤196输入流打开时,该子例程确定速度是否等于正常速度的2倍快(步骤204)。如果是,那么初始化步骤206,该步骤将丢弃下一帧,按照图3B。之后,该子例程进行到步骤220,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤220之后,该子例程返回到步骤196。

如果速度不等于正常速度的2倍快(步骤204),那么该子例程确定速度是否等于正常速度的3倍快(步骤208)。如果是,那么初始化步骤210,该步骤将丢弃下2帧,按照图3C。之后,该子例程进行到步骤220,然后返回到步骤196。

如果速度不等于正常速度的3倍快(步骤208),那么该子例程确定速度是否等于正常速度的4倍快(步骤212)。如果是,那么初始化步骤214,该步骤将丢弃下3帧。之后,该子例程进行到步骤220,然后返回到步骤196。

如果速度不等于正常速度的4倍快(步骤212),那么该子例程将顺序地继续确定速度是否等于正常速度的“n”倍快(步骤216)。如果是,那么各个“第n”步将初始化丢弃下(n-1)个帧的动作(步骤218)。之后,该子例程进行到步骤220,然后返回到步骤196。

可以理解,该帧丢弃子例程确定是否应当逐帧地丢弃帧。结果是去除了特定帧的修改的视频流,以模拟预定速度的快动作视频。然后,将该修改视频流实时写入/保存到存储器。

可以理解,该帧丢弃子例程包括循环子过程,该循环子过程包括步骤204-220,直到在步骤196中确定输入流未打开为止。

参考图12,描述了高级慢动作子例程,该子例程确定是否需要帧添加选项和/或其他插件。该子例程在由来自应用特效子例程的命令启动时开始(步骤222)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤224)。按照步骤246,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤248,该步骤确定来自相机的视频数据输入流是否打开。如果步骤248确定输入流未打开,那么该子例程进行到步骤270,该步骤停止该子例程。

当从步骤248输入流打开时,该子例程确定是否需要帧添加(步骤250),并且如果需要,那么继续到步骤252,该步骤启动帧添加子例程,如图13中最佳例示的。

如果从步骤250不需要帧添加,或者在步骤252的帧添加子例程完成之后,那么该子例程进行到步骤254,以确定是否需要增加帧率录制速度。如果是,那么该子例程继续到步骤256,该步骤启动可变帧率子例程或增加帧率子例程,如图14最佳例示的。

如果从步骤254不需要增加帧率录制速度或在步骤256的可变帧率子例程完成之后,那么该子例程进行到步骤258以确定是否要使用恒定的高帧率录制速度。如果是,那么该子例程进行到步骤260,该步骤启动恒定高帧率子例程,如图15中最佳例示的。

如果从步骤258不需要帧恒定高帧率录制速度,或者在步骤260的恒定高帧率录制速度子例程完成之后,那么该子例程进行到步骤261以确定是否请求使用时间压缩或扩展,并且如果需要,那么继续到步骤262,该步骤启动时间压缩和扩展子过程,如图20中最佳例示的。

如果从步骤261不需要帧时间压缩和/或扩展,或者在步骤262的时间压缩和/或扩展子过程完成之后,那么子例程进行到步骤263,以确定是否请求使用可变FPS回放,并且如果需要,那么继续到步骤264,该步骤启动可变FPS回放子过程,如图22中最佳例示的。

如果从步骤263不需要帧可变FPS回放,或者在步骤264的可变FPS回放子过程完成之后,那么该子例程进行到步骤265,以确定是否请求了其它特效增强。在请求其它特效增强的情况下,那么该子例程进行到步骤267,该步骤可以执行其它特效子例程并将它们的功能应用于原始或修改的视频流。该其他特效子例程可以与本技术软件应用集成,或者可以远离本技术但是利用本技术软件应用可访问和可操作。

在从步骤265用户没有请求使用其他特效增强的情况下或在步骤267的其他特效子例程完成之后,那么该子例程将继续到步骤266以将数据返回到调用函数,该调用函数循环回到步骤248以确定视频输入流是否打开。可以理解,按照步骤268,其它处理后的音频/视频数据可以是返回给调用函数的数据的一部分。

可以理解,该高级慢动作子例程包括循环子过程,该循环子过程包括步骤250-266,直到在步骤248中确定输入流未打开为止。

参考图13,描述了与图12的减速子例程相关联的帧添加子例程,该子例程确定是否添加帧以及添加哪些帧来模拟所请求的慢动作视频。该子例程假定录制fps=回放fps。该子例程在由来自减速子例程的命令启动时开始(步骤272)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤274)。按照步骤276,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤274,该步骤确定来自相机的视频数据输入流是否打开。如果步骤278确定输入流未打开,那么该子例程进行到步骤298,该步骤将数据返回到调用函数,即图12中的步骤252。步骤298可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤300)。在完成步骤298之后,然后该子例程停止或结束(步骤302)。

当从步骤278输入流打开时,该子例程确定在步骤280中使用的帧添加的类型,或者是简单的帧复制(步骤281)或者是CPU更密集的帧混合(步骤282)。如果用户已经选择了帧复制,那么过程进行到步骤281,并且算法及其描述不变。然而,如果用户选择“帧混合”并且它们的硬件支持它,那么过程进行到步骤282,并且算法可以包括新的或附加的步骤。

可以理解,如果在步骤280期间选择了帧复制,那么对于各个速度“检查”,逻辑上,该过程将沿着左算法路径进行。还可以理解,如果在步骤280期间选择了帧混合,那么对于各个速度“检查”,逻辑上,该过程将沿着右算法路径进行。

子例程继续确定速度是否等于正常速度的2倍(步骤283)。如果是,那么对于帧复制路径,初始化步骤284,该步骤复制帧1次,以得到总共2个相同帧,按照图3D。之后,该子例程进行到步骤296,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤296之后,该子例程返回到步骤278。对于帧混合路径,然后初始化步骤285,该步骤将当前帧与下一帧混合,以得到总共1个新的“混合”帧,按照图3F。之后,该子例程进行到步骤296。

如果速度不等于正常速度的2倍慢(步骤283),那么该子例程确定速度是否等于正常速度的3倍慢(步骤286)。如果是,那么对于帧复制路径,初始化步骤287,该步骤复制帧2次,以得到总共3个相同帧,按照图3E。之后,该子例程进行到步骤296,然后返回到步骤278。对于帧混合路径,然后初始化步骤288,该步骤将当前帧与下一帧混合,以得到总共2个新的“混合”帧,按照图3G。之后,该子例程进行到步骤296。

如果速度不等于正常速度的3倍慢(步骤286),那么该子例程确定速度是否等于正常速度的4倍慢(步骤289)。如果是,那么对于帧复制路径,初始化步骤290,该步骤复制帧3次,以得到总共4个相同帧。之后,该子例程进行到步骤296,然后返回到步骤278。对于帧混合路径,然后初始化步骤291,该步骤将当前帧与下一帧混合,以得到总共3个新的“混合”帧。之后,该子例程进行到步骤296。

如果速度不等于正常速度的4倍慢(步骤289),那么该子例程将继续确定速度是否等于正常速度的“n”倍慢(步骤292)。如果是,那么对于帧复制路径,各个“第n”步将复制帧(n-1)次,以得到总共“n”个相同帧。之后,该子例程进行到步骤296,然后返回到步骤278。对于帧混合路径,然后初始化步骤295,该步骤将当前帧与下一帧混合,以得到总共(n-1)个新的“混合”帧。之后,该子例程进行到步骤296。

可以理解,该帧添加子例程包括循环子过程,该循环子过程包括步骤280-296,直到在步骤278中确定输入流未打开为止。

参考图14,描述了与图12的可变帧率子例程相关联的可变高录制fps子例程(120FPS)的示例。该可变帧率子例程可以用于模拟慢动作,例如但不限于慢动作范围=录制速度/回放fps=120fps/30fps=4。

该子例程在由来自减速子例程的命令启动时开始(步骤304)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤306)。按照步骤308,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤310,以设置设备的录制帧率,例如设置为Recording_Frame_Rate=120fps。之后,步骤312设置设备的回放帧率,例如设置为Playback_Frame_Rate=30fps。

启动该子例程的步骤314,该步骤确定来自相机的视频数据输入流是否打开。如果步骤314确定输入流未打开,那么该子例程进行到步骤332,该步骤将数据返回到调用函数,即图12中的步骤256。步骤332可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤334)。在完成步骤332之后,然后该子例程停止或结束(步骤336)。

当从步骤314输入流打开时,该子例程确定录制速度是否等于“-4倍”(步骤316),其可以是慢动作范围4。如果是,那么初始化步骤318,该步骤将录制帧率设置为120fps。之后,该子例程进行到步骤330,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤330之后,该子例程返回到步骤314。

如果录制速度不等于“-4倍”(步骤316),那么该子例程确定录制速度是否等于“-3倍”(步骤320)。如果是,那么初始化步骤322,该步骤将录制帧率设置为90fps。之后,该子例程进行到步骤330,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤330之后,该子例程返回到步骤314。

如果录制速度不等于“-3倍”(步骤320),那么该子例程确定录制速度是否等于“-2倍”(步骤324)。如果是,那么初始化步骤326,该步骤将录制帧率设置为60fps。之后,该子例程进行到步骤330,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤330之后,该子例程返回到步骤314。

如果录制速度不等于“-2倍”(步骤324),那么该子例程将录制帧率设置为30fps(步骤328),该帧率可以是等于或小于“正常”的录制速度。之后,该子例程进行到步骤330,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤330之后,该子例程返回到步骤314。

可以理解,该可变高录制fps子例程包括循环子过程,该循环子过程包括步骤316-330,直到在步骤314中确定输入流未打开为止。

参考图15,描述了与图12的恒定高帧率子例程相关联的恒定帧率慢动作子例程的示例。该恒定帧率慢动作子例程可以用于模拟慢动作。

该子例程在由来自减速子例程的命令启动时开始(步骤340)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤342)。按照步骤346,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤348,该步骤获得视频流的录制帧率(录制fps),然后继续到步骤350,该步骤获得视频流的回放帧率(回放fps)。

在获取了录制和回放帧率的情况下,该子例程然后确定recording_fps是否=playback_fps*2(步骤352)。如果是,那么子例程进行到步骤354,以便以60fps启动恒定高帧率子例程,如图16最佳例示的。之后,该子例程停止或结束(步骤368)。

若未发现recording_fps=playback_fps*2,那么该子例程进行到步骤356,以确定recording_fps是否=playback_fps*4。如果是,那么子例程进行到步骤358,以便以120fps启动恒定高帧率子例程,如图17最佳例示的。之后,该子例程停止或结束(步骤368)。

若未发现recording_fps=playback_fps*4,那么该子例程进行到步骤360,以确定recording_fps是否=playback_fps*8。如果是,那么子例程进行到步骤362,以便以240fps启动恒定高帧率子例程,如图18最佳例示的。之后,该子例程停止或结束(步骤368)。

若未发现recording_fps=playback_fps*8,那么该子例程进行到步骤364,该步骤对于其他所有情况下通用,并且以更高的fps启动恒定高帧率子例程。之后,该子例程停止或结束(步骤368)。

参考图16,描述了与图15的恒定高帧率子例程相关联的恒定高录制fps子例程(60FPS)的示例。该恒定高帧率子例程可以用于模拟慢动作,例如但不限于慢动作范围=录制速度/回放fps=60fps/30fps=2。“慢动作范围”被定义为可以利用录制和回放fps设置来创建慢动作效果使得算法不必使用任何类型的“帧添加”的倍数因子。

该子例程在由来自减速子例程的命令启动时开始(步骤370)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤372)。按照步骤374,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤376,该步骤设置设备的录制帧率,例如设置为Recording_Frame_Rate=60fps。之后,步骤378设置设备的回放帧率,例如设置为Playback_Frame_Rate=30fps。

启动该子例程的步骤380,该步骤确定来自相机的视频数据输入流是否打开。如果步骤380确定输入流未打开,那么该子例程进行到步骤398,该步骤将数据返回到调用函数,即图15中的步骤354。步骤398可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤400)。在完成步骤398之后,然后该子例程停止或结束(步骤402)。

当从步骤380输入流打开时,该子例程确定录制速度是否等于“-4倍”(步骤382)。如果是,那么初始化步骤384,该步骤按照图3E将流中的各个帧复制2次,以得到总共3个相同帧,或者按照图3G得到3个混合帧。之后,该子例程进行到步骤396,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤396之后,该子例程返回到步骤380。

如果录制速度不等于“-4倍”(步骤382),那么该子例程确定录制速度是否等于“-3倍”(步骤386)。如果是,那么初始化步骤388,该步骤按照图3D将流中的各个帧复制1次,以得到总共2个相同帧,或者按照图3F得到2个混合帧。之后,该子例程进行到步骤396,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤396之后,该子例程返回到步骤380。

如果录制速度不等于“-3倍”(步骤386),那么该子例程确定录制速度是否等于“-2倍”(步骤390)。如果是,那么初始化步骤392,该步骤通过未改变的视频流。之后,该子例程进行到步骤396,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤396之后,该子例程返回到步骤380。

如果录制速度不等于“-2倍”(步骤390),那么对于等于“正常”的录制速度,该子例程将丢弃2帧中的1帧(1/2)(步骤394)。之后,该子例程进行到步骤396,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤396之后,该子例程返回到步骤380。

可以理解,该恒定高录制fps子例程(60FPS)包括循环子过程,该循环子过程包括步骤382-396,直到在步骤380中确定输入流未打开为止。

参考图17,描述了与图15的恒定高帧率子例程相关联的恒定高录制fps子例程(120FPS)的示例。该恒定高帧率子例程可以用于模拟慢动作,例如但不限于慢动作范围=录制速度/回放fps=120fps/30fps=4。

该子例程在由来自减速子例程的命令启动时开始(步骤404)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤406)。按照步骤408,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤410,该步骤设置设备的录制帧率,例如设置为Recording_Frame_Rate=120fps。之后,步骤412设置设备的回放帧率,例如设置为Playback_Frame_Rate=30fps。

启动该子例程的步骤414,该步骤确定来自相机的视频数据输入流是否打开。如果步骤414确定输入流未打开,那么该子例程进行到步骤448,该步骤将数据返回到调用函数,即图15中的步骤358。步骤448可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤450)。在完成步骤448之后,然后该子例程停止或结束(步骤452)。

当从步骤414输入流打开时,该子例程确定录制速度是否等于“-8倍”(步骤416)。如果是,那么初始化步骤418,该步骤将帧复制4次,以得到总共5个相同帧或混合帧。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-8倍”(步骤416),那么该子例程确定录制速度是否等于“-7倍”(步骤420)。如果是,那么初始化步骤422,该步骤将帧复制3次,以得到总共4个相同帧或混合帧。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-7倍”(步骤420),那么该子例程确定录制速度是否等于“-6倍”(步骤424)。如果是,那么初始化步骤426,该步骤按照图3E将帧复制2次,以得到总共3个相同帧,或者按照图3G得到3个混合帧。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-6倍”(步骤424),那么该子例程确定录制速度是否等于“-5倍”(步骤428)。如果是,那么初始化步骤430,该步骤按照图3D将帧复制1次,以得到总共2个相同帧,或者按照图3F得到2个混合帧。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-5倍”(步骤428),那么该子例程确定录制速度是否等于“-4倍”(步骤432)。如果是,那么初始化步骤434,该步骤通过未改变的视频流。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-4倍”(步骤432),那么该子例程确定录制速度是否等于“-3倍”(步骤436)。如果是,那么初始化步骤438,该步骤丢弃4帧中的1帧(1/4)(步骤438)。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-3倍”(步骤436),那么该子例程确定录制速度是否等于“-2倍”(步骤440)。如果是,那么初始化步骤442,该步骤丢弃4帧中的2帧(2/4)(步骤442)。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

如果录制速度不等于“-2倍”(步骤440),那么对于等于“正常”的录制速度,该子例程将丢弃4帧中的3帧(3/4)(步骤444)。之后,该子例程进行到步骤446,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤446之后,该子例程返回到步骤414。

可以理解,该恒定高录制fps子例程(120FPS)包括循环子过程,该循环子过程包括步骤416-446,直到在步骤414中确定输入流未打开为止。

参考图18,描述了与图15的恒定高帧率子例程相关联的恒定高录制fps子例程(240FPS)的示例。该恒定高帧率子例程可以用于模拟慢动作,例如但不限于慢动作范围=录制速度/回放fps=240fps/30fps=8。

该子例程在由来自减速子例程的命令启动时开始(步骤454)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤456)。按照步骤458,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤460,该步骤设置设备的录制帧率,例如设置为Recording_Frame_Rate=240fps。之后,步骤462设置设备的回放帧率,例如设置为Playback_Frame_Rate=30fps。

启动该子例程的步骤464,该步骤确定来自相机的视频数据输入流是否打开。如果步骤464确定输入流未打开,那么该子例程进行到步骤498,该步骤将数据返回到调用函数,即图15中的步骤362。步骤498可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤500)。在完成步骤498之后,然后该子例程停止或结束(步骤502)。

当从步骤464输入流打开时,该子例程确定录制速度是否等于“-8倍”(步骤466)。如果是,那么初始化步骤468,该步骤通过未改变的视频流。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-8倍”(步骤466),那么该子例程确定录制速度是否等于“-7倍”(步骤470)。如果是,那么初始化步骤472,该步骤从每8帧中丢弃1帧(1/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-7倍”(步骤470),那么该子例程确定录制速度是否等于“-6倍”(步骤474)。如果是,那么初始化步骤476,该步骤从每4帧中丢弃1帧(2/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-6倍”(步骤474),那么该子例程确定录制速度是否等于“-5倍”(步骤478)。如果是,那么初始化步骤480,该步骤从每8帧中丢弃3帧(3/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-5倍”(步骤478),那么该子例程确定录制速度是否等于“-4倍”(步骤482)。如果是,那么初始化步骤484,该步骤从每2帧中丢弃1帧(4/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-4倍”(步骤482),那么该子例程确定录制速度是否等于“-3倍”(步骤486)。如果是,那么初始化步骤488,该步骤从每8帧中丢弃5帧(5/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-3倍”(步骤486),那么该子例程确定录制速度是否等于“-2倍”(步骤490)。如果是,那么初始化步骤492,该步骤从每4帧中丢弃3帧(6/8)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

如果录制速度不等于“-2倍”(步骤490),那么该子例程将从每8帧中丢弃7帧(7/8)(步骤494)。之后,该子例程进行到步骤496,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤496之后,该子例程返回到步骤464。

可以理解,该恒定高录制fps子例程(240FPS)包括循环子过程,该循环子过程包括步骤466-496,直到在步骤464中确定输入流未打开为止。

参考图19,描述了与图15的恒定高帧率子例程相关联的恒定高录制fps子例程(240FPS)下的极端慢动作的示例。该恒定高帧率子例程可以用于模拟极端慢动作,例如但不限于-8倍到-128倍速度的慢动作范围。图19的具有帧添加的恒定高录制FPS的子例程例示了用于组合高每秒帧数录制速率、“正常”每秒回放帧数、以及增强慢动作特效的帧添加的示例性流程图算法。该子例程还例示了>=-8倍的速度和2的理想倍数,其中图18中最佳地例示了慢于-8倍的速度。

该子例程在由来自减速子例程的命令启动时开始(步骤510)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤512)。按照步骤514,原始视频数据流可以是来自电子设备、相机和/或麦克风的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤516,该步骤设置设备的录制帧率,例如设置为录制帧率=240fps。之后,步骤518设置设备的回放帧率,例如设置为回放帧率=30fps。

启动该子例程的步骤520,该步骤确定来自相机的视频数据输入流是否打开。如果步骤520确定输入流未打开,那么该子例程进行到步骤544,该步骤将数据返回到调用函数,即图15中的步骤358。步骤544可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤546)。在完成步骤544之后,然后该子例程停止或结束(步骤548)。

当从步骤520输入流打开时,该子例程确定录制速度是否等于“-8倍”(步骤522)。如果是,那么初始化步骤524,该步骤通过未变化/未改变的视频流。之后,该子例程进行到步骤542,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤542之后,该子例程返回到步骤520。

如果录制速度不等于“-8倍”(步骤522),那么该子例程确定录制速度是否等于“-16倍”(步骤526)。如果是,那么初始化步骤528,该步骤按照图3D将各个帧复制1次,以得到总共2个相同帧,或者按照图3F得到2个混合帧。之后,该子例程进行到步骤542,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤542之后,该子例程返回到步骤520。

如果录制速度不等于“-16倍”(步骤526),那么该子例程确定录制速度是否等于“-32倍”(步骤530)。如果是,那么初始化步骤532,该步骤按照图3E将各个帧复制2次,以得到总共3个相同帧,或者按照图3G得到3个混合帧。之后,该子例程进行到步骤542,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤542之后,该子例程返回到步骤520。

如果录制速度不等于“-32倍”(步骤530),那么该子例程确定录制速度是否等于“-64倍”(步骤534)。如果是,那么初始化步骤536,该步骤将各个帧复制4次,以得到总共5个相同帧或混合帧。之后,该子例程进行到步骤542,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤542之后,该子例程返回到步骤520。

如果录制速度不等于“-64倍”(步骤534),那么该子例程确定录制速度是否等于“-128倍”(步骤538)。如果是,那么初始化步骤540,该步骤将各个帧复制8次,以得到总共9个相同帧或混合帧。之后,该子例程进行到步骤542,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤542之后,该子例程返回到步骤520。

可以理解,该恒定高录制fps子例程(240FPS)包括循环子过程,该循环子过程包括步骤520-542,直到在步骤520中确定输入流未打开为止。

参考图20,例示并将描述片段时间压缩和扩展子例程的示例,该子例程通过在录制已经停止之后的视频处理期间加速或减速回放时间来提供用于慢动作和快动作的流程图算法。可以在时间压缩/扩展算法中执行帧添加/丢弃,以模拟慢动作特效。

利用该算法/子例程创建的视频文件可以在所有视频播放器中正常播放,并且不需要元数据。这是本技术中创建的其他视频文件的替代。

该子例程在由来自减速子例程的命令启动时开始(步骤550)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤552)。按照步骤554,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤556,该步骤设置设备的录制FPS。之后,步骤558将回放FPS设置为小于或等于(<=)录制FPS。

启动该子例程的步骤560,该步骤确定来自相机的视频数据输入流是否打开。如果步骤560确定输入流未打开,那么该子例程进行到步骤576。步骤576可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤578)。在完成步骤576之后,然后该子例程停止或结束(步骤580)。

当从步骤560输入流打开时,该子例程确定速度是否小于“正常”(步骤562)。如果是,那么初始化步骤564,该步骤将视频片段fps设置为等于录制fps除以速度(片段FPS=Record_fps/速度)。之后,该子例程进行到步骤574,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤574之后,该子例程返回到步骤560。

如果速度不小于“正常”(步骤562),那么该子例程确定速度是否等于“正常”(步骤566)。如果是,那么初始化步骤568,该步骤将视频片段fps设置为等于录制fps(片段FPS=Record_FPS)。之后,该子例程进行到步骤574,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤574之后,该子例程返回到步骤560。

如果录制速度不等于“正常”(步骤566),那么该子例程确定速度是否大于“正常”(步骤570)。如果是,那么初始化步骤572,该步骤将视频片段fps设置为等于录制fps乘以速度(片段FPS=Record_FPS*速度)。之后,该子例程进行到步骤574,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤574之后,该子例程返回到步骤560。

可以理解,该片段时间压缩和扩展子例程包括循环子过程,该循环子过程包括步骤560-574,直到在步骤560中确定输入流未打开为止。

片段时间压缩和扩展子例程的示例在图21中最佳地例示,该图例示了图20中的算法的结果。顶部的条表示在连续录制中的每个视频片段的以秒为单位的视频片段582。以秒为单位的录制视频片段582由片段时间压缩和扩展子例程处理。当用户/AI改变速度变量时创建片段582。向原始视频片段应用时间特效,并且将时间特效写入处理后的视频流RAM,其中,各个片段被压缩、扩展或不改变。然后,与以秒为单位的录制片段时间相对应的每视频片段以秒为单位提供所得到的回放视频片段584。参考图22,例示并将描述可变回放速度录制子例程的示例,该子例程通过在视频录制进行的同时加速或减速回放帧率来提供用于慢动作和快动作的流程图算法。该算法可以产生具有嵌入在视频的元数据中的快/慢动作命令的正常视频。元数据是嵌入在视频文件中的数据,不在视频录制中出现。

该子例程在由来自图12中的减速子例程(步骤264)的命令启动启动时开始(步骤590)。在开始之后,该子例程从相机获取原始视频数据流作为输入(步骤592)。按照步骤594,原始视频数据流可以是来自包括相机和/或麦克风的本地电子设备、来自包括相机和/或麦克风的远程设备、或来自其他音频/视频馈送的音频/视频流。

在获取原始视频数据流之后,启动该子例程的步骤596,该步骤设置设备的录制FPS。之后,步骤598将回放FPS设置为小于或等于(<=)录制FPS。

启动该子例程的步骤600,该步骤确定来自相机的视频数据输入流是否打开。如果步骤600确定输入流未打开,那么该子例程进行到步骤616。步骤616可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤618)。在完成步骤616之后,然后该子例程停止或结束(步骤620)。

当从步骤600输入流打开时,该子例程确定速度是否小于“正常”(步骤602)。如果是,那么初始化步骤604,该步骤将片段回放fps设置为等于该视频部分的录制fps除以速度(片段FPS=Record_FPS/速度)。之后,该子例程进行到步骤614,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤614之后,该子例程返回到步骤600。

如果速度不小于“正常”(步骤602),那么该子例程确定速度是否等于“正常”(步骤606)。如果是,那么初始化步骤608,该步骤将片段回放fps设置为等于该视频部分的录制fps(片段FPS=Record_FPS)。之后,该子例程进行到步骤614,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤614之后,该子例程返回到步骤600。

如果录制速度不等于“正常”(步骤606),那么该子例程确定速度是否大于“正常”(步骤610)。如果是,那么初始化步骤612,该步骤将片段回放fps设置为等于该视频部分的录制fps乘以速度(片段FPS=Record_FPS*速度)。之后,该子例程进行到步骤614,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤614之后,该子例程返回到步骤600。

可以理解,该片段时间压缩和扩展子例程包括循环子过程,该循环子过程包括步骤600-614,直到在步骤600中确定输入流未打开为止。

参考图23,例示并将描述可变回放速度回放子例程的示例,该子例程通过在视频回放进行的同时加速或减速回放帧率来提供用于播放具有慢动作和快动作特效的视频文件的流程图算法。需要采用图23中的算法的应用来播放由图20和图21中的算法产生的视频。该应用必须能够解码元数据和/或伴随的“视频项目文件”中的信息,并且在播放视频的同时将加速和减速命令应用于回放帧率。视频项目包含视频文件加上伴随文件,该伴随文件具有要执行的特效命令,定制播放器可以解码该特效命令并在实时回放中应用该特效命令。

如果视频用不兼容的播放器播放,那么忽略元数据中的加速和减速特效命令,并且视频以相同的速度连续播放。

该子例程在由来自减速子例程的命令启动时开始(步骤622)。在开始之后,该子例程从驻留在设备的存储器中的视频项目文件获取原始视频数据流作为输入(步骤624)。按照步骤626,原始视频数据流可以是来自电子设备的视频项目文件中的音频/视频流、或者是远程视频项目文件。

在获取原始视频数据流之后,启动该子例程的步骤628,该步骤获得视频的元数据、录制FPS、回放FPS和可变回放日志。之后,步骤630提取视频的各个部分的回放速度(速度),其中时间特效应用于来自图20的部分。

启动该子例程的步骤632,该步骤确定来自相机的视频数据输入流是否打开。如果步骤632确定输入流未打开,那么该子例程进行到步骤648。步骤648可以从RAM和/或非易失性长期存储器接收视频/音频帧的数据(步骤950)。在完成步骤648之后,然后该子例程停止或结束(步骤652)。

当从步骤632输入流打开时,该子例程确定速度是否小于“正常”(步骤634)。如果是,那么初始化步骤636,该步骤将片段回放fps设置为等于该视频部分的录制fps除以速度(片段FPS=Record_FPS/速度)。之后,该子例程进行到步骤646,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。然后子例程进行到步骤647,该步骤显示来自RAM缓冲器的音频/视频馈送,之后继续到步骤632。

如果速度不小于“正常”(步骤634),那么该子例程确定速度是否等于“正常”(步骤638)。如果是,那么初始化步骤340,该步骤将片段回放fps设置为等于该视频部分的录制fps(片段FPS=Record_FPS)。之后,该子例程进行到步骤646,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤646之后,该子例程返回到步骤632。

如果录制速度不等于“正常”(步骤638),那么该子例程确定速度是否大于“正常”(步骤642)。如果是,那么初始化步骤644,该步骤将片段回放fps设置为等于该视频部分的录制fps乘以速度(片段FPS=Record_FPS*速度)。之后,该子例程进行到步骤646,以将帧写入缓冲器(RAM和/或非易失性长期存储器)。在步骤646之后,该子例程继续到步骤647,以显示从RAM缓冲器的音频/视频(A/V)馈送,然后返回到步骤632。

可以理解,该片段时间压缩和扩展子例程包括循环子过程,该循环子过程包括步骤632-647,直到在步骤632中确定输入流未打开为止。

图24中例示了使用本技术的可能方法。用户可以利用本技术的用户界面在能够运行应用软件(App)的设备上启动App。App可以在图像合成屏幕中打开,这可以作为默认设置。用户可以可选地选择喜爱的或预定的设置。应用设备设置,并且设备处于就绪状态,同时可选地仍然在图像合成屏幕中。

用户可以利用设备的相机、远程相机或远程视频流,通过触摸或激活与App或用户界面相关联的“录制”图标来开始录制。可选地,用户可以连续触摸并保持录制图标或按钮以继续录制。一个方面可以是,图标或与图标相关联的按钮可以是动画的,以指示实况录制是有效的。

在录制进行的同时,用户可以录入放大或缩小的特效命令。由设备显示的视频被配置或可配置成实时示出与视频相关联的放大或缩小特效。

在录制进行的同时,用户可以录入创建慢动作和/或快动作的特效命令。一个方面是在设备上显示实况视频的速度上没有差别。

用户可以通过释放或去除对录制图标或按钮的触摸来结束录制。之后,App停止录制,显示“回顾”屏幕,完成处理特效,并提供保存或自动保存处理后的视频的选项。

在保存之后,在处理已经完成之后,新产生的视频可以由设备或远程设备观看。视频可以连续播放,并在结束后重新开始。App可以提供一套编辑工具,这些工具可以用于进一步编辑或修改原始或处理后的视频。可选地,可以编辑视频以微调慢动作和快动作效果、以及其它定制设计元素,并张贴视频。可以重复该过程,直到创建了期望的视频结果为止。

App完成处理视频中的任何新元素,并且在完成每次编辑之后向用户回放。可以重复该过程,直到创建了期望的视频结果为止。

在处理视频和/或对视频的任何附加编辑完成之后,App可以保存最终视频或编辑。App可以将最终视频保存到设备的内部存储器、外部存储器和/或云。

App还可以提供允许用户向社交媒体平台张贴最终视频的选项。App可以将最终视频上传到附加平台和/或云上,并且显示允许用户开始录制新视频的合成屏幕。在一些实施例中,App可以允许设备的用户将视频张贴到应用内的用户的故事或者社交媒体页面,或者外部地共享到其他社交媒体应用,如照片墙、脸书、推特等。

参考图25,描述了界面30的至少一部分。界面30可以是但不限于能够提供用于设备优化参数或变量的屏幕的GUI。GUI 30可被配置或可配置成包括:录制开始/停止控制器32,该控制器设置在屏幕上的任何地方;以及速度选择区域34,该区域设置在屏幕上的任何地方,可提供用于操纵来自相机12的原始视频数据中的帧的默认或预定帧率速度。速度选择区域34可以包括速度控制指示器35,该速度控制指示器可以经由用户的控制沿着速度选择区域34行进以指示当前或可选择的速度。GUI 30还可以包括用于控制缩放36、缩放和快动作速率38、和/或缩放和慢动作速率40的屏幕上任何地方的区域。在另一示例中,GUI 30可以向用户提供使用“捏拉缩放”操作的能力,其中,用户使用多触摸手势来快速放大和缩小,同时“缩放因子”相应地向上和向下调节。

在一些实施例中,用户可触摸和/或按住开始/停止控制器32以启动、停止或暂停相机的录制功能。另外,用户可通过用手指或类似触笔的设备触摸区域且在任何方向上沿着区域进行滑动运动来与速度选择区域34交互。处理单元可以被配置或可配置成将该滑动移动解释为特效输入命令。例如,从速度选择区域34的中心区域向右滑动可将速率从原生速率改变为2倍、3倍、4倍、“n”倍原生速率,这取决于滑动运动在速度选择区域34上向右行进多远。从速度选择区域34的中心区域向左滑动可将速率从原生速率改变为-2倍、-3倍、-4倍、-“n”倍原生速率,这取决于滑动运动在速度选择区域34上向左行进多远。

在一些实施例中,用户可以通过进行从GUI的下部区域朝向上部区域的竖直滑动运动来控制相机的缩放功能。用户还可以通过进行从GUI的下部区域朝向右上或左上区域的弯曲竖直滑动运动来控制缩放和速率的组合,这取决于是否期望缩放和快动作或慢动作效果。

替代性地,GUI 30可被配置或可配置成包括可控制相机和/或显示器的功能、属性、操作、设置和/或特性的区域、图标或窗口。这些功能、属性、操作、设置和/或特性的示例可以是但不限于闪光、免提、定时器、静音、自拍、广播、共享、过滤器、媒体、停止/开始录制等。GUI 30可以被配置或可配置成用于预设原始视频的速率的最小值、最大值或范围。

更进一步并且可选地,GUI 30可以被配置或可配置成包括向视频数据流提供编辑选项的区域、图标或窗口。编辑选项可以包括但不限于添加文本、添加绘图、添加声音、面部过滤器、添加装饰、创建视频循环、添加封面等。

GUI 30可以被配置或可配置成包括输出视频录制数据的显示,该输出视频录制数据可以是原始视频数据和/或修改的视频数据,或者可以显示编辑的视频数据流。可以理解,由于输入的变化,GUI 30所显示的输出视频录制数据可以动态地实时变化。因此,本技术可以在相机获取视频的同时以及在录制进行的同时,实时地显示原始视频数据、任何数量的修改视频数据或其子集之间的无缝转换。修改的视频数据可以包括任意数量的快到慢动作子集,并且这些子集可以与原始视频数据的子集组合。当相机正在捕获与原始视频数据相关联的图像时,实况或实时地完成原始视频数据和/或任何数量的修改的视频数据的显示。可以理解,本技术在相机捕获图像时并且在输出视频被写入存储器的同时呈现所显示的输出视频数据。因此,允许用户移动、遥摄、缩放等相机,同时仍然捕获视频,并且同时将任意数量的特效应用和显示到原始视频数据。

在使用中,现在可以理解,用户可以使用包括本技术软件应用或与本技术软件应用可操作地相关联的电子设备来启动相机操作,或者用户可以使用与相机可操作地相关联的本技术软件应用来启动相机操作。

在操作本技术软件应用时,向用户提供用户界面以用于控制本技术软件应用和/或相机的功能。

用户可以使用界面来启动相机的录制功能,此时,本技术软件应用将从相机或远程视频馈送接收任何原始视频数据,该馈送可以与麦克风或(一个或多个)外围麦克风相关联。在该操作期间,来自相机和/或麦克风的原始视频数据被转移到本技术软件应用而不是存储单元,存储单元通常将从相机接收原始数据。

界面提供来自用户的简单输入,以控制从相机接收的原始视频数据的录制速率。出于示例性目的,用户在界面上的该输入可以是跨触摸屏的一部分的移动或施加到触摸屏的一部分的压力。可以理解,该输入可以以各种形式出现,例如但不限于光标的移动、语音命令、图标的激活、开关或按钮的操作、屏幕上手势、次声设备等。

如果用户不提供改变速率的输入,那么显示来自相机的原始视频数据并将其写入存储器。

在一些实施例中,用户可以利用“单触”模式来操纵视频的时间。在该模式中,可以通过触摸屏幕来启动录制操作,并且将手指从屏幕上拿开将停止录制操作。替代性地,录制在触摸屏幕的同时在操作中。示例性操作可以包括:将触摸手指移动到屏幕中间的左边将减速视频的时间;将触摸手指移动到屏幕中间使视频的时间返回到正常速度;将触摸手指移动到屏幕中间的右边将加速视频的时间;触摸手指可以快速地从极左到极右(反之亦然);将触摸手指向上移动将启动放大(远摄)操作;将触摸手指向下移动将启动缩小(广角)操作;以及在录制进行的同时以及在触摸手指在屏幕上的同时,利用其他手指单独地实况调节其他设置,例如但不限于闪光、静音等。

更进一步地,一些实施例可以包括“多触摸”模式,该模式允许用户在用户界面中示出正在录制的视频的同时通过用户界面单独地选择功能。

在一些实施例中,可利用“免手势(Hands-Free)”模式,例如,用户可轻击速度标记或指示符35或将指示符35滑动到速度选择区域34上的期望速度位置。

更进一步地,可以利用“手动(Hands-On)”模式,例如,用户可以按压并按住“录制”按钮32并将其手指滑动到左边,并且按钮直接跟随在用户的手指下方,使得在该示例中按钮在“-2倍”启示标签的竖直上方。可以理解,速度指示符35可以自动地沿着速度选择区域34移动,以跟随“录制”按钮32的移动。因此,可以理解,在“手动”模式中,位于速度选择区域34上的速度指示符35相应地随着“录制”按钮32的移动而移动。

替代性地,如果用户确实提供改变速率的输入,那么使用本技术软件应用及其相关联算法实时地处理原始视频数据。原始视频数据包括一个或多个帧,并且这些帧被处理以创建最终视频数据流,该最终视频数据流对应于由用户输入的速率。

这利用本技术软件应用创建修改视频数据流来实现。该修改视频数据流可以通过从原始视频数据中丢弃特别标识的帧或通过复制特别标识的帧并将这些复制的帧与其原始帧相邻地添加或通过“帧混合”向原始视频数据添加帧来创建,该“帧混合”将一个或多个帧内插入两个参考帧之间。可以通过本技术软件应用来确定和重复丢弃的帧或添加的帧的数量,直到实现期望的速率为止。

本技术软件应用然后可以将原始视频数据或修改的视频数据流写入到存储器,从而提供视频以正常速率、快动作速率或慢动作速率显示。

可以理解,在写入存储器之后不修改视频的速率,从而在具有或不具有特效的情况下实时录制视频,并且省略了对改变视频速率的后期制作编辑的需要。

本技术可以被配置或可配置成使得算法创建视频数据流的更平滑的时间修改。例如,当用户从一个速度跳到另一个速度时,算法可以填充视频间隙。算法可以在两个或更多个数据点之间内插数据,因此例如当从-3倍慢到4倍快时产生甚至更多的平滑度。

在回放期间,视频可能非常突然。这可以在算法上被校正以平滑视频,以便在向各个特效的开始的转变期间、在各个特效期间以及从特效向正常时间的转变期间以感知的较高分辨率增强观看者的体验,该正常时间在如用户在捕获活动体育赛事中的特殊时刻(峰值时刻)时所需地四处移动并且遥摄相机时发生。

“峰值时刻”的示例是当被录像的对象跳跃时,这是没有更多向上动量的时刻,但是人尚未开始下落。人工智能(Artificial Intelligence,AI)可用于计算所录制场景中动作的“峰值时刻”,并采取预定的期望动作,例如使用稍微在“峰值时刻”之前和稍微在“峰值时刻”之后的慢动作。

本技术可以被嵌入到任何相机设备,例如像GoPro、DSLR的动作相机、无反相机、专业级视频设备、常平架、三脚架、相机上和远程触发的闪光照明、眼镜相机、无人机、网络摄像头。本技术可以嵌入到遥控器中,并且通过蓝牙或其他协议连接到现有的没有嵌入本技术的电子设备。

本技术的用户界面可以以3D或2D来表示。用户可以在一个运动平面中在电子设备的触摸屏上将手指或触笔从一边滑动到另一边。利用3D用户界面,电子设备可以感测用户的控制器的深度、用户正施加的压力的量的变化,并且适当地调节特效。操纵杆可以与本技术一起采用和利用。

用户界面可以是压敏的,使得用户可以在设备上更用力或更轻柔地按压,并且设备将这些解释为控制以利用快进和慢动作特效来修改回放速度。

本技术可以允许以足够高的每秒帧数进行录制,并且可以在录制之后编辑所得到的“原始”未编辑视频(在不应用特效的情况下录制),并且慢动作将保持平滑,因为高录制帧率相对于较慢回放fps支持它。

可以理解,植入的或表面附接的脑波感测设备或无线遥感可以与本技术一起使用,以通过思考直接控制时间速度特效。

压缩技术可以与本技术一起使用,以改进甚至更高帧率的录制,以录制布景中的更精细细节并减小文件大小。设备性能可以提高,用户因此可以以甚至更高的帧率进行录制,以录制布景中的更精细细节,同时减小文件大小。

音频处理算法可以与本技术一起使用以在场景加速和减速的片段期间向视频给出最清晰和最可理解的音频。来自例如杜比实验室(Dolby Labs)、DTS公司、弗劳恩霍夫协会(Fraunhofer Institut)、飞利浦(Philips)、Techniocolor、IMAX、索尼(Sony)以及其他公司的第三方API可以用于执行音频处理。

数据加密算法可以与本技术一起使用,以提供视频的安全传输和存储。

密码学和区块链技术算法可以与本技术一起使用,以创建分布式分类账,以记录利用本技术产生的视频的原始内容创建者。视频可以通过为访问许可要求“兑换”密码令牌来访问。

虽然已经详细描述了实时视频特效系统和方法的实施例,但是应当清楚,对其的修改和变化是可能的,所有这些修改和变化都落入本技术的真实精神和范围内。关于以上描述,应当认识到,本技术的零件的最佳尺寸关系,包括大小、材料、形状、形式、功能和操作方式、组装和使用的变化,被认为对于本领域技术人员是明了的,并且与附图中所例示和说明书中所述的那些关系等同的所有关系都旨在被本技术所涵盖。例如,可以使用任何合适的坚固材料来代替上述材料。尽管已经描述了在录制进行的同时在视频录像中创建特效,但是应当理解,本文描述的实时视频特效系统和方法也适用于改变帧属性、改变录制帧率、改变回放帧率、以及时间压缩和扩展以及与任何实时数据流相关联的其它实时特效。

因此,前述内容被认为仅是本技术的原理的例示。进一步地,由于本领域技术人员将容易想到许多修改和改变,所以不期望将本技术限制于所示出和描述的确切构造和操作,因此,可以采取落在本技术的范围内的所有合适的修改和等同物。

65页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:配置个人计算装置用于与气溶胶产生装置通信

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类