动态冗余
文献发布时间:2023-06-19 10:08:35
本申请要求2019年9月27日提交的名称为“Dynamic Redundancy”的美国临时专利申请62/907,467的优先权的权益,并且要求2019年9月9日提交的名称为“Multi-PathConnection Management”的美国临时专利申请62/897,987的权益,这些美国临时专利申请中每一者的公开内容在此全文并入本文。
技术领域
本说明书整体涉及被传输数据的冗余,包括被传输数据的动态冗余。
背景技术
电子设备的用户可向和/或从其电子设备流式传输音频和/或视频。例如,用户可从服务器流式传输音频和/或视频内容,并且/或者用户可与一个或多个其他参与者利用其相应设备参与通信会话,诸如音频和/或视频会议会话。电子设备在流式传输音频和/或视频时经历的分组丢失可能导致所呈现的音频和/或视频流的质量劣化。
附图说明
本主题技术的一些特征在所附权利要求书中被示出。然而,出于解释的目的,在以下附图中阐述了本主题技术的若干实施方案。
图1示出了根据一个或多个具体实施的用于实施动态冗余的示例性网络环境。
图2示出了根据一个或多个具体实施的可实施动态冗余的示例性电子设备。
图3示出了根据一个或多个具体实施的用于实施动态冗余的示例性系统架构。
图4示出了根据一个或多个具体实施的为视频数据提供动态冗余的示例性过程的流程图。
图5示出了根据一个或多个具体实施的基于抖动缓冲区大小来提供动态冗余的示例性过程的流程图。
图6示出了根据一个或多个具体实施的可用以实现本主题技术的各个方面的示例性电子系统。
具体实施方式
下面示出的具体实施方式旨在作为本主题技术的各种配置的描述并且不旨在表示主题技术可被实践的唯一配置。附图被并入本文并且构成具体实施方式的一部分。具体实施方式包括具体的细节旨在提供对本主题技术的透彻理解。然而,主题技术不限于本文所述的具体细节,并且可使用一个或多个其他具体实施来实践。在一个或多个具体实施中,以框图形式示出了结构和部件,以便避免使本主题技术的概念模糊。
电子设备在流式传输音频和/或视频时经历的分组丢失可能导致所呈现的音频和/或视频流的质量劣化。在音频流和/或视频流被传输和/或被提供用于传输时,利用可被电子设备用于恢复和/或替换在传输期间丢失和/或损坏的任何音频和/或视频数据的冗余数据,可减轻所呈现的音频流和/或视频流的质量劣化,假设冗余数据本身在传输期间不会也丢失和/或损坏的话。然而,如果冗余数据丢失和/或损坏,或者如果冗余数据是在与对应的音频和/或视频数据相关联的呈现时间之后被接收到,则冗余数据可能无法用于恢复和/或替换丢失的音频和/或视频数据。此外,随着冗余数据的量增加,与传输音频和/或视频数据相关联的开销(例如,分组开销)的量也可能增加,这可能导致带宽和/或处理资源利用的增加。
本文所讨论的系统利用动态冗余来基于一个或多个因素自适应地调节用于生成冗余数据以及将冗余数据提供给电子设备的冗余方案,诸如结合将音频和/或视频数据传输给电子设备来进行。例如,本文所讨论的系统可利用电子设备处的缓冲区大小诸如抖动缓冲区大小来确定音频和/或视频数据与对应冗余数据之间的间距,使得可减轻冗余数据和原始音频和/或视频数据两者的丢失,同时还确保冗余数据在与该音频和/或视频数据相关联的呈现时间之前被电子设备接收。本文所讨论的系统还可以基于与电子设备处抖动缓冲区的使用相关联的一个或多个参数(诸如耗用率、满度等)来动态地修改冗余数据的间距和/或大小。
本文所讨论的系统可基于一个或多个因素动态地调节用于生成冗余数据的编码方案,诸如以减少与传输冗余数据相关联的分组开销的量。例如,当冗余量增加时,本文所讨论的系统可增加用于生成每个单独冗余数据项的音频和/或视频数据的量(例如,组块大小),由此减少被传输和/或被提供用于传输的组块和对应分组的数量,这减少了用于传输组块和冗余数据项的对应分组开销(例如,通过在较少分组上重新摊销该开销)。
图1示出了根据一个或多个具体实施的用于实施动态冗余的示例性网络环境100。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
网络环境100包括:电子设备102、103和104;网络106和服务器108。网络106可通信(直接或间接)地耦接例如电子设备102-104和/或服务器108中的任何两者或更多者。在一个或多个具体实施中,网络106可以是可包括互联网和/或可通信地耦接到互联网的设备的互连网络。出于解释的目的,网络环境100在图1中被例示成包括电子设备102-104和单个服务器108;然而,网络环境100可包括任何数量的电子设备和任何数量的服务器。
服务器108可以是和/或可以包括下文相对于图6讨论的电子系统的全部或部分。服务器108可包括可用于帮助进行电子设备102-104之间的视音频会议的一个或多个服务器,诸如服务器云。出于解释的目的,相对于各种操作,诸如帮助进行视音频会议,示出并论述了单个服务器108。然而,本文所论述的这些操作和其他操作可由一个或多个服务器执行,并且每个不同的操作可由相同或不同的服务器来执行。
电子设备102-104中的一个或多个电子设备可以是例如便携式计算设备诸如膝上型计算机、智能电话、智能扬声器、外围设备(例如,数字相机、耳机)、平板设备、可穿戴设备(诸如智能手表、带等),或者包括例如一个或多个无线接口的任何其他适当设备,诸如WLAN(例如,WiFi)无线电设备、蜂窝无线电设备、蓝牙无线电设备、Zigbee无线电设备、近场通信(NFC)无线电设备和/或其他无线电设备。在图1中,以举例的方式,电子设备102和104各自都被描绘为智能电话,并且电子设备103被描绘为膝上型计算机。
电子设备102-104可被配置为参与通信会话诸如视音频会议会话,例如,其中电子设备102-104中的两者或更多者可参与在参与者设备之间传输视频和/或音频内容流(例如,应用数据)的会话。电子设备102-104中的每个电子设备可以是和/或可以包括下文相对于图2所论述的设备和/或下文相对于图6所论述的电子系统的全部或部分。
在本文所讨论的系统中,电子设备102-104中的一个电子设备(诸如电子设备102)发起与电子设备103-104和/或服务器108中的另一个电子设备(诸如电子设备104)的通信会话,诸如音频和/或视频通信会话。然后,电子设备102可将用于通信会话的分组传输给电子设备104,诸如包括音频和/或视频数据的分组。
电子设备102也可利用冗余方案来生成与所传输音频和/或视频数据对应的冗余数据。冗余数据可以是可被电子设备104用于恢复和/或替换在传输期间被损坏和/或丢失的视频和/或音频数据的数据。例如,为视频数据生成的冗余数据可以是前向纠错数据(例如,FEC码字),而为音频数据生成的冗余数据可以是先前传输的(和/或后续传输的)音频数据的一个或多个副本。
在一个或多个具体实施中,冗余方案可指示要应用于(如果有的话的)视频数据的冗余量、要应用于(如果有的话的)音频数据的冗余量、音频数据与对应冗余数据之间的最大步幅(或时间间隔)、用于生成每个冗余数据项的视频数据的量(例如,组块大小和/或要包括在每个前向纠错码字中的视频数据的量)、分组大小等。
在本文所讨论的系统中,电子设备102可基于一个或多个因素动态地调节和/或修改所应用的冗余方案,该因素诸如是音频和/或视频数据的质量、目标比特率、对应于音频和/或视频数据的误包率、电子设备104处的解码音频质量、电子设备104处的解码视频质量、电子设备104处缓冲区(诸如抖动缓冲区)的大小、电子设备104处此类缓冲区的利用、所应用的冗余的量等。在一个或多个具体实施中,电子设备104可周期性地和/或连续地向电子设备102提供反馈数据,其中反馈数据指示前述因素中的一个或多个因素。
在一个或多个具体实施中,电子设备102可利用层级结构,其中每个层级标识音频编码质量和/或编解码器、视频编码质量和/或编解码器、音频数据冗余的量、视频数据冗余的量、目标比特率等中的一者或多者。电子设备102可基于前面列出的因素中的一者或多者来选择这些层级中的一个层级和/或在层级之间自适应地改变。下文相对于图3进一步讨论用于以这种方式实施动态冗余的架构的示例性系统,并且下文相对于图4和图5进一步讨论用于提供动态冗余的示例性过程。
图2示出了根据一个或多个具体实施的可实施动态冗余的示例性电子设备102。例如,图2的电子设备102可对应于电子设备102-104中的任意电子设备、或对应于图1的服务器108。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
电子设备102可包括处理器202、存储器204、通信接口206和相机208。处理器202可包括使得能够处理数据和/或控制电子设备102的操作的适当逻辑部件、电路和/或代码。就这一点而言,处理器202可被启用以向电子设备102的各个其他部件提供控制信号。处理器202也可控制电子设备102的各部分之间的数据传输。另外,处理器202可使得能够实施操作系统或以其他方式执行代码以管理电子设备102的操作。
存储器204可包括使得能够存储各种类型信息的适当逻辑部件、电路和/或代码,诸如所接收的数据、生成的数据、代码和/或配置信息。存储器204可包括例如随机存取存储器(RAM)、只读存储器(ROM)、闪存和/或磁性存储装置。
通信接口206可包括合适的逻辑部件、电路和/或代码,其使得能够实现有线或无线通信,诸如在其他电子设备103-104中的任意电子设备和/或服务器108之间通过网络106的有线或无线通信。通信接口206可包括例如以下中的一者或多者:蓝牙通信接口、蜂窝通信接口(例如,3G、4G、LTE、5G等)、NFC接口、Zigbee通信接口、WLAN通信接口、(WiFi、WiMAX、LiFi、2.4GHz、5GHz等)通信接口、USB通信接口、以太网通信接口、毫米波(例如,60GHz)通信接口或一般而言任何通信接口。出于解释的目的,电子设备102在图2中被例示成包括单个通信接口206;然而,电子设备102可包括任意数量的通信接口。
相机208可以是和/或可以包括被配置为捕获视频数据(例如,视频帧)的图像传感器。电子设备102还可包括被配置为捕获音频数据的一个或多个麦克风(未示出)。
在一个或多个具体实施中,处理器202、存储器204、通信接口206、相机208中的一者或多者和/或其一个或多个部分可在软件(例如,子例程和代码)中实现,可在硬件(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑部件、分立硬件部件或任何其他合适的设备)中实现和/或软件和硬件两者的组合中实现。
图3示出了根据一个或多个具体实施的用于实施动态冗余的示例性系统架构300。出于解释的目的,系统架构300被例示成由图2的电子设备102来实施。然而,系统架构300可由电子设备102-104中的任意电子设备和/或图1的服务器108来实施。然而,并非所有所描绘的部件均可在所有具体实施中使用,并且一个或多个具体实施可包括与图中所示的那些相比附加的或不同的部件。可进行这些部件的布置和类型的变化,而不脱离本文所列出的权利要求的实质或范围。可提供附加的部件、不同的部件或更少的部件。
系统架构300包括通信接口206、相机208、冗余控制器302、前向纠错(FEC)模块304和视频编码器306。出于解释的目的,系统架构300被例示成包括视频编码器306和FEC模块304;然而,系统架构还可包括音频编码器(未示出)和音频冗余模块(未示出),其也可通信地耦接到冗余控制器302。因此,本文相对于视频编码器306和FEC模块304描述的原理也适用于此类音频编码器和音频冗余模块。
在操作中,相机208捕获诸如电子设备102的用户的视频数据,并将视频数据传递给视频编码器306。视频编码器306根据特定编解码器(诸如HEVC或任何视频编解码器)对视频数据进行编码,并且将视频数据传递给FEC模块304。FEC模块将冗余(例如FEC编码)应用于视频数据,并且将分组化的冗余和视频数据传递给通信接口以用于传输给电子设备103-104中的另一个电子设备,诸如电子设备104。
电子设备104接收视频数据(和/或音频数据)并确定对应于所传输的视频和/或音频数据的一个或多个参数,诸如视频分组丢失率、音频分组丢失率、解码音频质量值,解码视频质量值、缓冲区(例如,抖动缓冲区)满度和/或耗用率、误码率、或一般而言任何可指示电子设备104处音频和/或视频的接收的信息。例如,解码音频质量值可以是经解码音频的客观质量的指示,并且解码视频质量值可以是经解码视频的客观质量的指示,诸如基于经解码视频的帧速率(例如,跨层级)。电子设备104可以连续地和/或周期性地(或非周期性地)将所确定的参数传输给电子设备102,诸如以分组接收数据的形式。
冗余控制器302可使用该分组接收数据来动态地调节应用于所传输音频和/或视频数据的冗余方案。该分组接收数据也可用于例如基于所估计的可用带宽来确定正被传输的音频和/或视频数据的质量和/或目标比特率。例如,基于该分组接收数据,冗余控制器302可从层级的结构中选择特定层级,其中每个层级指示音频编码质量/编解码器、视频编码质量/编解码器、要应用于音频数据的冗余量、要应用于视频数据的冗余量等中的一者或多者。例如,层级可指示不同冗余量和/或视频/音频质量,诸如以考虑不同和/或变化的网络环境和/或对应的分组丢失率。在一个或多个具体实施中,低层级或最低层级可指示仅关键帧(例如,I帧)被编码和传输,诸如以每秒一帧来进行。这样,无论是否接收到任何其他帧,进行接收的电子设备都可以解码所接收的每个帧,从而能够呈现至少一些视频帧。
冗余控制器302可在滚动时间段上监测分组接收数据中所包括的参数中的一个或多个参数。例如,冗余控制器302可基于分组接收数据中所包括的参数中的一个或多个参数来确定指数移动平均值。在一个或多个具体实施中,冗余控制器302可跟踪移动平均值包络,该移动平均值包络可包括高于移动平均值的上包络和低于移动平均值的下包络。
基于冗余控制器302所监测的参数(例如,呈所跟踪的移动平均值包络的形式),冗余控制器302可选择上述层级中指示要应用于音频和/或视频数据的冗余量的一个层级。在一个或多个具体实施中,冗余控制器302可实施快起冲慢衰减方法用于选择层级。例如,冗余控制器302可快速地适应所检测到的被监测视频和/或音频分组丢失率的增大,诸如通过选择具有增大的音频和/或视频冗余量的层级,而冗余控制器302可更缓慢地适应被监测视频和/或音频分组丢失率的降低,诸如在选择具有减少的音频和/或视频冗余量的层级之前等待被监测视频和/或音频分组丢失率的降低被保持持续预先确定的时间量。在一个或多个具体实施中,冗余控制器302可实施滞后,诸如以实施前述慢衰减。
当冗余控制器302选择层级时,对应的视频和/或音频质量/编解码器被分别提供给视频编码器306和/或音频编码器。视频和/或音频质量可以是指比特率、帧速率、分辨率等中的一者或多者。视频编码器306还具有目标比特率,诸如用于传输视频和对应冗余数据的传输比特率。
冗余控制器302还向FEC模块304和/或音频冗余模块提供冗余量的指示。相对于视频数据的冗余量可以是要由FEC模块304应用的百分比,诸如200%、300%等。在一个或多个具体实施中,冗余量可以是FEC码率的形式,诸如1/2、1/3等。
相对于音频数据的冗余量可以是要传输的给定音频分组和/或音频束的副本数量和/或音频分组/音频束与对应冗余数据之间的步幅或最大时间间距的指示(例如,使得冗余数据在音频分组在接收设备处将被呈现之前到达)。在一个或多个具体实施中,音频数据可被包括在不同大小的束中,诸如20毫秒、40毫秒、60毫秒或任何时间量,并且该束可被分组到分组中。冗余控制器302可指示每分组有效载荷的偏移和/或可指示要包括多少成束(例如,什么大小的束)以用于生成冗余数据。因此,冗余控制器302可指定可用于音频数据的冗余数据的音频数据的副本(例如,如音频编解码器所允许的)的不同间隔、成帧和/或成束。
FEC模块304从冗余控制器302接收要应用的冗余量的指示,并且至少部分地基于冗余量来确定用于对视频数据执行FEC编码的组块大小。FEC模块304可随着冗余数据量的增加而增大组块大小。这样,减少与视频和冗余数据相关联的开销的量,诸如分组开销(例如RTP/UDP标头开销),例如,因为视频数据正被分成更大、并且因此更少的组块,从而导致更少数量的分组被传输和/或被提供用于传输。在一个或多个具体实施中,组块大小可以是指用以生成每个冗余数据项的视频数据量。在一个或多个具体实施中,组块大小可以指示要包括在每个FEC码字中的视频数据量,并且/或者组块大小可以指示要包括在每个分组中的数据和/或冗余数据量。在一个或多个具体实施中,FEC模块304还可至少部分地基于视频编码质量/编解码器来确定组块大小,该视频编码质量/编解码器可指示被传输和/或被提供用于传输的视频数据的量。
FEC模块304向视频编码器306提供由FEC模块304生成的用于生成相对于视频数据(例如,每帧)的冗余数据的FEC和分组开销的量的指示。视频编码器306可以从FEC模块304接收开销信息,以及从冗余控制器302接收目标比特率,并且视频编码器306可以目标比特率作为约束而自适应地编码视频数据。例如,如果FEC/分组开销的量结合被编码视频将导致超过目标比特率,则视频编码器306可跳过和/或丢弃视频数据的一个或多个帧。
在一个或多个具体实施中,当冗余控制器302已从层级结构中选择层级(诸如对应于可用的最高质量音频和/或视频的层级)并且附加带宽仍然可用时,冗余控制器302可主动增大FEC模块304所应用的冗余量。换句话讲,冗余控制器302可增大冗余量以利用可用带宽,而不管所监测的分组丢失率是如何,其可能不指示在当前条件下附加冗余数据是必需的在一个或多个具体实施中,冗余的主动应用可被称为“始终开启”冗余,因为冗余控制器302将以附加冗余数据来利用任何附加带宽,而不管所监测的分组丢失率是否指示附加冗余数据是必需的。
图4示出了根据一个或多个具体实施的为视频数据提供动态冗余的示例性过程400的流程图。出于解释的目的,本文主要参考图1的电子设备102、104来描述过程400。然而,过程400不限于图1的电子设备102、104,并且过程400的一个或多个框(或操作)可由服务器108的一个或多个其他部件执行以及由其他合适的设备(例如,电子设备102-104中的任意电子设备)执行。进一步出于解释的目的,过程400的框在本文中被描述为顺序地或线性地发生。然而,过程400的多个框可并行发生。此外,过程400的框不必按所示顺序执行,并且/或者过程400的一个或多个框不必执行和/或可由其他操作替代。
可结合电子设备102传输音频和/或视频数据给另一电子设备诸如电子设备102来发起过程400。例如,作为通信会话诸如音频和/或视频会议的一部分,电子设备102可将音频和/或视频数据传输给电子设备102。电子设备102从另一电子设备104接收与先前被传输和/或被提供用于传输给另一电子设备104的视频数据对应的分组接收数据(402)。分组接收数据可包括音频和/或视频误码率、误包率、分组丢失率等。在一个或多个具体实施中,该分组接收数据可包括一个或多个客观的音频和/或视频质量度量。
电子设备102可至少部分地基于分组接收数据来确定要应用于被传输和/或被提供用于传输给所述另一电子设备104的后续视频数据的冗余量(404)。例如,电子设备102的冗余控制器302可诸如基于相对于音频和/或视频分组丢失率的指数移动平均值包络来选择指示要应用的冗余量的特定层级,其中冗余量随着分组丢失率增大而增大。电子设备102可至少部分地基于冗余量来确定用于将冗余应用于视频数据的编码方案(406)。例如,FEC模块304可至少部分地基于所应用的冗余量来确定组块大小。在一个或多个具体实施中,FEC模块304还可至少部分地基于视频数据的质量和/或特定编码来确定组块大小,其可指示被传输和/或被提供用于传输的视频数据的大小。
电子设备102可至少部分地基于编码方案将所确定的冗余应用于视频数据以生成冗余数据(408)。例如,FEC模块408可对由视频编码器306输出的视频数据执行FEC编码。在一个或多个具体实施中,FEC模块304可使用组块大小来确定要包括在每个FEC码字中的视频数据量。在一个或多个具体实施中,FEC模块304可使用组块大小来将FEC码字分组化到特定大小的分组中。
电子设备102将视频数据和所生成的冗余数据传输给另一电子设备104(410)。出于解释的目的,本文相对于视频数据和FEC编码来描述过程400。然而,过程400也适用于音频数据以及生成音频束或数据项的冗余副本,其中束可以被设定不同的尺寸和/或可被分组到不同大小的分组中。
图5示出了根据一个或多个具体实施的基于抖动缓冲区大小来提供动态冗余的示例性过程500的流程图。出于解释的目的,本文主要参考图1的电子设备102、104来描述过程500。然而,过程500不限于图1的电子设备102、104,并且过程500的一个或多个框(或操作)可由服务器108的一个或多个其他部件执行以及由其他合适的设备(例如,电子设备102-104中的任意电子设备)执行。进一步出于解释的目的,过程500的框在本文中被描述为顺序地或线性地发生。然而,过程500的多个框可并行发生。此外,过程500的框不必按所示顺序执行,并且/或者过程500的一个或多个框不必执行和/或可由其他操作替代。
过程500可在电子设备102为了特定应用(诸如音频和/或视频会议应用)发起与另一电子设备104的通信会话时开始。电子设备102可标识用于该特定应用的所述另一电子设备104的抖动缓冲区的大小(502)。例如,电子设备102可以基于用于该特定应用的最小抖动缓冲区大小来标识抖动缓冲区大小。在一个或多个具体实施中,电子设备104可以诸如通过反馈信息向电子设备102提供抖动缓冲区大小的指示。
在一个或多个具体实施中,抖动缓冲区可用于通过平滑网络拥塞周期期间的分组到达时间来确保经解码音频数据的连续性。因此,抖动缓冲区的大小可以指示从分组(诸如音频分组)在电子设备104处被接收直到该分组将被解码和呈现给电子设备104的用户的最小时间量。因此,在分组的呈现时间之后接收的用于该分组的任何冗余数据将不能被电子设备104使用。然而,可能期望使所传输数据与对应的冗余数据之间的间距最大化,以避免由于同一突发和/或传输错误而使该数据和所传输的数据两者都丢失。
因此,电子设备102至少部分地基于抖动缓冲区的大小来确定为特定应用被传输和/或被提供用于传输的数据的冗余方案(604)。冗余方案的特征可在于冗余数据模式(例如,交错模式)、步幅和/或距离值、和/或要应用的冗余量中的一者或多者。冗余数据可以是例如原始数据的副本(诸如用于音频数据)、和/或对应于原始数据的前向纠错编码(诸如用于视频数据)。
冗余方案可被确定为使得冗余分组和/或数据与原始数据分开或散布(诸如交织),以使所传输的数据对突发更具弹性,并且增大在电子设备104处接收原始数据或冗余数据中至少一些的可能性。在一个或多个具体实施中,可以至少部分地基于被传输的音频和/或视频数据的基础比特率来选择冗余。例如,在低比特率,冗余方案可添加尽可能多的前向纠错。当基础内容例如音频支持不同大小的分组和/或不同的编解码器时,冗余方案也可针对冗余数据利用不同大小的分组和/或不同的编解码器。在一个或多个具体实施中,增大分组的大小可减少标头开销的量,这可提高总数据速率。
在确定冗余方案(504)之后,电子设备102可至少部分地基于所确定的冗余方案来生成冗余数据(506)。冗余数据的生成也可包括将冗余数据与原始数据间隔开或散布/图案化,使得原始数据和冗余数据分开,并且使得原始数据与对应冗余数据项之间的最大间距不超过另一电子设备104处的最小抖动缓冲区大小。
在一个或多个具体实施中,当冗余数据包括相同原始数据的多个副本时,电子设备102可将副本彼此散布开,并与原始数据散布开,同时确保原始数据与副本中的每个副本之间的最大间距得以保持。在一个或多个具体实施中,如果冗余数据的插入会超过最大间距,则电子设备102可针对给定数据生成少于所确定量的冗余或不生成冗余。电子设备102可将用于应用的数据和冗余数据传输给另一电子设备104(508)。
电子设备102可以从另一电子设备104接收与抖动缓冲区的使用对应的一个或多个参数(510)。例如,该参数可以包括抖动缓冲区的满度和/或耗用率。在一个或多个具体实施中,该一个或多个参数还可包括在另一电子设备104处测量的一个或多个分组丢失值,诸如音频和/或视频分组丢失率、误包率、误码率等。在一个或多个具体实施中,该一个或多个参数还可包括基础内容的质量的度量诸如音频质量的客观度量、和/或视频质量的客观度量,诸如通过对于帧速率在层级上扫描分组丢失率。
至少部分地基于该参数,电子设备102可动态地修改冗余方案(512)。例如,如果抖动缓冲区为空,则电子设备102可以减少被传输的冗余数据的量,以更快地将基础数据传输给电子设备104。如果抖动缓冲区已满,则电子设备102可例如主动地和/或伺机地增加冗余量。
如上所述,本技术的一个方面在于收集和使用得自各种来源的数据。本公开预期,在一些实例中,这些所采集的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可以包括人口统计数据、基于位置的数据、电话号码、电子邮件地址、社交网络标识符、家庭地址、与用户的健康或健身级别相关的数据或记录(例如,生命体征测量、药物信息、锻炼信息)、出生日期或任何其他识别或个人信息。
本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。本公开还预期个人信息数据有益于用户的用途。例如,健康和健身数据可用于向用户的总体健康状况提供见解,或者可用作使用技术来追求健康目标的个人的积极反馈。
本公开设想负责采集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。此类政策应该能被用户方便地访问,并应随着数据的采集和/或使用变化而被更新。来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应当调整政策和实践,以便采集和/或访问的特定类型的个人信息数据,并适用于包括管辖范围的具体考虑的适用法律和标准。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。因此,在每个国家应为不同的个人数据类型保持不同的隐私实践。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,本技术可被配置为允许用户在注册服务期间或其后随时选择参与采集个人信息数据的“选择加入”或“选择退出”。除了提供“选择加入”和“选择退出”选项外,本公开设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除特定标识符(例如,出生日期等)、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集定位数据)、控制数据如何被存储(例如,在用户之间聚合数据)、和/或其他方法来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或少量的个人信息,诸如与用户相关联的设备请求的内容,其他非个人信息或公开可用的信息来选择内容并且递送至用户。
图6示出了可利用以实现本主题技术的一个或多个具体实施的电子系统600。电子系统600可以是电子设备102-104中的一个或多个电子设备和/或图1所示的服务器108中的一个服务器,和/或可以是其一部分。电子系统600可包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统600包括总线608、一个或多个处理单元612、系统存储器604(和/或缓存)、ROM 610、永久性存储设备602、输入设备接口614、输出设备接口606以及一个或多个网络接口616,或其子集及变体形式。
总线608总体表示通信地连接电子系统600的许多内部设备的全部系统总线、外围设备总线和芯片组总线。在一个或多个具体实施中,总线608将一个或多个处理单元612与ROM 610、系统存储器604和永久性存储设备602通信地连接。一个或多个处理单元612从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本主题公开的过程。在不同的具体实施中,一个或多个处理单元612可为单个处理器或者多核处理器。
ROM 610存储一个或多个处理单元612以及电子系统600的其他模块所需的静态数据和指令。另一方面,永久性存储设备602可为读写存储器设备。永久性存储设备602可为即使在电子系统600关闭时也存储指令和数据的非易失性存储器单元。在一个或多个具体实施中,海量存储设备(诸如,磁盘或光盘及其对应的磁盘驱动器)可被用作永久性存储设备602。
在一个或多个具体实施中,可移除存储设备(诸如软盘、闪存驱动器及其对应的磁盘驱动器)可以用作永久性存储设备602。与永久性存储设备602一样,系统存储器604可为读写存储器设备。然而,与永久性存储设备602不同,系统存储器604可为易失性读写存储器,诸如随机存取存储器。系统存储器604可存储一个或多个处理单元612在运行时可能需要的指令和数据中的任何指令和数据。在一个或多个具体实施中,本主题公开的过程被存储在系统存储器604、永久性存储设备602和/或ROM 610中。一个或多个处理单元612从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一个或多个具体实施的过程。
总线608还连接至输入设备接口614和输出设备接口606。输入设备接口614使得用户能够向电子系统600传送信息以及选择命令。可与输入设备接口614一起使用的输入设备可包括例如字母数字混合键盘和指向设备(也称为“光标控制设备”)。输出设备接口606可例如使得能够显示电子系统600所生成的图像。可与输出设备接口606一起使用的输出设备可包括例如打印机和显示设备,诸如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其他设备。一个或多个具体实施可包括既充当输入设备又充当输出设备的设备,诸如触摸屏。在这些具体实施中,提供给用户的反馈可以是任何形式的感官反馈,诸如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
最后,如图6所示,总线608还通过一个或多个网络接口616将电子系统600耦接到一个或多个网络和/或耦接到一个或多个网络节点,诸如图1中所示的服务器108。以此方式,电子系统600可为计算机网络(诸如LAN、广域网(“WAN”)或内联网)的一部分,或者可为网络的网络(诸如互联网)的一部分。电子系统600的任何或全部部件可与本主题公开一起使用。
可以利用编写有一个或多个指令的有形计算机可读存储介质(或一种或多种类型的多个有形计算机可读存储介质)部分地或全部地实现本公开范围之内的具体实施。有形计算机可读存储介质实质上也可以是非暂态的。
计算机可读存储介质可以是任何可以由通用或专用计算设备读、写或以其他方式访问的存储介质,包括任何能够执行指令的处理电子器件和/或处理电路。例如,非限制地,计算机可读介质可包括任何易失性半导体存储器,诸如RAM、DRAM、SRAM、T-RAM、Z-RAM和TTRAM。计算机可读介质也可包括任何非易失性半导体存储器,诸如ROM、PROM、EPROM、EEPROM、NVRAM、闪存、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道存储器、FJG和Millipede存储器。
此外,计算机可读存储介质可包括任何非半导体存储器,诸如光盘存储装置、磁盘存储装置、磁带、其他磁性存储设备或者能够存储一个或多个指令的任何其他介质。在一个或多个具体实施中,有形计算机可读存储介质可直接耦接到计算设备,而在其他具体实施中,有形计算机可读存储介质可例如经由一个或多个有线连接、一个或多个无线连接、或它们的任意组合而间接地耦接到计算设备。
指令可以是直接能执行的,或者可用于开发可执行指令。例如,指令可被实现为可执行的或不可执行的机器代码,或者可被实现为可被编译以产生可执行的或不可执行的机器代码的高级语言指令。此外,指令也可被实现为数据,或者可包括数据。计算机可执行指令也可以任何格式组织,包括例程、子例程、程序、数据结构、对象、模块、应用、小程序、函数等。如本领域技术人员认识到的那样,包括但不限于指令的数量、结构、序列和组织的细节可明显不同,而不改变底层的逻辑、功能、处理和输出。
虽然以上论述主要涉及执行软件的微处理器或多核处理器,但一个或多个具体实施由一个或多个集成电路诸如ASIC或FPGA执行。在一个或多个具体实施中,此类集成电路执行存储在电路自身上的指令。
本领域的技术人员将会认识到,本文所述的各种例示性的框、模块、元件、部件、方法和算法可被实现为电子硬件、计算机软件或两者的组合。为了说明硬件和软件的这种可互换性,上文已经一般性地按照功能性对各种例示性的框、模块、元件、部件、方法和算法进行了描述。此类功能性是被实现为硬件还是软件取决于具体应用以及对整个系统施加的设计约束。技术人员对于每个具体应用可通过不同方式实现所描述的功能性。各种部件和框可被不同地布置(例如,以不同的顺序排列,或以不同的方式划分),而不脱离本主题技术的范围。
应当理解,本发明所公开的过程中的框的特定顺序或分级结构为示例性方法的例示。基于设计优选要求,应当理解,过程中的框的特定顺序或者分级结构可被重新布置或者所有示出的框都被执行。这些框中的任何框可被同时执行。在一个或多个具体实施中,多任务和并行处理可能是有利的。此外,上述具体实施中各个系统部件的划分不应被理解为在所有具体实施中都要求此类划分,并且应当理解,程序部件和系统可一般性地被一起整合在单个软件产品中或者封装到多个软件产品中。
如本说明书以及本专利申请的任何权利要求中所用,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”及“存储器”均是指电子设备或其他技术设备。这些术语排除人或者人的群组。出于本说明书的目的,术语“显示”或“正在显示”意指在电子设备上显示。
如本文所用,在用术语“和”或“或”分开项目中任何项目的一系列项目之后的短语“中的至少一者”是将列表作为整体进行修饰,而不是修饰列表中的每个成员(即每个项目)。短语“中的至少一者”不要求选择所列出的每个项目中的至少一个;相反,该短语允许包括任何一个项目中的至少一个和/或项目的任何组合中的至少一个和/或每个项目中的至少一个的含义。举例来说,短语“A、B和C中的至少一者”或“A、B或C中的至少一者”各自是指仅A、仅B或仅C;A、B和C的任意组合;和/或A、B和C中的每一个中的至少一个。
谓词字词“被配置为”、“能够操作以”以及“被编程以”并不意味着对某一主题进行任何特定的有形或无形的修改而是旨在可互换使用。在一个或多个具体实施中,被配置为监视和控制操作或部件的处理器也可以是意指处理器被编程以监视和控制操作或者处理器可操作以监视和控制操作。同样,被配置为执行代码的处理器可解释为被编程以执行代码或能够操作以执行代码的处理器。
短语诸如方面、该方面、另一方面、一些方面、一个或多个方面、具体实施、该具体实施、另一具体实施、一些具体实施、一个或多个具体实施、实施方案、该实施方案、另一实施方案、一些实施方案、一个或多个实施方案、配置、该配置、其他配置、一些配置、一种或多种配置、主题技术、公开、本公开、它们的其他变型等等都是为了方便,并不意味着涉及这样的一个或多个短语的公开对于主题技术是必不可少的,也不意味着这种公开适用于主题技术的所有配置。涉及此类一个或多个短语的公开可适用于所有配置或一个或多个配置。涉及此类一个或多个短语的公开可提供一个或多个示例。短语诸如方面或一些方面可指代一个或多个方面,反之亦然,并且这与其他前述短语类似地应用。
字词“示例性”在本文中被用于意指“用作示例、实例或者例示”。在本文中被描述为“示例性的”或作为“示例”的任何实施方案不必被理解为优选于或优于其他具体实施。此外,在术语“包括”、“具有”等在说明书或权利要求中使用的限度内,这样的术语旨在是包含性的,与术语“包括”当在权利要求中被用作过渡字词时“包括”被解释的方式类似。
本领域的普通技术人员已知或稍后悉知的贯穿本公开描述的各个方面的元素的所有结构和功能等同物通过引用明确地并入本文,并且旨在被权利要求书所涵盖。此外,本文所公开的任何内容并非旨在提供给公众,而与该公开是否明确地被陈述在权利要求中无关。不应根据35U.S.C.§112(f)的规定解释任何权利要求要素,除非使用短语“用于……的装置”明确陈述了该要素,或者就方法权利要求而言,使用短语“用于……的步骤”陈述了该要素。
先前的描述被提供以使得本领域的技术人员能够实践本文所述的各个方面。这些方面的各种修改对本领域的技术人员而言是显而易见的,并且本文所限定的通用原则可应用于其他方面。因此,本权利要求书并非旨在受限于本文所示的方面,而是旨在使得全部范围与语言权利要求书一致,其中对奇异值中的元素的引用并非旨在意味着“仅仅一个”,而是指“一个或多个”,除非被具体指出。除非另外特别说明,否则术语“一些”是指一个或多个。男性的代名词(例如,他的)包括女性和中性(例如,她的和它的),并且反之亦然。标题和子标题(如果有的话)仅为了方便起见而使用并且不限制本主题公开。
- 一种具有三重冗余功能的耐高温动态压力传感器
- 一种基于快速随机搜索树的七自由度冗余机械臂动态避障路径规划方法