用于高效对等辅助流式传输的高速缓存清单的制作方法

文档序号:11162284阅读:496来源:国知局
用于高效对等辅助流式传输的高速缓存清单的制造方法与工艺

本申请一般设计视频内容递送系统,并且更具体地,涉及一种用于高效对等辅助流式传输的高速缓存清单。



背景技术:

用户希望通过互联网接收高清(HD)或者超高清的(UHD)视频内容。互联网的当前状态支持HD或UHD质量视频的流传输,但是有限的端到端带宽、吞吐量的不确定性以及延迟的不确定性引起了许多问题。互联网网络通过在网络中的各个位置包括高速缓存并且利用高速缓存主机的带宽来加速视频内容的递送。已经部署了像Coolstream这样的早期系统,以通过在可能的情况下使流量本地化并且探索不拥塞的重叠路径,将热门节目(例如,世界杯足球赛和中国春节联欢晚会)的实况广播传送给大量用户。



技术实现要素:

问题解决方案

在第一实施例中,一种用于在通信网络中递送内容的方法包括由高速缓存接收请求将被服务的内容的请求消息。该方法包括存储对应于指示多个高速缓存的内容和能力的多个高速缓存清单。每个该高速缓存清单指示相应的一个该高速缓存的内容和能力,并且列出对存储在该相应的高速缓存中的内容的描述。该方法包括基于该多个高速缓存清单中的信息,确定要服务该请求的内容,其中,该确定要服务包括从该多个高速缓存中选择要从其服务该请求的内容的高速缓存。该方法还包括响应于该确定,指示该选择的高速缓存将该请求的内容发送到生成该请求消息的客户端设备。该方法包括另选地,基于该多个高速缓存清单中的信息,确定不服务该请求的内容,并且将该请求消息转发到更高级别的设备。

在第二实施例中,提供了一种在通信网络中使用的装置。该装置包括处理电路,该处理电路被配置成:接收请求将被服务的内容的请求消息,并且存储对应于指示多个高速缓存的内容和能力的多个高速缓存清单。每个该高速缓存清单指示相应的一个该高速缓存的内容和能力,并且列出对存储在该相应的高速缓存中的内容的描述。该处理电路还被配置成基于该多个高速缓存清单中的信息,确定要服务该请求的内容,其中,该确定要服务包括从该多个高速缓存中选择要从其服务该请求的内容的高速缓存。该处理电路还被配置成响应于该确定,指示该选择的高速缓存将该请求的内容发送到生成该请求消息的客户端设备。该处理电路被配置成另选地,基于该多个高速缓存清单中的信息,确定不服务该请求的内容,并且将该请求消息转发到更高级别的设备。

在第三实施例中,提供了一种在通信网络中使用的客户端设备。该客户端设备包括回放缓冲器,该回放缓冲器被配置成存储内容。该客户端设备包括处理电路,该处理电路被配置成:生成指示该回放缓冲器的内容和能力的高速缓存清单并且列出对存储在该回放缓冲器中的内容的描述。该描述包括资产标识符列表,每个资产标识符(ID)标识其至少一个段被存储在该回放缓冲器中的资产。该请求消息包括资产标识符(ID)。该处理电路被配置成发起更新消息到该通信网络中的内容发现服务服务器(CDSS)的传输。该更新消息向该CDSS提供该高速缓存清单。

在进行以下具体实施方式之前,阐述在本专利文献全文使用的某些词语和短语的定义可能是有利的。术语“联接”及其派生词是指两个或更多个元件之间的任何直接或间接通信,而不管这些元件是否彼此物理接触。术语“发送”、“接收”和“通信”及其派生词包括直接和间接通信。术语“包括”和“包含”及其派生词意指包括但不限于。术语“或者”是包容性的,意指和/或。短语“与...相关联”及其派生词意指包括、包括在...内、与...互连、包含、包含在...内、连接到或与...连接、联接到...或与...联接、可以和......通信、与...协作、交织、并置、接近于、绑定到或与...绑定、具有、具有...的属性、与...有关系或与...具有关系,等等。术语“控制器”意指控制至少一个操作的任何设备、系统或其部件。这种控制器可以以硬件或者硬件和软件和/或固件的组合来实现。与任何特定控制器相关联的功能可以是集中式或分布式的,无论是本地还是远程。当与项目列表一起使用时,短语“至少一个”意指可以使用所列出的项目中的一个或多个的不同组合,并且可能仅需要列表中的一个项目。例如,“以下至少一个:A、B和C”包括以下组合中的任一种:A、B、C、A和B、A和C、B和C、以及A和B和C。

此外,以下描述的各种功能可以由一个或多个计算机程序实现或支持,每个计算机程序是由计算机可读程序代码形成并且在计算机可读介质中具体化。术语“应用程序”和“程序”是指适于在适当的计算机可读程序代码中实现的一个或多个计算机程序、软件组件、指令集、过程、函数、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其它类型的存储器。“非暂时性”计算机可读介质不包括传输暂时电气或其它信号的有线、无线、光学或其它通信链路。非暂时性计算机可读介质包括其中可以永久存储数据的介质和其中可以存储并稍后重写数据的介质,诸如可重写光盘或可擦除存储器设备。

