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

内容集合导航和自动转发

文献发布时间:2023-06-19 18:46:07


内容集合导航和自动转发

本申请是申请号为201780021118.4的中国专利申请的分案申请,原申请的申请日为2017年03月29日,优先权日为2016年03月29日,进入中国国家阶段的日期为2018年09月28日,发明名称为“内容集合导航和自动转发”。

优先权的要求

本专利申请要求2016年3月29日提交的序列号为15/083,976的美国专利申请的优先权,该专利申请通过引用整体并入本文。

背景技术

诸如新闻故事或其它实时或近期内容集合的内容传统上以严格控制和策展的格式呈现给消费者。早期的新闻报道格式包括报纸和杂志。后来的格式包括广播电台和电视新闻。对于时间敏感内容的传统媒体和新闻来源通常与收集和呈现关于当前事件和偶发事情的信息的公司或知名人士密切相关。在现代互联网时代,许多这种新闻来源已经支离破碎,但信息收集和呈现的核心方面通常仍然与专业人员以与个人身份相关的方式收集和共享信息相关联。虽然这些实践已经能够通过有价值的分析来支持一些新闻结构,但是选择专业人员过滤信息并生成故事的故事生成过程非常耗时,并且在事件发生和向新闻消费者呈现信息之间引入了显著的延迟。

附图说明

附图中的各种附图仅示出了本公开的示例实施例,并且不应被视为限制其范围。

图1是示出可用于实现一些示例实施例的联网系统的框图。

图2A示出根据某些示例实施例的服务器系统操作接收不同地理区域的内容的方面。

图2B示出根据某些示例实施例的分发不同内容集合的服务器系统操作的方面。

图3A示出根据一些示例实施例的用于在移动装置上呈现内容集合的示例用户界面。

图3B示出根据一些示例实施例的内容集合的自动转发的方面。

图3C示出根据一些示例实施例的移动装置上的内容集合呈现和导航的方面。

图3D示出根据一些示例实施例的移动装置上的内容集合呈现和导航的方面。

图4示出根据一些示例实施例的内容消息和相关联内容的方面。

图5示出根据一些示例实施例的用于内容消息的通信、内容集合的生成以及用于自动转发的内容集合的选择的服务器系统的方面。

图6示出根据一些示例实施例的通信系统的方面,通信系统包括与服务器系统通信的装置,以进行内容消息的通信、内容集合的生成以及用于自动转发的内容集合的选择。

图7示出根据一些示例实施例的方法。

图8示出根据一些示例实施例的方法。

图9是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。

图10示出根据示例实施例的计算机系统形式的机器的图形表示,在计算机系统内可以执行一组指令以使机器执行在此讨论的任何一种或多种方法。

具体实施方式

在此描述的系统和方法涉及内容集合的自动呈现,包括用于生成、选择和连续地向用户呈现内容集合的过程。

如在此所述,“内容”是指由电子装置采集的一个或多个图像或视频剪辑,以及添加到图像或视频剪辑的任何相关联的元数据描述和图形或动画。这包括由采集图像或视频的电子装置生成的元数据,以及稍后可以由其它装置关联的元数据。“内容片段(piece ofcontent)”是指由客户端装置采集的单个图像或视频片段,其中对图像或视频剪辑进行任何改变(例如,变换、滤镜、添加文本等)。各个内容片段可以具有多媒体元素,包括与图像或视频剪辑元素一起添加的图形、文本、动画、表情符号或其它此类元素。由客户端装置的图像传感器采集的内容可以连同来自用户的任何添加的多媒体元素经由网络发送到作为社交共享网络的一部分的其它客户端装置。各个内容片段可以具有时间限制或相关联的显示时间,显示时间在由系统设置的显示阈值内。例如,实施例系统可以将视频剪辑限制到 10秒以下,并且可以允许用户针对图像内容选择小于10秒的显示时间。

在此提到的“内容消息”是指经由系统在一个或多个用户之间的内容的通信。内容还可以从客户端装置发送到服务器系统以与其他系统用户普遍地共享。一些实施例限制内容消息为使用界面采集的图像或视频剪辑,其不允许内容稍后被存储和发送,而是使用具有单个内容片段的相关联的内容消息和在在装置上执行任何其它操作之前被发送的任何添加的多媒体。在此描述的实施例涉及将此类内容分组成内容集合(例如,故事)的方法。在各种系统中,内容消息可以从一个单独用户发送到另一个单独用户,作为例如短时消息(ephemeral message),此外还能够将内容消息发送到服务器计算机系统以包括在各种内容集合中。

如在此所述的“内容集合(content collection)”是有序的内容组。构成特定内容集合的各个内容片段可以以各种不同方式相关。例如,在一些实施例中,内容集合包括标记为公共的所有内容片段,其在特定时间范围内(例如,在过去24小时内)从特定用户发送到服务器系统。访问此类内容集合可以限于由生成集合的内容的用户识别的某些其他用户(例如,朋友)。在一些其它实施例中,内容集合包括通过时间、位置、内容或其它元数据相关的来自不同用户的内容片段。在一些实施例中,内容集合被称为故事。如本文件中更详细描述地,故事或内容集合可以从以各种不同方式相关的内容片段生成。

例如,两个用户装置可以各自与账户相关联,并且账户可以被识别为在通信系统中连接。在整个给定的一天中,一个用户采集图像或视频剪辑 (例如,内容片段)并将每个内容片段的内容消息发送到通信系统。这些内容片段中的一些被识别为包含在与发送装置相关联的半私有内容集合中。内容片段中的一些被识别为可用于公共内容集合。

因为两个用户是连接的,所以第二用户能够访问与第一用户帐户相关联的半私有内容集合,该半私有内容集合仅包含由第一用户的装置生成的内容片段。当第二用户的装置连接到通信系统时,第二用户的装置接收指示第一用户具有更新的内容片段的内容集合的界面信息(interface information)。发送到第二用户的装置的界面信息还包括已经更新的其他用户的内容集合的指示,只要第二用户与内容集合相关联或以其它方式被授权查看内容集合。另外,界面信息可以包括从任何其他系统用户发送的内容消息中创建的内容集合的细节。这些基于实时或位置的内容集合可以由通信系统策展或自动生成。

当第二用户选择界面信息中描述的任何一个内容集合时,第二用户的装置开始按顺序显示来自所选集合的每个内容片段。每个内容片段与显示时间相关联,显示时间小于阈值(例如10秒以下)。当装置到达所选内容集合的结尾时,装置会自动转发到下一内容集合,而不是停止显示内容。通信系统可以以各种不同方式确定接下来要播放哪个内容集合。在一些实施例中,首先从具有最近未看的更新的相关联的用户内容集合中选择内容集合。在来自这些朋友帐户的所有内容集合被显示之后,可以基于接近度、时间、关注度或其它此类度量来选择公共内容集合。在其它实施例中,可以使用其他用户选择或偏好来选择下一内容集合。

在一些实施例中,通信系统从足够的用户接收足够的内容,系统可以无限期地生成和显示内容集合。另外,一些系统可以允许在一些或所有内容集合之间自动插入广告元素。此外,一些系统允许用户跳转到下一或在先的内容片段或下一或在先的内容集合,此外还以渐进方式显示内容片段和内容集合,自动进行到下一内容片段并且随着时间的推移然后到下一内容集合。以下描述另外的实施例和细节。

