CN105594182A - 用于媒体流式传输的改善的请求取消方法 - Google Patents

用于媒体流式传输的改善的请求取消方法 Download PDF

Info

Publication number
CN105594182A
CN105594182A CN201480054912.5A CN201480054912A CN105594182A CN 105594182 A CN105594182 A CN 105594182A CN 201480054912 A CN201480054912 A CN 201480054912A CN 105594182 A CN105594182 A CN 105594182A
Authority
CN
China
Prior art keywords
cost
expression
threshold value
switched
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480054912.5A
Other languages
English (en)
Inventor
Y·毛
F·乌卢皮纳尔
A·S·克里希纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105594182A publication Critical patent/CN105594182A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

概括地说,各个实施例提供了由在接收机设备上执行DASH客户端的处理器来实现的、用于鉴于接收机设备的资源(例如,带宽、电池功率等等)上的变化而确定要何时取消或放弃按照当前表示下载当前片段并且按照不同表示重新开始对当前片段的下载以满足与接收机设备的资源上的变化相关的一个或多个性能目标和/或优化的方法。在各个实施例中,接收机设备处理器可以执行成本效益分析,以确定在对当前片段的正在进行的下载期间切换表示是否会有益于接收机设备的性能,并且接收机设备处理器可以响应于确定切换表示会改善接收机设备的性能而切换表示。

Description

用于媒体流式传输的改善的请求取消方法
背景技术
超文本传输协议(“HTTP”)是当前通过互联网来传递内容(例如,视频、图片、文本等等)的常用方法。在许多当前的应用(例如,流式传输视频文件)中,通过从接收机设备向HTTP服务器重复地请求针对内容的连续片段(segment)而使得内容渐进地可用。片段的可用性遵循时间线,其中时间线指示每个相继片段在HTTP服务器中何时变得可用。
超文本传输协议的动态自适应流式传输(“DASH”)是实现HTTP流式传输的标准。DASH在发送给接收机设备的媒体呈现描述(“MPD”)中通告片段的可用性。MPD描述与DASH媒体呈现相关联的媒体组件,并且声明片段可用性时间线,其中片段可用性时间线通告片段、片段可用的时间以及片段的大小。
当前,接收机设备可以通过在播放内容的当前片段时持续地向内容提供方请求内容的下一片段来渲染内容流。为了收集渲染内容所需要的片段,在接收机设备上运行的具有DASH功能的应用/客户端向HTTP服务器发送HTTP请求,以请求在MPD中所标识的下一片段。HTTP服务器利用所请求的片段来进行响应,或者利用指示另一个统一资源定位符(“URL”)的HTTP重定向消息来进行响应,其中DASH客户端应当向该URL发送针对片段的后续HTTP请求。
DASH还允许使每个片段的一个以上的表示(representation)(例如,视频质量版本)可用。例如,可以通过在一个服务器(例如,URL)上托管片段的高比特速率/高质量版本并且在另一个服务器上托管相同片段的低比特速率/低质量版本,来使每个片段的一个以上的表示可用。DASH应用/客户端然后可以获取片段的高比特速率/高质量版本(例如,当接收带宽高时)或者低比特速率/低质量版本(例如,当接收带宽低时),并且渲染任一版本。如果接收机设备经历非常高的带宽,则接收机设备可以下载高质量表示和低质量表示二者。
发明内容
各个实施例提供了由在接收机设备上执行DASH客户端的处理器来实现的、用于鉴于接收机设备的资源(例如,带宽、电池功率等等)上的变化而确定要何时取消或放弃按照当前表示下载当前片段并且按照不同表示重新开始下载当前片段,以满足与接收机设备的资源上的变化相关的一个或多个性能目标和/或优化的方法。在各个实施例中,接收机设备处理器可以执行成本效益分析,以确定在对当前片段的正在进行的下载期间切换表示是否会有益于接收机设备的性能,并且接收机设备处理器可以响应于确定切换表示会改善接收机设备的性能而切换表示。
在一个实施例中,接收机设备处理器可以在确定是否要切换表示之前识别接收机设备上已发生切换情形。在一个实施例中,当接收机设备的可用资源(例如,带宽、电池功率等等)上的变化正在影响或者将影响当前片段下载期间的一个或多个性能目标时会发生切换情形,并且切换情形可以表示如下情况,在该情况下,可能要求取消按照当前表示对当前片段的下载并且重新开始下载当前片段的不同表示,以满足一个或多个性能目标。
在一个实施例中,响应于识别切换情形,接收机设备处理器可以执行成本效益分析,以确定在当前片段的下载期间切换表示是否会达到一个或多个性能目标或者引起接收机设备上的期望性能。在另外的实施例中,接收机设备处理器可以确定或计算满足所述一个或多个性能目标所需的最低条件(例如,一个或多个成本阈值),例如,放弃对当前片段的正在进行的下载所需的时间以及用于按照新的表示从该服务器下载整个当前片段的时间。
在另一个实施例中,接收机设备处理器可以将切换表示的成本与成本阈值进行比较,以确定切换表示是否是用于达到一个或多个性能目标的令人期望的策略,并且仅当接收机设备处理器确定切换的益处大于成本时(例如,当经计算的成本不超过成本阈值时),接收机设备处理器才会取消当前片段请求并切换到当前片段的另一个表示。否则,当成本超过成本阈值时,接收机设备处理器不会采取进一步的动作,并且允许继续正在进行的下载。
附图说明
附图(其被并入本文并构成本说明书的一部分)示出了本发明的示例性实施例,并且与上面所给出的概括描述以及下面所给出的具体实施例一起,用于说明本发明的特征。
图1是适合于与各个实施例一起使用的网络的通信系统框图。
图2是示出了用于响应于识别即将出现的播出停顿而请求按照具有较低比特速率的表示下载下一个片段的典型方法的过程流程图。
图3是示出了用于当切换到当前片段的另一个表示的成本不超过成本阈值时切换到当前片段的另一个表示的实施例方法的过程流程图。
图4是示出了用于确定切换到当前片段的最小成本表示的成本是否超过成本阈值的实施例方法的过程流程图。
图5是示出了用于切换到当前片段的最佳可用表示的实施例方法的过程流程图。
图6是示出了切换表示所需的操作的时间线图。
图7是示出了用于切换表示以避免即将出现的播出停顿的实施例方法的过程流程图。
图8是示出了用于当切换到表示的成本不超过与一个或多个性能目标和/或优化相关联的一个或多个成本阈值时切换到该表示的实施例方法的过程流程图。
图9是示出了用于响应于识别以可用于接收机设备的资源上的增加为特征的切换情形而确定是否要切换表示的实施例方法的过程流程图。
图10是示出了用于响应于识别带宽上的突然增加而确定是否要同时按照当前表示和具有较高比特速率的表示下载当前片段的实施例方法的过程流程图。
图11是适合于与各个实施例一起使用的示例性接收机设备的部件图。
具体实施方式
将参考附图详细描述各个实施例。只要有可能,贯穿附图将使用相同的附图标记来指代相同或相似的部件。对特定例子和实现做出的引用是出于说明性的目的,并非旨在限制本发明或权利要求的范围。
如本文所使用的,术语“接收机设备”是指以下各项中的任意一项或所有项:蜂窝电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、膝上型计算机、平板计算机、智能本、掌上计算机、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器、个人计算机、电视机顶盒、电视机、有线电视接收机、以及包括可编程处理器和存储器以及用于呈现媒体内容的电路的类似个人电子设备。
如本文所使用的,术语“切换表示(switchingrepresentations)”是指以下过程:取消按照第一表示对当前片段的下载,并且按照第二表示重新开始对该当前片段的下载。
本文讨论了不同的应用/客户端、中间件、片段可用性时间线、无线技术和传输协议的各个例子,特别是DASH客户端、MPD和HTTP。提供对DASH客户端、MPD和HTTP的讨论仅是作为例子以更好地说明各个实施例的方面,而并非旨在以任何方式限制各个实施例。其它应用/客户端、中间件、片段可用性时间线、无线技术和传输协议可以与各个实施例一起使用,并且在不偏离本发明的精神或范围的情况下,在各个例子中可以替换所述其它应用/客户端、中间件、片段可用性时间线、无线技术和传输协议。
典型地,DASH客户端在某一时间处处理三个不同的片段:正从回放缓冲区播出的片段、当前从HTTP服务器下载的片段;以及要请求下载的下一个片段。如本文所使用的,术语“当前片段”是指当前正在下载并被存储到回放缓冲区中的片段。典型地,当前下载的片段将稍后播放,例如播放的下一个片段或者稍后某一时间播放的片段。在具有媒体应用系统(其支持对部分下载的片段的播出)的接收机设备中,当前片段(即,正在下载并存储的片段)可以在下载完成之前开始播放,这是因为在接收并存储片段的其余部分的同时,媒体片段可以开始从回放缓冲区中访问片段的已下载部分。
在流式传输内容(例如,视频)时,接收机设备可能出于各种原因而经历可用带宽上的波动。典型地,运行在接收机设备上的DASH客户端通过当DASH客户端请求流式传输内容的下一个片段时,基于当前可用带宽来在流式传输内容的不同表示当中选择用于下载的下一个片段的表示,来处理带宽变化。例如,客户端设备可以响应于识别可用带宽上的下降而请求流式传输内容的下一个片段的较低比特速率版本。对每个片段的适当版本的这种选择可以基于下载片段将花费的时间相比于该片段开始播放之前剩余的时间(或者正在播放的片段的剩余播放时间),而下载每个片段的时间可以基于片段中要下载的数据量除以由当前带宽所支持的估计的比特速率来进行估计。因此,DASH客户端当前仅可以改变针对内容的下一个片段的比特速率表示。如本文所描述的,选择针对要下载的下一个片段的另一个表示的过程被称为“主速率选择算法”。
有时,当DASH客户端正在以某一比特速率下载当前片段时,可用带宽显著下降,使得在当前片段被调度开始播放之前不能完成对当前片段的完整下载。当这种情况发生时,在带宽下降的前提下,当前片段将无法及时下载,因此结果将是视频播出的停顿。在当前的实现中,DASH客户端可以基于对以下各项的估计来预测回放停顿何时可能发生:当前带宽(下载比特速率)、还要从HTTP服务器接收的当前片段的数据量、以及在当前片段被调度开始之前剩余的时间。但是,DASH客户端仅可以通过如上面所描述的主速率选择算法解决回放问题。因此,即使DASH客户端可能最终通过切换到具有较低比特速率的表示解决了回放停顿,但是到那时,用户可能已经经历性能下降(例如,回放停顿)。因此,用户可以从处理在当前片段下载期间发生的带宽突然下降的方法中获益。
概括地说,各个实施例提供了由在接收机设备上执行DASH客户端的处理器来实现的、用于鉴于接收机设备的资源(例如,带宽、电池功率等等)上的变化而确定要何时取消或放弃按照当前表示下载当前片段并且按照不同表示重新开始对的当前片段的下载以满足与接收机设备的资源上的变化相关的一个或多个性能目标和/或优化的方法。在各个实施例中,接收机设备处理器可以执行成本效益分析,以确定在对当前片段的正在进行的下载期间切换表示是否会有益于接收机设备的性能,并且接收机设备处理器可以响应于确定切换表示会改善接收机设备的性能来切换表示。
在一个实施例中,接收机设备处理器可以在确定是否要切换表示之前识别接收机设备上已发生切换情形。在一个实施例中,当接收机设备的可用资源(例如,带宽、电池功率等等)上的变化正在影响或者将影响当前片段下载期间的一个或多个性能目标时会发生切换情形。示例性性能目标包括维持某一功耗率、确保用于播出的目标比特速率、限制数据使用、以及确保平滑播出(例如,避免播出停顿)。特别地,切换情形可以表示以下情况,在该情况下,可能要求取消按照当前表示对当前片段的下载并且重新开始对当前片段的不同表示的下载,以满足一个或多个性能目标。例如,当接收机设备处理器识别带宽上的突然下降将导致播出停顿时会发生切换情形,因为较低的带宽将阻止接收机设备在当前片段被调度用于播出之前完成对具有当前比特速率表示的当前片段的下载。
在一个实施例中,响应于识别切换情形,接收机设备处理器可以执行成本效益分析,以确定在当前片段的下载期间切换表示是否会达到一个或多个性能目标或者引起接收机设备上的期望性能。在另外的实施例中,接收机设备处理器可以确定或计算满足所述一个或多个性能目标所要求的最低条件(例如,成本阈值)。例如,达到平滑回放的成本阈值可以是从播出停顿发生之前的时间量的角度来讲的,并且满足关于阻止播出停顿要求切换表示所需要的时间不超过预计要发生播出停顿之前的时间的平滑回放目标。在下面的描述中以及在权利要求书中,对“成本”的引用旨在涵盖本质上不是财务的多种因素,包括电池功耗以及用于完成如下面所描述的各个任务的时间。
在一个实施例中,接收机设备处理器可以基于要满足的一个或多个性能目标来计算与切换表示相关联的各种成本。在性能目标是确保平滑播出的例子中,接收机设备处理器可以从切换表示所要求的时间的角度上来计算与切换表示相关联的成本,例如放弃对当前片段的正在进行的下载(其可能涉及关闭TCP/IP连接并打开新连接)所需要的时间、向HTTP服务器传送针对另一个表示的请求所需要的时间、以及用于按照新的表示从该服务器下载整个当前片段的时间。在各个实施例中,接收机设备处理器还可以或者替代地从切换表示所需要的功率、对播出的平均比特速率的影响、或者对各种其它性能目标或优化的影响的角度来确定成本。
在另一个实施例中,接收机设备处理器可以将切换表示的成本与预先确定的成本阈值进行比较,以确定切换表示是否是用于达到一个或多个性能目标的令人期望的策略。接收机设备处理器可以在切换表示之前执行成本效益分析,因为在许多实例中,每次检测到切换情形就切换表示可能引起比不采取动作更差的用户体验。因此,仅当接收机设备处理器确定切换的益处大于成本时(例如,当经计算的成本不超过成本阈值时),接收机设备处理器才会取消当前片段请求并且切换到当前片段的另一个表示。否则,当成本超过成本阈值时,接收机设备处理器不会采取进一步的动作并且可以正常地操作,例如通过执行如上面所描述的主速率选择算法。
在另外的实施例中,接收机设备处理器可以切换表示而不干扰接收机设备处理器执行主速率选择算法的能力。在一个实施例中,接收机设备处理器在确定是否在当前片段下载期间切换表示时可以使用与在执行主速率选择算法时相同的信息源。该实施例可以避免“乒乓(ping-pong)”情形,在该情形下,接收机设备处理器在对当前片段的下载期间切换表示而之后在执行主速率选择算法以选择下一个片段时又切换回去。
图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可以是内容提供方服务器和/或编码器,其提供媒体以用于经由DASH客户端输出。在一个实施例中,服务器108可以从媒体捕获设备116(例如,照相机)接收媒体。在一个实施例中,服务器112可以是媒体服务器,其可以从内容服务器或编码器接收媒体输出并且控制将媒体供应给接收机设备102。
图2示出了可以由在接收机设备上执行DASH客户端的处理器来实现的、用于当检测到播出停顿时按照不同表示下载下一个片段的常规方法200。方法200的操作示出了如当前实施的主速率选择算法的操作。
在框202中,接收机设备处理器可以开始按照当前表示下载当前片段。例如,接收机设备处理器可以参考从HTTP服务器接收到的MPD来确定何时以及在什么URL/地址处特定的媒体片段将可用于下载。在确定位置(例如,指示媒体片段的位置的URL)之后,接收机设备处理器可以发送针对按照给定表示(例如,512千比特)的特定媒体片段的HTTP请求。接收机设备处理器然后可以开始从HTTP服务器接收针对特定媒体片段(例如,当前片段)的数据分组。
在框204中,接收机设备处理器可以估计何时将完成按照当前表示对当前片段的下载。接收机设备处理器可以收集关于当前片段的下载的各个方面的信息。例如,接收机设备处理器可以根据MPD来确定当前片段下载的开始时间和结束时间以及当前片段的标称表示比特速率。接收机设备处理器还可以确定接收机设备和HTTP服务器之间的估计的往返时间(例如,RTT)。接收机设备处理器还可以确定带宽延迟乘积,其中带宽延迟乘积可以计算为当前估计的带宽和往返时间的乘积。接收机设备处理器还可以确定来自每个活动TCP连接(例如,活动TCP连接被视为具有正在进行的数据传输)的所有接收机缓冲区大小的总和。接收机设备处理器还可以确定媒体呈现的当前回放时间、已经下载的当前片段的字节数、以及当前片段所属的适配集的相对权重(例如,在0和1之间的值)。
因此,接收机设备处理器可以使用在接收机设备上获得的信息(例如,诸如上面所描述的信息)来估计当前片段将何时完成下载。
在框206中,接收机设备处理器可以基于该估计来识别即将出现(pending)的播出停顿。当预测到停顿的倾向时,片段当被部分下载时可以能够开始播放,并且只要在回放达到片段的结尾之前将片段完全下载就不会发生停顿。因此,当估计可用于播出的字节数小于避免播出停顿所需要的字节数时,接收机设备处理器可以确定播出停顿即将出现。
当识别了即将出现的播出停顿时,在框208中,接收机设备处理器可以请求按照较低比特速率的表示下载下一个片段。换句话说,当前策略可以识别即将出现的播出停顿,但是会等待以通过基于上面提到的主速率选择算法来请求针对下一个下载片段的较低比特速率表示,来解决低带宽/播出停顿的问题。
尽管主速率选择算法可以解决在将来由低带宽引起的问题(例如,播出停顿),但是常规的主速率选择算法和其它当前策略不能确定通过取消按照当前表示对当前片段的下载并且按照较低比特速率重新下载当前片段是否能够避免即将出现(impending)的播出停顿。此外,当前的主速率选择算法和其它当前解决方案还不包括用于确定通过在当前片段下载期间切换表示是否可以实现其它性能目标或优化的机制。
图3示出了可以由在接收机设备上执行DASH客户端的处理器来实现的、用于执行成本效益分析以确定是否要切换当前片段的表示以改善接收机设备的性能的实施例方法300。具体而言,实施例方法300使得处理器能够确定是否要取消当前下载并且通过按照不同表示下载当前片段来重新开始。
在框302中,接收机设备处理器可以在按照当前表示对当前片段的下载期间识别切换情形。如上面所描述的,当接收机设备的处理器确定如果继续当前操作则将损害一个或多个性能目标(例如,平滑播出、某一功耗率、平均比特速率等等)时会出现切换情形。例如,如上面参考图2所描述的,接收机设备处理器可以基于对当前带宽的估计以及有待下载的当前片段的剩余数据,来检测到在当前片段下载完成之前将发生回放停顿。
在一个实施例中,响应于检测到可用于接收机设备的操作或资源上的某些变化,在框302中接收机设备处理器可以识别切换情形。例如,接收机设备处理器可以检测到可用于下载片段的带宽的增加或减小,并且作为响应,接收机设备处理器可以确定一个或多个性能目标或优化是否会受到带宽上的增加或减小的影响。在另一个例子中,接收机设备处理器可以检测到接收机设备的可用电池寿命已下降低于某一阈值,在该情况下,接收机设备处理器可以基于接收机设备的电池充电状态而认识到应当按照不同的(例如,更加功率高效的)表示下载当前片段,以达到一个或多个性能目标或优化。因此,在一个实施例中,在框302中所识别的切换情形可以基于接收机设备的操作或可用资源上的变化将如何影响接收机设备的一个或多个性能目标或优化。
在框304中,接收机设备处理器可以基于切换情形来确定成本阈值。在一个实施例中,成本阈值可以是一种条件或标准,这种条件或标准会阻挠在当前片段下载期间切换表示的一个或多个底层性能目标(例如,达到平滑回放或者某种能耗)或者会以其它方式使在当前片段下载期间切换到另一个表示变得不令人期望。
在一个实施例中,处理器可以基于与切换情形相关的性能目标和/或优化来确定成本阈值。例如,当接收机设备处理器认识到鉴于带宽的突然下降可能要求切换表示来达到平滑播出时,接收机设备处理器可以基于多少时间可用于取消当前下载并且按照不同表示下载当前片段,来计算成本阈值。在另外的例子中,当接收机设备具有三秒的内容(其可以在当前片段被调度用于播出之前播放)存储在缓冲区中时,成本阈值可以是三秒。
在更复杂的实施例中,框304中所考虑的成本阈值可以包括多个部分和/或条件,例如,在接收机设备开始接收当前片段的不同表示之前的最大时间,以及等到对当前片段的不同表示的下载必须完成以避免播出停顿的时间。在该例子中,成本阈值可以允许三秒钟以用于开始按照不同表示对当前片段的下载,并且允许两秒钟以用于完成下载。
在性能目标是要维持特定的播出平均质量的实施例中,成本阈值可以是特定的平均比特速率。例如,切换到当前片段的最低比特速率表示会减少下载时间以及消耗的总功率,但是也会降低回放质量,使得在切换表示之后的播出比特速率可能低于所允许/期望的最小平均比特速率。
在另外的实施例中,在框304中,接收机设备处理器可以使用多个成本阈值来表示多个性能目标和/或优化。换句话说,接收机设备处理器可以实施接收机设备上所经历的多个性能/质量标准。例如,在切换表示之前(例如,在基本上下载当前片段两次之前),接收机设备处理器可以确定解决即将出现的播出停顿的可用时间(例如,针对平滑回放的性能目标)以及接收机设备处理器为了切换表示而可以消耗的最大功率量。下面参考图8进一步描述用于确定多个成本阈值的操作。
在另外的实施例中,接收机设备处理器可以保守地确定一个或多个成本阈值以考虑切换表示所需要的不可预测的额外成本。例如,处理器可以向时间成本阈值添加额外的时间(例如,“缓冲(cushioning)”)以考虑未预见的延迟,例如无法连接到服务器。因此,框304中所考虑的成本阈值可以包括对切换表示所需要的时间或其它资源的理想估计,以及针对不可预见的额外成本的调整。
在框305中,接收机设备处理器可以基于切换情形的性质来选择当前片段的另一个表示。例如,当预测到播出停顿时,接收机设备处理器可以选择具有可用于当前片段的较低或最低比特速率的表示,这是因为当前正在下载的片段具有当前带宽不能够支持的比特速率。再举一个例子,当检测到带宽上的突然增加时,接收机设备处理器可以选择具有可用于当前片段的较高或最高比特速率的表示。
在框306中,接收机设备处理器可以确定切换到所选择的表示以用于下载当前片段(其涉及取消当前下载并且重新开始下载所选择的表示的当前片段)的成本。取消按照当前表示对当前片段的下载并且按照所选择的表示重新下载当前片段的过程涉及某一时间量并且要求接收机设备耗费资源(例如,额外的功率)来完成任务。例如,切换成本可以包括实现表示切换所要求的时间,包括用于拆除一个TCP会话并且建立新的TCP会话的时间,加上用于按照所选择的表示下载整个当前片段的时间,这是因为接收机设备处理器丢弃了已接收到的当前片段的任何部分。另外的成本可以包括接收并丢弃去往接收机设备的被初始请求的表示的数据(例如,“空中(in-flight)”字节),这些数据当前在去往接收机设备的途中。下面参考图7进一步描述了从时间角度上来确定切换表示的成本。
在其它例子中,可以从功耗、平均比特速率、以及相对于各种其它性能目标和/或优化的角度上来计算切换表示的成本。
在确定切换当前片段表示的成本时,接收机设备处理器可以将额外的“缓冲”包括到经计算的总成本中。例如,在估计切换表示所要求的总时间时,接收机设备处理器可以扩充一个或多个单独的成本(例如,用于消息从接收机设备发送给HTTP服务器并返回的往返时间)以考虑未预见的延迟或额外的处理时间。在另一个实施例中,除了上面参考框304所讨论的扩充成本阈值之外或者作为其替代,接收机设备处理器可以在总的计算成本中包括该“缓冲”。
在确定框308中,接收机设备处理器可以确定切换到所选择的表示的成本是否超过一个或多个成本阈值。换句话说,接收机设备处理器可以评估:与继续当前所选择的表示(其包括任何回放停顿或者预期要发生的其它影响)相比,立即切换到片段的另一个表示是否是更好的选择。例如,鉴于进入低电池状态,接收机设备处理器可以确定:在切换表示所需要的功率的前提下,切换到具有较低比特速率的表示以减小功耗是否会有益于接收机设备。再举一个例子,接收机设备处理器可以确定切换表示所需要的时间是否超过在即将出现的播出停顿发生之前的时间量,以及切换表示所需要的功率量是否低于功率阈值。在此类实施例中,当切换表示的成本超过一个或多个成本阈值中的任何成本阈值时,接收机设备处理器可以确定切换表示是不适当的。下面参考图8进一步描述了确定切换表示的成本是否超过一个或多个成本阈值的过程。
当接收机设备处理器确定切换到当前片段的另一个表示的成本不超过成本阈值时(即,确定框308=“否”),在框310中,处理器可以切换到所选择的表示,例如通过开始以下过程:取消或放弃按照当前表示对当前片段的正在进行的下载,并且请求按照所选择的表示对当前片段的下载。
在一个实施例中,接收机设备处理器切换到的表示可以与所确定的切换成本以及一个或多个成本阈值一致。因此,在该实施例中,可以在框306中所确定的切换成本之后以及基于该切换成本来执行框305中对另一个表示的选择。
在另外的实施例中,可以迭代地执行框305中选择另一个表示的过程以及框306中确定切换成本的过程,例如在确定框308中所执行的确定成本可接受性之后(如虚线所表示的)。在该实施例中,过程可以引起选择不超过成本阈值的最佳表示。例如,处理器可以从512kB比特速率表示切换到256kB比特速率表示,这是因为256kB比特速率是下一个最佳比特速率表示,并且因为切换到256kB比特速率不会超过成本阈值。下面参考图5和图9进一步描述了切换到最佳可用表示。
当接收机设备处理器确定切换到当前片段的另一个表示的成本超过成本阈值时(即,确定框308=“是”),或者不存在会避免即将出现的播出停顿的其它表示(或者影响另一个性能目标),接收机设备处理器不会采取动作并且在框312中继续正在进行的下载。在该情形下,接收机设备处理器可以等待以通过执行主速率选择算法来选择针对下一个片段的适当表示,来解决关于下一个片段的片段下载问题。例如,当在预计要发生预期的回放停顿之前,当前片段的新表示不能被下载并且可用于回放时,即使处理器预期到回放停顿,处理器也不会采取任何动作。
图4示出了可以由接收机设备处理器来实现的、用于响应于识别由接收带宽上的下降引起的切换情形而确定是否要切换到具有最低比特速率的表示的实施例方法400。方法400的操作实现了上面参考图3所描述的方法300的操作的实施例。在一个实施例中,当接收机设备处理器鉴于识别劣化的带宽切换情形而具有非常少的时间来确定是否要切换表示时,接收机设备处理器可以执行方法400的操作。
在框302中,在如上面参考图3所描述的,接收机设备处理器可以在按照当前表示对当前片段的下载期间识别切换情形。例如,接收机设备处理器可以识别带宽上的突然下降、识别接收机设备何时进入低功率状态、或者识别可能影响接收机设备的一个或多个性能目标和/或优化的各种其它事件。
在框304中,接收机设备处理器可以基于切换情形以及与上面所描述的切换情形相关的一个或多个性能目标和/或优化来确定成本阈值。例如,鉴于带宽上的突然下降,接收机设备处理器可以认识到可能要求切换表示以达到某一恒定的功耗率。
在框402中,接收机设备处理器可以选择具有可用于当前片段的最低比特速率的表示。在识别切换情形之后,接收机设备处理器可能具有非常短的时间段来确定切换表示是否会有益于接收机设备的性能,例如通过满足一个或多个性能目标和/或优化。在该情形下,接收机设备处理器可能没有时间来确定最佳表示,并且因此仅具有时间来确定切换到最低比特速率表示是否将有益于接收机设备的性能。在一个实施例中,从当前表示切换表示到最低比特速率表示(例如,最小成本表示)可能要求最少的时间量和/或资源量,这是因为最低比特速率表示具有用于接收的最小数据量,从而要求比其它表示更少的用于接收的时间和功率。
在框306中,接收机设备处理器可以确定切换到所选择的具有最低比特速率的表示的成本。如上面所讨论的,取决于与所识别的切换情形相关的特定性能目标和/或优化,接收机设备处理器可以从如上面所描述的时间(例如,切换到最小成本表示会花费多久)、功率(例如,切换到最小成本表示会需要多少功率)和/或其它因素的角度上来确定切换到最小成本表示的成本。
在确定框407中,接收机设备处理器可以确定切换到最低比特速率表示的成本是否超过成本阈值。如上面参考图3所描述的,仅当切换会有益于接收机设备的性能或者以其它方式满足一个或多个性能目标和/或优化时,接收机设备处理器才会切换表示。在一个实施例中,由于所选择的表示是最小成本表示,因此框306中所确定的成本可以表示用于切换到另一个表示的最小成本,使得如果接收机设备处理器确定切换到最低比特速率表示的成本超过成本阈值,则由于其它表示很可能具有与最低比特速率表示相同或者大于最低比特速率表示的成本,因此接收机设备可能不会从切换到任何其它表示中获益。
当接收机设备处理器确定切换到最低比特速率表示的成本超过成本阈值时(即,确定框407=“是”),在框312中,处理器可以继续正在进行的下载。当接收机设备处理器确定切换到最低比特速率表示的成本不超过成本阈值时(即,确定框407=“否”),在框408中,处理器可以向服务器发送取消请求,以取消按照当前表示对当前片段的正在进行的下载。在不存在取消特征的实施例中(例如,在HTTP中),接收机设备处理器可以简单地执行TCP拆除以停止按照当前的表示下载当前下载。
在框410中,接收机设备处理器可以请求对当前片段的最低比特速率表示的下载。在一个实施例中,接收机设备处理器可以与HTTP服务器建立新的TCP连接,并且可以请求对当前片段的最低比特速率表示的下载。
图5示出了可以由在接收机设备上操作的处理器来实现的、用于响应于识别切换情形而确定可以满足一个或多个性能目标和/或优化的最高比特速率表示的实施例方法500。方法500的操作实现了上面参考图3所描述的方法300的操作的实施例。
在框302中,如上面参考图3所描述的,接收机设备处理器可以在按照当前表示对当前片段的下载期间识别切换情形。在一个实施例中,当切换情形指示切换到具有比当前表示更高或更低的比特速率的表示会有益于接收机设备时(例如,带宽上的突然增加或下降、接收机设备进入低功率状态、接收机设备连接到充电器、或者可能影响接收机设备的一个或多个性能目标和/或优化的各种其它事件),接收机设备处理器可以执行方法500。
在框304中,接收机设备处理器可以基于切换情形来确定成本阈值。如上面所描述的,接收机设备处理器可以基于与切换情形相关的一个或多个性能目标和/或优化来确定成本阈值。
在框502中,接收机设备处理器可以生成可用于当前片段的表示的以比特速率的降序排列的有序列表。在一个实施例中,可以在切换情形出现之前执行框502中的生成可用于片段的表示的有序列表,例如在下载视频流的开始处,或者在接收机设备处理器被通知内容表示的所有源时的另一时间。
在框504中,接收机设备处理器可以选择表示的有序列表中的下一个表示。在一个实施例中,接收机设备处理器可以首选选择列表中具有最高比特速率的表示,并且可以随后选择具有递减的比特速率的其它表示。在一个实施例中,接收机设备处理器可以按比特速率的递减次序来迭代地检查可用表示。当切换情形是由带宽上的突然增加引起的时,处理器可以从最高比特速率开始检查可用表示。当切换情形是由带宽上的突然减小引起的时,处理器可以以具有比当前表示的比特速率要小的比特速率的表示开始来检查可用表示。
在框306中,接收机设备处理器可以确定切换到所选择的表示的成本。在确定框308中,接收机设备处理器可以确定切换到所选择的表示的成本是否超过成本阈值。在一个实施例中,由于接收机设备处理器选择有序列表中的表示,因此处理器可以测试每个所选择的表示,以确定接收机设备是否会如上面所描述的从切换到所选择的表示中获益。
当接收机设备处理器确定切换到所选择的表示的成本不超过成本阈值时(即,确定框308=“否”),在框408中,处理器可以向服务器发送取消请求,以取消按照当前表示对当前片段的正在进行的下载,如上面参考图4所描述的。例如,接收机设备处理器可以执行TCP拆除以停止按照当前表示下载当前下载。在框410中,接收机设备处理器还可以请求按照所选择的表示对当前片段的下载。
当接收机设备处理器确定切换到所选择的表示的成本超过成本阈值时(即,确定框308=“是”),在框506中,处理器可以确定是否已选择了表示的有序列表中的每个表示。换句话说,接收机设备处理器可以顺序地选择表示的有序列表中的每个表示,直到接收机设备处理器确定切换到所选择的表示的成本不会超过成本阈值为止或者直到已评估了所有表示为止。
当接收机设备处理器确定有序列表中存在另一个表示要评估时(即,确定框506=“否”),在框504中,过程可以选择有序列表中的下一个表示,并且重复在上面所描述的框306和308中的评估。
当接收机设备处理器确定已选择了表示的有序列表中的每个表示时(即,确定框506=“是”),在框312中,处理器可以继续正在进行的下载,在该情况下,将通过执行上面所描述的主速率选择算法的操作来解决致使切换情形的问题。
在另外的实施例(未示出)中,当处理器具有充足的时间来确定接收机设备是否会通过切换到列表中所选择的表示中的一个表示而获益或者以其它方式满足一个或多个性能目标和/或优化时,接收机设备处理器可以执行方法500的操作。在一个实施例中,当接收机设备处理器确定不存在充足的时间来测试表示的有序列表中的每个表示时,处理器可以执行如上面参考图4所描述方法400的操作。
图6是表示了切换针对当前片段的表示所要求的时间的时间线图600。在一个实施例中,响应于识别由带宽上的突然下降引起的即将出现的播出停顿,接收机设备处理器可以确定是否存在足够的时间从当前正在下载的当前片段的表示切换到具有较低比特速率的表示以避免播出停顿。为了做出该确定,接收机设备处理器可以估计执行图6中所示出的切换表示所要求的各种操作所需要的时间。切换表示的过程可以通过向HTTP服务器发送取消消息(例如,作为TCP拆除过程的一部分)在第一时间604(例如,时间T1)处开始。发送给HTTP服务器的取消消息会花费估计二分之一的往返时间(1/2RTT),从接收机设备在第一时间604处发送取消请求时的时刻直到HTTP服务器在第二时间606(例如,时间T2)处接收并处理取消请求时为止。
在当接收机设备处理器发送取消请求时和当HTTP服务器接收取消请求时之间的时间期间(例如,在时间T1和T2之间),HTTP服务器可以继续向接收机设备发送当前片段数据,其中接收机设备将在第三时间608(例如,时间T3)处接收该当前片段数据(例如,空中数据)。例如,HTTP服务器可以将针对当前片段的数据发送给路由器,其中路由器可以继续将空中数据发送给接收机设备以用于按照当前表示下载当前片段,而不管HTTP服务器是否已在后来停止了按照当前表示发送针对当前片段的下载数据。因此,接收机设备可以丢弃从第三时间608(即,时间T3)以来的所有空中数据,直到接收机设备最终开始在第四时间610(例如,时间T4)处按照新的表示接收针对当前片段的下载数据为止。在一个例子中,从数据管道中清除空中数据所要求的时间量(例如,在第三时间608和第四时间610之间的时间段)可能大约是两个往返时间(例如,2RTT)。
在一个实施例中,取消按照当前表示对当前片段的正在进行的下载所需要的时间可以是时间T1和T4之间的时间段612,该时间段612包括从当接收机设备在第一时间T1604处发送取消请求时直到当接收机设备在第四时间T4610处开始按照新的表示接收当前片段时为止的时间。在另一个实施例中,按照新的表示下载当前片段所需要的时间可以是第四时间T4610和第五时间T5614(在第五时间T5614处将完成按照新的表示对当前片段的下载)之间的时间段616。因此,切换表示到新的表示的成本可以是切换表示所需要的总时间,该总时间被计算为用于取消第一下载并且请求对不同表示的下载的时间段612加上用于完成对不同表示的下载的时间段616的总和。下面参考图7进一步描述从时间的角度上来计算切换表示的成本。
尽管时间线图600示出了从时间角度上的切换表示的成本,但是预期的是,接收机设备处理器可以从其它角度上来计算切换表示的成本,例如,切换到新的表示所要求的功率。
图7示出了可以由接收机设备处理器来实现的、用于当切换表示所要求的总时间不超过时间成本阈值时切换表示以避免播出停顿的实施例方法700。方法700的操作实现了上面参考图3所描述的方法300的操作的实施例。
在框702中,接收机设备处理器可以在按照当前表示对当前片段的正在进行的下载期间识别何时将发生即将出现的播出停顿。换句话说,在接收机设备下载当前片段时,处理器可以检测到在一些或整个当前片段可用于播出之前播出缓冲区将变空(例如,媒体都已被播放了)。
在一个实施例中,如上面参考图2所描述的,为了识别即将出现的播出停顿,接收机设备处理器可以获得若干个输入变量,例如带宽估计、当前回放时间、回放模型(例如,是否可以播出已部分下载的片段)以及总的媒体缓冲持续时间。如上面所讨论的,接收机设备处理器可以从配置参数或者从设备内置(on-device)的测量来获得该信息。
在一个实施例中,当预测到要停顿的倾向时,接收机设备处理器可以假设当片段部分下载时可以播出该片段,在该情况下,只要当前片段在回放达到当前片段的结尾之前将完全下载,接收机设备处理器就可以确定不会发生停顿。在另外的实施例中,接收机设备处理器在确定是否将发生播出停顿时可以采用保守的预测模型。
在一个实施例中,接收机设备处理器可以获得以下信息来预测即将出现的播出停顿:当前分组速率带宽估计(“pkerrate”)、正在下载的片段的播出开始和结束时间(“segment_start_ptime”和“segment_end_ptime”)、来自MPD的当前片段的标称表示比特速率(“rep_bit_rate”)、在不计算队列延迟情况下的接收机设备和HTTP服务器之间的估计的往返时间(“rtt”)、以及被计算为pkerrate和RTT的乘积的带宽延迟乘积(“bdp”)。接收机设备处理器还可以确定来自每个活动TCP连接的所有接收机缓冲区大小的总和(“total_rcvbuf”),其中“活动”TCP连接可以是指具有正在进行的数据传输的TCP连接。接收机设备处理器还可以确定媒体呈现的当前回放时间(“current_ptime”)、已下载的当前片段的字节数(“bytes_downloaded”)、以及当前片段所属的适配集的相对权重(“as_weight”)。在一个实施例中,as_weight可以是0和1之间的值。接收机设备处理器还可以将针对适配集的相对权重(“as_weight”)确定为pkerrate和as_weight的乘积。
在一个实施例中,接收机设备处理器可以通过使用上面所描述的信息、用下面以伪码给出的算法来预测播出停顿:
segment_duration=segment_end_ptime–segment_start_ptime;
nominal_segment_size=rep_bit_rate*segment_duration;
bytes_available=as_pkerrate*(segment_end_ptime–current_ptime);
bytes_needed=nominal_segment_size–bytes_downloaded;
if(bytes_available<bytes_needed)
stall_prediction=true;
换句话说,当可用于播出的字节数(例如,“bytes_available”)小于为了确保平滑播出所需要的字节数(例如,“bytes_needed”)时,接收机设备处理器可以预测播出停顿(例如,“stall_prediction=true”)。
返回到图7,在框704中,接收机设备处理器可以基于即将出现的播出停顿来确定时间成本阈值。在一个实施例中,时间成本阈值可以表示在发生播出停顿之前的时间量,例如,在接收机设备处理器开始播放当前片段之前的时间量。在另外的实施例中,时间成本阈值可以包括多个条件/阈值。例如,时间成本阈值可以要求按照不同表示对当前片段的重新下载在某一时间之前开始,并且还可以要求该下载在另外的某一时间之前完成。在该例子中,仅当按照不同表示对当前片段的下载将在接收机设备处理器开始播出当前片段之前开始时,并且仅当按照不同表示对当前片段的下载将在播出达到当前片段的结尾之前完成时,切换表示才会避免播出停顿。
在框705中,接收机设备处理器可以生成可用于当前片段的表示的、针对具有低于当前表示的比特速率的每个表示以降序排列的有序列表。在一个实施例中,接收机设备处理器可以按比特速率的递减次序来迭代地检查可用表示,以确定接收机设备处理器可以向之切换表示的最佳可用表示。
在另一个实施例中,接收机设备处理器可以生成表示的有序列表,以仅包括具有最低比特速率的表示。在该实施例中,如上面参考图4所描述的,接收机设备处理器可以快速地确定切换到最小成本表示是否会避免播出停顿。
如上面参考图5中的框502所讨论的,可以在出现切换情形之前执行框705中的对可用于片段的表示的有序列表的生成,例如在开始下载视频流处或者在接收机设备处理器被通知内容表示的所有源时的另一时间。
在框504中,接收机设备处理器可以选择表示的有序列表中的下一个表示。在一个实施例中,接收机设备处理器可以首先选择列表中具有最高比特速率的表示,并且可以随后选择具有递减的比特速率的其它表示。
在框706中,接收机设备处理器可以确定取消按照当前表示对当前片段的正在进行的下载的成本。在一个实施例中,取消下载的成本可以包括两个部分:拆除并建立与HTTP服务器的新TCP连接所要求的时间(“RTT开销成本”)以及从数据管道中清除空中数据所要求的时间(“空中数据开销成本”)。
在一个实施例中,RTT开销成本可以包括拆除/重置与HTTP服务器的TCP连接所需要的时间,该时间可以包括向HTTP服务器发送取消消息,其中到达HTTP服务器大概花费二分之一的RTT。RTT开销成本还可以包括开始与HTTP服务器的新TCP连接以请求按照所选择的表示下载当前片段所需的时间。为了开始新TCP连接,接收机设备处理器和HTTP服务器可以建立新连接(例如,经历握手过程),这会花费一到两个RTT。此外,新TCP连接可以实现“慢启动(slowstart)”算法,这意味着TCP连接大概在两到三个RTT之后逐渐斜升到最大能力。在另外的实施例中,上面所描述的RTT开销成本的一个或多个方面可以包括额外的时间(例如,缓冲),其用于产生对拆除现有TCP连接并开始与HTTP服务器的新TCP连接所需要的时间的保守估计。
如上面参考图6所描述的,空中数据开销成本可以包括从数据管道清除空中数据所需的时间。因此,尽管在接收机设备处丢弃了空中数据,但是空中数据还是会花费时间和带宽来接收和丢弃,从而增加了按照不同表示重新下载当前片段所需的开销时间。
在框708中,接收机设备处理器可以确定按照所选择的表示下载当前片段的成本。在一个实施例中,接收机设备处理器可以将按照所选择的表示的当前片段的大小计算为所选择的表示的比特速率和当前片段的播出开始和结束时间的乘积。接收机设备处理器然后可以通过将按照所选择的表示的当前片段的大小除以用于当前片段所属的适配集的经估计的带宽,来计算按照所选择的表示下载当前片段所需的时间(例如,下载当前片段的成本)。
在框710中,接收机设备处理器可以计算基于按照所选择的表示下载当前片段的成本与取消按照当前表示对当前片段的下载的成本的总和的总时间成本。
在另一个实施例(未示出)中,接收机设备处理器可以将上面计算的各个单位转换为时间单位,使得总时间成本以时间为单位(例如,秒或者毫秒)。
在确定框712中,接收机设备处理器可以确定总时间成本是否超过时间成本阈值(例如,切换表示到所选择的表示是否可以避免播出停顿)。在一个实施例中,接收机设备处理器可以确定,仅当切换表示到所选择的表示将很有可能完全避免播出停顿时,切换表示才会有益于接收机设备的性能。在该实施例中,接收机设备处理器可以实现以下策略:当由于除了播出停顿(即使当播出停顿变得稍微更短时)之外,由切换表示造成的较低的比特速率/质量可能会比遭受预期的播出停顿对用户体验导致总的来说更坏的影响,而不能够避免播出停顿或者可以不避免播出停顿时,不切换表示可能是适当的。
当接收机设备处理器确定总时间成本不超过时间成本阈值时(即,确定框712=“否”),在框310中,处理器可以切换到所选择的表示,如上面参考图3所描述的。
当接收机设备处理器确定总时间成本超过时间成本阈值时(即,确定框712=“是”),在确定框506中,处理器可以确定是否已选择了表示的有序列表中的每个表示。在一个实施例中,接收机设备处理器可以按递减次序来选择具有低于当前表示的比特速率的每个表示,以确定将避免播出停顿的、具有可用于当前片段的最高比特速率的表示。
当接收机设备处理器确定表示的有序列表中存在要选择的另一个表示时(即,确定框506=“否”),在框504中,处理器可以选择表示的有序列表中的下一个表示。只要接收机设备处理器还未选择表示的有序列表中的每个表示,该过程就可以继续循环下去。
当接收机设备处理器确定已选择了表示的有序列表中的每个表示时(即,确定框506=“是”),在框312中,处理器可以继续正在进行的下载。换句话说,接收机设备处理器可能不会尝试避免播出停顿,并且可能替代地通过执行主速率选择算法来解决将来的播出问题。
图8示出了可以由接收机设备处理器来实现的、用于切换到另一个表示以满足多个性能目标和/或优化的实施例方法800。方法800的操作可以实现上面参考图3所描述的方法300的操作的实施例。
在框302中,接收机设备处理器可以在按照当前表示对当前片段的下载期间识别切换情形。如上面参考图3所描述的,当处理器基于接收机设备的可用资源上的变化来确定在当前片段的下载期间会损害一个或多个性能目标(例如,平滑播出、某一功耗率、平均比特速率等等)时,会出现切换情形。
在框802中,接收机设备处理器可以基于切换情形来确定多个成本阈值。例如,接收机设备处理器可能尝试确保维持平均比特速率/播出质量,以及某一功耗性能目标和平滑播出。在下面进一步描述的实施例中,接收机设备处理器可以使用多个成本阈值来确定切换表示是否会满足各种性能目标和/或优化。
在框305中,接收机设备处理器可以选择当前片段的另一个表示。例如,接收机设备处理器可以选择具有可用于当前片段的最低比特速率或最高比特速率的表示。在上面参考图5和图7所讨论的实施例中,接收机设备处理器可以生成可用于当前片段的表示的、针对具有低于当前表示的比特速率的每个表示以降序排列的有序列表。在该实施例中,接收机设备处理器可以按比特速率的递减次序来迭代地检查有序列表中的表示以选择某一表示(如果有的话),对于所选择的表示,如下面进一步描述的,切换到该表示的成本不超过多个成本阈值中的任何成本阈值。
在框804中,接收机设备处理器可以选择多个成本阈值中先前未被选择的成本阈值,并且确定切换到所选择的表示的成本是否会超过多个成本阈值中的任何成本阈值。换句话说,接收机设备处理器可以测试所选择的表示是否满足由多个成本阈值中的每个成本阈值所表示的性能目标和/或优化。
在框806中,接收机设备处理器可以基于所选择的成本阈值来确定切换到所选择的表示的成本。例如,当接收机设备处理器选择与平滑回放性能目标相关联的成本阈值(例如,如上面参考图7所描述的)时,接收机设备处理器可以从取消对当前表示的下载以及按照所选择的表示重新下载当前片段所需的时间的角度上来确定切换到所选择的表示的成本。在另一个例子中,当接收机设备处理器选择与功耗性能目标相关联的成本阈值时,处理器可以从取消对当前片段的下载所需的功率以及按照所选择的表示接收并解码针对当前片段的数据所需的功率的角度上来确定切换表示到所选择的表示的成本。
在确定框808中,接收机设备处理器可以确定切换到所选择的表示的成本是否超过所选择的成本阈值。如上面所描述的,仅当切换会满足与所选择的成本阈值相关的性能目标时,接收机设备处理器才会切换到表示。
在一个实施例中,接收机设备处理器可以检查切换到所选择的表示是否会超过多个成本阈值中的任何一个成本阈值。换句话说,接收机设备处理器可以要求切换到所选择的表示必须满足与多个成本阈值相关联的每个性能目标。例如,接收机设备处理器可以确定切换到所选择的表示会避免播出停顿,但是需要过多的功率来调整进行切换。在该情形下,接收机设备处理器可以确定不切换到所选择的表示,这是因为通过切换不能满足每个性能目标。
当接收机设备处理器确定切换到所选择的表示的成本超过所选择的成本阈值时(即,确定框808=“是”),在框312中,处理器可以继续正在进行的下载。换句话说,当接收机设备处理器确定取消并重新下载当前片段的成本不会有益于接收机设备的性能时(即,成本超过多个成本阈值中的一个或多个成本阈值),处理器可以等待以通过执行主速率选择算法来解决致使切换情形的问题。
在接收机设备处理器实现了表示的有序列表的实施例中,接收机设备处理器可以继续选择有序列表中的表示,以确定表示的有序列表中的任何表示是否不超过多个成本阈值中的任何成本阈值。
当接收机设备处理器确定切换到所选择的表示的成本不超过所选择的成本阈值时(即,确定框808=“否”),在确定框810中,处理器可以确定针对所选择的表示是否已评估了多个成本阈值中的每个成本阈值。
当接收机设备处理器确定针对所选择的表示存在多个成本阈值中所包括的另一个成本阈值要评估时(即,确定框810=“否”),在框804中,处理器可以选择多个成本阈值中的下一个成本阈值。接收机设备处理器可以以此方式继续选择并评估成本阈值,直到已评估了所有的成本阈值为止,或者直到接收机设备处理器确定切换到所选择的表示的成本会超过多个成本阈值中的至少一个成本阈值为止。
如上面参考图3所描述的,当接收机设备处理器确定针对所选择的表示已评估了所有成本阈值时(即,确定框810=“是”),在框310中,处理器可以切换到所选择的表示,并且开始切换表示到所选择的表示的过程。
图9示出了可以由接收机设备处理器来实现的、用于确定当额外的资源可用于接收机设备时是否要切换表示的实施例方法900。方法900的操作实现了上面参考图3所描述的方法300的操作的实施例。
在框902中,接收机设备处理器可以在按照当前表示对当前片段的正在进行的下载期间识别到以可用于接收机设备的资源上的增加为特征的切换情形。例如,接收机设备处理器还可以识别何时存在带宽上的突然增加、接收机设备何时以“高电池”状态运行或者在被插入壁装电源插座时运行、以及何时发生接收机设备的状况上的各种其它变化,其中这些变化可以使得接收机设备处理器能够切换到较高比特速率表示以利用资源上的突然增加。在这些以及其它情形下,可用资源上的增加会致使接收机设备处理器确定通过切换表示到具有较高比特速率的表示是否会改善接收机设备的性能。
在框304中,接收机设备处理器可以基于切换情形来确定成本阈值,例如在当前片段播出之前的时间。
在框904中,接收机设备处理器可以生成可用于当前片段的表示的、针对具有高于当前表示的比特速率的每个表示以降序排列的有序列表。如上面所讨论的,可以在出现切换情形之前完成对表示的有序列表的生成,例如在开始流式传输视频下载处,或者在接收机设备处理器被通知内容表示的所有源时的另一时间。
在框504中,接收机设备处理器可以选择表示的有序列表中的下一个表示。在一个实施例中,接收机设备处理器可以按比特速率的递减次序来选择表示(例如,以具有可用于当前片段的最高比特速率的表示开始),并且可以按递减次序来迭代地检查表示,以便尝试识别具有使得切换到该表示的成本不超过成本阈值的最高比特速率的表示,如下面参考确定框308所描述的。
在框306中,接收机设备处理器可以确定切换到所选择的表示的成本。即使接收机设备处理器已认识到额外的资源可用于接收机设备处理器,但是仍然可能存在与切换到所选择的表示相关联的成本。例如,切换表示可能耗费时间、电池功率等等。
在确定框308中,接收机设备处理器可以确定切换到所选择的表示的成本是否超过成本阈值。例如,接收机设备处理器可以认识到已存在带宽上的突然增加,但是可能最终确定切换表示到更高比特速率会造成播出停顿,这是因为不存在足够的时间来取消、重新开始和按照所选择的表示完成对当前片段的下载。
当接收机设备处理器确定切换到所选择的表示的成本不超过成本阈值时(即,确定框308=“否”),在框310中,处理器可以切换到所选择的表示,例如通过发送取消请求并请求按照所选择的表示下载当前片段。
当接收机设备处理器确定切换到所选择的表示的成本超过成本阈值时(即,确定框308=“是”),在确定框506中,如上面参考图5所描述的,处理器可以确定是否已选择了表示的有序列表中的每个表示。
当接收机设备处理器确定表示的有序列表中存在另一个表示要评估时(即,确定框506=“否”),在框504中,处理器可以选择有序列表中的下一个表示。在一个实施例中,接收机设备处理器可以继续执行对表示的选择和评估,直到已评估了有序列表中的所有表示为止,或者直到处理器确定切换到所选择的表示的成本不超过成本阈值为止。
当接收机设备处理器确定已选择并评估了表示的有序列表中的所有表示时(即,确定框506=“是”),在框312中,处理器可以继续对正在进行的下载的当前操作。在这种情况下,接收机设备处理器可以确定,虽然额外的资源可用于接收机设备,但是不管所选择的表示如何,取消并重新下载当前片段的成本不会有益于接收机设备的性能,并且可以等待以在请求下一个片段时通过在下一个片段边界处执行主速率选择算法,来利用可用于接收机设备的额外资源。
图10示出了可以由在接收机设备上操作的处理器来实现的、用于当接收机设备处理器识别带宽上的突然增加时确定是否要同时按照当前表示和按照不同表示下载当前片段的实施例方法1000。方法1000的操作实现了上面参考图3所描述的方法300的操作的实施例。
在框1002中,接收机设备处理器可以在按照当前表示对当前片段的下载期间识别到以带宽上的突然增加为特征的切换情形。
在框304中,如上面参考图3所描述的,接收机设备处理器可以基于切换情形来确定成本阈值,。例如,响应于识别到带宽上的突然增加,接收机设备处理器可以确定在播出当前片段之前的时间和/或可以确定可用于切换表示的功率量。
在框305中,接收机设备处理器可以选择当前片段的另一个表示,例如具有可用于当前片段的最高比特速率的表示。在上面所描述的实施例(其中接收机设备处理器生成可用于当前片段的表示的有序列表)中,接收机设备处理器可以执行与上面参考图9中所示出的方法900的框904所描述的那些操作类似的操作,例如选择表示的有序列表中的下一个表示。
在框1004中,接收机设备处理器可以确定同时按照当前表示和按照所选择的表示下载当前片段的成本。在该操作中,接收机设备处理器可以确定以下操作是否是有益的:利用带宽上的突然增加来同时按照当前表示和所选择的表示(例如,更高比特速率表示)下载当前片段,以使得接收机设备处理器能够将当前片段的播出从当前表示切换到所选择的表示而不必取消按照当前表示对当前片段的下载。通过同时按照所选择的表示下载当前片段而无需取消按照当前表示对当前片段的下载,接收机设备处理器可以避免取消下载的成本(例如,拆除TCP连接所需的时间)以及由取消下载引起播出停顿的风险。
在确定框1006中,接收机设备处理器可以确定同时下载当前片段的成本是否超过成本阈值。例如,接收机设备处理器可以确定同时下载两个表示不会有益于接收机设备,这是因为接收机设备可能具有低的电池功率,并且下载并解码两个表示会对接收机设备的电池造成不必要的负担。
当接收机设备处理器确定同时下载当前片段的成本不超过成本阈值时(即,确定框1006=“否”),在框1008中,通过在继续按照当前表示下载当前片段的同时,按照所选择的表示向HTTP服务器发送针对当前片段的下载请求,处理器可以在继续正在进行的下载的同时发起对所选择的表示的下载。
在框1010中,接收机设备处理器可以在同时按照当前表示和按照所选择的表示下载当前片段的同时,将当前片段的播出切换到所选择的表示。在一个实施例中,一旦按照所选择的表示的当前片段在适当的时间(例如,在片段边界处)可用于播出,接收机设备处理器就可以将播出切换到按照所选择的表示的当前下载。在一个实施例中,接收机设备处理器可以开始按照当前表示播放当前片段,直到已下载了足够的按照所选择的表示的当前片段为止,并且在该点处接收机设备处理器可以将播出切换到所选择的表示。
当接收机设备处理器确定同时下载当前片段的成本超过成本阈值时(即,确定框1006=“是”),在框312中,处理器可以继续正在进行的下载,并且通过在下一个片段边界处执行主速率选择算法来利用带宽上的突然增加。
在一个实施例中,接收机设备处理器可以继续针对成本阈值来评估表示的有序列表中的表示,直到已评估了有序列表中的每个表示为止,或者直到同时按照当前表示和列表中的特定表示下载当前片段的成本不超过成本阈值为止。
可以用各种移动计算设备中的任何移动计算设备来实现各个方面,图11中示出了它们其中一个例子。移动计算设备1100可以包括处理器1102,其中处理器1102耦合到触摸屏控制器1104和内部存储器1106。处理器1102可以是被指定用于通用或特定处理任务的一个或多个多核集成电路。内部存储器1106可以是易失性或非易失性存储器,并且还可以是安全和/或加密存储器,或者非安全和/或非加密存储器,或者其任意组合。触摸屏控制器1104和处理器1102还可以耦合到触摸屏面板1112,例如电阻感测触摸屏、电容感测触摸屏、红外感测触摸屏等等。另外,移动计算设备1100的显示器不必具有触摸屏能力。
移动计算设备1100可以具有一个或多个无线信号收发机1108(例如,Peanut、蓝牙、Zigbee、Wi-Fi、RF无线)和天线1110,用于发送和接收通信,其中无线信号收发机1108和天线1110彼此耦合和/或耦合到处理器1102。收发机1108和天线1110可以与上面提到的电路一起使用,以实现各种无线传输协议栈和接口。移动计算设备1100可以包括蜂窝网无线调制解调器芯片1116,其实现经由蜂窝网的通信并且耦合到处理器。
移动计算设备1100可以包括耦合到处理器1102的外围设备连接接口1118。外围设备连接接口1118可以单独地被配置为接受一种类型的连接,或者可以被配置为接受各种类型的物理和通信连接(公共的或专有的),例如USB、FireWire、Thunderbolt或PCIe。外围设备连接接口1118还可以耦合到类似配置的外围设备连接端口(未示出)。
移动计算设备1100还可以包括扬声器1114以用于提供音频输出。移动计算设备1100还可以包括壳体1120(由塑料、金属或者组合材料构成)以用于包含本文所讨论的组件中的所有或一些组件。移动计算设备1100可以包括耦合到处理器1102的电源1122,例如一次性电池或可再充电电池。可再充电电池还可以耦合到外围设备连接端口,以便从移动计算设备1100外部的源接收充电电流。移动计算设备1100还可以包括物理按钮1124以用于接收用户输入。移动计算设备1100还可以包括功率按钮1126以用于开启和关闭移动计算设备1100。
提供前述的方法说明和过程流程图仅作为说明性的例子,并非旨在要求或暗示必须用所给出的顺序来执行各个实施例的步骤。如本领域技术人员将意识到的,可以用任何顺序来执行前述实施例中的步骤的顺序。诸如“此后”、“然后”、“接下来”之类的词语并非旨在对步骤的顺序进行限制;这些词语仅用于引导读者贯穿对方法的描述。此外,以单数形式对权利要求要素的任何引用,例如使用冠词“一”、“一个”或“所述”不应解释为将要素限制为单数。
结合本文所公开的实施例描述的各种说明性逻辑框、模块、电路和算法步骤可以实现为电子硬件、计算机软件或者二者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性组件、框、模块、电路和步骤围绕其功能进行了一般性描述。至于这种功能是实现为硬件还是软件,这取决于特定的应用和施加在整体系统上的设计约束。本领域技术人员可以针对每个特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当解释为致使偏离本发明的范围。
可以用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行用于实现结合本文所公开的各方面所描述的各种说明性逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,但在替代方案中,该处理器也可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP内核结合的一个或多个微处理器,或者任何其它此种结构。替代地,可以由专用于给定功能的电路来执行一些步骤或方法。
在一个或多个示例性方面中,可以用硬件、软件、固件或其任意组合实现所描述的功能。如果用软件实现,则所述功能可以作为一条或多条指令或代码存储在非暂时性计算机可读介质或者非暂时处理器可读介质上。本文所公开的方法或算法的步骤可以体现在处理器可执行软件模块中,该处理器可执行软件模块可以驻留在非暂时性计算机可读或处理器可读存储介质上。非暂时性服务器可读、计算机可读或处理器可读存储介质可以是可以由计算机或处理器存取的任何存储介质。通过举例而非限制性的方式,这种非暂时性服务器可读、计算机可读或处理器可读介质可以包括RAM、ROM、EEPROM、FLASH存储器、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或者可用于存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。如本文所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上面各项的组合也包括在非暂时性服务器可读、计算机可读和处理器可读介质的范围内。另外,方法或算法的操作可以作为代码和/或指令的一个或任意组合或集合驻留在可以被并入计算机程序产品中的非暂时性服务器可读、处理器可读介质和/或计算机可读介质上。
提供对所公开的实施例的以上描述是为了使得任何本领域技术人员能够实施或使用本发明。对这些实施例的各种修改对于本领域技术人员来说将是显而易见的,并且在不偏离本发明的精神或范围的情况下,本文所定义的总体原则可以应用于其它实施例。因此,本发明并非旨在受限于本文所示出的实施例,而是要符合与所附权利要求以及本文所公开的原则和新颖性特征相一致的最广范围。

Claims (28)

1.一种在接收机设备上响应于识别切换情形而确定是否要取消按照当前表示对内容的当前片段的正在进行的下载并且切换到所述当前片段的另一个表示的方法,包括:
选择所述当前片段的另一个表示;
确定切换到所选择的表示的成本;
确定切换到所选择的表示的所述成本是否超过基于所述切换情形的成本阈值;以及
执行以下各项中的一项:
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示;或者
响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载。
2.根据权利要求1所述的方法,还包括:识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,何时将发生即将出现的播出停顿,其中:
基于所述切换情形的所述成本阈值包括基于所述即将出现的播出停顿的时间成本阈值;以及
确定切换到所选择的表示的成本包括:
确定取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本;
确定按照所选择的表示下载所述当前片段的成本;
基于所述按照所选择的表示下载所述当前片段的成本与所述取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本的总和,来计算总时间成本;以及
确定所述总时间成本是否超过所述时间成本阈值。
3.根据权利要求2所述的方法,其中:
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定所述总时间成本不超过所述时间成本阈值而切换到所选择的表示;以及
响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定所述总时间成本超过所述时间成本阈值而继续所述正在进行的下载。
4.根据权利要求1所述的方法,还包括:
基于所述切换情形来确定多个成本阈值;
选择所述多个成本阈值中先前未被选择的成本阈值;
基于所选择的成本阈值来确定切换到所选择的表示的成本,其中,确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述切换到所选择的表示的成本是否超过所选择的成本阈值;
响应于确定所述切换到所选择的表示的成本不超过所选择的成本阈值,确定针对所选择的表示是否已评估了所述多个成本阈值中的每个成本阈值;以及
响应于确定针对所选择的表示还未评估所述多个成本阈值中的每个成本阈值,选择所述多个成本阈值中先前未被选择的成本阈值,
其中,响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定针对所选择的表示已评估了所述多个成本阈值中的每个成本阈值而切换到所选择的表示。
5.根据权利要求1所述的方法,还包括:
生成可用于所述当前片段的表示的、针对具有低于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,选择所述当前片段的另一个表示包括:选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;以及
执行以下各项中的一项:
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示;或者
响应于确定已选择了所述表示的有序列表中的每个表示,继续所述正在进行的下载。
6.根据权利要求1所述的方法,还包括:
识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以可用于所述接收机设备的资源的增加为特征的切换情形;
生成可用于所述当前片段的表示的、针对具有高于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,选择所述当前片段的另一个表示包括:选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;以及
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示,
其中,响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定已选择了所述表示的有序列表中的每个表示而继续所述正在进行的下载。
7.根据权利要求1所述的方法,还包括:
识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以带宽的突然增加为特征的切换情形,其中:
确定切换到所选择的表示的成本包括:确定同时按照所述当前表示和按照所选择的表示下载所述当前片段的成本;以及
确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述同时下载所述当前片段的成本是否超过所述成本阈值;以及
执行以下各项中的一项:
响应于确定所述同时下载所述当前片段的成本超过所述成本阈值,继续所述正在进行的下载;或者
响应于确定所述同时下载所述当前片段的成本不超过所述成本阈值,在继续所述正在进行的下载的同时发起对所选择的表示的下载,并且在同时按照所述当前表示下载所述当前片段的同时将所述当前片段的播出切换到所选择的表示。
8.一种接收机设备,包括:
存储器;以及
处理器,所述处理器耦合到所述存储器并且被配置有用于执行包括以下各项的操作的处理器可执行指令:
选择按照当前表示的内容的当前片段的另一个表示;
确定切换到所选择的表示的成本;
确定所述切换到所选择的表示的成本是否超过基于切换情形的成本阈值;
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示;以及
响应于确定所述切换的成本超过所述成本阈值而继续对所述当前片段的正在进行的下载。
9.根据权利要求8所述的接收机设备,其中:
所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,何时将发生即将出现的播出停顿;以及
所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:
基于所述切换情形的所述成本阈值包括基于所述即将出现的播出停顿的时间成本阈值;以及
确定切换到所选择的表示的成本包括:
确定取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本;
确定按照所选择的表示下载所述当前片段的成本;
基于所述按照所选择的表示下载所述当前片段的成本与所述取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本的总和,来计算总时间成本;以及
确定所述总时间成本是否超过所述时间成本阈值。
10.根据权利要求9所述的接收机设备,其中,所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定所述总时间成本不超过所述时间成本阈值而切换到所选择的表示;以及
响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定所述总时间成本超过所述时间成本阈值而继续所述正在进行的下载。
11.根据权利要求8所述的接收机设备,其中:
所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:
基于所述切换情形来确定多个成本阈值;
选择所述多个成本阈值中先前未被选择的成本阈值;
基于所选择的成本阈值来确定切换到所选择的表示的成本;
响应于确定所述切换到所选择的表示的成本不超过所选择的成本阈值,确定针对所选择的表示是否已评估了所述多个成本阈值中的每个成本阈值;以及
响应于确定针对所选择的表示还未评估所述多个成本阈值中的每个成本阈值,选择所述多个成本阈值中先前未被选择的成本阈值;以及
所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:
确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述切换到所选择的表示的成本是否超过所选择的成本阈值;以及
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定针对所选择的表示已评估了所述多个成本阈值中的每个成本阈值而切换到所选择的表示。
12.根据权利要求8所述的接收机设备,其中,所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:
生成可用于所述当前片段的表示的、针对具有低于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:选择所述当前片段的另一个表示包括选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示;以及
响应于确定已选择了所述表示的有序列表中的每个表示,继续所述正在进行的下载。
13.根据权利要求8所述的接收机设备,其中:
所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:
识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以可用于所述接收机设备的资源的增加为特征的切换情形;
生成可用于所述当前片段的表示的、针对具有高于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:选择所述当前片段的另一个表示包括选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;以及
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示;以及
所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定已选择了所述表示的有序列表中的每个表示而继续所述正在进行的下载。
14.根据权利要求8所述的接收机设备,其中:
所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以带宽的突然增加为特征的切换情形;
所述处理器被配置有处理器可执行指令,所述处理器可执行指令用于执行操作以使得:
确定切换到所选择的表示的成本包括:确定同时按照所述当前表示和按照所选择的表示下载所述当前片段的成本;以及
确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述同时下载所述当前片段的成本是否超过所述成本阈值;以及
所述处理器被配置有用于执行操作的处理器可执行指令,所述操作还包括:
响应于确定所述同时下载所述当前片段的成本超过所述成本阈值,继续所述正在进行的下载;
响应于确定所述同时下载所述当前片段的成本不超过所述成本阈值,在继续所述正在进行的下载的同时发起对所选择的表示的下载;以及
在同时按照所述当前表示和按照所选择的表示下载所述当前片段的同时将所述当前片段的播出切换到所选择的表示。
15.一种接收机设备,包括:
用于选择按照当前表示的内容的当前片段的另一个表示的单元;
用于确定切换到所选择的表示的成本的单元;
用于确定所述切换到所选择的表示的成本是否超过基于切换情形的成本阈值的单元;
用于响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示的单元;以及
用于响应于确定所述切换的成本超过所述成本阈值而继续对所述当前片段的正在进行的下载的单元。
16.根据权利要求15所述的接收机设备,还包括:用于识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,何时将发生即将出现的播出停顿的单元,其中:
基于所述切换情形的所述成本阈值包括基于所述即将出现的播出停顿的时间成本阈值;以及
用于确定切换到所选择的表示的成本的单元包括:
用于确定取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本的单元;
用于确定按照所选择的表示下载所述当前片段的成本的单元;
用于基于所述按照所选择的表示下载所述当前片段的成本与所述取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本的总和,来计算总时间成本的单元;以及
用于确定所述总时间成本是否超过所述时间成本阈值的单元。
17.根据权利要求16所述的接收机设备,其中:
用于响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示的单元包括:用于响应于确定所述总时间成本不超过所述时间成本阈值而切换到所选择的表示的单元;以及
用于响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载的单元包括:用于响应于确定所述总时间成本超过所述时间成本阈值而继续所述正在进行的下载的单元。
18.根据权利要求15所述的接收机设备,还包括:
用于基于所述切换情形来确定多个成本阈值的单元;
用于选择所述多个成本阈值中先前未被选择的成本阈值的单元;
用于基于所选择的成本阈值来确定切换到所选择的表示的成本的单元,其中,用于确定所述切换到所选择的表示的成本是否超过成本阈值的单元包括:用于确定所述切换到所选择的表示的成本是否超过所选择的成本阈值的单元;
用于响应于确定所述切换到所选择的表示的成本不超过所选择的成本阈值,确定针对所选择的表示是否已评估了所述多个成本阈值中的每个成本阈值的单元;以及
用于响应于确定针对所选择的表示还未评估所述多个成本阈值中的每个成本阈值,选择所述多个成本阈值中先前未被选择的成本阈值的单元,
其中,用于响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示的单元包括:用于响应于确定针对所选择的表示已评估了所述多个成本阈值中的每个成本阈值而切换到所选择的表示的单元。
19.根据权利要求15所述的接收机设备,还包括:
用于生成可用于所述当前片段的表示的、针对具有低于所述当前表示的比特速率的每个表示以降序排列的有序列表的单元,其中,用于选择所述当前片段的另一个表示的单元包括:用于选择所述表示的有序列表中的下一个表示的单元;
用于响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示的单元;
用于响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示的单元;以及
用于响应于确定已选择了所述表示的有序列表中的每个表示,继续所述正在进行的下载的单元。
20.根据权利要求15所述的接收机设备,还包括:
用于识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以可用于所述接收机设备的资源的增加为特征的切换情形的单元;
用于生成可用于所述当前片段的表示的、针对具有高于所述当前表示的比特速率的每个表示以降序排列的有序列表的单元,其中,用于选择所述当前片段的另一个表示的单元包括:用于选择所述表示的有序列表中的下一个表示的单元;
用于响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示的单元;以及
用于响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示的单元,
其中,用于响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载的单元包括:用于响应于确定已选择了所述表示的有序列表中的每个表示而继续所述正在进行的下载的单元。
21.根据权利要求15所述的接收机设备,还包括:
用于识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以带宽的突然增加为特征的切换情形的单元,其中:
用于确定切换到所选择的表示的成本的单元包括:用于确定同时按照所述当前表示和按照所选择的表示下载所述当前片段的成本的单元;以及
用于确定所述切换到所述选择的表示的成本是否超过成本阈值的单元包括:用于确定所述同时下载所述当前片段的成本是否超过所述成本阈值的单元;
用于响应于确定所述同时下载所述当前片段的成本超过所述成本阈值而继续所述正在进行的下载的单元;
用于响应于确定所述同时下载所述当前片段的成本不超过所述成本阈值,在继续所述正在进行的下载的同时发起对所选择的表示的下载,并且在同时按照所述当前表示下载所述当前片段的同时将所述当前片段的播出切换到所选择的表示的单元。
22.一种其上存储有处理器可执行指令的非暂时性处理器可读存储介质,所述处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作包括:
选择按照当前表示的内容的当前片段的另一个表示;
确定切换到所选择的表示的成本;
确定所述切换到所选择的表示的成本是否超过基于切换情形的成本阈值;
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示;以及
响应于确定所述切换的成本超过所述成本阈值而继续对所述当前片段的正在进行的下载。
23.根据权利要求22所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,何时将发生即将出现的播出停顿;以及
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:
基于所述切换情形的所述成本阈值包括基于所述即将出现的播出停顿的时间成本阈值;以及
确定切换到所选择的表示的成本包括:
确定取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本;
确定按照所选择的表示下载所述当前片段的成本;
基于所述按照所选择的表示下载所述当前片段的成本与所述取消按照所述当前表示对所述当前片段的所述正在进行的下载的成本的总和,来计算总时间成本;以及
确定所述总时间成本是否超过所述时间成本阈值。
24.根据权利要求23所述的非暂时性处理器可读存储介质,其中,所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:
响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定所述总时间成本不超过所述时间成本阈值而切换到所选择的表示;以及
响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定所述总时间成本超过所述时间成本阈值而继续所述正在进行的下载。
25.根据权利要求22所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:
基于所述切换情形来确定多个成本阈值;
选择所述多个成本阈值中先前未被选择的成本阈值;
基于所选择的成本阈值来确定切换到所选择的表示的成本,其中,确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述切换到所选择的表示的成本是否超过所选择的成本阈值;
响应于确定所述切换到所选择的表示的成本不超过所选择的成本阈值,确定针对所选择的表示是否已评估了所述多个成本阈值中的每个成本阈值;以及
响应于确定针对所选择的表示还未评估所述多个成本阈值中的每个成本阈值,选择所述多个成本阈值中先前未被选择的成本阈值;以及
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:响应于确定所述切换的成本不超过所述成本阈值而切换到所选择的表示包括:响应于确定针对所选择的表示已评估了所述多个成本阈值中的每个成本阈值而切换到所选择的表示。
26.根据权利要求22所述的非暂时性处理器可读存储介质,其中,所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:
生成可用于所述当前片段的表示的、针对具有低于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:选择所述当前片段的另一个表示包括选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示;以及
响应于确定已选择了所述表示的有序列表中的每个表示,继续所述正在进行的下载。
27.根据权利要求22所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:
识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以可用于所述接收机设备的资源的增加为特征的切换情形;
生成可用于所述当前片段的表示的、针对具有高于所述当前表示的比特速率的每个表示以降序排列的有序列表,其中,所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:选择所述当前片段的另一个表示包括选择所述表示的有序列表中的下一个表示;
响应于确定所述切换到所选择的表示的成本超过所述成本阈值,确定是否已选择了所述表示的有序列表中的每个表示;以及
响应于确定还未选择所述表示的有序列表中的每个表示,选择所述表示的有序列表中的下一个表示;以及
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:响应于确定所述切换的成本超过所述成本阈值而继续所述正在进行的下载包括:响应于确定已选择了所述表示的有序列表中的每个表示而继续所述正在进行的下载。
28.根据权利要求22所述的非暂时性处理器可读存储介质,其中:
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:识别在按照所述当前表示对所述当前片段的所述正在进行的下载期间,以带宽的突然增加为特征的切换情形;
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作以使得:
确定切换到所选择的表示的成本包括:确定同时按照所述当前表示和按照所选择的表示下载所述当前片段的成本;以及
确定所述切换到所选择的表示的成本是否超过成本阈值包括:确定所述同时下载所述当前片段的成本是否超过所述成本阈值;以及
所存储的处理器可执行指令被配置为使得接收机设备处理器执行操作,所述操作还包括:
响应于确定所述同时下载所述当前片段的成本超过所述成本阈值而继续所述正在进行的下载;
响应于确定所述同时下载所述当前片段的成本不超过所述成本阈值,在继续所述正在进行的下载的同时发起对所选择的表示的下载,在同时按照所述当前表示下载所述当前片段的同时将所述当前片段的播出切换到所选择的表示。
CN201480054912.5A 2013-10-07 2014-10-06 用于媒体流式传输的改善的请求取消方法 Pending CN105594182A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/047,061 US9756102B2 (en) 2013-10-07 2013-10-07 Request cancellation method for media streaming
US14/047,061 2013-10-07
PCT/US2014/059365 WO2015054160A1 (en) 2013-10-07 2014-10-06 Improved request cancellation method for media streaming

