CN110115042B - 在网络中输送视频序列的方法、数据发送器 - Google Patents

在网络中输送视频序列的方法、数据发送器 Download PDF

Info

Publication number
CN110115042B
CN110115042B CN201780081507.6A CN201780081507A CN110115042B CN 110115042 B CN110115042 B CN 110115042B CN 201780081507 A CN201780081507 A CN 201780081507A CN 110115042 B CN110115042 B CN 110115042B
Authority
CN
China
Prior art keywords
segment
time
delivery
representative
schedule
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.)
Active
Application number
CN201780081507.6A
Other languages
English (en)
Other versions
CN110115042A (zh
Inventor
M·尼尔森
Y·胡梅达
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN110115042A publication Critical patent/CN110115042A/zh
Application granted granted Critical
Publication of CN110115042B publication Critical patent/CN110115042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种在网络中输送视频序列的方法、数据发送器。所述序列包括按多个质量编码的多个时间片段,所述方法包括以下步骤:存储对视频流的片段的相对大小进行指示的数据集;根据该数据集计算用于输送所述片段的时间调度,所述时间调度指示各个片段的目标输送时间,所述目标输送时间足以及时输送序列中的所有片段以进行解码,并且所述目标输送时间与各个片段的编码质量无关;针对各个片段:根据所述片段的所述目标输送时间和所述片段的相对大小,设置所述片段的一个或更多个传送参数;并且使用所述一个或更多个传送参数通过所述网络来输送所述片段。

Description

在网络中输送视频序列的方法、数据发送器
技术领域
本发明涉及根据输送调度对用于通过网络来输送片段的传送参数进行控制的技术。
背景技术
对通过网络输送媒体内容(例如,音频和/或视频内容)的需求不断增加。
用于通过网络输送内容流的一种方案是将内容流分割成多个时间片段。然后,可以以一系列数据包的形式通过网络传递每个片段。这种方案的示例是自适应比特率输送。
在自适应比特率输送中,以多个比特率分别对媒体内容流进行编码,以生成多个编码流。如果媒体内容包括音频和视频内容(使得媒体流包括音频流和视频流),则可以分别地并以多个比特率对音频流和视频流中的每一个进行编码,以生成多个编码视频流和多个编码音频流。每个编码媒体流被分割成多个时间片段。例如,每个时间片段可以包含2秒到15秒之间的解码媒体内容。媒体内容的分割可以发生在对媒体流进行编码之前或之后。然后,将媒体内容的片段作为一系列数据包通过网络传递至接收器装置。
输送至接收器的媒体内容的每个片段的比特率可以从编码所述内容的比特率集合中选择,其中,所选择的比特率取决于网络吞吐量条件。因此,接收器装置可以以不同的编码比特率接收媒体内容的片段。该比特率可以由接收器请求该比特率或者由发送方选择。
将内容分割成多个片段的编码方案的示例是恒定质量编码(CQE)。恒定质量编码的目的是以固定的感知质量或主观质量来编码和输送每个内容片段。恒定质量编码基于以下构思:实现输送内容的给定感知质量所需的编码比特率是可变的。例如,视频内容的某些片段(例如快速运动)与其它片段(例如慢速移动或静态场景)相比,会需要相对较高的比特率编码来实现给定的感知质量。因此,在恒定质量编码中,每个片段是利用与该片段中的内容的需求成比例的比特率来编码的。
恒定质量编码的优点是输送内容流将始终具有一致的感知质量。
然而,与恒定质量编码相关联的一个困难是对内容片段的输送进行调度。如果在调度片段以进行输送时不考虑后续片段的比特率需求,那么有可能的是,调整该片段的编码比特率以考虑网络吞吐量条件的需要会导致以接近或表示恒定比特率编码的比特率来输送所述片段。例如,被调度以进行输送的片段可能需要相对高的编码比特率来实现期望的感知质量,但由于输送时的网络吞吐量条件而需要以较低的比特率来输送该片段,从而导致以低于期望感知质量的感知质量输送该片段。
发明内容
根据本公开的一个方面,提供了一种在网络中输送视频序列的方法,所述序列包括各自按多个质量编码的多个时间片段,所述方法包括以下步骤:
计算对所述视频序列的所述时间片段的相对大小进行指示的数据集;
计算所述视频序列的所述时间片段的代表解码调度作为所述视频序列的时间片段的相对大小的累积函数;以及
根据所述代表解码调度,计算用于输送所述视频序列的所述时间片段的代表输送调度,所述代表输送调度指示所述视频序列的各个时间片段的目标输送时间,各个目标输送时间不晚于时间片段的由所述代表解码调度指示的解码时间,并且各个目标输送时间与各个片段的编码质量无关;
针对各个片段:
根据所述时间片段的所述目标输送时间以及所述时间片段的相对大小,设置该片段的一个或更多个传送参数;并且
使用所述一个或更多个传送参数通过所述网络来输送所述时间片段。
所述一个或更多个传送参数可以包括对所述时间片段进行编码的质量和/或用于发送所述时间片段的拥塞窗口大小。
所述代表输送调度可以是具有单调递减斜率的分段线性曲线。
所述方法还可以包括以下步骤:针对第一时间片段之后的各个时间片段,确定与先前输送的时间片段的输送相关联的一个或更多个输送参数;并且还根据所述先前输送的时间片段的输送参数来设置所述一个或更多个传送参数。
所述一个或更多个输送参数可以包括对所述先前输送的时间片段的输送时间与所述先前输送的时间片段的目标输送时间之间的差进行指示的参数。
所述一个或更多个输送参数可以包括与所述先前输送的时间片段的输送相关联的丢包率。
所述数据集可以是针对所述多个质量的相对片段大小的代表集合,所述代表集合指示各个时间片段的代表相对大小。
所述方法还可以包括以下步骤:根据分别对相应质量下的时间片段的相对大小进行指示的多个片段大小集合,来生成针对所述多个质量的相对片段大小的代表集合;并且存储所述代表集合作为所述数据集。
所述代表集合可以是根据针对所述多个质量的片段大小集合的数学平均生成的。
所述代表集合中的各个片段的大小选自如下的片段大小集合中的一个:该片段大小集合对相应质量下的时间片段的相对大小进行指示。
所述方法还可以包括以下步骤:在所述时间片段的输送期间更新所述时间调度,以修正待通过所述网络输送的时间片段的目标输送时间。
可以响应于在片段的目标输送时间之后的时间输送所述片段,对所述时间调度进行更新。
所述时间调度可以是通过从最近输送的时间片段的输送时间到所述视频序列中的接下来出现的临界片段的目标输送时间使用线性插值来更新的,其中,临界片段为:根据初始时间调度计算出的在所述临界片段之后的时间片段的传送速率小于计算出的在所述临界片段之前的时间片段的传送速率。
所述时间调度可以被更新成使得待输送的片段n的经修正的目标输送时间RTD(n)被计算为
Figure GDA0003073613190000031
其中,ATD(m)是在片段m的目标输送时间TD(m)之后输送的所述片段m的实际输送时间,TD(n)是所述片段n的在前目标输送时间,并且TDCP是所述视频序列中的下一临界片段的输送时间。
可以在各个片段的输送之后更新所述时间调度。
根据本公开的第二方面,提供了一种被配置成通过网络输送视频序列的数据发送器,所述视频序列包括按多个质量编码的多个时间片段,所述发送器包括:
参数计算单元,所述参数计算单元被配置成
a)根据对所述视频序列的片段的相对大小进行指示的数据集计算所述视频序列的所述时间片段的代表解码调度,所述代表解码调度是所述视频序列的时间片段的相对大小的累积函数,
b)根据所述代表解码调度,计算用于输送所述视频序列的所述时间片段的代表输送调度,所述代表输送调度指示所述视频序列的各个时间片段的目标输送时间,各个目标输送时间不晚于时间片段的由所述代表解码调度指示的解码时间,并且各个目标输送时间与各个时间片段的编码质量无关,并且
c)针对各个片段,根据所述时间片段的计算出的目标输送时间以及所述时间片段的相对大小,设置所述时间片段的一个或更多个传送参数;以及
派发单元,所述派发单元被配置成使用各个时间片段的所述一个或更多个传送参数,通过所述网络输送该时间片段。
附图说明
现在将参照附图通过示例对本发明进行说明。在附图中:
图1示出了通信网络的示例。
图2示出了形成图1中的网络的一部分的服务器的示例。
图3示出了形成图1中的网络的一部分的客户端的示例。
图4示出了通过网络来输送内容的方法的步骤的流程图。
图5示出了以单一的质量级别(quality level)编码的恒定质量编码内容的解码和输送调度。
图6示出了以三种不同的质量级别编码的恒定质量编码内容的解码调度。
图7示出了以三种不同的质量级别编码的内容的归一化的解码调度。
图8示出了以根据图7所示的调度生成的三种不同的质量级别编码的内容的代表解码调度和代表输送调度。
图9示出了以可变输送速率输送片段期间所示的实际输送调度与代表输送调度的偏差。
图10示出了如何根据插值生成经修正的输送调度。
具体实施方式
本公开描述了用于通过根据与每个片段相关联的目标输送时间控制内容数据片段的传送参数来通过网络输送内容的技术。内容可以编码成多个片段流,每个流处于不同的恒定质量级别(即,每个片段流表示特定质量级别的内容)。因此,每个片段以多个质量级别进行编码(进而以多种不同的比特率进行编码)。片段的传送参数可以包括片段的编码质量和/或用于输送该片段的拥塞窗口。要注意的是,给定片段的编码质量与用于编码该片段的比特数有关(使得使用比用于对较低质量的片段进行编码的比特多的比特来对较高编码质量的给定片段进行编码)并且与该片段的主观或感知质量不同。如上所述,两个片段可能需要不同的编码比特率以在播出时获得相同的感知质量。
给定片段的目标输送时间根据要输送的一个或更多个后续片段的相对大小来选定,而与对该片段进行编码的比特率无关。可以参照归一化的比特数来规定或表达片段的相对大小。例如,可以相对于以归一化的比特数表达的片段的平均片段大小来规定片段的相对大小。因此,片段的相对大小表示该片段的为获得给定感知质量所需的相对比特率需求,并且片段的相对大小与该片段的编码比特率无关。即,片段的相对大小表示该片段的数据需求。
作为例示,用于输送相对较小的第一片段(即,需要相对较低的比特率以获得给定感知质量的片段)的截止时间可以被选定为早于及时输送该片段以进行解码所需的时间,即,早于避免播出停顿所需的时间。这可以使得能够在缓冲区中积聚数据,从而允许有较多时间来输送具有较大的相对大小的后续片段。通过这样设置第一片段的目标截止时间输送,针对该片段设置的传送参数可以使得以比其它情况低的编码比特率来输送该片段。然而,由于第一片段需要相对较少的比特来获得给定的感知质量,因此可以保持该片段的感知质量(例如,以期望或预设级别)。对于相对较大的后续第二片段,前一片段的目标时间(以及其造成的在播出时间之前数据在接收器缓冲区中的对应积聚)使得能够将第二片段的目标输送时间设置成:相比于其它情况,提供较多时间来输送该片段。这进而导致以下列方式设置该第二片段的传送参数:使得该第二片段以比其它情况高的编码比特率来输送,从而允许将感知质量保持在期望或预设级别。
因此,本文所述的技术使得通信系统能够以比纯比特率驱动的自适应流传输系统一致的感知质量来输送媒体内容(例如,视频序列),并且本文所述的技术可以特别适合于使用自适应比特率输送来输送被编码成恒定质量表示的内容。下面描述如何实现这种技术的更详细的示例。
为清楚起见,在以下示例中,根据HTTP和底层TCP协议使用自适应比特率输送来通过网络输送媒体内容。HTTP协议例如可以是HTTP自适应流传输协议,例如HTTP直播流传输(HLS)协议、MPEG-DASH、SmoothStreaming、Adobe HTTP动态流传输等。TCP协议可以是任何合适的协议,例如TCP Reno、TCP New Reno、TCP Cubic、TCP Tahoe、TCP Vegas等。
图1示出了通信系统100的示例。该系统包括内容发送器(以服务器的形式)104以及由通信网络106分隔开的多个接收器(以内容客户端的形式)108、110和112。网络106可以是无线网络、有线网络或者有线网络和无线网络的组合。网络106可以是诸如互联网的分布式计算网络(或者可以形成诸如互联网的分布式计算网络的一部分)。
内容服务器104被示为在通信上联接至内容生成器102。内容生成器102可以被配置成对媒体内容进行编码并将该媒体内容传递至内容服务器104。如上所述,媒体内容可以包括视频流和/或音频流。内容生成器102可以被配置成以多个不同的比特率分别对视频流进行编码,以生成各自以不同的比特率编码的多个编码视频流。换句话说,可以以多个不同的编码质量来对视频流编码。例如,可以根据ITU-T H.264标准来对视频流编码,当然也可以使用其它标准来对视频流编码。如果媒体内容另外包括音频内容,那么该音频内容可以仅以单个比特率进行编码(以生成单个编码音频流)或以多个比特率进行编码以生成相应的编码音频流。用于编码音频流的标准的一个示例是MPEG-4HE AAC,当然可以另选地使用其它标准来编码音频流。内容生成器102还可以被配置成将媒体内容分割成多个离散的时间片段。如果以多个比特率对媒体内容编码,则可以分割每个编码流。所述内容流或每个内容流可以在编码之前或之后进行分割。即,可以分割内容流,然后以不同的比特率对每个所得到的片段进行编码;或者可以对每个编码内容流进行分割以生成多个编码片段。
内容服务器104被配置成从内容生成器102接收媒体内容并且可以存储所接收的内容。如上所指出的,可以对由内容生成器102接收的媒体内容进行编码和分割。内容服务器可以经由网络106将媒体内容传递或输送至客户端108、110以及112中的一个或更多个。内容服务器104可以是视频流传输服务器,并且可以根据请求向客户端输送视频(和/或音频)内容。因此,客户端装置108、110以及112可以适于从服务器104请求媒体内容。例如,客户端装置可以是适当配置的机顶盒、PC、膝上型电脑、智能手机、平板电脑、智能TV等。
下面描述使用指示用于输送每个片段的目标时间的定时调度来控制与要通过网络106输送的片段相关联的传送参数的技术。为清楚起见并且出于例示的目的,参照示例服务器和客户端进行以下描述,该示例服务器和客户端都具有实现所述技术所需的全部功能。应当清楚,服务器和客户端不是必须都具有该全部功能,只要在服务器与客户端之间分配必要的功能,这可以按不同方式来进行。
图2更详细地示出了服务器104。服务器包括:输入接口202;数据存储部204以及输出接口212。服务器还包括:调度单元214、数据集生成单元224、参数计算单元216以及派发单元222。调度单元联接至参数计算单元,该参数计算单元本身另外联接至派发单元。在该示例中,参数计算单元被示出为包括传送参数单元218和输送参数单元220。
内容服务器104可以被配置成在输入接口202处从内容生成器接收编码内容片段并且将所接收的编码内容片段206存储在数据存储部204中。每个编码内容片段可以与清单文件208相关联,该清单文件208可以包含与用于对关联编码内容片段进行编码的比特率有关的信息,以及关联编码内容片段被存储在服务器的存储部204内的什么地方的指示。每个清单文件还可以可选地存储编码在关联编码内容片段中的媒体内容的持续时间的指示。清单文件也可以存储在存储部204中。每个编码内容片段作为一系列数据包从服务器经由输出接口212发送。即,每个内容数据片段由多个数据包形成。内容服务器104还可以经由接口212从服务器已经将数据包发送至的一个或更多个内容客户端接收确认包。通信系统可以被设置成使得内容服务器接收通过网络成功输送至客户端的每个数据包的确认包。下面将参照图4更详细地描述调度单元214、参数计算单元216、数据集生成单元224以及派发单元222的操作。
图3更详细地示出了客户端(出于例示的目的,该客户端是客户端108)。
客户端108包括输入接口302,该输入接口302被配置成接收从服务器104通过网络106发送的数据包。经由输入接口302接收的数据包被输入到内容数据存储部306中。内容存储部可以存储所接收的数据包直到用于向用户播出的合适时间为止。存储在内容数据存储部306中的数据被传递至内容解码器308。解码器308对接收到的数据包进行解码,以输出给用户。例如,内容解码器可以包括视频解码器和音频解码器。
客户端108另外包括请求单元304。请求单元可以例如从服务器104请求数据或内容。请求单元304可以生成数据请求消息并使该请求消息经由接口302发送至服务器。例如,如果服务器和客户端根据HTTP自适应比特率输送协议工作,则客户端108可以向源节点发送HTTP GET请求形式的媒体内容请求。
客户端108还包括调度单元310、数据集生成单元318以及参数计算单元312。调度单元联接至内容数据存储部306和参数计算单元312两者。参数计算单元联接至请求单元304,并且该参数计算单元包括传送参数单元314和输送参数单元316。
现在将参照图4对通过网络106输送数据片段流的方法进行描述。
在步骤402中,存储对多个片段中的每个片段n的相对大小Sr(n)进行指示的数据集210。所述多个片段可以形成诸如视频序列的内容流。片段的相对大小可以是归一化大小,例如,参照归一化的比特数来表达。这样,片段的相对大小可以与该片段的编码比特率无关(即,与片段的编码质量无关)。可以通过特定编码质量下的所述多个片段的总比特数来对每个片段的大小进行归一化。可以相对于所述多个片段的平均片段大小来表达片段的相对大小。
可以将数据集存储在服务器的数据存储部204或者客户端的内容数据存储部306中。数据集可以包括与所述多个编码比特率中的每一个编码比特率(即,按每个编码质量)的每个片段的(绝对)大小有关的信息。
在步骤404中,根据数据集210计算用于输送片段的时间调度,该时间调度指示每个片段的目标输送时间TD(n)。
首先将参照图5描述如何根据片段的大小计算时间调度的例示。图5示出了标绘针对被编码为十个视频片段的一段内容的累积比特计数(在y轴上)与以片段播出持续时间为单位表达的时间(在x轴上)的图表。在该示例中,片段中的每一个具有相等的持续时间,例如,每个片段可以包含10秒的视频数据,并且内容根据恒定质量编码进行编码。线502示出了作为时间的函数的需要输送的总比特数,以避免在客户端处发生视频内容播出停顿。线502是累积比特曲线并且表示解码调度。解码调度指定为了避免播出停顿而必须输送每个片段的比特率,即,为了及时解码以进行播出而必须输送每个片段的比特率。该比特率由线502的梯度规定。实心圆形标记表示整数个片段的累积比特数。因此,片段的绝对大小等于两个相邻圆形标记之间的垂直高度。例如,第二片段的绝对大小等于具有两个片段持续时间的解码时间的圆形标记与具有一个片段持续时间的解码时间的圆形标记之间的垂直高度。可以看出,一些片段由比其它片段更多的比特编码。例如,片段六由相对大量的比特编码(因此可以编码要求相对严格的内容片段),而片段一由相对较少量的比特编码(因此可以编码相对不严格的内容片段)。
然后根据解码调度确定指定每个片段的输送速率的输送调度。输送调度可以是指定各自与连续片段的相应子集相关联的一个或更多个输送比特率的分段调度。即,输送调度指定每个片段的输送比特率。在图5中用虚线504示出了输送调度。分段输送调度使得调度的部分的比特率单调递减。在该示例中,输送调度包括各自与不同输送速率相关联的两个部分。第一部分指定待输送的前六个片段的输送速率为11兆比特/片段时段,并且第二部分指定待输送的后四个片段的输送速率为8.5兆比特/片段时段。每个输送速率使得足以及时输送与该速率相关联的所有片段以进行解码。即,在这个示例中,11兆比特/片段时段的输送速率足以及时输送前六个片段以进行解码,并且8.5兆比特/片段时段的输送速率足以及时输送后四个片段以进行解码。
由输送调度指定的输送速率单调递减的点被称为“临界点”。临界点也是输送调度等于解码调度的点。临界点可以规定本文中被称为临界片段的片段,该临界片段是使由输送调度指定的目标输送时间等于由解码调度指定的解码时间的片段。临界片段也可以是这样的:紧接在临界片段之后的片段具有比临界片段的指定输送速率小的由输送调度指定的输送速率。点506是临界点的示例,并且片段六是临界片段的示例。
参照图5可以看出输送调度504如何用于规定每个片段的目标输送时间。片段的目标输送时间等于输送调度504上的、具有与该片段的解码调度上的实心圆形标记相同的y坐标的点的x坐标。
虽然以上解释例示了如何确定定时调度,但应注意图5描绘了按单一编码质量级别的内容的累积比特计数(即,每个片段仅以一个比特率进行编码)。然而,自适应比特率输送要求将内容编码为多个片段流,其中每个流具有不同编码质量(即,每个片段以多个比特率进行编码)。
为了例示在以多个质量级别对内容进行编码时如何确定内容片段的目标输送速率,将参照图6至图8。
图6示出了按另外两种编码质量的十个内容片段的累积比特曲线。图6所示的所有三个累积比特曲线都是针对同一段内容。线604示出了按最高质量编码的该段内容的解码调度,线602示出了按第二高质量编码的该段内容的解码调度,并且线502示出了按最低质量编码的该段内容的解码调度。
由曲线502、602以及604表示的针对每个编码质量的解码调度可以根据包括多个片段大小集合(例如,以比特为单位)的数据集生成,每个集合以相应的质量指示片段的大小。因此,在该示例中,数据集可以包括三个片段大小集合。还可以存储每个片段的持续时间(例如,以秒为单位)。该信息可以存储在发送器104处,例如存储在存储部204中。与每个编码质量下的片段的大小(以及该片段的持续时间)有关的信息可以形成清单文件208的一部分。该信息也可以存储在接收器108处,例如存储在内容数据存储部306中。
已经认识到解码调度502、602以及604的形状近似相同。这是因为片段的相对大小(例如,相对于给定编码质量下的所有片段的总比特数的片段大小(以比特为单位))取决于由该片段编码的内容的性质(例如,快速移动的体育内容或节奏缓慢的戏剧)而不是编码该片段的质量(和因此的比特率)。换句话说,片段的相对大小与片段的编码比特率无关。这可以用下式来表达,其中对给定的内容片段进行编码所需的比特数b是:
b=f·g (1)
在式(1)中,f表征片段的相对比特率需求。即,参数f指示片段中的内容的相对需求,并且该参数f与片段的编码质量无关。g是取决于编码质量但与片段内容无关的函数。因此,在两个不同的编码比特率下的给定片段具有相同的f值(因为它们表示同一段内容)但具有不同的g值。另外,在特定编码质量下的流的每个片段(例如,形成线602的片段流)具有相同的g值(但可能具有不同的f值)。按归一化的比特数表达针对每个编码质量的片段的大小有效地将g的值归一化成使得片段的g值与该片段的编码质量无关(换句话说,对于每个编码质量,流中的片段的g值是相同的)。
图7示出了参照归一化的比特数表达的三个累积比特曲线502、602以及604,使得(在这个示例中)十个数据单元需要通过十个片段的播出时间来输送。因此,y轴上的每个归一化的单元可以被视为归一化的平均片段大小。在以归一化的比特数表示时,曲线502'、602'以及604'分别对应于曲线502、602以及604。当参照归一化的的比特数来表达该段内容的累积比特曲线时,这些累积比特曲线描绘出近似相同的形状。
根据该组归一化的累积比特曲线502'、602'以及604',可以生成代表的归一化累积比特曲线。这在图8中示出并且用802表示。因此,代表曲线802表示解码调度,该解码调度指示每个片段的与该片段的编码比特率无关的输送时间,以避免播出停顿。换句话说,代表曲线802表示针对所有编码质量的解码调度(即,可应用于片段的、与片段的编码质量无关的解码调度)。该解码调度可以被称为代表解码调度。
可以以多种方式根据该组归一化比特曲线502'、602'以及604'生成代表曲线802。生成曲线802的一种方法是根据曲线502'、602'以及604'的数学平均来生成该曲线802,例如通过计算这些曲线的均值、中值或众数。可以基于每个片段来计算该数学平均,即,针对每个片段独立地进行计算。生成曲线802的另一种方法是:通过选择归一化曲线502'、602'以及604'中的一个作为代表曲线来生成曲线802;或者针对每个片段,从所述归一化曲线中的一个中选择一个值作为代表值(例如,最大值)来生成曲线802。在图8所示的特定示例中,通过针对每个片段选择归一化曲线502'、602'以及604'中的最大值来形成代表曲线802。这具有为每个片段的要求最严格的单个质量级别生成归一化解码调度的优点。换句话说,由归一化曲线802表示的解码调度表示在针对每个片段选择要求最(相对)严格的质量级别的最糟糕情况下,需要及时输送每个片段以进行解码的时间。
根据代表解码调度802,可以生成对每个片段的输送速率进行指定的代表输送调度804。输送调度804再次规定分段恒定输送速率,其中每个输送速率与片段的连续子集相关联。点806表示由输送调度规定的恒定输送速率单调递减的临界点。该临界点再次将片段六规定为临界片段。由代表输送调度804指定的输送速率以归一化单位进行表达。在该示例中,代表输送调度规定了两个恒定输送速率,并且该输送速率以每片段播出时段的归一化平均大小片段为单位进行表达。这些输送速率对于片段一至片段六来说是每播出时段的归一化平均大小片段的1.1倍,并且对于片段7至片段10来说是每播出时段的归一化平均大小片段的0.85倍。
为了确定针对特定编码质量的绝对输送速率,将输送速率乘以针对该编码质量的平均片段大小。例如,参照图6,可以看出针对最高编码质量的平均片段大小为250兆比特/10片段=25兆比特。因此,最高编码质量下的前六个片段的输送速率为每片段播出时段1.1×25兆比特。如果片段播出时段为10秒(例如),那么这相当于2.75兆比特/秒的输送速率。
然后可以根据代表输送调度804为每个片段'n计算目标输送截止时间TD(n)。输送调度804上的菱形标记表示每个片段的目标输送时间。具体地,每个菱形标记的x坐标指定片段的目标输送时间(根据片段持续时间指定)。例如,根据代表输送调度确定的前六个片段的目标输送时间为:TD(1)=0.51、TD(2)=1.20、TD(3)=2.07、TD(4)=3.24、TD(5)=4.22以及TD(6)=6.00个片段时段。可以根据其它时间单位形式的片段时段的知识来以那些时间单位(例如,秒)形式表达目标输送时间。
代表解码调度802与代表输送调度804之间的差指示输送至接收器但尚未进行解码和播出的数据的量。这个数据量是根据播出时间而非按比特来指定的。作为示例,第一片段被调度在0.51个片段时段输送,因此,一旦完成输送,在接收器处缓冲的数据为1.00-0.51=0.49个片段时段。
因为目标输送时间是根据代表的归一化累积比特曲线计算的,所以每个片段的目标输送时间与为该片段选择的编码质量无关(即,与该片段的函数g的值无关)。这是有利的,因为这意味着可以将目标输送时间TD(n)用于片段而不管该片段的编码质量如何,这对于自适应比特率输送方案特别有用,在该自适应比特率输送方案中,每个片段按多个不同比特率(因此按不同质量)编码。
可以由服务器104或客户端108来计算目标输送时间TD(n)。
关于服务器104,可以由数据集生成单元224和调度单元214来执行上述步骤。数据集生成单元224可以被配置成根据多个片段大小集合来生成相对片段大小的代表集合(该代表集合用于生成图8所示的归一化累积比特曲线802),在所述多个片段大小集合中,每个集合表示相应编码质量下的片段的大小。每个编码质量下的片段大小集合可以存储在数据存储部204中。可以将该信息存储在清单文件208中,并且可以从内容生成器102接收该信息。
作为第一步骤,数据集生成单元224可以生成针对每个编码质量的片段的相对大小(即,以归一化的比特数表达的片段大小)。数据集生成单元224可以根据该质量下的片段的绝对大小和该编码质量下的片段的总大小(例如,比特计数)来生成针对每个编码质量的片段的相对大小。另选地,每个编码质量下的片段的相对大小可能已经存储在数据存储部204中,例如存储在清单文件中。可以在数据存储部204处从内容生成器102接收与片段的相对大小有关的信息。
然后,数据集生成单元224根据每个编码质量下的多个相对片段大小集合来生成相对片段大小的代表集合。单元224例如可以针对每个片段,根据每个编码质量下的该片段的相对片段大小的数学平均(例如,均值、中值或众数)来计算代表相对大小。另选地,单元224可以针对每个片段,选择编码质量中的一个编码质量下的片段的相对大小作为代表大小。然后,数据集生成单元224可以将代表集合输出至数据存储部204。
然后,调度单元214可以根据相对片段大小的代表集合210来计算指示每个片段的目标输送时间TD(n)的时间调度。调度单元214可以首先根据相对片段大小的代表集合来计算解码调度802。根据解码调度802,调度单元214可以计算代表输送调度804。然后,调度单元214可以根据输送调度804计算时间调度。
关于客户端108,可以由数据集生成单元318和调度单元310来计算目标输送时间TD(n)。
数据集生成单元318可以以与上述数据集生成单元224相同的方式来生成相对片段大小的代表集合。可以将针对每个编码质量的片段大小集合(对于绝对和/或相对片段大小)存储在内容数据存储部306中。可以经由接口302在客户端108处接收与片段的大小有关的信息。可以通过网络106从服务器104接收所述信息。例如,客户端108可以经由其接口302接收针对每个编码质量的多个绝对片段大小集合,并将所述多个绝对片段大小集合存储在内容数据存储部306中。然后,数据集生成单元318可以以上面关于数据集生成单元224描述的方式,根据这些绝对值来计算针对每个编码质量的片段的相对大小。另选地,客户端108可以经由其接口302接收针对每个编码质量的片段的相对大小,并将这些片段的相对大小存储在内容数据存储部306中,在这种情况下,数据集生成单元318不需要执行计算相对片段大小的步骤。
调度单元310可以以与上面针对调度单元214描述的方式相同的方式来计算指示目标输送时间TD(n)的时间调度。
现在返回参照图4,一旦计算出每个片段的目标输送时间TD(n),就接着在步骤406中将片段索引n设置成“1”,即,n=1。
在步骤408中,根据片段的目标输送时间TD(n)和片段的相对大小Sr(n)来设置片段n的一个或更多个传送参数TP(n),并且在步骤410中,使用该传送参数通过网络输送片段n。
传送参数可以包括片段的编码质量(其可以通过选择该片段的编码比特率来设置)和/或用于输送片段的拥塞窗口大小。
可以使用目标输送时间来确定用于输送片段的可用时间,例如,通过确定片段输送时间的起点与目标输送时间之间的差来确定。可以使用用于输送片段的可用时间和片段的相对大小的知识来选择片段的编码质量和/或用于相应地输送该片段的拥塞窗口大小。例如,如果片段的目标输送时间指示有相对少量的可用时间可用于输送该片段,则可以选择针对该片段的较低编码比特率。还可以选择更大的拥塞窗口大小以实施针对该片段的更高传送速率。相反,如果目标输送时间指示有足够大量的可用时间可用于输送该片段,则可以选择针对该片段的较高编码比特率。在某些情况下,还可以控制拥塞窗口大小,以实现公平地对待根据TCP协议的竞争业务流。下面将描述如何设置传送参数的更详细示例。
可以由服务器104或客户端108来计算传送参数TP(n)。例如,服务器可以从客户端接收针对内容的通用请求。作为响应,服务器可以设置每个片段的传送参数TP(n),并使用这些传送参数将所述片段输送至客户端。例如,如果服务器在HTTP PUSH模式下工作,则该服务器可以以这种方式工作。另选地,客户端可以计算每个片段的传送参数TP(n),并且在该客户端向服务器的内容片段请求中包括那些传送参数的指示。然后,服务器可以接收包括传送参数TP(n)的指示的请求,并使用该传送参数输送所请求的内容片段。
如果由服务器104计算传送参数TP(n),那么这些传送参数TP(n)可以由传送参数单元218来计算。传送参数单元218从调度单元214接收待输送的片段“n”的目标输送时间TD(n)。传送参数单元还从存储部204接收片段“n”的相对大小Sr(n)。然后,传送参数单元218可以根据目标输送时间TD(n)和相对大小Sr(n)来计算并设置片段n的传送参数TP(n)。然后,传送参数单元218将片段n的传送参数TD(n)传递至派发单元222。然后,派发单元222根据所述传送参数经由输出接口212发送一系列数据包,以通过网络输送片段“n”。
可以代替地由客户端108的传送参数单元314来计算传送参数TP(n)。在这种情况下,传送参数单元314可以从调度单元310接收片段n的目标输送时间TD(n)并且从内容数据存储部306接收片段的相对大小Sr(n)。然后,单元314可以使用TD(n)和Sr(n)的值来计算传送参数TP(n)并将这些参数输出至请求单元304。然后,请求单元304可以发出对片段n的请求,该请求包括所计算的传送参数TP(n)的指示。然后,服务器将从客户端接收请求,并相应地设置用于输送片段n的传送参数。
在步骤412中,确定是否已经输送了形成该段内容的所有片段。如果已经输送了所有片段,则结束该处理。如果尚未输送所有片段,则该处理进行至步骤414,其中,将n的值设置成n+1。继续示例,将n的值递增至2。然后,该处理返回至步骤408,并且根据下一片段的目标输送时间TD(n)和相对片段大小Sr(n)来计算所述下一片段的传送参数TP(n)。
上述一系列步骤例示了如何使用指示用于输送片段的目标时间的时间调度来选择该片段的传送参数。通过使用仅按时域表示的时间调度来控制传送参数,与片段的编码比特率无关地进行时间调度。换句话说,可以使用相同的时间调度来调度片段的输送,而不管片段的编码比特率如何。这意味着为了有效地控制片段的输送以实现恒定的质量编码,只需要控制片段的传送参数来尝试(try)并满足时间调度中指定的目标输送时间。这简化了片段的输送调度并且使得能够实现所输送的片段的更一致的感知质量。
可以通过使用与一个或更多个在前片段的输送有关的信息进一步控制待输送的片段的传送参数TP(n)来增强上述处理。该信息可以用一个或更多个输送参数来指示。已输送的片段“m”的输送参数可以表示为DP(m)。
可以由服务器104的输送参数单元220或客户端108的输送参数单元316来计算输送参数DP(m)。
当然,可以将片段m的输送参数仅用于确定待输送的后续片段n的传送参数TP(n)。换句话说,可以根据片段n的目标输送时间TD(n)和相对大小Sr(n)以及在前片段m(即,m<n)的输送参数DP(m)来计算待输送的片段n的传送参数TP(n)。在前片段m可以是片段n的恰好前一片段(即,m=n-1),但不需要这样。
输送参数DP(m)可以包括指示一个或更多个片段的目标输送时间的接近程度的参数。片段m的输送参数DP(m)例如可以指示片段m的实际输送时间与该片段的目标输送时间TD(m)之间的时间差。因此,输送参数可以指示片段的输送时间与在时间调度中指定的目标时间之间的偏差。
作为另一示例,片段m的一个或更多个输送参数DP(m)包括与输送该片段相关联的丢包率(表示为PLR(m))。输送参数可以包括指示片段m的目标输送时间与实际输送时间之间的差的参数以及该片段的丢包率PLR(m)二者。
可以使用与先前输送的片段m相关联的输送参数DP(m)来以多种方式设置后续片段n的传送参数TP(n)。
获知相对于已输送的片段的时间调度的偏差对于选择待输送的片段n的编码比特率是有用的。例如,如果输送参数DP(m)指示在先前片段m的目标输送时间之后输送该先前片段m(因此该片段的输送落后于该时间调度),则待输送的下一片段可以选择较低的编码比特率,以尝试并使片段的输送恢复到调度。相反地,如果输送参数指示在先前片段的目标输送时间之前输送该先前片段(因此该片段的输送提前于定时调度),则待输送的下一片段可以选择较高的编码比特率,因为有比根据时间调度所预期的时间更多的时间来输送该片段。
作为另一示例,可以使用丢包率PLR(m)来设置用于输送后续片段n的拥塞窗口的大小。例如,可以按照TCP协议根据片段m的丢包率来设置片段n的拥塞窗口大小,以便公平对待通过网络106的竞争业务。在一些情况下,可以基于PLR(m)来设置片段n的拥塞窗口大小,不是为了公平地对待竞争业务,而是为了通过片段n的目标输送时间TD(n)来输送该片段n。这是因为可以使用在先前片段的输送期间经历的丢包率来推断是在该片段的目标输送时间TD(m)之前还是之后输送的该片段。具体地,相对高的丢包率PLR(m)可以指示片段m是在其目标输送时间之后输送的,而相对低的丢包率PLR(m)可以指示片段是在其目标输送时间之前输送的。
在另一示例中,可以根据丢包率PLR(m)来设置片段n的拥塞窗口大小和编码比特率二者。可以基于PLR(m)的值来选择拥塞窗口大小,以公平地对待通过网络的竞争业务流(例如,根据TCP协议)。然后,可以基于拥塞窗口大小来选择该片段的编码比特率,使得在片段的目标输送时间TD(n)之前输送该片段n。
在其它示例中,编码比特率和拥塞窗口大小都是根据相对于先前片段m的目标输送时间的偏差以及丢包率PLR(m)来确定的。
如上文提到的,可以在服务器104或客户端108处计算输送参数DP(m)。
服务器104的输送参数单元220可以使用从片段输送至的客户端传递来的信息来确定片段m的实际输送时间与其目标输送时间TD(m)之间的时间差。例如,接收片段m的客户端可以向服务器104传递回完成该片段的输送的时间的指示。该指示可以在服务器的输出接口212处被该服务器接收并且被传递至输送参数单元220。输送参数单元220从调度单元214接收片段m的目标输送时间TD(m)。根据该信息,输送参数单元220可以计算相对于先前片段m的时间调度的偏差。
丢包率PLR(m)可以由服务器104(由单元220或者专用包丢失计算器)根据在接口212处接收到的确认消息中所包含的信息来计算。片段输送至的客户端可以向服务器104传递回针对所接收的每个包的确认消息。每个确认消息包含指示从指定时间接收的连续数据的量(例如,连续包的数量)的序列号。在包丢失后,客户端继续发送确认消息,但该确认消息具有相同的序列号。因此,可以通过对在接口212处接收到的确认消息的序列号进行检查来检测包丢失事件进而检测丢包率。另选地,可以在客户端108处计算丢包率PLR(m)并将其传递回至服务器104。
然后将由输送参数单元220确定的输送参数DP(m)传递至传送参数单元218,该传送参数单元按上述示例的方式设置传送参数DP(n)。
客户端108的输送参数单元316可以使用其内容数据存储部306中的信息来确定片段m的实际输送时间与其目标输送时间TD(m)之间的时间差。内容数据存储部306例如可以存储完成片段m的输送的时间。然后,输送参数单元316可以从调度单元310接收片段的目标输送时间TD(m)。
客户端108可以根据在接口302处接收到的包中包含的信息来计算丢包率PLR(m)(在输送参数单元316或者专用包丢失计算器处计算该丢包率)。例如,客户端108可以根据与每个接收到的数据包相关联的序列号的检查结果(例如,如果该客户端检测到接收到的包的序列号中的间断)检测到发生了包丢失。可以将接收到的数据包的序列号存储在客户端108内,例如存储在内容数据存储部306中。
然后将由输送参数单元316确定的输送参数DP(m)传递至传送参数单元314,该传送参数单元按上述示例的方式设置传送参数DP(n)。
现在将参照图9描述如何为正被输送的片段的示例序列设置传送参数TP(n)的例示。
图9示出了图8的解码调度802和输送调度804,但是左侧y轴现在表示按片段时段的输送时间,而不是归一化的累积比特计数。参照按片段时段的时间标绘的调度802和804分别表示为902(解码调度)和904(输送调度)。在该表示中,解码调度902是具有唯一斜率的直线。图9还示出了输送的片段中的每个片段的示例输送速率906。在右侧y轴上示出了输送速率的值。线908表示在输送片段时这些片段的实际输送调度。目标输送调度904与实际输送调度908的对应点之间的水平距离表示片段的输送时间与其目标输送时间之间的差(就片段播出持续时间而言)。
第一片段具有0.51个片段时段(根据输送调度904确定的)的目标输送时间TD(1)。服务器104选择第一片段的最高质量编码以及拥塞窗口大小,以确保及时输送(即,在目标输送时间TD(1)=0.51个片段时段之前输送)。该片段在0.50个片段时段输送,即,在其目标时间之前输送。这可能是因为服务器高估了确保及时输送所需的拥塞窗口大小,或者网络吞吐量条件好于预期。
然后客户端针对第二片段发出请求,该第二片段的目标输送截止时间TD(2)为从开始时间测得的1.20个片段时段。这允许有0.70个片段时段来输送该片段,该片段时段比在根据输送调度904计算出的时间调度中指定的片段时段(为第二片段的输送指定了0.69个片段时段)稍多。在这个示例中,由于变化很小,因此服务器可以继续相同的拥塞窗口大小,并且在1.18个片段时段之后(即,在目标输送时间TD(2)之前)完成输送。
然后,针对片段三发出请求,该片段三的目标输送时间TD(3)为2.07个片段时段。然而,第三个包的输送遭受高的丢包率PLR(3),如通过输送速率906的减少所示的。这导致第三片段将在2.14个片段时段输送,该2.14个片段时段是在该第三片段的目标输送时间TD(3)之后的0.07个片段时段。
接下来针对第四片段发出请求,该第四片段的目标输送时间TD(4)为3.24个片段时段。响应于第三片段遭受的丢包率PLR(3),针对第四片段的输送,减小了拥塞窗口大小,并且在给定所选拥塞窗口大小的情况下,选择该片段的最低编码比特率。对第四片段的传送参数TP(4)做出的这些改变导致该片段在2.90个片段时段(即,在其目标输送时间TD(4)之前)被输送。
因为提前于调度输送了第四片段,所以与从输送调度904获得的时间调度中所指定的时间相比,为第五片段的输送分配了更多的时间。这使得能够为第五片段选择中等编码比特率。在输送第五片段期间,丢包率降低(与输送速率906的增加相对应),从而使得能够按最高编码比特率来输送剩余的片段6至片段10。
上述示例例示了如何根据片段的目标输送时间TD(n)并且根据先前片段的输送参数DP(m)来设置待输送的片段n的传送参数TP(n)。
在到目前为止描述的示例中,对每个片段的目标输送时间TD(n)进行指定的时间调度在这些片段的输送期间是恒定的。然而,在一些示例中,可以在片段的输送期间修正或更新该时间调度,以修正尚未通过网络输送的片段的目标输送时间。可以由调度单元214或310来执行时间调度的更新。
可以响应于在片段的目标输送时间之后的时间输送该片段,来对该时间调度进行更新。例如,返回参照图9,由于片段三是在其目标输送时间TD(3)之后输送的,因此可以修正片段三之后的片段的目标输送时间。按这种方式修正时间调度以消除(smooth out)所述系统对错过的目标输送时间的响应可能是有利的。如果在错过的目标时间后未修正目标输送时间,则所述系统可以通过尝试弥补与下一片段的输送中的时间调度相对应的所有时间丢失来做出响应,其中,所述时间丢失是前一片段错过其目标输送时间的量。这进而可能导致下一片段的传送参数发生明显变化、所选编码比特率的这种大幅减少或者拥塞窗口大小的大幅减少。已经清楚,在某些情况下,“展开(spread)”对丢失时间的恢复可能是更好的,而不是输送多于一个片段。然而,丢失时间的恢复应当通过下一临界点的时间来恢复(该下一临界点在图9所示的示例中是片段六)。因此,与临界点相对应的片段的目标输送时间保持不变。
调度单元可以通过从最近输送的片段m的实际输送时间到下一临界点的目标输送时间执行线性插值来计算经修正的目标输送时间。具体地,待输送的片段n的经修正的目标输送时间RTD(n)可以计算为:
Figure GDA0003073613190000191
在式(1)中,ATD(m)是在片段m的目标输送时间TD(m)之后输送的该片段m的实际输送时间,TD(n)是片段n的先前目标输送时间,并且TDCP是下一临界片段的目标输送时间(即,下一临界点的时间)。
调度单元可以根据式(1)计算尚未输送的每个片段n的经修正的目标输送时间。
图10示出了如何执行线性插值的图形例示,图10像图8一样示出了针对片段播出时间标绘的归一化累积比特计数。在1004处示出了第三片段TD(3)的根据输送调度804的初始目标输送时间,在1006处示出了该片段的实际输送时间ATD(3)。在1002处示出了根据ATD(3)与下一临界点之间的线性插值形成的经修正的输送调度。可以以与上面参照图8描述的方式类似的方式,根据经修正的输送调度1002以图形方式计算每个片段的经修正的目标输送时间。
另选地,可以在每个片段的输送之后计算经修正的时间调度(无论该片段是否在其目标输送时间之后被输送)。例如,可以基于客户端处的缓冲内容的播出持续时间(即,在客户端处从服务器接收但尚未播出的内容的播出持续时间)来计算片段n的经修正的目标输送时间RTD(n)。可以将缓冲内容的量与缓冲内容的根据输送调度和解码调度确定的目标量进行比较。如果缓冲内容的量表明所述片段的输送提前于输送调度,则可以仅使用临界点来计算经修正的输送调度。由于获知了缓冲区中的内容的量,因此可以在客户端108的调度单元310中实现该方案。
以上示例描述了用于根据仅按时域表达的时间调度来设置要通过网络输送的片段的传送参数的方案。本文所述的方案使得使用恒定质量编码方案编码并且使用自适应比特率输送进行输送的内容的调度得到简化,从而使得待输送的内容能够具有更一致的感知质量。
已经参照示例发送器(以服务器104的形式)和示例接收器(以客户端108的形式)描述了上述示例,这些示例发送器和示例接收器都能够执行本文所述的技术的全部功能。然而,应当清楚,可以以其它方式在服务器与客户端之间分配实现本文所述的技术所需的功能。
例如,服务器104可以包括如上所述的参数计算单元216,但可以接收对片段的目标输送时间进行指示的时间调度,而不是在调度单元214处在内部对其进行计算。例如,可以在客户端处计算目标输送时间并将该目标输送时间传递至服务器(例如,作为内容请求的一部分)。因此,服务器104可以不包括调度单元214或数据集生成单元224。作为另一示例,服务器可以包括用于计算时间调度的调度单元214,而不包括数据集生成单元224。相反,服务器可以接收归一化片段大小的代表集合,调度单元214可以使用该代表集合来计算时间调度。例如,服务器可以从内容生成器接收该信息。
同样地,客户端108可以包括如上所述的参数计算单元312,但可以接收对片段的目标输送时间进行指示的时间调度,而不是在调度单元310处在内部对其进行计算。例如,可以在服务器处计算目标输送时间并将该目标输送时间传递至客户端108。因此,客户端可以不包括调度单元310或数据集生成单元318。作为另一示例,客户端可以包括用于计算时间调度的调度单元310,而不包括数据集生成单元318。相反,可以在客户端108处例如从服务器接收与由调度单元310使用的每个片段的归一化大小有关的信息。
已经参照服务器和客户端描述了以上示例。服务器例如可以是内容服务器,该内容服务器被配置成使用根据合适协议(诸如HTTP自适应比特率协议(例如,HTTP DASH;HTTP直播流传输(HLS)等))的可变比特率输送来发送数据包。例如,服务器可以是内容输送网络(CDN)节点,并且网络106是内容输送网络。另选地,服务器可以是Web服务器或邮件服务器。客户端可以是诸如计算机、膝上型电脑、PC、移动电话、智能手机、平板电脑、机顶盒、智能TV、智能手表等的装置。另选地,客户端可以是某种其它类型的装置,例如无线接入点或路由器。更一般地,本文所述的服务器是用于通过网络发送内容片段的发送器的示例,并且客户端是用于通过网络接收片段的接收器的示例。
一般地,上文针对通信系统的部件描述的功能、方法、技术或部件中的任一者都可以以软件、固件、硬件(例如,固定逻辑电路)或其任何组合来实现。本文所使用的术语“单元”、“检测器”以及“计算器”可以总体上表示软件、固件、硬件或其任何组合。在软件实现的情况中,单元、检测器以及计算器表示在处理器上实施时执行指定任务的计算机程序代码或计算机可读指令。本文所述的算法和方法可以由一个或更多个处理器来执行,所述一个或更多个处理器执行使该处理器执行所述算法/方法的代码。计算机程序代码可以存储在非暂时性计算机可读存储介质上。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器以及可以使用磁、光学以及其它技术来存储指令或其它数据并且可以通过机器访问的其它存储器装置。
申请人特此分别地将本文所述的每个单个特征以及两个或更多个这种特征的任何组合公开到如下程度:使得这种特征或组合能够按照本领域技术人员的公知常识,总体上基于本说明书来执行,而不管这种特征或特征的组合是否解决了本文所公开的任何问题,并且不对保护范围进行限制。申请人指出,本发明的各个方面可以由任何这种单个特征或特征的组合构成。鉴于前述描述,本领域技术人员应当明白,在本发明的范围内,可以进行各种修改。

Claims (16)

1.一种在网络中输送视频序列的方法,所述视频序列包括分别按多个质量编码的多个时间片段,所述方法包括以下步骤:
在输送所述视频序列之前,
计算对所述视频序列的所述多个时间片段中的各个时间片段的相对大小进行指示的数据集,时间片段的相对大小表示实现给定感知质量所需的该时间片段的相对比特率需求;
计算所述视频序列的所述多个时间片段的代表解码调度作为所述视频序列的多个时间片段的相对大小的累积函数;
根据所述代表解码调度,计算用于输送所述视频序列的所述多个时间片段的代表输送调度,所述代表输送调度指示所述视频序列的各个时间片段的目标输送时间,各个目标输送时间不晚于该时间片段的由所述代表解码调度指示的解码时间,并且各个目标输送时间与各个时间片段的编码质量无关;然后
针对各个时间片段,通过以下步骤来输送该时间片段:
根据该时间片段的所述目标输送时间以及该时间片段的相对大小,设置该时间片段的一个或更多个传送参数;并且
使用所述一个或更多个传送参数通过所述网络来输送该时间片段。
2.根据权利要求1所述的方法,其中,所述一个或更多个传送参数包括对所述多个时间片段进行编码的质量。
3.根据权利要求1或2所述的方法,其中,所述一个或更多个传送参数包括用于发送所述多个时间片段的拥塞窗口大小。
4.根据权利要求1所述的方法,其中,所述代表输送调度是具有单调递减斜率的分段线性曲线。
5.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:针对所述多个时间片段的第一时间片段之后的各个时间片段,
确定与先前输送的时间片段的输送相关联的一个或更多个输送参数;并且
还根据所述先前输送的时间片段的输送参数来设置所述一个或更多个传送参数。
6.根据权利要求5所述的方法,其中,所述一个或更多个输送参数包括对先前输送的时间片段的输送时间与先前输送的时间片段的所述目标输送时间之间的差进行指示的参数。
7.根据权利要求5或6所述的方法,其中,所述一个或更多个输送参数包括与所述先前输送的时间片段的输送相关联的丢包率。
8.根据权利要求1所述的方法,其中,所述数据集是针对所述多个质量的相对片段大小的代表集合,所述代表集合指示各个时间片段的代表相对大小。
9.根据权利要求8所述的方法,其中,所述方法还包括以下步骤:根据分别对相应质量下的时间片段的相对大小进行指示的多个片段大小集合,生成针对所述多个质量的相对片段大小的代表集合;并且存储所述代表集合作为所述数据集。
10.根据权利要求9所述的方法,其中,所述代表集合是根据针对所述多个质量的所述多个片段大小集合的数学平均生成的。
11.根据权利要求8所述的方法,其中,所述代表集合中的各个时间片段的大小选自如下多个片段大小集合中的一个:该片段大小集合对相应质量下的时间片段的相对大小进行指示。
12.根据权利要求1所述的方法,其中,所述方法还包括以下步骤:在所述多个时间片段的输送期间更新所述代表输送调度,以修正待通过所述网络输送的时间片段的目标输送时间。
13.根据权利要求11所述的方法,其中,响应于在所述目标输送时间之后的时间输送所述片段,对所述代表输送调度进行更新。
14.根据权利要求12所述的方法,其中,所述代表输送调度是通过从最近输送的时间片段的输送时间到所述视频序列中的接下来出现的临界片段的目标输送时间使用线性插值来更新的,其中,临界片段为:根据初始代表输送调度计算出的在所述临界片段之后的时间片段的传送速率小于计算出的在所述临界片段之前的时间片段的传送速率。
15.根据权利要求13所述的方法,其中,所述代表输送调度被更新成使得待输送的时间片段n的经修正的目标输送时间RTD(n)被计算为
Figure FDF0000020332090000021
其中,ATD(m)是在时间片段m的目标输送时间TD(m)之后输送的该时间片段m的实际输送时间,TD(n)是该时间片段n的在前目标输送时间,并且TDCP是所述视频序列中的下一临界片段的输送时间。
16.一种被配置成通过网络输送视频序列的数据发送器,所述视频序列包括按多个质量编码的多个时间片段,所述数据发送器包括:
参数计算单元,所述参数计算单元被配置成在输送所述视频序列之前:
a)根据对所述视频序列的所述多个时间片段中的各个时间片段的相对大小进行指示的数据集计算所述视频序列的所述多个时间片段的代表解码调度,时间片段的相对大小表示实现给定感知质量所需的该时间片段的相对比特率需求,所述代表解码调度是所述视频序列的时间片段的相对大小的累积函数,
b)根据所述代表解码调度,计算用于输送所述视频序列的所述多个时间片段的代表输送调度,所述代表输送调度指示所述视频序列的各个时间片段的目标输送时间,各个目标输送时间不晚于该时间片段的由所述代表解码调度指示的解码时间,并且各个目标输送时间与各个时间片段的编码质量无关,并且
c)针对各个时间片段,根据该时间片段的计算出的目标输送时间以及该时间片段的相对大小,设置该时间片段的一个或更多个传送参数;以及
派发单元,所述派发单元被配置成使用各个时间片段的所述一个或更多个传送参数,通过所述网络输送该时间片段。
CN201780081507.6A 2016-12-29 2017-12-13 在网络中输送视频序列的方法、数据发送器 Active CN110115042B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16207404 2016-12-29
EP16207404.1 2016-12-29
PCT/EP2017/082671 WO2018121990A1 (en) 2016-12-29 2017-12-13 Transmission parameter control for segment delivery