图1是示出根据一些示例实施例的联网系统100的框图。系统100包括客户端装置110、客户端装置120、服务器系统150和用于在客户端装置 110和120与服务器系统150之间传达通信的网络140。客户端装置110和 120可以是任何智能电话、平板计算机、平板手机、膝上型计算机、具有网络功能的相机或任何其它此类具有网络功能的装置。客户端装置110、120 可以包括用于采集内容的相机装置,或者可以在发送到其它客户端装置 110、120以进行存储之前耦接到用于采集内容的单独的相机装置。因此,一些实施例可以包括可穿戴装置,诸如具有与客户端装置110、120耦接的集成相机的挂件。其它实施例可以包括具有可以被穿戴的集成相机的其它相关联的装置,诸如手表、眼镜、诸如具有集成电子器件的帽子或外套的衣物、夹式电子装置或者可以与客户端装置110、120通信或者与之集成的任何其它此类装置。客户端装置110和120经由网络140连接到服务器系统150。网络140可以包括有线和无线连接的任何组合。这可以包括蜂窝接入网络、到互联网的接入点接口,或者任何其它此类网络140或网络元素。例如,客户端装置110可以使用长期演进(LTE)蜂窝网络与网络140 进行接口连接,以与服务器系统150进行通信,而客户端装置120可以使用Wi-Fi接入点来与网络140进行接口连接并且与服务器系统150通信。服务器系统150可以是一个或多个计算装置,作为服务或网络计算系统的一部分。在某些实施例中,特别是具有大量客户端装置110、120与来自全球各地广泛不同位置的服务器系统150接口连接的实施例中,服务器系统 150可以是类似地广泛分布并经由网络140彼此通信的服务器计算机的分布式网络140。在一些实施例中,客户端装置110和120以及网络140和服务器系统150的任何元素可以使用图9和图10中描述的软件架构702 或机器1000的元素来实现。

然后,联网系统100可以用于内容消息从客户端装置110、120到系统150的通信以及内容集合从系统150到客户端装置110、120的通信。如图 1中所示,客户端装置110将内容消息112通信到服务器系统150,并且客户端装置110从服务器系统150接收内容集合114。除了用于在此描述的实施例的这个功能之外,客户端装置110可以另外从其它用户接收私人的内容片段和通信,并且可以将个人内容集合传达给服务器系统150,其中个人内容集合包括来自由客户端装置110或耦接到客户端装置110的另一个装置生成的内容消息112的图像和/或视频。类似地,客户端装置120发送内容消息122并接收内容集合124,并且可以另外执行其它动作。

图2A示出根据某些示例实施例的服务器系统250从不同地理区域接收内容消息的方面。图2B示出根据某些示例实施例的服务器系统250向不同地理区域发送不同实时内容集合的方面。与示出两个客户端装置110 和120的图1相反,图2A-B示出其中不同区域中的数千或数百万个客户端装置110、120可以与服务器系统250交互的系统的客户端侧的抽象形式。

代替单独的客户端装置110、120,图2A和图2B示出具有两个本地地理区域204和206(其在该示例中是最低层区域)的简单用户段表示。在某些实施例中,地理围栏用于限定局部区域。此类地理围栏可以由联网系统100的方面来跟踪,该联网系统100包括客户端装置(诸如客户端装置110和120)内的定位系统,作为网络140的一部分的基于网络的定位系统,诸如全球定位系统(GPS)的单独的定位系统,或者这些或其它定位系统的任意组合。在各种实施例中,可以基于装置的位置和与特定内容集合相关联的位置使得实时或公共内容集合(例如,第一内容集合组292 或第二内容集合组294)可用于特定装置。

在其它实施例中,系统可以单独地为每个客户端装置110、120生成内容集合,而不是考虑设置地理围栏或用户组。在此类实施例中,每当用户导航到在客户端装置110、120上操作的应用内的内容集合界面时(例如,如图3A中所示),客户端装置110、120将当前位置通信到服务器系统 250。此时提供信息的装置或其它装置的位置可被用于生成装置的内容集合的列表。

在图2A的所示示例中,第一本地地理区域204内的客户端装置110、 120被分组在一起,并在第一时间段内将1000个内容消息260通信到服务器系统250。与这些内容消息260相关联的内容以SF1至SF1000示出。在同一时间段期间,包含单独视频剪辑或图像的10000个内容消息262由第二本地地理区域206内的客户端装置110、120发送到服务器系统250,如内容LA1至LA10000所示。这些是公共内容通信,其内容可用于与任何用户进行通信。系统可以另外包括用于被限制为“朋友”账户的内容集合的内容,以及作为消息发送给特定用户的内容,该内容将作为短时消息被删除并且不与目标接收者之外的任何其他用户共享。上述公共内容量足以淹没个人用户。因此,服务器系统250作为策展者操作以过滤内容消息260、262,并提供来自内容消息260、262的一组选择的图片和视频作为一个或多个内容集合。

在如下所述的各种实施例中,该策展可以由系统操作员使用策展工具来执行,或者可以由通信系统执行的自动分析和选择来执行。一个示例实施例按本地区域划分用户。客户端装置110、120的内容集合从客户端装置 110、120的当前本地区域中生成的最新内容消息260、262中生成。用于内容集合的此类本地内容消息260、262可以基于图像质量和图像内容而被进一步过滤。图像内容可用于防止过量内容复制,提供各种不同的内容,提供被识别为有新闻价值的内容(例如,与名人相关联的图像),或基于任何其它此类内容过滤选择。还可以分析图像内容以识别内容重复,并且避免在单个内容集合中放置极其相似的内容(例如,来自相似角度的相同事件的视频)。另外,服务器系统250可以分析与来自其它本地区域的进入内容消息260、262相关联的趋势,以基于由系统识别的趋势来生成内容集合。关于策展和内容集合生成的附加细节将在下面参考图5进行讨论。

图2B然后示出第一内容集合组292可用于第一本地地理区域204内的所有客户端装置110、120。类似地,第二内容集合组294包括对第二本地地理区域206内的所有客户端装置110、120可见的内容集合。第二内容集合组294被示为包括三个内容集合,其中所有三个内容集合从源自第二本地地理区域206的内容消息260、262中生成。第二内容集合组294的这些内容集合包括LA内容集合291-293。第一内容集合组292被示为包括从源自本地地理区域204的内容消息260、262中生成的两个内容集合, SF内容集合281和SF内容集合282。第一内容集合组292还包括从源自本地地理区域206的内容消息260、262中生成的内容集合,LA内容集合 291。如上所述,LA内容集合291可以由分析系统趋势的服务器系统250 来识别,其中大于正常数量的内容集合视图、截屏、进入的附加内容消息 260、262、或其它系统趋势将LA内容集合291识别为要使更大用户段可见的内容集合。

图3A示出客户端装置300的用户界面的实施例。客户端装置300示出了每个内容集合的用户可选择的界面区域。这包括部段303中的可选公共实时内容集合和部段305中来自朋友账户的半私有内容集合。因此,部分305中的内容集合可以包括来自与单个其它账户相关联的装置的内容。这些内容集合330、331中的内容可以包括最新时间帧(诸如过去24小时或一周)内的内容,或者可以简单地包括先前未看的内容。在其它实施例中,内容可以以在此描述的任何其它方式针对基于该账户的“我的故事”或基于账户的内容集合来进行限制。在图3A的示例中,客户端装置300 与具有半私有内容集合330和331(具有未看的最近更新)的两个其它账户相关联,并且客户端装置300在第一本地地理区域204中并且因此可以访问第一内容集合组292中的内容集合,第一内容集合组292中的内容集合包括内容集合281、内容集合282和内容集合291。附加内容集合可以通过向左或向右或向上和向下滚动来提供。每个界面区域可以提供与每个内容集合相关联的基本细节或样本图像。在客户端装置300处接收这些细节,作为可用内容集合的界面信息。在某些实施例中,可以在界面区域的选择之前将内容集合或内容集合的一部分提供给客户端装置300。在其它实施例中,在选择特定界面区域之后,从诸如服务器系统250的服务器系统中通信内容集合的图像。

用户可以物理地触摸客户端装置300,并且响应于触摸,客户端装置 300可以确定触觉数据,诸如触摸位置、触摸力或手势运动。在各种示例实施例中,客户端装置300显示主屏幕,可操作主屏幕以在内容查看区域 397中启动应用或以其它方式管理客户端装置300的各个方面。在一些示例实施例中,主屏幕提供诸如电池寿命、连接性或其它硬件状态的状态信息。用户可以通过触摸由相应用户界面元素占据的区域来激活用户界面元素。以该方式,用户与客户端装置300的应用(包括实现如在此所述的内容集合显示和自动转发的应用)交互。

在某些实施例中,内容可以在作为客户端装置110、120操作的客户端装置300的触摸屏内呈现,并且如在此所描述地,触摸输入可被用于发起到服务器系统150的通信以请求内容集合以及自动转发一组连续的内容集合。

许多种类的应用910(也称为“应用软件”)可以在机器1000上执行,诸如本机应用(例如,在IOS

图3C和图3D示出在客户端装置300的界面中进行内容集合291的触摸选择之后用于查看内容集合(诸如图3B中所示的内容集合)的界面的实施例。例如,如图3B所示,当用户选择与内容集合291相关联的部段303的部分时,按顺序显示集合内的各个内容片段,如内容片段LA7、 LA55和LA 986-989所示。每个内容片段具有低于显示阈值时间的相关联的显示时间,并且在内容查看区域397内按顺序呈现每个内容片段达到该内容片段的相关联的显示时间。在图3A-B的示例中,具有最近内容更新的内容集合310显示在部段305中的内容集合列表的顶部,并且是在由用户输入选择的内容集合291结束显示之后的第一自动选择的内容集合。在内容集合291结束显示之后,内容集合310的每个内容片段50-57按顺序播放,并且系统自动选择列表中的下一个基于用户的内容集合320。在内容集合320的内容片段80-84被显示之后,系统选择另一内容集合。如果没有留下由用户选择所呈现的其它内容集合,则客户端装置300将从服务器计算机系统接收公共内容集合。该内容集合可以是由系统操作员策展的集合,或者是从对服务器系统250可用的所有内容中自动生成的内容集合。当新接收的内容集合的显示完成时,客户端装置300继续接收新的内容集合直到用户输入停止呈现新内容的命令。

在一些实施例中,在一个内容集合的结尾和下一个内容集合的开头之间插入附加元素。例如,在一些实施例中,在内容LA989被显示达到相关联的显示时间之后以及在内容50被显示之前,呈现集合结束图形。在一些实施例中,该元素是广告元素,其可以包括呈现为广告的任何此类元素的图像、文本、视频或多个实例。在其它实施例中,在每个故事之间呈现此类广告元素。在一些实施例中,在阈值时间段之后,在设定数量的内容集合之后,或基于此类元素的任何组合,在故事之间呈现该广告元素。如在此所述,可以在用户装置上的内容集合之间呈现多个广告元素或多组广告元素。在一些实施例中,“赞助的”内容集合是来自广告账户的内容。系统可以基于系统内的广告度量周期性地选择这些赞助的内容集合。在一些实施例中,以类似于上面讨论的选择广告元素的方式来选择这种赞助的内容集合,并且这种赞助的内容集合可以包括来自装置的内容片段,以及使用广告工具生成并提交到内容数据库作为赞助的内容的图形、视频或图像内容。

因此,如在此所述,用户经由移动装置的界面访问内容集合。界面可以包括关于可用内容集合的信息,并且界面可以基于集合中的内容的细节来对内容集合进行排序。例如,在一个实施例中,用户可以具有与多个其他账户(例如朋友)相关联的账户。每个朋友账户可以具有相关联的内容集合,该内容集合包括发送到服务器系统250的内容片段。在一个实施例中,每个朋友帐户的内容集合包括为个人故事选择并在过去24小时内发送到服务器计算机系统的内容片段,旧的内容片段从内容集合中被删除。另外,在一些实施例中,可用内容集合包括与公共事件或位置相关联的内容集合。这些内容集合中的每一个可以在用户的移动装置上的用户界面中被呈现并排序。此外,“实时”内容集合可以是可用的,其呈现从发送到系统的大量内容中过滤的策展或自动生成的内容集合。

在此描述的实施例中,从一组呈现的内容集合中选择单独的内容集合然后可以导致附加的内容集合或故事的连续和持续的呈现。该连续呈现作为移动装置上的自动转发操作的一部分而发生,该移动装置在用户选择的初始内容集合结束显示之后显示后续的内容集合。

例如,在一个实施例中,用户可以从第一朋友中选择与第一内容集合相关联的界面。示例内容集合可以具有六个内容片段,每个内容片段长度为十秒。在六十秒后,假设没有来自用户的进一步输入,装置将自动转发到另一个内容集合。在一些实施例中,下一内容集合的选择可以基于内容集合源。例如,一些实施例基于哪个朋友账户具有未看过的最近添加的内容片段的故事,自动转发来自朋友账户的下一内容集合。在具有先前未看过的内容的所有内容集合均被显示之后,可以类似地基于最近未看的更新来自动播放来自本地事件的内容集合。在具有未看的内容片段的所有本地内容集合均被显示之后,基于系统设置自动显示其它内容集合。内容集合可以基于距离、时间、兴趣、用户偏好或任何其它此类系统信息来选择。在接收足够数量的可用于故事的内容消息260、262的系统中,移动装置可以继续自动转发以无限期地呈现附加故事,其中根据需要放宽时间、位置、质量、关注度或其它过滤因素以提供附加内容集合。

另外,在一些实施例中,可以在一些或所有内容集合之间显示广告或其它分段元素。例如,在一个实施例中,在显示每个内容集合的最后一个内容片段之后,可以在设定的时间段内显示标准的集合结束图形。在其它实施例中,在自动转发到显示下一内容集合之前,在设定的时间段内显示一个或多个广告图像或视频剪辑(例如广告元素)。在一些实施例中,集合结束图形和广告元素二者均被使用。

如上所述,然后,系统可以从各种各样的用户接收内容消息260、262,并使用来自这些消息的内容片段来生成不同类型的内容集合或故事。用户可以经由装置访问这些故事,并且系统能够通过正在进行的内容集合序列自动转发,其中以各种不同方式选择下一内容集合。

在一些实施例中,除了在预选时间自动呈现内容集合之外,用户界面还允许用户在内容集合内和不同内容集合之间导航内容片段。图3C示出内容查看区域397以及输入398和输入399,输入398和输入399是客户端装置300的触摸屏上的可选区域。在图3C所示的界面中,内容查看区域397正在显示来自内容集合320的内容片段82。内容集合291和310先前已被查看。输入398提供可选择的界面以返回显示内容集合291的内容,并且输入399提供可选择的界面以返回显示内容集合310的内容。当系统自动转发呈现来自下一内容集合的内容时,对于先前查看的内容集合的界面数据可以移动到输入398、399。在一个实施例中,例如,在内容集合320 完成之后,输入399将示出内容集合320的界面信息,内容集合310的界面信息将移动到输入区域398,并且内容集合291将不再具有用于直接跳转到该内容集合的内容的用户可选择的界面。

图3D示出用于导航内容集合的用户输入的方面的另一示例实施例。在图3D的实施例中,在内容显示时段结束之前,点击触摸屏显示器的右侧前进到下一内容片段。点击显示器的左侧使得刚好在当前显示的内容片段之前显示的内容片段被再次显示。因此,该点击可以允许用户向前和向后导航通过各个内容片段。类似地,作为输入393从左向右滑动可以移动到恰好在当前内容集合之前呈现的内容集合的第一内容片段,并且作为输入391从右向左滑动可以使得下一内容集合的开头开始显示。当在用户导航输入之后显示内容片段时,每个内容片段的显示时间用于在内容片段之间自动前进,并且然后在最后一个内容片段被显示之后前进到新内容集合。作为输入392向上滑动可以返回到图3A的内容集合选择界面,以及作为输入392向下滑动可以提供导航界面以查看类似的内容片段或接收与在内容查看区域397内显示的当前内容片段或元素相关的附加细节。

图4然后描述内容消息260、262的一个示例,在一些实施例中,该内容消息260、262用于从客户端装置300向服务器计算机系统发送内容,诸如从客户端装置110向服务器系统150通信内容消息112。在一些实施例中,特定消息400的内容用于填充存储在数据库中的消息表,该消息表可由服务器计算机系统访问。类似地,消息400的内容存储在存储器中,作为客户端装置110或服务器计算机系统的“传输中”或“飞行中”的数据。

消息400示为包括以下组件:

·消息标识符402:识别消息400的唯一标识符。

·消息文本有效载荷(payload)404:由用户经由客户端装置110的用户界面生成并且包括在消息400中的文本。

·消息图像有效载荷406:由客户端装置110的相机组件采集或从客户端装置110的存储器中取得并且包括在消息400中的图像数据。

·消息视频有效载荷408:由相机组件采集或从客户端装置110的存储器组件取得并且包括在消息400中的视频数据。

·消息音频有效载荷410:由麦克风采集或从客户端装置110的存储器组件取得并且包括在消息400中的音频数据。

·消息注释412:表示要被应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,滤镜、标签或其它增强)。

·消息持续时间参数414:指示以秒为单位的消息内容(例如,消息图像有效载荷406,消息视频有效载荷408,消息音频有效载荷410)将被呈现或可由用户经由在此描述的任何装置上操作的消息客户端应用访问的时间量的参数值。

·消息地理定位参数416:与消息的内容有效载荷相关联的地理定位数据(例如,纬度和经度坐标)。多个消息地理定位参数416值可以包括在有效载荷中,这些参数值中的每一个关于内容中包括的内容项(例如,消息图像有效载荷406内的特定图像,或者消息视频有效载荷408中的特定视频)相关联。

·消息故事标识符418:识别一个或多个内容集合(例如“故事”)的标识符值,消息400的消息图像有效载荷406中的特定内容项与该一个或多个内容集合相关联。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。

·消息标签420:每个消息400可以采用多个标签标记,每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。标签值可以另外用于识别来自消息的内容是否要包括在与发送客户端装置110的帐户相关联的内容集合中,该内容集合具有来自该帐户的其它内容。标签值还可以识别消息的内容可用于公共传播,包括包含在具有来自与其它账户相关联的装置的内容的公共内容集合中。

·消息发送者标识符422:指示客户端装置110的用户的标识符(例如,消息系统标识符、电子邮件地址或装置标识符),消息400在该客户端装置110上生成,并且消息400从该客户端装置110被发送。

·消息接收者标识符424:指示消息400被寻址到的客户端装置110 的用户的标识符(例如,消息系统标识符、电子邮件地址或装置标识符)。

消息400的各种组件的内容(例如,值)可以是指向其中存储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表内的位置(或其地址)的指针。类似地,消息视频有效载荷 408内的值可指向存储在视频表内的数据,存储在消息注释412内的值可指向存储在注释表中的数据,存储在消息故事标识符418内的值可指向存储在内容集合表中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表内的用户记录。在一些实施例中,消息接收者标识符424可以用于将消息的内容与特定内容集合相关联,或者使内容可用于策展故事。例如,一个消息接收者标识符424可以与用户的个人内容集合相关联,该个人内容集合仅可供朋友查看。另一个消息接收者标识符424可以用于呈现给系统策展者的内容池,其使用提交的内容消息260、262生成公共内容集合。

在一些实施例中,来自此类内容消息260、262以及其它源(例如,策展工具、广告工具等)的数据被存储在服务器计算机系统的数据库中。虽然数据库的内容被讨论为多个表,但是可以理解,数据可以存储在其它类型的数据结构中(例如,作为面向对象的数据库)。

一个示例数据库包括存储在消息表内的消息数据。实体表存储实体数据,包括实体图。在实体表内保持记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论类型如何,消息传递服务器系统250存储数据相关的任何实体可以是所识别的实体。为每个实体提供唯一标识符以及实体类型标识符。

实体图进一步存储关于实体之间的关系和关联的信息。仅作为示例,该关系可以是社交的专业的(例如,在共同的公司或组织工作)基于兴趣或基于活动的关系。例如,这些关系可以提供对半私有内容集合330、331 的访问,使得向用户装置发送用于内容集合的界面信息,并且如果在用户之间建立关系则允许该用户装置选择和查看另一用户的相关联内容。

在一些实施例中,数据库还以注释表中的滤镜的示例形式存储注释数据。在注释表内存储数据的滤镜与视频(其数据存储在视频表中)和/或图像(其数据存储在图像表中)相关联并应用于该视频或图像。在一个示例中,滤镜是在向接收者用户呈现期间显示为覆盖在图像或视频上的叠加。滤镜可以是各种类型的,包括用户从滤镜库中选择的滤镜,滤镜库在发送用户正在撰写消息时由消息传递客户端应用呈现给该发送用户。其它类型的滤镜包括地理定位滤镜(也称为地理滤镜),其可以基于地理位置呈现给发送用户。例如,基于由客户端装置110的GPS单元确定的地理定位信息,消息传递客户端应用可以在用户界面内呈现特定于邻域或特定位置的地理定位滤镜。另一种类型的滤镜是数据滤镜,该数据滤镜可以基于客户端装置110在消息创建过程期间收集的其它输入398或信息由消息传递客户端应用选择性地将其呈现给发送用户。数据滤镜的示例包括特定位置处的当前温度、发送用户正在行进的当前速度、客户端装置110的电池寿命或当前时间。

可以存储在图像表内的其它注释数据是所谓的“镜头”数据。“镜头”可以是可被添加到图像或视频的实时特殊效果和声音。

如上所述,视频表存储视频数据,在一个实施例中,该视频数据与在消息表内保持记录的消息相关联。类似地,图像表存储与消息数据存储在实体表中的消息相关联的图像数据。实体表可以将来自注释表的各种注释与存储在图像表和视频表中的各种图像和视频相关联。