本专利文件中提供了其他某些词语和短语的定义。本领域的普通技术人员应当理解,在许多(即使不是大多数)情况下,这种定义适用于这样定义的单词和短语的早先以及将来的使用。

附图说明

现在参照以下描述并结合附图对本公开进行更全面地理解,其中:

图1示出了根据本公开的示例计算系统;

图2和图3示出了根据本公开的计算系统中的示例设备;

图4示出了根据本公开的实施例的包括用于通过互联网广播的高速缓存视频递送的数据路径的网络的系统;

图5示出了根据本公开的实施例的高速缓存状态的时间线;

图6A示出了根据本公开的实施例的MMT高速缓存清单;

图6B示出了图6A的高速缓存清单中与段的各种RDOp相对应的段的示例版本;以及

图7示出了根据本公开的实施例的实现MMT高速缓存清单方案的方法。

具体实施例

下面讨论的图1至图7以及用于在本专利文档中描述本公开的原理的各种实施例仅仅是作为说明,而不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的通信设备中实现。

以下文档和标准描述如同在本文中完全阐述地一样,特此并入本公开:(i)Bo Li,Susu Xie,Gabriel Yik Keung,Jiangchuan Liu,Ion Stoica,Hui Zhang,Xinyan Zhang:“An Empirical Study of the Coolstreaming+System(Coolstreaming+系统的实证研究)”,IEEE Journal on Selected Areas in Communications《在选定区域的IEEE通信杂志》25(9):1627-1639(2007年)(以下称为“参考文献”);(ii)Ying Li,Zhu Li,Mung Chiang,A.Robert Calderbank:“Video transmission scheduling for peer-to-peer live streaming systems(用于对等实时流传输系统的视频传输调度)”,ICME 2008:653-656(以下称为“参考文献2”);(iii)ISO/IEC23008-1,2014年,“Information technology—High efficiency coding and media delivery in heterogeneous environments—Part 1:MPEG media transport(MMT)(信息技术-异构环境中的高效编码和媒体递送-第1部分:MPEG媒体传输(MMT))”(以下称为“参考文献3”);(iv)ISO/IEC JTC1/SC29/WG11/MPEG2014/m33237,Z.Li,I.Bouazizi和K.Park,MMT Amd1:“Multiple QoE Operating Points Signalling in MMT ADC(MMT ADC中的多个QoE工作点信令)”(以下称为“参考文献4”);(v)ISO/IEC JTC1/SC29/WG11/MPEG2014/m33239,Z.Li和I.Bouazizi,FF:“Temporal Quality Signalling in ISO Based Media File Format(基于ISO的媒体文件格式的时间质量信令)”(以下称为“参考文献5”);以及(vi)ISO/IEC JTC1/SC29/WG11/MPEG2013/N13992,Y.Reznik,A.Giladi,O.Oyman,D.Singer和S.Zhang,“WD of ISO/IEC XXXXX-Y:Carriage of quality-related information in the ISO Based Media File Format(ISO/IEC XXXXX-Y的WD:以基于ISO的媒体文件格式携带质量相关信息)”(以下称为“参考文献6”)。参考文献1描述了部署用来向大量用户进行热门节目(诸如世界杯足球和中国春节联欢晚会)的实时广播的Coolstream系统。参考文献2描述了流式传输时间调度间隔。参考文献3描述了运动图像专家组(MPEG)媒体传输(MMT)系统。

图1示出了根据本公开的示例计算系统100。图1所示的计算系统100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用计算系统100的其他实施例。

如图1所示,系统100包括网络102,该网络102有利于系统100中的各种组件之间的通信。例如,网络102可以在网络地址之间传送互联网协议(IP)数据包、帧中继帧、异步传输模式(ATM)信元、或其他信息。网络102可以包括一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)、诸如互联网的全球网络的全部或一部分、或者在一个或多个位置的一个或多个任何其他通信系统。

网络102有利于在至少一个服务器104与各种客户端设备106至114之间的通信。服务器104包括可以为一个或多个客户端设备提供计算服务的任何合适的计算或处理设备。服务器104可以(例如)包括一个或多个处理设备、一个或多个存储指令和数据的存储器、以及一个或多个有利于通过网络102进行通信的网络接口。

每个客户端设备106至114表示通过网络102与至少一个服务器或其他计算设备交互的任何合适的计算或处理设备。在该示例中,客户端设备106至114包括台式计算机106、移动电话或智能电话108、个人数字助理(PDA)110、膝上型计算机112和平板计算机114。然而,在计算系统100中可以使用任何其他或附加的客户端设备(例如,电视)。

在该示例中,一些客户端设备108至114与网络102间接通信。例如,客户端设备108至110经由一个或多个基站116(诸如蜂窝基站或eNodeB)进行通信。此外,客户端设备112至114经由一个或多个无线接入点118(诸如IEEE802.11无线接入点)进行通信。注意,这些仅用于说明,并且每个客户端设备可以经由任何合适的(多个)中间设备或网络,与网络102直接通信或间接通信。

如以下更详细的描述,紧凑高速缓存清单方案支持以按需和分布式方式检索和流式传输高速缓存内容。

虽然图1示出了计算系统100的一个示例,但是可以对图1进行各种更改。例如,系统100可以在任何合适的布置中包括任何数量的每个组件。通常,计算系统和通信系统具有各种各样的配置,并且图1没有将本公开的范围限制为任何特定配置。尽管图1示出了一个在其中可以使用本专利文档中公开的各种特征的操作环境,但是这些特征可以用在任何其他合适的系统中。

图2和图3示出了根据本公开的计算系统中的示例设备。具体地,图2示出了示例服务器200,并且图3示出了示例客户端设备300。服务器200可以表示图1中的服务器104,并且客户端设备300可以表示图1中的客户端设备106至114中的一个或多个。

如图2所示,服务器200包括总线系统205,该总线系统205支持至少一个处理设备210、至少一个存储设备215、至少一个通信单元220和至少一个输入/输出(I/O)单元225之间的通信。

处理设备210执行可以加载到存储器230中的指令。处理设备210可以在任何合适的布置中包括任何合适(多个)数量和(多个)类型的处理器或其他设备。处理设备210的示例类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、特定于应用程序的集成电路、和分立电路。

存储器230和持久性存储部235是存储设备215的示例,其表示能够存储和便于信息(诸如临时性或永久性的数据、程序代码和/或其它合适的信息)检索的任何(多个)结构。存储器230可以表示随机存取存储器或任何其它合适的易失性或非易失性存储设备。持久性存储部235可以包含支持数据的长期存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪存或光盘。

通信单元220支持与其他系统或设备的通信。例如,通信单元220可以包括网络接口卡或促进通过网络102的通信的无线收发器。通信单元220可以通过任何合适的(多个)物理或无线通信链路来支持通信。

I/O单元225允许数据的输入和输出。例如,I/O单元225可以通过键盘、鼠标、键盘、触摸屏或其他合适的输入设备,提供用于用户输入的连接。I/O单元225还可以将输出发送到显示器、打印机或其它合适的输出设备。

注意,虽然图2被描述为表示图1的服务器104,但是可以在一个或多个客户端设备106-114中使用相同或类似的结构。例如,膝上型计算机或台式计算机可以具有与图2所示相同或相似的结构。

如图3所示,客户端设备300包括天线305,射频(RF)收发器310,发射(TX)处理电路315,麦克风320和接收(RX)处理电路325。客户端设备300还包括扬声器330,主处理器340,输入/输出(I/O)接口(IF)345,键盘350,显示器355和存储器360。存储器360包括基本操作系统(OS)程序361和一个或多个应用程序362。

RF收发器310从天线305接收由系统中的另一个组件发射的传入的RF信号。RF收发器310对传入的RF信号进行下变频以生成中频(IF)或基带信号。IF或基带信号被发送到RX处理电路325,该RX处理电路325通过对基带或IF信号进行滤波、解码和/或数字化来生成经处理的基带信号。RX处理电路325将经处理的基带信号发送到扬声器330(诸如用于语音数据),或者发送到主处理器340,以进行进一步的处理(诸如用于网络浏览数据)。

TX处理电路315从麦克风320接收模拟或数字语音数据,或者从主处理器340接收其他传出的基带数据(诸如网页数据、电子邮件或交互式视频游戏数据)。TX处理电路315对传出的基带数据进行编码、复用和/或数字化,以生成经处理的基带或IF信号。RF收发器310从TX处理电路315接收传出的经处理的基带或IF信号,并且将该基带或IF信号上变频为经由天线305发送的RF信号。

主处理器340可以包括一个或多个处理器或者其他处理设备,并且执行存储在存储器360中的基本OS程序361,以便控制客户端设备300的整体操作。例如,根据公知的原理,主处理器340可以通过RF收发器310、RX处理电路325和TX处理电路315,控制前向信道信号的接收和反向信道信号的发送。在一些实施例中,主处理器340包括至少一个微处理器或微控制器。

主处理器340还能够执行驻留在存储器360中的其他进程和程序,诸如支持以按需和分布式方式检索和流式传输高速缓存内容的紧凑高速缓存清单方案的操作。主处理器340可以根据正在执行的进程的需要,将数据移入或移出存储器360。在一些实施例中,主处理器340被配置成基于OS程序361或响应于从外部设备或操作者接收的信号来执行应用程序362。主处理器340还联接到I/O接口345,该I/O接口345向客户端设备300提供连接到诸如膝上型计算机和手持式计算机之类的其他设备的能力。I/O接口345是这些附件和主处理器340之间的通信路径。

主处理器340还联接到键盘350和显示单元355。客户端设备300的操作者可以使用键盘350将数据输入到客户端设备300中。显示单元355可以是液晶显示器或能够呈现文本和/或至少有限图形(诸如来自网站)的其他显示器。

存储器360联接到主处理器340。存储器360的一部分可以包括随机存取存储器(RAM),并且存储器360的另一部分可以包括闪存或其他只读存储器(ROM)。

如以下更详细的描述,紧凑高速缓存清单方案支持以按需和分布式方式检索和流式传输高速缓存内容。

尽管图2和图3示出了计算系统中的设备的示例,但是可以对图2和图3进行各种更改。例如,图2和图3中的各种部件可以组合、进一步细分、或者省略,并且可以根据特定需要添加附加组件。作为具体示例,主处理器340可以被划分为多个处理器,诸如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)。此外,尽管图3示出了被配置成移动电话或智能电话的客户端设备300,但是客户端设备可以被配置成作为其他类型的移动或固定设备运行。另外,与计算和通信网络一样,客户端设备和服务器可以具有各种配置,并且图2和图3并未将本公开限制到任何特定的客户端设备或服务器。

加速视频内容传送的一个解决方案是增加端到端链路容量的强力方法。另外,利用网络内高速缓存来支持对等辅助多路径流传输,是一种有效的视频内容递送加速解决方案。本公开的紧凑高速缓存清单方案可以在网络内高速缓存中实现。紧凑高速缓存清单方案可以被实现为诸如运动图像专家组(MPEG)媒体传输(MMT)、MPEG桌面和移动系统硬件架构(DASH)、以及互联网工程任务组应用层流量优化(IETF ALTO)之类的标准。

本公开描述了MMT高速缓存清单方案的实施例,以支持高速缓存管理和高速缓存辅助的递送加速。MMT高速缓存清单方案可以组织高速缓存中的片段化内容,并且可以用信号发送不同的服务质量(QoS)和体验质量(QoE)可用选项。清单非常紧凑,并且可以容易地从内容请求客户端(诸如客户端设备300)检索。非常紧凑的清单避免了高速缓存内容列表的高成本广播。此外,非常紧凑的清单允许更容易地与流传输时间调度间隔对准,该流传输时间调度间隔通常比高速缓存清单更新时间标度小得多。

根据本公开的实施例,MMT高速缓存清单指示可用的内容(也称为“资产”、“多媒体资产”或“MMT资产”)和内容的不同表示以及具有产生的质量和QoS参数的内容的子表示。在某些实施例中,清单是二进制格式并且非常紧凑,而且可以是用于实现缓存辅助的递送加速的中心信息。

图4示出了根据本公开的实施例的包括用于通过互联网上的广播进行高速缓存视频递送的数据路径的网络402的系统400。如图4所示的系统400的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用其他实施例。

系统400可以(例如)与图1的系统400一起使用。注意,图4中的组件402、404、406和408可以和图1中的对应组件102、104、106和108相同或相似。图4中的这些组件可以以和图1中的相应组件相同或相似的方式运行。

除了网络402之外,系统400包括互联网服务提供商(ISP)子网403a至403b、内容递送网络(CDN)服务器404和客户端设备406、408。CDN服务器404是视频内容的源,并且服务器可以使用直接数据路径410通过网络402直接服务终端用户的客户端设备406。以类似的方式,CDN服务器404使用另一个数据路径412来直接服务另一个客户端设备408。直接数据路径410、412通过网络402并且通过相应的ISP子网403a、403b,分别从CDN服务器404到达客户端设备406、408。在某些实施例中,CDN服务器404包括16兆比特每秒(mbps)的传出带宽。

由于以下几个原因:有限的计算能力、传出带宽和端到端不确定性,CDN服务器404无法可行地为每个客户端设备直接服务。更具体地,CDN服务器404的计算能力有限,并且只能支持有限数量的并发连接。进一步地,原始CDN服务器404将需要具有n×B传出带宽,以支持以比特率B消费视频的n个用户。对于诸如UHD(例如,B=16mbps)的高带宽应用程序,服务一千(1000)名用户所需的带宽量将需要16吉比特每秒(Gbps)或16G的传出带宽。在UHD的情况下,可能很容易超出所需的带宽量,并且用完属于CDN服务器404的现有带宽量(例如,B=16mbps)。在该示例中,CDN服务器404具有的带宽仅足以支持单个用户执行UHD应用程序。此外,一旦从始发CDN服务器404发送数据包,互联网网络402的当前状态就无法保证吞吐量或延迟。这种缺乏保证的不确定性可能作为互联网网络的特征长期存在。

系统400包括在网络402中的各个位置处的一个或多个顶级高速缓存414。系统400还包括与每个ISP子网403a、403b相关联的较低级高速缓存416、418。每个客户端设备406、408均包括高速缓存420、422。顶级高速缓存414可以通过数据路径424直接服务客户端设备408,而不是从始发CDN服务器404服务终端用户客户端设备406、408。与CDN服务器404的RTT相比,顶级高速缓存414可以为通常具有更短RTT的客户端设备提供服务。此外,备选递送路径424可以具有比来自CDN服务器404的数据路径412更少的拥塞。

CDN服务器404可以通过数据路径426直接向顶级高速缓存414提供内容。CDN服务器404可以通过数据路径428直接向较低级高速缓存416提供内容,该数据路径428贯穿网络402和ISP子网403a。类似地,CDN服务器404通过数据路径430直接服务较低级高速缓存418。另外,CDN服务器404可以通过备选数据路径432向较低级高速缓存416提供内容,并且通过备选数据路径434(备选数据路径如虚线所示)向客户端设备408提供内容。

顶级高速缓存414可以通过备选数据路径436(以虚线路径示出)向客户端设备408提供内容,并且通过备选数据路径438(以虚线路径示出)向客户端设备406的高速缓存420提供内容。

较低级高速缓存418可以使用直接数据路径440,向与相同ISP网络403b相关联的客户端设备408提供内容服务。

本公开提供了用于管理各种高速缓存414、416、418、420、422并且利用数据路径来加速内容递送、避免拥塞和避免回放冻结的方法(进一步参照图7进行描述)。更具体地,每个高速缓存414、416、418、420、422均包括使得高速缓存能够实现紧凑高速缓存清单方案的清单450a-d。以下参照图6A和图6B对清单450a-d进行进一步的详细描述。

在某些实施例中,系统400包括可能和图1中的服务器104相同或相似的内容发现服务服务器(CDSS)460。CDSS 460实现用于管理各种高速缓存414、416、418、420、422的方法。例如,每个高速缓存414、416、418、420、422生成清单450a-d,并且作为更新消息462a-d发送到CDSS 460。更新消息462a-d向CDSS 460提供清单450a-d和有效性时间戳,使得CDSS 460能够管理来自通信网络402中的集中式节点的各种缓存414、416、418、420、422。

例如,客户端设备408基于客户端设备408内的回放缓冲器422的内容,生成包括清单450d(例如,清单450d的副本)的更新消息462d。响应于更新消息462d的接收,CDSS 460存储用于参考目的的清单450d;将清单450d与客户端设备408的地址链接;并且通过使用更新消息462d内的有效性时间戳确定清单450d何时是有效的。当客户端设备408发送后续更新消息462d时,CDSS 460在接收受后,存储更新的清单450d(或更改清单),并且将后续有效性时间戳链接到清单450d内的更新(例如,更改或不更改)。客户端设备408可以在存储在回放缓冲器内的内容422改变时或者周期性地(例如,在间隔之后)发送更新消息462。具有高速缓存清单的网络402中的每个高速缓存414、416、420、422,都可以使用与客户端设备408的回放缓冲器422相似的进程向CDSS 460发送更新消息462a-d。也就是说,CDSS 460为多个高速缓存维护多个更新的高速缓存清单,该多个高速缓存在系统400内并且联接到网络402。

作为从通信网络402中的集中式节点管理各种高速缓存414、416、418、420、422的另一示例,CDSS 460可以拦截来自指向原始内容CDS服务器404的数据路径的内容请求消息。此外,CDSS 460可以从指向CDS460的客户端设备408接收内容请求消息464。响应于内容请求消息464的接收,CDSS 460确定是否向客户端设备408服务所请求的内容。也就是说,CDSS 460引用存储在CDSS 460内的多个高速缓存清单,搜索符合内容请求消息464内的信息的信息。当存储在CDSS 460内的高速缓存清单不符合内容请求消息464时,CDSS 460基于从网络402中的各种高速缓存中选择的一个用来服务所请求的内容的高速缓存,确定不服务所请求的内容。当CDSS 460找到符合内容请求消息464的有效高速缓存清单450b时,CDSS 460确定服务所请求的内容。通过找到符合要求的高速缓存清单450b,CDSS 460还找到从其接收到符合要求的高速缓存清单450d的高速缓存416的链接地址。CDSS 460选择链接到符合要求的高速缓存清单450d的高速缓存416,作为从其向客户端设备408服务所请求的内容的高速缓存。响应于服务所请求的内容的确定,CDSS 460将指令466发送到所选择的高速缓存416,以将所请求的内容发送到产生请求消息464的客户端设备408。指令466可以包括所选择的高速缓存416的标识(例如,地址)以及将向其发送所请求的内容的客户端设备408的目的地址或标识。响应于指令466的接收,高速缓存416通过网络402和403b将请求的内容468发送到客户端设备408。

CDSS 460可以实现各种进程,以确定将所请求的内容服务于客户端设备408。例如,CDSS 460确定通过以下进程来服务所请求的内容:将多个高速缓存清单中的资产标识符(ID)与包括在请求消息464中的资产ID进行匹配;将多个缓存清单中的段标识符(例如,段的指纹或时间戳)与包括在请求消息464中的段标识符进行匹配;或者确定多个高速缓存清单中的速率失真工作点(RDOp)的服务质量(QoS)参数等于或超过包括在请求消息464中的比特率。

图5示出了根据本公开的实施例的高速缓存状态的时间线。在该示例时间线500中,不存在内容的片段化。图5中所示的高速缓存状态500的时间线仅用于说明。在不脱离本公开的范围的情况下,可以使用时间线的其他实施例。

随着时间的推移,在始发CDN服务器404处的内容以可预测的方式变得线性可用。也就是说,响应于对内容的请求的接收,CDN服务器404可以以线性的方式将所请求的内容发送到发出请求的客户端设备。相比之下,在高速缓存414、416、418、420、422处的内容可用性是不可预测的。由于用户行为和不同的流式传输开始时间,不同的高速缓存包含不同的内容段并且具有不同质量和QoS要求的不同子表示(在DASH术语中)。也就是说,连接到子网403b的客户端设备408可以使用比客户端406的QoS要求更高的QoS要求,来请求与客户端406请求的相同的内容,结果是,最接近客户端408的高速缓存418可以以比存储在最接近客户端406的高速缓存416中的所请求的内容的QoS更高的QoS来存储所请求的内容。类似地,在任何一个时间,已经将特定内容服务于多个客户端设备的高速缓存416,可以存储特定内容的多个段,但是没有接收到对该特定内容的请求的高速缓存418,可以不包括该特定内容的任何段。

为了便于缓存辅助的流式传输,需要用信号发送内容当前回放时间戳(tk)和内容开始和结束时间戳{sk,ek}。对于相同的段,当不同的子表示可用时,需要关于每个子表示用信号通知以下信息:相关联的MFU索引、结果质量和QoS信息。可以以类似于在参考文献4中关于流式传输中的多个工作点ADC情况描述的信令的方式,用信号来发送子表示信息的信令。

对于所示的示例时间线500,网络(诸如网络400)包括以非分段的方式整体存储视频内容505的CDN服务器(诸如服务器404)。内容505具有开始时间戳s内容和结束时间戳e内容。网络还包括N个高速缓存(高速缓存1...高速缓存k...高速缓存N),并且每个高速缓存存储表示内容505的不同部分的段。例如,第一高速缓存存储具有时间戳集合{s0,t1,e1}的内容的段515。以类似的方式,第k个高速缓存存储具有时间戳{sk,tk,ek}的段525,并且第N个高速缓存存储具有时间戳{sN,tN,eN}的段535。在该示例中,段515、525、535(高速缓存1至高速缓存N)的集合不提供时间上的任何差距或缺失内容的印记,并且因此不在时间戳{sk,e1}之间将内容505片段化。在该示例中,高速缓存没有存储表示时间戳{s内容,sk}之间的或者时间戳{e1,e内容}之间的内容505的部分的段。

图6A示出了根据本公开的实施例的MMT高速缓存清单600。图6A中所示的MMT高速缓存清单600的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用其他实施例。

注意,图6A中所示的MMT高速缓存清单600可以和图4中的对应的清单450a-d相同或相似。图6A中的这些组件可以以和图4中的对应的组件相同或相似的方式运行。

作为简单的示例,本公开将清单600描述为属于高速缓存418,然而,紧凑高速缓存清单方案中的每个高速缓存均可以包括清单。MMT高速缓存清单600由资产标识符(资产ID)组织。也就是说,每个资产605(例如,内容505)均由资产ID 610标识。资产ID 610可以是统一资源定位符(URL),URL标识整个非分段内容605的位置。

资产605包括一系列段615a-d(S1,S2,S3和S4)。对于每个资产605,存在于高速缓存418中的对应段615a-d由时间戳列出。时间戳(由水平分割线示出)描绘了将第一段615a(S1)与第二段615b分隔的边界(S2)。通常,时间戳分隔连续的段。例如,资产605可以包括100帧视频内容,其中,段615a(S1)包括帧1至20,段615b(S2)包括帧25至35,段615c(S3)包括帧50至55,并且段615d(S4)包括段75至95。在某些实施例中,时间戳标识段。在某些实施例中,指纹标识段。

对于每个段615a-d,清单600包括对应的段清单(SegMf)620a-d数据结构。每个段清单620a数据结构包括一个或多个多速率失真工作点(RDOp)。RDOps的数量指示高速缓存可以提供的段的版本的数量。更具体地,段清单620a数据结构包括多个RDOps 622、624、626(RDOp1,RDOp2和RDOp3)。段清单620a指示高速缓存418存储段615a的三个不同版本:对应于RDOp 622的第一版本,对应于RDOp 624的第二版本,以及对应于RDOp 626的第三版本。将参照图6B对段615a的三个版本进行更具体的描述。