Publications (1)

Publication Number Publication Date
CN105594182A true CN105594182A (zh) 2016-05-18

Family

ID=51790870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480054912.5A Pending CN105594182A (zh) 2013-10-07 2014-10-06 用于媒体流式传输的改善的请求取消方法

Country Status (5)

Country Link
US (1) US9756102B2 (zh)
EP (1) EP3055966B1 (zh)
JP (1) JP2016541213A (zh)
CN (1) CN105594182A (zh)
WO (1) WO2015054160A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111225243A (zh) * 2020-01-20 2020-06-02 中南大学 一种视频块调度方法及系统
CN115152241A (zh) * 2020-02-04 2022-10-04 杜比国际公司 用于媒体内容的自适应播放的方法和设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9542953B2 (en) * 2014-01-22 2017-01-10 Comcast Cable Communications, Llc Intelligent data delivery
US9860294B2 (en) * 2014-12-24 2018-01-02 Intel Corporation Media content streaming
US10389785B2 (en) * 2016-07-17 2019-08-20 Wei-Chung Chang Method for adaptively streaming an audio/visual material
US10530683B2 (en) * 2016-08-31 2020-01-07 Citrix Systems, Inc. High-quality adaptive bitrate video through multiple links
US10397286B2 (en) * 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US10382517B2 (en) 2017-06-09 2019-08-13 At&T Intellectual Property I, L.P. Estimating network data encoding rate
US11109088B2 (en) * 2019-06-07 2021-08-31 Roku, Inc. Content-modification system with unscheduling feature
US11025987B2 (en) * 2019-08-15 2021-06-01 Hulu, LLC Prediction-based representation selection in video playback
US11076188B1 (en) * 2019-12-09 2021-07-27 Twitch Interactive, Inc. Size comparison-based segment cancellation
US11153581B1 (en) 2020-05-19 2021-10-19 Twitch Interactive, Inc. Intra-segment video upswitching with dual decoding
US11146839B1 (en) * 2020-07-06 2021-10-12 Comcast Cable Communications, Llc Adaptive bitrate streaming

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2360923A1 (en) * 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
CN103139177A (zh) * 2011-11-30 2013-06-05 中国联合网络通信集团有限公司 多媒体数据下载方法和通信系统
US20130227080A1 (en) * 2012-02-27 2013-08-29 Qualcomm Incorporated Dash client and receiver with playback rate selection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526565B2 (en) * 2003-04-03 2009-04-28 International Business Machines Corporation Multiple description hinting and switching for adaptive media services
US8024483B1 (en) * 2004-10-01 2011-09-20 F5 Networks, Inc. Selective compression for network connections
US7477598B2 (en) * 2005-03-25 2009-01-13 International Business Machines Corporation Adaptive stream switching with minimized switching delay
US7577632B2 (en) * 2006-06-05 2009-08-18 Microsoft Corporation Updating estimated process runtime
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9047236B2 (en) * 2008-06-06 2015-06-02 Amazon Technologies, Inc. Client side stream switching
US9294526B2 (en) * 2009-12-28 2016-03-22 Microsoft Technology Licensing, Llc Managing multiple dynamic media streams
JP5996439B2 (ja) 2010-02-19 2016-09-21 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Httpストリーミングにおける表現切り替えのための方法及び装置
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US20140245359A1 (en) 2011-06-01 2014-08-28 Interdigital Patent Holdings, Inc. Content Delivery Network Interconnection (CDNI) Mechanism
US10397294B2 (en) 2011-12-15 2019-08-27 Dolby Laboratories Licensing Corporation Bandwidth adaptation for dynamic adaptive transferring of multimedia
US9374406B2 (en) * 2012-02-27 2016-06-21 Qualcomm Incorporated Dash client and receiver with a download rate estimator
US9571827B2 (en) * 2012-06-08 2017-02-14 Apple Inc. Techniques for adaptive video streaming
WO2014011848A2 (en) * 2012-07-12 2014-01-16 Huawei Technologies Co., Ltd. Signaling and processing content with variable bitrates for adaptive streaming
TWI528798B (zh) * 2012-10-11 2016-04-01 緯創資通股份有限公司 串流資料下載方法及其電腦可讀取儲存媒體

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2360923A1 (en) * 2010-02-24 2011-08-24 Thomson Licensing Method for selectively requesting adaptive streaming content and a device implementing the method
CN103139177A (zh) * 2011-11-30 2013-06-05 中国联合网络通信集团有限公司 多媒体数据下载方法和通信系统
US20130227080A1 (en) * 2012-02-27 2013-08-29 Qualcomm Incorporated Dash client and receiver with playback rate selection

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111225243A (zh) * 2020-01-20 2020-06-02 中南大学 一种视频块调度方法及系统
CN115152241A (zh) * 2020-02-04 2022-10-04 杜比国际公司 用于媒体内容的自适应播放的方法和设备