内容集合表存储关于消息和相关联图像、视频或音频数据的集合的数据,其被编译成集合(例如,SNAPCHAT故事或图库)。特定集合的创建可以由特定用户(例如,在实体表中保持记录的每个用户)发起。用户可以以该用户创建和发送/广播的内容集合的形式创建“个人故事”或内容集合。为此,消息传递客户端应用的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。

集合还可以构成“实时故事”,“实时故事”是通过手动、自动或使用手动和自动技术组合而创建的来自多个用户的内容集合。例如,此类实时内容集合可以构成来自各个位置和事件的一组策展的用户提交的内容。其客户端装置110具有启用的位置服务并且在特定时间处于公共位置事件的用户可以例如经由消息传递客户端应用的用户界面呈现选项,以向特定的实时故事贡献内容。可以由消息传递客户端应用104基于他或她的位置向用户识别实时故事。最终结果是从社区角度讲述的“实时故事”。

另一种类型的内容集合被称为“位置故事”,其使得用户(该用户的客户端装置110位于特定地理位置(例如,在学院或大学校园内))能够对特定集合做出贡献。在一些实施例中,对位置故事的贡献可以使用第二程度的认证来验证终端用户属于特定组织或其它实体(例如,是大学校园中的学生)。在各种其它实施例中,如在此所述,其它类型的内容集合可以使用系统操作员策展工具或基于自动计算机的分析在数据库内被识别和构造。

图5示出根据一些示例实施例的用于自动本地内容集合生成和策展的服务器系统550的方面。在各种实施例中,服务器系统550可以用作服务器系统150或服务器系统250的实施方式。示例服务器系统550包括输入和输出(I/O)模块552、内容特征分析模块554、机器视觉模块556、内容数据库558、帐户管理模块562、自动内容集合模块560和策展工具564。

I/O模块552可以包括经由网络140向客户端装置110、120发送以及接收内容和内容集合所需的任何硬件、固件或软件元素。内容特征分析模块554可以包括装置、处理器和软件以分析来自视频剪辑的图片和帧的图像,并且然后确定内容特征,包括关于何时和何处生成图片或视频的细节。在某些实施例中,内容特征分析模块554可以被实现为多个不同的模块,每一个模块分析不同的内容特征,包括在此描述的任何内容特征。

机器视觉模块556描述可用于基于视频中的一个或多个图像的内容来识别内容特征的特定模块。机器视觉模块556包括用于分析和理解内容的硬件、固件和/或软件。在一个实施例中,机器视觉模块556与包括图像和视频内容值的字典相关联。在该实施例中,机器视觉模块556可以使用在内容片段的图像中识别的对象以及其中识别的对象的布置,以从字典中选择一个或多个内容值作为内容特征。例如,简单的此类机器视觉模块556 可以识别图像中的球,并选择球和游戏的值作为内容特征。更复杂的模块可以将球的类型识别为篮球,并且包括“篮球”作为特征值。更复杂的机器视觉模块556可以识别篮球、人群、球场颜色和球场的高架视角,以识别“职业篮球比赛”和“篮球竞技场”作为内容的内容值。相同复杂的机器视觉模块556可以识别篮球、公园背景和混凝土球场表面,并将“业余篮球游戏”和“游乐场篮球”关联为内容的内容值。

机器视觉模块556生成的这些内容值然后可以与其它特征值一起存储在内容数据库558中。该特征值可以包括:一个或多个内容值(即,对内容中的内容的标识);生成时间;生成时段;生成位置;生成区域;一个或多个质量值,与内容相关联的任何元数据值,特定内容片段的标识符或任何其它此类值。在一些实施例中,内容的副本可以与位置信息、采集时间信息以及关于内容片段的任何其它此类信息一起存储在内容数据库558 中。在某些实施例中,内容数据库558可以匿名存储关于内容使用的细节。例如,客户端装置110、120可以在装置的屏幕上通信关于内容的呈现以及关于对内容截屏的细节。关于作为内容集合的一部分的内容片段多久被查看一次、查看内容多长时间以及被截屏的频率的匿名度量然后可以由服务器系统550测量,作为内容特征分析模块554的分析的一部分,其中所得的数据存储在内容数据库558中。在一些实施例中,内容数据库558可以包括具有上面关于图4所讨论的任何内容或内容消息信息或在上面讨论的任何数据库或表结构中的该内容信息。

账户管理模块562包括应用或界面功能,以使用户能够经由用户装置和服务器系统550之间的通信来管理实体/账户关系。账户管理模块562还可以管理如在此所述的个人用户的内容集合。

策展工具564包括系统操作员或广告商可用的工具,以从在服务器系统550处接收的大量内容中生成以及呈现内容集合,并且通过用户选择而可用于包括在公共内容集合中(例如,实时内容集合、位置内容集合、基于内容的内容集合等)。类似地,自动内容集合生成模块560可以过滤大量接收的内容片段以生成按位置、时间、主题或任何其它此类基础分组的内容集合。在一些实施例中,自动内容集合生成模块560的元素用于将提供给策展工具564的内容片段的数量过滤到较小的数量(例如,过滤10000 个接收的内容片段以向策展工具564提供500个内容片段,从而供系统操作员审查)。

在一些实施例中,自动内容集合生成模块560然后可以使用关于来自内容数据库558的内容片段的信息来为自动生成的内容集合选择特定图片或视频。在各种实施例中,自动内容集合生成模块560可以在生成内容集合中使用复杂评分、加权重和其它规则。例如,某些实施例可以工作使得所有内容片段满足质量阈值,除非识别出具有某些阈值特征的趋势并且与趋势相关联的所有内容都低于质量阈值。另一个实施例可以基于本地地理区域204、206中当前可用的多个内容集合来加权内容集合生成。在更进一步的实施例中,可以将任何数量的复杂规则一起应用作为内容集合生成的一部分,从而基于时间、位置、内容和质量过滤内容集合的图像和视频。

内容集合选择和自动转发模块566用于在接收到请求输入或选择下一内容集合的自动转发消息之后并跟随在装置上显示的初始内容集合的选择来选择要发送到客户端装置110的一个或多个下一内容集合。在一些实施例中,初始内容集合组被高速缓存在客户端装置110上,并且模块560仅在呈现本地高速缓存的内容集合之后与装置交互。在其它实施例中,不同组的规则被应用于不同的内容集合组。例如,内容集合选择和自动转发模块566可以应用最近的更新顺序来选择下一实体关系内容集合,以及针对所有其它内容集合对选择顺序应用基于用户的兴趣的评分。在其它实施例中,对装置应用其它组选择规则来确定将选择哪个内容集合作为自动显示的(例如,自动转发的)下一内容集合。在一些实施例中,内容集合选择和自动转发模块566还管理要在内容集合(包括广告元素或集合结束图形)之间显示的元素的通信。

在一些实施例中,自动内容集合生成模块560和/或内容集合选择和自动转发模块566内的质量评分可用于过滤或选择特定内容集合的内容片段,并过滤不同的内容集合以呈现给用户。在一些实施例中,质量分数基于图像或视频剪辑中的样本帧的详细曝光分析。例如,可以计算亮度的直方图,并且可以基于直方图与质量分数的相关性向图像或视频分配质量。该相关性可以基于将某些直方图模式与所选质量分数相关联的表或函数,或者可以在任何其它此类事项中生成。对于分析多个样本帧的视频,可以使用每个帧的平均分数来选择分数,可以使用所有分析的帧的单个帧的最差分数,或者可以使用多个分数或者分数的选择的任何此类组合或函数。