每个RDOp 622、624、626包括媒体数据单元(MDU)(例如,媒体片段化单元(MFU)索引),与段615a(S1)相关联的QoS参数,以及与段615a(S1)相关联的QoE参数。也就是说,MDU索引、QoS参数和QoE参数共同表示每个RDOp。MDU索引引用内容文件640(例如,平面机器数据(mdat)字节文件)中的段615a的位置(该引用关系通过从索引指向mdat字节文件中的地址位置的箭头示出)。高速缓存418在内部生成用于内容文件640的每个MDU索引。更具体地,高速缓存418为第一段615a(S1)的RDOp1表示生成MDU索引630,为RDOp2生成MDU索引632,并且为RDOp3生成MDU索引634。相关联的QoS参数指示可以从高速缓存418发送的段615a(S1)的平均比特率和峰值比特率。QoE参数指示符合参考文献4中描述的国际标准化组织(ISO)基本媒体文件格式(ISOBMFF)质量度量的段的时空质量。QoE指示当使用对应的RDOp时段615a内的失真量。高速缓存418可以以类似于参考文献4中描述的信令的方式发送指示QoE参数信息的信号。高速缓存418发送应用编程接口(API)以从高速缓存主机中检索相关联的MFU。

图6B示出了图6A的高速缓存清单中与段615a的各种RDOp相对应的段615a(S1)的示例版本。图6B中所示的段615a的示例版本仅用于说明。在不脱离本公开的范围的情况下,可以使用其他实施例。

作为示例,段615a跨越十秒的时间戳{s1=0,e1=10}并且包括帧1-20。RDOp 1 622包括引用内容文件640中的位置的MDU,其中,内容文件640中存储要传送到客户端设备的内容的部分。RDOp 1 622对应于1兆字节(MB)的文件大小。QoS参数指示1.0兆字节每秒(MBps)的高质量比特率。QoE参数(例如,1.0)指示没有失真,即,段的所有帧均被发送,并且任何帧的任何部分均没有从服务于客户端设备的内容中移除或者以其它方式丢弃。

RDOp2 624对应于800千字节(KB)的文件大小。QoS参数指示800千字节每秒(0.8MBps)的较低质量比特率。QoE参数(例如,0.8)指示低失真,即,段的大部分帧被发送,并且某些帧的一小部分被从服务于客户端设备的内容中移除或者以其他方式丢弃。帧的被移除部分可以是整个帧(由单向对角线阴影示出),或者小于整个帧(由双向对角线阴影示出)。如该示例所示,段615a的被移除部分表示当使用RDOp2时有200KB的数据未被发送,但是相比之下,当使用RDOp1时被发送。

RDOp2 626对应于640千字节(KB)的文件大小。QoS参数指示600千字节每秒(KBps)的进一步降低的质量比特率。QoE参数指示较低的失真,即,段的大部分帧被传送,并且某些帧的小部分被从服务于客户端设备的内容中移除或者以其他方式丢弃。帧的被移除部分可以是整个帧(由单向对角线阴影示出),或者小于整个帧(由双向对角线阴影示出)。如该示例所示,段615a的被移除部分表示当使用RDOp3时有360KB的数据未被发送,但是相比之下,当使用RDOp1时被发送。

高速缓存清单使得能够进行内容识别片段化。例如,所请求的内容可以包括没有一起存储在任何一个高速缓存中的t0至t10的视频内容,但是所请求的内容的各种片段在不同的高速缓存中,使得片段的组合等同于整个请求的内容。高速缓存包括并且清单指示用于不同QoS和QoE折衷的高速缓存内容的多个表示。

表1提供了MMT高速缓存清单句法的示例。表2提供了在MMT高速缓存清单句法中使用的术语的语义。

表1-MMT缓存清单句法

表2-语义

图7示出了根据本公开的实施例的实现MMT高速缓存清单方案的方法。方法700使得网络高速缓存418作为比始发内容服务器404更加可靠的所请求内容的备选源,能够向提出请求的客户端提供高质量的视频内容。方法700由系统400实现。图7所示的方法700的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用其他实施例。

在框705中,终端用户客户端设备通过发送包括所请求内容的资产ID、客户端设备可接受的比特率、和所请求内容的段的内容请求消息来请求具体内容。在某些实施例中,内容请求消息包括资产ID和指示所请求的段的时间戳集合{s,e}。在某些实施例中,内容请求消息包括资产ID和指示所请求的段的指纹。内容请求消息可以包括CDN服务器404的预期目的地址。