Also Published As

Publication number Publication date
EP3055966B1 (en) 2017-10-04
JP2016541213A (ja) 2016-12-28
US20150100701A1 (en) 2015-04-09
US9756102B2 (en) 2017-09-05
WO2015054160A1 (en) 2015-04-16
EP3055966A1 (en) 2016-08-17

Similar Documents

Publication Publication Date Title
CN105594182A (zh) 用于媒体流式传输的改善的请求取消方法
US10271112B2 (en) System and method for dynamic adaptive video streaming using model predictive control
KR101653898B1 (ko) 예측적인 적응 미디어 스트리밍
TW202131661A (zh) 用於網路最佳化的裝置及方法、以及非暫時性電腦可讀媒體
US11094346B2 (en) Systems and methods for adaptive streaming of multimedia content
CN105830415B (zh) 用于管理媒体流的方法、无线通信设备和基站设备
KR102185876B1 (ko) 무선 네트워크 환경에서 http 적응적 스트리밍 방법 및 장치
US9998915B2 (en) Wireless communication device
US9680904B2 (en) Adaptive buffers for media players
Turkkan et al. GreenABR: energy-aware adaptive bitrate streaming with deep reinforcement learning
CN105684390A (zh) 用于为自适应流传输客户端预留带宽的方法和设备
CN104702592A (zh) 流媒体下载方法和装置
CN104937891A (zh) 用于在电子设备中控制业务的方法和装置
KR102307447B1 (ko) 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
US9525641B1 (en) Facilitating buffer wait time determination based on device- or entity-related conditions
KR20140105297A (ko) 스트리밍 서비스를 제공하기 위한 동적 버퍼링 방법 및 그 장치
CN110460875A (zh) 一种视频码率的切换方法、装置、电子设备及存储介质
Koch et al. Media download optimization through prefetching and resource allocation in mobile networks
Xu et al. Predictive prefetching for MPEG DASH over LTE networks
CN111741335B (zh) 数据处理方法及装置、移动终端和计算机可读存储介质
WO2023181205A1 (en) Video player, video playback method, and program
US11483368B1 (en) Video streaming method and system
US20240027567A1 (en) Increasing Wireless Network Performance Using Contextual Fingerprinting
US10728911B2 (en) Wireless communication device
Kim et al. Design and Implementation of Bitrate Adaptation Schemes for Power Capping in Wi-Fi Video Streaming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20190903