在一些实施例中,图像或所选视频剪辑的运动模糊估计被用作质量分数的一部分。例如,该运动模糊估计可以基于检测到的边缘上的能量梯度的计算,或其它此类运动估计。对于视频剪辑,识别具有高于阈值量的运动模糊的视频帧可以触发对附加样本帧的分析以确定视频受运动模糊的影响的程度,或者识别相机传感器的抖动何时影响整个视频。在某些实施例中,系统可以使用用于视频运动或“抖动”的阈值来过滤掉相机运动或抖动高于阈值的视频。在其它实施例中,抖动或运动分数可以简单地修改整体质量分数。在其它实施例中,可以使用硬阈值以及对总体质量分数的输入二者。

在一些实施例中,可以针对指示由于各种压缩或通信问题而引入图像内的较低图像质量或错误的压缩伪像(artifact)或其它图像处理伪像,来分析图像或样本视频帧。这些伪像可以包括图像振铃、图像轮廓、沿着弯曲边缘的阶梯噪声、分色伪像或块边界伪像。可以分析视频以用于基于附加的视频的压缩伪像,诸如与运动补偿或蚊式噪声相关联的块边界伪像,其可以通过分析视频的所选帧来识别。这种压缩伪像的存在和任何识别的压缩伪像的强度可用于修改或选择图像或视频剪辑的质量分数。除了与压缩或有损传输相关联的此类信息损失之外,还可以针对其它类型的噪声分析图像和视频帧。例如,可以针对噪声伪像来分析图像的平滑或均匀区域中的变化,噪声伪像诸如是与低质量或故障的相机传感器、低质量或脏光学的相机,或者任何其它可能降低、损坏或修改图像中的数据的此类噪声源相关联的噪声。

在一些实施例中,音频数据还用于视频剪辑的质量评分。在该实施例中,诸如动态范围、噪声水平、语言清晰度或语言识别数据的各种音频度量,或任何其它此类基于音频的信息可用于选择音频质量分数或影响总体质量分数。在一些实施例中,基于确定的音频环境使用不同的音频数据度量。例如,具有语音的视频剪辑与具有音乐的剪辑可被不同地评估,或者具有不同音乐类型的的视频剪辑可被不同地评估。另外,在一些实施例中,用于识别令人反感的音频内容(例如禁忌口语或明确的音乐歌词)的音频识别可用于质量评分或质量阈值标志。

除了基于图像质量的质量分数之外,一些分数可以基于图像内容。例如,如上所述,图像处理可用于识别图像或视频剪辑内的令人反感的内容,诸如裸露或禁忌语言。在一些实施例中,优选取向(例如横向或纵向)可用于质量评分。一些系统可另外使用图像识别来识别期望的内容。例如,在一些系统中,与聚会环境相关联的动物的图像或对象的图像被识别为期望的。视频帧或图片内的此类图像的存在可用于增加总体质量分数,或生成内容分数。

在某些实施例中,使用反馈或机器学习来选择或设置质量分数。这种系统可以使用神经网络来提取被识别为系统用户优选或感兴趣的特征。例如,在一些实施例中,可以为学习组选择由系统用户选择以包括在一个或多个故事中的图像。来自学习组的一些或所有图像和视频帧可以具有使用诸如卷积神经网络的前馈人工神经网络来提取和分析的特征,以识别图像的期望元素,并且自动地将关注度分数分配给基于采用学习组生成的神经网络所接收的未来图像。在该神经网络内使用的特征图可以基于在此描述的任何分析度量,包括图像质量特征和图像内容特征。在一些实施例中,可以基于来自用于图像或视频帧的内容分析的图像处理服务的图像数据库来选择和自动更新可学习的过滤器。在其它实施例中,任何其它此类源可以用于可学习的过滤器。该分析可以应用于内容的图像元素以及视频的音频元素二者。

在各种实施例中可以使用其它反馈机制。例如,在一些实施例中,与生成图像或视频剪辑相关联的内容源、用户或帐户可具有相关联的历史数据。在一些实施例中,内容源与系统用户选择的内容的历史的关联或者内容源与高质量评级相关联的内容的历史的关联可以用作质量分数的输入,或者也可以用作质量标志。可以使用各种内容源度量,诸如质量历史、发送的图像的数量、系统跟随者或互连的数量,或其它此类度量。

在一些实施例中,多个不同的质量分数可以与每个各个媒体内容片段相关联,使得图像可以具有曝光质量分数、噪声质量分数、运动质量分数、压缩质量分数、分辨率质量分数、音频质量分数、内容分数或任何其它此类单独的质量分数。在该实施例中,还可以提供基于此类单独的质量分数的任何组合的总体质量分数。此外,如上所述,这些质量分数中的一些或全部可以单独地用于自动拒绝某些媒体内容片段,只有超过所有阈值的图像或视频才被呈现给系统用户。该系统可以具有基于单独的质量分数或不同质量分数的多个不同组合的任何数量的阈值。在一些实施例中,这种阈值可以是可变的,以向系统用户呈现目标数量的图像和/或视频。类似地,不同类型的图像或视频剪辑可被不同地评估,使得可以基于内容、位置、时间、到假日或新闻事件的位置或时间的接近度、整体环境或其它此类信息来对不同图像有差别地应用权重。在一些实施例中,上述任何的度量和权重被不同地应用到室内拍摄的自拍和晚上在户外拍摄的音乐会镜头。此外,整组内容集合的总计的关注和质量分数(例如,内容集合内的内容片段的平衡或加权评分)用于分类和选择内容集合以呈现给用户。

图6然后示出用于自动转发作为用户装置610和服务器系统650之间的通信的一部分的内容集合的呈现的系统操作的一个实施例的方面。在图 6的示例实施例中,在操作662中,服务器系统650接收并存储内容。如上所述,从各种不同装置接收该内容。服务器系统650处理内容以生成内容集合。基于上面讨论的各种因素,诸如实体或帐户关系、位置、系统使用历史或可以在不同实施例中使用的其它因素,服务器系统650选择某些内容集合以使装置610的用户(例如,经由界面,诸如图3A中示出的界面)可用。在操作664中,界面信息被发送到装置610,该界面信息可以包括来自集合的内容的集合更新和图像帧的细节。然后,在操作666中,装置610呈现包括来自操作664的界面信息的界面,并接收用户对内容集合的选择。在图6的示例中,装置610发送对所选内容的结果请求(例如,故事请求)并接收内容作为响应。在各种其它实施例中,可以在装置610 处高速缓存一个或多个内容集合中的一些或所有内容。在图6的实施例中,在操作668中,服务器系统650响应于用户对操作666的选择而发送所选集合的内容,并且作为对故事请求的响应。

然后,在操作669中,装置610开始显示内容集合的内容。当完成或预期显示第一内容集合时(例如,在最后一个内容片段结束的阈值时间内或基于一些其它内容集合结束触发),装置610在操作670中向服务器系统650发送请求附加内容的自动转发通信,并且在操作672中接收来自下一内容集合的内容。在具有高速缓存的实施例中,初始自动转发通信可以基于与高速缓存内容的结尾相关联的触发而发生。然后,继续进行操作 674A-N,装置610基于自动转发操作或用户导航输入来请求附加内容。例如,在一些实施例中,如果用户接近内容集合的结尾,并输入“下一内容集合”命令(例如,输入393),则从装置610向服务器系统650发送请求,并且依次向下一内容集合发送请求。这采用连续显示内容操作669中显示的内容继续进行,直到在装置610处接收到结束内容显示的输入,作为操作676的一部分。

