欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 基于环境数据的设备的动态缓冲区控制独创技术38369字

基于环境数据的设备的动态缓冲区控制

2021-02-15 06:10:29

基于环境数据的设备的动态缓冲区控制

  背景技术

  电子设备对诸如蓝牙的短距离无线连接上的流传输经常有很高的音频时延。例如,根据高级音频分配配置文件(A2DP)通过蓝牙连接从一个设备流传输到另一个设备的音频可能有250ms或以上的时延。这种时延的一个造成原因可能是多个缓冲区队列。例如,操作系统在其蓝牙栈和控制器上可能有多个缓冲区队列,因为不同的应用对时延有不同的要求,并且一般来说,音频质量对时延更重要。音频流水线通常设置为优化音频时断时续而不是时延。另一个可能的造成原因是变化射频(RF)条件。例如,RF条件可以发生巨大的变化,并且在一些情况下,音频是在高抖动(jitter)的情况下接收到的。因此,诸如电话的传送设备)和诸如耳塞的接收设备中的每一个都可能需要预留大的缓冲区,以处置一些最坏情况下的抖动。

  高音频时延会导致音频/视频同步问题,尤其是对于一些实施方式,诸如视频游戏,其中,视频内容可以很高的速率移动,而且音频效果和相关视频内容之间的延迟是很容易检测到的,并且可能会显著降低用户体验的质量。音频时延还可能影响用于流传输视频的音频/视频同步,因为有许多设备不支持延迟报告,该延迟报告调整回放以考虑音频缓冲。

  发明内容

  本公开涉及基于使低时延和高音频质量平衡的机器学习优化来动态调整电子音频配件的缓冲区大小。与电子音频配件无线配对的主机设备可以检测各种环境条件,并且基于这些条件将推荐缓冲区大小传递给电子配件。电子配件根据推荐大小调整其缓冲区,从而在良好的RF条件下实现约100ms或更少的时延。

  本公开的一个方面提供一种短距离无线媒体接收方法,该方法包括:通过电子媒体配件,接收来自主机设备的推荐缓冲区大小;基于推荐缓冲区大小来设置电子媒体配件的缓冲区;通过来自主机设备的短距离无线信号接收媒体;在电子媒体配件的缓冲区中缓冲接收到的媒体;通过电子媒体配件播放接收到的媒体;以及将反馈信息提供到主机设备。该方法可以进一步包括:当一个或多个条件变化时,接收来自主机设备的更新的推荐缓冲区大小,以及基于更新的推荐缓冲区大小来调整电子媒体配件的缓冲区。例如,一个或多个条件可以包括环境条件,诸如位置信息、活动信息或连接性信息。提供反馈信息可以包括将媒体回放质量信息提供到主机设备,其中,媒体回放质量信息包括接收信号强度指示(RSSI)、媒体分组抖动、间隙数目或缓冲区水平度量中的至少一个。接收推荐缓冲区大小可以包括通过蓝牙信道接收通信。

  本公开的另一个方面提供一种短距离无线媒体传输方法,该方法包括:通过计算设备,接收初始环境信息;确定与计算设备无线配对的电子媒体配件的推荐缓冲区大小,其中,推荐缓冲区大小是至少部分地基于初始环境信息;将推荐缓冲区大小传递给电子媒体配件;以及通过短距离无线通信信道将媒体信号提供到电子媒体配件。该方法可以进一步包括:确定一个或多个条件是否已经变化;当一个或多个条件已经变化时,基于变化的条件来确定更新的缓冲区大小;以及将更新的缓冲区大小传递给电子媒体设备。更进一步地,该方法可以包括接收更新的环境信息,其中,确定一个或多个条件是否已经变化包括确定更新的环境信息是否与初始环境信息不同。该方法可以包括接收来自电子媒体配件的反馈信息,其中,确定一个或多个条件是否已经变化是至少部分地基于反馈信息,其中,来自电子媒体配件的反馈信息可以包括媒体回放质量信息。媒体回放质量信息可以包括接收信号强度指示(RSSI)、媒体分组抖动、间隙数目或缓冲区水平度量中的至少一个。确定推荐缓冲区大小可以包括:收集环境信息的训练集,收集来自一个或多个电子媒体设备的反馈信息的训练集,以及生成表格,该表格使环境信息和反馈信息的组合与推荐缓冲区大小相关。

  本公开的又一个方面提供一种辅助设备,该辅助设备包括:无线通信接口,该无线通信接口适用于通过无线连接接收媒体分组;可调整媒体缓冲区,该可调整媒体缓冲区适用于暂时存储接收到的媒体分组;扬声器,该扬声器适用于回放暂时存储在可调整媒体缓冲区中的媒体分组;以及处理器,该处理器与可调整媒体缓冲区通信,该处理器被配置为基于辅助设备周围的条件来设置可调整媒体缓冲区的大小。处理器可以进一步配置为将与可调整媒体缓冲区有关的反馈信息提供到主机设备。反馈信息可以包括接收信号强度指示(RSSI)、媒体分组抖动、媒体间隙数目或缓冲区水平度量中的至少一个。处理器可以进一步被配置为接收来自主机设备的推荐缓冲区大小,以及基于推荐缓冲区大小来调整缓冲区。辅助设备可以进一步包括用于检测诸如位置信息、活动信息或连接性信息的条件的一个或多个传感器。

  附图说明

  图1是根据本公开的方面的示例系统的直观图。

  图2是根据本公开的方面的另一个示例系统的直观图。

  图3是图2的系统的框图。

  图4是根据本公开的方面的过程的流程图。

  图5是根据本公开的方面的示例系统的框图。

  图6是根据本公开的方面的示例辅助设备的框图。

  图7是图示了根据本公开的方面的使用机器学习生成缓冲区大小调整的策略的示例方法的流程图。

  图8是图示了根据本公开的方面的通过主机设备确定缓冲区大小的示例方法的流程图。

  图9是图示了根据本公开的方面的通过辅助设备调整缓冲区大小的示例方法的流程图。

  具体实施方式

  综述

  技术涉及基于环境条件动态调整诸如耳塞、耳机、扬声器、显示器等电子媒体配件的缓冲区大小。诸如移动电话的与配件无线配对的配套设备可以检测各种环境条件,诸如位置、活动、连接性等。基于这些条件,配套设备将推荐缓冲区大小传递给电子配件,该电子配件继而根据推荐大小调整其缓冲区。推荐大小可以使用应用于收集到的数据的机器学习技术来确定。虽然本公开在许多示例中描述了关于音频分组的传输和回放的调整媒体回放设备的缓冲区大小,但是应当理解,这些示例也适用于视频分组或其他类型的分组的传输、缓冲和回放。

  推荐缓冲区大小的确定可以包括训练组件,利用机器学习技术为检测到的环境因素的各种组合中的每一种找到建议缓冲区大小。例如,配套设备上运行的应用可以接收来自电子配件的常规通信。常规通信可以发生在射频通信(RFCOMM)信道、蓝牙低功耗(BLE)信道等上。当A2DP正在进行流传输时,电子配件将诸如接收信号强度指示(RSSI)、音频分组抖动、A2DP流传输期间蓝牙设备具有的音频间隙数目、缓冲区水平度量等的RF相关数据发送到配套设备上的应用。例如,缓冲区水平度量可以包括与配件的缓冲区大小有关的信息,诸如目标缓冲区水平大小、当前缓冲区水平大小、最小缓冲区水平大小。

  应用统计地收集用于训练的接收数据,并且对环境信息记录日志。这种环境信息的示例可以包括位置、活动、RF活动等。位置可以是特定的或分类的。仅以举例的方式,位置可以是特定的餐厅或从分类上来说是餐厅。其他示例包括在车中、在户外等。示例活动可以包括静坐、散步、跑步、开车等。当前RF活动可以识别连接的蓝牙设备、无线网络活动等。

  收集到的数据可以由应用分析,或它可以被上传到诸如分布式网络中的服务器或多个计算设备的另一个计算设备进行分析。在分析过程中,生成表格,该表格包含环境信息的各种组合和为环境因素的每种组合推荐的对应缓冲区大小的映射。

  向运行中的电子配件推荐建议缓冲区大小可以包括执行组件,该执行组件利用在训练阶段确定的缓冲区大小。例如,当A2DP开始时,应用可以基于检测到的环境信息和在训练阶段生成的表格,将推荐缓冲区大小发送到电子配件。

  电子配件可以继续向配套设备报告媒体质量信息。进一步地,配套设备可以继续检测其他环境信息,诸如活动、位置、连接的设备等。因此,当环境变化时,应用可以更新推荐缓冲区大小。例如,如果环境变得更糟,诸如,如果RF条件恶化或电子配件遇到超过阈值的音频时断时续,则应用可以推荐增加的缓冲区大小。电子配件通过例如使用采样率调整(SRA)缓慢注入音频样本,来增加其缓冲区大小。作为另一个示例,环境条件可以得到改进,使得电子配件可以利用减小的缓冲区大小有效地操作。例如,如果RSSI得到改进,抖动减少等,则可以减小缓冲区大小来减小时延。在这方面,SRA可以用于缓慢去除音频样本,以减少缓冲区。

  在一些示例中,电子配件可以在没有接收到来自配套设备的推荐的情况下调整其缓冲区大小。例如,配件可以检测条件的变化。仅以举例的方式,这种变化可以基于音频时断时续来确定。当检测到这种变化时,电子配件可以自动调整其缓冲区大小以适应更新的条件。

  通过动态调整缓冲区大小,电子配件能够提供时延量最低的高质量音频或视频信号。对于诸如视频流传输和游戏等应用,这会提供增强的用户体验,因为用户通过电子配件听到的音频将与用户通过配套设备看到的视频紧密匹配。

  示例系统

  图1是使用中的示例系统的直观图。用户101手持移动计算设备170并且佩戴辅助设备180。移动计算设备170检测周围的条件,诸如来自其他设备122的信号、位置124、活动126、其他短距离无线通信128等。基于这些检测到的条件,移动设备170确定辅助设备180的推荐缓冲区大小,并且将推荐缓冲区大小传递给辅助设备180。辅助设备180基于推荐调整其缓冲区大小。辅助设备180在通过短距离无线连接接收来自移动计算设备170的媒体信息时,可以继续调整其缓冲区大小。例如,辅助设备180可以响应于诸如媒体回放质量的其检测到的条件来自动调整。在其他示例中,辅助设备180可以响应于接收到来自移动计算设备170的更新推荐进行调整。

  在所示的示例中,辅助设备180是无线耳塞对。然而,应当理解,辅助设备180可以是多种不同类型的音频设备、视频设备或其他无线媒体回放设备中的任何一种。例如,辅助设备180可以是完全无线的耳塞对、耳机、头戴式显示器、无线扬声器等。

  例如,移动计算设备170可以是移动电话、平板计算机、膝上型计算机、游戏系统或任何其他类型的移动计算设备。在一些示例中,移动计算设备170可以耦合到网络,诸如蜂窝网络、无线互联网网络等。移动计算设备170可以存储用于确定推荐缓冲区大小的机器学习策略。例如,移动计算设备170可以存储使不同的条件的组合与特定缓冲区大小相关的一个或多个表格或其他数据结构。这些表格或数据结构可以通过机器学习过程生成。根据其他示例,移动计算设备170可以从远程源访问这些机器学习策略。

  来自其他设备122的信号可以包括来自可由移动设备170检测的多种类型的设备中的任何一种的信号。例如,这些设备可以包括访问点、其他移动设备、射频标识(RFID)标签或扫描仪、无线路由器等。除了检测设备,诸如通过接收信号中的地址信息,移动计算设备170还可以检测接收信号强度,该接收信号强度提供设备关于移动计算设备170的位置的指示。

  位置信息124可以其他方式检测,除了来自其他设备的接收信号或替代该接收信号。例如,位置可以基于全球定位卫星(GPS)、对在该位置捕获的文本的辨识、对在该位置捕获的图像中的其他对象的辨识、传感器数据等来检测。检测到的位置124可以是分类信息,诸如在餐厅、在户外、在户内、在办公大楼等。在其他示例中,检测位置123可以更具体,诸如通过指定城市、地理坐标或地理位置的其他指示。为了保护用户隐私,除了用户自己的移动计算设备170之外,不需要向任何实体报告这种位置信息。如果用户授权位置信息到其他实体的传输,诸如到用于机器学习计算的服务器的传输,则实施用户隐私的附加保护,诸如匿名化、聚合等。

  活动126可以基于来自移动计算设备170的一个或多个传感器的信息来确定。例如,活动可以基于指示设备170正以特定的速度速率移动的加速度计数据来确定。这种加速度计数据可以与慢跑、骑自行车、乘坐汽车、乘坐火车等对应。根据一些示例,不同类型的传感器数据的组合可能有助于确定活动。例如,横向速度、振动、位置和/或在移动计算设备170上运行的应用可以指示用户正在慢跑。

  其他短距离无线连接128可以识别与诸如智能手表、专业控制器或任何其他设备的移动设备170的其他连接。虽然提供了条件的几个示例,但是应当理解,这些只是示例,并且有许多其他条件可以被检测到并且用于确定缓冲区大小。

  虽然图1中未示出,但是辅助设备180也可以将反馈提供到移动计算设备170,用于确定推荐缓冲区大小。例如,这种反馈可以包括关于媒体回放质量的信息,诸如抖动、时断时续、延迟等。这种反馈可以可替代地或附加地包括其他缓冲区度量,诸如当前缓冲区大小、目标缓冲区大小等。移动设备170可以继续检测包括反馈在内的条件,并且基于检测到的条件提供更新的缓冲区大小推荐。更新的推荐可以连续地、定期地或响应于诸如条件的变化的预定事件而提供。

  在其他示例中,辅助设备180还可以检测条件,并且可以响应于这些条件更新其缓冲区大小,需要或者无需来自移动设备170的推荐。例如,辅助设备180可以检测大量音频时断时续或低回放音频质量的其他指示,并且自动增加缓冲区大小。

  图2至图3图示了示例系统200,该系统包括通信耦合到电子配件的主机设备270,诸如移动计算设备。在该示例中,电子配件是完全无线的耳塞对,包括主耳塞282和从耳塞284。主机设备270通过无线通信链路252直接耦合到主耳塞282,而主耳塞282进一步通过无线通信链路254通信耦合到从耳塞284。例如,设备之间的链路252、254可以是短距离无线配对链路,诸如蓝牙、近场磁感应通信(NFMI)等。例如,链路252、254可以是异步无连接链路(ACL)。

  主耳塞282和从耳塞284各自都可以存储信息,诸如无线通信协议配置文件。这些配置文件的示例可以包括音频/视频远程控制配置文件(AVRCP)、免提配置文件(HFP)、高级音频分配配置文件(A2DP)、属性配置文件(ATT)、设备ID配置文件(DIP)、接近配置文件(PXP)、同步配置文件(SYNCH)、射频通信(RFCOMM)、蓝牙低功耗(BLE)等。配置文件可以指示耳塞282、284如何操作。例如,配置文件可能包含关于对其他格式的依赖性的信息、建议的用户界面格式、配置文件所使用的协议栈的部分等。在一些示例中,配置文件可以确定主耳塞282如何与主机设备270通信。例如,配置文件可以定义音频是如何从主机设备270流传输到主设备282和/或从主设备282流传输到从设备284的。

  耳塞282、284可以进一步包括音频缓冲区,该音频缓冲区用于在通过耳塞282、284进行回放之前暂时存储从主机设备270接收到的音频信息。音频缓冲区是可调整的,因为耳塞282、284可以调整回放之前缓冲的数据量。例如,缓冲区大小可以通过使用采样率调整(SRA)缓慢注入音频样本来增加或通过使用SRA缓慢去除音频样本来减小。增加音频缓冲区可以改进回放质量,而减少缓冲区可以减小时延。

  取决于所使用的主设备和从设备的类型以及功能性的类型,其他类型的缓冲区可以可替代地或附加地存在。例如,诸如显示器的其他媒体回放设备可以包括视频缓冲区,该视频缓冲区用于暂时存储通过无线连接从主机接收到的视频分组,其中,视频缓冲区是可调整的。根据一些示例,耳塞282、284还可以存储机器学习策略,这些机器学习策略指示应当如何在特定条件下调整缓冲区。

  虽然在该示例中主机设备270被示出为移动电话,但是应当理解,主机设备可以是适用于传送诸如音频或视频信号等的媒体信号的各种类型的设备中的任何一种。例如,主机设备可以是平板计算机、智能手表、游戏系统、音乐播放器、膝上型计算机、个人数字助理设备或任何其他计算设备。相似地,第一配件和第二配件虽然在这里被示出为耳塞282、284,但是在其他示例中可以是扬声器或其他音频设备、视频输出显示器等的任何组合。第一配件和第二配件可以在制造期间配对,或可以单独出售并且以后由用户配对。

  图4是图示了使条件的各种组合与推荐缓冲区大小相关的机器学习策略的生成的示例流程。移动设备370所聚集的各种数据在用户许可下被传送到数据库340。数据库340可以在长期的时间段内从各种源收集数据。

  存储在数据库340中的数据的全部或部分可以作为训练数据被机器学习系统320用来识别在特定条件下提供最佳性能的缓冲区大小。对于条件的多种可能的组合中的每一种,可以识别对应的缓冲区大小。对应的缓冲区大小可以用机器学习策略来识别,所述机器学习策略诸如规则集、表格或在媒体回放操作之前和/或期间可以由移动设备370访问的一些其他结构。例如,策略可以下载并且存储在移动设备370上。在其他示例中,策略可以远程存储,诸如在服务器上,并且在需要时由移动设备370访问。

  图5是包括与辅助设备580通信的主机设备570的系统的框图,图示了主机设备570的内部组件。在图6中图示了辅助设备580的内部组件。虽然示出了多个这种内部组件,但是应当理解,这些组件仅仅是非限制性示例,并且其他组件可以被附加地或可替代地包括。

  主机设备570包括处理器562、包括数据563和指令564的存储器以及一个或多个传感器567。一个或多个处理器562可以是任何传统处理器,诸如商用微处理器。可替代地,一个或多个处理器可以是专用设备,诸如专用集成电路(ASIC)或其他基于硬件的处理器。虽然图5将主机570的处理器、存储器和其他元件功能地图示为在相同的框中,但是本领域的技术人员将理解,处理器、计算设备或存储器实际上可以包括可以或不可以存储在相同的物理壳体中的多个处理器、计算设备或存储器。相似地,存储器可以是位于与主机570的壳体不同的壳体中的硬盘驱动器或其他存储介质。因此,对处理器或计算设备的参考将被理解为包括对可以或不可以并行操作的处理器或计算设备或存储器的集合的参考。

  存储器可以存储可由处理器562访问的信息,包括可以由处理器562执行的指令564和数据563。存储器可以是操作以存储可由处理器562访问的信息的一种类型的存储器(包括非暂时性计算机可读介质)或存储可以借助于电子设备读取的数据的其他介质,诸如硬盘驱动器、内存卡、只读存储器(“ROM”)、随机存取存储器(“RAM”)、光盘以及其他可写和只读存储器。本文所公开的主题可以包括上述项的不同组合,因此指令564和数据563的不同部分存储在不同类型的介质中。

  数据563可以由处理器562根据指令564检索、存储或修改。例如,虽然本公开不被特定数据结构限制,但是数据563可以在计算机寄存器中,在关系数据库中作为具有多个不同字段和记录的表格、XML文档或平面文件存储。数据563还可以被格式化为计算机可读的格式,诸如但不限于二进制值、ASCII或统一码。仅通过进一步的示例,数据563可以存储为包括像素的位图,所述位图以压缩或未压缩或各种图形格式(例如JPEG)、基于矢量的格式(例如SVG)或用于绘制图形的计算机指令来存储。此外,数据563可以包括足以识别相关信息的信息,诸如数字、描述性文本、专有代码、指针、对存储在其他存储器(包括其他网络位置)中的数据的引用或被函数用来计算相关数据的信息。根据一些示例,数据563可以存储用于识别与特定条件集相对应的推荐缓冲区大小的机器学习策略。

  使用一个或多个传感器567,可以执行指令564以检测条件,诸如环境条件。条件可以进一步包括由辅助设备480传递和例如通过I/O接口569接收的回放质量条件。可以进一步提供指令564,以基于检测到的条件确定推荐缓冲区大小,并且将推荐缓冲区大小传递给辅助设备480。

  例如但不限于,传感器567可以包括陀螺仪、加速度计、磁强计、GPS、相机、麦克风、光传感器、运动传感器等。这些传感器可以用于检测各种不同的条件,诸如移动、天气条件、声音、附近对象、电磁场等。在一些示例中,传感器567可以辨识与条件有关的详细信息。例如,陀螺仪和加速度计不仅可以检测设备560是否正在移动,而且可以确定移动是线性的还是旋转的、移动的方向、移动的速度等。来自不同类型的传感器567的信息还可以用于确定条件或活动。例如,来自光传感器的低读数与来自气压计的高压力读数结合在一起可以指示下雨。作为另一个示例,特定速度和振动水平可以指示设备560正在骑自行车行进,而接收到的声音指示设备560在城市里。

  设备560进一步包括输入/输出(I/O)接口569。I/O接口569可以使用模拟或数字调制在计算设备560与其他设备或网络之间提供通信。I/O接口569可能促进电路交换通信和/或分组交换通信。例如,I/O接口569可以包括设置为与无线接入网络或访问点进行无线通信的芯片组和天线。I/O接口569可以包括有线接口,诸如以太网、通用串行总线(USB)或高清多媒体接口(HDMI)端口。I/O接口569还可以包括无线接口,诸如Wi-Fi或广域无线接口(例如WiMAX或3GPP长期演进(LTE))。还可以使用其他形式的物理层接口和其他类型的通信协议。此外,I/O接口569可以包括多个物理通信接口(例如Wifi接口、短距离无线接口和广域无线接口),并且可以实现多个不同类型的同时连接。

  I/O接口569可以用于与一个或多个其他计算设备建立连接。例如,I/O接口569可以用于与访问点(诸如蜂窝访问点220、Wi-Fi访问点225或设备560可以与其建立连接的任何其他类型的访问点)建立连接。I/O接口可以进一步与一个或多个其他移动计算设备232、234建立连接。I/O接口569可以进一步用于检测信标或射频标识(RFID)标签,这些标签可能因为各种原因而被放置在多个位置中的任何一个位置。例如,这些信标或RFID标签可以放置在商店中以确定潜在客户的数目,也可以放置在广告空间中以确定广告的观看者的数目等。

  I/O接口569可以用于确定连接性信息,该连接性信息可以进一步用于确定与设备560相关联的条件或活动。例如,设备560附近移动的一些其他计算设备可以表明设备560在公共火车或繁忙的人行道上。当与其他传感器信息(诸如噪音水平、振动、速度等)相结合时,可以做出更精确地确定。作为另一个示例,在附近检测到的一些其他计算设备,但是GPS信号微弱,可能表明设备560在户内。在进一步的示例中,对特定访问点(诸如MAC地址)的标识可以提供位置信息或表明特定活动,诸如在与访问点的MAC地址相关联的健身俱乐部锻炼。

  虽然有各种类型的检测信息如何可以单独使用或组合使用以确定设备560周围的条件或活动的几个示例,但是应当理解,任何数目的各种活动或条件可以使用各种输入来确定。还应当理解,设备570可以包括未示出的其他组件,诸如电池的充电输入、信号处理组件等。这些组件也可以用于执行指令564。

  图6中进一步详细地图示了辅助设备580。诸如耳塞的辅助设备580还可以包括一个或多个处理器581、包括指令583和数据584的存储器582以及无线通信接口589。在一些示例中,辅助设备580包括一个或多个传感器587。辅助设备580可以进一步包括通常出现在耳塞和其他电子配件中的其他组件,诸如输出586和电池588。在耳塞的示例中,输出596可以是扬声器、尽管在其他辅助设备中,输出可以包括其他组件,诸如显示器等。虽然示出了辅助设备580的几个组件,但是应当理解,设备可以包括通常设置在辅助设备中的任何数目的附加组件。

  处理器581和存储器582可以是各种不同类型中的任何一种,类似于上面结合主机设备570讨论的类型。例如,存储器582可以是能够存储可由处理器访问的信息的任何类型,包括计算设备可读的介质或存储可以借助于电子设备读取的数据的其他介质,诸如易失性存储器、非易失性存储器以及其他可写和只读存储器。仅以举例的方式,存储器420可以是配置为提供快速查找的静态随机存取存储器(SRAM)。系统和方法可以包括上述项的不同组合,因此指令和数据的不同部分存储在不同类型的介质中。

  存储器582可以进一步包括缓冲区,诸如音频缓冲区,诸如在数据584中。在一些示例中,存储器582可以进一步包括短距离无线通信配置文件,诸如蓝牙配置文件。

  指令583可以是由一个或多个处理器581直接执行(诸如机器代码)或间接执行(诸如脚本)的任何指令集。例如,指令可以作为计算设备代码存储在计算设备可读的介质上。在这一点上,术语“指令”和“程序”在这里可以互换使用。指令可以按照目标代码格式存储以供处理器直接处理,或可以用任何其他计算设备语言存储,该计算设备语言包括脚本或按照需要解释或预先编译的独立源代码模块的集合。

  指令583可以执行以调整缓冲区。例如,辅助设备580可以接收来自主机设备570的推荐缓冲区大小,并且相应地设置缓冲区。辅助设备580通过无线连接(诸如通过接口589配对的短距离无线)接收来自主机设备570的音频。辅助设备580使用设置的缓冲区大小来缓冲接收到的音频,并且通过输出586输出接收到的音频。指令583可以进一步执行以检测条件。例如,检测条件可以包括检测回放质量的指示符,诸如时断时续等。在一些示例中,检测条件可以包括使用传感器587检测环境条件,诸如检测其他设备的存在。检测条件可以可替代地或附加地包括检测来自主机设备570的关于缓冲区大小的更新建议的接收。辅助设备580可以响应于检测到的条件调整其缓冲区大小。

  一个或多个处理器581可以是微处理器、硬连接到设备580本身的逻辑电路系统(例如逻辑门、触发器等),或可以是专用集成电路(ASIC)。应当理解,一个或多个处理器430并不限于硬连接的逻辑电路系统,但是还可以包括任何商用处理单元或任何基于硬件的处理器,诸如现场可编程门阵列(FPGA)。在一些示例中,一个或多个处理器581可以包括状态机。处理器581可以配置为执行指令583。

  一个或多个传感器587可以包括用于检测与调整缓冲区大小相关的条件的各种机械或机电传感器中的任何一种。例如,这些传感器可以包括加速度计、陀螺仪、光传感器、气压计、音频传感器(例如麦克风)、振动传感器、热传感器、射频(RF)传感器等。作为另一个示例,传感器可以检测其他参数,诸如电池寿命、信号质量、移动等。在这一点上,设备580可以检测指示设备应当调整其缓冲区大小以改进回放质量和/或电池寿命或其他参数的条件。

  短距离无线配对接口589可以用于与其他设备(诸如主机设备,诸如提供媒体分组的移动电话)形成连接。例如,连接可以是蓝牙连接或任何其他类型的无线配对。仅以举例的方式,连接可以包括ACL链路。

  示例方法

  除了上面描述的和图中所示的操作,现在将描述各种操作。应当理解,以下操作不一定按照下述精确顺序执行。更确切地说,各种步骤可以按照不同的顺序或同时处置,并且步骤还可以添加或省略。

  图7是图示了根据本公开的方面的使用机器学习生成缓冲区大小调整的策略的示例方法700的流程图。方法可以在例如主机计算设备(诸如图1的移动计算设备170)或任何其他有线或无线计算设备上执行。在其他示例中,方法可以由与适用于从多个移动计算设备收集信息的远程服务器通信的主机计算设备执行。

  在框710中,主机计算设备通过无线连接(诸如短距离无线连接)将媒体提供到电子配件。例如,配件可以是音频或视频输出配件,诸如耳塞、无线扬声器、头戴式显示器等。

  在框720中,主机计算设备接收环境信息,诸如通过一个或多个传感器。例如,主机计算设备可以接收关于附近设备的信息,诸如信号强度、地址等。作为另一个示例,主机计算设备可以接收信息,诸如运动信息、位置信息、光/噪音水平等。基于这种信息,主机计算设备可以推断出进一步的信息,诸如由主机设备的用户执行的活动。

  在框730中,主机设备可以接收来自电子配件的关于媒体质量和/或缓冲区度量的信息。例如,主机设备可以从配件接收关于配件的缓冲区大小的信息,诸如目标缓冲区水平大小、当前缓冲区水平大小、最小缓冲区水平大小。主机设备可以进一步从配件接收关于媒体回放的反馈,包括抖动、时断时续、间隙等。

  在框740中,可以基于这种接收到的信息确定推荐缓冲区大小。例如,远程服务器可以从多个主机计算设备收集这种信息,并且分析这种信息以检测所检测到的条件的不同组合与用于回放满足阈值质量水平的媒体的最小缓冲区大小之间的相关性。因此,可以基于分析生成使条件与缓冲区大小相关的图表、表格或其他策略。根据其他示例,可以对主机设备执行分析,诸如通过使用较小的训练数据集。所生成的策略可以用于将媒体供应到电子配件并且将关于缓冲区大小的建议提供到配件以用于回放媒体的未来迭代中。

  图8是图示了根据本公开的方面的通过主机设备确定缓冲区大小的示例方法800的流程图。在框810中,主机设备接收环境信息,诸如通过一个或多个传感器。在框820中,主机设备基于接收到的环境信息和机器学习策略(诸如在图7的框740中生成的策略)来确定电子配件的推荐缓冲区大小。

  在框830中,主机设备将推荐缓冲区大小传递给电子配件。例如,主机设备可以通过蓝牙连接或主机设备与配件之间的其他无线连接传送信息。

  在框840中,主机通过无线连接将媒体提供到配件。在框850中,主机接收来自配件的反馈,诸如关于回放质量、时延、缓冲区大小等的信息。

  在框860中,主机设备确定条件是否已经变化。这可以包括环境条件的变化、媒体回放质量的变化或其他变化。它还可以包括改进或恶化。例如,主机设备可以检测到,RF条件因为干扰和用户的位置或活动的变化而恶化,或配件遇到超过阈值的音频时断时续。作为另一个示例,主机设备可以检测到,RF条件因为改进的RSSI、减小的抖动等而改进。如果没有变化,则在框840中,主机可以继续将媒体发送到配件。

  当在框860中检测到条件的变化时,在框870中,可以基于变化的条件来确定更新的缓冲区大小。例如,对于恶化的RF条件,可以推荐增加的缓冲区大小,而对于改进的RF条件,可以推荐减小的缓冲区大小。在框880中,将更新的缓冲区大小传递给配件,并且配件可以相应地调整其缓冲区。

  图9是图示了通过诸如电子配件的辅助设备调整缓冲区大小以播放媒体的示例方法900的流程图。

  在框910中,辅助设备接收来自主机设备的推荐缓冲区大小,并且在框920中,相应地设置其缓冲区。例如,辅助设备可以定义在回放开始前有多少数据将存储在其缓冲区中。

  在框930中,辅助设备通过无线连接接收来自主机设备的媒体。在框940中,辅助设备使用推荐缓冲区大小来缓冲接收到的媒体,并且在框950中回放媒体。

  在框960中,辅助设备将反馈信息提供给主机设备。反馈信息可以与媒体回放的质量有关。在一些示例中,反馈信息可以包括缓冲区度量,诸如当前缓冲区大小、最大或最小缓冲区大小、目标缓冲区大小等。

  在框970中,辅助设备接收来自主机设备的更新的推荐缓冲区大小,诸如如果条件变化。在980中,辅助设备可以相应地调整其缓冲区大小。例如,当RF条件恶化时,辅助设备将动态增加缓冲区以容忍更多的抖动。这可以例如使用SRA缓慢注入音频样本以增加缓冲区来完成。在RF条件改进的示例中,辅助设备可以将缓冲区减少到推荐缓冲区大小,以减少时延。这可以通过使用SRA缓慢去除音频样本来完成。

  在一些示例中,独立于从主机设备接收到的任何推荐,辅助设备可以自动调整其缓冲区大小。例如,辅助设备可以检测条件的变化并且相应地动态增加或减少其缓冲区,而不等待来自主机的命令。

  虽然上述示例中的一些涉及通过无线连接传送音频和调整音频缓冲区,但是系统和方法可以相似地应用于其他类型的媒体(诸如视频数据或其他数据)的传输和缓冲。

  上述技术的优势在于,它们提供动态和连续地优化通过无线连接传送的数据的缓冲区大小,从而可以实现和平衡目标质量和时延水平。例如,机器学习可以识别在阈值时延下的最高的可能音频质量。在其他示例中,机器学习可以识别在阈值质量水平下的最低的可能时延。在进一步的示例中,机器学习可以识别提供音频质量和时延的目标范围的缓冲区大小。当条件变化时,可以动态调整缓冲区以适应变化。这会提供改进的音频质量、增加的电池寿命、增强的用户体验和其他好处。在一些示例中,时延可以是约100ms或更少。这些好处在某些用途中可能特别明显,诸如当用户在通过辅助设备收听伴随的音频的同时正在观看主机设备的屏幕上回放的视频时。通过在保持音频质量的同时减少时延,音频将与伴随的视频更紧密匹配。

  除非另有说明,否则上述替代示例并不是相互排斥的,而是可以按照各种组合实施以实现独特的优势。因为在不脱离权利要求书所定义的主题的情况下可以利用上述特征的这些和其他变型以及组合,所以应当以说明权利要求书所定义的主题的方式而不是以限制该主题的方式来进行实施例的上述描述。另外,本文所描述的示例的提供以及表示为“诸如”、“包括”等的字句不应被解释为将权利要求书的主题限于具体示例;更确切地说,示例仅仅旨在说明许多可能的实施例中的一个。进一步地,不同附图中相同的附图标记可以识别相同的或相似的元件。

《基于环境数据的设备的动态缓冲区控制.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)