Publications (2)

Publication Number Publication Date
CN110115042A CN110115042A (zh) 2019-08-09
CN110115042B true CN110115042B (zh) 2023-02-21

Family

ID=57755075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780081507.6A Active CN110115042B (zh) 2016-12-29 2017-12-13 在网络中输送视频序列的方法、数据发送器

Country Status (4)

Country Link
US (1) US11711553B2 (zh)
EP (1) EP3563575B1 (zh)
CN (1) CN110115042B (zh)
WO (1) WO2018121990A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110199505B (zh) 2016-12-21 2022-11-18 英国电讯有限公司 确定通信链路的带宽
CN110192394B (zh) 2016-12-21 2023-10-20 英国电讯有限公司 通过网络传送媒体内容的方法和服务器
CN110115042B (zh) * 2016-12-29 2023-02-21 英国电讯有限公司 在网络中输送视频序列的方法、数据发送器
US10397286B2 (en) * 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
GB201812862D0 (en) * 2018-08-08 2018-09-19 British Telecomm Improved congestion response
CN112640373A (zh) 2018-08-08 2021-04-09 英国电讯有限公司 改善的拥塞响应
US10827181B1 (en) 2019-05-03 2020-11-03 At&T Intellectual Property I, L.P. Differential adaptive bitrate streaming based on scene complexity
US11962825B1 (en) * 2022-09-27 2024-04-16 Amazon Technologies, Inc. Content adjustment system for reduced latency

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101658035A (zh) * 2007-04-23 2010-02-24 高通股份有限公司 用于质量受控编码的方法和系统
CN104488265A (zh) * 2012-08-20 2015-04-01 德国电信股份有限公司 用于视频流服务的内容相关的视频质量模型

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY127940A (en) 1998-05-22 2007-01-31 Canon Kk Data communication apparatus and method
US6480537B1 (en) * 1999-02-25 2002-11-12 Telcordia Technologies, Inc. Active techniques for video transmission and playback
US7260826B2 (en) 2000-05-31 2007-08-21 Microsoft Corporation Resource allocation in multi-stream IP network for optimized quality of service
US6925502B1 (en) 2000-06-20 2005-08-02 At&T Corp. Methods and systems for improving data transmission rates having adaptive protocols
US7046672B2 (en) 2000-11-16 2006-05-16 Microsoft Corporation Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
US6744730B2 (en) 2001-11-30 2004-06-01 Nokia Corporation Throughput enhancement after interruption
US7305464B2 (en) 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US8069225B2 (en) 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
JP4283589B2 (ja) 2003-03-25 2009-06-24 株式会社エヌ・ティ・ティ・ドコモ 通信装置、通信制御方法及びプログラム
US7397759B2 (en) 2004-03-15 2008-07-08 Microsoft Corporation Response for spurious timeout
KR100533686B1 (ko) 2004-05-21 2005-12-05 삼성전자주식회사 모바일 애드 혹 네트워크에서의 데이터 전송 방법 및 이를이용한 네트워크 장치
EP1908303A4 (en) * 2005-07-01 2011-04-06 Sonic Solutions METHOD, DEVICE AND SYSTEM FOR USE IN MULTIMEDIA SIGNAL CODING
KR100664947B1 (ko) 2005-09-23 2007-01-04 삼성전자주식회사 전송률 제어 방법 및 이를 이용한 통신 장치
US8150995B2 (en) 2005-09-30 2012-04-03 Microsoft Corporation Receive window auto-tuning
WO2008047727A1 (fr) 2006-10-17 2008-04-24 Panasonic Corporation Appareil de communication et procédé de communication
JP5029125B2 (ja) 2007-04-27 2012-09-19 日本電気株式会社 可用帯域幅推定システム、ストリームデータ配信システム、方法、及び、プログラム
JP5517951B2 (ja) 2008-12-25 2014-06-11 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
US8553540B2 (en) 2010-03-05 2013-10-08 Microsoft Corporation Congestion control for delay sensitive applications
US8514715B2 (en) 2010-04-22 2013-08-20 Akamai Technologies, Inc. Congestion window control based on queuing delay and packet loss
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
EP2426923A1 (en) * 2010-09-02 2012-03-07 British Telecommunications Public Limited Company Adaptive streaming of video at different quality levels
CN101977151B (zh) 2010-11-09 2012-10-03 中南大学 一种用于高丢包率广域网环境下的拥塞控制方法
EP2469773A1 (en) * 2010-12-23 2012-06-27 British Telecommunications public limited company A method for delivering video content encoded at one or more quality levels over a data network
CN102088640A (zh) 2011-01-10 2011-06-08 西安电子科技大学 基于视频内容的自适应选择重传方法
MX336608B (es) * 2011-08-29 2016-01-25 Sling Media Pvt Ltd Sistemas y metodos para controlar la codificacion de una corriente de medio segmentada utilizando tiempos de transmision de segmento.
US10389780B2 (en) 2012-02-08 2019-08-20 Arris Enterprises Llc Managed adaptive streaming
US9276967B2 (en) 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
GB201217350D0 (en) * 2012-09-28 2012-11-14 Strathkelvin Instr Ltd Device for monitoring wastewater treatment
JP6051832B2 (ja) 2012-12-17 2016-12-27 富士通株式会社 通信装置,通信方法,及び通信プログラム
CN103929370A (zh) 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
US10375192B1 (en) 2013-03-15 2019-08-06 Viasat, Inc. Faster web browsing using HTTP over an aggregated TCP transport
US20140282792A1 (en) 2013-03-15 2014-09-18 Cygnus Broadband, Inc. Video streaming with buffer occupancy prediction based quality adaptation
EP2979513B1 (en) 2013-03-25 2020-05-20 Altiostar Networks, Inc. Transmission control protocol proxy in long term evolution radio access network
GB2516112B (en) 2013-07-12 2016-10-26 Canon Kk Methods for providing media data, method for receiving media data and corresponding devices
US9385959B2 (en) 2013-09-26 2016-07-05 Acelio, Inc. System and method for improving TCP performance in virtualized environments
US20150236966A1 (en) 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection
US10341245B2 (en) 2014-03-24 2019-07-02 Vmware, Inc. Bursty data transmission in a congestion controlled network
EP2928145A1 (en) 2014-04-02 2015-10-07 Thomson Licensing Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal
EP3742687A1 (en) 2014-04-23 2020-11-25 Bequant S.L. Method and apparatus for network congestion control based on transmission rate gradients
CN104125159B (zh) 2014-07-29 2017-09-12 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、装置及系统
US10397131B2 (en) 2014-09-09 2019-08-27 Vmware, Inc. Method and system for determining bandwidth demand
US9973345B2 (en) * 2014-09-10 2018-05-15 Qualcomm Incorporated Calculating and signaling segment availability times for segments of media data
US20160080241A1 (en) 2014-09-17 2016-03-17 Broadcom Corporation Gigabit Determination of Available Bandwidth Between Peers
KR102187810B1 (ko) 2014-09-26 2020-12-08 삼성전자주식회사 통신 시스템에서 데이터 흐름 제어 장치 및 방법
US10382591B2 (en) 2014-10-13 2019-08-13 International Business Machines Corporation Transparent inline content inspection and modification in a TCP session
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10601721B2 (en) 2015-10-29 2020-03-24 Altiostar Networks, Inc. Maintenance of downlink throughput
US20170149666A1 (en) 2015-11-23 2017-05-25 Titan Photonics, Inc. Data traffic optimization system
US10404603B2 (en) 2016-01-22 2019-09-03 Citrix Systems, Inc. System and method of providing increased data optimization based on traffic priority on connection
US10361963B2 (en) 2016-05-10 2019-07-23 Verizon Patent And Licensing Inc. Controlling a congestion window size
US10257097B1 (en) 2016-10-04 2019-04-09 EMC IP Holding Company LLC Connection based selection of a network congestion control process
CN110199505B (zh) 2016-12-21 2022-11-18 英国电讯有限公司 确定通信链路的带宽
CN110192394B (zh) 2016-12-21 2023-10-20 英国电讯有限公司 通过网络传送媒体内容的方法和服务器
CN110115042B (zh) * 2016-12-29 2023-02-21 英国电讯有限公司 在网络中输送视频序列的方法、数据发送器
WO2019185372A1 (en) 2018-03-27 2019-10-03 British Telecommunications Public Limited Company Congestion response for timely media delivery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101658035A (zh) * 2007-04-23 2010-02-24 高通股份有限公司 用于质量受控编码的方法和系统
CN104488265A (zh) * 2012-08-20 2015-04-01 德国电信股份有限公司 用于视频流服务的内容相关的视频质量模型