图7然后示出根据一些实施例的用于内容集合策展和自动转发操作的方法700。在一些实施例中,方法700可以由服务器计算机系统或服务器系统250(诸如服务器系统150、250)执行。在其它实施例中,方法700 可以实现为计算机可读指令,该指令在由计算机的处理器执行时使计算机执行方法700。可以以在此描述的任何方式实现各种实施例。另外,可理解的是,某些操作可以重复,重新排序,或者可以在所描述的操作之间执行其它操作,同时仍然根据在此描述的内容集合策展和自动转发实施例工作。

方法700开始于操作702,在服务器计算机系统的数据库处存储来自多个客户端装置110、120的多个内容消息260、262,其中来自每个内容消息260、262的相应内容片段与小于阈值显示时间的显示时间相关联。阈值显示时间的示例是10秒、30秒和60秒。在其它实施例中也可以使用其它阈值。内容片段(例如,不具有固定呈现时间的图像)的实际显示时间可以小于阈值。实际显示时间可以由图像的发起者或者由系统操作来设置。对于图像内容,可以通过简单地将视频剪辑显示时间切割为阈值最大值并且删除超过阈值显示时间限制的图像的任何数据来强制执行阈值。

操作704然后涉及由服务器计算机系统从多个内容消息260、262中生成第一多个内容集合,第一多个内容集合中的每个内容集合包括来自多个内容消息260、262中的一个或多个内容消息260、262的相关联的内容。在操作706中,服务器计算机系统向第一移动装置发送第一多个内容集合中的每个内容集合的界面信息。在操作708中,服务器计算机从第一移动装置接收第一故事请求,该第一故事请求与在第一移动装置处第一多个内容集合中的第一内容集合的第一选择相关联。在一些实施例中,第一故事请求仅仅是已经选择用于显示内容的通知。在一些实施例中,故事请求是对服务器发送故事内容的请求。在一些实施例中,该请求识别正在呈现在装置处高速缓存的先前发送的内容。然后,操作710涉及从第一移动装置接收与在第一移动装置处完成第一内容集合的呈现相关联的自动转发通信。自动转发通信和完成之间的关联可以基于内容集合中的最后一个内容片段的实际显示,或者基于预期显示下一内容集合的阈值或其它指示符。用于发起下一内容集合的通信的任何此类阈值或操作可以用于自动转发通信。然后,操作712包括响应于接收故事请求和自动转发通信,自动将第二内容集合从服务器计算机系统传送到第一移动装置以在第一移动装置上自动显示,其中第二内容集合由服务器计算机系统自动选择。

在各种实施例中,方法的操作可以继续,其中自动转发通信请求在装置上显示下一内容集合。在一些实施例中,当与提供给装置的界面信息相关联的所有内容集合已被显示时,装置可以向服务器发送实时自动转发通信。该实时自动转发通信可以简单地指示在内容集合形成中请求当前或实时内容,或者此外可以请求服务器采取某些操作来选择除初始界面信息中识别的内容集合之外的附加内容集合。在一些实施例中,实时自动转发通信可以指示装置正在请求从一组用于选择下一内容集合的规则到一组不同的用于选择下一内容集合的规则的改变。

图8的方法800是可以实现为与执行方法700的服务器计算机通信的相应装置的操作的示例实施例。在其它实施例中,可以由装置和服务器系统250执行除了方法800和方法700之外的方法来实现如在此所述的策展和自动转发。在不同的实施例中,可以以针对在此所讨论的类似操作描述的任何方式来实现方法800的操作。

方法800开始于操作802,从服务器计算机系统接收第一多个内容集合的界面信息,该界面信息包括与第一多个内容集合中的每个内容集合相关联的多个内容图像。然后,操作804涉及由第一移动装置接收发起与选择第一多个内容集合中的第一内容集合相关联的故事请求的用户输入,并且操作806继续从服务器计算机系统接收与第一内容集合相关联的第一有序的内容片段组,该有序内容片段组中的每个内容片段具有相关联的显示时间,显示时间小于阈值显示时间。

然后,在操作808中,第一移动装置显示第一有序内容片段组中的至少一部分。在操作808之后的操作810中,识别与第一有序内容片段组中的最后一个内容片段的显示相关联的故事结束触发,并且响应于故事结束触发的识别,装置在操作812中自动发起与第一多个内容集合中的第二内容集合相关联的第二有序内容片段组的显示。在各种实施例中,故事结束触发可以是来自内容集合的最后一个内容片段的实际显示结束。在其它实施例中,这可以是基于预期时间的触发,以在内容集合的最后一个内容片段显示结束之前从服务器取得内容。在一些实施例中,这可以是指示对高速缓存下一内容集合的内容的请求的触发。在更进一步的实施例中,也可以使用其它触发来请求要在装置处自动呈现的下一内容集合的选择和/或传输。另外,如在此所述,在各种实施例中,可以将多媒体广告元素(例如,图像、视频、图形等)提供给装置以在任何或所有内容集合之间显示。可以使用不同的广告阈值,诸如自上次呈现广告元素以来的时间,广告与内容比率,或任何其它此类阈值。

图9是示出可以安装在上述任何一个或多个装置上的软件902的架构的框图900。例如,在各种实施例中,客户端装置110和120以及服务器系统150、250和550可以使用软件902的部分或全部元素来实现。图9仅仅是软件架构的非限制性示例,并且将理解可以实现许多其它架构来促进在此所述的功能。在各种实施例中,软件902由诸如图10的机器1000的硬件来实现,机器1000包括处理器1010、存储器1030和I/O组件1050。在该示例架构中,软件902可以被概念化为层的堆栈,其中每一个层可以提供特定的功能。例如,软件902包括诸如操作系统904、库906、框架 908和应用910的层。操作上,与一些实施例一致,应用910通过软件堆栈调用应用程序编程接口(API)调用912,并响应于API调用912接收消息914。

在各种实施方式中,操作系统904管理硬件资源并提供公共服务。操作系统904包括例如内核920、服务922和驱动器924。与一些实施例一致,内核920作为硬件与其它软件层之间的抽象层。例如,内核920提供了存储器管理、处理器管理(例如调度)、组件管理、网络连接和安全设置等功能。服务922可以为其它软件层提供其它公共服务。根据一些实施例,驱动器924负责控制底层硬件或与底层硬件接口连接。例如,驱动器 924可以包括显示器驱动器、相机驱动器、

在一些实施例中,库906提供由应用910利用的低级通用基础设施。库906可以包括系统库930(例如,C标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库906可以包括API库932,诸如媒体库(例如,支持各种媒体格式(诸如运动图像专家组 -4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组-3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))的呈现和操纵的库)、图形库(例如,用于在显示器上的图形内容中呈现二维(2D)和三维(3D) 的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、web库(例如,提供网页浏览功能的WebKit)等。库906同样可以包括各种各样的其它库934,以向应用910提供许多其它API。

根据一些实施例,框架908提供可由应用910利用的高级公共架构。例如,框架908提供各种图形用户界面(GUI)功能、高级别资源管理、高级位置节点等。框架908可以提供可由应用910利用的其它API的广泛范围,其中的一些可以特定于特定操作系统904或平台。

在示例实施例中,应用910包括主页应用950、联系人应用952、浏览器应用954、书籍阅读器应用956、位置应用958、媒体应用960、消息传递应用962、游戏应用964以及诸如第三方应用966的其它广泛分类的应用。根据一些实施例,应用910是执行程序中定义的功能的程序。可以利用各种编程语言来创建以各种方式构造的一个或多个应用910,诸如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)。在具体示例中,第三方应用966(例如,由特定平台的供应商之外的实体使用ANDROID

一些实施例可以特别地包括内容集合应用967。在某些实施例中,这可以是操作以管理与诸如服务器系统150的服务器系统的通信的独立应用。在其它实施例中,该功能可以与另一应用集成,诸如媒体应用960或另一此类应用。内容集合应用程序967可以使用机器1000的相机装置来管理内容集合,经由I/O组件1050与服务器系统550的通信,以及接收到的内容集合在存储器1030中的接收和存储。内容和与内容相关联的用户输入的呈现可以由故事应用967使用不同的框架908、库906元素或在机器1000 上操作的操作系统904元素进行管理。

图10是示出根据一些实施例能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一种或多种方法的机器1000的组件的框图。具体地,图10示出了以计算机系统的示例形式的机器1000 的示意图,在该计算机系统内可以执行用于使机器1000执行在此讨论的任何一种或多种方法的指令1016(例如,软件、程序、应用910、小程序、应用程序或其它可执行代码)。在替代实施例中,机器1000作为独立装置操作或者可以耦接(例如,网络连接)到其它机器。在联网部署中,机器 1000可以以服务器-客户端网络环境中的服务器机器550或客户端装置110、 120的能力操作,或者作为对等(或分布式)网络环境中的对等机器。机器 1000可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能手机、移动装置800、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器、或者连续或以其它方式指定机器1000将采取的动作的能够执行指令1016的任何机器。此外,虽然只示出单个机器1000,但是术语“机器”同样可被认为包括单独或联合执行指令1016以执行在此所讨论的任何一种或多种方法的机器1000的集合。

在各种实施例中,机器1000包括处理器1010、存储器1030以及可被配置成经由总线1002彼此通信的I/O组件1050。在示例实施例中,处理器1010(例如,中央处理单元(CPU)、简化指令集计算(RISC)处理器、复合指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一个处理器或其任何合适的组合)包括例如可以执行指令1016的处理器1012和处理器1014。术语“处理器”旨在包括多核处理器1010,该多核处理器 1010可以包括可以同时执行指令1016的两个以上独立处理器1012、1014 (同样称为“核”)。尽管图10示出了多个处理器1010,但是机器1000 可以包括单个具有单核的处理器1010、单个具有多核的处理器1010(例如,多核处理器1010)、多个具有单核的处理器1012、1014、多个具有多核的处理器1010、1012或其任何组合。

根据一些实施例,存储器1030包括主存储器1032、静态存储器1034 和经由总线1002可被处理器1010访问的存储单元1036。存储单元1036 可以包括机器可读介质1038,在该机器可读介质1038上存储了体现在此所述的任何一种或多种方法或功能的指令1016。指令1016同样可以在由机器1000的其执行期间完全或至少部分地驻留在主存储器1032内、静态存储器1034内、处理器1010中的至少一个内(例如,在处理器的高速缓冲存储器内)或任何合适的组合。因此,在各种实施例中,主存储器1032、静态存储器1034和处理器1010被认为是机器可读介质1038。

如在此所使用的,术语“存储器”是指能够临时或永久地存储数据的机器可读介质1038,并且可以认为包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓存、闪存和高速缓存。虽然机器可读介质1038在示例实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令1016的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样可被视为包括能够存储指令(例如,指令1016)用于由机器(例如,机器1000) 执行的任何介质或多个介质的组合,使得指令1016在由机器1000的一个或多个处理器(例如,处理器1010)执行时使机器1000执行在此描述的任何一个或多个的方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”可被视为包括但不限于以固态存储器(例如,闪存)、光学介质、磁性介质、其它非易失性存储器(例如,可擦除可编程只读存储器(EPROM))或其任何合适的组合的形式的一个或多个数据存储库。术语“机器可读介质”特别排除非法定信号本身。

I/O组件1050包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。通常,可理解的是I/O组件1050 可以包括图10中未示出的许多其它组件。I/O组件1050根据功能被分组,仅用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中, I/O组件1050包括输出组件1052和输入组件1054。输出组件1052包括视觉组件(例如,显示器,诸如等离子体显示面板(PDP)、发光二极管 (LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、听觉组件(例如扬声器)、触觉组件(例如振动电动机)、其它信号发生器等。输入组件1054包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触觉输入组件)、音频输入组件(例如,麦克风)等。

在一些另外的示例实施例中,I/O组件1050包括各种其它组件中的生物度量组件1056、运动组件1058、环境组件1060或位置组件1062。例如,生物度量组件1056包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1058包括加速度传感器组件 (例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪) 等。环境组件1060包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。位置组件1062包括定位传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,高度计或气压计,其可以检测可以从哪个高度导出的空气压力)、取向传感器组件(例如,磁力计)等。

通信可以使用各种各样的技术来实现。I/O组件1050可以包括通信组件1064,其可操作以分别经由耦接器1082和耦接器1072将机器1000耦接到网络1080或装置1070。例如,通信组件1064包括网络接口组件或与网络1080接口连接的另一合适装置。在另外的示例中,通信组件1064包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、

此外,在一些实施例中,通信组件1064检测标识符或包括可操作以检测标识符的组件。例如,通信组件1064包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(UPC)条形码的一维条形码、诸如快速响应(QR)代码、Aztec代码、数据矩阵、数字图形、最大码、PDF417、超码、统一商业代码缩减空格符号(UCC RSS)-2D条形码和其它光学代码的多维条形码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由可以指示特定位置的通信组件 1064来导出各种信息,诸如经由因特网协议(IP)地理位置的位置、经由

传输介质

在各种示例实施例中,网络1080中的一个或多个部分可以是自组织网络、内联网、外部网、虚拟专用网络(VPN)、局域网(LAN)、无线 LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、

在示例实施例中,经由网络接口装置(例如,在通信组件1064中包括的网络接口组件)使用传输介质通过网络1080发送或接收指令1016,并且利用多个公知的传输协议(例如,超文本传输协议(HTTP))中的任何一个。类似地,在其它示例实施例中,使用传输介质经由耦接1072(例如,对等耦接)向装置1070发送或接收指令1016。术语“传输介质”可被视为包括能够存储、编码或携带由机器1000执行的指令1016的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于这种软件的通信实现。

此外,因为机器可读介质1038不体现传播信号,所以机器可读介质 1038是非暂态的(换句话说,不具有任何短暂信号)。然而,将机器可读介质1038标记为“非暂态”不应被解释为意味着介质不能移动。介质1038 应该被认为是可从一个物理位置传送到另一物理位置。另外,由于机器可读介质1038是有形的,因此介质1038可以被认为是机器可读装置。

语言

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然将一个或多个方法的单独操作示出和描述为单独的操作,但可以同时执行一个或多个单独的操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为分离的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。

虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的此类实施例在此可以单独地或集体地由术语“发明”指代,这仅仅为了方便,如果事实上公开了多于一个则不旨在将本申请的范围限制于任何单个公开内容或发明构思。

在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、模块、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

技术分类

06120115686570