在渲染期间利用一个或多个效果来增强由客户端设备获得的视频数据的架构的制作方法

文档序号:17733354发布日期:2019-05-22 03:00阅读:171来源:国知局
在渲染期间利用一个或多个效果来增强由客户端设备获得的视频数据的架构的制作方法

该公开内容总体上涉及通过客户端设备获得视频数据,更具体地,涉及用于在渲染所获得的视频数据时用附加内容来增强由客户端设备获得的视频数据的架构。

客户端设备的用户越来越多地经由包括在各种客户端设备中的图像捕获设备来捕获视频数据,并且与其他用户分享所捕获的视频。例如,通过与在客户端设备上执行的在线系统相关联的应用程序,客户端设备的用户将经由客户端设备捕获的视频数据或以其他方式经由客户端设备获得的视频数据分发给在线系统的其他用户。为了鼓励用户参与,许多应用程序允许客户端设备的用户修改由客户端设备获得的视频数据,并随后呈现经修改的视频数据。

例如,各种应用程序允许用户对由客户端设备获得的视频数据应用滤波器,或者将文本或图像叠加到由客户端设备获得的视频数据的部分上。然而,用于修改视频数据的常规应用程序接收对视频数据的修改,并从视频数据中提取信息以在渲染视频数据时执行修改。例如,为了在视频数据中检测到的面部上叠加图像,常规应用程序在渲染视频数据的同时对视频数据应用一种或多种检测方法,并且通过将图像叠加在视频数据的从中检测到面部的区域上来修改视频数据。由于从视频数据中提取信息的方法是计算密集型的,因此在渲染视频数据和执行修改的同时提取信息可能更快地耗尽客户端设备的资源,诸如存储在客户端设备的电池或其他电源中的电力。



技术实现要素:

诸如智能电话或平板电脑的客户端设备包括被配置为捕获视频数据的图像捕获设备。在客户端设备上执行的视频效果应用程序接收捕获的视频数据,并在由客户端设备的显示设备呈现捕获的视频数据时增强捕获的数据或修改视频数据。例如,当呈现捕获的视频数据时,视频效果应用程序在捕获的视频数据上叠加额外的图像或文本。视频效果应用程序可以在视频数据被捕获时增强或以其他方式修改视频数据,或者可以在捕获视频数据的时间之后的一时间修改视频数据。

为了执行对视频数据的各种修改,视频效果应用程序经常从捕获的视频数据中提取信息,并且使用提取的信息来修改捕获的视频数据。例如,视频效果应用程序检测所捕获的视频数据中的一个或多个面部,并基于所检测的面部在所捕获的视频数据的各种帧中的位置将文本或图像应用于视频数据。为了更有效地使用客户端设备的电池,视频效果应用程序从捕获的视频数据中提取信息,并将提取的信息存储为与捕获的视频数据相关联的元数据。在各种实施方式中,视频效果应用程序将捕获的视频数据和与捕获的视频数据相关联的元数据提供给在线系统,允许在线系统随后将捕获的视频数据和相关联的元数据提供给其他客户端设备以供渲染。例如,客户端设备的用户经由客户端设备捕获视频,并向视频效果应用程序提供指令,以将捕获的视频和相关联的元数据传送到在线系统;用户还可以向在线系统指定在线系统的一个或多个其他用户来接收捕获的视频数据和相关联的元数据,并且在线系统将捕获的视频数据和相关联的元数据传送到与其他用户相关联的客户端设备。视频效果应用程序还存储识别在渲染捕获的视频数据时要对捕获的视频数据执行的修改的信息。例如,识别对捕获的视频数据的一个或多个修改的信息与捕获的视频数据要被执行修改的时间相关联地存储。描述一个或多个修改的信息也可以提供给在线系统,在线系统随后可以将描述一个或多个修改的信息与捕获的视频数据和与捕获的视频数据相关联的元数据一起提供给与其他用户相关联的客户端设备。

当随后渲染捕获的视频数据以供渲染时,视频效果应用程序将捕获的视频数据、与捕获的视频数据相关联的元数据以及识别对捕获的视频数据的一个或多个修改的信息提供给渲染器。基于与所捕获的视频数据相关联的元数据和所识别的对所捕获的视频数据的一个或多个修改,当所捕获的视频数据被渲染以供显示时,渲染器执行对所捕获的视频数据的一个或多个修改。例如,渲染器基于包括在与捕获的视频数据相关联的元数据中的所检测的面部或其他对象在一个或多个帧内的位置,对应于视频数据的一个或多个识别时间在捕获的视频数据的一个或多个帧上叠加文本或图形。

如果所捕获的视频数据和相关联的元数据被传送到在线系统,则在线系统可以将所捕获的视频数据和相关联的元数据传送到与在线系统的另一用户相关联的附加客户端设备。在线系统的另一用户可以向视频效果应用程序或附加客户端设备的渲染器提供描述一个或多个修改的信息,使得附加客户端设备的渲染器或视频效果应用程序使用与所捕获的视频数据相关联的元数据来执行所描述的对所捕获的视频数据的修改,并且将经修改的所捕获的视频数据呈现给客户端设备的另一用户。使用与所捕获的视频数据相关联的元数据来执行对所捕获的视频数据的修改,而无需附加客户端设备的渲染器或视频效果应用程序还从所捕获的视频数据中提取信息,从而节省了附加客户端设备的计算资源和电力资源。

单独地从捕获的视频数据提取信息并执行对视频数据的修改允许客户端设备更有效地使用其电池。由于从捕获的视频数据提取信息的方法是计算密集型的,因此从捕获的视频数据提取信息并将提取的信息存储为与捕获的视频数据相关联的元数据允许将与捕获的视频数据相关联的元数据与捕获的视频数据一起提供给另一客户端设备,从而允许另一客户端设备在呈现期间时利用与捕获的视频数据相关联的元数据修改视频数据,而不是在呈现期间再次从捕获的视频数据提取信息以修改捕获的视频数据。另外,存储从捕获的视频数据中提取的信息并在呈现期间使用所存储的信息来修改捕获的视频数据允许呈现更高质量的经修改的捕获的视频数据。例如,使用从捕获的视频数据提取的存储信息来修改捕获的视频数据允许对捕获的视频数据的修改不受压缩捕获的视频数据的压缩失真的影响。此外,基于从捕获的视频数据提取的存储信息来修改捕获的视频数据可以允许视频效果应用程序对捕获的视频数据执行比在修改捕获的视频数据的同时从捕获的视频数据提取信息时更复杂的修改。

根据本发明的实施方式特别公开在针对其中的方法和计算机程序产品的所附权利要求中,在一个权利要求类别(例如,方法)中提及的任何特征也可以在另一个权利要求类别(例如,计算机程序产品,系统,存储介质)中要求保护。所附权利要求书中的从属关系或后向引用的选择仅出于形式原因。然而,也可以要求保护由对任何先前权利要求(特别是多个从属性的)的有意引用而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可以被要求保护,而不管所附权利要求中所选择的从属关系如何。可以要求保护的主题不仅包括所附权利要求中所述的特征的组合,而且包括权利要求中的特征的任何其他组合,其中权利要求中提到的每个特征都可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,在此描述或描绘的任何实施方式和特征可在单独的权利要求中和/或与在此描述或描绘的任何实施方式或特征的任何组合中或与所附权利要求的任何特征的任何组合中要求保护。

在根据本发明的实施方式中,一种方法,特别是计算机实现的方法,可以包括:

在客户端设备处获得视频数据;

当在该客户端设备处获得该视频数据时,该客户端设备对该视频数据应用一个或多个处理,而从该视频数据提取信息;

将所提取的信息存储为与该视频数据相关联的元数据;

接收识别对该视频数据的一个或多个修改的信息;

存储所接收的与视频数据相关联的识别对视频数据的修改的信息;

当该客户端设备渲染该视频数据时,通过执行由所接收的信息识别的该修改来修改该视频数据,该修改中的一个或多个使用与该视频数据相关联的该元数据来执行;以及

经由该客户端设备的显示设备呈现经该修改的视频数据。

在根据本发明的实施方式中,一种方法可以包括:

将该视频数据和与该视频数据相关联的该元数据提供给在线系统。

将视频数据和与视频数据相关联的元数据提供给在线系统可以包括:

将与视频数据和与视频数据相关联的元数据相关联的在线系统的用户的标识符传送到在线系统。

在根据本发明的实施方式中,一种方法可以包括:

将与视频数据和与视频数据相关联的元数据相关联的识别对视频数据的修改的信息提供至在线系统。

与该视频数据相关联的元数据可以识别包括一个或多个对象的该视频数据的一个或多个部分。

修改视频数据可以包括:

基于包括在该视频数据的一个或多个部分中的对象来修改该视频数据的一个或多个部分。

对该视频数据的修改可以识别视频数据的部分,并且修改该视频数据可以包括:

在客户端设备渲染视频数据的部分期间,基于从客户端设备的用户接收的一个或多个输入来修改视频数据的该部分。

对视频数据的修改可以识别视频数据的部分,并且修改该视频数据可以包括:

在客户端设备渲染视频数据的部分期间,基于由客户端设备的一个或多个组件捕获的信息来修改视频数据的该部分。

客户端设备的组件可以从包括以下项的组中选择:加速度计、位置传感器及其任意组合。

通过执行由所接收的信息识别的修改来修改该视频数据,基于与视频数据相关联的元数据执行的一个或多个修改可以包括:

在由与视频数据相关联的该元数据识别为包括对象的该视频数据的部分上叠加一个或多个图像,并在视频数据的该部分期间修改视频数据的音频数据。

通过执行由所接收的信息识别的修改来修改视频数据可以包括:

基于由与该视频数据相关联的元数据识别的视频数据的部分的一个或多个特性,对视频数据的该部分执行多个修改。

在客户端设备处获得视频数据可以包括:

经由包括在该客户端设备中的图像捕获设备捕获该视频数据。

在客户端设备处获得视频数据可以包括:

从另一客户端设备接收视频数据。

当在该客户端设备处获得该视频数据时应用于该视频数据的处理可以识别包括在该视频数据中的一个或多个对象。

包括在该视频数据中的对象可以包括面部。

在根据本发明的实施方式中,一种方法可以包括:

在在线系统处从与该在线系统的用户相关联的客户端设备接收视频数据;

在该在线系统处,接收客户端设备的与视频数据相关联的元数据,元数据包括当客户端设备获得视频数据时由客户端设备从视频数据提取的信息;

在在线系统处存储与元数据相关联的视频数据;以及

将视频数据和与该视频数据相关联的元数据提供给与在线系统的附加用户相关联的附加客户端设备。

在该在线系统处接收客户端设备的与视频数据相关联的元数据可以包括:

接收通过客户端设备与视频数据相关联的元数据以及由客户端设备接收的描述对视频数据的一个或多个修改的信息。

将视频数据和与视频数据相关联的元数据提供给附加客户端设备可以包括:

将视频数据、与该视频数据相关联的元数据、以及描述对视频数据的一个或多个修改的信息提供给该附加客户端设备,附加客户端设备被配置为在渲染视频数据时对视频数据执行一个或多个修改。

描述对视频数据的一个或多个修改的信息可以基于由与视频数据相关联的元数据识别的视频数据的部分的一个或多个特性来识别对视频数据的一部分的多个修改。

描述对视频数据的一个或多个修改的信息可以基于在与视频数据的部分相对应的时间期间由附加客户端设备接收的一个或多个输入来识别对视频数据的部分的修改。

在根据本发明的实施方式中,一种计算机程序产品,优选地包括其上编码有指令的非暂时性计算机可读存储介质,改指令在由处理器执行时,使该处理器:

在客户端设备处获得视频数据和与该视频数据相关联的元数据,该元数据通过附加客户端设备与该视频数据相关联;

在该客户端设备处接收识别对该视频数据的一个或多个修改的信息;

当该客户端设备渲染该视频数据时,通过执行由所接收的信息识别的该修改来修改该视频数据,该修改中的一个或多个使用与该视频数据相关联的该元数据来执行;以及

经由客户端设备的显示设备呈现经修改的视频数据。

对视频数据的修改可以识别视频数据的部分,并且修改视频数据可以包括:

在客户端设备渲染视频数据的部分期间,基于由客户端设备获得的信息来修改视频数据的该部分。

由客户端设备在客户端设备渲染视频数据的该部分期间获得的信息可以包括:在客户端设备渲染视频数据的该部分期间从客户端设备的用户接收的一个或多个输入。

由客户端设备在客户端设备渲染视频数据的该部分期间获得的信息可以包括:在客户端设备渲染视频数据的该部分期间由客户端设备的一个或多个组件捕获的信息。

在客户端设备处获得视频数据和与视频数据相关联的元数据,元数据通过附加客户端设备与视频数据相关联,可以包括:

从在线系统接收视频数据和与视频数据相关联的元数据。

在根据本发明的实施方式中,一个或多个计算机可读非瞬时存储介质可以包含软件,该软件在执行时可操作以执行根据本发明的方法或任何上述实施方式。

在根据本发明的实施方式中,一种系统可包括:一个或多个处理器;以及至少一个存储器,该存储器耦接到处理器并包括可由该处理器可执行的指令,处理器在执行指令时可操作以执行根据本发明的方法或任何上述实施方式。

在根据本发明的实施方式中,一种计算机程序产品优选地包括计算机可读非瞬时存储介质,当在数据处理系统上执行时该计算机程序产品可操作执行根据本发明的方法或任何上述实施方式。

附图说明

图1是根据实施方式的在线系统在其中操作的系统环境的框图。

图2是根据实施方式的在线系统的框图。

图3是根据实施方式的客户端设备的框图。

图4是根据实施方式的用于修改由客户端设备获得的视频数据的方法的流程图。

图5是根据实施方式的用于修改由客户端设备获得的视频数据的架构的处理流程图。

图6是根据实施方式的将由客户端设备获得的视频数据和对视频数据的修改提供至执行修改并呈现经修改的视频数据的另一客户端设备的方法的交互图。

附图仅出于说明的目的描绘了各种实施方式。本领域技术人员将从下面的讨论中容易地认识到,在不背离本文所描述的原理的情况下,可以采用本文示出的结构和方法的替代实施方式。

具体实施方式

系统架构

图1是用于在线系统140的系统环境100的框图。在图1中示出的系统环境100包括一个或多个客户端设备110、网络120、一个或多个第三方系统130和在线系统140。在替代配置中,不同和/或附加组件可包括在系统环境100中。例如,在线系统140是社交网络系统、内容共享网络、消息收发服务器、或向用户提供内容的另一系统。