Also Published As

Publication number Publication date
EP3563575B1 (en) 2024-04-10
WO2018121990A1 (en) 2018-07-05
US11711553B2 (en) 2023-07-25
EP3563575A1 (en) 2019-11-06
CN110115042A (zh) 2019-08-09
US20190342591A1 (en) 2019-11-07

Similar Documents

Publication Publication Date Title
CN110115042B (zh) 在网络中输送视频序列的方法、数据发送器
EP2974207B1 (en) Playback stall avoidance in adaptive media streaming
CN110192394B (zh) 通过网络传送媒体内容的方法和服务器
US9609040B2 (en) Efficient bitrate adaptation in video communications over IP networks
CN111010582B (zh) 一种云桌面图像处理方法、装置、设备及可读存储介质
US20030165150A1 (en) Multi-threshold smoothing
CN111886875B (zh) 一种通过网络传送媒体内容的方法及服务器
EP2589223B1 (en) Video streaming
TW201448570A (zh) 適應性串流技術
US20140241699A1 (en) Content playback information estimation apparatus and method and program
CN107135411B (zh) 一种调整视频码率的方法及电子设备
US20120194534A1 (en) System and Method for Managing Cache Storage in Adaptive Video Streaming System
CN102413382B (zh) 一种提高实时视频平滑性的方法
GB2561526A (en) Transmission parameter control for segment delivery
EP2656560B1 (en) A method for delivering video content encoded at one or more quality levels over a data network
EP2446624B1 (en) Modifying command sequences
US20190037003A1 (en) Client-driven, abr flow rate shaping
WO2018219487A1 (en) Methods and apparatus for streaming data
CN104717500A (zh) 一种视频编码码率控制方法和系统
GB2572357A (en) Congestion response for timely media delivery
CN112640373A (zh) 改善的拥塞响应
EP2408204A1 (en) Video streaming

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant