CN105493456A - 基于比例积分控制的http流送客户端自适应算法 - Google Patents
基于比例积分控制的http流送客户端自适应算法 Download PDFInfo
- Publication number
- CN105493456A CN105493456A CN201480047293.7A CN201480047293A CN105493456A CN 105493456 A CN105493456 A CN 105493456A CN 201480047293 A CN201480047293 A CN 201480047293A CN 105493456 A CN105493456 A CN 105493456A
- Authority
- CN
- China
- Prior art keywords
- data source
- buffer
- data segment
- source speed
- data
- 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.)
- Granted
Links
- 230000006978 adaptation Effects 0.000 title description 8
- 238000000034 method Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 38
- 230000003044 adaptive effect Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 15
- 230000001052 transient effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 10
- 230000009514 concussion Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
在一个实施例中,HTTP流送会话可以在网络中的客户端设备处被发起。客户端设备可以具有缓冲器,并且可以被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段。第一数据段可以以第一数据源速率被请求并且随后被接收。第一数据段可以被存储在缓冲器中。第二数据源速率然后可以基于缓冲器中的存储水平而被计算,并且第二数据段可以以第二数据源速率被请求。
Description
技术领域
本公开一般地涉及计算机网络,并且更具体地涉及超文本传输协议(HTTP)流送客户端自适应算法。
背景技术
现今互联网视频内容的一大部分是在web浏览器中通过自适应超文本传输协议(HTTP)流送而被消耗的。该技术由许多商业开发的系统支持。由客户端设备(例如,计算机、膝上型计算机、平板电脑、智能手机等)驱动的视频传送机制可以基于变化的网络条件(例如,可用带宽和CPU资源)来逐段地、动态地改变其请求的视频的速率和质量。
尽管自适应流送方法对可以容易地对最后一英里“瓶颈”链路的改变进行响应的单个自适应HTTP流送客户端是有效的,但当具有当前被部署的速率自适应逻辑的多个客户端竞争共享的带宽时,许多技术问题出现了。在该情境下,来自个体客户端设备的视频源速率请求经常随着时间的推移未能收敛到其基础的公平份额的带宽。这种情况(通俗地,叫做“多客户端震荡问题”)导致所接收的视频流中的恒定质量震荡。
附图说明
本文中的实施例可以通过参考以下说明并结合附图而被更好地理解,其中相似标号指示相同的或功能上相似的元件,其中:
图1示出了示例视频通信网络;
图2示出了示例客户端节点/视频设备;
图3示出了示例自适应HTTP流送架构;
图4示出了具有单个客户端设备的示例自适应HTTP流送网络;
图5示出了受多客户端震荡问题影响的网络性能的示例;
图6示出了在基于比例积分控制的HTTP流送客户端自适应算法下的网络性能的示例;以及
图7示出了针对网络中具有多个客户端设备的自适应HTTP流送的示例简化过程。
具体实施方式
概述
根据本公开的一个或多个实施例,HTTP流送会话可以在网络中的客户端设备处被发起。客户端设备可以具有缓冲器,并且可以被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段。第一数据段可以以第一数据源速率被请求并且随后被接收。第一数据段可以被存储在缓冲器中。第二数据源速率然后可以基于缓冲器中的存储水平而被计算,并且第二数据段可以以第二数据源速率被请求。
详细说明
图1是示例通信网络100的示意框图,该示例通信网络100示意性地包括节点/设备(例如,被配置为将视频分发到一个或多个机顶盒(STB)120和/或一个或多个计算机125(比如,125a和125b)的视频分发源110)。例如,视频可以被源110分发在任意数量的可用介质中(比如,经由广域网(WAN)130、通过有线网络140、无线(OTA)传输145或卫星传输150等的IP(互联网协议)视频)。此外,在某些实施例中,如本领域技术人员将认识的,计算机(例如,个人计算机或“PC”)可以通过WAN130将视频分发到其他接收设备。例如,两个或更多个计算机可以参与视频共享应用(视频聊天、线上会议等)。本领域的技术人员将理解,任意数量的节点、设备、链路等可以被用在通信网络100中,并且本文中所示的图示是为了简单起见。
注意,机顶盒(STB)120可以包括转换器盒(例如,通用介质服务器或“UMS”),该转换器盒被空中设备(天线)、视频数字用户线(DSL)、IP、线缆和/或卫星服务提供商用来将(来自视频分发源110的)专有信号转换成针对STB用户的音频和/或视频(A/V)输出(例如,电视和/或监视器的图像)。相似地,计算机125还可以被配置为将这些信号转换成用于在相关联的监视器上显示的A/V流(这些信号主要是DSL或IP信号,而其他信号还可以被所提供的合适的设备和配置转换)。
图2是可以与本文中所描述的一个或多个实施例一起被使用的示例客户端节点/设备200(例如,如图1中能够处理本文中所描述的视频的任意节点/设备,比如视频分发接收器120和/或计算机125)的示意框图。该设备可以包括由系统总线250互连的一个或多个通信接口210、至少一个处理器220和存储器240。
(一个或多个)通信接口210包含用于通过网络100的各种传输介质来传送数据(例如,视频)的机械线路、电子电路和信令电路。例如,如以上所标注的以及如本领域技术人员将理解的,接口可以被配置为使用适用于传输介质的各种不同的通信协议来发送和/或接收数据。还需注意,该设备可以具有第一通信接口210a(例如,用于通过WAN130进行通信的互联网协议(IP)接口)和第二通信接口210b(例如,针对如监视器或其他显示设备)的视频输出接口)。
存储器240包括多个可由处理器220寻址的存储位置以用于存储与本文中所描述的实施例相关联的软件程序和数据结构。处理器220可以包括适于执行软件程序和操纵数据结构245(例如,表、值等)的必要元件或逻辑(例如,明确示出的视频缓冲器247(比如,单个缓冲器或单独TCP接收缓冲器和视频解码器缓冲器的代表))。操作系统242(其某些部分通常位于存储器240中并且由处理器执行)通过调用支持设备上运行的软件进程和/或服务的操作来对设备进行功能组织。这些软件进程和/或服务可以包括用作本文中所描述的示意性视频处理进程246和自适应比特率(ABR)处理248。其他进程(例如,允许通过IP网络进行通信的路由进程)为了简单起见未被示出。
对本领域的技术人员显而易见的是,其他处理器和存储器类型(包括各种计算机可读介质)可以被用于存储和执行适于本文中所描述技术的程序指令。此外,尽管说明书示出了各种处理,但明确地认识到各种处理可以被实施为被配置为根据本文中的技术(例如,根据相似处理的功能)进行操作的模块。此外,尽管处理可能已经被单独或组合示出,但本领域的技术人员将认识到处理可以是其他处理内的例程或模块或者相应地其他独立处理。
如以上所提到的,现今互联网视频内容的一大部分在web浏览器中通过自适应HTTP流送而被消耗。该技术由许多商业开发的系统支持。由客户端设备(例如,计算机、膝上型计算机、平板电脑、智能手机等)驱动的视频传送机制可以基于变化的网络条件(例如,可用带宽和CPU资源)来逐段地、动态地改变其请求的视频的速率和质量。例如,当经历临时的网络拥塞时,客户端设备可以切换到更低质量版本的视频以避免缓冲器下溢(underflow)。然后,当连接速度恢复时,客户端设备可以切换回到更高的质量。
在这点上,图3示出了示例自适应HTTP流送架构。架构300包括媒体捕获阶段300,在该阶段媒体内容可以被预存储在源处或者在源处被现场捕获。多个质量版本的媒体内容(例如,多个比特率版本)可以通过合适的处理操作(例如,转码)来生成。此外,每个媒体文件可以被分解成许多小的数据段或者更具体地视频段。在源服务器阶段320,源HTTP服务器可以使用各种技术来记录这些数据段,包括例如,作为单独物理文件的大的集合或者作为通过索引的逻辑分离。在互联网内容传送网络阶段330,额外的内容传送网络(CDN)还可以在网络的边缘处被利用,以便支持将视频内容传播到较广范围的端用户。在客户端设备阶段340,客户端设备(例如,图2中所示的设备200)可以请求和接收媒体内容。媒体内容可以在多个段中被接收。此外,所请求的段的质量(例如,比特率)可以根据由特定客户端设备经历的当前网络约束来变化。
图4示出了具有单个客户端设备的示例自适应HTTP流送网络。端点接收器120可以使用例如ABR处理248来将视频请求消息发送到端点视频发送器110。作为响应,端点视频发送器110可以将视频流发送到端点视频接收器120,其中该视频流被接收到TCP缓冲器(例如,视频缓冲器247)中。ABR处理248然后可以基于当前网络约束、CPU资源和/或缓冲器的占用水平来请求相同的视频速率或不同的视频速率。
然而,当多个客户端竞争共同的瓶颈链路时,个体流经常未能收敛到其基础的公平份额的带宽。例如,若干家庭成员可以通过互联网使能的视频流送服务来从家庭网络(例如,WAN)中的各自设备(例如,膝上型计算机、平板电脑、智能手机等)上观看不同的节目。在该情况下,个体客户端通常经历其接收的视频流的速率和质量中的震荡,从而未能收敛到其基础的公平份额的瓶颈带宽。
沿着相同线路,图5示出了受多客户端震荡问题影响的网络性能的示例。示意性地,被请求的视频速率500跨越共享100Mbps链路的36个HTTP流送客户端而被平均。每一个客户端可以从相同视频内容的10个替换的质量版本中进行选择,其中比特率范围从230Kbps到10Mbps。可以观测到,平均被请求的视频速率500在2Mbps和3Mbps之间周期性地变化,而不是以2.7Mbps收敛到每个客户端公平分配的带宽510。因此,由个体客户端观看到的视频经历了频繁的质量转换。此外,即使这些客户端开始时间被随机地隔开,但客户端趋向于在大约相同的时间上移或下移其速率。
竞争的客户端之间缺乏协调的根本原因可以归因于无论何时网络被低效使用,HTTP客户端都系统地高估其公平分配的瓶颈带宽。因此,当网络上提供的负载在99%和101%之间转换时,估计的带宽激烈地改变,该效应被称为“带宽估计崖(cliff)”。由于个体客户端基于段下载时间来测量带宽,因此其可能经历对其本身带宽份额过高估计、上移视频速率请求、观测延长的段下载时间、并且之后下移视频速率请求等等的恶性循环。因此,系统可能总不会收敛到竞争客户端之间稳定份额的带宽。
HTTP流送客户端自适应算法
本文中的技术提供了对现有HTTP流送系统中普遍的多流震荡问题进行补救的客户端速率自适应算法。所公开的方案目的在于将播放缓冲器稳定在参考水平,并且通过比例积分控制器(PIC)来选择下一视频段的速率。在稳态,PIC客户端自然地将所请求的视频速率与其长期公平带宽份额相匹配。此外,消除“截止时段(off-period)”(例如,段请求之间的时段)通过避免传统客户端遇到的所谓“带宽估计崖”现象来帮助获取视频段。此外,理论上的控制方法使用PIC来允许更精确地控制系统稳定性和建立时间之间的折衷,以及更好地理解以下更详细描述的各种系统性能参数(例如,参考播放缓冲器水平和视频段持续时间)。
具体地,根据以下详细描述的本公开的一个或多个实施例,HTTP流送会话可以在网络中的客户端设备处被发起。客户端设备可以具有缓冲器,并且可以被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段。第一数据段可以以第一数据源速率被请求并且随后被接收。第一数据段可以被存储在缓冲器中。第二数据源速率然后可以基于缓冲器中的存储水平而被计算,并且第二数据段可以以第二数据源速率被请求。
示意性地,本文中所描述的技术可以由硬件、软件和/或固件执行,例如根据自适应比特率处理248来执行,自适应比特率处理248可以包含由处理器220(或接口210的独立处理器)执行的计算机可执行指令以(例如,结合视频处理进程246)执行与本文中所描述的技术相关的功能。例如,本文中的技术可以被视为传统协议(例如,(比如,具体地在主机/接收器120上的)各种自适应比特率协议)的扩展,并且因此,可以相应地由本领域技术人员所理解的执行那些协议的相似组件进行处理。
操作上,所公开的客户端速率自适应算法由至少两个主要概念驱动。第一个概念包括消除(或者至少减少)连续客户端请求之间的暂停间隔。客户端可以持续地请求下一视频段,直到客户端的播放缓冲器已经达到最大限度(例如,客户端缓冲器已满)。持续的HTTP请求消除了传统客户端中的连续请求之间的间隙,并且通过确保始终充分使用网络来避免带宽估计崖。当网络可以以其最高的视频速率来容纳所有客户端并且仍然剩余额外的带宽时,发生可能的例外。在该情况下,由于网络资源被过度供应,因此可以不需要持续地请求后面的数据段。
第二个概念包括单独根据客户端缓冲器水平来导出视频请求速率。具体地,所公开的速率自适应算法依照PIC的格式,并且努力将播放缓冲器稳定在参考水平。这允许在面对突然带宽改变的情况下,严格地确保系统稳定性。此外,算法中的控制器参数可以被调整以在稳定性和响应性之间取得平衡。
一旦网络中的HTTP客户端设备发起HTTP流送会话,则客户端设备可以以第一数据源速率请求第一数据段。特别地,客户端设备可以参与HTTP流送会话,而网络中的多个其他客户端设备参与各自的HTTP流送会话。此外,客户端设备和多个其他客户端设备可以通过共享的通信链路(如图5中所示通过链路520)来接收数据段。在请求做出之后,第一数据段可以(以第一数据源速率)在客户端设备处被从HTTP服务器接收。
如以上所描述的,由HTTP客户端设备接收的数据/视频段可以被存储在视频缓冲器247中。缓冲器水平可以根据所存储的段的数量进行测量,或者在接收视频段的情况下,根据所存储的段的播放时间进行测量。出于本公开的目的,特定视频段的持续时间可以被定义为tau。因此,包含N个段的播放缓冲器的播放持续时间可以是N*tau。
在存储了所接收的数据段之后,客户端设备可以基于缓冲器中的存储水平来计算第二数据源速率。在这点上,每一个客户端设备可以(根据播放时间)首先确定参考播放缓冲器水平L0。参考播放缓冲器水平L0可以与(一个或多个)特定客户端设备的“最优”播放缓冲器水平相对应。通常,自适应HTTP流送系统中所期望的缓冲水平可以落在10到30秒之间。此外,(一个或多个)客户端设备可以随着时间的推移观测实际的播放缓冲器水平L。
在请求下一视频段(例如,“第二数据段”)之前,客户端设备可以计算目标视频源速率R(例如,“第二数据源速率”)。给定当前客户端缓冲器水平L的观测值,客户端设备可以根据以下公式(1)计算将获取的下一段的目标视频源速率R:
R=Rlast+kappa*(L-Lo)+eta*(L-Llast).------(1)
出于本公开的目的,如以下将更详细描述的,R是第二/新计算的数据源速率,Rlast是第一数据源速率(例如,之前计算的视频源速率),L是缓冲器中的当前存储水平,L0是缓冲器中预定的参考存储水平,Llast是缓冲器中之前的存储水平(例如,最近观测的播放缓冲器水平),kappa是第一个预定的换算因数,以及eta是第二个预定的换算因数。
特别地,公式(1)证明了缓冲器水平偏移(offset)对速率选择的影响。具体地,当目前缓冲器装配(build-up)超过参考水平时,存在增大视频源速率的动机。此外,公式(1)反映了速率改变对缓冲器水平的影响。具体地,缓冲器水平的快速增加鼓励更快的视频源速率,然而缓冲器水平的减少导致速率下移。
在许多情况下,每一个客户端设备还可以设置其播放缓冲器的最大限度。在该情况下,无论何时所观测的缓冲器水平达到了该限度,设备都可以抑制请求新数据段。此外,换算因数kappa和eta可以在任意给定的会话中被固定在客户端设备处。其值可以基于视频段持续时间和所期望的可用带宽的范围来进行选择。
因此,第二数据源速率可以单独基于各自客户端设备的缓冲器中的存储水平来进行计算。此外,第二数据源速率计算还可以基于预定的参考存储水平(例如,参考播放缓冲器水平L0)和/或第一数据源速率(例如,根据之前计算的视频源速率Rlast)。一旦新的/第二数据源速率的计算完成,则对应的设备可以以第二数据源速率请求第二数据段。重要地并且如以上所提到的,客户端设备可以在第一数据段被请求之后,立即计算第二数据源速率并以第二数据源速率请求第二数据段,以便消除连续客户端请求之间的暂停间隔。
随着时间的推移,客户端播放缓冲器可以根据以下公式(2)演进:
L=max[Llast+C*tau/Rlast-tau,0].--------(2)
出于本公开的目的,C指定了的客户端设备通过TCP的可用带宽,而其余的变量与公式(1)中所使用的那些变量相对应。根据公式(2),针对每tau秒,到达缓冲器的数据的量是C*tau,其最终将以源速率Rlast播放。根据播放时间所测量的,播放缓冲器在tau秒耗尽,并在C*tau/Rlast秒被重新装满。
因此,可以由以下公式(1)和(2)示出,客户端缓冲器水平L可以随着时间的推移稳定在缓冲器参考水平L0。因此,客户端播放缓冲器水平可以随着时间的推移被稳定(例如,视频源速率R可以匹配可用的网络带宽C),而不是基于所观测的过去的段下载时间来估计带宽。此外,通过将速率自适应问题公式化为比例积分控制器(PIC),所提出的算法可以快速地收敛到匹配客户端可用带宽的视频源速率。
图6示出了在基于本文中所公开的比例积分控制的HTTP流送客户端自适应算法下的网络性能的示例。如图6中所示,竞争的HTTP客户端设备610和620位于相同网络,并且每一个都通过共同的通信链路来参与各自的HTTP流送会话。在该情境下,共同通信链路(客户端设备610和620可以通过该共同的通信链路来请求数据段并接收所请求的数据段)可能遭受瓶颈。
然而,如图6中最上面的图表中所示,在本文中所公开的HTTP流送客户端自适应算法下,两个客户端的所请求的速率在没有图5中所观测的震荡的情况下,都快速地收敛到其“公平份额”的带宽。示意性地,设备610和620的所请求的比特率(Mbps)在HTTP流送会话的大约150秒之后,收敛到“公平份额”的带宽。此外,如图6中最下面的图表中所示,设备610和620的缓冲器水平的每一者都可以稳定到参考缓冲器水平630。示意性地,设备610和620的缓冲器水平在HTTP流送会话的大约200秒之后,稳定到参考缓冲器水平630。因此,不同于图5中所示的情境,所请求的视频源速率最终可以匹配网络中的可用带宽。因此,客户端设备610和620可以坚持其各自的可用网络带宽份额。
图7示出了针对网络中具有多个客户端设备的自适应HTTP流送的示例简化过程。如图7中所示,过程700可以开始于步骤705并继续到步骤710,以此类推,其中如以上所更详细描述的,第二数据源速率基于客户端设备缓冲器中的存储水平而被计算。
在步骤710,过程700包括在网络中的客户端设备处发起超文本传输协议(HTTP)流送会话。客户端设备可以具有缓冲器,并且可以被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段。在步骤715,第一数据段以第一数据源速率被请求。然后,在步骤720,第一数据段以第一数据源速率被接收。在接收了所请求的数据段之后,在步骤725,第一数据段被存储在缓冲器中。接下来,在步骤730,第二数据源速率基于缓冲器中的存储水平而被计算。在步骤735,第二数据段以第二数据源速率被请求。在步骤735之后,自适应HTTP流送处理可以继续进行,直到HTTP流送会话被完成(例如,步骤715到步骤735)。因此,过程700可以回到步骤715。(例如,当HTTP流送会话被完成时,)过程700示意性地结束于步骤740。执行过程700的步骤的技术以及辅助过程和参数在上面被详细描述。
应该理解,图7中所示的步骤只是用于图示的示例,并且某些步骤可以根据需要被包括或排除。此外,尽管步骤的特定顺序被示出,但该顺序只是示意性的,并且步骤的任意合适的安排可以在不脱离本文中实施例的范围的情况下被使用。
因此,本文中所描述的技术提供了在竞争的自适应HTTP流送会话之间以分布式的方式来实现稳定份额的带宽。根据所公开的实施例,只有客户端自适应算法可能需要被修改。在(一个或多个)服务器处可以不需要改变,并且在网络内协调可以不是必要的。因此,所公开的实施例依照现有HTTP流送系统的客户端驱动的性质。重要地,所提出的PIC客户端自适应通过实现在瓶颈链路上稳定网络的使用并随着时间的推移产生较少的视频变化,胜过现有的商业部署方案。
尽管提供自适应HTTP流送算法的示意性实施例已被示出和描述,但应该理解,各种其他的改进和修改可以在本文中实施例的精神和范围内被做出。例如,在其更广的意义上的实施例可以结合各种类型的共享介质网络和/或协议(例如,无线的)而被使用。此外,尽管某些协议被示出,但其他合适的协议可以相应地被使用,包括HTTP的替换协议。
以上说明书是针对具体的实施例。然而显而易见的是,其他改变和修改可以针对所描述的实施例被做出,并获得其优点中的某些或全部。例如,明确地认识到,本文中所描述的组件和/或元件可以作为装置而被实现,该装置包括一个或多个与网络进行通信的网络接口、被耦合到一个或多个网络接口并被配置为执行处理的处理器、和被配置为存储包含可由处理器执行的处理的程序指令的存储器,其中该处理在上面被详细描述。此外,明确地认识到,本文中所描述的组件和/或元件可以作为存储在有形的(非暂态的)计算机可读介质(例如,磁盘/CD/RAM/EEPROM等)上的软件而被实现,其具有在计算机、硬件、固件或其组合上执行的程序指令。相应地,该说明书只以示例的方式示出并且不以其他方式限制本文中实施例的范围。因此,所附权利要求的目的是为了覆盖进入本文中实施例的真正精神和范围内的所有这些改变和修改。
Claims (23)
1.一种方法,包括:
在网络中的客户端设备处发起超文本传输协议(HTTP)流送会话,其中,所述客户端设备具有缓冲器,并且被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段;
以第一数据源速率请求第一数据段;
以所述第一数据源速率接收所述第一数据段;
将所述第一数据段存储在所述缓冲器中;
基于所述缓冲器中的存储水平来计算第二数据源速率;以及
以所述第二数据源速率请求第二数据段。
2.如权利要求1所述的方法,还包括:
在所述第一数据段被请求之后,立即计算所述第二数据源速率并以所述第二数据源速率请求所述第二数据段。
3.如权利要求1所述的方法,其中,所述计算第二数据源速率还基于所述缓冲器中预定的参考存储水平。
4.如权利要求1所述的方法,其中,所述计算第二数据源速率还基于所述第一数据源速率。
5.如权利要求1所述的方法,其中,所述第二数据源速率根据基于比例积分(PI)控制的客户端自适应算法而被计算。
6.如权利要求1所述的方法,其中,所述第二数据源速率根据以下公式而被计算:
R=Rlast+kappa*(L-Lo)+eta*(L-Llast)
其中:
R是所述第二数据源速率,
Rlast是所述第一数据源速率,
L是所述缓冲器中的存储水平,
L0是所述缓冲器中预定的参考存储水平,
Llast是所述缓冲器中之前的存储水平,
kappa是第一个预定的换算因数,以及
eta是第二个预定的换算因数。
7.如权利要求6所述的方法,还包括:
调整以下各项中的一个或多个:所述第一个预定的换算因数和所述第二个预定的换算因数。
8.如权利要求1所述的方法,其中,所述第一数据段和所述第二数据段分别是第一视频段和第二视频段。
9.如权利要求1所述的方法,还包括:
基于所述缓冲器中的存储水平来确定缓冲器播放持续时间。
10.如权利要求1所述的方法,其中:
所述客户端设备参与所述HTTP流送会话,而所述网络中的多个其他客户端设备参与各自的HTTP流送会话,并且
所述客户端设备和所述多个其他客户端设备通过共享的通信链路来接收数据段。
11.如权利要求1所述的方法,还包括:
确定所述缓冲器是否已满,其中,所述第二数据段只有当所述缓冲器未满时被请求。
12.一种装置,包括:
一个或多个网络接口,所述一个或多个网络接口与网络进行通信;
处理器,所述处理器被耦合到所述一个或多个网络接口并被配置为执行处理;和
存储器,所述存储器被配置为存储包含可由所述处理器执行的所述处理的程序指令,所述处理包括:
在所述网络中的客户端设备处发起超文本传输协议(HTTP)流送会话,其中,所述客户端设备具有缓冲器,并且被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段;
以第一数据源速率请求第一数据段;
以所述第一数据源速率接收所述第一数据段;
将所述第一数据段存储在所述缓冲器中;
基于所述缓冲器中的存储水平来计算第二数据源速率;以及
以所述第二数据源速率请求第二数据段。
13.如权利要求12所述的装置,其中,所述处理还包括:
在所述第一数据段被请求之后,立即计算所述第二数据源速率并以所述第二数据源速率请求所述第二数据段。
14.如权利要求12所述的装置,其中,所述计算第二数据源速率还基于所述缓冲器中预定的参考存储水平。
15.如权利要求12所述的装置,其中,所述计算第二数据源速率还基于所述第一数据源速率。
16.如权利要求12所述的装置,其中,所述第二数据源速率根据基于比例积分(PI)控制的客户端自适应算法而被计算。
17.如权利要求12所述的装置,其中,所述第二数据源速率根据以下公式而被计算:
R=Rlast+kappa*(L-Lo)+eta*(L-Llast)
其中:
R是所述第二数据源速率,
Rlast是所述第一数据源速率,
L是所述缓冲器中的存储水平,
L0是所述缓冲器中预定的参考存储水平,
Llast是所述缓冲器中之前的存储水平,
kappa是第一个预定的换算因数,以及
eta是第二个预定的换算因数。
18.如权利要求17所述的装置,其中,所述处理还包括:
调整以下各项中的一个或多个:所述第一个预定的换算因数和所述第二个预定的换算因数。
19.如权利要求12所述的装置,其中,所述第一数据段和所述第二数据段分别是第一视频段和第二视频段。
20.如权利要求12所述的装置,其中,所述处理还包括:
基于所述缓冲器中的存储水平来确定缓冲器播放持续时间。
21.如权利要求12所述的装置,其中:
所述客户端设备参与所述HTTP流送会话,而所述网络中的多个其他客户端设备参与各自的HTTP流送会话,并且
所述客户端设备和所述多个其他客户端设备通过共享的通信链路来接收数据段。
22.如权利要求12所述的装置,其中,所述处理还包括:
确定所述缓冲器是否已满,其中,所述第二数据段只有当所述缓冲器未满时被请求。
23.一种有形非暂态的计算机可读介质,所述有形非暂态的计算机可读介质存储使得计算机执行处理的程序指令,所述处理包括:
在网络中的客户端设备处发起HTTP流送会话,其中,所述客户端设备具有缓冲器,并且被配置为通过HTTP来从HTTP服务器请求和接收一个或多个数据段;
以第一数据源速率请求第一数据段;
以所述第一数据源速率接收所述第一数据段;
将所述第一数据段存储在所述缓冲器中;
基于所述缓冲器中的存储水平来计算第二数据源速率;以及
以所述第二数据源速率请求第二数据段。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/012,225 | 2013-08-28 | ||
US14/012,225 US9485289B2 (en) | 2013-08-28 | 2013-08-28 | HTTP streaming client adaptation algorithm based on proportional-integral control |
PCT/US2014/052530 WO2015031258A1 (en) | 2013-08-28 | 2014-08-25 | Http streaming client adaptation algorithm based on proportional-integral control |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105493456A true CN105493456A (zh) | 2016-04-13 |
CN105493456B CN105493456B (zh) | 2018-10-23 |
Family
ID=51535538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480047293.7A Active CN105493456B (zh) | 2013-08-28 | 2014-08-25 | 基于比例积分控制的http流送客户端自适应方法、装置及计算机可读介质 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9485289B2 (zh) |
EP (1) | EP3039832B1 (zh) |
CN (1) | CN105493456B (zh) |
WO (1) | WO2015031258A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109792545A (zh) * | 2016-09-30 | 2019-05-21 | 英国电讯有限公司 | 观众重要性自适应比特率传送 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9485289B2 (en) * | 2013-08-28 | 2016-11-01 | Cisco Technology, Inc. | HTTP streaming client adaptation algorithm based on proportional-integral control |
FR3021489A1 (fr) * | 2014-05-22 | 2015-11-27 | Orange | Procede de telechargement adaptatif de contenus numeriques pour plusieurs ecrans |
US9756112B2 (en) * | 2015-02-11 | 2017-09-05 | At&T Intellectual Property I, L.P. | Method and system for managing service quality according to network status predictions |
US10270834B2 (en) * | 2015-08-20 | 2019-04-23 | Huawei Technologies Co., Ltd. | System and method for online multimedia streaming services |
CN105376144B (zh) * | 2015-12-04 | 2019-06-18 | 小米科技有限责任公司 | 信息处理方法及装置 |
EP3200429B1 (de) * | 2016-02-01 | 2019-04-17 | Volkswagen Aktiengesellschaft | Verfahren zum abrufen eines datenstroms von einem server sowie fahrzeug mit einem netzwerkzugriffspunkt |
US20180288454A1 (en) * | 2017-03-29 | 2018-10-04 | Kamakshi Sridhar | Techniques for estimating http adaptive streaming (has) video quality of experience |
US10362080B2 (en) | 2017-04-25 | 2019-07-23 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for video streaming adaptation using control theoretic approach |
EP3410728A1 (en) * | 2017-05-30 | 2018-12-05 | Vestel Elektronik Sanayi ve Ticaret A.S. | Methods and apparatus for streaming data |
CN107509120A (zh) * | 2017-09-15 | 2017-12-22 | 上饶市中科院云计算中心大数据研究院 | 一种基于缓冲区下溢概率估计的流媒体自适应传输方法 |
US10581707B2 (en) | 2018-04-10 | 2020-03-03 | At&T Intellectual Property I, L.P. | Method and apparatus for selective segment replacement in HAS video streaming adaptation |
US10728180B2 (en) | 2018-08-21 | 2020-07-28 | At&T Intellectual Property I, L.P. | Apparatus, storage medium and method for adaptive bitrate streaming adaptation of variable bitrate encodings |
US10693575B2 (en) | 2018-08-31 | 2020-06-23 | At&T Intellectual Property I, L.P. | System and method for throughput prediction for cellular networks |
US10868726B2 (en) | 2018-12-07 | 2020-12-15 | At&T Intellectual Property I, L.P. | Apparatus and method for selecting a bandwidth prediction source |
US11490149B2 (en) | 2019-03-15 | 2022-11-01 | At&T Intellectual Property I, L.P. | Cap-based client-network interaction for improved streaming experience |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732183B1 (en) | 1996-12-31 | 2004-05-04 | Broadware Technologies, Inc. | Video and audio streaming for multiple users |
US6006264A (en) | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US6173207B1 (en) * | 1997-09-22 | 2001-01-09 | Agilent Technologies, Inc. | Real-time control system with non-deterministic communication |
US7389354B1 (en) | 2000-12-11 | 2008-06-17 | Cisco Technology, Inc. | Preventing HTTP server attacks |
US7088718B1 (en) | 2002-03-19 | 2006-08-08 | Cisco Technology, Inc. | Server load balancing using IP option field approach to identify route to selected server |
FR2849733A1 (fr) * | 2003-01-02 | 2004-07-09 | Thomson Licensing Sa | Dispositif et procede d'ajustement de debit d'un flux de contenus et produits associes |
JP4655619B2 (ja) * | 2004-12-15 | 2011-03-23 | 日本電気株式会社 | 無線基地局装置およびそのレート制御方法 |
US8438281B2 (en) | 2005-07-06 | 2013-05-07 | Cisco Technology, Inc. | Techniques for accounting for multiple transactions in a transport control protocol (TCP) payload |
US7860996B2 (en) * | 2008-05-30 | 2010-12-28 | Microsoft Corporation | Media streaming with seamless ad insertion |
CN102498715B (zh) * | 2009-05-19 | 2015-09-30 | 宝美瑞思网络有限公司 | 带宽回收用受管理自适应比特率的方法、装置 |
EP2608558A1 (en) * | 2011-12-22 | 2013-06-26 | Thomson Licensing | System and method for adaptive streaming in a multipath environment |
US8843656B2 (en) | 2012-06-12 | 2014-09-23 | Cisco Technology, Inc. | System and method for preventing overestimation of available bandwidth in adaptive bitrate streaming clients |
US9769538B2 (en) * | 2012-12-17 | 2017-09-19 | Cox Communications, Inc. | Systems and methods for content delivery |
US9485289B2 (en) * | 2013-08-28 | 2016-11-01 | Cisco Technology, Inc. | HTTP streaming client adaptation algorithm based on proportional-integral control |
-
2013
- 2013-08-28 US US14/012,225 patent/US9485289B2/en active Active
-
2014
- 2014-08-25 EP EP14762158.5A patent/EP3039832B1/en not_active Not-in-force
- 2014-08-25 CN CN201480047293.7A patent/CN105493456B/zh active Active
- 2014-08-25 WO PCT/US2014/052530 patent/WO2015031258A1/en active Application Filing
-
2016
- 2016-09-26 US US15/275,714 patent/US10200432B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109792545A (zh) * | 2016-09-30 | 2019-05-21 | 英国电讯有限公司 | 观众重要性自适应比特率传送 |
CN109792545B (zh) * | 2016-09-30 | 2021-12-07 | 英国电讯有限公司 | 从服务器向客户端装置传送视频内容的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170013041A1 (en) | 2017-01-12 |
EP3039832B1 (en) | 2018-10-03 |
EP3039832A1 (en) | 2016-07-06 |
US20150067105A1 (en) | 2015-03-05 |
CN105493456B (zh) | 2018-10-23 |
WO2015031258A1 (en) | 2015-03-05 |
US10200432B2 (en) | 2019-02-05 |
US9485289B2 (en) | 2016-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105493456A (zh) | 基于比例积分控制的http流送客户端自适应算法 | |
US11206312B2 (en) | Apparatus and methods for managing quality of experience during the delivery of content | |
CN107743698B (zh) | 用于多路径媒体传递的方法和装置 | |
US9479807B1 (en) | Gateway-based video client-proxy sub-system for managed delivery of A/V content using fragmented method in a stateful system | |
US10848433B2 (en) | Method for distributing available bandwidth of a network amongst ongoing traffic sessions run by devices of the network, corresponding device | |
JP6308718B2 (ja) | マルチパス環境におけるアダプティブストリーミングのためのシステムと方法 | |
US20140215085A1 (en) | System and method for robust adaptation in adaptive streaming | |
US9338209B1 (en) | Use of metadata for aiding adaptive streaming clients | |
US9402114B2 (en) | System and method for providing randomization in adaptive bitrate streaming environments | |
EP2992652B1 (en) | Managing bandwidth allocation among flows through assignment of drop priority | |
KR20200020751A (ko) | 적응형 스트리밍 클라이언트의 동작을 원격으로 관리하는 방법 | |
US10003830B1 (en) | Controller to manage streaming video of playback devices | |
US20130054804A1 (en) | System for Consolidating Heterogeneous Data Centers Through Virtualization of Services | |
EP3207686B1 (en) | Adaptive bit rates during broadcast transmission in distributed content delivery networks | |
EP3095227B1 (en) | System and methods for dynamic transcoder rate adaption for adaptive bit rate streaming | |
EP2408205A1 (en) | A video server, video client and method of scalable encoding video files | |
Colonnese et al. | Cloud-assisted buffer management for http-based mobilevideo streaming | |
WO2021013558A1 (en) | A media client with adaptive buffer size and the related method | |
CN112823527B (zh) | 在能够运行一个自适应流传输会话的设备处实现的方法以及对应的设备 | |
Popescu et al. | Video distribution networks: models and performance | |
EP4099710A1 (en) | Buffer management for live video streaming | |
EP2081363A1 (en) | System and method for selecting a set of serving peers | |
KR20230092199A (ko) | 체감 품질 기반 적응적 멀티뷰 비디오 스트리밍 처리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |