用于在对回放用户体验有最小影响的情况下减少对多媒体流送数据的预获取的方法与流程

文档序号:12290306阅读:194来源:国知局
用于在对回放用户体验有最小影响的情况下减少对多媒体流送数据的预获取的方法与流程

人们越来越多地在其移动设备上观看视频和电影。因此,移动运营商在满足对其网络支持主要由智能电话用户的音频和视频流送及消耗贡献的话务量增加呈指数级增长的需求方面受到挑战。对用户在移动设备上观看视频时的使用模式的新近统计表明,大多数用户在视频结束之前就中止视频的回放。由应用使用的当前媒体预获取器(诸如由应用(包括和)使用的平台的预获取器)使用所有可用带宽来下载多媒体流并且通常过量预获取用户很可能不会播放的数据。这种对数据的过量预获取的常用解决方案是所谓的服务器侧“步进(pacing)”技术,其根据从服务器侧所监视到的网络状况对流送进行扼流。这些服务器侧解决方案可能实现起来是复杂的,并且可能要求昂贵的服务器侧网络监视系统。

概述

各个实施例的系统、方法和设备使得接收机设备能够基于与所选媒体实例相关联的数据来确定高速缓存的高水标余量和低水标余量并且至少部分地基于所确定的高水标余量和低水标余量来控制该媒体实例的诸部分的下载。在一实施例中,高水标余量和低水标余量可基于媒体实例的回放速率并且分别基于高水标余量时间值和低水标余量时间值来确定。在一实施例中,高水标余量时间值和/或低水标余量时间值可基于使用统计(诸如中止模式)。在一实施例中,低水标余量可基于媒体实例的经缓冲部分的变化率来确定,并且高水标余量可基于所确定的低水标余量和回放速率来确定。在一实施例中,高水标余量和/或低水标余量还可至少部分地基于中止模式系数。中止模式系数可基于使用统计并且可在接收机设备处确定和/或接收自服务器。

附图简述

纳入本文且构成本说明书一部分的附图解说了本发明的示例性实施例,并与以上给出的概括描述和下面给出的详细描述一起用来解释本发明的特征。

图1是适用于各个实施例的网络的通信系统框图。

图2解说了适用于各个实施例的接收机设备的示例系统架构。

图3是解说根据一实施例的媒体实例、接收机设备的高速缓存、高水标余量、和低水标余量之间的交互的媒体实例的框图。

图4是解说用于在接收机设备上预获取媒体的实施例方法的过程流图。

图5是解说用于至少部分地基于所确定的高水标余量和所确定的低水标余量来控制媒体实例的诸部分至高速缓存的下载的实施例方法的过程流图。

图6是解说用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的实施例方法的过程流图。

图7是解说用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的另一实施例方法的过程流图。

图8是解说用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的第三实施例方法的过程流图。

图9是解说用于基于使用统计来生成中止模式系数和/或高水标余量和低水标余量的实施例方法的过程流图。

图10是适用于各个实施例的示例接收机设备的组件示图。

图11是适用于各个实施例的示例服务器的组件示图。

详细描述

将参照附图详细描述各实施例。在可能之处,相同附图标记将贯穿附图用于指代相同或类似部分。对特定示例和实现所作的引用是用于解说性目的,而无意限定本发明或权利要求的范围。

措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何实现不必然被解释为优于或胜过其他实现。

如本文中所使用的,术语“接收机设备”用于指代以下任一者或全部:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(“PDA”)、个人计算机、膝上型计算机、平板计算机、智能本、掌上计算机、无线电子邮件接收器、启用因特网的多媒体蜂窝电话、无线游戏控制器、个人计算机、电视机顶盒、电视、有线电视接收机、以及包括可编程处理器和存储器以及用于执行本文所描述的操作(诸如预获取媒体)的电路系统的类似个人电子设备。

术语“服务器”在本文中用于指代能够用作服务器(诸如主交换服务器、web服务器、邮件服务器、文档服务器、内容服务器、或任何其他类型的服务器)的任何计算设备。服务器可以是专用计算设备或包括服务器模块(诸如可导致计算设备作为服务器来操作的应用)的计算设备。服务器模块(例如,服务器应用)可以是全功能服务器模块、或被配置成在移动设备上提供动态数据库间的同步服务的轻量级或副服务器模块(例如,轻量级或副服务器应用)。轻量级服务器或副服务器可以是服务器型功能性的精简版,其可以在移动设备上实现由此使得移动设备能够仅在用于提供本文描述的功能性所必需的程度上用作因特网服务器(例如,企业电子邮件服务器)。

如本文所使用的,术语“媒体实例”用于指代可在接收机设备上回放的任何类型的媒体数据,诸如视频流送数据、音频流送数据、多媒体流送数据等。媒体实例可包括可被下载至接收机设备并由在该接收机设备的处理器上运行的应用或客户端(诸如视频播放器(例如,)、音乐播放器(例如,)、web浏览器等)回放的数据部分。构成媒体实例的这些数据部分可由预获取模块(诸如平台中使用的StageFright)下载至高速缓存,并且可供由客户端或应用进行回放。虽然各个实施例和示例在本文中是参照StageFright和平台、以及诸如或之类的应用或客户端来讨论的,但是对StageFright、平台、和的讨论仅仅用作示例以更好地解说各个实施例的诸方面,而不旨在限制权利要求的范围。其他预获取器、其他平台(诸如平台)、以及其他应用或客户端可在各个示例和实施例中被替换而不会脱离本发明的精神或范围。

各个实施例的系统、方法和设备使得接收机设备能够基于与所选媒体实例相关联的数据来确定高速缓存的高水标余量和低水标余量,并且至少部分地基于所确定的高水标余量和低水标余量来控制媒体实例的诸部分的下载。各个实施例可提供使得预获取缓冲算法能够根据接收机设备处的流回放特性和所监视到的网络状况来被改变以阻止对媒体实例的诸部分的下载超过高水标余量和/或低于低水标余量的设备侧解决方案。通过动态地配置高水标余量和/或低水标余量,各个实施例可确保高速缓存中剩余数据的大小被维持在高水标余量与低水标余量之间,同时维持来自高速缓存的媒体实例的连续回放。各个实施例可提供接收机设备实现的对数据的过量预获取的解决方案,这些解决方案比服务器实现的根据从服务器侧监视到的网络状况对流送进行扼流的技术更易于集成并且成本更低。各个实施例可使高水标余量的大小与高速缓存的最大大小解除链接并且可减少每次预获取的数据量,由此使得在用户在媒体实例结束之前中止该媒体实例的回放时可能消耗的下载带宽量最小化。

在各个实施例中,媒体实例的诸部分至高速缓存的下载状态可由两个限值——低水标余量和高水标余量——来控制。在各个实施例中,高水标余量可以是表示与高速缓存末尾的大小偏移(例如,诸如字节偏移)的值,其可小于最大高速缓存大小。以此方式,高水标余量可表示在高速缓存中所存储的最后一个存取点前方的媒体实例的经缓冲部分的最大量的目标。当最后一个存取点与高速缓存末尾之间的余量(例如,经缓冲部分的大小)达到高水标余量时,可暂停下载媒体实例(例如,通过停止对未下载部分的下一部分的下载)。在各个实施例中,低水标余量可以是表示与高速缓存末尾的大小偏移(例如,诸如字节偏移)的值,其可小于高水标余量。以此方式,低水标余量可表示在最后一个存取点前方的媒体实例的经缓冲部分的最小量的目标。当最后一个存取点与高速缓存末尾之间的余量(例如,经缓冲部分的大小)达到低水标余量时,可开始(或重新开始)下载媒体实例(例如,通过请求媒体实例的未下载部分的下一部分)。

在一实施例中,高水标余量和低水标余量可基于媒体实例的回放速率并且分别基于高水标余量时间值和低水标余量时间值来确定。媒体实例的回放速率可基于与该媒体实例相关联的数据来确定。例如,使用如媒体实例的报头信息中指示的媒体实例的大小和历时,回放速率可被确定为媒体实例的大小除以媒体实例的历时。在一实施例中,高水标余量时间值和/或低水标余量时间值可与媒体实例的回放速率协同使用以分别确定高水标余量和/或低水标余量。高水标余量时间值可以是被选择成计及媒体播放器的用于恢复回放的时间设定的时间值并且可被存储在接收机设备的存储器中。例如,高水标余量时间值可以是10秒。

在一实施例中,高水标余量可通过将高水标余量时间值乘以所确定的媒体实例的回放速率来确定。低水标余量时间值可以是被选择成计及媒体播放器的用于暂停回放的时间设定的时间值并且可被存储在接收机设备的存储器中。例如,低水标余量时间值可以是2秒。在一实施例中,低水标余量可通过将低水标余量时间值乘以所确定的媒体实例的回放速率来确定。替换地,高水标余量时间值和/或低水标余量时间值可在媒体实例的报头信息中指示。

在一实施例中,可在媒体实例被首次选择和/或处于初始回放时使用高水标余量和/或低水标余量的初始默认值,并且一旦回放速率被确定,就可基于所确定的回放速率来确定因媒体实例而异的新的高水标余量和/或低水标余量并且替代高水标余量和/或低水标余量的初始默认值。

在各个实施例中,可跟踪在回放媒体实例时的接收机设备行为(乃至用户行为)。例如,可通过关闭正在播放媒体实例的媒体播放器应用或客户端、通过媒体播放器应用或客户端挂起回放达阈值时间段(例如,响应于停止回放的用户命令)、或者通过选择新媒体实例以供应用或客户端进行回放来中止媒体实例。由此,处理器或服务器可通过在回放媒体实例期间检测到或识别出这些事件中的任一者来确定特定媒体实例的回放已被中止。在一实施例中,此行为(例如,回放中止)可由执行操作以检测此类事件或指示媒体实例的回放已被中止的其他事件或操作的接收机设备的处理器来跟踪。在另一实施例中,服务器可通过在完整媒体文件已被递送之前识别并记录对媒体实例的诸部分的请求何时停止来识别(并由此跟踪)回放中止行为。服务器可在自最后一次下载请求起的时间超过阈值(例如,预定时间或所请求的最后一次下载的回放时间)时、在从接收机设备接收到通知服务器应当停止下载或回放已被挂起的信号时、和/或在完整媒体文件已被递送之前从接收机设备接收到对不同媒体实例的下载请求时识别出对媒体实例的诸部分的请求已停止。

可确定与所确定的接收机设备行为相关联的关于媒体实例回放的参数,诸如指示从初始回放起媒体实例被中止的时间的中止参数。在一实施例中,该参数(例如,中止参数)可在接收机设备处确定。在另一实施例中,该参数(例如,中止参数)可在服务器处基于接收自一个或多个接收机设备的对所确定的接收机设备行为的指示来确定。所确定的参数可被用于更新与接收机设备和/或媒体实例相关联的使用统计,诸如指示回放被中止的平均时间的中止模式。

使用统计(例如,中止模式)可因媒体实例而异(诸如在特定媒体实例的回放期间发生中止的平均时间)。因媒体实例而异的使用统计还可反映其他中止模式细节,诸如在一天中的不同时间(例如,早晨、中午和晚上)的平均中止时间、在不同地理区域或位置的平均中止时间、以及针对不同人口统计类别(如果知道)(例如,男性相对于女性、年龄段等)的平均中止时间。因媒体实例而异的使用统计还可反映在一段时间回放之后发生中止的可能性和定时。例如,观众可能频繁地在前5分钟内中止特定媒体实例的回放但此后很少这样做,因为观众要么立即不喜欢该媒体要么看完全部内容。作为另一示例,一些媒体实例可能包括在其间许多观众中止回放的场景或片段(例如,许多观众觉得是无礼或无聊的场景或片段),而针对媒体实例的其余部分的中止模式是一致或平均的。

另外,使用统计(例如,中止模式)可与媒体实例类型或类别有关,诸如基于对各种类型或类别的媒体实例的回放的行为跟踪的针对不同类型或种类的媒体的中止模式。媒体类型或类别可以是对用于编群类似媒体实例的媒体实例属性的描述。类型或类别的示例可包括“广告”、“电影”、“新闻”、“流行歌曲”等。

此外,使用统计(例如,中止模式)一般可与接收机设备有关,诸如指示在特定接收机设备上回放的所有媒体实例的平均中止时间的中止模式(其可反映所有者的中止模式)。另外,使用统计(例如,中止模式)可与接收机设备及其对类似类型或类别的媒体实例的处置有关,诸如在接收机设备上回放的给定类别中的所有媒体实例的平均中止时间。

在一实施例中,高水标余量时间值和/或低水标余量时间值可基于使用统计,诸如上述与媒体实例或接收机设备相关联的中止模式。作为示例,媒体实例的高水标余量时间值和/或低水标余量时间值可在服务器处确定并作为媒体实例的部分元数据(例如,报头信息)或者作为单独传输的一部分被提供给接收机设备。作为另一示例,接收机设备的高水标余量时间值和/或低水标余量时间值可在接收机设备处基于对接收机设备处的媒体实例中止模式的监视来确定。

在一实施例中,低水标余量可基于媒体实例的经缓冲部分的变化率来确定。在一实施例中,低水标余量可被确定为接收机设备的高速缓存中的媒体实例的经缓冲部分的变化率的函数。在一实施例中,该函数可以是在接收机设备处预设的单个函数并且被用于所有媒体实例。在另一实施例中,该函数可选自用于确定低水标余量的函数组,其中该选择基于在媒体实例的元数据(例如,报头)中指示的媒体实例类型或类别。

在一实施例中,无论将低水标余量确定为高速缓存中的媒体实例的经缓冲部分的变化率的函数的结果如何,低水标余量都可被约束在最小低水标余量值与最大低水标余量值之间。例如,最小低水标余量值可以是256K,而最大低水标余量值可以是4M。最小和最大低水标余量值可由制造商或服务提供商预定,能由服务提供商(例如,经由空中更新)或用户(例如,响应于用户偏好设置)调整,或者由服务提供商、媒体提供商(例如,在作为媒体实例的一部分被递送的参数字段内)、接收机设备(例如,响应于所检测到的链路质量或回放状况)、或用户动态地设置。

在一实施例中,高水标余量可基于所确定的低水标余量和回放速率来确定。在一实施例中,高水标余量可等于低水标余量加上回放速率的函数。回放速率可被确定为媒体实例的大小除以媒体实例的历时。在一实施例中,该函数可以是在接收机设备处预设的单个函数并且被用于所有媒体实例。在另一实施例中,该函数可选自用于确定高水标余量的函数组,其中该选择基于在媒体实例的元数据(例如,报头)中指示的媒体实例类型或类别。在一实施例中,高水标余量和/或低水标余量还可至少部分地基于中止模式系数。在一实施例中,回放速率的函数可受到最小值(诸如1M)的约束。

在一实施例中,高水标余量和/或低水标余量还可至少部分地基于中止模式系数。例如,一个或多个中止模式系数可以是用于确定低水标余量和/或高水标余量的函数的系数。如上所述,使用统计可在接收机设备处确定和/或接收自服务器,并且被用于确定中止模式系数。在一实施例中,中止模式系数可在服务器处确定并作为媒体实例的元数据的一部分(例如,在报头信息内)或者作为单独传输的一部分被提供给接收机设备。作为另一示例,中止模式系数可在接收机设备处基于接收自另一设备(例如,服务器)的使用统计和/或在接收机设备处确定的使用统计来确定。

在一实施例中,可在下载媒体实例的诸部分时(诸如在下载媒体实例的每个部分之后或者在下载媒体实例的诸部分的群之后)重新确定或修改高水标余量和/或低水标余量。以此方式,高水标余量和/或低水标余量可适应于影响媒体实例下载的变化,诸如下载速率的变化、高速缓存中的媒体实例的经缓冲部分的变化率的变化等。此实施例还可使得高水标余量和/或低水标余量能够在回放期间适应于媒体实例的中止模式的变化。例如,可恰好在许多观众中止回放的场景或片段之前和期间由于很可能发生中止而减小高水标余量以节省带宽,并且在其他时间增大高水标余量以增强回放。作为另一示例,当中止模式反映回放进行越久看完的观众就越多时,可随着回放进行而增大高水标余量。

在一实施例中,随着不同的媒体实例被选择以供在接收机设备上输出,用于确定高速缓存的高水标余量和/或低水标余量的操作可跨媒体实例被使用。在一实施例中,高速缓存内的媒体实例的已下载部分可被编群在一起以支持对媒体实例的查找。

图1解说了适用于各个实施例的通信网络系统100。通信网络系统100可包括多个设备,诸如一个或多个接收机设备102、一个或多个蜂窝塔或基站104、一个或多个无线接入点114、一个或多个路由器109、以及连接至因特网110的服务器108和112。接收机设备102可经由一个或多个蜂窝连接106(包括CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他类型连接)与蜂窝塔或基站104交换数据。蜂窝塔或基站104可与路由器处于通信中,该路由器可连接至因特网110。接收机设备102可经由一个或多个连接118(包括或任何其他类型连接)与无线接入点114交换数据。无线接入点114可与路由器处于通信中,该路由器可连接至因特网110。接收机设备102可经由一个或多个有线连接117与路由器109交换数据,路由器109可连接至因特网110。以此方式,经由至蜂窝塔或基站104、无线接入点114、路由器109和/或因特网110的连接,可在接收机设备102与服务器108和112之间交换数据。

在一实施例中,服务器108可以是经由在接收机设备102的处理器上运行的客户端或应用来提供媒体实例以供输出(例如,回放)的内容提供商服务器和/或编码器。在一实施例中,服务器108可从媒体捕捉设备116(诸如相机)接收媒体并且将该媒体编码成配置成要由在接收机设备102的处理器上运行的客户端或应用输出(例如,回放)的媒体实例(例如,视频、音频、或多媒体流)。通过使用因特网110、路由器109、无线接入点114、和/或蜂窝塔或基站104建立的各种网络,服务器108可将媒体实例提供给接收机设备102。在一实施例中,服务器112可以是网络服务器,其可监视由接收机设备112进行的网络使用、从接收机设备102和/或服务器108接收与媒体实例和媒体实例消耗相关联的数据(例如,中止参数、使用统计等)、以及向接收机设备和/或服务器108发送与媒体实例和媒体实例消耗和/或网络状况相关联的数据。

图2解说了适用于各个实施例的接收机设备的示例系统架构200。接收机设备可包括一个或多个客户端202,该一个或多个客户端202可与预获取模块206和配置成用作接收机设备的高速缓存204的存储器交换数据。预获取模块206可与接收机设备的高速缓存204和调制解调器接口208交换数据。客户端202(诸如应用)可响应于媒体实例被接收机设备的用户选择以进行回放(例如,用户针对视频或歌曲选择“播放”或“前往”)而向预获取模块206发送媒体实例选择指示,诸如统一资源指示符(URI)。预获取模块206(诸如平台中使用的StageFright)可控制调制解调器接口208开始下载媒体实例的诸部分,并且随着接收到媒体实例的这些部分,预获取模块206可将媒体实例的这些部分存储在高速缓存204中。预获取模块206可使用任何通信协议(诸如超文本传输协议(HTTP)或任何其他通信协议)来下载媒体实例的诸部分并且将媒体实例的这些部分存储在高速缓存204中。客户端202可通过回放存储在高速缓存204中的媒体实例的诸部分来消耗媒体实例的这些部分以在接收机设备上输出该媒体实例。

高速缓存204中尚未被客户端202回放的该媒体实例的诸部分可以是媒体实例的经缓冲部分,该经缓冲部分随着媒体实例的新部分由预获取模块206下载到高速缓存204而改变,并且媒体实例的诸部分由客户端202从高速缓存204回放。

图3是解说媒体实例302、接收机设备的高速缓存、高水标余量(HWM)318、和低水标余量(LWM)320之间的实施例交互的媒体实例302的框图。在给定时间,接收机设备的高速缓存可存储媒体实例302的诸部分。高速缓存中的媒体实例302的诸部分可包括已回放部分304(例如,由客户端或应用通过在接收机设备上显示视频和/或输出音频所消耗的部分)以及用于回放的经缓冲部分306(即,尚未被客户端或应用消耗的部分)。已回放部分304可从高速缓存的起始(SOC)310(例如,高速缓存中的媒体实例302的最老部分)延伸至最后一个存取点(LAP)312(例如,正被回放的媒体实例302的当前部分)。经缓冲部分306可从最后一个存取点312延伸至高速缓存末尾(EOC)314(例如,高速缓存中的媒体实例302的最新部分)。媒体实例302中尚未被下载至高速缓存的那些部分可以是未下载部分308。高速缓存可具有分配给它的最大高速缓存大小316(诸如5.0MB、20.0MB、100.0MB等),并且这可表示可存储在高速缓存中的数据的最大大小。

在各个实施例中,高速缓存中的媒体实例302的诸部分的下载状态、以及媒体分组何时被下载并存储在高速缓存中可由两个限值——低水标余量320和高水标余量318——来控制。

在各个实施例中,高水标余量318可以是表示与高速缓存末尾314的大小偏移(例如,诸如字节偏移)的值,其可小于最大高速缓存大小316。以此方式,高水标余量318可表示在高速缓存中所存储的最后一个存取点312前方的经缓冲部分306的最大量的目标。当最后一个存取点312与高速缓存末尾314之间的余量(例如,经缓冲部分306的大小)达到高水标余量318时,可暂停下载媒体实例302(例如,通过停止对未下载部分308的下一部分的下载)。

在各个实施例中,低水标余量320可以是表示与高速缓存末尾314的大小偏移(例如,诸如字节偏移)的值,其可小于高水标余量318。以此方式,低水标余量320可表示在最后一个存取点312前方的经缓冲部分306的最小量的目标。当最后一个存取点312与高速缓存末尾314之间的余量(例如,经缓冲部分306的大小)达到低水标余量320时,可开始(或重新开始)下载媒体实例302(例如,通过请求未下载部分308的下一部分)。

图4解说了可由接收机设备的处理器(诸如由在接收机设备的处理器上运行的预获取模块)执行的用于在接收机设备上预获取媒体的实施例方法400。在框402,处理器可接收媒体实例选择指示。作为示例,媒体实例选择指示可以是接收自客户端应用(诸如媒体播放器)的对由媒体播放器输出的视频的选择的指示。媒体实例选择指示可指示可从其检索媒体实例的地址,诸如URL。

在框404,处理器可确定与媒体实例相关联的数据。此数据可包括关于媒体实例的各种信息,包括媒体实例的大小、媒体实例的历时、与媒体实例相关联的中止模式、一个或多个中止模式系数、低水标余量时间值、高水标余量时间值、高水标余量、低水标余量、媒体实例类型或类别、和/或关于媒体实例的任何其他信息。在一实施例中,处理器可响应于请求媒体实例而接收所请求的媒体实例的初始部分,并且该初始部分可包括在报头中的与媒体实例相关联的数据(例如,元数据)。在一实施例中,处理器可至少部分地基于在媒体实例的初始部分中接收的数据来确定与媒体实例相关联的数据。在另一实施例中,处理器可至少部分地基于存储在接收机设备的存储器中的数据(诸如一种或多种中止模式、一个或多个中止模式系数等)来确定与媒体实例相关联的数据。在进一步实施例中,处理器可至少部分地基于存储在接收机设备的存储器中的数据和在媒体实例的初始部分中接收的数据的组合来确定与媒体实例相关联的数据。

在框406,处理器可基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量(HWM)和低水标余量(LWM)。在一实施例中,与媒体实例相关联的数据可被用于确定媒体实例的回放速率。在一实施例中,接收机设备的高速缓存的高水标余量可基于高水标余量时间值和所确定的媒体实例的回放速率来确定,并且接收机设备的高速缓存的低水标余量可基于低水标余量时间值和所确定的媒体实例的回放速率来确定。在另一实施例中,接收机设备的高速缓存的低水标余量可至少部分地基于接收机设备的高速缓存中的媒体实例的经缓冲部分的变化率来确定,并且接收机设备的高速缓存的高水标余量可至少部分地基于低水标余量和所确定的回放速率来确定。在进一步实施例中,低水标余量和高水标余量可至少部分地基于与媒体实例或接收机设备相关联的中止模式或中止模式系数来确定。

在框408,处理器可至少部分地基于所确定的高水标余量和所确定的低水标余量来控制媒体实例的诸部分至高速缓存的下载。例如,处理器可在高速缓存中的媒体实例的经缓冲部分的大小小于或等于低水标余量时开始下载媒体实例的诸部分,可在高速缓存中的媒体实例的经缓冲部分的大小小于高水标余量并且媒体实例的经缓冲部分的大小小于或等于低水标余量时继续下载媒体实例的诸部分,并且可在媒体实例的经缓冲部分的大小大于或等于高水标余量时暂停下载媒体实例的诸部分。在一可任选实施例中,处理器可返回到框406以基于与媒体实例相关联的数据来重新确定高速缓存的高水标余量和低水标余量。以此方式,高水标余量和低水标余量可被动态地调整,由此使得对媒体实例的诸部分的高速缓存和下载能够随着各种参数值变化而被自适应地控制。

图5解说了用于至少部分地基于所确定的高水标余量和所确定的低水标余量来控制媒体实例的诸部分至高速缓存的下载的实施例方法500。在一实施例中,方法500的操作可由接收机设备的处理器(诸如由在接收机设备的处理器上运行的预获取模块)执行。

如上所述,在框402,处理器可接收媒体实例选择指示。在判定框502,处理器可确定媒体实例是否被中止。媒体实例可按各种方式来中止,诸如通过关闭媒体观看应用或客户端、接收到新的媒体实例选择指示等。此迭代过程(其在框502开始)与并行于以上参照图4描述的方法400中的过程发生的回放同步发生。

响应于确定媒体实例未被中止(即,判定框502=“否”),处理器可在框504确定并存储接收机设备的高速缓存中的媒体实例的经缓冲部分的大小。接收机设备的高速缓存中的媒体实例的经缓冲部分可以是存储在高速缓存中但尚未由输出媒体实例的客户端或应用回放的那些部分。处理器可通过分析接收机设备的高速缓存的内容来确定高速缓存中的媒体实例的经缓冲部分的大小,并且可存储所确定的接收机设备的高速缓存中的媒体实例的经缓冲部分的大小(例如通过覆写先前确定的媒体实例的经缓冲部分的大小)。

如上所述,在框406,处理器可基于与媒体实例相关联的数据来确定高速缓存的高水标余量和低水标余量。在判定框506,处理器可确定高速缓存中的媒体实例的经缓冲部分的大小是否大于或等于高水标余量。例如,处理器可将所确定的存储在高速缓存中的媒体实例的经缓冲部分的大小的值与高水标余量作比较以确定媒体实例的经缓冲部分的大小是否大于或等于高水标余量。响应于确定高速缓存中的媒体实例的经缓冲部分的大小小于高水标余量(即,判定框506=“否”),处理器可在判定框508确定高速缓存中的媒体实例的经缓冲部分的大小是否大于低水标余量。例如,处理器可将所确定的存储在高速缓存中的媒体实例的经缓冲部分的大小的值与低水标余量作比较以确定媒体实例的经缓冲部分的大小是否大于低水标余量。

响应于确定高速缓存中的媒体实例的经缓冲部分的大小小于或等于低水标余量(即,判定框508=“否”),处理器可在框510恢复媒体实例至高速缓存的的下载(即,预获取),由此下载/预获取媒体实例的下一部分。例如,处理器可通过发送对媒体实例的下一部分的请求(诸如Get()请求)来恢复下载媒体,并且作为响应可接收媒体实例的下一部分并将数据存储在高速缓存中。一旦在框510将媒体实例的下一部分下载至高速缓存,处理器就可再次在判定框502确定媒体实例是否被中止,并且响应于确定媒体实例未被中止(即,判定框502=“否”),处理器可在框504确定并存储媒体实例的经缓冲部分的新大小,在框406基于与媒体实例相关联的数据来确定高速缓存的新的高水标余量和低水标余量,并且在判定框506确定媒体实例的经缓冲部分的大小是否大于或等于高水标余量。

响应于确定高速缓存中的媒体实例的经缓冲部分的大小大于或等于高水标余量(即,判定框506=“是”),可在框512暂停对媒体实例的诸部分的下载/预获取。在后续迭代中,当下载已停止但继续从缓冲器进行回放并且媒体实例的经缓冲部分的大小小于高水标余量(即,判定框506=“是”)但媒体实例的经缓冲部分的大小仍大于低水标余量(即,判定框508=“是”)时,可在框512保持暂停对媒体的下载/预获取。

接收机设备处理器在循环中执行方法500的操作,从而只要媒体实例未被中止(即,只要判定框502=“否”),处理器就可持续地确定高速缓存中的媒体实例的经缓冲部分的大小是否高于高水标余量或者低于低水标余量,其中在高速缓存中的媒体实例的经缓冲部分的大小大于或等于高水标(即,判定框506=“是”)时在框512暂停下载(即,预获取)并且在高速缓存中的媒体实例的经缓冲部分的大小低于低水标(即,判定框508=“否”)时恢复下载。换言之,下载和回放同时发生,其中框510和512基于高速缓存中的媒体实例的经缓冲部分的大小以及所确定的高水标余量和低水标余量来提供暂停和恢复机制以用于控制对媒体实例的诸部分的预获取,直至媒体实例被完全下载或中止回放。由此,低水标余量被用来确定何时恢复下载(即,预获取)以便确保在高速缓存中缓冲足够的数据以避免延后对媒体实例的回放,而高水标余量被用来确定何时暂停下载以防止对媒体实例的过量缓冲。

响应于确定媒体实例已被中止(即,判定框502=“是”),处理器可在框516确定中止参数。中止参数可包括自回放开始起发生中止的时间、媒体实例类型或类别、和/或与接收机设备对媒体实例的消耗和/或媒体实例自身有关的其他数据、以及本文描述的其他参数。中止参数可被接收机设备和/或远程设备(诸如远程服务器)用来生成/更新与媒体实例和/或接收机设备相关联的使用统计(例如,中止模式)。在框518,处理器可发送和/或存储中止参数。作为示例,处理器可将中止参数发送给远程设备,将中止参数存储在接收机设备的存储器中,和/或将中止参数发送给在接收机设备处理器上运行的另一应用。在可任选框520,处理器可基于中止参数来更新使用统计(例如,中止模式)。例如,可基于新确定的中止参数来更新自回放开始起媒体实例被中止的平均时间。

图6解说了用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的实施例方法600。在一实施例中,方法600的操作可由接收机设备的处理器(诸如由在接收机设备的处理器上运行的预获取模块)执行。在一实施例中,方法600的操作可结合上述方法400或500的操作来执行。

如以上所讨论的,高水标余量时间值(hwm)和/或低水标余量时间值(lwm)可在接收机设备处确定,或者可远离接收机设备(例如,在服务器处)确定并被提供给接收机设备。因此,在可任选实施例中,在框601a,处理器可基于中止模式来确定并存储高水标余量时间值和低水标余量时间值。中止模式可与媒体实例或接收机设备相关联。在可任选的替换实施例中,在框601b,处理器可接收并存储高水标余量时间值和低水标余量时间值。例如,处理器可从远程服务器接收高水标余量时间值和低水标余量时间值,并且可将这些值存储在接收机设备的存储器中。无论是由接收机设备在框601a确定还是由接收机设备在框601b接收,低水标余量时间值可以是设置成计及暂停由媒体播放器进行的回放的时间(例如,2秒)并且高水标余量时间值可以是设置成计及恢复由媒体播放器进行的回放的时间(例如,10秒)。

在框602,处理器可确定媒体实例的回放速率。例如,回放速率可基于从媒体实例报头中提取的媒体实例的大小(Size)和历时(Duration)。回放速率(Rplayback)随后可根据下式来计算:

在框604,处理器可基于高水标余量时间值和所确定的媒体实例的回放速率来确定接收机设备的高速缓存的高水标余量。例如,使用高水标余量时间值(hwm)的值和回放速率(Rplayback),高水标余量(HWM)可根据下式来计算:

HWM=hwm×Rplayback

在框606,处理器可基于低水标余量时间值和所确定的媒体实例的回放速率来确定接收机设备的高速缓存的低水标余量。例如,使用低水标余量时间值(lwm)的值和回放速率(Rplayback),低水标余量(LWM)可根据下式来计算:

LWM=lwm×Rplayback

图7解说了用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的实施例方法700。在一实施例中,方法700的操作可由接收机设备的处理器(例如由在接收机设备的处理器上运行的预获取模块)执行。在一实施例中,方法700的操作可结合上述方法400或500的操作来执行。

如以上参照图6描述的,在框602,处理器可确定媒体实例的回放速率。在框702,处理器可确定接收机设备的高速缓存中的媒体实例的经缓冲部分的变化率。作为示例,媒体实例的经缓冲部分的变化率可通过将在发送当前部分请求时高速缓存中的媒体实例的经缓冲部分的量与在发送上一个部分请求时高速缓存中的媒体实例的经缓冲部分的量作比较来确定。当对媒体实例的诸部分的请求(例如,Get()请求)被发送时,处理器可存储高速缓存中的媒体实例的经缓冲部分的大小连同该请求的时间戳。以此方式,高速缓存中的媒体实例的经缓冲部分的变化率可通过将经缓冲部分大小的变化除以基于不同时间戳确定的诸请求之间的时间间隔来确定。替换地,请求可按恒定周期性来发送,并且可以不需要时间戳,在此情形中可将经缓冲部分大小的变化除以该周期性以确定媒体实例的经缓冲部分的变化率。

在框704,处理器可至少部分地基于接收机设备的高速缓存中的媒体实例的经缓冲部分的变化率来确定接收机设备的高速缓存的低水标余量。作为示例,低水标余量(LWM)可根据下式被确定为媒体实例的经缓冲部分的变化率的函数(f1):

在一实施例中,函数(f1)可以是存储在接收机设备的存储器中被用于所有媒体实例的函数。在另一实施例中,函数(f1)可以是基于媒体实例的属性(诸如类型或类别)从存储在接收机设备的存储器中的函数组中选择的函数。在一实施例中,低水标余量的值可被约束在最小值(例如,256K)与最大值(例如,4M)之间,而不管函数(f1)的结果如何。

在框706,处理器可至少部分地基于低水标余量和所确定的回放速率来确定接收机设备的高速缓存的高水标余量。作为示例,高水标余量(HWM)可根据下式被确定为低水标余量(LWM)加上回放速率(Rplayback)的函数(f2):

HWM=LWM+f2(Rplayback)

在一实施例中,函数(f2)可以是存储在接收机设备的存储器中被用于所有媒体实例的函数。在另一实施例中,函数(f2)可以是基于媒体实例的属性(诸如类型或类别)从存储在接收机设备的存储器中的函数组中选择的函数。在一实施例中,f2(Rplayback)的值可被约束成至少为最小值(例如,1M)。

图8解说了用于基于与媒体实例相关联的数据来确定接收机设备的高速缓存的高水标余量和低水标余量的实施例方法。在一实施例中,方法700的操作可由接收机设备的处理器(诸如由在接收机设备的处理器上运行的预获取模块)执行。在一实施例中,方法700的操作可结合上述方法400或500的操作来执行。

如以上所讨论的,中止模式系数可由接收机设备确定,或者可由远离接收机设备的计算机(例如,由服务器)确定并被提供给接收机设备。因此,在可任选实施例中,在框801a,处理器可基于对接收机设备可用的使用统计来确定并存储一个或多个中止模式系数。中止模式可与媒体实例或接收机设备相关联。在可任选的替换实施例中,在框801b,处理器可接收并存储一个或多个中止模式系数。例如,处理器可从远程服务器接收一个或多个中止模式系数,并且可将这些系数存储在接收机设备的存储器中。

如上所述,在框602,处理器可确定媒体实例的回放速率,并且在框702,处理器可确定媒体实例的经缓冲部分的变化率。在框802,处理器可至少部分地基于接收机设备的高速缓存中的媒体实例的经缓冲部分的变化率以及(诸)中止模式系数来确定接收机设备的高速缓存的低水标余量。例如,一个或多个中止系数可以是以上参照图7的框704讨论的函数f1的系数。以此方式,所确定的低水标余量可基于中止模式系数而变化。

在框804,处理器可至少部分地基于(诸)中止模式系数、低水标余量和所确定的回放速率来确定接收机设备的高速缓存的高水标余量。例如,一个或多个中止系数可以是以上参照图7的框704和706讨论的函数f1或函数f2的系数。以此方式,所确定的高水标余量可基于中止模式系数而变化。

图9解说了用于基于使用统计来生成中止模式系数和/或高水标余量和低水标余量时间值的实施例方法。在一实施例中,方法900的操作可由远离接收机设备的服务器(诸如网络服务器或内容提供商服务器)执行。在一实施例中,方法900的操作可结合上述方法400、500、600和/或800的操作来执行。

在框902,服务器可接收和/或确定中止参数。在一实施例中,服务器可从输出特定媒体实例的数个接收机设备接收中止参数。在另一实施例中,服务器可通过监视由数个接收机设备对媒体实例的诸部分的下载(诸如以确定接收机设备请求的最后部分)来确定中止参数。以此方式,服务器可标识媒体实例何时在接收机设备上被中止。在框904,处理器可基于所接收/确定的中止参数来更新使用统计(例如,中止模式)。例如,服务器可跟踪具体媒体实例和/或媒体实例类型或类别的平均中止时间。当接收到新的中止参数时,可基于不断增长的中止参数数据集来更新使用统计。

在框906,服务器可基于使用统计来生成中止模式系数、和/或高水标余量时间值和低水标余量时间值。在框908,服务器可将中止模式系数、和/或高水标余量时间值和低水标余量时间值发送给接收机设备。在一实施例中,中止模式系数、和/或高水标余量时间值和低水标余量时间值可独立于对媒体实例的请求(诸如在媒体服务的开销信令信息中)被发送给接收机设备。在另一实施例中,中止模式系数、和/或高水标余量时间值和低水标余量时间值可被包括在媒体实例的元数据中(例如,在报头信息内)并且与媒体实例一起被提供给接收机设备。

各个实施例可在各种接收机设备中的任一种中实现,其中的一个示例在图10中解说。例如,接收机设备1000可包括耦合至内部存储器1004和1006的处理器1002,内部存储器1004和1006中的一者或多者可被配置成用作缓冲器以用于存储如所描述地预获取的媒体实例的诸部分。内部存储器1004和1006可以是易失性或非易失性存储器,并且还可以是安全和/或加密的存储器、或者不安全和/或未加密存储器,或其任何组合。处理器1002还可被耦合至触摸屏显示器1012,诸如电阻式传感触摸屏、电容式传感触摸屏、红外传感触摸屏等。另外,接收机设备1000的显示器不需要具有触摸屏能力。接收机设备1000可具有耦合至处理器1002的用于发送和接收的一个或多个无线电信号收发机1008(例如,Wi-Fi、RF无线电)以及天线1010。接收机设备1000可包括启用经由数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他类型的数据网络)的通信且耦合至处理器1002的网络接口1016(诸如无线调制解调器芯片)。网络接口1016可被配置成接收如所描述地预获取的媒体实例的已下载部分。接收机设备1000可包括耦合至处理器1002的外围设备连接接口1018。外围设备连接接口1018可被独特地配置成接纳一种类型的连接,或者被多样化地配置成接纳共用或专有的各种类型的物理和通信连接,诸如USB、火线(FireWire)、雷电(Thunderbolt)、PCIe等。外围设备连接接口1018还可耦合至类似地配置的外围设备连接端口,并且外围设备连接接口1018可作为网络接口来操作以将接收机设备1000和处理器1002连接至各种网络。在一些实施例中,外围设备连接接口1018可被配置成接收如所描述地预获取的媒体实例的已下载部分。接收机设备1000还可包括用于提供音频输出的扬声器1014和用于接收音频输入的话筒1015。接收机设备1000还可包括用于容纳本文所讨论的组件中的全部或一些组件的外壳1020,外壳1020由塑料、金属、或多种材料的组合构成。接收机设备1000可以包括耦合至处理器1002的电源1022,诸如一次性或可充电电池。可充电电池还可耦合至外围设备连接端口以从接收机设备1000外部的源接收充电电流。

各个实施例还可实现在各种市售的服务器设备中的任何服务器设备上,诸如图11中解说的服务器1100。此类服务器1100典型地包括耦合至易失性存储器1102和大容量非易失性存储器(诸如盘驱动器1103)的处理器1101。服务器1100还可包括耦合至处理器1101的软盘驱动器、压缩碟(CD)或DVD碟驱动器1106。服务器1100还可包括耦合至处理器1101的用于建立与网络1107(诸如耦合至其他广播系统计算机和服务器的局域网、因特网、公共交换电话网络、和/或蜂窝数据网络(例如,CDMA、TDMA、GSM、PCS、3G、4G、LTE、或任何其他类型的蜂窝数据网络)的网络接口连接的网络接入端口1104。

处理器1002和1101可以是能通过软件指令(应用)配置成执行包括以上描述的各种实施例的功能在内的各种功能的任何可编程微处理器、微型计算机或一个或多个多处理器芯片。在一些设备中,可提供多个处理器,诸如一个处理器专用于无线通信功能并且一个处理器专用于运行其他应用。通常,软件应用在被访问并被加载到处理器1002和1101中之前可被存储在内部存储器1004、1006、1102和1103中。处理器1002和1101可包括足以存储应用软件指令的内部存储器。在许多设备中,内部存储器可以是易失性或非易失性存储器(诸如闪存),或这两者的混合。出于本说明书的目的,对存储器的一般性引述是指可由处理器1002和1101访问的存储器,包括内部存储器或插入到该设备中的可移动存储器、以及在处理器1002和1101本身内部的存储器。

上述方法描述和过程流图仅作为解说性示例提供,且并非旨在要求或暗示各个实施例的步骤必须按所给出的次序来执行。如本领域技术人员将领会的,前述实施例中的步骤次序可按任何次序来执行。诸如“此后”、“然后”、“接着”等的措辞并非旨在限定步骤的次序;这些措辞仅是简单地用以指引读者遍历方法的描述。进一步,对单数形式的权利要求元素的任何引述,例如使用冠词“一”、“某”或“该”的引述不应解释为将该元素限定为单数。

结合本文中所公开的实施例来描述的各种解说性逻辑框、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但此类实现决策不应被解读成导致脱离了本发明的范围。

用于实现结合本文中公开的方面描述的各种解说性逻辑、逻辑框、模块、以及电路的硬件可利用设计成执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器、或任何其它此类配置。替换地,一些步骤或方法可由专用于给定功能的电路系统来执行。

在一个或多个示例性方面,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可作为一条或多条指令或代码存储在非瞬态计算机可读介质或非瞬态处理器可读介质上。本文中公开的方法或算法的步骤可在处理器可执行软件模块中实施,该处理器可执行软件模块可驻留在非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是能被计算机或处理器访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可读或处理器可读介质可包括RAM、ROM、EEPROM、闪存、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字通用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。以上的组合也被包括在非瞬态计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可作为一条代码和/或指令或者任何代码和/或指令组合或集合而驻留在可被纳入计算机程序产品中的非瞬态处理器可读介质和/或计算机可读介质上。

提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用本发明。对这些实施例的各种修改对本领域技术人员来说将是显而易见的,且本文所定义的一般原理可被应用于其它实施例而不背离本发明的精神或范围。由此,本发明并非旨在限定于本文中示出的实施例,而是应被授予与所附权利要求和本文中公开的原理和新颖性特征一致的最广义的范围。

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