在框710中,网络402中的高速缓存拦截内容请求消息。高速缓存从内容请求消息确定所请求的资产、所请求的段以及所请求的比特率。高速缓存可以是沿着客户端设备和CDN服务器404之间的数据路径的高速缓存,例如,ISP子网403a、b的高速缓存。CDN服务器404存储所请求的内容,并且可以在具有以上所描述的不确定性和有限带宽的情况下,向客户端设备406、408递送所请求的内容。此外,与CDN服务器404相比,分布在整个系统400中的存储所请求的内容的高速缓存414、416、418,可以能够以提高的确定性和更高的带宽来递送所请求的内容。同样在框710中,高速缓存确定所请求的资产是否存储在高速缓存中。例如,高速缓存将所请求资产的资产ID与清单600中的资产ID的列表进行比较。如果所请求资产的资产ID存在于高速缓存的清单中,则进程进行到框715。如果所请求资产的资产ID不存在于高速缓存的清单中,则方法700进行到框720。

在框715中,高速缓存例如通过将内容请求消息中的时间戳与高速缓存的清单中的时间戳进行比较,来确定所请求资产的所请求段是否存储在高速缓存中。在某些实施例中,高速缓存通过将内容请求消息中的指纹与清单中的指纹进行比较,来确定所请求资产的所请求段是否存储在高速缓存中。如果所请求的时间戳或所请求的指纹存在于高速缓存中的段620a-d(例如,段列表)中,则方法700进行到框725,否则,方法进行到框720。

在框720中,高速缓存将内容请求消息转发到网络402中的更高级别的设备。例如,较低级高速缓存416、418可以将内容请求消息转发到顶级高速缓存414,该顶级高速缓存414可以将内容请求消息转发到更高级别的CDN服务器404,该更高级别的CDN服务器404将所请求的段发送到提出请求的客户端设备。顶级高速缓存414执行方法700(在进程时钟705处开始),并且如果需要,CDN服务器404使所请求的内容服务于客户端设备。

在框725中,高速缓存选择要发送到客户端设备的段。例如,高速缓存从与内容请求消息中的时间戳或指纹匹配的清单中选择段615a-d(S1、S2、S3和S4)。例如,如果内容请求消息包括{5-7}的时间戳,则高速缓存将选择发送段615a(S1),该段615a(S1)跨越包括所请求的部分{5-7}的十秒时间戳{s1=0,e1=10}。

在框730中,高速缓存确定内容请求消息中的所请求的比特率是否与清单中的任何比特率相匹配。也就是说,高速缓存确定所请求的段是否以充分片段化的方式存储在高速缓存中,以使得高速缓存能够以至少是所请求的比特率的速率向客户端设备发送所请求的段。更具体地,高速缓存将内容请求消息的QoS中的所请求的比特率与清单中的各种RDOps中的每一个的QoS进行比较。如果清单中的RDOps中的至少一个满足内容请求消息中的比特率要求,则方法700进行到框735,否则,方法700进行到框720。

在框735中,高速缓存选择最紧密匹配的RDOp,并且该RDOp还提供至少所请求的QoS的比特率。通过选择RDOps中的一个,高速缓存418基于请求的内容和最佳匹配的RDOp(即,包括最接近请求的内容的参数),选择将哪个版本的段615a提供给提出请求的客户端设备。作为示例,RDOp1提供所请求的段(例如,S1 615a)的最高质量版本,并且需要最大带宽(与CDN服务器404的带宽要求相同),RDOp2提供所请求的段的中等质量版本,并且需要比CDN服务器404更少的带宽,并且RDOp3提供所请求的段的低等质量版本,并且需要比RDOp2进一步减少的带宽。

在框740中,高速缓存选择要发送到客户端设备的片段的集合,以满足内容请求消息中的比特率。也就是说,每个RDOp的媒体数据单元(MDU)对应于将基于RDOp的比特率被传输或者从传输中丢弃的帧和帧的部分。响应于框735中对RDOp的选择,高速缓存选择对应于所选RDOp的MDU的片段。例如,通过为段S1 615a选择RDOp3,高速缓存不会传输图6B中的段S1615a的阴影部分指示的整个帧和部分帧。

在框745中,高速缓存(向客户端设备)发送与框735中选择的MDOp对应的所请求的段的片段。

在框750中,响应于内容请求消息的发送,提出请求的客户端设备从实现紧凑高速缓存清单方案的系统400的高速缓存,以至少所请求的比特率接收所请求资产的请求段。

在某些实施例中,响应于内容请求消息的发送,客户端设备同时从网络402、403a-b中的高速缓存接收多个清单。客户端设备可以确定哪些高速缓存可以最佳地使所请求的内容服务于客户端设备。例如,系统400中的每个高速缓存都可以同时更新CDN服务器404中的表,并且响应于对来自客户端设备的内容请求消息的接收,CDN服务器404可以同时将多个清单(每个表示系统400中的各种高速缓存的内容)发送到客户端设备。

虽然已经利用示例性实施例对本公开进行了描述,但是可以建议本领域技术人员进行各种更改和修改。本公开旨在将落入所附权利要求的范围内的这些更改和修改包含在内。

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