客户端设备110是能够接收用户输入以及经由网络120发送和/或接收数据的一个或多个计算设备。在一个实施方式中,客户端设备110是常规计算机系统,诸如台式机或膝上型计算机。可替换地,客户端设备110可以是具有计算机功能的设备,诸如个人数字助理(pda)、移动电话、智能电话、智能手表或其他合适的设备。客户端设备110被配置为经由网络120进行通信。在一个实施方式中,客户端设备110执行允许客户端设备110的用户与在线系统140交互的应用程序。例如,客户端设备110执行浏览器应用程序以使得能够经由网络120在客户端设备110和在线系统140之间进行交互。在另一个实施方式中,客户端设备110通过在客户端设备110的本地操作系统(诸如或androidtm)上运行的应用程序编程接口(api)与在线系统140交互。

如下面结合图3进一步描述的,在各种实施方式中,客户端设备110包括能够捕获视频数据的图像捕获设备和用于修改捕获的视频数据的应用程序。例如,在客户端设备110上执行的应用程序允许客户端设备110的用户将图像或文本叠加到由图像捕获设备捕获的或以其他方式由客户端设备110获得的视频数据的部分上。在一些实施方式中,用于修改视频数据的应用程序提供附加功能。例如,应用程序还允许用户与在线系统140的其他用户交换内容(例如,消息)。可替换地,附加应用程序允许用户与在线系统140的用户通信,并且附加应用程序从修改视频数据的应用程序获得修改的视频数据。为了在节省资源(例如,电源资源)的同时修改所获得的视频数据,,应用程序在获得视频数据时从视频数据中提取信息,并且将描述所提取的信息的元数据与视频数据相关联地存储。在接收到描述对视频数据的一个或多个修改的信息之后,应用程序(或另一应用程序)使用与视频数据相关联的元数据来执行所描述的一个或多个修改。这允许在接收视频数据时和再次修改视频数据时不从视频数据中提取信息来修改视频数据。下面结合图3进一步描述示例客户端设备110。同时下面结合图4和图5进一步描述从视频数据提取信息和修改视频数据。

客户端设备110被配置为使用有线和/或无线通信系统经由网络120通信,网络120可以包括局域网和/或广域网的任何组合。在一个实施方式中,网络120使用标准通信技术和/或协议。例如,网络120包括使用诸如以太网、802.11、全球微波接入互操作性(wimax)、3g、4g、码分多址(cdma)、数字用户线路(dsl)等技术的通信链路。用于经由网络120进行通信的网络协议的实例包括多协议标签交换(mpls)、传输控制协议/互联网协议(tcp/ip)、超文本传输协议(http)、简单邮件传输协议(smtp)和文件传输协议(ftp)。通过网络120交换的数据可以使用任何合适的格式来表示,例如超文本标记语言(html)或可扩展标记语言(xml)。在一些实施方式中,网络120的所有或一些通信链路可以使用任何适当的一种或多种技术来加密。

一个或多个第三方系统130可以耦接到网络120以用于与在线系统140通信,这将在下面结合图2进一步描述。在一个实施方式中,第三方系统130是应用程序提供商,其向客户端设备110传送描述由客户端设备110执行的应用程序的信息,或者向客户端设备110传送数据以供在客户端设备上执行的应用程序使用。在其他实施方式中,第三方系统130提供经由客户端设备110呈现的内容或其他信息。第三方系统130还可以向在线系统140传送信息,诸如广告、内容或关于由第三方系统130提供的应用程序的信息。

各种第三方系统130向在线系统140的用户提供内容。例如,第三方系统130维护在线系统140的用户可以通过在客户端设备110上执行的一个或多个应用程序来访问的内容页面。第三方系统130可以向在线系统140提供识别由在线系统130提供的内容的内容项,以将第三方系统130提供的内容通知给在线系统140的用户。例如,由第三方系统130提供给在线系统140的内容项识别由在线系统140提供的指定用于获得内容页的网络地址的内容页。

图2是在线系统140的结构的框图。在图2中示出的在线系统140包括用户简档存储205、内容存储210、动作记录器215、动作日志220、边线存储225、内容选择模块230和网络服务器235。在其他实施方式中,在线系统140可以包括用于各种应用程序的附加的、较少的或不同的组件。没有示出诸如网络接口、安全功能、负载均衡器、故障转移服务器、管理和网络操作控制台等的常规组件,以便不模糊系统架构的细节。

在线系统140的每个用户与存储在用户简档存储205中的用户简档相关联。用户简档包括由用户显式共享的关于用户的声明性信息,并且还可以包括由在线系统140推断的简档信息。在一个实施方式中,用户简档包括多个数据字段,每个数据字段描述对应社交网络系统用户的一个或多个属性。存储在用户简档中的信息的实例包括传记的、人口统计的和其他类型的描述性信息,诸如工作经历、教育背景、性别、爱好或偏好、位置等。用户简档还可以存储用户提供的其他信息,例如,图像或视频。在某些实施方式中,用户的图像可以被识别显示在图像中的社交网络系统用户的信息所标记,被识别存储在用户的用户简档中的其中用户被标记的图像的信息所标记。用户简档存储205中的用户简档还可以维护对由对应用户对内容存储210中的内容项执行的并被存储在动作日志220中的动作的引用。

每个用户简档包括允许在线系统140唯一地识别对应于不同用户简档的用户的用户识别信息。例如,每个用户简档包括电子邮件(“email”)地址,以允许在线系统140基于不同用户的电子邮件地址来识别不同用户。然而,用户简档可以包括在线系统140的与用户相关联的允许在线系统140识别不同用户的任何合适的用户识别信息。

虽然用户简档存储205中的用户简档经常与个人相关联,允许个人经由在线系统140彼此交互,但是也可以为诸如企业或组织的实体存储用户简档。这允许实体在在线系统140上建立存在,以用于与其他社交网络系统用户连接和交换内容。实体可以使用与实体的用户简档相关联的品牌页面来发布关于自身、关于其产品的信息,或者向在线系统140的用户提供其他信息。在线系统140的其他用户可连接到品牌页面以接收发布到品牌页面的信息或从品牌页面接收信息。与品牌页面相关联的用户简档可以包括关于实体本身的信息,向用户提供关于实体的背景或信息数据。

内容存储210存储各自表示各种类型的内容的对象。由对象表示的内容的实例包括页面公告、状态更新、照片、视频、链接、共享内容项、游戏应用程序成就、在本地企业的签到活动、品牌页面或任何其他类型的内容。在线系统用户可以创建由内容存储210存储的对象,诸如状态更新、由用户标记的与在线系统140中的其他对象相关联的照片、活动、群组或应用程序。在一些实施方式中,从第三方应用程序或者与在线系统140分离的第三方应用程序接收对象。在一个实施方式中,内容存储210中的对象代表内容的单个片段或内容“项”。因此,鼓励在线系统用户通过各种通信信道将各种类型媒体的文本和内容项发布到在线系统140来彼此通信。这增加了用户彼此之间的交互量,并且增加了用户在在线系统140内交互的频率。

在各种实施方式中,内容存储210包括由客户端设备110捕获的视频数据和由客户端设备110与视频数据相关联的元数据。如下面结合图3至图5进一步描述的,客户端设备110从捕获的视频数据中提取信息,并存储与捕获的视频数据相关联的元数据。客户端设备110可以将视频数据和相关联的元数据传送到在线系统140,在线系统140将视频数据和相关联的元数据存储在内容存储210中。在各种实施方式中,在线系统140接收识别在线系统140的用户的信息以及视频数据和相关联的元数据,并且将识别用户的信息与视频数据和与视频数据相关联的元数据相关联地存储。如下面结合图3进一步描述的,在线系统140可以从内容存储205检索视频数据和与视频数据相关联的元数据,并且响应于从向在线系统140提供视频数据的用户接收将视频数据提供给其他用户的请求,而将视频数据和相关联的元数据提供给与在线系统140的其他用户相关联的客户端设备110。

包括在内容存储210中的一个或多个内容项包括用于呈现给用户的内容和标价金额。内容是呈现给用户的文本、图像、音频、视频或任何其他合适的数据。在各种实施方式中,内容还指定内容页。例如,内容项包括指定当访问内容项时用户被定向到的内容页的网络地址的登陆页面。如果内容项中的内容被呈现给用户,如果内容项中的内容在呈现时接收到用户交互,或者如果在内容项中的内容呈现给用户时满足任何合适的条件,则标价金额由用户包括在内容项中,并且用于确定由广告商提供给在线系统140的预期值,诸如货币性补偿。例如,包括在内容项中的标价金额指定如果内容项中的内容被显示,则在线系统140从向在线系统140提供内容项的用户接收的货币金额。在一些实施方式中,在线系统140的呈现来自内容项的内容的预期值可以通过将标价金额乘以用户正在访问的内容项的内容的概率来确定。

各种内容项可以包括识别与内容项相关联的用户希望其他用户在呈现内容项中包括的内容时执行的交互的目标。示例的目标包括:安装与内容项相关联的应用程序,指示对内容项的偏好,与其他用户共享内容项,与和内容项相关联的对象交互,或执行任何其他合适的交互。当来自内容项的内容被呈现给在线系统用户时,在线系统140记录呈现有内容项的用户之间的或与内容项相关联的对象之间的交互。另外,在线系统140在在线系统用户与内容项执行满足包括在内容项中的目标的交互时从与内容项相关联的用户接收补偿。

另外,内容项可以包括由向在线系统140提供内容项的用户指定的一个或多个目标锁定标准(targetingcriteria)。包含在内容项请求中的目标锁定标准指定有资格被呈现内容项的用户的一个或多个特性。例如,目标锁定标准用于识别具有满足至少一个目标锁定标准的用户简档信息、边线或动作的用户。因此,目标锁定标准允许用户识别具有特定特征的用户,简化了内容到不同用户的后续分发。

在一个实施方式中,目标锁定标准可以指定用户和在线系统140的另一用户或对象之间的连接的动作或类型。目标锁定标准还可以指定用户与在在线系统140外部执行的对象之间的交互,例如在第三方系统130上执行的交互。例如,目标设定标准识别已经采取特定动作的用户,诸如向另一用户发送消息、使用应用程序、加入群组、离开群组、加入活动、生成活动描述、使用在线市场购买或评论产品或服务、从第三方系统130请求信息、安装应用程序、或执行任何其他适当动作。在目标锁定标准中包括操作允许用户进一步细化有资格被呈现内容项的用户。作为另一个实例,目标锁定标准识别具有到另一个用户或对象的连接的用户,或者具有到另一个用户或对象的特定类型的连接的用户。

动作记录器215接收关于在线系统140内部和/或外部的用户动作的通信,用关于用户动作的信息填充动作日志220。动作的实例包括向另一用户添加连接、向另一用户发送消息、上传图像、从另一用户读取消息、查看与另一用户相关联的内容以及出席由另一用户发布的活动。此外,多个动作可以涉及对象和一个或多个特定用户,因此这些动作也与特定用户相关联并且存储在动作日志220中。

在线系统140可以使用动作日志220来跟踪用户在在线系统140上的动作以及在向在线系统140传送信息的第三方系统130上的动作。用户可以与在线系统140上的各种对象交互,并且描述这些交互的信息存储在动作日志220中。与对象交互的实例包括:评论帖子、分享链接、经由客户端设备110签到到物理位置、访问内容项以及任何其他合适的交互。包括在动作日志220中的与在线系统140上的对象的交互的附加实例包括:评论相册、与用户通信、与对象建立连接、加入活动、加入群组、创建活动、授权应用程序、使用应用程序、表达对对象的偏好(“点赞”对象)以及参与交易。另外,动作日志220可以记录用户与在线系统140上的广告以及与在在线系统140上操作的其他应用程序的交互。在一些实施方式中,来自动作日志220的数据用于推断用户的兴趣或偏好,从而增强包括在用户的用户简档中的兴趣并允许对用户偏好的更完整的理解。

动作日志220还可以存储在诸如外部网站的第三方系统130上采取的并且被传送到在线系统140的用户动作。例如,通过社交插件使电子商务网站能够识别在线系统140的用户,电子商务网站可以辨别在线系统140的用户。因为在线系统140的用户是唯一可识别的,所以诸如在前面的实例中的电子商务网站可以将关于用户在在线系统140外部的动作的信息传送到在线系统140以与用户相关联。因此,动作日志220可以记录关于用户在第三方系统130上执行的动作的信息,包括网页查看历史、参与的广告、进行的购买以及来自购物和购买的其他模式。此外,用户经由与第三方系统130相关联的并在客户端设备110上执行的应用程序所执行的动作可以由应用程序传送到动作记录器215,以便在动作日志220中记录并与用户关联。

在一个实施方式中,边线存储225将描述用户与在线系统140上的其他对象之间的连接的信息存储为边线。一些边线可以由用户定义,允许用户指定他们与其他用户的关系。例如来说,用户可能会与其他用户生成类似于用户现实生活中的关系的边线,如好友,同事,合作伙伴等。当用户与在线系统140中的对象交互时,例如对在线系统140上的页面表示兴趣、与在线系统140的其他用户分享链接、以及对在线系统140的其他用户所做的帖子进行评论,生成其他边线。

边线可包括各种特征,每个特征代表用户之间的交互、用户与对象之间的交互或对象之间的交互的特性。例如,包括在边线中的特征描述了两个用户之间的交互率、两个用户彼此最近交互的程度、一个用户检索到的关于对象的信息的比率或数量、或者用户发布的关于对象的评论的数量和类型。特征还可以代表描述特定对象或用户的信息。例如,特征可以表示用户对特定主题的兴趣程度、用户登录在线系统140的比率、或者描述关于用户的人口统计信息的信息。每个特征可以与源对象或用户、目标对象或用户以及特征值相关联。特征可以被指定为基于描述源对象或用户、目标对象或用户、或者源对象或用户与目标对象或用户之间的交互的值的表达式;因此,边线可以被表示为一个或多个特征表达式。

边线存储225还存储关于边线的信息,诸如对象、兴趣和其他用户的亲和度分数。可由在线系统140基于用户执行的动作随时间计算亲和度分数或“亲和度”,以近似用户对在线系统140中的对象或另一用户的兴趣。在线系统140可以基于用户执行的动作随时间计算用户的亲和度,以近似用户对在线系统140中的对象、主题或另一用户的兴趣。在2010年12月23日提交的美国专利申请12/978,265号、2012年11月30日提交的美国专利申请13/690,254号、2012年11月30日提交的美国专利申请13/689,969号、以及2012年11月30日提交的美国专利申请13/690,088号中进一步描述了亲和度的计算,它们中的每一个通过引用全部并入本文。在一个实施方式中,用户和特定对象之间的多个交互可以作为单个边线存储在边线存储225中。可替换地,用户和特定对象之间的每个交互被存储为单独的边线。在一些实施方式中,用户之间的连接可以存储在用户简档存储205中,或者用户简档存储205可以访问边线存储225以确定用户之间的连接。

内容选择模块230选择用于传送给客户端设备110以呈现给用户的一个或多个内容项。内容选择模块230从内容存储210或从另一个源检索有资格呈现给用户的内容项,内容选择模块230选择呈现给观看用户的内容项中的一个或多个。有资格向用户呈现的内容项是与用户的特性所满足的至少阈值数量的目标锁定标准相关联的内容项,或者是不与目标锁定标准相关联的内容项。在各种实施方式中,内容选择模块230包括有资格在一个或多个选择处理中呈现给用户的内容项,该一个或多个选择处理识别用于呈现给用户的一组内容项。例如,内容选择模块230基于在线系统140的与用户相关联的特性并且基于用户对不同内容项的亲和度来确定各种内容项与用户的相关性度量。基于相关性度量,内容选择模块230选择要呈现给用户的内容项。作为附加的实例,内容选择模块230选择具有最高相关性度量或具有至少阈值相关性度量的内容项以呈现给用户。可选地,内容选择模块230基于与内容项相关联的相关性度量对内容项进行排序,并选择在排序中具有最高位置或在排序中具有至少阈值位置的内容项以呈现给用户。

有资格呈现给用户的内容项可以包括与标价金额相关联的内容项。当选择要呈现给用户的内容时,内容选择模块230使用与广告请求相关联的标价金额。在各种实施方式中,内容选择模块230基于各种内容项的标价金额来确定与各种内容项相关联的预期值,并选择与最大预期值相关联或与至少阈值预期值相关联的内容项,以用于呈现。与内容项相关联的预期值表示在线系统140对于呈现内容项的补偿的预期金额。例如,与内容项相关联的预期值是广告请求的标价金额和用户与内容项交互的可能性的乘积。内容选择模块230可基于内容项的相关标价金额对内容项进行排序,并选择在排序中具有至少阈值位置的内容项以呈现给用户。在一些实施方式中,内容选择模块230基于与内容项相关联的标价金额和相关性度量,在统一排序中对不与标价金额相关联的内容项和与标价金额相关联的内容项进行排序。基于统一排序,内容选择模块230选择要呈现给用户的内容。在2012年7月10日提交的美国专利申请号13/545,266中进一步描述了通过统一排序选择与标价金额相关联的内容项和不与标价金额相关联的内容项,该申请全文通过引用结合于此。

例如,内容选择模块230接收向在线系统140的用户呈现内容馈送的请求。馈送可以包括与标价金额相关联的一个或多个内容项和不与标价金额相关联的其他内容项,诸如描述与连接到用户的其他在线系统用户相关联的动作的故事。内容选择模块230访问用户简档存储205、内容存储210、动作日志220和边线存储225中的一个或多个以检索关于用户的信息。例如,检索描述与连接到该用户的其他用户相关联的动作的信息或与连接到该用户的用户相关联的其他数据。内容选择模块230检索和分析来自内容存储210的内容项,以识别有资格呈现给用户的候选内容项。例如,与未连接到用户的用户相关联的内容项或与用户具有小于阈值亲和度的用户相关联的故事被丢弃,不作为候选内容项。基于各种标准,内容选择模块230选择内容项中的被识别为候选内容项的一个或多个,以呈现给所识别的用户。所选内容项包括在呈现给用户的内容馈送中。例如,内容馈送包括描述与经由在线系统140连接到用户的用户相关联的动作的至少阈值数量的内容项。

在各种实施方式中,内容选择模块230通过新闻馈送向用户呈现内容,该新闻馈送包括为呈现给用户而选择的多个内容项。一个或多个内容项也可以包括在馈送中。内容选择模块230还可以确定所选择的内容项经由馈送呈现的顺序。例如,内容选择模块230基于用户与各种内容项交互的可能性来对馈送中的内容项进行排序。

网络服务器235经由网络120将在线系统140链接到一个或多个客户端设备110以及一个或多个第三方系统130。网络服务器240提供网页以及诸如xml等的其他内容。网络服务器240可以在在线系统140和客户端设备110之间接收和路由消息,例如,即时消息、队列消息(例如电子邮件)、文本消息、短消息服务(sms)消息、或者使用任何其他合适的消息技术发送的消息。用户可以向网络服务器240发送上传存储在内容存储210中的信息(例如,图像或视频)的请求。另外,网络服务器240可以提供应用程序编程接口(api)功能,以将数据直接发送到本地客户端设备操作系统,诸如androidtm、网络或blackberryos。

客户端设备架构

图3是根据一个实施方式的客户端设备110架构的框图。在图3中示出的客户端设备110包括图像捕获设备305、视频效果应用程序310、渲染器315和显示设备320。在其他实施方式中,客户端设备110可以包括用于各种应用程序的附加的、较少的或不同的组件。此外,客户端设备110的各种组件可以提供在下文的一些实施方式中进一步描述的各种功能的组合。

图像捕获设备305是能够捕获图像或视频数据的任何设备。示例图像捕获设备305包括一个或多个相机、一个或多个摄像机、或能够捕获图像数据的任何其他设备。在一些实施方式中,图像捕获设备305包括一个或多个滤波器。类似地,在各种实施方式中,图像捕获设备305可包括光学器件,以改变用来生成图像或视频数据的光。不同的客户端设备110可以具有含有不同特性(例如,捕获的图像数据的分辨率、快门控制、帧率、焦距、用于生成视频或图像数据的入射光瞳的直径)的图像捕获设备305。尽管图3示出了具有单个图像捕获设备305的客户端设备110,但是在各种实施方式中,客户端设备110可以包括多个图像捕获设备305。

视频效果应用程序310包括指令,该指令在由客户端设备110的处理器执行时,从自图像捕获设备305或自任何其他适当源接收的视频数据中提取信息。为了从视频数据中提取信息,视频效果应用程序310可以将一种或多种方法应用于视频数据,其中各种方法从视频数据中提取不同的信息。例如,由视频效果应用程序310应用的一个或多个方法从视频数据的各种帧检测对象,诸如面部。作为另一个实例,视频效果应用程序310应用的一个或多个方法基于视频数据的各种帧确定描述对象移动的光流矢量或视频数据的其他分量。在各种实施方式中,视频效果应用程序310可以从视频数据中提取任何合适的信息。在其他实例中,从视频数据提取的信息(例如,通过对视频数据应用一个或多个颗粒滤波器)跨视频数据的各种帧跟踪一个或多个对象,或者识别在视频数据中检测到的一个或多个对象的变化(例如,在视频数据中检测到的面部表情的变化)。另外,可以基于由客户端设备110的用户指定的设置、基于由视频效果应用程序310指定的信息、由在客户端设备110上执行的另一应用程序指定的信息、或者基于来自任何其他适当源的信息,来确定由视频效果应用程序310从视频数据提取的信息。这允许在各种实现方式中定制由视频效果应用程序从视频数据中提取的信息。如下面结合图3进一步描述的,视频效果应用程序310将从视频数据中提取的信息存储为与视频数据相关联的元数据。

另外,视频效果应用程序310接收识别对视频数据的修改的信息。识别对视频数据的修改的信息可以从用户接收、从另一应用程序接收、从在线系统140接收或从第三方系统130接收。对识别为视频效果应用程序310的视频数据的修改的实例包括对视频数据应用一个或多个滤波器,叠加在视频数据的一个或多个部分上的文本,叠加在视频数据的一个或多个部分上的图像,改变视频数据的回放速度,修改包括在视频数据的一个或多个部分中的音频,识别视频数据中的对象的移动,修改视频数据的一个或多个帧的阴影或着色,跟踪视频数据中的对象(例如,应用颗粒滤波器),识别视频数据中的一个或多个对象的变化(例如,识别变化),以及任何其他合适的修改。当视频数据被呈现时,对视频数据的一个或多个修改可以识别由客户端设备110获得的影响视频数据如何被修改的数据;例如,对视频数据的修改识别在呈现视频数据时由客户端设备110接收的一个或多个输入、以及基于接收到的一个或多个输入来改变叠加在视频数据上的图像或文本数据的指令。在其他实例中,来自客户端设备110的加速度计、来自客户端设备110的位置传感器、来自客户端设备110的麦克风或来自客户端设备110的任何其他适当组件的数据可以被识别和用于确定当由客户端设备110呈现时视频数据被如何修改。另外,识别对视频数据的修改的信息可以指定与视频数据相关联的元数据的一个或多个特性以执行修改;例如,描述对视频数据的修改的信息可以指定与特定对象的相似性阈值度量,因此如果由元数据识别的对象具有至少与特定对象的相似性阈值度量,则执行所识别的修改,但是如果由元数据识别的对象具有小于与特定对象的相似性阈值度量,则不执行所识别的修改。在各种实施方式中,可以向视频效果应用程序310识别对视频数据的不同修改,因此视频效果应用程序310的不同实现可以识别对视频数据的不同修改。如下面结合图4进一步描述的,视频效果应用程序310存储识别与视频数据相关联的对视频数据的一个或多个修改的信息。

渲染器315从视频效果应用110接收视频数据、与视频数据相关联的元数据、以及描述对视频数据的修改的信息。为了说明的目的,图3示出了与视频效果应用程序310分离的渲染器315;然而,在各种实施方式中,渲染器315和视频效果应用程序310可以组合成单个组件。如下面结合图4进一步描述的,当渲染视频数据时,渲染器315通过执行由信息描述的修改来修改视频数据,并渲染经修改的视频数据。为了执行对视频数据的一个或多个修改,渲染器315访问元数据并使用从视频数据提取并由元数据描述的信息。例如,如果对视频数据的修改识别要叠加在视频数据中的对象(例如,视频数据中的面部)上的图像,则渲染器315从元数据识别视频数据中的包括该对象的帧和所识别帧内的具有该对象的位置,并将图像叠加在所识别帧内的具有该对象的位置上。因此,渲染器315利用描述从视频数据提取的信息的元数据来随后修改视频数据,而无需再次从视频数据提取信息。

包括在客户端设备110中的显示设备320向客户端设备110的用户呈现图像数据或视频数据。显示设备320的实例包括液晶显示器(lcd)、有机发光二极管(oled)显示器、有源矩阵液晶显示器(amlcd)或任何其他合适的设备。不同的客户端设备110可以具有含有不同特性的显示设备320。例如,不同的客户端设备320具有含有不同的显示区域、不同的分辨率或其他特性的差异的显示设备320。

基于从视频数据提取的信息修改由客户端设备获得的视频数据

图4是用于修改由客户端设备110获得的视频数据的方法的一个实施方式的流程图。在其它实施方式中,该方法可以包括与图4所示出的步骤不同的和/或附加的步骤。另外,在各种实施方式中,该方法的步骤可以以与结合图4所描述的顺序不同的顺序执行。

包括在客户端设备110中的图像捕获设备305捕获405视频数据。例如,包括在客户端设备110中的相机捕获405视频数据。在各种实施方式中,由图像捕获设备305捕获的视频数据405具有任何合适的分辨率或任何其他合适的特性。在其他实施方式中,客户端设备110可以从任何合适的源捕获405视频数据。例如,由客户端设备110捕获的视频数据是客户端设备110从在线系统140、第三方系统130、另一客户端设备110或从任何其他合适的源接收的视频数据。

在客户端设备110上执行的视频效果应用程序310接收由客户端设备110的图像捕获设备305捕获的视频数据405,并从捕获的视频数据中提取410信息。在各种实施方式中,视频效果应用程序310从捕获的视频数据中提取410任何合适的信息。从捕获的视频数据中提取410信息,并使用提取的信息来修改捕获的视频数据。例如,视频效果应用程序310将一个或多个处理应用于捕获的视频数据以检测包括在捕获的视频数据中的对象,例如面部;视频效果应用程序310可以识别检测到的对象的视频数据的一个或多个帧内的位置。作为另一个实例,视频效果应用程序310将一个或多个处理应用于捕获的视频数据,以确定描述捕获的视频数据中的对象移动的光流矢量或任何其他适当分量。在各种实施方式中,视频效果应用程序310可以提取410所捕获的视频数据的任何合适的特征或关于所捕获的视频数据的信息。

视频效果应用程序310将从捕获的视频数据中提取410的信息存储415为与捕获的视频数据相关联的元数据。在各种实施方式中,与捕获的视频数据相关联的所提取的信息可以以任何合适的格式存储415。例如,如果提取的信息包括捕获的视频数据中检测到的对象,则存储415的与捕获的视频数据相关联的元数据包括视频数据内的各种对象被检测到的时间、或者各种对象被检测到的视频数据中的帧的标识符、以及检测到的对象的标识符;对象被检测到的各种帧内的位置也可以包括在所存储的元数据中。作为另一个实例,从各种帧确定的光流矢量与所捕获的视频数据的从其确定光流矢量的帧的标识符相关联地存储415。

在一些实施方式中,视频效果应用程序310将捕获的视频数据和与捕获的视频数据相关联的元数据传送到在线系统140。在一些实施方式中,在线系统140存储来自客户端设备110的捕获的视频数据以及与捕获的视频数据相关联的元数据。例如,在客户端设备110上执行的视频效果应用程序310将识别在线系统140的与客户端设备110相关联的用户的信息传送到在线系统140,该信息与捕获的视频数据和与捕获的视频数据相关联的元数据相关联,在线系统140存储与该用户相关联的所捕获的视频数据和相关联的元数据。作为另一个实例,客户端设备110将在线系统140的附加用户的标识符、捕获的视频数据和与捕获的视频数据相关联的元数据传送到在线系统140,在线系统140将捕获的视频数据和与捕获的视频数据相关联的元数据传送到与对应于标识符的附加用户相关联的附加客户端设备110。

另外,视频效果应用程序310接收420识别对所捕获的视频数据的一个或多个修改的信息,并存储425所接收的与所捕获的视频数据相关联的识别对所捕获的视频数据的修改的信息。例如,视频效果应用程序310从用户接收420应用于捕获的视频数据的滤波器的标识符以及捕获的视频数据中的应用了滤波器的一个或多个部分的标识符(例如,帧的标识符,时间间隔),并存储425与捕获的视频数据相关联的滤波器的标识符和捕获的视频数据中的应用了滤波器的一个或多个部分的标识符。作为另一个实例,视频效果应用程序310接收420文本或图像数据以覆盖在捕获的数据的一个或多个部分上,并将与捕获的视频数据中的文本或图像数据要覆盖至的一个或多个部分的标识符(例如,帧的标识符,时间间隔)相关联的文本或图像数据存储425。在一些实施方式中,所接收420的信息可以识别从所捕获的视频数据检测的被叠加了文本或图像数据的对象。在一些实施方式中,识别对捕获的视频数据的修改的信息从客户端设备110传送到在线系统140。例如,在线系统140接收识别在线系统140的用户的信息以及识别对捕获的视频数据的修改的信息,并且在线系统140将与用户以及与捕获的视频数据和与捕获的视频数据相关联的元数据都相关联的识别修改的信息存储。作为另一个实例,在线系统140从客户端设备110接收附加用户的标识符以及识别对捕获的视频数据的修改的信息,并且在线系统140将捕获的视频数据、与捕获的视频数据相关联的元数据、以及识别对捕获的视频数据的修改的信息传送到与附加用户相关联的附加客户端设备110。

为了基于所存储425的识别一个或多个修改的信息来修改所捕获的数据,当随后渲染所捕获的视频数据时,视频效果应用程序305将所捕获的视频数据、与所捕获的视频数据相关联的元数据以及识别对所捕获的视频数据的一个或多个修改的信息提供给渲染器315。在一些实施方式中,渲染器315是视频效果应用程序310的组件。可选地,渲染器315是客户端设备110的单独组件;例如,渲染器315是在客户端设备110上执行的单独应用程序,或者是客户端设备110的硬件或固件组件。当呈现或存储捕获的视频数据时,渲染器315基于所识别的一个或多个修改和与捕获的视频数据相关联的元数据来修改430捕获的视频数据。例如,与捕获的视频数据相关联的信息识别捕获的视频数据中的文本或图像被叠加的部分,因此当捕获的视频数据的所识别的部分被渲染以由客户端设备110的显示设备320呈现或被渲染以由客户端设备110或在线系统140或第三方系统130存储时,渲染器315将文本或图像覆盖在捕获的视频数据的所识别的部分上。如果对所捕获的视频数据的所识别的修改识别要修改的视频数据内的对象,则渲染器315从与所捕获的视频数据相关联的元数据中识别视频数据的包括所识别的对象的部分,并且当视频数据的包括所识别的对象的部分被呈现时,修改由该信息指定的对象。因此,渲染器315使用与捕获的视频数据相关联的元数据来识别基于所存储的信息要修改的捕获的视频数据的部分,并且在渲染用于呈现的捕获的视频数据时修改捕获的视频数据的所识别的部分。

存储与捕获的视频数据相关联的描述从捕获的视频数据中提取的信息410的元数据,并且随后利用与捕获的视频数据相关联的元数据来在呈现或存储捕获的视频数据时修改430捕获的视频数据,这允许客户端设备110更有效地消耗电能,允许客户端设备110在修改捕获的视频数据时减少从电池或其他电源的消耗。由于从捕获的视频数据中提取410信息的方法是计算密集型的,从捕获的视频数据提取410信息并将提取的信息存储415为与捕获的视频数据相关联的元数据允许接收捕获的视频数据的另一客户端设备110随后修改捕获的视频数据,以在渲染修改的捕获的视频数据时利用与捕获的视频数据相关联的元数据来修改捕获的视频数据,而不是在从客户端设备110或从在线系统140接收捕获的视频数据之后再次从捕获的视频数据提取信息。另外,在呈现或存储期间存储415从捕获的视频数据中提取的信息并使用所存储的信息来修改430捕获的视频数据提高了对捕获的视频数据的修改的质量。例如,使用与所捕获的视频数据相关联的存储的元数据来修改430所捕获的视频数据,允许对所捕获的视频数据的修改不受压缩所捕获的视频数据的失真的影响。

此外,基于所存储的描述从所捕获的视频数据中提取的信息的元数据来修改430所捕获的视频数据可以允许比在修改所捕获的视频数据时从所捕获的视频数据中提取信息更复杂的对所捕获的视频数据的修改。例如,基于与所捕获的视频数据相关联的元数据来修改430所捕获的视频数据允许对所捕获的视频数据进行一个或多个修改,以考虑由客户端设备110在呈现经修改的所捕获的视频数据时获得的数据。作为实例,修改430捕获的视频数据的客户端设备110基于来自客户端设备110的用户的不同输入(例如,当呈现捕获的视频数据时与客户端设备110的输入设备的交互)或者基于客户端设备110的一个或多个组件(例如,加速度计、位置传感器等)在客户端设备110呈现捕获的视频数据时捕获的不同信息,来不同地修改视频数据。因此,如果将所捕获的视频数据、与所捕获的视频数据相关联的元数据、以及识别对所捕获的视频数据的修改的信息被提供给附加客户端设备110,则不同的附加客户端设备110可以基于由不同的附加客户端设备110在呈现所捕获的视频数据期间获得的数据的差异,而在呈现期间不同地执行对所捕获的视频数据的一个或多个修改。另外,使用与捕获的视频数据相关联的元数据修改430捕获的视频数据允许基于与捕获的视频数据的部分相关联的元数据对所捕获的视频数据的部分进行多次修改。例如,如果与所捕获的视频数据相关联的元数据识别视频数据中的包括特定对象的部分或对特定对象的改变,则在所识别的部分期间一个或多个图像被叠加到所捕获的视频数据的所识别部分上,并且所捕获的视频数据的音频被修改。使用与捕获的视频数据相关联的元数据简化了基于捕获的视频数据的各个部分的特性或内容对捕获的视频数据的各个部分的多次修改的执行。

尽管图4描述了从由客户端设备的图像捕获设备305捕获的视频数据405中提取的信息,但是如上结合图4描述的方法可以应用于由客户端设备110从任何合适的源获得的视频数据。例如,客户端设备110从另一客户端设备110、在线系统140或第三方系统130接收视频数据,并且如上进一步所述,视频效果应用程序310从视频数据中提取410信息,并将提取的信息存储415为与视频数据相关联的元数据。视频效果应用程序310接收420描述对视频数据的一个或多个修改的信息,并存储425所接收的与视频数据相关联的信息。当随后呈现或存储视频数据时,如上进一步所述,渲染器基于与视频数据相关联的元数据修改由所接收的信息指定的视频数据。因此,由客户端设备110从图像捕获设备305获得的或从任何合适的源获得的视频数据可以如上面结合图4所描述的那样被修改。

图5是用于修改由客户端设备110获得的视频数据的架构的一个实施方式的处理流程图。在图5所示的实例中,客户端设备110的图像捕获设备305捕获视频数据,并将捕获的视频数据提供505给在客户端设备110上执行的视频效果应用程序310。如上面结合图4进一步描述的。视频效果应用程序310从捕获的视频数据中提取信息,并将提取的信息存储为与捕获的视频数据相关联的元数据。另外,视频效果应用程序310接收识别对捕获的视频数据的一个或多个修改的信息,并且存储所接收的与捕获的视频数据相关联的识别对捕获的视频数据的修改的信息,如上面结合图4进一步描述的。视频效果应用程序310向渲染器315提供捕获的视频数据、与捕获的视频数据相关联的元数据以及识别对捕获的视频数据的修改的信息。

渲染器315通过对由所接收的信息识别的所捕获的视频数据的部分执行由所接收的信息指定的修改,来修改所捕获的视频数据。当修改所捕获的视频数据时,渲染器315访问与所捕获的视频数据相关联的元数据,并使用从所捕获的视频数据中提取的并由元数据描述的信息来执行一个或多个修改。渲染器315将经修改的捕获的视频数据提供给客户端设备110的显示设备320以供呈现,或者提供给客户端设备110中包括的存储设备以供存储。因此,结合图5描述的架构将从所捕获的视频数据中提取信息与基于所提取的信息对所捕获的视频数据的修改分离,从而允许对所捕获的视频数据的修改来降低客户端设备110的功耗。

图6是将由客户端设备110获得的视频数据和对视频数据的修改提供至执行修改并呈现经修改的视频数据的另一客户端设备110的方法的一个实施方式的交互图。在其它实施方式中,该方法可以包括与图6所示出的步骤不同的和/或附加的步骤。另外,在各种实施方式中,该方法的步骤可以以与结合图6所描述的顺序不同的顺序执行。

客户端设备110a获得605视频数据,并且当获得605视频数据时从视频数据中提取610信息。如上面结合图4进一步描述的。视频数据可以由包括在客户端设备110a中的图像捕获设备305捕获、从另一客户端设备110接收、从第三方系统130接收、从在线系统140接收、从包括在客户端设备110a中的存储设备检索、或者从任何其他合适的源获得605。当客户端设备110a获得605视频数据时,客户端设备110a从视频数据中提取610信息。如上面结合图4进一步描述的。客户端设备110a将一个或多个处理应用于视频数据以从视频数据中提取任何合适的信息(例如,对象、光流矢量、对一个或多个对象的改变、对象的视频数据的一个或多个帧内的位置等)。客户端设备110a将所提取的信息存储615为与视频数据相关联的元数据。例如,如果提取的信息包括捕获的视频数据中检测到的对象,则与视频数据相关联的所存储615的元数据包括视频数据内检测到各种对象的时间、或者检测到各种对象的视频数据的帧的标识符以及与所检测到的对象的标识符;检测到对象的各种帧内的位置也可以包括在所存储的元数据中。

另外,客户端设备110a接收620识别对视频数据的一个或多个修改的信息并将其存储。例如,客户端设备110a从用户接收620应用于捕获的视频数据的滤波器的标识符,以及捕获的视频数据中的应用滤波器的一个或多个部分的标识符(例如,帧的标识符、时间间隔)。作为另一个实例,客户端设备110a接收620文本或图像数据,以覆盖在所捕获的视频数据的文本或图像数据要被覆盖至的所捕获的数据的一个或多个部分(例如,帧的标识符、时间间隔)上。在一些实施方式中,所接收的信息可以识别从所捕获的视频数据检测到的被叠加了文本或图像数据的对象。如上面结合图4所描述的。所接收的信息可以识别视频数据的一个或多个部分的一个或多个对象或特性,以及对包括该一个或多个对象或具有该一个或多个特性的视频数据的部分执行的一个或多个修改。

客户端设备110a向在线系统140提供625视频数据、与捕获的视频数据相关联的元数据、以及识别对视频数据的一个或多个修改的信息,在线系统140存储630视频数据、与视频数据相关联的元数据、以及识别对视频数据的一个或多个修改的信息。例如,客户端设备110a将与视频数据相关联的识别在线系统140的与客户端设备110a相关联的用户的信息、与视频数据相关联的元数据、以及识别对视频数据的一个或多个修改的信息提供给在线系统140,在线系统140存储630视频数据、相关联的元数据、以及与用户相关联的识别视频数据的一个或多个修改的信息。

在线系统140向附加客户端设备110b提供635视频数据、与视频数据相关联的元数据以及识别对视频数据的一个或多个修改的信息。在各种实施方式中,附加客户端设备110b与提供625给在线系统140的在线系统140的用户以及视频数据、与视频数据相关联的元数据、以及识别对视频数据的一个或多个修改的信息相关联。可选地,在线系统140从与客户端设备110a相关联的用户接收识别在线系统140的附加用户的信息,从在线系统140为附加用户维护的信息中识别与附加用户相关联的附加客户端设备110b,并且向附加客户端设备110b提供635视频数据、与视频数据相关联的元数据以及识别对视频数据的一个或多个修改的信息。

当附加客户端设备110a接收到视频数据、与视频数据相关联的元数据、以及识别对视频数据的一个或多个修改的信息时,附加客户端数据使用元数据来在渲染视频数据的同时执行640对视频数据的一个或多个所识别的修改,并且经由显示设备325呈现645经修改的视频数据。在渲染视频数据时使用与视频数据相关联的元数据来执行640一个或多个所识别的修改,允许附加客户端设备110b在修改视频数据时减少从电池或其他电源的消耗。如上面结合图4所描述的。从视频数据提取信息是计算密集型的,并且使用元数据来执行640对视频数据的一个或多个修改允许附加客户端设备110b利用与视频数据相关联的元数据来在渲染期间修改视频数据,而无需在接收到捕获的视频数据之后再次提取用于从视频数据执行修改的信息。

结论

以上对实施方式的描述是为了说明的目的而呈现的;其用意不是详尽无遗的,也不是将专利权限于所披露的确切形式。相关领域的技术人员可以理解,根据上述公开内容,许多修改和变化是可能的。

本说明书的一些部分根据对信息的操作的算法和符号表示来描述实施方式。这些算法描述和表示通常由数据处理领域的技术人员使用,以将其工作的实质有效地传达给本领域的其他技术人员。这些操作虽然在功能上、计算上或逻辑上被描述,但应理解为通过计算机程序或等效电路、微代码等来实现。此外,事实证明,有时将这些操作安排称为模块也是方便的,而又不失一般性。所描述的操作及其相关模块可体现在软件、固件、硬件或其任何组合中。

这里描述的任何步骤、操作或处理可以单独地或与其他设备组合地用一个或多个硬件或软件模块来执行或实现。在一个实施方式中,用计算机程序产品实现软件模块,该计算机程序产品包括包含计算机程序代码的计算机可读介质,计算机程序代码可由计算机处理器执行以执行所描述的步骤,操作或处理中的任一个或所有。

实施方式还可涉及用于执行本文中的操作的装置。该装置可以为所需的目的而专门构造,和/或它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算设备。这样的计算机程序可以存储在非瞬时的、有形的计算机可读存储介质中,或者适合于存储电子指令的任何类型的介质中,该介质可以耦接到计算机系统总线。此外,本说明书中提到的任何计算系统可以包括单个处理器,或者可以是采用多处理器设计以增加计算能力的架构。

实施方式还可以涉及由本文所述的计算过程产生的产品。这样的产品可以包括由计算过程产生的信息,其中该信息存储在非瞬时的,有形的计算机可读存储介质上,并且可以包括计算机程序产品的任何实施方式或本文所述的其他数据组合。

最后,说明书中所使用的语言主要是为了可读性和指导目的而选择的,并且它可能没有被选择来划定或限制专利权。因此,本发明的目的不是通过该详细描述,而是通过基于此的申请发布的任何权利要求来限制专利权的范围。因此,实施方式的公开内容旨在说明但不限制在所附权利要求中阐述的专利权的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1