CN103858440A - 在针对自适应http流的表示之间提供改进切换的切换信令方法 - Google Patents

在针对自适应http流的表示之间提供改进切换的切换信令方法 Download PDF

Info

Publication number
CN103858440A
CN103858440A CN201280049392.XA CN201280049392A CN103858440A CN 103858440 A CN103858440 A CN 103858440A CN 201280049392 A CN201280049392 A CN 201280049392A CN 103858440 A CN103858440 A CN 103858440A
Authority
CN
China
Prior art keywords
segmentation
time
frame
presentative
expression
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
Application number
CN201280049392.XA
Other languages
English (en)
Other versions
CN103858440B (zh
Inventor
M·G·卢比
L·C·明德
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 CN103858440A publication Critical patent/CN103858440A/zh
Application granted granted Critical
Publication of CN103858440B publication Critical patent/CN103858440B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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

Abstract

用于在针对本发明所描述的自适应HTTP流媒体的表示之间提供改进的切换的切换信令方法,即使在对分段数据进行加密时,也实现了对自适应HTTP流媒体解决方案的用户体验和带宽效率提高。该信令方法包括:将分段映射与表示的分段进行关联,其中分段映射包括相关联的分段中的时间入口点和时间出口点,以及字节偏移信息和潜在的其它分段信息,其中分段映射可以使用独立于相关联的分段的时间跨度的可预测时间跨度模式来生成。这些实施例可以用于通过不需要改变现有的内容编码和格式化过程的方式,来增强现有的部署,并且使得接收和播放内容的现有客户端不受影响。

Description

在针对自适应HTTP流的表示之间提供改进切换的切换信令方法
对共同未决专利申请的引用
本申请要求享有于2011年8月31日提交的、标题为“Switch SignalingMethods Providing Improved Switching Between Representations For AdaptiveHTTP Streaming”的美国临时专利申请No.61/529,656的优先权,并且是该美国临时申请的非临时申请,故出于所有目的,以引用方式将该美国临时申请的全部内容并入本文。
出于所有目的,本申请以引用方式并入下面的共同转让的申请/专利,如同在本文中进行了完整地阐述:
2009年9月22日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.61/244,767(下文称为“Luby A1”);
2009年11月3日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.61/257,719(下文称为“Luby A2”);
2009年11月4日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.61/258,088(下文称为“Luby A3”);
2009年12月11日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.61/285,779(下文称为“Luby A4”);
2010年1月20日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.61/296,725(下文称为“Luby A5”);
2010年9月21日提交的、标题为“Enhanced Block-Request StreamingSystem”的美国专利申请No.12/887,476(下文称为“Luby B”);
2008年4月15日以Luby等人名义提交的、标题为“Dynamic StreamInterleaving and Sub-Stream Based Delivery”的美国专利申请No.12/103,605;
2010年2月12日以Pakzad等人名义提交的、标题为“Block Partitioningfor a Data Stream”的美国专利申请No.12/705,202(下文称为“Pakzad”)。
技术领域
本申请涉及改进的流媒体系统和方法,更具体地说,涉及适应于网络和缓冲区状况的系统和方法,以便优化流媒体的呈现,并且提供流媒体数据的高效并发或及时分发的传送。
背景技术
随着在基于分组的网络(例如,互联网、蜂窝和无线网络、电力线网络和其它类型的网络)上传送高质量音频和视频变得更加普遍,流媒体传送可能变得日益重要。所传送的流媒体能够呈现的质量可以取决于多种因素,包括:原始内容的分辨率(或者其它属性)、原始内容的编码质量、接收设备对媒体进行解码和呈现的能力、在接收机处接收到的信号的时效性和质量等等。为了获得认为良好的流媒体体验,在接收机处接收到的信号的传输和时效性可能特别重要。良好的传输可以相对于发送方所发送的内容,提供在接收机处接收到的流的保真度,而时效性可以表示在针对内容的初始请求之后,接收机可以如何快速地开始播放该内容。
可以将媒体传送系统描绘成一种具有媒体源、媒体目的地以及用于(在时间和/或空间中)分开源和目的地的信道的系统。一般情况下,源包括:能访问具有可电子化管理形式的媒体的发射机、以及具有电子控制对媒体(或者其近似)的接收,并将媒体提供给媒体消费者(例如,具有以某种方式耦接到接收机的显示设备、存储设备或单元、另一个信道等的用户)的能力的接收机。
“消费”是在目的地处使用以某种方式消费的媒体的过程,例如进行呈现。例如,移动视频播放器通常按照视频的播放速率,来“消费”视频数据。当媒体具有播放速率时(例如,具有正常速度的播放速率的视频),可以定义“呈现时间”。例如,观看者从媒体呈现的开始进行正常不间断地播放2:00.00分钟之后所到达的媒体流中的时刻,被称为具有呈现时刻(“PT”)2:00.00。
虽然很多变型是有可能的,但是在通用示例中,媒体传送系统具有访问电子形式的媒体内容的一个或多个服务器,一个或多个客户端系统或者设备向这些服务器发出针对媒体的请求,这些服务器使用作为服务器的一部分的发射机向客户端处的接收机进行发送,来传送媒体,使得客户端可以通过某种方式来消费所接收到的媒体。在简单的示例中,对于给定的请求和响应,存在一个服务器和一个客户端,但情况并不一定是这样。
传统上,可以将媒体传送系统描绘成“下载”模型或者“流”模型。“下载”模型的特征可以由以下因素来表征:在媒体数据的传送与该媒体向用户或接收设备的播放之间的时序独立性。
举例而言,在下载模型或者配置中,接收机耦接到媒体播放器或者其它媒体消费工具,在该播放器/消费工具需要该媒体或者将使用该媒体时,提前足够长的时间对该媒体进行下载。当使用(消费)该媒体时,优选地,在接收方已经可获得所需要的数量的内容。在下载背景下的传送通常是使用诸如HTTP、FTP或者单向文件传输(“FLUTE”)之类的文件传输协议来执行的,传输速率可以由底层流和/或拥塞控制协议(例如,TCP/IP)来确定。流或者拥塞控制协议的操作可以独立于媒体向用户或者目标设备的播放,其中所述播放可以与下载同时发生或者可以在某个其它时间发生。
“流”模型的特征可以由以下因素来表征:在媒体数据的传送与媒体向用户或者接收设备的播放的时序之间的紧密耦合。在该背景下的传送通常是使用流协议(例如,用于控制的实时流协议(“RTSP”)和用于媒体数据的实时传输协议(“RTP”))来执行的。可以由流服务器来确定传送速率,该传送速率通常与数据的播放速率相匹配。
“下载”模型的一些缺点可能是:由于传送和播放之间的时序独立性,所以当需要媒体数据进行播放时,媒体数据可能是不可获得的(例如,由于可用带宽小于媒体数据速率),造成播放暂时停止(“停顿”),这导致较差的用户体验,或者需要在播放之前提前很长时间来下载媒体数据(例如,由于可用带宽大于媒体数据速率),耗费在接收设备上的存储资源(所述存储资源是稀少的),并且耗耗宝贵的网络资源以用于传送(如果内容最终没有被播放或者以其它方式使用,则这些网络资源可能被浪费)。此外,在很多情况下,与用户在决定要观看的内容之后必须对视频进行预订然后在可以观看之前必须等待几分钟、几小时或者可能几天的模型相比,最令人高兴的用户体验是在用户决定要观看的内容之后能够几乎立即观看视频。
“下载”模型的优点可以是:执行这些下载所需要的技术(例如,HTTP)是被非常成熟、广泛部署的,这些技术可应用于各种应用。针对这种文件下载的大规模可扩展性的下载服务器和解决方案(例如,HTTP Web服务器和内容传送网络)可能是容易获得的,基于这种技术简单性和成本低来进行服务的部署。
“流”模型的一些缺点可以是:通常,媒体数据的传输速率不适应于从服务器到客户端的连接上的可用带宽,需要用于提供带宽和延迟保证的专用流服务器或者更复杂的网络架构。虽然现有的流系统支持传输数据速率根据可用带宽而变化(例如,Adobe Flash自适应流),但是这些流系统一般不像诸如使用所有可用带宽的TCP之类的下载传输流控制协议那样高效,并且需要专用的服务器基础设施来支持服务器/客户端流会话。
最近,已开发和部署了基于“流”模型和“下载”模型的组合的新型媒体传送系统。本申请将这种模型的一个例子称为“自适应HTTP流”(这里称为“AHS”)。一般情况下,可以通过多种不同的方式对相同的多媒体内容进行编码,例如,以便支持具有不同解码和显示能力的客户端设备,并且允许带宽调整。例如,可以根据不同编解码器、不同帧速率、不同比特速率或者不同分辨率对相同的多媒体内容(例如,相同的电影)进行编码,使用不同的文件格式对相同的多媒体内容进行封装,等等。特征的每种唯一组合形成多媒体内容的“表示”。
多种表示可以具有相似的解码和显示需求(例如,类似的编解码器、相关的分辨率、类似的文件格式等等),但是提供不同的比特率(提供相同多媒体内容的不同质量表示)。“自适应集合”是客户端可以从其中选择一种表示的一组表示。对于给定的呈现时段来说,可以存在多个自适应集合(例如,视频自适应集合和音频自适应集合),但是在本文的示例中,在不丧失一般性的情况下,可以考虑单个自适应集合。
可以将表示划分成多个分段,例如,各分段对应于多媒体内容的一段时间(例如,十秒、1秒、30秒等)。客户端设备可以确定当前可用的带宽量,随后基于表示的比特率和当前可用的带宽,向这些表示中的一个表示请求一个或多个后续分段。通过此方式,当带宽的量增加时,客户端设备可以向相对较高质量的表示请求分段,但当带宽的量减小时,客户端设备可以向带宽的量能支持的相对较低质量的表示请求分段。
可以将表示的每一个分段存储在一个文件中,其中每个这种文件与一个URL相关联,使得AHS客户端可以使用URL来向标准HTTP web服务器请求对分段文件的HTTP下载。使用这种方式,响应于用户请求从特定的起始点播放媒体内容,AHS客户端可以发出HTTP请求以下载分段,并且接收所请求的分段进行播放。理想地,在用户请求之后不久,就可以在设备上从用户请求的起始点播放媒体内容,并且可以从该起始点之后继续实时地播放该媒体内容,即,没有其中媒体播放临时停顿同时等待额外的媒体数据到达的停顿事件。在一些AHS系统中,还可以使用HTTP字节范围的请求来请求分段的一部分。
AHS的一个优点在于:其可以使用标准的HTTP web服务器来部署,即,使用相同的基础设施来传送其它互联网内容。AHS的另一个潜在优点在于:在大量不同类型的网络上的大量不同设备之中部署的AHS客户端,可以根据播放设备的特性、诸如用于下载的可用带宽之类的网络状况和其它因素,来动态地决定哪个表示适合于针对播放的请求。最后一个优点对于移动设备来说是尤其重要的:其中,可用的网络带宽可能在较短时间尺度上动态地变化,因此,为了避免停顿并在同一时间针对给定的网络状况进行可能的最高质量播放,AHS客户端可能需要从请求一个表示的分段,快速地变成请求另一个表示的分段。此外,移动设备上的其它特性(例如,电池中的剩余电量或者播放的显示尺寸等)可能快速地变化。
被认为用于在表示之间进行切换的可能适合的帧(例如,I帧),可能不提供如其它类型的帧(例如,P或B帧)那么多的视频压缩。但是,当切换的点不太频繁时,尝试在表示之间进行切换的客户端设备在可能切换之前,可能需要等待漫长的一段时间,其可能导致用户体验变差(例如,由于起初对表示的回放的开始延迟,或者在表示之间的切换之后,对播放事件进行重新缓冲/时断时续)。因此,通常针对如何频繁地包括可以用于在多媒体内容的表示之间进行切换的帧,做出策略性决定。
一种流行的AHS解决方案是,最初由苹果公司开发的HTTP直播流协议(下文称为“HLS”),并且有时也被称为Apple直播流(这里简称为“ALS”),如标题为“HTTP Live Streaming”的IETF草案中所描述的,可以在具有“tools.ietf.org”域名的URL和名称为“/html/draft-pantos-http-live-streaming-06”的文件中找到该草案。另一种流行的AHS解决方案是在MPEG DASH标准中描述的,例如,如ISO/IEC23009-1:2012中规定的(这里简称为“MPEG DASH”或“MPEG DASH标准”)。
因此,需要改进的信令方法和对这些信令方法的使用,这些信令方法在表示切换期间提供无缝的用户视频体验,还可以在表示切换期间实现对网络资源的高效使用。
发明内容
本申请所解释的切换信令方法,提供了在针对本文所描述的自适应HTTP流的表示之间的改进的切换,实现对自适应HTTP流解决方案的用户体验和带宽效率提高。该信令方法包括:将分段映射与表示的各分段进行关联,其中所述分段映射包括相关联的分段中的时间开始点和时间出口点、以及字节偏移信息和潜在地关于所述分段的其它信息。有利地,客户端可以使用分段映射来提供在自适应流解决方案的表示之间的更快速切换,并且在同一时间在该切换期间通过网络下载更少的数据,并且当视频播放器从一个表示切换到另一个表示时,实现更平滑的视频播放。
这些实施例包括用于以信号发送表示切换信息,以及用于使用该信息来提供更佳的用户观看体验和在表示之间进行更加网络高效切换的方法的新改进。新切换信息的示例包括时间入口点、时间出口点、以及与在针对其相关联的分段的分段映射中的这些点相关联的字节偏移。入口点指示该表示可以切换进入并继续无缝地播放到该表示的任何后续出口点的时间点,与入口点相关联的字节偏移指示该分段中的字节位置,其中在该字节位置,可以开始下载以接收允许从该入口点进行播放的数据。类似地,出口点指示在该出口点之前的表示的任何入口点处可以开始进行播放,并无缝地播放到该出口点的时间点,与出口点相关联的字节偏移指示该分段中的字节位置,其中在该字节位置,下载将结束接收用于允许播放到该出口点的数据。在分段映射中提供了足够的信息,以便即使当对这些分段本身进行加密时,也允许表示之间的无缝切换和网络资源的高效使用。
在一些实施例中,对不同的表示进行分段,使得在自适应集的不同表示之间存在“SAP对齐”,即,不同的表示可以具有在表示之间一致的进入和退出时间。在一些实施例中,对不同的表示进行分段,使得在不同的表示之间存在“重叠部分对齐”,其中在该情况下,入口点和出口点的开始和结束呈现时间是匹配的。可以在简档中以信号发送对齐的类型、以及针对这些表示中的一些、没有任何一个或者全部、或者一对表示或者一组表示是否存在对齐。
这些实施例可以用于通过不需要改变现有的内容编码和格式化过程的方式,来增强现有的部署,并且使得接收和播放内容的现有客户端不受影响。这些实施例生成与编码和格式化的内容相关联的增补信息(例如,分段映射),并且提供对这些增补信息的访问。这些实施例还提供:可以由增强型客户端使用,以访问所生成的增补信息来提供上面所描述的益处的方法。
下面结合附图的详细描述将提供对于本发明的本质和优点的更好理解。
附图说明
图1描绘了具有封闭GOP结构的编码数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的一个示例。
图2描绘了具有开放GOP结构的编码数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的另一个示例。
图3描绘了具有替代的开放GOP结构的编码数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的再一个示例。
图4描绘了具有替代的GOP结构的编码数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的又一个示例。
图5示出了针对表示的入口点列表,所述表示包括具有如图1中所示的相同结构的帧。
图6示出了针对表示的入口点列表,所述表示包括具有如图2中所示的相同结构的帧;图6(a)示出了文件格式顺序处于解码顺序的示例,图6(b)示出了文件格式顺序处于呈现顺序的示例。
图7示出了针对表示的入口点列表,所述表示包括具有如图3中所示的相同结构的帧。
图8示出了针对表示的入口点列表,所述表示包括具有如图4中所示的相同结构的帧。
图9示出了针对表示的入口点列表,所述表示包括具有如图1中所示的相同结构的帧。
图10示出了针对表示的出口点列表,所述表示包括具有如图2中所示的相同结构的帧;图10(a)示出了文件格式顺序处于解码顺序的示例,图10(b)示出了文件格式顺序处于呈现顺序的示例。
图11示出了针对表示的出口点列表,所述表示包括具有如图3中所示的相同结构的帧。
图12示出了针对表示的出口点列表,所述表示包括具有如图4中所示的相同结构的帧。
图13示出了针对表示的入口点列表,所述表示包括具有如图4中所示的相同帧依赖结构的帧,但文件格式顺序是呈现时间顺序而不是图4中所示的解码顺序。
图14示出了针对表示的出口点列表,所述表示包括具有如图4中所示的相同帧依赖结构的帧,但文件格式顺序是呈现时间顺序而不是图4中所示的解码顺序。
图15示出了在HTTP动态自适应流媒体(DASH)系统中的信令分段时间轴文件的示例。
图16示出了基于混合时间和基于索引的分段URL模板生成的示例。
图17示出了分段URL交叉规则构建的示例。
图18根据本发明的实施例,描述了块请求流系统的单元。
图19描绘了图18的块请求流媒体系统,示出了客户端系统的单元中的更多细节,所述客户端系统耦接到块服务基础设施(“BST”)以接收由内容摄取系统所处理的数据。
图20描绘了摄取系统的硬件/软件实现。
图21描绘了客户端系统的硬件/软件实现。
图22描绘了可以存储在图18中所示的内容存储器中的典型的源分段的细节。
图23(a)描绘了在多个版本的媒体流上具有对齐的搜寻点的可变块大小。
图23(b)描绘了在多个版本的媒体流上具有非对齐的搜寻点的可变块大小。
图24描绘了图18中所示的内容存储器的可能结构,其包括分段和媒体呈现描述符(“MPD”)文件,以及在MPD文件中的分段分解、定时和其它结构。
图25描绘了元数据表。
图26描绘了从服务器到客户端的块和元数据表的传输。
图27描绘了分段之间的连续和非连续时序。
在附图中,相同的项使用相同的附图标记进行引用,在圆括号中提供了子索引以指示相似或者相同的项的多个实例。除非另外指出,否则最后的子索引(例如,“N”或者“M”)并不旨在限于任何特定的值,一个项的实例数量可以与另一个项的实例数量不同,即使描绘了相同的数量并且重复使用子索引。
具体实施方式
如本申请所使用的,流系统的目标是将媒体从其存储位置(或者生成该媒体的位置)移动到消费(即,客户端向用户呈现或者由人类或电子消费者以其它方式“使用”)该媒体的位置。理想地,流系统可以在接收端处提供不中断的回放(或者更一般地说,不中断的“消费”),客户端可以在用户已经请求一个流或多个流之后不久,就开始播放该流或者多个流的集合。为了高效的原因,还期望一旦用户指示不再需要各个流时(例如,当例如由于在服务器与客户端之间的可用带宽量的波动,而引起客户端从一个流切换到另一个流时),就暂停该流。如果要对媒体内容(例如,视频)进行无缝地播放,但客户端选择不同的流来播放该媒体内容,通常优选的是,用新流占据有限的带宽,并且停止旧流。
根据本申请所描述的实施例的方法提供了很多益处。应当理解的是,可行系统不需要包括本申请所描述的所有特征,这是由于一些应用在具有与本申请所描述的所有特征相比更少的特征的情况下,也可以提供适当令人满意的体验。
虽然在一些地方参照软件、指令、步骤、处理或者过程等进行了解释,但应当理解的是,所描述的发明可以通过存储到有形介质上的软件来实现,和/或可以实现成具有便于发送和接收并消费媒体的适当硬件的、计算设备、发射机、接收机等,例如本申请或者其它所描述的那些。
自适应HTTP流
自适应HTTP流(“AHS”)是一种特定类型的流。在AHS的情况下,源可以是标准web服务器和内容传送网络(“CDN”)并且可以使用标准HTTP。该技术可以涉及流分段和对多个流的使用,所有这些都在标准化HTTP请求的上下文之内。可以按照多个比特速率对诸如视频之类的媒体进行编码,以形成不同版本或者表示。在本文档中,同义地使用术语“版本”和“表示”。每一个版本或者表示可以被拆分成更小的片段(或许每个片段只有几秒的数量级)来形成分段。随后,可以在web服务器或者CDN上,将每个分段存储成单独的文件,使用与文件相关联的URL对这些分段进行请求。表示的呈现持续时间对于每个分段来说可能是不同的。
在客户端一侧,可以随后使用HTTP针对各个分段进行请求,客户端可以将这些分段无缝地拼接在一起。客户端可以基于可用的带宽,切换到不同的数据速率。客户端还可以请求多个表示,并且可以在这些表示中联合地并同步地呈现媒体,其中每个表示呈现不同的媒体分量。例如,针对切换的触发可以包括缓冲区占用和网络测量值。当在稳定状态下进行操作时,客户端可以向服务器发出请求以维持目标缓冲区占用。
AHS的优点可以包括比特速率调整、快速启动和搜寻、以及最小的不需要的传送。这些优点来自于:将传输控制到播放前的仅仅较短的时间,最大地利用可用带宽(通过可变的比特速率媒体),并且优化流分段和智能客户端过程。
虽然这些AHS解决方案具有很多良好特征,但仍可以进行一些改进。例如,HSL解决方案可以从用于以信号向表示或者在表示之间发送切换点的能力中获益。再举一个例子,当使用开放GOP视频编码(其允许更高效的切换和对网络资源的更高效使用)时,MPEG DASH可以从用于切换到一个表示或者在表示之间进行切换的更详细信令中获益。再举一个例子,用于以自动方式来生成针对分段的URL的其它方法也是有益的,其中该自动方式允许AHS客户端容易地加入一个流或者拒绝一个直播流会话。
本申请解释了改进的信令方法和这些信令方法的使用,该信令方法提供了在表示切换期间的无缝用户视频体验,还实现在表示切换期间对网络资源的有效使用。
可以将媒体呈现描述提供给AHS客户端,使得客户端可以使用文件的集合(例如,具有3GPP规定的格式,本申请称为“3gp分段”)来向用户提供流服务。媒体呈现描述和该媒体呈现描述的可能更新,描述了具有分段的结构化集合的媒体呈现,每个分段包含媒体分量,使得客户端可以以同步的方式呈现所包括的媒体,并且提供改进的特征,例如,搜寻、切换比特速率、以及对不同表示中的媒体分量的联合呈现。客户端可以以不同的方式使用媒体呈现描述信息,以用于提供服务。具体而言,根据媒体呈现描述,AHS客户端可以确定能够访问该集合中的哪些分段,使得该数据对于客户端能力和该流媒体服务中的用户来说是有用的。
在一些实施例中,媒体呈现描述可以是静态的,但是可以动态地生成分段。媒体呈现描述可以是尽可能地紧凑,以使对服务的访问和下载时间减到最小。可以使其它专用的服务器连接(例如,客户端与服务器之间的定期或者频繁的时序同步)减到最小。
可以对媒体呈现进行构建,以准许具有不同能力的终端进行访问,例如访问不同的接入网络类型、不同的当前网络状况、显示大小、接入比特速率和编解码器支持。随后,客户端可以提取适当的信息来向用户提供流服务。
此外,媒体呈现描述还可以根据需求,准许部署灵活性和紧凑性。
在最简单的情况下,每个替代的表示可以存储在单个3GP文件(即,遵循如3GPP TS26.244所规定的文件)中,或者可以存储在遵循如ISO/IEC14496-12或者派生规范(例如,3GPP技术规范26.244中所描述的3GP文件格式)所定义的ISO基本媒体文件格式的任何其它文件中。在本文档的其余部分中,当提到3GP文件时,应当理解的是,ISO/IEC14496-12及其派生规范可以将所有描述的特征映射到如ISO/IEC14496-12或者任何派生规范中所定义的更通用的ISO基本媒体文件格式。随后,客户端可以请求该文件的初始部分,以了解媒体元数据(其通常存储在电影头部盒(也被称为“moov”盒)中),以及电影片段时间和字节偏移。随后,客户端可以发出HTTP部分获取请求以获得所需要的电影片段。
在一些实施例中,期望将每个表示划分成多个分段。当分段格式是基于3GP文件格式时,分段包含电影片段的非重叠时间片,叫做“按时间分段”。这些分段中的每个分段可能包含多个电影片段,并且每个电影片段就其自身来说可以是有效的3GP文件。在另一个实施例中,将表示划分成包含元数据的初始片段(通常是电影头部“moov”盒)和一组媒体分段,每个媒体分段包含媒体数据,初始分段和任何媒体分段的连接形成有效的3GP文件,初始分段和一个表示的所有媒体分段的连接形成有效的3GP文件。可以通过轮流播放每个分段,根据每个表示的开始时间,将文件中的局部时间戳映射到全局呈现时间,来形成完整的呈现。
应当注意的是,在整个本说明书中,对“分段”的引用应当被理解为包括任何数据对象,这些数据对象是被完全或者部分地构建的,或者从存储介质读取的,或者以其它方式作为文件下载协议请求(例如,包括HTTP请求)的结果而获得的。例如,在HTTP的情况下,可以将数据对象存储在实际文件中,这些实际文件常驻在连接到HTTP服务器或者构成HTTP服务器的一部分的磁盘或其它存储介质上,或者这些数据对象可以由CGI脚本或者其它动态执行的程序(其中该程序是响应于HTTP请求而被执行的)来构建。在本文档中同义地使用术语“文件”和“分段”,除非另有规定。在HTTP的情况下,可以将分段视为HTTP请求响应的实体主体。
在本文档中同义地使用术语“呈现”和“内容项”。在很多示例中,所述呈现是音频、视频或者具有规定的“播放”时间的其它媒体呈现,但其它变型也是有可能的。
除非另外指定,否则在本文档中同义地使用术语“块”和“片段”,该术语通常是指编入索引的最小数据集合。基于可用的索引,客户端可以在不同的HTTP请求中请求片段的不同部分,或者在一个HTTP请求中请求一个或多个连续的片段或者片段的一部分。在使用基于ISO基本媒体文件格式的分段或者基于3GP文件格式的分段的情况下,片段通常是指:定义为电影片段头部(“moof”)盒和媒体数据(“mdat”)盒的组合的电影片段。
这里,假定携带数据的网络是基于分组的,以便简化本申请的描述,并且应当认识到,在阅读完本申请之后,本领域普通技术人员可以将本申请所描述的本发明的实施例应用于其它类型的传输网络(例如,连续比特流网络)。
在这些示例中的很多示例里,假定客户端耦合到媒体服务器或者多个媒体服务器,该客户端在一个信道或者多个信道上从媒体服务器或者多个媒体服务器请求流媒体。但是,也可以实现更多涉及的排列。
序列中的关键帧
在视频编码中,对视频数据的一些帧(例如,帧内预测模式编码的帧,也被称为“I-帧”)进行独立地编码,而无需参照视频数据的其它帧。为了利用帧之间的时间冗余,对其它帧(也就是说,诸如P帧和B帧之类的帧间预测模式编码的帧)相对于先前或者后续的编码帧(被称为参考帧)进行编码。与AHS有关的潜在困难之一是:当相对于先前帧或后续帧对帧(或者一般地,其它数据)进行编码时,如何从一个表示无缝地切换到另一个表示。潜在的困难是:针对要在不同表示中在相同时间进行呈现的帧,可能使用不同的帧依赖帧结构,对内容的不同表示进行视频编码。即使当依赖帧结构在不同的表示之间是相同的时,这些表示仍然可以使用不同的分辨率并且具有不同的质量,从而使用一个表示中的帧对其它表示中的帧进行解码,通常并不会实现对视频的无缝播放(即,可能提供较差的用户观看体验)。因此,对AHS的担忧是,如何在表示之间进行无缝切换。
关键帧是一个表示的帧,其中客户端设备可以在无需访问该表示的早先数据的情况下根据关键帧对该表示进行解码,即,关键帧是I-帧,使得该I-帧之后的帧不依赖于该I-帧之前的任何帧。此外,关键帧对于表示来说,可以充当为表示接入点,即,可以开始对视频进行下载和播放的地方。此外,当从第一表示切换到第二表示时,这些关键帧可以是有帮助的,这是由于第二表示中的关键帧可以是第二表示中的播放的起始点。例如,客户端设备可以通过下面方式来从第一表示切换到第二表示:获取第一表示中的数据,直到第二表示中的关键帧的时间位置,随后获取在第二表示的关键帧处开始的数据。在一些受限的情况下,这种策略可以提供在表示切换期间提供无缝的用户体验,但在其它情形下,这种简单的策略可能无法在表示切换期间提供无缝的用户体验,例如,这是由于在时间上位于第二表示中的关键帧之前的、第一表示中的一些帧,依赖于在时间上位于第二表示的关键帧之后的、第一表示中的其它帧。
此外,由于数字版权管理(DRM)系统和/或加密的使用,通常存在以下情况:在进行表示切换和下载决定的接收客户端的部分中不可获得帧依赖结构。
数据依赖结构
使用通常诸如MPEG1、MPEG2或者H.264AVC编码的视频之类的视频编码技术,针对单个表示的帧的呈现时间顺序可能与帧的解码顺序不同。呈现时间顺序是相对于其它帧对帧进行显示的连续顺序。
通过与各帧相关联的呈现时间来更精确地确定呈现时间顺序,其中在两个帧的呈现时间之间的差是对这两个帧进行显示的时间的差。在本申请中,呈现时间是被广义解释的。例如,内容的一个点的呈现时间可以在与该内容的有意开始播放时间相距为零的位置处进行测量,直到到达该点为止,例如,如果该点是旨在对内容的起始之后的20秒进行播放,那么与该点相关联的呈现时间是20秒。或者,可以依据壁钟时间或者UTC时间或者如本领域普通技术人员应当认识到的其它等同的时间测量值对呈现时间进行测量。
解码顺序是考虑各个帧之间的相互依赖性,能够对这些帧进行解码的帧顺序。如果对于每个帧而言,依赖于该帧的所有帧在顺序上相对于该帧都是后续的,那么帧的排序就被说成是解码顺序。这允许对要解码的下一帧的解码是基于已经被解码的帧。通常,流传送系统中的帧的传输顺序是解码顺序,以便确保帧按照它们能够被容易解码的顺序到达。在下面的描述中,将文件格式顺序定义成:要向客户端传送的表示的文件或分段中的帧的顺序,因此文件格式顺序通常是:当客户端请求多个文件或者一个文件的一些部分时,将向客户端传送的表示的部分的顺序。对于AHS系统来说,一个表示中的帧的顺序(即,文件格式顺序)通常是解码顺序。
图1描绘了编码数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的示例。使用呈现时间顺序帧编号来唯一地对帧进行编号,下文将“呈现时间顺序帧编号”简称为“帧号”。例如,下文将呈现时间中的第一帧称为帧1。将每个帧标记为类型“I”(帧内编码的)、“P”(预测的)或者“B”(双向预测的)。图1中的帧依赖结构是由帧之间的弧线来指示的:在两个帧之间的虚线弧指示在呈现时间顺序上后面的帧依赖于早先的帧;在两个帧之间的深色实线弧指示在呈现时间顺序上早先的帧依赖于后面的帧。“解码顺序”是这样的:每个帧位于依赖于该帧的任何帧之前。
在图1所示的示例中,帧1是可基于所接收的针对帧1的数据来解码,因为帧1是I-帧。帧2是可基于所接收的针对帧1和帧5的数据以及所接收的针对帧2的数据来解码(帧2是B帧)。类似地,帧3使用帧1、3、5,帧4使用帧1、4、5,帧5使用帧1、5,帧6使用帧5、6,帧7使用帧5、7,帧8使用帧5、8,所以一旦接收到帧1-8的内容,就可以对帧1-8进行解码。但是,由于在没有帧5的情况下不能够对帧2进行完全解码,因此如果以“解码顺序”接收到这些帧,则在接收到仅仅三个帧(1、2、5)之后(而不是必须等待接收到五个帧)就可以对帧2进行解码。
在图1所示的示例中,帧的文件格式顺序与所示的解码顺序相同。可以将图像群组(或者“GOP”)被定义成一组连续的帧,这些帧在I-帧处开始,但不包括序列中的下一个I-帧。在图1中,帧1-8包括一个GOP,帧9-16包括第二GOP,帧17是第三GOP的开始。图1中所示出的GOP结构,有时被称为“封闭的GOP结构”,这是由于包括一个GOP的帧中的每一帧并不依赖于其它GOP的帧。
图2描绘了用于编码的数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的另一个示例,其遵循与针对图1所描述的相同的术语惯例。在该情况下,一个GOP的最后P-帧与呈现时间顺序中的下一个GOP的I-帧之间的B-帧,可能完全取决于下一个GOP的I-帧,因此包括一个GOP的帧中的一些帧可能依赖于其它GOP的帧。图2中所示的GOP结构,有时称为“开放GOP结构”。
图3描绘了用于编码的数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的另一个示例,其遵循与针对图1所描述的相同的术语惯例。在该情况下,在帧之间存在更复杂的依赖结构,即,B-帧6、7、8分别依赖于P-帧13,该P-帧13在呈现时间顺序上位于在下一个GOP的开始处的I-帧9的后面。
图4描绘了用于编码的数据视频流的呈现时间顺序、帧依赖结构和文件格式顺序的另一个示例,并且遵循与针对图1所描述的相同的术语惯例。在该情况下,B-帧14、15、16分别依赖于位于下一个GOP的开始处的I-帧17,而不是依赖于在呈现时间顺序上位于它们之前的任何帧。
入口点和出口点
通常就流内容而言,在内容的表示的帧依赖结构与用于在该媒体内容的表示之间切换的方法之间存在某种关系,具体而言,在可以在表示之间进行切换的时刻如何发送信号。可以生成这种关系信息,并以简洁格式传送给客户端,其通常被称为入口点和出口点信息,如下所述。入口点和出口点信息也可以用于其它目的,例如,即使在只存在该内容的一个表示的情况下(即,即使当不支持切换到另一个表示时),用于确定在单个请求中要下载一个表示的哪些部分。
为了讨论的目的,一个帧的呈现时间是:相对于该内容的其它帧的开始显示时间,想要开始显示该帧的时间,即,其是该帧的起始呈现时间,并且每一帧想要在呈现时间顺序中的下一个连续帧的起始呈现时间处正好结束显示,即,一个帧的结束呈现时间是呈现时间顺序中的下一个帧的开始呈现时间(或者简称为呈现时间)。
针对下面对入口点和出口点的定义,始终假定字节偏移是与帧的开始的字节偏移,始终假定呈现时间是帧的开始呈现时间(等于前一帧的结束呈现时间),但是可以对这些限制进行放宽到本领域普通技术人员应当认识的范围。例如,在其它替代的定义和描述中,可以考虑与数据流中的任何点的字节偏移,例如,与包括视频帧的数据的中间的字节偏移,并且可以考虑任何有效的呈现时间(例如,位于一帧的开始呈现时间与结束呈现时间之间的中途的呈现时间。
如本申请所使用的,可以使用例如具有“(入口呈现时间、入口字节偏移)”或者更简明地“(PT、BO)”形式的、入口的时间和字节偏移的指示,来表示或者表示入口点。用于一个表示的入口点(PT、BO)是如下点:如果在该点从字节偏移BO处开始下载该表示,并继续进行到结束,则可以按照以呈现时间PT开始到结束的呈现时间顺序,来无缝地播放该表示中的内容的视频帧。因此,在本申请的描述中,入口点规定二维的点,其中一维对应于文件格式顺序,而另一维对应于呈现时间顺序。如本申请在下文中更详细描述的,以信号发送针对一个表示的这种点,可以用作针对一个表示的入口点,即,用于确定在何处从表示开始下载并播放。
注意,根据入口点(PT、BO)的定义,具有至少PT的入口呈现时间的所有帧、以及这些帧直接或者间接地依赖的所有帧,按照与该表示具有至少BO的字节偏移来开始。
对于与该表示的每个可能的字节偏移BO,存在唯一呈现时间PT,使得(PT、BO)是入口点,并且使得PT是所有这些可能的入口点中的最小呈现时间,并且定义函数TentryB(),使得TentryB(BO)=PT。本申请将针对所有可能的字节偏移BO的这些入口点的列表称为“字节偏移入口点列表”。
注意,如果文件格式包含多于一个媒体(例如,音频数据和视频数据的混合),那么入口点可能必须考虑这些不同的媒体。例如,可以将与字节偏移BO相关联的呈现时间PT,定义成PT1和PT2中的最大值,其中PT1是针对第一媒体的字节偏移BO能够达到的最小呈现时间,PT2是针对第二媒体能够达到的最小呈现时间。对于下文所描述的与入口点和出口点有关的所有另外的定义和方法,保持类似的注解。
类似地,对于每一个可能的呈现时间PT,存在唯一的字节偏移BO,使得(PT、BO)是入口点,并且使得BO是所有这些入口点之中的最大字节偏移,定义BentryT(PT)=BO。本申请将针对所有可能的呈现时间PT的这些入口点的列表称为“呈现时间入口点列表”。
字节偏移入口点列表中的入口点可能具有不同的字节偏移,但具有相同的呈现时间,并且呈现时间入口点列表中的入口点可能具有不同的呈现时间,但具有相同的字节偏移。此外,如果字节偏移入口点列表中的入口点(PT、BO)是使得该字节偏移入口点列表中没有其它入口点(PT′、BO′)(其中,PT′=PT、BO′>BO),那么该入口点(PT、BO)也将位于呈现时间入口点列表中,并且将具有如下属性:在呈现时间入口点列表中没有其它入口点(PT′、BO′)(其中,BO′=BO、PT′<PT)。类似地,如果呈现时间入口点列表中的入口点(PT、BO)是使得该呈现时间入口点列表中没有其它入口点(PT′、BO′)(其中,BO′=BO、PT′<PT),那么该入口点(PT、BO)也将位于字节偏移入口点列表中,并且将具有如下属性:在字节偏移入口点列表中没有其它入口点(PT′、BO′)(其中,PT′=PT、BO′>BO)。
将既位于字节偏移入口点列表又位于呈现时间入口点列表中的入口点分类成“主入口点”,将仅位于这两个入口点列表之一的剩余入口点分类成“次入口点”。注意,如果(PT、BO)是主入口点,那么(PT,BO)=(TentryB(BO),BentryT(PT))。对于每个次入口点(PT,BO),存在主入口点(PT、BO′)(其中,BO′>BO),在这种情况下,主入口点优于次入口点,这是由于可以使用主入口点在更晚字节偏移处开始播放以相同的呈现时间开始的相同内容;或者存在主入口点(PT′、BO)(其中,PT>PT′),在这种情况下,主入口点优于次入口点,这是由于可以使用主入口点在相同的字节偏移处开始播放更多的内容。
应当注意,这些规定是独立于表示中的帧的顺序而有效的,即,不管文件格式顺序是呈现时间顺序、解码顺序、还是表示中的帧的某种其它顺序。
类似地,定义“(退出呈现时间、退出字节偏移)”格式的出口点,其中用于表示的出口点(PT,BO)的含义是:如果从起点下载表示,直到字节偏移BO,那么可以按照在起点处开始直到呈现时间PT的呈现时间顺序,来无缝地播放该表示中的内容的视频帧。因此,在本申请的描述中,出口点规定了二维的时间点,其中一维对应于文件格式顺序,而另一维对应于呈现时间顺序。如我们在下文中更详细描述的,以信号发送针对表示的这种点,可以用作表示的出口点,即,用于确定在何处结束从表示下载并播放。
注意,通过定义出口点(PT,BO),具有最多PT的结束呈现时间的所有帧、以及这些帧直接或者间接依赖的所有帧,在与该表示具有最多BO的字节偏移处结束。
对于与该表示的每个可能的字节偏移BO,存在唯一的呈现时间PT,使得(PT,BO)是出口点,并且使得PT是所有这些可能的出口点中的最大呈现时间,定义TexitB(BO)=PT。将针对所有可能的字节偏移BO的这些出口点的列表,定义为“字节偏移出口点列表”。
类似地,对于每个可能的呈现时间PT,存在唯一的字节偏移BO,使得(PT,BO)是出口点,BO是所有这些出口点中的最小字节偏移,并且定义BexitT(PT)=BO。将针对所有可能的呈现时间PT的这些出口点的列表,定义成“呈现时间出口点列表”。
有可能的是,在字节偏移出口点列表中存在具有不同字节偏移但具有相同呈现时间的出口点,并且在呈现时间出口点列表中存在具有不同呈现时间但具有相同字节偏移的出口点。此外,如果在字节偏移出口点列表中的出口点(PT,BO)是使得在该字节偏移出口点列表中没有其它出口点(PT′,BO′)具有PT′=PT并且BO′<BO,那么出口点(PT,BO)也将处于呈现时间出口点列表中,并将具有如下属性:在呈现时间出口点列表中没有其它出口点(PT′,BO′)具有BO′=BO并且PT′>PT。类似地,如果呈现时间出口点列表中的出口点(PT,BO)是使得在该呈现时间出口点列表中没有其它出口点(PT′,BO′)具有BO′=BO、PT′>PT,那么该出口点(PT,BO)也将位于字节偏移出口点列表中,并将具有如下属性:在字节偏移出口点列表中没有其它出口点(PT′,BO′)具有PT′=PT并且BO′<BO。
将既位于字节偏移出口点列表又位于呈现时间出口点列表中的出口点分类成“主出口点”,并且将仅位于这两个出口点列表之一的剩余出口点分类成“次出口点”。注意,如果(PT,BO)是主出口点,那么(PT,BO)=(TexitB(BO),TexitB(PT))。对于每个次出口点(PT,BO),存在主出口点(PT,BO′)(其中,BO′<BO),在这种情况下,主出口点优于次出口点,这是因为能够播放在相同呈现时间处结束的相同内容,在与主出口点相距更早字节偏移处结束;或者存在主出口点(PT′,BO)(其中,PT<PT′),在这种情况下,主出口点优于次出口点,这是因为能够播放更多的内容,在与主出口点相距相同字节偏移处结束。
注意,这些定义是有效的,与表示内的帧的顺序无关,即,不管文件格式顺序是呈现时间顺序、解码顺序、还是表示中的帧的某种其它顺序。
图5示出了针对表示的入口点列表,所述表示包括具有如图1中所示的相同结构的帧。图5中所示的第一个表格,根据它们的帧号来示出了以文件格式顺序列出的帧,以及与每个帧的开始的字节偏移。图5中所示的第二个表格示出了呈现时间入口点列表。图5中所示的第三个表格是字节偏移入口点列表。图5中所示的第四个表格是主入口点的列表。在这最后三个表格中,入口呈现时间是可以播放的第一帧的帧号,下文称为“入口帧”。在图5中,主入口点是(1,0)、(9,27,537)和(17,54,523)。注意,对于所有主入口点,将对文件格式顺序中的入口帧之后的所有帧进行播放,这是封闭GOP结构的结果。注意,使用帧号来指示呈现时间只是表示呈现时间的一种方式,本领域普通技术人员将认识到,存在很多其它呈现时间格式,包括:一般要回放的媒体或者数据通常不能以离散时间步骤(例如,帧)来表示的格式。
图6、图7和图8分别示出了包括具有如图2、图3和图4中所示的相同结构的帧的表示的入口点列表。图6(a)、图6(b)、图7和图8中的每一幅图中所示的五个表格具有如上面针对图5所描述的相同的格式和含义,但是,图6(a)使用解码顺序用于文件格式,而图6(b)将呈现顺序用作文件格式顺序。
在图6(a)中,主入口点是(1,0)、(9,22,033)和(17,41,993)。注意,对于(9,22,033)主入口点来说,并不是要播放文件格式顺序中的入口帧9之后的所有帧(例如,帧6、7和8)。这是开放GOP结构的结果。
在图7中,主入口点是(1,0)、(9,22,031)和(17,48,303)。注意,对于(9,22,031)主入口点来说,文件格式顺序中的第一下载的帧并不是帧9,而是帧13,因此下载的第一帧不是针对该主入口点播放的第一帧。此外,将下载文件格式顺序中的帧13之后的帧6、7和8,但不从该主入口点播放。这是这种替代的开放GOP结构的结果。
在图8中,主入口点是(1,0)、(9,27,537)和(14,48,303)。注意,对于(14,48,303)主入口点来说,文件格式顺序中的第一下载的帧不是帧14,而是帧17,因此下载的第一帧不是针对该主入口点播放的第一帧。这是这种替代的GOP结构的结果。
图9、图10、图11和图12分别示出了针对表示的出口点列表,所述表示分别包括具有如图1、图2、图3和图4中所示的相同结构的帧。图9、图10(a)、图10(b)、图11和图12中的每一幅图中所示出的五个表格具有如上面针对图5所描述的相似的格式和含义。区别在于:示出了出口点而非入口点,并且出口呈现时间是能够播放的最后一帧的帧号(下文称为“出口帧”)。图10(a)将解码顺序用于文件格式,而图10(b)将呈现顺序用作文件格式顺序。
再举一个例子,图13示出了包括具有如图4中所示的相同帧依赖结构的帧的表示的入口点列表,但文件格式顺序是呈现时间顺序而不是图4中所示的解码顺序,图14示出了相应的出口点列表。
有时是以下情形:以信号发送一个表示的每个主入口点和主出口点是适当的,而其它时候,这种以信号发送的量可以表示明显的信令开销,因此仅以信号发送所选定的主入口点和主出口点。在其它情况下,适当也以信号发送次入口点和次出口点中的一些。
用于生成入口点和出口点的方法
在一种实现中,入口点生成器和出口点生成器可以依赖于其输入的媒体编码格式。例如,输入可以是封装成MPEG2TS格式的MPEG2编码内容,所述输入可以是封装成MPEG2TS格式的H.264AVC内容,或者,所述输入可以是封装成ISO文件格式的H.264AVC内容。再举其它更详细的示例,H.264AVC内容可以使用“封闭的GOP”进行编码,或者其可以使用“开放GOP”进行编码,或者可以被编码为允许视频帧之间的非常通用的依赖结构。再举其它例子,可以排除B-帧,或者可以允许B-帧。
优选地,不同入口点生成器和出口点生成器实现的输出格式分别是相同的入口点格式和出口点格式,与向这些方法输入的具体媒体编码格式无关。这是有利的,因为:分段映射生成器随后可以用于生成分段映射,与原始内容的媒体编码格式无关,即,无论原始的媒体编码格式是以ISO文件格式携带的具有“开放GOP”的H.264AVC,还是媒体编码格式是具有“封闭GOP”的MPEG2TS并且没有以MPEG TS格式携带的B-帧,都可以使用相同的分段映射生成器。
优选的是,入口点生成器和出口点生成器的输出应当分别包含密度足够的入口点集合和出口点集合,使得分段映射生成器具有足够的入口点和出口点以供选择,以便生成可以由客户端用于向终端用户提供极佳流体验的分段映射。这是优选的,因为是:入口点生成器和出口点生成器随后不需要考虑AHS流解决方案的具体实现,取代地,可以由分段映射生成器来考虑AHS流逻辑的具体实现。
如果对于任何帧F来说,该帧F所依赖的所有帧在文件格式顺序中都早于帧F,则就说表示中的帧的文件格式顺序处于解码顺序。
对于下面描述的生成入口点和出口点的实施例和方法来说,始终假定字节偏移是相对于帧的开始的字节偏移,始终假定呈现时间是帧的开始呈现时间(等于前一帧的结束呈现时间),但可以放松这些限制,如本领域普通技术人员应当认识的。
当文件格式顺序是解码顺序时,出口点生成方法的第一实施例如下:确定每一帧的呈现时间以及与文件格式顺序中的每一帧的字节偏移。对于每个呈现时间PT,确定与该帧的字节偏移BO,该字节偏移BO是:在所有帧中,在文件格式顺序中位于具有严格小于PT的呈现时间的所有帧之后的最小字节偏移。所确定的出口点是(PT、BO)。(如果在文件格式顺序中不存在这种帧,那么BO是与该表示的结束的字节偏移。)注意,BO=BexitT(PT)。注意,在该实施例中,出口点生成方法不需要对底层帧依赖结构进行分析以生成出口点列表。这是由于文件格式顺序是解码顺序的属性,表达了帧依赖结构基于文件格式顺序和帧的呈现时间,能足够高效地确定出口点。
如果第一实施例所生成的列表中的多个连续出口点具有相同的出口字节偏移BO,那么呈现时间顺序中的最新出口点(即,在具有相同出口字节偏移BO的这些连续出口点中,具有最大呈现时间PT的出口点)是主出口点,其余的是次出口点。
当表示的文件格式顺序是解码顺序时,出口点生成方法的第二实施例如下:确定每一帧的呈现时间以及与文件格式顺序中的每一帧的字节偏移。对于每个字节偏移BO,确定在文件格式顺序中,在BO处或者在BO之后开始的所有帧中的最早呈现时间PT。所确定的出口点是(PT,BO)。(只存在一个额外的出口点(PT,BO),其中BO是与该表示的结束的字节偏移,PT是该表示的结束呈现时间。)注意,PT=TexitB(BO)。注意,在该实施例中,出口点生成方法不需要对底层帧依赖结构进行分析以生成出口点列表。这是由于文件格式顺序是解码顺序的属性,表达了帧依赖结构基于文件格式顺序和帧的呈现时间,能足够高效地确定出口点。
如果第二实施例所生成的列表中的多个连续出口点具有相同的出口呈现时间PT,那么文件格式顺序中的最早出口点(即,在具有相同的出口呈现时间PT的这些连续出口点中,具有最小字节偏移BO的出口点)是主出口点,其余的是次出口点。
图5至图14示出了用于生成入口点和出口点的示例和可能格式。文件格式顺序是针对图5至图12中所描述的示例所示出的解码顺序,因此上面所描述的出口生成方法可以用于生成图9至图12中所示出的出口点列表,其中第一实施例可以用于生成这些示例中的每个示例中的第二表格,并且其中第二实施例可以用于生成这些示例中的每个示例中的第三表格,并且其中可以使用上面所描述的两个实施例中的任一个实施例来生成这些示例中的每个示例中的主出口点的第四表格。
存在出口点生成器的很多替代和增强。例如,出口点生成方法的第二实施例可以随着连续地生成文件格式(即,针对每个字节偏移BO),以在线方式来生成出口点,该方法可以确定在文件格式顺序中在BO之前开始的所有帧中的遗漏帧的最早呈现时间PT,出口点是(PT、BO)。例如,在图1中,如果字节偏移BO是相对于帧5的开始而言,那么由于在文件格式顺序中在BO之前开始的帧是帧1,则遗漏帧的最早呈现时间PT是帧2的呈现时间,其意味着出口呈现时间是帧1的结束呈现时间。再举一个例子,在图1中,如果字节偏移BO是相对于帧13的开始而言,那么由于在文件格式顺序中在BO之前开始的帧是帧1、5、2、3、4、6、7、8和9,则该列表中的遗漏帧的最早呈现时间PT是帧10的呈现时间,其意味着出口呈现时间是帧9的结束呈现时间。注意,不需要关于在文件格式中在BO处或者在BO之后开始的帧的信息。本领域普通技术人员应当认识到,存在标准数据结构和方法,这些标准数据结构和方法允许根据文件格式顺序中在BO之前的所有帧的呈现时间来高效地确定PT。
注意,文件格式顺序不是针对图13和图14中所描述的示例而在图4中示出的解码顺序,相反,文件格式顺序是呈现时间顺序。由于文件格式顺序不是解码顺序,因此可以验证:出口点生成方法的第一实施例没有生成图14中所示的第二表格,类似地,出口点生成方法的第二实施例没有生成图14中所示的第三表格。但是,下面所描述的出口生成方法的第三实施例可以用于生成图14中所示的表格。
出口点生成方法的第三实施例(可以独立于底层文件格式顺序和帧依赖结构而被使用)可以被描述如下:对于每个字节偏移BO,确定最新呈现时间PT,使得具有最多PT的结束呈现时间的所有帧仅仅直接或间接地依赖于在文件格式顺序中在BO之前开始的帧。随后,所确定的出口点是(PT,BO)。注意,PT=TexitB(BO)。出口点生成方法的第三实施例可以随着连续地生成文件格式(即,针对每个字节偏移BO),以在线方式来生成出口点,即,仅基于在文件格式顺序中在BO之前的帧的呈现时间和帧依赖结构,来确定与BO相关联的出口呈现时间。
一种用于确定与BO相关联的出口呈现时间的过程是:确定在BO之前开始的帧的第一列表,通过从帧的第一列表中删除直接或间接依赖于在BO处或BO之后开始的帧的所有帧,来确定帧的第一列表中的帧的第二列表,PT是在没有位于帧的第二列表中的所有帧中的、具有最小帧号的帧的呈现时间。注意,可以如下所述地确定帧的第二列表。通过从帧的第一列表中选择直接依赖于在BO处或在BO之后开始的帧的所有帧,来确定帧的第三列表。随后,根据在帧的第一列表中的帧之间的帧依赖结构以及根据帧的第三列表,来确定第二帧列表。
如本领域普通技术人员应当认识的,针对上面所描述的实施例,存在很多替代的和优化的可能。例如,上面所描述的用于确定与特定字节偏移BO相关联的出口呈现时间的过程,可以并入到一种用于保存来自BO之前的字节偏移的信息和列表以确定用于BO的信息和列表的总过程中。作为另一个优化,可以使用不同于列表格式的数据结构,可以明确地表示关于列表的仅仅一部分的详细信息。例如,如果知道帧依赖结构是使得每一帧直接或间接依赖于在文件格式顺序中在该帧之后或之前最多D个帧的那些帧,那么可以保持针对在BO之前或之后开始的D个帧的详细信息,可以隐含地或者以压缩格式来表示关于帧的任何其它信息。
入口点生成方法的第一实施例如下。假定(由于通常是这种情形)存在具有下列属性的一种类型的帧(下文称为独立数据刷新帧,通常简称为IDR-帧):如果帧F不依赖于任何其它帧,并且如果具有与帧F的呈现时间相比更大的呈现时间的所有帧F′和这些帧F′所依赖的所有帧在文件格式顺序中都位于帧F之后,那么帧F是IDR-帧。
入口点生成方法的第一实施例可以识别IDR-帧,对于每个这种IDR-帧F,确定在文件格式顺序中与帧F的字节偏移BO,随后将入口点确定成(PT,BO),其中PT是帧F的呈现时间。注意,在该第一实施例中,入口点生成方法不需要对底层帧依赖结构进行分析以生成入口点列表。这是由于IDR-帧的定义表示帧依赖性和文件格式结构足以高效地确定入口点。
存在入口点生成方法的第一实施例的很多替代和增强。例如,入口点生成方法的第一实施例可以随着连续地生成文件格式(即,针对在文件格式顺序中的帧F的每个字节偏移BO),以在线方式来生成入口点,确定F是否是IDR-帧,如果是,则确定帧F的呈现时间PT,并且确定入口点(PT,BO)。注意,不需要关于位于帧F之后的具有文件格式的帧的信息。
可以如下描述入口点生成方法的第二实施例(其可以独立于底层文件格式顺序和帧依赖结构而被使用):对于每个字节偏移BO,确定最早呈现时间PT,使得具有至少PT的呈现时间的所有帧,仅仅直接或间接依赖于在文件格式顺序中在BO处或BO之后开始的帧。随后,所确定的出口点是(PT,BO)。注意,PT=TentryB(BO)。
图5、图6(a)、图7和图8分别示出了与图1、图2、图3和图4中所示的帧依赖结构相对应的文件格式顺序和相应生成的入口点列表的不同示例。图6(b)和图13分别示出了当文件格式顺序是呈现时间顺序时,与图2和图4中所示的帧依赖结构相对应的文件格式顺序和相应生成的入口点列表的另一个示例。上文已描述这些入口点的属性中的一些属性。
在图5、图6(a)、图6(b)、图8和图13中,帧依赖结构和文件格式顺序是使得每一I-帧是IDR-帧,因此入口点生成方法的第一实施例可以生成入口点列表。第一实施例所生成的入口点列表与图5、图6(a)和图6(b)的主入口点列表的第四表格相对应。第一实施例所生成的入口点列表与图8的主入口点列表的第四表格不同,具体而言,图8中所示的主入口点(14、48、303)对于第一实施例将生成的入口点(17、48、303)是优选的。第一实施例所生成的入口点列表是图13的主入口点列表的第四表格的一个子集,具体而言,第一实施例不会生成图13中所示的三个主入口点(14、48、303)、(15、51、032)和(16、54、523)。
注意,在图7中,具有标记9的I-帧不是IDR-帧,因为具有标记10、11和12的帧在文件格式顺序中跟在I-帧的后面,并且它们全部依赖于在I-帧之前的具有标记13的帧。
第二实施例所生成的入口点列表对应于图5、图6(a)、图6(b)、图7、图8和图13的主入口点列表的第三表格。
如果第二实施例生成的列表中的多个连续入口点具有相同的入口呈现时间PT,那么在文件格式顺序中的最新入口点(即,在具有相同入口呈现时间PT的这些连续入口点中,具有最大字节偏移BO的入口点)是主入口点,其余的是次入口点。通常可以基于第二实施例所生成的入口点列表,根据该主入口点选择过程来生成图5、图6(a)、图6(b)、图7、图8和图13中的第四表格中示出的主入口列表。
假定存在某个正整数值D,使得对帧依赖结构进行限制,以便没有帧直接或者间接依赖于就文件格式顺序而言相距超过D个帧的任何帧。随后,入口点生成方法的第二实施例可以随着连续地生成文件格式而通过在线的方式进行如下生成:针对每个字节偏移BO,仅基于在文件格式顺序中的、在BO之前的帧和在BO之后最多D个帧的帧的呈现时间和帧依赖结构,来确定与BO相关联的入口呈现时间。
一种用于确定与BO相关联的呈现时间的过程是确定具有D+1个帧的第一列表(包括在BO之前开始的具有最大帧号的帧、以及在文件格式顺序中在字节偏移BO处开始的D个连续帧),确定在帧的第一列表中的、直接或间接依赖于在BO之前开始的帧的那些帧中的帧的最大帧号的第一帧号,PT是具有与第一帧号相比更大帧号的帧的呈现时间。注意,在文件格式顺序中超出帧的第一列表的任何帧可能不直接或间接地依赖于在BO之前开始的任何帧。可以如下确定第一帧号。通过从帧的第一列表中选择直接依赖于在BO之前开始的帧的所有帧,来确定帧的第二列表。随后,根据帧的第一列表中的帧之间的帧依赖结构并且根据帧的第二列表,来确定第一帧号。
如本领域普通技术人员所应当认识的,针对上面所描述的实施例,可能存在多种替代和优化。例如,上面所描述的用于确定与特定的字节偏移BO相关联的入口呈现时间的第二实施例,可以并入到用于保存来自BO之前的字节偏移的信息和列表,以确定用于BO的信息和列表的总过程中。作为另一个优化,可以使用与列表格式不同的数据结构,可以明确地表示关于列表的仅仅一部分的详细信息。例如,可以保持针对在BO处开始的D个连续帧的详细信息,可以隐式或者以压缩格式来表达关于帧的任何其它信息。
无缝切换方法
1、使用入口点和出口点的无缝切换方法
与表示相关联的入口点和出口点的属性如下。针对入口点列出的入口呈现时间指示来自该表示的数据的呈现时间,其中可以在该呈现时间处开始播放、并继续无缝地进行到针对该表示的出口点所列出的任何后续出口呈现时间,与入口点相关联的字节偏移指示位于分段之中的字节位置,其中在该位置,下载操作可以开始接收允许在该呈现时间处开始播放的数据。类似地,针对出口点列出的出口呈现时间指示来自该表示的数据的呈现时间,其中可以在该呈现时间处结束无缝播放(其中该播放是针对在该表示的入口点所列出的任何前一入口呈现时间处开始的),与出口点相关联的字节偏移指示位于分段内的字节位置,其中在该位置,下载操作可以结束接收允许在该呈现时间处结束播放的数据。
用于从第一表示切换到第二表示的客户端方法的概述如下所述。假定客户端确定其可能在呈现时间T之后的最早呈现时间进行无缝地切换,其中,例如T是已在媒体缓冲区中可用的第一表示、或者已经被请求下载到该媒体缓冲区中的最新呈现时间。根据第二表示的可用入口点,客户端可以选择入口点(TS,BOS),使得TS是第二表示的所有入口呈现时间之中最早的(其至少是T)。根据第一表示的可用出口点,客户端可以选择出口点(TS,BOE),使得TE是第一表示的所有出口呈现时间之中最早的(其至少是TS)。客户端可以从第一表示中下载数据,直到到达出口字节偏移BOE为止,并且可以在入口字节偏移BOS处开始,从第二表示下载数据。客户端可以向媒体播放器提供来自第一表示和来自第二表示的下载数据,指示媒体播放器对第一表示进行视频解码,直到并且包括临时时间TE为止,并且从临时时间TS处开始并继续对第二表示进行视频解码。在TS不等于TE的情况下(即,TE>TS),媒体播放器可以决定将来自第一表示的视频提交显示,直到某个呈现时间TU,随后在呈现时间TU处开始,继续从第二表示显示,其中TU位于TS与TE之间,包含TS和TE。在一些实施例中,优选的是,如果TU=TS,则这允许在入口点处,干净地开始播放第二表示。
如第一替代性客户端切换方法,假定该客户端已经确定可能在呈现时间T之前的最新呈现时间处,想要进行无缝切换。根据第一表示的可用出口点,客户端可以选择出口点(TS,BOE),使得TE是第一表示的所有出口呈现时间中最新的(其最多是T)。根据第二表示的可用入口点,客户端可以选择入口点(TS,BOS),使得TS是第二表示的所有入口呈现时间中最新的(其最多是TE)。一旦已经选择了入口点和出口点,第一替代性客户端方法的其余部分就可以是如上所述的。
如第二替代性客户端切换方法,假定该客户端已确定:在尽可能靠近呈现时间T的呈现时间处,想要进行无缝切换。根据第一表示的可用出口点,客户端可以选择出口点(TS、BOE),使得TE是第一表示的所有出口呈现时间之中最早的(其至少是T)。根据第二表示的可用入口点,客户端可以选择入口点(TS、BOS),使得TS是第二表示的所有入口呈现时间之中最新的(其至多是TE)。一旦已选择了入口点和出口点,第二替代性客户端方法的其余部分就可以是如上所述。
如第三替代性客户端切换方法,客户端可以从第二表示的可用入口点中,选择入口点(TS,BOS),使得TS是第二表示的所有入口点中最新的入口呈现时间(其至多是T)。根据第一表示的可用出口点,客户端可以选择出口点(TE,BOE),使得TE是第一表示的所有出口呈现时间之中最早的(其在TS之后)。
如第四替代性客户端切换方法,假定该客户端例如基于从第一表示下载的、已位于缓冲区中的媒体,已确定在与第一表示的字节偏移BO之前可能的最新呈现时间处,想要从第一表示无缝地切换到第二表示,其中,BO可以是已下载到媒体缓冲区中的第一表示的部分的结束的字节偏移,或者是已请求下载到媒体缓冲区中的第一表示的结束的字节偏移。根据第一表示的可用出口点,客户端可以选择出口点(TS,BOE),使得BOE是第一表示的所有出口字节偏移中最新的(其最多是BO)。根据第二表示的可用入口点,客户端可以选择入口点(TS,BOS),使得TS是第二表示的所有入口呈现时间中最新的(其最多是TE)。一旦已经选择了入口点和出口点,第四替代性客户端方法的其余部分就可以是如上所述的。本领域普通技术人员应当认识到,存在以上组合的其它替代性客户端切换方法,例如,如在第四替代性方法中,基于针对第一表示的初始字节偏移来确定切换,并且基于如在第二替代性方法中所描述的,来确定入口点和出口点。
注意,对于第一、第二和第四替代性客户端切换方法来说,针对第一表示选择的出口点独立于针对第二表示所选择的入口点。因此,当可能存在可以考虑能切换到的不止一个第二表示的选择时,这些替代性方法提供了有吸引力的方法,客户端在决定选择哪个可能的第二表示之前,可以决定是否完成第一表示的下载。当由于可用的带宽减少,客户端需要减少到更低速率的第二表示时,在给定的呈现时间T或者字节偏移BO之前选择用于第一表示的出口点的替代方法可能是适当的,在该情况下,呈现时间T或者字节偏移BO可以是最新可用的呈现时间或者可用的字节偏移,或者即将可用于第一表示,当可用的带宽减少时,不需要从更高速率的第一表示下载另外的数据,这将趋向于:在来自第二表示的足够数据已到达以便能够无缝地继续该播放之前,使媒体缓冲区耗尽的机率减到最小。
2、基于入口点和出口点来选择下载部分
本领域普通技术人员在阅读完本申请之后应当认识到,存在着客户端可以使用入口点和出口点信息的多种方式。例如,就用户体验来说的关键因素是:从用户请求播放视频的时间(例如,通过点击网页上的链接,或者通过使用鼠标将视频的播放位置拖拽到另一个不同的播放时间),到开始播放该视频所花费的时间量。该时间量越短,用户体验通常就越高,特别是当用户正在对不同的内容进行采用时,即,相当频繁地从一个内容移到另一个内容,或者搜寻特定内容中的不同开始位置。因此,使该启动时间最小化是一个重要关注点。
具有访问入口点和出口点信息的客户端可以使用该信息来使启动时间最小化,即使当播放是来自该内容的单个表示时(即,不存在从一个表示到另一个表示的切换),因此客户端不一定是AHS客户端。例如,可以向客户端提供开始进行播放的第一入口点、以及后续第一出口点、第二出口点、第三出口点等的列表。客户端可以使用后续的出口点来决定在第一请求中请求该内容的哪一部分,其中该部分可以是从第一入口点的字节偏移到第一出口点的字节偏移。随后,客户端可以针对何时开始该视频的播放,决定是否履行第一下载请求,优选使用一旦开始播放就避免停顿或者重新缓存的技术。客户端还可以发出针对该内容的后续部分的下载请求,将后续出口点的字节偏移用作后续请求的开始和结束字节偏移,其中优选地,通过避免停顿或者重新缓存的方式来发出这些后续请求。随着媒体缓冲区填充,客户端可以潜在地发出针对内容的一部分的请求,所述内容一部分在媒体未满时占据该内容的较大部分,其中较大意味着在呈现时间较大、字节较大或者二者兼而有之。
再举一个替代的例子,AHS客户端可以使用刚刚描述的方法,如下所述地进行增强。该内容不是仅仅只有一个表示,而是存在多个表示。AHS客户端可以获得或者被提供第一入口点和针对第一表示的第一和后续出口点,并且还向AHS客户端提供用于替代的表示的位于第一入口点之后的入口点,其中,在该第一入口点开始播放该第一表示的内容。在该情况下,AHS客户端可以决定要下载第一表示的哪些部分,类似于在前一段落中所描述的客户端方法,但还有可能使用针对替代表示的可能的入口点来决定这些部分。例如(这常常是典型的),与入口点的频率相比,出口点的频率可能更高,例如,在一个表示的每一对连续的入口点之间可能提供多个(例如,5个或者更多个)出口点。在该情况下,AHS客户端可以如之前一样决定以下载相对较短的部分进行开始(例如,从第一表示的开始入口点到第一后续出口点),随后随着媒体缓冲区增长以开始下载更大的部分(例如,从一个出口点到针对未来的不止一个出口点的出口点)。但是,AHS客户端还可以在决定要下载第一表示的哪些部分时,考虑针对其它替代的表示的入口点,例如,以便确保如果需要速率切换,则AHS客户端将从第一表示中下载适当的部分,以便使从第一表示下载的和可能切换到第二表示后下载的重叠内容的量减到最小。例如,当从第一表示中下载一些部分时,AHS客户端可以选择在与出口点相关联的字节偏移处结束的来自第一表示的当前下载部分,其中该出口点位于或者刚刚超过第二表示的可能的第二入口点的呈现时间(其中在该时间,可以选择切换),即,在当前下载部分之后选择的下一个下载部分可以是来自于在与第二入口点相关联的字节偏移处开始的第二表示。
如另一个替代示例,客户端可以使用多个并发的HTTP连接来下载表示,此外还可以使用FEC,如Luby A5中所公开的。在该替代性示例中,如Luby A5中所公开的,重要的是:将多个连接调度为通过确保快速启动时间,同时使下载请求的数量减到最小的方式来下载内容。因此,当第一次启动时,客户端可以将内容的从第一入口点到第一后续出口点的部分的下载,划分到多个连接中,例如,四个连接中的第一连接可以请求下载该部分的前第二连接可以请求下载下一个
Figure BDA0000487906460000312
等等。通过这种方式,这些连接是播放所最初需要的内容部分的所有下载片段。此外,如Luby A5中所公开的,针对内容的其它FEC数据可在单独的文件中获得,还可以执行针对该FEC数据的下载请求以便进一步加快为了播放所需要的内容的传输。就前一个替代性示例而言,随着媒体缓冲区填充,下载请求部分的分段可以增大,在AHS客户端的情况下,为第一表示所选择的下载部分的开始和结束(它们后续被划分到多个片段中,以便在多个连接上请求这些部分)可以是基于针对可切换到的可能的替代表示的入口点。
用于生成切换信息的过程的概述
当视频播放器从一个表示切换到另一个表示时,客户端可以有利地使用分段映射来提供自适应流解决方案的表示之间的更快速切换,同时在该切换期间通过网络下载更少的数据,并且实现更平滑的视频播放。如本申请所使用的,分段映射具有其它用途,例如实现改善的启动时间和针对重新缓存/停顿事件的改善的弹性。
举个例子,分段映射可以包括入口点列表、出口点列表、以及可选的与表示的分段相关联的其它元数据。入口点列表包括入口点的列表、以及与每一个这种入口点相关联的入口呈现时间和入口字节偏移。出口点列表包括出口点的列表、以及与每一个这种出口点相关联的出口呈现时间和出口字节偏移。
生成分段映射可以在功能上划分成两个方法部分。与第一方法部分相关联的是两种类型的方法,本申请称为入口点生成器和出口点生成器,它们将以特定格式编码的媒体的文件或流作为输入,并且分别针对该媒体,生成入口点和出口点的详细列表。第二方法部分(本申请称为分段映射生成器),将入口点和出口点的详细列表作为输入,以生成分段映射。
分段映射生成器的实施例可以使用入口点生成器和出口点生成器的输出,来生成分段映射。分段映射生成器可以与媒体格式无关,并且可以用分段映射来提供优化的入口点和出口点的列表,其中,优化意味着以紧凑的方式来选择和表示入口点和出口点,使得它们为客户端进入和退出该表示提供一组丰富的好位置。可以针对媒体内容的每一个表示,独立地或者以协作的方式来执行分段映射生成。
可以有多种变型。例如,特别是对于直播流媒体内容,紧密集成入口点生成器、出口点生成器和分段映射生成器的解决方案是优选的,并且对于点播的流内容来说也是优选的。
可以使用在Pakzad中公开的方法,根据AHS客户端能高效和有效地使用的入口点集合和出口点集合来生成简洁的分段映射,即,Pakzad公开了分段映射生成器的一些实施例,其包括用于将一个表示的分段划分成优选的片段的方法。可以使用本申请所描述的方法和过程来增强这些方法,具体而言,如果每个片段的开始或者结束能分别在主入口点处开始或者在主出口点处结束,则其是优选的。
举个例子,图1示出了封闭的GOP帧依赖结构,在该情况下,第一片段可以包括帧1、5、2、3和4,第二片段可以包括帧6、7和8,第三片段可以包括帧9、13、10、11和12,第四片段可以包括帧14、15和16等等。这种片段结构可以是优选的,这是由于所有主入口点都位于片段的开始处,并且因为(当客户端开始或者切换到一个表示时)其允许下载一部分GOP,因此允许在下载完整的GOP之前,播放内容的一部分GOP。位于GOPS的结束处的特定主出口点也是优选的,这是由于通常B-帧比I-帧或P-帧更小,因此下载更小的帧通常来说是有利的,其允许与更大帧具有相同的播放时间量。如果将GOP结构在不同的表示之间对齐,则在该示例中,该片段结构允许在没有对不播放的任何帧进行下载的情况下,在表示之间进行切换。
再举一个例子,图2示出了一种开放的GOP帧依赖结构,在该情况下,第一片段可以包括帧1,第二片段可以包括帧5、2、3和4,第三片段可以包括帧9、6、7和8,第四片段可以包括帧13、10、11和12,第五片段可以包括帧17、14、15和16等。在该情况下,第一片段是使用与其后不同模式的帧来形成的。这种片段结构具有很多与针对前一段落中的示例所描述的相同的优点。如果将GOP结构在不同的表示之间对齐,那么这种片段结构允许:在对不播放的四个重叠帧(即,一个I-帧和三个B-帧)进行最小下载的情况下,在表示之间进行切换。
基于MPEG DASH信令进行映射的变型
1、入口点和出口点的MPEG DASH规范信令
MPEG DASH规范大致具有分段映射结构,来描述分段中的片段,如下面的表1中所描绘的。
表1
Figure BDA0000487906460000331
对上面的分段映射结构的解释如下所述。ESPT的值是该分段中具有最早呈现时间的帧的呈现时间。
时间尺度的值是每秒的滴答数量,其用于针对表示的该分段,测量以滴答为单位的时间。例如,如果时间尺度=30,000,那么针对该表示的该分段,存在每秒30,000个滴答,因此表达成90,000个滴答的时间指示90,000/30,000秒或者3秒的持续时间。一般情况下,所有时间的单位在分段中用滴答来表示,例如,ESPT、Delta和RAP-delta。一帧的典型持续时间可以是1,001个滴答,其意味着每秒存在约29.97个帧。
N的值是分段中的片段的数量。
SB(i)的值是该分段的片段i的字节大小。因此,与该分段中的片段i的开始的字节偏移是比i小的j上的SB(j)的总和。
Delta(i)的值是片段i+1内的任何帧的最早呈现时间和片段i内的任何帧的最早呈现时间之间的差。因此,在片段i之后的下一个片段中的一帧的最早呈现时间是:ESPT加上所有j≤i上的Delta(j)的总和。
RAP-present-flag(i)的值指示在片段i内是否存在表示接入点(RAP)。
如果在片段i中以信号发送RAP,那么RAP-delta(i)的值是片段i内的RAP呈现时间与片段i中的帧的最早呈现时间之间的差。因此,如果在片段i内存在RAP,则片段i中的RAP呈现时间是ESPT加上RAP-delta(i)加上所有j<i的Delta(j)的总和。
MPEG DASH分段结构之后的基本哲学在于:可以使用HTTP1.1字节范围请求来下载分段中的片段,片段通常是请求进行下载的最小实体。有意义的是,以支持表示之间的无缝切换的方式来使片段结构进行对齐,具体而言,将片段边界与入口点和出口点对齐,以信号发送分段中的入口点和出口点,支持高效和无缝的切换,是有益的。
MPEG DASH分段映射格式可以如下使用,以支持以信号发送针对分段的入口点。MPEG DASH规范将RAP定义成包括如下所述有关的字节偏移、IRAP以及呈现时间、TRAP(翻译成本申请中使用的术语):(1)TRAP是最早呈现时间,使得如果从字节偏移IRAP开始下载表示,并继续进行到结束,则可以在呈现时间TRAP处开始,以呈现顺序来无缝地播放该表示中的内容的视频帧;(2)IRAP是最大字节偏移,使得如果从字节偏移IRAP开始下载表示,并继续进行到结束,则可以在呈现时间TRAP处开始,以呈现顺序来无缝地播放该表示中的内容的视频帧。
因此,在MPEG DASH规范中定义的RAP等同于本申请中所定义的主入口点,即,(TRAP,IRAP)=(TentryB(IRAP),BentryT(TRAP)。如果针对一个RAP的字节偏移位于一个片段之内,则该片段被称为包含该RAP。
MPEG DASH规范可以如下所述地以信号发送RAP。假定片段i包含至少一个RAP,并且令BO是片段i包含的所有RAP中的RAP的最小字节偏移,令PT=TentryB(BO)是与BO相对应的RAP的呈现时间。可以将RAP-present-flag(i)的值设置为指示RAP的存在,将RAP-delta(i)的值设置为PT减去ESPT减去所有j<i的Delta(j)的总和。对于不包含RAP帧的每一个片段i来说,可以将RAP-present-flag(i)的值设置为指示不存在RAP。因此,MPEG DASH规范支持在片段中以信号发送主入口点。
令BO(i)是与分段中的片段i的第一字节的字节偏移。注意,如果片段i包含RAP,那么TentryB(BO(i))是具有片段i中的最早呈现时间的RAP的RAP呈现时间。
在一些情况下,可以如下使用MPEG DASH分段映射格式来支持以信号发送用于分段的出口点。对于每一个片段i,与片段i+1的第一字节的字节偏移BO(i+1),是与片段i的结束处退出相对应的字节偏移。在下面所描述的环境中,可以基于MPEG DASH分段映射格式,如下准确地确定与片段i的结束处退出相关联的出口呈现时间TexitB(BO(i+1)):将EPT(i)的值设置为ESPT加上所有j≤i的Delta(j)的总和。如先前所描述的,EPT(i)是片段i+1中的任何帧的最早呈现时间。如果保持以下两个条件,则保证EPT(i)等于TexitB(BO(i+1))。
2、用于校正出口的的信令的两个条件
用于校正出口点的信令的两个条件可以是:(1)文件格式顺序是解码顺序;(2)片段中的任何帧的最早呈现时间的顺序,在连续的片段上严格地增加,即,EPT(1)<EPT(2)<EPT(3)等。
第一条件通常可能对于文件格式是成立的,但不是必要的。此外,如果文件格式不是解码顺序,则其通常是如下情形:上述信令并不准确地以信号发送片段的出口呈现时间。图14(其与如图4中所示的帧依赖结构相对应,但是其中,文件格式顺序是呈现时间顺序,而不是解码顺序)是第一条件不成立的示例。在该示例中,如果第一片段包含帧1、2、3和4,第二片段包含帧5、6、7和8,那么EPT(1)的值将成为帧5的呈现时间,如果其被用作第一片段的出口呈现时间,则会指示:从接收第一片段起,播放开头四帧1、2、3和4。但是,从接收第一片段起,仅可以播放帧1,因此EPT(1)的值不准确地以信号发送第一片段的出口呈现时间。
第二条件可能通常成立,但是依赖于分段的片段结构,存在即使第一条件成立但第二条件仍然不成立的示例。例如,参见图9,假定第一片段包括开头13,244个字节并携带帧1,第二片段包括接下来5,150个字节并携带帧5,第三片段包括接下来的3,637个字节并携带帧2、3和4。在该示例中,如上面针对开头三个片段所计算的出口呈现时间EPT(1)、EPT(2)和EPT(3),分别是帧5、2、6的呈现时间。具体而言,与第一片段相关联的出口呈现时间EPT(1)将指示:从下载第一片段起可以播放的呈现时间顺序中的开头四帧(即,帧1、2、3和4),但是情况并非如此。
因此,总之,虽然MPEG DASH规范支持在片段中以信号发送入口点,但对信令出口点的支持并不全面。
3、第一分段映射方法:改进的出口点信令
如先前所描述的,并不总是如下情形:能够使用MPEG DASH规范来正确地以信号发送出口点。具体而言,为了正确地以信号发送出口点,通常需要先前所描述的用于校正出口点的信令的两个条件。可以去除第二条件的一种方式是,使用本节中所描述的用于增强MPEG DASH以改进出口点信令的方法。
在该方法中,将ESPT重新定义成:在表示的其余部分中的前一个分段之后的任何帧的最早呈现时间。此外,将Delta(i)的值重新定义成:在表示的其余部分中的片段i之后的任何帧的最早呈现时间、与该表示的其余部分中的片段i-1之后的任何帧的最早呈现时间之间的差。
随后,将RAP-delta(i)的值重新定义成:在片段i中以信号发送的RAP的RAP呈现时间、与该表示的其余部分中的片段i-1之后的任何帧的最早呈现时间。
如果第一条件保持(即,文件格式顺序是解码顺序),则上面对参数的重新定义保证:基于这些重新定义的值所计算的EPT(i)是片段i的正确出口呈现时间,即使第二条件不保持。举例而言,参见图9,如在上面所描述的示例中,假定第一片段包括开头13,244个字节并携带帧1,第二片段包括接下来的5,150个字节并携带帧5,第三片段包括接下来的3,637个字节并携带帧2、3和4。在该示例中,ESPT的值将如前所述,即,其是帧1的呈现时间。但是,如基于上面的重新定义所计算的、与开头三个片段相关联的出口呈现时间EPT(1)、EPT(2)和EPT(3)分别是帧2、2、6的呈现时间。具体而言,与第一片段相关联的出口呈现时间EPT(1)将指示:从下载第一片段起,可以播放的呈现时间顺序中的第一个帧(即,帧1)。此外,与第二片段相关联的出口呈现时间EPT(2)将指示:从下载开头两个片段起,仅可以播放帧1,与第三片段相关联的出口呈现时间EPT(3)将指示:从下载开头三个片段起,可以播放开头五个帧1、2、3、4和5。
可以支持第二条件的另一种方式是:如果通过一个片段中的任何帧的最早呈现时间的顺序在连续片段上严格增加的方式,来形成片段结构。例如,如果每一个片段包含主出口点,则将满足第二条件。
在有可能确定片段结构的情况下,优选的是,如果包含主入口点的每一个片段使得在该片段的开始附近存在主入口点。还优选的是,如果包含主出口点的每个片段使得在该片段的结束处附近存在主出口点。
可以去除这两个条件的一种方式,是如下修改当前MPEG DASH分段映射中所携带的参数的定义,这是MPEG DASH分段映射信令的优选方法。4、第二分段映射方法:对MPEG DASH分段映射方法的修改
令BO是与表示的分段的开始的字节偏移,令BO(i)是与片段i的开始的字节偏移。
将ESPT的值重新定义为TexitB(BO)。
将Delta(i)的值重新定义为TexitB(BO(i+1))-TexitB(BO(i))。
将RAP-delta(i)的值重新定义为TentryB(BO(i))-TexitB(BO(i))。
注意,当上面所描述的用于校正出口点的信令的两个条件中的第一条件保持时,MPEG DASH分段映射方法的第二修改在效果上等同于上面所描述的第一修改,即,当第一条件保持时,那么TexitB(BO)是表示的其余部分中的先前分段之后的任何帧的最早呈现时间,TexitB(BO(i+1))-TexitB(BO(i))是表示的其余部分中的片段i之后的任何帧的最早呈现时间、与表示的其余部分中的片段i-1之后的任何帧的最早呈现时间之间的差,TentryB(BO(i))-TexitB(BO(i))是在片段i中发送的RAP的RAP呈现时间、与在表示的其余部分中的片段i-1之后的任何帧的最早呈现时间之间的差。但是,可以独立于任何条件,准确地使用第二修改来计算出口时间,并且第二修改更符合MPEG DASH规范中的RAP的当前定义。
由于TexitB(BO(i+1))至少是TexitB(BO(i)),因此对于每个片段i,保证Delta(i)是非负数。此外,由于严格地增加按照出口字节偏移的升序的主出口点的出口呈现时间的序列,所以对于每个片段i,保证Delta(i)大于零(如果每个片段包含至少一个主出口点的话),Delta(i)=0指示片段i不包含任何主出口点。此外,如果片段i包含至少一个主出口点,那么TexitB(BO(i+1))是片段i中的最后主出口点的出口呈现时间。此外,由于TentryB(BO(i))至少是TexitB(BO(i)),因此保证RAP-delta(i)大于或等于零。
由于在AHS系统中在表示之间进行切换时,入口点和出口点同等重要,因此可以考虑进一步增强MPEG DASH规范。
可以将“表示出口点”的定义引入MPEG DASH规范,简称为RXP,其中,将RXP定义为主出口点,类似于如何将RAP定义为主入口点。
可以针对每个片段i,引入新参数RXP-present-flag(i),其中,RXP-present-flag(i)的值指示在片段i内是否存在表示出口点(RXP)。RXP-present-flag的值不必在MPEG DASH分段映射中进行显式地以信号发送,而是替代地,可以根据以下其它参数来计算:如果Delta(i)>0,则RXP-present-flag(i)的值指示在片段i中存在RXP,如果Delta(i)=0,则指示在片段i中不存在RXP。
如果在片段i中存在RXP,则片段i的RXP呈现时间是ESPT加上Delta(i)加上所有j<i的Delta(j)的总和。
如MPEG DASH规范中,RXP-present-flag(i)的值指示在片段i中是否存在表示接入点(RAP)。
如果在片段i中存在RAP,则片段i的RAP呈现时间是ESPT加上RAP-Delta(i)加上所有j<i的Delta(j)的总和。
MPEG DASH规范的其它增强也是有可能的,包括指示一个片段中的多个主入口点和/或出口点,并且还包括关于它们的字节偏移的信息。
如果例如使用由AES提供的CBC类型块加密,则可以包括在分段映射中的其它信息是可以用于帮助解密的信息,其中每个数据块是例如16个字节,并且其中用链来对这些块进行加密(即,对下一个块进行加密),前一块的加密首先与下一个块进行异或以形成新块,随后该新块的加密是下一个块的加密值。因此,为了对下一个块进行解密,需要前一个块的加密值,即,通过对下一个块的加密进行解密,并且将其与前一个块的加密值进行异或来形成下一个块的值。因此,在分段映射中提供与前一个加密块的字节偏移可能是有利的,其中需要该字节偏移以用于对片段的第一加密块进行解密、或者对于RAP或者RXP的第一加密块进行解密。或者,在分段映射本身中提供前一个加密块有可能是有利的。
可以将分段映射提供成与相关联的分段分开的文件,其中可以从该分段文件的URL中导出该分段映射的URL,例如,分段映射URL是具有附加的“.segment_map”的分段的URL。该变型具有以下优点:没有意识到分段映射文件的存在的客户端没有受到这些文件的存在的影响,这是由于这些分段文件没有被改变,而意识到分段索引文件并且能够利用分段索引文件的客户端可以下载这些分段索引文件并且使用它们来改善表示切换体验。
再举一种变型,可以将分段映射附加到分段的前面来增强分段,随后客户端可以通过下载增强分段的小前缀,对分段映射进行下载,来获得该文件的分段映射。这种变型具有下面的优点:与第一变型相比,存在要管理的更少的文件和相关联的URL,但是如果现有的客户端没有被配置为解析或者使用被附加到前面的分段映射,则可能有问题。再举一种变型,可以将分段映射添加到分段来增强该分段。再举一种变型,可以将用于几个分段和/或表示的分段映射汇总到一个文件中。再举一种变型,可以将用于一个分段的分段映射划分成多个文件,可以根据用于该分段的URL来自动地导出用于这些分段映射的URL(例如,使用基于模板的URL生成)。当分段包括多个片段/块时(例如,该分段是关于两小时的电影,每个片段是大约500毫秒的持续时间),这种变型可能特别有用。
存在以上实施例的多种变型。例如,取代列出每一片段/块的至多一个入口点和出口点,可以列出每一片段的多个入口点和/或出口点。在对内容进行加密的情况下,分段映射可以包括加密字节偏移,以指示在何处开始下载加密的内容,以便对后续的部分进行解码。例如,在使用由AES所提供的CBC加密来对内容进行加密的情况下,其中为了对加密数据的一部分进行解密,需要该数据流中的加密数据的先前部分,因此分段映射可以提供与加密数据的这些先前部分的字节偏移。
此外,分段映射还可以包含与客户端和/或媒体播放器有关的其它信息,以便帮助无缝的切换和视频的播放。例如,可以在分段映射中增加信息,该信息指示该表示是包括音频数据还是包括视频和音频数据的混合体。此外,还有可能增加关于是否有可用的FEC修复分段的指示,如果有的话,则客户端可以使用FEC分段映射的信令来使用FEC修复分段。
5、第三分段映射方法:用于ALS流的分段映射生成和格式
对于一些AHS流系统来说,有用的是:生成分段映射,并将分段映射提供作为与分段本身分开的文件。向后兼容性提供了一套基本原理:针对现有或者未来部署的AHS系统,即没有规定也没有预期分段映射。以向后兼容方式来增强具有分段映射的这些系统,可以提供大量的价值,即,为增强的AHS客户端提供改进的切换和启动结束用户体验以及网络效率,其可以利用分段映射的可用性并且对未增强的AHS客户端的性能没有任何负面影响。在本申请的其它部分中描述了其它基本原理。虽然将本节公开的分段映射描述成与分段本身分开的文件,但这些分段映射也可以是分段文件的一部分,例如,它们可以附加到分段的前面、添加到分段中、或者插入到整个分段中。
一种用于提供关于特定分段的信息的分段映射的简单格式,是包括针对该分段所选定的主入口点和所选定的主出口点的列表,其中所选定的主入口点可以是在分段之内开始的全部的主入口点、或者主入口点的一个选定的子集,并且对于所选定的主出口点而言是类似的。因此,用于生成关于特定分段的信息并在分段映射中提供该信息的一种可能的格式如下。
令BO是与表示的分段的开始的字节偏移,并且令APT(0)=TentryB(BO)、ABO(0)=BO、XPT(0)=TexitB(BO)、XBO(0)=BO。令AN是选定的主入口点的数量,令XN是选定的主出口点的数量。对于所有的i=1,…,AN,令(APT(i),ABO(i))是字节偏移的升序中的第i个选定的主入口点,类似地对于i=1,…,XN,令(XPT(i),XBO(i))是与字节偏移的升序中的选定的主出口点的开始的字节偏移。随后,关于该分段的分段映射的部分的格式可以是诸如下面的表2中所示的数据结构。
表2
Figure BDA0000487906460000411
表2的分段映射结构的解释如下所述。时间尺度的值是如针对MPEGDASH规范所描述的。该分段中的所选定的主入口点i的字节偏移是所有j=0,…,i的ABO(j)的总和,该分段中的所选定的主出口点i的字节偏移是所有j=0,…,i的XBO(j)的总和。类似地,该分段中的所选定的主入口点i的呈现时间是所有j=0,…,i的APT(j)的总和,该分段中的所选定的主出口点i的呈现时间是所有j=0,…,i的XPT(j)的总和。
一种用于指示在分段映射中的一个分段中的选定的主入口点和选定的主出口点的替代性格式如下。
6、第四分段映射方法
令L是组合的选定的主入口点和选定的主出口点的列表,其中将这些点列出为(字节偏移、呈现时间)对,其中这些点是以其字节偏移的升序来列出的,如果该列表中的入口点和出口点具有相同的(字节偏移、呈现时间)值,则将它们视为副本。令N是列表L中的唯一点的数量。对于所有的i=1,…,N,令(PT(i),BO(i))是列表L中的第i个点。令BO是与表示的分段的开始的字节偏移,令PT(0)=TexitB(BO),BO(0)=BO。随后,关于该分段的分段映射的部分的格式可以如表3的列表中所示。
表3
Figure BDA0000487906460000421
0,如果(BO(i),PT(i))仅是入口点
1,如果(BO(i),PT(i))仅是出口点
2,如果(BO(i),PT(i))既是入口点又是出口点
表3的分段映射结构的解释如下所述。表示类型指示在所引用的分段中包含的数据类型,其中0指示该数据仅仅是音频,1指示其仅仅是视频,2指示其是音频和视频两者的混合。因此,客户端可以根据下载分段映射,来确定表示类型。时间尺度的值是如针对MPEG DASH规范所描述的。该分段中的点i的字节偏移是所有j=0,…,i的BO(j)的总和,该分段中的点i的呈现时间是所有j=0,…,i的PT(j)的总和。应当注意,对于一些文件格式顺序和帧依赖结构来说,有可能,PT(i)-PT(i-1)可以小于零,而对于其它文件格式顺序和帧依赖结构,PT(i)-PT(i-1)始终至少是零。RP(i)的值指示:点i是入口点、出口点、还是入口点和出口点二者。
上面内容具有多种增强。例如,分段映射可以包括关于部分分段或者多个分段的信息。分段映射可以包括URL和字节范围,以指示其包含的信息所涉及的分段。
应当注意,上面所描述的第四分段映射方法,还可以用于确定MPEGDASH片段结构。例如,对于每一个i=1,…,N,可能存在一个片段,该片段被定义为在字节偏移BO(i-1)处开始,并且在字节偏移BO(i)-1处结束。在该情况下,每一个片段的开始和结束可以对应于所选定的主入口点、所选定的主出口点、或者所选定的主入口点和所选定的主出口点二者。
为了遵循MPEG DASH所使用的分段映射信令方法,如果文件格式顺序是解码顺序,则可以使用替代的实施例。在该替代的实施例中,以每一个片段包含至少一个主出口点的方式,来形成片段结构,即,使得对于每一个i=1,…,N,存在至少一个主出口点(PT、BO)(其中,BO(i-1)<BO≤BO(i)),那么就可以使用如先前所描述的“入口点和出口点的MPEGDASH规范信令”的分段映射信令方法。如先前所描述的,用于该方法的Delta(i)的值是片段i+1中的任何帧的最早呈现时间、与片段i中的任何帧的最早呈现时间之间的差值。因此,在片段i之后的下一个片段中的帧的最早呈现时间是ESPT加上所有j≤i的Delta(j)的总和。在该情况下,由于同时满足“用于校正出口点的信令的两个条件”,因此每个片段包含一个出口点,在片段i之后的下一个片段中的帧的最早呈现时间是与片段i的结束相关联的出口呈现时间。因此,每个片段的结束是:具有可以基于该分段映射中的信令信息来计算的出口呈现时间的出口点。
也可以实现多种其它的增强和替代方法。例如,先前所描述的MPEGDASH的所有替代方法和增强,也应用于本节所描述的实施例。例如,可以将所选定的主入口点扩展到有可能包括次入口点,可以将所选定的主出口点扩展到有可能包括次出口点。
用于使用切换片来发送和重新排序数据的方法
在一些情况下,为了实现更高效的视频编码,数据依赖结构可能更加复杂,对于AHS客户端离开一个表示并且加入SAP处的第二表示来说是不容易的。例如,如先前所描述的,图1中所示的封闭GOP结构有助于这种转换,但图2中所示的开放GOP结构进行这种转换却更困难。在对齐的入口点和出口点的情况下,封闭GOP转换和开放GOP转换之间的区别的一个示例如下。
当从出口点(PT,BO)处的第一表示转换到入口点(PT′,BO′)处的第二表示时,对于封闭GOP来说,呈现时间PT和PT′是相等的,这说明从这些表示下载的内容没有重叠,可以对来自这两个表示的内容进行串接,来表示媒体播放器要回放的有效内容,实现无缝转换。举一个封闭GOP转换的示例,假定两个表示共享相同的数据依赖结构,文件格式如图1、图5和图9中所示。在该情况下,如图9中所示,在出口点(8、27、537)处从第一表示进行转换,指示第一表示被下载到字节偏移27,537,结束呈现时间正好在回放帧8之后。
参见图5,可以在入口点(9、27、537)处进行到第二表示的相应转换,这指示第二表示在字节偏移27,537处开始下载,开始呈现时间将以回放帧9来开始。在该示例中,不存在相同帧的重叠下载,即,从第一表示下载的所有帧与从第二表示下载的所有帧不同。在该示例中,针对第一表示的出口点的字节偏移和针对第二表示的入口点的字节偏移是相等的,这是由于两个表示针对相同的入口点和出口点具有完全相同的字节偏移,但是通常,在其之间进行转换的表示是按照不同的质量和速率进行编码的,因此针对相同的呈现时间的字节偏移将通常是不相等的。
当从出口点(PT,BO)处的第一表示转换到入口点(PT′,BO′)处的第二表示时,对于开放GOP来说,呈现时间PT和PT′不必相同,这说明从这些表示下载的内容可能重叠,不能对来自这两个表示的内容进行简单地串接以表达媒体播放器要回放的有效内容。在这些情况下,有用的是,当向媒体播放器提供重叠的内容时,AHS客户端向媒体播放器以信号告知哪些内容重叠,因为这可以有利于媒体播放器以无缝方式来回放重叠的内容。在其它情况下,媒体播放器配备有用于理解何时向其提供重叠内容并尽可能无缝地处理回放该内容的逻辑和方法。
举一个开放GOP转换的例子,假定两个表示共享相同的数据依赖结构和文件格式,如图2、图6(a)和图10(a)中所示。在该情况下,如图10(a)中所示,可以在出口点(9、31、043)处进行从第一表示的转换,指示第一表示被下载到字节偏移31,043,即,客户端将下载并包括所示的文件格式顺序中的帧8,结束呈现时间正好在回放帧9之后。参见图6(a),可以在入口点(9、22、033)处进行到第二表示的相应转换,其指示第二表示开始在字节偏移22,033处进行下载,即,客户端在所示的文件格式顺序中的帧9处开始下载,开始呈现时间将以回放帧9来开始。
应当注意,在该开放GOP示例中,与上面的封闭GOP示例相比,两个表示针对该转换的入口点和出口点,具有不同的字节偏移,即使两个表示整体上针对相同的入口点和出口点具有完全相同的字节偏移。在该开放GOP示例中,在该转换中存在一组重叠的下载的帧,即,这次转换中,针对每个表示,下载一次帧9、6、7和8。优选的是,媒体消费者只使用这些帧集合中的一个(例如,由媒体播放器进行播放),以便在时间体验上向终端用户提供无缝转换。
本申请将这种帧的重叠集合称为“重叠部分”。在上面的示例中,每一个重叠部分是31,043-22,033=9,010个字节。在一些实例中,在从一个表示到另一个表示的重叠部分之间,字节数量可以不同。但是,在该示例中,它们是相同的。随后,客户端将下载2*(31,043-22,033)=18,020个字节(两个表示的重叠部分),并且只使用这些重叠部分之一回放帧6、7、8和9。因此,在该示例中,存在9,010个字节的开销。
通常,由于在其之间进行转换的表示,通常是按照不同的质量和速率进行编码的,因此针对相同的呈现时间的字节偏移通常是不同的,因此针对重叠部分所下载的字节总数(两个表示中的每个表示中的重叠部分的字节大小的总和)不必是两倍。从重叠部分回放的帧大小可以取决于媒体播放器如何决定在重叠部分中的帧之间,从一个表示转换到另一个表示。
当使用开放GOP数据依赖和其它更高级的数据依赖结构时,为了提高无缝转换的效率和简化程度,可以使用本申请所描述的一些方法。第一种方法是用于例如在分段映射中以信号发送重叠部分结构的方法,即,以信号发送与可能的重叠部分相应的成对的入口点和出口点,这些入口点和出口点可以用于从一个表示切换到另一个表示,或者用于在入口点处开始播放来自一个表示中的内容,或者用于在一个表示的出口点处停止播放内容。
表4中将用于在分段映射中以信号发送重叠部分的可能格式,示出为能通过多种格式来向客户端传送的数据结构。
表4
Figure BDA0000487906460000461
随后,客户端对来自分段映射的这种数据结构进行解释,以确定重叠部分发生在何处。在该示例性数据结构中,时间尺度的值可以是如针对MPEG DASH规范所描述的。OP的值是在该分段映射中以信号发送的重叠部分的数量。类型字段表明以信号发送了重叠部分。成对(APT(i)、ABO(i))是第i个重叠部分的入口点,成对(XPT(i)、XBO(i))是第i个重叠部分的出口点。
上面的信令方法存在多种变型。例如,可以在分段映射中一起以信号发送重叠部分的信令与其它SAP、入口点和出口点的信令。再举一个例子,信令的确切细节可以有所变化。
再举一种变型,如果OP的值可以固定并且不以信号发送。例如,可能用于分段的分段映射附加到该分段的前面,每个分段只存在一个重叠部分,其中该分段以入口点开始并且以出口点结束。在该情况下,OP的值是1。再举另一种变型,可以通过分段映射中的另一个标志来以信号发送重叠部分的信令,其中,如果该标志被设置为0,则在该分段中不存在以信号发送的重叠部分,如果该标志被设置为1,那么在该分段中正好发送了一个重叠部分。
在一些现有MPEG DASH简档中,在自适应集的不同的表示之间存在SAP对齐。在MPEG DASH或者其它AHS技术的标准简档的变型中,可以准许简档,其中,自适应集的不同表示之间(或者通常的,针对相同内容的处于不同比特速率和质量的一组表示之间)的重叠部分对齐,可以以信号发送或者针对给定简档是始终成立的。不同的表示之间的重叠部分对齐意味着:针对相当大的部分或者所有重叠部分,如果一个特定表示具有含有入口点(APT、ABO)和相应的出口点(XPT、XBO)的以信号发送的重叠部分,那么该自适应集或群组中的其它表示也具有含有(APT、ABO’)形式的入口点和(XPT、XBO’)形式的出口点的、以信号发送的重叠部分,即,入口点和出口点的开始和结束呈现时间相匹配。应当注意,字节偏移不需要匹配并且通常将不匹配。
使表示之间以信号发送的重叠部分对齐,对于AHS客户端来说是非常有益的。例如,这允许AHS客户端根据用于第一表示的分段映射信息,确定用于从当前第一表示切换到另一个第二表示的策略,即,用于开始第二表示的下载的起始呈现时间和第一表示的结束呈现时间。这可能是有益的,由于随后AHS客户端可以避免下载或者访问第二表示的分段映射信息来确定在什么呈现时间进行该切换。另一个益处是:即使在从第二表示下载任何信息之前,AHS客户端也可以向媒体播放器以信号发送重叠部分的开始和结束呈现时间,因此提前向媒体播放器提供关于重叠内容的暗示。
在一些实施例中,媒体内容的源可以被配置为对具有重叠部分的分段中的数据进行排列,客户端可以被配置为:在假定存在重叠部分的情况下(无论其是否存在),对数据进行处理。在一些实施例中,这种源可以用于不可知或者不知重叠部分的客户端。
用于对相同自适应集或组中的表示之间的重叠部分进行对齐的一种可能方法是在不同表示之间进行对齐分段,具有成为表示中的重叠部分的分段(即,以重叠部分的入口点的字节偏移进行开始,以重叠部分的出口点的字节偏移进行结束的分段),即,如果(PT、BO)是重叠部分的入口点,(PT′、BO′)是重叠部分的出口点,那么该分段在该表示中的字节偏移BO处开始并且在该表示中的字节偏移BO′处结束。
此外,还可以将与重叠部分相一致的分段作为包括重叠部分的分段进行发送。在该情况下,当AHS客户端想要从第一表示转换到第二表示时,该AHS客户端方法可以在第一表示中寻找其是重叠部分的分段(其具有入口点(APT、ABO)和出口点(XPT、XBO)),下载该分段(其包括内容的XBO–ABO个字节),下载其是第二表示中的相应重叠部分的分段(即,第二表示中的分段,其具有与入口点(APT、ABO′)和出口点(XPT、XBO′)相对应的来自于第二表示的内容的XBO′-ABO′个字节),向媒体播放器发送用于在呈现时间间隔APT到XPT中从第一表示转换到第二表示的信号。
另一种变型是对于要完全被包含在一个分段中的重叠部分进行限制,并且以信号发送位于分段中的重叠部分的位置。例如,如果分段持续时间与重叠部分的持续时间相比通常大得多时(例如,对于点播内容来说(在该情况下,每一个表示只存在一个分段),或者对于直播内容来说(在该情况下,分段持续时间可能是几秒钟,而重叠部分持续时间可以是数十毫秒或者数百毫秒)),则这种变型可以是优选的。在该情况下,当AHS客户端从第一表示转换到第二表示时,AHS客户端可以下载第一表示中的分段(其在第一表示中的重叠部分的结束时结束),下载第二表示中的分段(其在第二表示中的重叠部分的开始处进行开始),从而避免下载这些分段的不被回放的其它部分。
如上所述,基于重叠部分,一些冗余和/或未使用的内容可能被请求和发送。因此,当从第一表示切换到第二表示时,在重叠部分中下载了两个不同版本的内容,并且由于媒体播放器只对重叠部分中的内容的每个部分的两个版本之一进行播放,所以下载了冗余内容。因此,有好理由对设备进行配置,使得重叠部分大小减到最小。
此外,在下面的情形下,较小的重叠部分大小也有益处:客户端开始回放来自一个表示的内容(其中在重叠部分的入口点处开始),或者结束对来自一个表示的内容的回放(其中在重叠部分的出口点处结束),在任一情况下,都有可能下载从未被回放的内容。
例如,再次参见图2、图6(a)和图10(a),考虑重叠部分包括如图所示的文件格式顺序的帧9、6、7和8。当在该重叠部分处对表示进行切换时,帧9、6、7和8被下载两次,一次对应于第一表示,一次对应于第二表示。当使用该重叠部分的入口点来开始回放时(即,在帧9的起始处开始下载,以便在帧9处开始回放),帧6、7和8被下载但没有被回放,这是由于帧6、7和8还依赖于没有被下载的帧5。
为了使重叠部分的大小和持续时间最小化,考虑其它文件格式顺序是有用的,其中这些文件格式顺序不一定是解码顺序。考虑下面的方法:服务器将文件格式顺序用作呈现顺序而不是解码顺序,来形成这些分段。与这些分段相关联的分段映射中的信令,可以以信号告知如何将分段中的内容重新排序成解码顺序。AHS客户端可以下载分段或者分段的一部分,对所接收的内容重新排序成解码顺序,以解码顺序将该内容提供给媒体播放器。这样的确需要AHS客户端在将内容的一些部分提供给媒体播放器之前,潜在地对这些部分进行重新排序,但在一些情况下,媒体播放器可能不需要接收处于解码顺序的内容。此外,AHS客户端在将内容提供给媒体播放器之前,必须对稍微更多的内容进行缓存,以便以解码顺序来向媒体播放器提供该内容。但是,该方法也存在多种优点。
在该示例中,可以在例如MPD中以信号发送关于文件格式顺序是呈现顺序的指示。对于以信号发送的关于文件格式顺序是呈现顺序的表示来说,针对每个以信号发送的帧,可以使用以下格式来以信号发送主入口点和出口点和解码顺序:
start_BO SBO end_BO EBO decode_BO DBO[entry][exit]。
在上文中,SBO是文件格式顺序中的帧的开始字节偏移,通过关键字“start_BO”将其发送成开始字节偏移。类似地,EBO是帧的结束字节偏移并且通过关键字“end_BO”来发送。通过关键字“decode_BO”发送的DBO,是应当对按照文件格式顺序插入该帧,以便将这些帧布置成解码顺序的字节偏移。如果该帧的开始是入口点,则包括可选的关键字“entry”,类似地,如果该帧的结束是出口点,则包括可选的关键字“exit”。
举例而言,考虑图2中所示的帧依赖结构,但替代地,假定文件格式顺序是呈现顺序而不是解码顺序(即,该文件格式顺序是如图6(b)和图10(b)中所示)。则上面针对该示例所描述的信令可以是:
start_BO0end_BO13,244decode_BO0entry exit
start_BO16,583end_BO22,033decode_BO13,244exit
start_BO25,013end_BO31,043decode_BO22,003entry exit
start_BO34,980end_BO41,993decode_BO31,043exit
start_BO44,840end_BO49,204decode_BO41,993entry exit
上面的第一入口对应于帧1,并且以信号说明帧1在字节偏移0处开始并且在字节偏移13,244处结束,在解码顺序中,帧1应当处于如decode_BO=start_BO=0所指示的位置,帧1的开始是入口点,帧1的结束是出口点。上面的第二入口对应于帧5,并且以信号说明帧5在字节偏移16,583处开始并且在字节偏移22,033处结束,在解码顺序中,帧5应当插入到字节偏移13,244处(即,正好在帧2之前),帧5的结束是出口点。上面的第三入口对应于帧9,并且以信号说明帧9在字节偏移25,013处开始并且在字节偏移31,043处结束,在解码顺序下,帧9应当插入到字节偏移22,003处(即,正好在帧6之前),帧9的开始是入口点,帧9的结束是出口点。接下来的两个入口以信号说明针对帧13和17的类似信息。
注意,在上面的示例中,每个重叠部分只是一个帧,即,帧1、9和17分别是一个重叠部分。例如,可以在帧9的结束处的出口点从第一表示进行转换,因此第一表示被下载,直到字节偏移31,043,即,客户端下载直到呈现顺序文件格式中的帧9的结束。可以在帧9的开始处进行到第二表示的相应转换,因此第二表示在字节偏移25,013处开始下载,即,客户端下载在帧9的开始处开始。注意,重叠部分是帧9,帧9是针对这两个表示都被下载的唯一一个帧,即,针对这两个表示,从包括帧9的重叠部分下载2*6,030=12,060个字节。
注意,在上面的先前示例中,对于该相同的帧依赖结构但解码顺序与文件格式顺序一样,从针对这两个表示的重叠部分下载包括帧6、7、8和9以及总共18,020个字节的重叠部分。因此,在该示例中,作为文件格式顺序的呈现顺序具有较小的重叠部分,其对于AHS客户端是有益的,这是由于其只需下载更少的内容来实现从一个表示到另一个表示的转换。因此,由于被下载以实现转换的数据量更小,所以较少的网络容量可以用于转换,并且AHS客户端被迫停顿或重新缓存的机率也更小。
此外,上面的方法向AHS客户端提供了足够的信息,以便在将这些帧提供给媒体播放器之前,将这些帧重新排序成解码顺序,AHS客户端还可以向媒体播放器提供关于重叠部分的指示。此外,与具有相同的帧依赖结构的先前示例但是解码顺序与文件格式顺序一样(其中,帧6、7和8也被下载但不被回放)相比,使用这种文件格式排序,AHS客户端(其想要开始回放在例如帧9处开始的来自一个表示的内容),没有下载不回放的任何帧。
存在以上的多种变型。例如,关键字没有被包括在入口点和出口点字节偏移和解码的字节偏移的描述中,替代地,每个字段的含义是由其顺序或者某种其它指示符来确定的。再举另一个例子,将一个表示划分成片段或分段,可以通过主入口点和出口点的序列来规定,即,在每个入口点处开始新分段,在每个出口点处结束一个分段。在上面的示例中,可能存在包括帧1的片段或分段以及其具有入口点和出口点二者的指示,包括帧2、3、4和5的片段或分段以及其具有出口点的指示,包括帧6、7和8的片段或分段以及其既不包含入口点也不包含出口点的指示,包括帧9的片段或分段以及其具有入口点和出口点二者的指示,包括帧10、11、12和13的片段或分段以及其具有出口点的指示,包括帧14、15和16的片段或分段以及其既不包含入口点也不包含出口点的指示,以及包括帧17的片段或分段。在该示例中,出口点位于该分段的结束处,入口点位于这些分段的开始处。此外,每个出口帧应当移动到正好位于前一个出口帧之后以获得解码顺序。因此,AHS客户端(其以信号发送以上信息以及每个出口点帧的开始字节偏移)可以自动地将这些帧重新排序成解码顺序,并以解码顺序将这些帧提供给媒体播放器。
上面的方法存在多种变型。例如,对于内容的一些部分来说,文件格式顺序可以是解码顺序,而对于内容的其它部分来说,文件格式顺序可以是呈现顺序。举例而言,再次参见图2,文件格式顺序可以是1、5、2、3、4、6、7、8、9、13、10、11、12、13、14、15、16、17。针对该顺序的模式是:该顺序是解码顺序,直到B-帧的最后序列为止,所述B-帧依赖于开始下一个开放GOP的I-帧,随后,取代在该序列的B-帧之前的开放GOP I-帧,在文件格式顺序中,B-帧位于开放GOP I-帧之前。在该变型中,可以将该开放GOP I-帧以信号发送成重叠部分,还以信号发送开放GOP I-帧的开始和结束的字节偏移、以及其中在应当将开放GOP I-帧设置成文件格式顺序以获得解码顺序的字节偏移。使用这种变型,其它出口点(它们可以以信号发送,或者可以不以信号发送)以解码顺序处于文件格式顺序中。
用于对分段映射的URL进行结构化和推导的方法
客户端可能需要以某种方式获得分段映射。用于获得或访问分段映射的方法的一些优选属性不需要对AHS客户端的现有部署和/或编码到AHS格式的内容进行改变。例如,期望以向后兼容的方式,提供用于提供访问分段映射的方法,使得没有正在使用分段映射的AHS客户端、和/或完全地没有意识到它们正在下载并播放的媒体内容的分段映射的可用性的存在的AHS客户端不受影响(当提供分段映射时)。此外,当分段映射可用于该AHS媒体内容时,期望用于对媒体AHS媒体内容进行编码、格式化和提供的方法,其中所述媒体AHS媒体内容不提供不需要被改变的分段映射。
对于诸如ALS之类的AHS流系统,包含媒体数据的每个分段是可获得的,作为具有相关联的URL的文件。可以使用分段的URL(例如,使用HTTP1.1)来访问和下载该分段或者该分段的一部分。
与分段相关联的每个分段映射也可以是可获得的,作为具有相关联的URL的文件,其中,可以根据其相关联的分段的URL,自动地生成分段映射URL。例如,针对分段映射的URL可以是附带“.segment_map”的相关联分段的URL。
将分段映射的跨度定义成该分段映射提供的信息所涉及的分段的一部分或者一些分段。在上面所描述的实施例中,分段映射的跨度是其相关联的整个分段。在其它实施例中,分段映射的跨度与分段之间的其它关系是有可能的。
例如,可以使一个分段映射可用于一组分段,例如,分段映射的跨度可以是多个连续分段,在这种情况下,可以通过该连续分段中的第一分段的URL,通过例如向该URL附加“.segment_map”来导出针对该分段映射的URL。
如另一个替代方案,分段映射可以跨度一个分段的一些部分,在该情况下,可以通过将“segment_map_X”添加到相关联的分段的URL来导出用于这些分段映射的URL,其中“X”可以是其跨度是该分段的一些部分的、那些分段映射的序列号,例如,如果有10个分段映射的跨度是一个分段的一些部分,那么可以根据该分段的URL,通过分别附加“.segment_map.0”、“.segment_map.1”、…、“.segment_map.9”,来导出针对这些分段映射的URL。
前面的替代方案的改进是提供跨度一个分段的不同时间间隔的分段映射。例如,可以存在多个分段映射,其中每一个分段映射跨度一个分段(其包含一小时的媒体数据)的一分钟的呈现时间。在该情况下,可以根据针对该分段的URL(通过附加“.segment_map.T”)来导出针对分段切换的URL,其中,“T”是0与59之间的整数值,其粗略地指示了在分段映射所跨度的一分钟间隔的分段内的起始分钟。例如,如果分段URL是“the_movie_of_the_year”,那么在6分钟开始进入该分段、跨度该分段的一分钟时间间隔的分段映射可以具有URL“the_movie_of_the_year.segment_map.6”。
在这种和其它替代方案中,分段映射可以跨度一个分段或者一些分段的重叠部分。例如,每一个分段映射可以跨度这些分段的一分钟,使得存在跨度起点每30秒进入该分段的分段映射,因此在该示例中,每个分段映射的跨度与两个其它分段映射的跨度重叠30秒。
如第二个示例,可以存在跨度分段的不同持续时间的分段映射,例如,一些分段映射跨度1分钟时间间隔,其它分段映射跨度2分钟时间间隔,还有其它分段映射跨度4分钟时间间隔。包括分段映射的信息细节可以依据其跨度而有所不同。例如,跨度更长的时间间隔或者持续时间的分段映射可以包含:与跨度较短的时间间隔或者持续时间的分段映射相比,相距更远的入口点和出口点。
在这些替代方案中,分段映射还可以包含关于它们所涉及的分段或者分段部分的信息。
没有意识到分段映射的存在、或者没有被增强以利用分段映射的可用性的AHS客户端,没有受到如上所述的分段映射的可用性的影响。
除了上面就生成和进行可用的分段映射方面所描述的那些,在没有对AHS传送系统做出额外改变的情况下,增强型AHS客户端可以利用分段映射的可用性。增强型AHS客户端可以使用分段的URL来自动地生成针对分段映射的URL(例如,通过将“.segment_map”附加到该分段的URL),随后针对该分段映射的URL进行HTTP1.1请求,以下载和访问该分段映射。
用于针对上面所描述的URL生成的替代方法可以用于与表示的分段有关的其它文件。例如,Luby A5教示了用于根据分段来生成和提供FEC修复数据的方法,并且建议将“.fec_repair”附加到从其生成FEC修复数据的分段的URL中。
用于独立于分段文件来构建分段映射文件的方法
本申请描述了使用两层结构来提供分段映射文件的另一种不同方法。在第一层,对分段映射文件进行组织,使得每一个分段映射文件包含大约覆盖指定时间间隔的呈现时间的映射信息(本申请称为分段映射文件的呈现时间跨度),其中隐式地或者显式地将所指定的呈现时间跨度嵌入到与每一个分段映射文件相关联的URL中,其中,与分段映射文件相关联的呈现时间跨度的可用的指定序列遵循规则模式,该规则模式可以被隐式地推断出或者通过遵循一个简单规则来生成呈现时间跨度。例如,对于ALS系统,可以根据ALS以信号发送针对这些表示的分段的持续时间,来推断呈现时间跨度和起始呈现时间偏移。例如,ALS以信号发送针对一个表示的分段的持续时间是T秒,那么针对这些分段映射的起始呈现时间偏移的模式可以是0、T、2*T、3*T、4*T、5*T等,每个分段映射所覆盖的相应时间跨度持续时间可以是2*T秒。
为了使用MPEG DASH系统中的这些方法,可以对MPEG DASH规范进行增补,使得媒体呈现描述(其还称为“MPD”)通过URL模板构建规则,以信号发送针对分段映射的URL,其中URL分段映射构建规则规定了用于分段映射的URL模式,该URL模式包括用于分段映射的起始呈现时间偏移模式和时间跨度持续时间。在该增补的MPD中用于描述分段映射的URL模式的URL模板构建规则,可以类似于在MPEG DASH规范中用于规定分段URL的模式的MPD URL模板构建规则。在该情况下,分段映射可以是不属于分段文件的一部分的一些单独文件,并且,可以在分段映射中携带针对分段的URL,而不是使用针对分段的URL构建规则来显式地或者隐式地在MPD中以信号发送针对分段的URL,如下面更加详细描述的。
在第二层,每一个分段映射文件包含关于呈现时间跨度中的分段、或者分段的一部分、或者多个分段的详细映射信息,其中呈现时间跨度嵌入在与该分段映射文件相关联的URL中。通过这种方式,可以使分段映射文件的结构独立于它们包含的映射信息有关的相关联分段文件的结构。
客户端(其包括AHS客户端)可以使用如下所述的两层结构。给定呈现时间PT,客户端可以确定分段映射文件的URL,使得PT位于该分段映射文件的呈现时间跨度之内,使用该URL来访问该分段映射文件,随后使用该分段映射文件中的详细映射信息来确定哪些分段包含具有呈现时间位于PT前后不久的媒体数据、以及诸如位于PT前后不久的入口点和出口点之类的有关映射信息。响应于针对在特定呈现时间开始播放内容的请求、或者要在内容中搜寻到特定呈现时间的请求、或者从内容的一个表示切换到另一个表示的请求、或者由于多种其它用途,客户端可以使用该信息来决定要从本地存储器存取和/或通过网络下载哪些分段。
可能的分段映射URL格式是“content_ID.representation_ID.SPT_X.Dur_Y.segment_map”,其中“content_ID”标识了内容,“representation_ID”标识了该内容的表示,“SPT_X”标识了该跨度的起始呈现时间是X,“Dur_Y”标识了该跨度的结束呈现时间是X+Y。应当注意,不需要在分段文件映射中包含的映射信息的实际呈现时间跨度就是规定的呈现时间跨度,例如,其可以是分段映射文件中的映射信息覆盖从X-d到X+Y+e的呈现时间的情形,其中d和e是呈现时间的较小正增量。替代地,d或e可以是负增量而不是正增量。
可以使收集的有关分段映射文件作为单个实体而成为可用的,例如,可以将具有相同content_ID和representation_ID的分段映射文件收集在一起并且提供成例如具有“content_ID.representation_ID.segment_map.zip”形式的URL的单个文件(如果与相同content_ID和representation_ID相关联的所有分段映射文件都被包括在单个文件中的话),或者再举个例子,提供成具有“content_ID.representation_ID.SPT_X.Dur_Y.segment_map.zip”形式的URL的单个文件(如果具有时间间隔X到X+Y中的呈现时间跨度的所有分段映射文件都被包括在单个文件中的话)。可以使用诸如公知的“文件压缩”过程之类的标准过程,将分段映射文件捆绑成单个文件。
另一种可能的分段映射URL格式是“content_ID.representation_ID.SPT_X.segment_map”,即,起始呈现时间而不是持续时间被包括在URL中,在该情况下,对于每一个分段映射来说,持续时间可以是相同的或者其可以在不同分段映射之间有所不同。
其它替代的分段映射URL格式包括:作为起始呈现时间或者持续时间的补充或替代,在URL内以信号发送结束呈现时间。
分段映射文件可以跨度分段的一些部分和多个分段,分段映射文件的呈现时间跨度可以独立于它们提供的映射信息有关的分段的呈现时间跨度。因此,分段映射文件可以显式地或者隐式地包含:它们包含的映射信息有关的分段或者分段的一些部分的URL。更一般而言,分段映射文件可以包含用于引用分段的一部分的URL和规定的字节范围。例如,假定存在具有呈现时间跨度从呈现时间10秒到30秒的分段映射文件,存在具有URLA_ID的第一分段,该第一分段包含跨度呈现时间5到15秒的媒体数据,其中在10秒开始的媒体数据与第一分段具有A_ID.BO的字节偏移,存在并且具有URL B_ID的第二分段以及具有URL C_ID的第三分段,该第二分段包含跨度呈现时间15到20秒的媒体数据,该第三分段包含跨度呈现时间20到40秒的媒体数据,其中在30秒结束的媒体数据与第三分段具有C_ID.BO的字节偏移。那么,分段映射文件可以包含:针对第一分段的URLA_ID连同开始字节偏移A_ID.BO以及相关联的映射信息,针对第二分段的URL B_ID和相关联的映射信息、以及针对第三分段的URL C_ID与结束字节偏移C_ID.BO和相关联的映射信息。分段映射文件还可以包含其它信息,例如,每个分段的大小和这些分段中的每个分段的总呈现时间跨度。其它信息也可以被包含在分段映射文件中,例如,在某个呈现时间插入广告的指示、关于在分段映射文件所引用的分段中的每个分段中所携带的媒体的类型和格式的指示等。
例如,一种用于分段映射指示其包含的信息关于什么分段文件的可能方法如下所述。
分段的分段映射指引方法
使M是分段映射所指引的分段文件(部分或者全部)的数量。对于i =1,…,M,使URL(i)是在该分段映射中所指引的以呈现时间的顺序列出的第i个分段文件的URL,使BS(i)和BE(i)分别是该分段映射包含第i个分段文件的信息所涉及的字节范围的开始字节偏移和结束字节偏移。那么,用于指引这些分段的分段映射格式可以如表5中所示。
表5
Figure BDA0000487906460000571
上面规定了“虚拟分段”,该“虚拟分段”是具有URL(i)的分段的字节范围BS(i)到BE(i)的串联,其中i=1,…,M。关于该“虚拟分段”的分段映射中的点的详细列表,例如可以具有第四分段映射方法中所描述的格式,其中针对该虚拟分段来计算所列出的点的字节偏移。因此,例如,有可能的是,分段映射中的两个连续点之间的虚拟分段数据的部分,部分地位于一个分段之中,部分地位于另一个分段之中。可以从全部i值或者一部分i值的范围中省略BS(i)和BE(i)中的一个或两个,例如,使用-1作为丢失值的指示符。例如,[-1,BE(i)]指示URL(i)所指引的从分段的开始直到字节偏移BE(i)的分段,[BS(i),-1]指示URL(i)所指引的从字节偏移BS(i)直到分段的结束的分段,[-1,-1]指示URL(i)所指引的整个分段。
可以使分段映射文件可用于固定的和可预测的呈现时间跨度。例如,可以存在呈现时间跨度规则,其指示存在着每一个可能的起始呈现时间跨度等于对10秒取模为零的分段映射文件,即,分段映射文件的起始呈现时间是0秒、10秒、20秒、30秒、40秒、50秒等,直到内容的结束为止(如果存在结束的话),每一个分段映射文件的呈现时间跨度持续时间是20秒。在该情况下,对于能被标识成mouse_16543的内容来说,对于可以标识成rep_38934的该内容的一个表示,分段映射URL序列可以是:
mouse_16543.rep_38934.SPT_0.DUR_20.seg_map,
mouse_16543.rep_38934.SPT_10.DUR_20.seg_map,
mouse_16543.rep_38934.SPT_30.DUR_20.seg_map,
mouse_16543.rep_38934.SPT_40.DUR_20.seg_map,
mouse_16543.rep_38934.SPT_50.DUR_20.seg_map等等。在该示例中,给定用于呈现时间跨度的规则,可以根据内容标识符mouse_16543和表示标识符rep_38934,来确定分段映射文件的URL,seg_map将该文件标识成分段映射。
如另一个替代方案,分段映射文件可以包含针对不止一个表示的映射信息。例如,分段映射文件可以包含关于内容的所有表示的映射信息。在该情况下,替代的可能分段映射URL格式是“content_ID.SPT_X.Dur_Y.seg_map”,其中“content_ID”标识了该内容,“SPT_X”标识该跨度的起始呈现时间是X,“Dur_Y”标识了该跨度的结束呈现时间是X+Y,“seg_map”将其标识为分段映射。应当注意,不需要在分段文件映射中包含的映射信息的实际呈现时间跨度正好是所规定的呈现时间跨度,例如,其可以是分段映射文件中的每一个表示的映射信息覆盖从X-d到X+Y+e的呈现时间的情形,其中d和e是呈现时间的较小正增量。在该情况下,分段映射文件可以指引针对内容的多个表示的分段、分段的一些部分或者多个分段。
在上面的实施例中,可以根据用于该内容和该表示的某个基本URL,来导出分段映射文件URL,分段映射文件中的映射信息可以覆盖呈现时间的某个固定(粗略地,允许四舍五入)的持续时间,例如,以呈现时间的起始秒和结束秒来表示的呈现时间跨度、或者呈现时间的起始秒和持续时间秒、或者呈现时间的起始“滴答”和持续时间“滴答”。有时使用单位“滴答”来表示呈现时间,其中“每一秒的滴答数”是与表示相关联的时间的单位。每个表示的“滴答单位”是分段映射文件中可以包括的其它信息的示例。例如,每秒30,000个滴答指示:每个滴答是一秒的1/30,000部分。注意,在上面的每一种情况中,使用自从呈现的开始以来的、或相对于某种其它固定基准时间的时间的累计测量值,来指示呈现时间跨度。
使用分段时间轴文件的方法
本节中所描述的方法是在之前方法的基础上建立的,但提供对MPEGDASH规范改变较少的整体结构并且可以提供整体的优选解决方案。
可以引入一种新类型的文件(下文称为“分段时间轴”文件),其具有上面所描述的分段映射的特征中的一些。可以使用基于呈现时间段的URL构建规则来生成分段时间轴文件的URL,其类似于上面针对分段映射所描述的,例如可能的格式是“content_ID.representation_ID.Dur_X.EPT_Y.segment_timeline”,其中“content_ID”和“representation_ID”分别标识该内容和该内容的表示,“X”是该分段时间轴所覆盖的呈现时间跨度的大致持续时间,“Y”是该呈现时间跨度的大致结束呈现时间,“segment_timeline”将该文件标识成分段时间轴文件。可以在MPD中以信号发送分段时间轴文件的存在和用于分段时间轴文件的URL构建规则,例如,该构建规则可以规定针对所有Y值的文件,Y值是10秒的倍数截至内容持续时间,并且X=30,其中X和Y的值以秒为单位。
分段的MPEG DASH格式和用于分段的分段映射,可以用于具有ISO文件格式的分段,即,将分段映射(Sidx)附加到该分段的前面,并且覆盖该分段中携带的数据的呈现时间段。对于MPEG2TS文件格式来说,分段映射(Sidx)位于与具有MPEG DASH规范中所述格式的分段相独立的文件中,其中每一分段具有一个分段映射,该分段映射具有根据分段URL导出的URL。应当推荐的是,可以使用MPEG DASH规范中的现有URL构建规则,来发送用于分段和分段映射的URL(如果分段和分段映射位于不同文件中的话),其中推荐连续的分段(或者分段映射,如果作为单独文件被携带的话)具有顺序索引的URL,即,用于分段的URL可以遵循类似于“content_ID.representation_ID.Index_X.segment”的模式,其中,对于按照呈现时间排序的分段来说,X的值的序列是例如0、1、2、3、4等,即,连续整数。因此,用于分段的URL按照呈现时间来指示它们的分段序列,但在一个表示中,序列中的不同分段的持续时间可以变化,并且在不同的表示之间,还可以具有不同的持续时间并且变化。因此,虽然分配给分段映射URL的索引可以关于它们的呈现时间跨度排序是顺序的,但是分配给分段映射URL的索引不依赖于它们的呈现时间跨度持续时间。举一个替代的例子,针对ALS系统,可以将URL如现有ALS中一样以信号发送,随后,根据简单的规则,可以从与它们相关联的分段的URL推导出针对相应分段映射的URL,例如,针对分段映射的URL可以是针对相关联分段的URL附加上“.seg_map”。
将与分段时间轴文件有关的一组分段,定义成覆盖与该分段时间轴文件所覆盖的呈现跨度相交的呈现时间跨度的一组分段。例如,如果用于分段时间轴文件的URL是“content_ID.representation_ID.Dur_15.EPT_60.segment_timeline”,那么其覆盖15秒的呈现时间跨度持续时间(其在呈现时间45开始,在呈现时间60结束),因此,具有45到60秒时间间隔中的起始呈现时间或者结束呈现时间的所有分段与该分段时间轴文件有关。可以做出与分段时间轴文件有关的分段映射的类似定义,将该定义扩展为包括分段或分段映射的、通过呈现时间子范围和字节子范围来定义的一部分。
分段时间轴文件可以包含与该分段时间轴文件有关的分段(和分段映射,如果作为单独文件被携带的话)的URL和起始呈现时间的列表。替代地,分段时间轴文件可以包含:根据其来构建分段URL的信息,例如,分段的索引的范围,其中例如这些索引来自针对MPD中的分段的URL分段构建规则所隐式规定的索引。
MPD还可以规定最大分段呈现时间跨度TSmax,还可以规定时间尺度,其中该时间尺度可以用于表示分段时间轴的URL中的呈现时间。最大分段呈现时间跨度TSmax可以被定义为使得任何分段的起始呈现时间与该分段的前一分段的起始呈现时间之间的差至多是TSmax。例如,如果TSmax=2秒,那么分段i的起始呈现时间与按照呈现时间顺序正好在分段i的前一个的分段i-1的起始呈现时间之间的差至多是2秒。
替代地,分段时间轴文件还可以包含分段映射、或者分段的呈现结束时间或者其它相关信息。
分段时间轴文件指示还可以用于ALS系统,其中,从其推导出它们的URL的呈现时间跨度是例如按照具有固定持续时间的固定结束呈现时间(例如,每10秒的结束呈现时间,总共具有20秒的持续时间),或者可以使用固定的规则,根据ALS元数据所广告的分段的持续时间来导出结束呈现时间和持续时间,例如,如果所广告的分段的持续时间是T秒,那么分段时间轴文件可以每T秒结束并且每个分段时间轴文件具有2*T的持续时间。
用于使用分段映射文件和分段时间轴文件的客户端方法
分段映射文件的一个益处是:在没有这些分段映射文件时,客户端不能有效地确定分段的分段映射结构(例如,有效的入口点和出口点),这是因为在这些分段自身中没有直接提供该信息。虽然可以根据这些分段来导出该分段映射信息,但通常需要由客户端下载这些分段来推导出该信息,这可能不是有效的(这是因为需要下载媒体数据自身来确定其结构),确定分段映射信息的主要目的之一是确定要下载这些分段中的哪些部分。此外,其中可以推导出分段映射信息的客户端架构通常与该客户端的表示选择方法部分相独立,即,客户端可以推导出分段映射信息的位置,深处于该客户端的靠近播放媒体位置的媒体处理部分,而客户端的客户端选择表示部分靠近该媒体通过网络进入该客户端的位置,并且通常在客户端的两个部分之间不存在好接口。此外,可能对这些分段进行加密,其进一步恶化这些问题,因为随后,在可以推导出映射信息之前,需要对这些分段进行解密,并且这通常处于客户端的与表示选择逻辑不进行通信的隔离部分中。
此外,分段文件包含媒体数据的呈现时间的持续时间可能在ALS中没有被准确地以信号发送,例如,如果将每个分段以信号发送成10秒持续时间,实际上可以是位于9.5秒与10.5秒之间的任何位置,由于四舍五入到最近的秒。由于对于ALS/HLS标准来说,只以信号发送分段持续时间,而不以信号发送累计呈现时间,所以客户端可以对第200个连续分段的分段起始呈现时间进行估计,所述第200个连续分段具有多达100秒的差错,即,在200个分段上的累计估计差错达到200*0.5秒。此外,有时独立于每个ALS表示(其中,每个表示有不同的持续时间),执行内容编码并且分段成分段文件。由于在ALS中,不同的表示的分段的持续时间可以是不同的,因此当在一个表示处已经停留了较长的持续时间之后,尝试从一个表示切换到另一个表示时,这特别有问题,因为其在所切换到的表示中难以确定具有正确呈现时间的分段,并且确定正确分段可能必须下载一些试验分段,并且必须对它们进行深入检查以确定它们的呈现时间。本领域普通技术人员应当认识到,这些问题可能在以下方面造成巨大低效:下载不被播放的数据;造成诸如停顿或重新缓冲或停顿之类的用户体验问题(由于媒体缓冲区中的可播放媒体已完全播放完,同时下载分段以确定哪个分段包含应当要播放的媒体的下一部分);不提供从一个表示到另一个表示的无缝切换(由于不具有关于入口点和出口点的信息),等等。甚至对于不尝试在表示之间进行切换的客户端而言,也可能出现这些问题中的至少一些问题及相关问题。
使用上面所描述的实施例,客户端可以使用隐含的URL构建和访问规则来访问分段映射,例如,客户端根据所获得的内容的元数据来生成“content_ID”和“representation_ID”,随后访问关于什么是分段映射的可能起始呈现时间间隔的呈现跨度规则,例如,它们遵循模式0、10、20、30、40、…、和分段映射的可能持续时间间隔(例如,它们始终是20)。由此,客户端可以形成用于分段映射的URL,并对该分段映射进行请求,从而当实现本申请所公开的这些切换方法和快速启动方法及有关方法时,获得可以用于确定要下载哪些分段和要下载分段的哪些部分的映射信息。如果分段映射文件呈现时间跨度是类似的,那么客户端可以针对不同的表示,请求分段映射文件的相同呈现时间跨度,以决定在某个时间跨度持续时间期间,如何从一个表示切换到另一个表示。但是,即使分段映射文件的呈现时间跨度对于不同表示而言是不同的,基本上仍然提供了相同的优点。替代地,如果分段映射文件包含关于不止一个表示的信息,那么客户端可以从相同的分段映射文件访问针对所有表示的相同呈现时间跨度映射和有关信息。此外,分段映射呈现时间跨度可以是重叠的(例如,上面的示例),使得客户端从未达到边界条件,例如,如果客户端已经确定:应当按照呈现时间中的约20秒发生切换,如果分段映射文件时间跨度是0-10秒,接下来的10-20秒,接下来的20-30秒等,那么客户端可能必须下载跨度10-20秒的分段映射文件、以及跨度20-30秒的分段映射文件。另一方面,如果还存在每10秒开始但分别跨度20秒的分段映射文件,那么客户端可以下载例如跨度10-30秒的分段映射文件,并且与具有非重叠时间跨度的分段映射文件相比,在该示例中,针对具有重叠时间跨度的分段映射文件以潜在地两倍的代价,确保该分段映射文件包含20秒目标呈现时间前后的映射信息。通常,由于与媒体内容数据自身相比,映射信息通常较小,所以通常优选的是使用重叠的呈现时间跨度。此外,这种重叠可以更小,例如,连续的分段映射文件覆盖了以10秒间隔开始并且每个间隔的跨度是11秒的持续时间,在该情况下,连续分段映射之间的重叠是1秒。
这些实施例可以用于通过现有ALS客户端能够在没有负面影响的情况下进行无修改地操作的方式,来增强现有ALS内容生成。可以将如上面所描述的具体实现的其它处理添加到ALS系统,以便如上所述地生成具有相关联URL的分段映射文件,使这些分段映射文件在内容传送网络中可用(例如,使用HTTP1.1,基于它们的URL进行访问)。具有本申请所描述的方法和过程的增强型客户端可以针对表示的分段映射文件形成适当的URL,请求适当的分段映射文件,使用这些分段映射文件来引导他们的启动,并且使用切换选择方法来提供更佳的用户体验。这些增强型客户端方法可以通过简单方式来使用映射信息,例如,客户端可以在没有字节范围请求的情况下,基于HTTP来下载完整的分段文件,但是至少能够根据该分段映射文件来准确地确定要下载的具有正确呈现时间的正确分段,以便在用于切换的适当入口点和出口点的情况下进行切换。如果支持HTTP字节范围请求,则更多高级客户端可以更高效地使用分段映射文件中包含的映射信息来实现表示切换和快速启动(例如,当在表示之间进行切换时,或者当在内容中的规定的呈现时间处开始时,通过准确地选择要下载的ALS分段的那些部分)。
增强型AHS客户端可以在没有任何显式信令(这些信令说明这些分段映射可用于给定的内容)的情况下,尝试下载分段映射文件。对于不可获得其分段映射的内容,客户端下载请求将失败,例如,HTTP响应将返回诸如“HTTP错误404–未找到文件”响应,在这种情况下,增强型AHS客户端可以推断出:针对该内容的分段映射是不可获得的,并且退回到未增强的ALS客户端行为。
本申请所描述的系统和方法的增强是为了明确地指示:针对例如在MPEG DASH MPD元数据文件中的每个内容,针对各个具体内容的分段映射是否是可获得的。在这种情况下,增强型AHS客户端可以使用这点来判断分段映射是否是可获得的,因此例如在分段映射不可获得并且接收到返回的“未找到文件”响应时,避免对分段映射进行HTTP请求的额外开销。在该情况下,增强型AHS客户端可以立即使用未增强的ALS客户端方法和逻辑(如果分段映射不可获得的话)。此外,如果分段映射被指示为可获得的,但无论因为什么原因,并不是所有这些分段映射都是可获得的(例如,由于在整个内容传送网络的一部分中的某些失败),那么如果由于某些请求而返回“未找到文件”响应,那么增强型AHS客户端方法可以在知道该做的事情方面更加稳健,即,针对其它表示和持续时间的其它分段映射可能仍然是可获得的,增强型AHS客户端可以仍然继续请求可获得的分段映射,即使一些分段映射是不可获得的。
另一种可能的增强是生成分段结构,以便与底层帧依赖结构和文件格式排序更好地对齐,即,在精心选择的入口点开始分段,在精心选择的出口点结束分段等。例如,可以对分段进行构建,使得它们从一个主入口点跨度到下一个连续的主入口点。分段映射文件可以仍然具有规则模式的时间跨度,这些时间跨度独立于分段文件的时间跨度。这为增强型AHS客户端下载分段提供了一种简单算法,该算法可以避免大量地或全部使用HTTP1.1字节范围请求,但仍然从能够从表示中下载位于在入口点开始并且在出口点结束的部分中的内容的获益。这可以是有利的,因为HTTP字节范围请求可能没有得到普遍支持。
分段映射还可以包含其它有关的信息。例如,分段映射可以指示特定表示仅仅是音频,还是音频和视频的混合,或者仅仅是视频。再举另一个例子,分段映射可以包含用于FEC修复分段的URL、以及用于FEC修复分段的分段映射信息(例如,具有Luby A4所公开的格式或者具有类似替代格式的分段映射信息)。针对分段文件,分段映射可以包含用于多个或部分的FEC修复分段的URL和/或相关联的映射信息,其具有与分段映射文件结构相独立的结构,AHS客户端可以基于这些分段映射的URL结构来访问这些分段映射,随后使用分段映射中包含的信息来确定要访问哪些FEC修复分段并且确定FEC修复分段的结构。
对于上面所描述的使用分段时间轴文件的系统来说,AHS客户端可以如下操作。根据MPD,AHS客户端可以构建针对分段时间轴文件的URL的列表,该列表还指示它们的呈现时间跨度。AHS客户端还可以根据URL构建规则或者根据先前所描述的其它方式,来构建针对分段的URL的列表。AHS客户端可以基于当前的实际时间及其与正在观看的内容的呈现时间轴的关系,来决定分段时间轴文件何时是可获得的,以及何时对其进行下载。根据分段时间轴文件,AHS客户端可以确定要下载的、包含相关分段数据和分段映射信息的分段和分段映射。对于分段时间轴文件中所列出的最后分段,AHS客户端可以确定其何时是可获得的,以便从分段时间轴文件中的其列出的起始呈现时间以及从任何分段的最长呈现时间跨度的值TSmax进行下载。因此,从内容可用时起直到AHS客户端对该内容进行下载和观看时为止的整体端到端延迟,没有受到添加分段时间轴文件的影响,而当从一个表示切换到另一个表示时、或者当从内容的中间部分的呈现时间来开始该内容时,分段时间轴文件向AHS客户端提供关于要下载哪些分段和分段映射的有价值的线索。因此,有很多优势来提供分段时间轴文件,以使AHS客户端的性能更佳。
图15示出了在DASH系统中以信号发送分段时间轴文件的示例。图15的左侧示出了可能可用于内容的媒体呈现描述(MPD)的一些有关部分,其中在该示例中,在MPD中描述了两个表示:第一表示,其中视频是可按照大约500Kbps和640x480分辨率进行编码而获得的;第二表示,其中视频是按照大约250Kbps和同样640x480分辨率进行编码而获得的,这两个表示都在100秒开始进入该内容的时段内是可获得的。针对该示例中的所有内容的基本URL是http://www.example.com/。
如图15中所示,用于第一表示的分段时间轴文件的时间尺度是每秒1个滴答,用于这些分段时间轴文件的URL模板模式是./ahs-5-DUR4.EPT$2*Tind$.time,那么完整URL是基本URL和该模板所定义的URL部分的串联。这里,DUR4指示分段时间轴所覆盖的呈现时间的跨度是4个滴答、或者相当于4秒(由于时间尺度=1),EPT$2*Tind$指示该跨度的结束呈现时间是2*Tind个滴答、或者相当于2*Tind秒(由于时间尺度=1),其中Tind指示该分段时间轴文件的索引。因此,针对第一分段时间轴文件的完整URL(其中Tind=1)是http://www.example.com/ahs-5-DUR4.EPT2.time,针对第二分段时间轴文件的完整URL(其中Tind=2)是http://www.example.com/ahs-5-DUR4.EPT4.time,等等。这指示:所有分段时间轴文件覆盖4秒的跨度,第一分段时间轴文件的跨度在呈现时间2秒处结束(因此,跨度的开头两秒实际不存在),第二分段时间轴的跨度在呈现时间4秒处结束,等等。
如图15中所示,用于第一表示的分段文件的时间尺度是每秒30,000个滴答,用于这些分段文件的URL模板模式是./ahs-5-$Sind$.3gs,那么完整URL是基本URL和该模板所定义的URL部分的串联。这里,Sind指示该分段文件的索引。因此,用于第一分段文件的完整URL(其中Sind=1)是http://www.example.com/ahs-5-1.3gs,用于第二分段时间轴文件的完整URL(其中Sind=2)是http://www.example.com/ahs-5-2.3gs,等等。
图15的中间部分所示出的分段时间轴文件携带用于分段文件中的每一个的Sind(所述分段文件具有该分段时间轴文件所覆盖的呈现时间跨度内的起始呈现时间),还携带在该分段文件中携带的媒体的相应SPT(起始呈现时间),其中SPT是以分段时间尺度的滴答为单位(即,每秒30,000个滴答)。例如,在第二分段时间轴文件(Tind=2)和第三分段时间轴文件(Tind=3)中携带关于具有Sind=5和SPT=79,079的第五分段的信息,这是由于79,079个滴答的SPT对应于79,079/30,000秒,或者大约2.64秒位于第二和第三分段时间轴文件两者的时间跨度内。在一些实施例中,在分段时间轴文件中还携带其它数据,例如,用于分段的分段映射,等等。
在图15的右侧中所示的分段文件携带在所示SPT处开始的媒体数据,并且示出了针对这些分段文件中的每一个的URL。在图15中没有指示在这些分段文件中携带的大批数据,例如,媒体数据本身,以及有可能地,与该分段相关联的分段映射等。
在图15的左侧所示出的MPD,还示出了分段时间轴文件和与第二表示相关联的分段文件信息。在图15中没有示出针对该第二表示的相应分段时间轴文件和分段文件。如图15中所示,用于第二表示的分段时间轴文件的时间尺度是每秒1个滴答,用于这些分段时间轴文件的URL模板模式是./ahs-2-DUR7.EPT$3*Tind$.time,那么完整URL是基本URL和该模板所定义的URL部分的串联。这里,DUR7指示该分段时间轴所覆盖的呈现时间的跨度是7个滴答、或者相当于7秒(由于时间尺度=1),EPT$3*Tind$指示该跨度的结束呈现时间是3*Tind个滴答、或者相当于3*Tind秒(由于时间尺度=1),其中Tind指示该分段时间轴文件的索引。因此,针对第一分段时间轴文件的完整URL(其中Tind=1)是http://www.example.com/ahs-2-DUR7.EPT3.time,针对第二分段时间轴文件的完整URL(其中Tind=2)是http://www.example.com/ahs-2-DUR7.EPT6.time,等等。这指示:所有分段时间轴文件覆盖了7秒的跨度,第一分段时间轴文件的跨度在呈现时间3秒处结束(因此,该跨度的开头四秒实际不存在),第二分段时间轴的跨度在呈现时间6秒处结束等等。如图15中所示,针对第二表示的分段文件的时间尺度是每秒30,000个滴答,针对这些分段文件的URL模板模式是./ahs-2-$Sind$.3gs,那么完整URL是基本URL和该模板所定义的URL部分的串联。这里,Sind指示分段文件的索引。因此,针对第一分段文件的完整URL(其中Sind=1)是http://www.example.com/ahs-2-1.3gs,针对第二分段文件的完整URL(其中Sind=2)是http://www.example.com/ahs-2-2.3gs,等等。
对于图15中所示的示例,AHS客户端可以进行如下操作。AHS客户端可以使用MPD的URL来下载该MPD,使用该MPD中的信息来确定如上所述的分段时间轴文件和分段文件信息。假定AHS客户端想要在每秒30,000个滴答的分段时间尺度中的大约110,000个滴答的呈现时间处,切换到第一表示。由于110,000/30,000是大约3.67秒,因此AHS客户端可以选择形成分段时间轴URL,使得3.67秒位于该分段时间轴所覆盖的时间跨度的中间部分中的某处,例如,具有6秒EPT和4秒时间跨度持续时间的、具有Tind=3的分段时间轴文件可能是一个较好的选择,AHS客户端可以使用MPD中用于第一表示的分段时间轴URL模板构建规则,将该分段时间轴文件的URL确定为http://www.example.com/ahs-5-DUR4.EPT6.time。AHS客户端可以使用该URL来下载该分段时间轴文件,该分段时间轴文件包含以下数据元素:
Sind=5:SPT=79079
Sind=6:SPT=125125
Sind=7:SPT=145145
Sind=8:SPT=175175
由于79,079<110,000<125,125,AHS客户端可以确定其想要切换到第一表示的时刻位于具有Sind=5的分段文件内。基于MPD中的分段URL模板构建规则和分段索引Sind=5,AHS客户端可以将针对该分段的URL形成为http://www.example.com/ahs-5-5.3gs,AHS客户端可以使用该URL来下载该分段。
存在以上的多种变型。例如,在直播流服务中,AHS客户端可以基于当前的呈现时间,来确定文件何时是可获得的以便进行下载。例如,分段时间轴文件可能是可获得的,以便立即进行下载,或者在当前呈现时间到达分段时间轴文件的结束呈现时间(EPT)之后不久进行下载,AHS客户端可以基于分段时间轴URL模板构建规则和当前呈现时间,来确定哪些分段时间轴文件是可获得的以便进行下载。再举另一个例子,分段文件可能是可获得的,以便立即进行下载或者在当前呈现时间到达后续分段文件的SPT之后不久进行下载。因此,AHS客户端可以基于分段索引和在分段时间轴文件中携带的它们的相应SPT,来确定哪些分段文件是可获得的以便进行下载。例如,如果AHS客户端已下载了覆盖时间跨度多达EPT=Z的分段时间轴文件,该分段时间轴文件携带关于具有Sind=i的分段文件的信息,该分段文件携带具有最大呈现时间至多为Z的媒体数据,那么AHS客户端可以确定具有Sind=i的分段文件是可获得的以便进行下载或者将很快可获得以进行下载。举另一个例子,如果具有Sind=i和SPT=Y的分段文件是在分段时间轴文件中所列出的最后分段文件,那么AHS客户端可以确定:当可用的媒体呈现时间处于或超出呈现时间Y+TSmax时,具有Sind=i的分段文件是可获得的以便进行下载,其中,如上文所述,将TSmax定义为分段文件的时间跨度的上限。
AHS客户端可以如下确定哪些分段文件包含在特定呈现时间T内的媒体数据。AHS客户端可以确定具有包含T的呈现时间跨度的分段时间轴文件(即,具有呈现时间跨度在呈现时间Z-A处开始并在呈现时间Z处结束的持续时间A的分段时间轴文件)的URL,其中,Z-A≤T≤Z。这可以使用值T、使用分段时间轴URL模板构建规则计算Z和A来完成。注意,可以存在多个这样的分段时间轴文件,所述分段时间轴文件使得最靠近呈现时间跨度的中间的T可能是优选的。AHS客户端可以使用所构建的URL来下载分段时间轴文件。随后,基于分段时间轴文件中的信息,AHS客户端可以如下确定哪个分段文件包含T。令Y_1、Y_2、…、Y_k是关于分段时间轴文件包含的信息所涉及的k个分段文件的SPT,令i+1、i+2、…、i+k是这些分段文件的索引,其中值k还可以在分段时间轴映射中携带成一个参数,其中Z-A≤Y_1<Y_2<…<Y_k≤Z。如果Z-A≤T<Y_1,那么具有索引i的分段文件包含呈现时间T;如果对于2和k之间的某个j,Y_(j-1)≤T<Y_j,那么具有索引j-1的分段文件包含呈现时间T;如果Y_k≤T<Z,那么具有索引k的分段文件包含呈现时间T。
基于混合时间和基于索引的分段URL模板生成
可以如下对分段URL模板构建规则进行增补,以便包含基于时间的和基于索引的元素。令TimescaleSegURL是用于表示针对一个表示的所有分段的分段URL中所包含的基于时间的信息的、每秒滴答的数量的时间尺度,令Tind和Sind是正整数索引,令TM是正整数常量。那么,分段URL模板构建规则可以具有以下形式:
1、Content_ID.Representation_ID.PT$Tind$.SEG$Sind$
TM的值应当被设置为使得TM/TimescaleSegURL至少是TSmax,其中TSmax是该表示中的任何分段的最大呈现时间跨度。例如,如果TSmax=2.2秒,TimescaleSegURL=10,那么可以将TM设置为等于22,这是由于在该情况下,TM/TimescaleSegURL=22/10秒≥TSmax。这保证了:对于每个正整数Tind,使得TM*Tind最多是该表示的总呈现时间跨度,至少一个分段将在TM*(Tind-1)和TM*Tind之间的呈现时间的间隔中开始,其中,所有时间是相对于时间尺度TimescaleSegURL而言的。
对于每个分段,用于该分段的Tind和Sind的值根据上面的分段URL模板构建规则,完整地定义了用于该分段的URL。可以如下确定用于分段的Tind和Sind的值。用于分段的Tind的值满足TM*(Tind-1)≤SPT<TM*Tind,其中SPT是在TimescaleSegURL的时间尺度中的分段的起始呈现时间SPT。如上所述,对于每个正Tind,使得Tind*TM最多是该表示的总呈现时间跨度,存在至少一个分段被分配了值Tind。在分配了值Tind的这些分段之中,向具有最早SPT的分段分配值Sind=1,向具有下一个最早SPT的分段分配值Sind=2,向具有下一个最早SPT的分段分配值Sind=3,其中所使用的Sind的最大值可以针对Tind的不同值而变化,这是由于分段的数量对于Tind的不同值来说是变化的。
图16示出了在DASH系统中,基于混合时间和基于索引的分段URL模板生成的示例。图16的左侧示出了可用于内容的媒体呈现描述(MPD)的一些有关部分,其中在该示例中,在MPD中描述了两个表示:第一表示,其中视频是按照大约500Kbps和以640x480分辨率进行编码而可获得的;第二表示,其中视频是按照大约250Kbps和同样以640x480分辨率进行编码而可获得的,这两个表示均在100秒开始进入该内容的时段之内是可获得的。用于该示例中的所有内容的基本URL是http://www.example.com/。
如图16中所示,用于第一表示的分段URL的TimescaleSegURL是每秒10个滴答,TM的值是22个滴答,用于这些分段文件的URL模板模式是./ahs-5-$Tind$.$Sind$.3gs,那么其中用于该分段的完整URL是基本URL和该模板所定义的URL部分的串联。应当注意,由于TM=22,TimescaleSegURL=10,因此用于第一表示的任何分段的最大呈现时间跨度是22/10=2.2秒。TM*Tind指示具有Tind的给定值的分段的起始呈现时间的跨度是TimescaleSegURL的时间尺度中的TM*Tind个滴答,即,对于第一表示,Tind的每个值覆盖2.2秒的分段起始呈现时间。具有TM*(Tind-1)和Tind之间的最早起始呈现时间的分段具有Sind=1,具有TM*(Tind-1)和Tind之间的第二最早起始呈现时间的分段(如果存在这种分段的话)具有Sind=2等等。因此,用于具有Tind=1的第一分段文件的完整URL是http://www.example.com/ahs-5-1.1.3gs,用于具有Tind=1的第二分段文件的完整URL是http://www.example.com/ahs-5-1.2.3gs,而具有Tind=2的第一分段文件是http://www.example.com/ahs-5-2.1.3gs。
如图16中所示,用于第一表示的TimescaleSeg是每秒30,000个滴答,其指示针对一个分段中的媒体帧所表示的呈现时间是以每秒30,000个滴答为单位。因此,例如,如果一个分段中的帧的呈现时间是10,010,那么以秒的呈现时间是10,010/30,000,或者大约0.33秒。
图16的中间部分所示出的针对第一表示的分段文件示出了以TimescaleSeg为单位的分段的起始呈现时间SPT,还示出了用于该分段的URL。例如,第五分段具有SPT=79,079,其对应于79,079/30,000秒,或者大约2.636秒。由于该SPT位于以TimescaleSegURL=每秒10个滴答为单位的22和44个滴答之间(即,位于2.2和4.4秒之间),对于该分段,Tind=2。此外,因为这是具有最早SPT的分段(该SPT位于以TimescaleSegURL=每秒10个滴答为单位的22和44个滴答之间),所以对于该分段来说,Sind=1。因此,针对分段5的分段URL是http://www.example.com/ahs-5-2.1.3gs,如图16中所示。图16没有示出在分段文件中携带的媒体数据或者分段映射信息(如果有的话)。
如图16中所示,用于第二表示的分段URL的TimescaleSegURL是每秒20个滴答,TM的值是30个滴答,用于这些分段文件的URL模板模式是./ahs-2-$Tind$.$Sind$.3gs,,那么其中用于该分段的完整URL是基本URL和该模板所定义的URL部分的串联。注意,由于TM=30,TimescaleSegURL=20,所以用于第一表示的任何分段的最大呈现时间跨度是30/20=1.5秒。TM*Tind指示具有Tind的给定值的分段的起始呈现时间的跨度是TimescaleSegURL的时间尺度中的TM*Tind个滴答,即,对于第一表示,Tind的每个值覆盖1.5秒的分段起始呈现时间。具有TM*(Tind-1)和Tind之间的最早起始呈现时间的分段具有Sind=1,具有TM*(Tind-1)和Tind之间的第二最早起始呈现时间的分段(如果存在这种分段的话)具有Sind=2等等。因此,针对具有Tind=1的第一分段文件的完整URL是http://www.example.com/ahs-5-1.1.3gs,针对具有Tind=1的第二分段文件的完整URL是http://www.example.com/ahs-5-1.2.3gs,而具有Tind=2的第一分段文件是http://www.example.com/ahs-5-2.1.3gs。
如图16中所示,用于第二表示的TimescaleSeg是每秒30,000个滴答,其指示针对一个分段中的媒体帧所表示的呈现时间是以每秒30,000个滴答为单位。因此,例如,如果一个分段中的帧的呈现时间是11,011,那么以秒的呈现时间是11,011/30,000,或者近似地0.367秒。
在图16的右侧示出的用于第二表示的分段文件,示出了以TimescaleSeg为单位的分段的起始呈现时间SPT,还示出了用于该分段的URL。例如,第八分段具有SPT=175,175,其对应于175,175/30,000秒,或者大约5.84秒。由于在每秒TimescaleSegURL=20个滴答的单位中,该SPT位于90和120个滴答之间(即,位于4.5和6秒之间),对于该分段,Tind=4。此外,由于这是具有第二最早SPT的分段(该SPT是位于以TimescaleSegURL=每秒20个滴答为单位的90与120个滴答之间),对于该分段来说,Sind=2。因此,用于分段8的分段URL是http://www.example.com/ahs-2-4.2.3gs,如图16中所示。
由执行对表示进行分段的服务器根据上面分段URL模板构建规则来生成分段URL是简单易懂的:用于分段URL的Tind只取决于该分段的起始呈现时间,用于URL的Sind只取决于先前所生成的、具有相同Tind的分段的数量。因此,可以通过该服务器来实时地生成分段URL,并且在该分段中携带的媒体是可获得的之前并且在该分段中携带的媒体的呈现时间是可获得的之前,可以使该分段URL成为可获得的。
如上所述的基于混合时间的和基于索引的分段URL模板生成的优点是:分段可以具有可变的呈现时间跨度,并且在同一时间,AHS客户端可以构建分段URL,并且在没有关于精确分段呈现时间跨度的先验信息的情况下以及在没有对分段URL列表或MPD进行复杂更新的情况下,对分段进行下载,即,AHS客户端可以使用简单的分段URL模板构建规则来建立针对感兴趣的分段的URL。先前已描述了具有可变呈现时间跨度的分段的优点,例如,这允许分段以主入口点来开始,并且允许视频压缩以便将主入口点灵活地设置在提供最佳压缩和回放质量的自然呈现时间边界处,其中,这些边界可以由内容本身中的场景变化或动作序列来指示。
AHS客户端可以基于混合时间和基于索引的分段URL模板生成,对直播系统进行如下操作。AHS客户端可以使用MPD的URL来下载该MPD,使用该MPD中的信息来确定如上所述的分段URL模板构建规则和MPD中的其它信息。例如,AHS客户端可以使用TM的值和用于该客户端可能请求的可能表示的TimescaleSegURL,来确定这些有关的表示中的任何表示的任何分段的呈现时间跨度的上限TSmax。例如,在存在两个表示的图16中,假定两个表示对于客户端而言都是可能选项,该客户端可以将TSmax计算成22/10和30/20的最大值,即,2.2和1.5秒的最大值。
假定AHS客户端决定在某个实际时间T,开始请求和播放来自直播流的表示,其中T以该表示的TimescaleSegURL个滴答为单位来表示的。基于该AHS客户端想要请求和回放的表示的T和TM,客户端可以计算M=floor(T/TM),其中floor是引起与其自变量相比更小或相等的最大整数的函数。客户端可以请求该分段,用对应于Tind=M-1和Sind=1的URL来调用其分段I。在时间T,保证分段I是可获得的,由于在以TimescaleSegURL为单位的T之前,具有Tind=M-1的任何分段的起始呈现时间至少是TM个滴答,并且由于分段I的呈现时间跨度最多是以TimescaleSegURL为单位的TM个滴答,分段I的结束位于T之前并且从而是可获得的。此外,由于存在具有Tind=M-1的至少一个分段,所以将存在具有Tind=M-1并且Sind=1的分段I。一旦在分段I的当前实时T与起始呈现时间之间的差是例如TSmax的某个倍数(例如,该差值至少是TSmax,或者至少2*TSmax),AHS客户端就可以开始回放分段I。
很多可能的AHS客户端策略是有可能的。例如,客户端可以在更远的过去开始下载媒体,建立要播放的媒体的缓冲区,其中,如果初始下载速率大于初始回放速率,则具有提高下载延迟的弹性和潜在地减少启动时间的潜在益处。
在上面和下文的描述中,术语“实时”和“T的值”和“可获得的”通常用于描述在生成该内容的时刻与其可获得的以便进行回放的时刻之间具有尽可能少的时延的情况下,客户端尝试回放实时直播内容的情形。如上所述,客户端可以选择要在直播内容的呈现时间更晚的要回放的内容,以便建立媒体缓冲,对于点播内容来说,该内容的全部对于该客户端来说从开始就是可获得的,因此在这些背景下,通常将“实时”视为客户端当前想要下载该媒体的期望呈现时间,“T的值”是客户端当前尝试下载的内容的大概呈现时间,并且客户端正在尝试下载的所有内容都是可获得的。
一旦AHS客户端下载了分段I,或者访问了分段I的结束呈现时间,AHS客户端也就知道下一个分段I+1的起始呈现时间。可以使用分段I+1的起始呈现时间来判断分段I+1是否具有Tind=M-1和Sind=2,即,如果分段I+1的起始呈现时间小于以TimescaleSegURL为单位的TM*(M-1),或者如果分段I+1具有Tind=M和Sind=1,即,如果分段I+1的起始呈现时间大于或等于以TimescaleSegURL为单位的TM*(M-1)。以该方式继续,AHS客户端可以始终确定在一个表示中的当前分段之后的分段的Tind和Sind,从而确定用于下一个分段的URL。
如果由于任何原因,AHS客户端无法访问特定分段、或者关于一个表示的特定分段(其具有Tind=M-1)的信息,那么AHS客户端可能无法使用在先前段落中所描述的过程,来确定在该丢失分段之后的后续分段的URL。但是,AHS客户端可以确定具有Tind=M和Sind=1的分段的URL,由于针对每个Tind存在至少一个分段,因此在某时刻,具有Tind=M和Sind=1的分段应当是可获得的。因此,如果AHS客户端丢失了来自一个表示的一个分段(例如,由于服务器或者网络传输错误),那么AHS客户端可以跳到具有下一个更大Tind值的第一分段,从而漏掉对于媒体内容的最多2*TM/TimescaleSegURL呈现时间的跨度的回放。
AHS客户端可以使用下面的策略来从第一表示切换到第二表示。令TM和TimescaleSegURL用于将切换到的第二表示,令T是以TimescaleSegURL为滴答单位所表示的在做出切换决定的实际时间。T刚到达可以由TM整除的下一个值(即,M=T/TM是整数),AHS客户端就可以生成针对分段的与Tind=M-1和Sind=1相对应的URL,从第二表示中调用其分段I,在分段I的起始呈现时间处切换到第二表示。在此期间,AHS客户端可以继续从第一表示下载分段,直到其可以播放到第二表示的分段I的起始呈现时间为止,随后执行该切换以开始播放第二表示的分段I。使用在本段中所描述的方法,如果实际时间和播放的呈现时间之间的差值至少是2*TSmax,那么可以在没有任何不顺畅或者暂停的情况下,执行从第一表示到第二表示的切换,而不用考虑在请求下载分段的时刻、与至少足够的分段已到达AHS客户端以便开始该分段的时刻之间的时间。
举AHS客户端方法的示例,考虑图16。根据MPD,客户端可以针对这两个表示,确定TSmax=max{22/10,30/20}=2.2秒。假定客户端决定在以每秒TimescaleSegURL=10个滴答为单位的实际时间T=52(即,在实际时间5.2秒)处加入第一表示。第一客户端策略是用于客户端计算M=floor(T/TM),其中TM=22,因此M=2。基于此,客户端可以生成用于与Tind=M-1=1和Sind=1相对应的分段(即,分段1)的URL,随后请求并下载分段1。分段1在该时刻是可用的,由于分段1的结束呈现时间最多是分段2的起始呈现时间,其是10,010/30,000,或者大约0.333秒。客户端可以在接收到分段1的至少一部分之后,开始播放媒体内容,因此在该示例中,实际时间与呈现时间之间的滞后是大约5.2-0.33=4.87秒,并且使用该第一客户端策略,通常最多是3*TSmax。
继续使用第一客户端策略的以上示例,一旦关于分段1的信息是可用的(具体而言,可以计算其结束呈现时间、下一个分段的起始呈现时间,即,19,019/30,000),并且根据该信息,可以确定该下一个分段2的Tind=1和Sind=2,根据URL模板构建规则来构建其URL,可以基于其URL来请求分段2。假定无论因为什么原因,与Tind=1和Sind=2相对应的分段2是不可用的。那么,AHS客户端能够确定分段3和4的URL,或者可能不能够确定分段3和4的URL,但AHS客户端可以确定具有Tind=2和Sind=1的分段5的URL,请求和播放表示1的分段5和后续分段。在该示例中,AHS客户端可以播放分段1,跳过分段2、3和4的播放,随后继续播放分段5和后续分段,因此总共跳过媒体内容的(79,079-10,010)/30,000(或者近似2.3秒)的播放,其中,使用该第三客户端策略,其通常最多是2*Tmax。
如上所述,假定客户端决定在以每秒TimescaleSegURL=10个滴答为单位的实际时间T=52(即,实际时间5.2秒)处加入第一表示。第二替代的客户端策略是用于客户端等待,直到实际时间是TM个滴答的倍数为止,即,直到实际时间T达到3*TM/TimescaleSegURL=6.6秒,随后如上所述地转到计算M=T/TM=3,随后形成与Tind=M-1=2和Sind=1相对应的分段(即,分段5)的URL,随后请求并从具有以79,079/30,000或近似2.636秒的起始呈现时间的分段5开始播放。在该情况下,与客户端决定从表示1播放的时间相距至少6.6-5.2秒=1.4秒延迟播放,即,使用该第二客户端策略,通常延迟最多TSmax秒,但是其具有实际时间与呈现时间之间的6.6-2.636=3.964秒的改进滞后,其中使用该第二客户端策略,其通常最多是2*TSmax。在该情况下,客户端可以决定对播放进行延迟,使得滞后等于2*TSmax,即,在呈现时间2.636秒开始的内容将在实际时间2.636+2*2.2=7.036秒处开始播放,使得不存在由于后续表示切换或针对相同表示的分段的请求而引起的不顺畅或者暂停。
继续上面的示例,假定AHS客户端决定在实际时间T=10秒,从第一表示切换到第二表示。使TM=30和TimescaleSegURL=0被指定为用于第二表示。只要T达到以TimescaleSegURL为单位的可被TM整除的下一个值(即,M=T*TimescaleSegURL/TM是整数),这在T=10.5秒时在M=7处发生,AHS客户端就可以生成与第二表示的分段10的Tind=6和Sind=1相对应的URL,并请求该分段,其中该分段的起始呈现时间是230,230/30,000或者近似7.674秒。如果正在播放的内容的实际时间与呈现时间之间的滞后是4.4秒,如在针对该示例的先前段落中所描述的,那么该分段的播放将在实际时间大约12.0743秒处开始。在此期间,AHS客户端可以继续从第一表示中下载分段,直到其播放至少到达第二表示的分段10的起始呈现时间为止,随后切换为开始播放第二表示的分段10。
以上方法存在多种变型。例如,用于表示的TM和TimescaleSegURL的值可以是使得TM/TimescaleSegURL小于该表示的分段的最大呈现时间跨度。在该替代性方案中,可能有如下情形:存在一些正整数值M,使得表示不存在具有以TimescaleSegURL为滴答的单位的TM*(M-1)与TM*M之间的起始呈现时间的分段。在这些情况下,当客户端形成与Tind=M和Sind=1相对应的分段的URL时,表示中可能不存在与该URL相对应的分段。在该情况下,如果客户端决定基于使用HTTP而形成的URL来请求分段,那么客户端可能接收到“HTTP404文件未找到”的错误响应,客户端可以使用该响应来解释不存在与所形成的URL相对应的分段。
再举一个变型的示例,对于具有相同Tind索引的分段,分段的Sind索引可以按照分段的起始呈现时间的降序,而不是分段的起始呈现时间的升序来增加。例如,如果分段1的起始呈现时间是1.1秒,分段2的起始呈现时间是1.3秒,分段3的起始呈现时间是2.4秒,所有三个分段具有相同的Tind值,那么分段3的Sind值可以是1,分段2的Sind值可以是2,分段1的Sind值可以是3。
作为变型的其它示例,与一个分段相关联的Tind值可以是基于分段的结束呈现时间,而不是起始呈现时间,或者与一个分段相关联的Tind值可以是基于分段的平均呈现时间,或者其可以是基于位于该分段的中间字节位置的帧的呈现时间。
再举变型的另一个例子,可以对分段URL模板构建规则进行修改,以便应用于分段映射URL模板构建规则,或者应用于包含分段映射和媒体数据的组合的分段。
基于时间的和基于索引的分段URL模板生成的多个URL版本
可以对包括既基于时间又基于索引的元素的分段URL模板构建规则,进行如下所述地进一步增补:可以使用URL模板构建规则来指定多于一个的URL用于一个分段,即,相同的分段可以对应于多个URL,可以使用这些URL中的任何一个URL来标识分段,例如以便请求和下载分段。
如之前所述,使TimescaleSegURL是用于表示针对一个表示的所有分段的分段URL中所包含的基于时间的信息的、每秒滴答数量的时间尺度,使Tind和Sind是正整数索引,使TM是正整数常量。那么,分段URL模板构建规则可以具有下面的形式:
1、Content_ID.Representation_ID.$Tind$.$Sind$
在该替代性方案中,可以针对每一个分段,确定Tind和Sind的可能的多个值,其中用于该分段的每一对(Tind,Sind)定义了针对该分段的URL。用于构建与一个分段相对应的URL的规则(下文称为分段URL交叉规则构建)如下所述:使SPT和EPT是以TimescaleSegURL为滴答时间尺度的、分段的起始和结束呈现时间,其中分段的结束呈现时间是后续分段的起始呈现时间。那么,如果满足下面三个条件中的任何一个或多个条件,则存在与分配给该分段的Tind=M相对应的URL:
SPT≤TM*(M-1)≤EPT
TM*(M-1)≤SPT and EPT≤TM*M
SPT≤TM*M≤EPT.
换言之,如果[SPT,EPT]所定义的呈现时间跨度与URL模板构建规则所定义的时间跨度[TM*(M-1),TM*M]具有非空交集(其中Tind=M),则存在与分配给该分段的Tind=M相对应的URL。注意,分段可能满足这三个条件中的一个以上的条件,例如,如果SPT≤TM*(M-1)并且EPT≥TM*M,则既满足条件1又满足条件3。对于分配给分段的每个Tind=M,分配给分段的Sind值可以是根据表示中的分段的顺序,其中这些分段具有分配给它们的相同Tind=M。因此,如果N个分段1、2、…、N与根据它们的起始和结束呈现时间(SPT1,EPT1)、(SPT2,EPT2)、…、(SPTN,EPTN)进行排序的URL时间跨度[TM*(M-1),TM*M]具有呈现时间交集,使得EPTi=SPTi+1,那么针对Tind=M的这些N个分段的Sind值分别是1、2、…、N。
使用分段-URL交叉规则构建,分配给分段的URL的数量是该分段的呈现时间跨度相交的、具有形式[TM*(M-1),TM*M]的URL时间跨度的数量。这种构建具有以下属性:对于每个M,使得TM*M最多是滴答时间尺度TimescaleSegURL中的表示的结束呈现时间,将存在被分配为Tind=M的至少一个分段,因此,针对每个这种M,始终存在具有与Tind=M和Sind=1相对应的URL的分段。
使用分段-URL交叉规则构建,向每个分段分配至少一个URL时间跨度。具体而言,如果URL时间跨度[TM*(M-1),TM*M]是一个分段相交的第一URL时间跨度,该分段与总共N个URL时间跨度相交,那么将向该分段分配N个URL,其中第一URL对应于Tind=M和Sind=I(对于一些I≥1),其中第二到第N个URL分别对应于(Tind=M+1,Sind=1)、(Tind=M+2,Sind=1)、…、(Tind=M+N-1,Sind=1)。因此,可以根据URL的(Tind=M,Sind=I)的值(其中,M是最小Tind值),并且根据分配给分段的URL的数量N,来确定与该分段相对应的所有URL。
图17示出了分段-URL交叉规则构建的示例。沿着图17的底部示出了URL时间跨度和分配给每个URL时间跨度的值Tind=M,其中针对每个URL时间跨度所示的Tind值是以TimescaleSegURL为时间尺度单位的跨度的结束的呈现时间M*TM。分段起始点和结束点仅示出为正好在URL时间跨度上,其中垂直线指示一个分段的结束和下一个分段的开始,即,垂直线指示在连续分段之间的边界。在每个分段的起始点和结束点之内,列出了与分配给该分段的URL相对应的(Tind,Sind)值的集合。例如,针对第二分段,列出了值(1,2)、(2,1)、(3,1),其指示与第二分段相对应的URL具有以下形式:
Content_ID.Representation_ID.1.2,
Content_ID.Representation_ID.2.1,
Content_ID.Representation_ID.3.1.
举分段-URL交叉规则构建的AHS客户端使用的示例,假定AHS客户端决定在某个实际时间T,开始请求并播放来自直播流的表示,其中T是以该表示的TimescaleSegURL个滴答为单位来表示的。另外还假定TSmax是以TimescaleSegURL为时间尺度单位的TM的正整数MM倍,即TSmax=TM*MM。基于该AHS客户端想要请求和回放的表示的T和TM,客户端可以计算M=floor(T/TM),其中floor是导致小于或等于其自变量的最大整数的函数。客户端可以以对应于Tind=M-MM+1和Sind=1的URL来请求该分段,将其称为分段I,该分段与对应于Tind=M-MM+1的URL时间跨度的起始边界相交叉。在时间T,保证分段I是可获得的,这是由于与Tind=M-MM+1相对应的URL时间跨度的边界的起始至少是在以TimescaleSegURL为单位的T之前的TM*MM个滴答,并且由于分段I的呈现时间跨度是以TimescaleSegURL为单位的最多TM*MM个滴答,分段I的结束位于T之前从而是可获得的。还可以验证:分段I的起始呈现时间是在T之前的最多2*TSmax个滴答。一旦当前实际时间T与分段I的起始呈现时间之间的差是例如至少2*TSmax,则AHS客户端就可以开始回放分段I。
一旦AHS客户端已经下载了分段I,或者访问了分段I的结束呈现时间,AHS客户端就可以确定正好位于分段I之后的下一个分段I+1的起始呈现时间,AHS客户端可以判断分段I+1是否具有Tind=M-MM+1和Sind=2,或者分段I+1是否具有Tind=M-MM+2和Sind=1,即,如果下一个分段的起始呈现时间小于或等于或大于以TimescaleSegURL为单位的TM*(M-MM+1)。以该方式继续,AHS客户端可以始终确定在一个表示内的当前分段之后的分段的Tind和Sind,从而确定下一个分段的URL。
如果由于任何原因,AHS客户端接收到响应于针对具有Tind=M的分段的有效形成的URL请求的“没有找到”,其中该URL请求是基于分段URL-交叉规则构建而形成的,那么AHS客户端可能不能够确定在该丢失分段之后的后续分段的URL。但是,AHS客户端可以使用与Tind=N和Sind=1相对应的URL(其中N=M+1、M+2等等),来发出针对这些URL的请求,直到找到可获得的分段为止。当然,AHS客户端应当对这些请求进行计时,使得相应分段应当在该请求的时间处是可获得的,例如,这些分段是实时地生成并变得可获得的。因此,如果AHS客户端未收到来自一个表示的一个分段(例如,由于服务器或者网络传输差错),那么AHS客户端可以跳到具有下一个更大Tind=值N的可获得的第一分段,从而漏掉对于由于漏掉的分段而可能造成的呈现时间的最小量(其位于TM/TimescaleSegURL秒的附加因子之内)的回放。
AHS客户端可以使用下面的策略来从第一表示切换到第二表示。令TM和TimescaleSegURL对应于要切换到的第二表示,对于一些正整数MM,令TSmax=TM*MM,并且令T是以TimescaleSegURL为滴答单位所表示的在已经做出切换决定时的实际时间。只要T达到可以被TM整除的下一个值(即,M=T/TM是整数),AHS客户端就可以生成针对来自第二表示的分段(将该分段称为分段I)的、与Tind=M-MM+1和Sind=1相对应的URL,并且在分段I的起始呈现时间处切换到第二表示。在此期间,AHS客户端可以继续从第一表示下载分段,直到其可以至少播放到第二表示的分段I的起始呈现时间为止,随后执行切换以便开始播放第二表示的分段I。使用在本段落中所描述的方法,如果实际时间和播放的呈现时间之间的差值至少是2*TSmax,那么可以在没有任何不顺畅或者暂停的情况下,执行从第一表示到第二表示的切换,而不用考虑在请求进行下载分段的时刻、与至少足够的分段已到达AHS客户端以便开始播放该分段的时刻之间的时间差。
举例而言,可以如下将分段URL交叉规则构建应用于现有ALS系统,对于增强型ALS客户端有多个优点,如本领域普通技术人员所应当认识的。可以将TimescaleSegURL值设置为1,即,始终是每秒1个滴答。可以根据内容的一个表示中的分段的通告的持续时间来确定TM的值,例如,如果对于内容的一个表示来说,该分段持续时间被通告成10秒,那么针对该内容的表示,将TM设置为10,而如果针对内容的一个表示,将该分段持续时间通告成6秒,那么针对内容的该表示,将TM设置为6。合并分段-URL交叉规则构建的增强型ALS客户端和增强型分段URL生成器,应当针对一个内容的每个表示,使用相同的TimescaleSegURL值和TM值。增强型分段URL生成器应当使用该分段URL交叉规则构建来生成和关联针对ALS内容的分段的URL,而增强型ALS客户端应当使用分段-URL交叉规则构建来确定针对要请求的分段的URL,如先前所描述的。如果将这些方法应用于现有ALS系统,那么增强型分段URL生成器还可以另外生成和关联URL(如由现有分段URL针对内容而在分段URL的列表中所生成和显式提供的),使得现有ALS客户端可以继续无修改地进行操作。替代地,增强型分段URL生成器可以使用该分段-URL交叉规则构建来生成和关联针对ALS内容的分段的URL,另外在具有当前ALS分段URL列表格式的列表中,提供针对每个分段的第一URL,使得现有ALS客户端可以使用这些显式分段URL列表来无修改地进行操作。
存在分段URL模板构建规则的多种变型,对此,它们潜在地向分段中的至少一些分段分配不止一个URL。例如,取代按照分段的呈现时间的升序,向具有相同Tind值的分段分配Sind值,可以按照分段的呈现时间的降序来分配Sind值。
举分段-URL交叉规则构建的变型,该规则可以是:如果N个分段1、2、…、N与根据它们的起始和结束呈现时间(SPT1,EPT1)、(SPT2,EPT2)、…、(SPTN,EPTN)进行排序的URL时间跨度[TM*M,TM*(M+1)]具有呈现时间交叉,使得EPTi=SPTi+1,那么针对Tind=M的这些N个分段的Sind值分别是1、2、…、N-1。
分段-URL交叉规则构建的另一种变型可以是:如果向一个分段分配了不止一个URL,例如,向一个分段分配了N>1个URL,那么分段的不止一个副本是可获得的。例如,可能有该分段的N个单独的副本可用作单独的文件,其中每个副本与每个其它副本是相同的,除了每个这样的副本正好具有分配给其的用于引用或下载该副本的URL中的一个URL之外。再举另一个例子,一个分段的每个副本可以是不同的,即,各个副本可以相互具有正好相同的时间跨度,并用于相同的表示,但不同的副本可以是通过不同方式进行视频编码的:例如,可以对用作针对一个表示的切换到的分段的、具有Sind=1的副本进行编码,使得它们以RAP开始,而可以使用并非RAP的帧(而不是来自同一表示的先前分段的参考帧),对用于继续来自同一表示的先前分段的、具有Sind>1的副本进行更高效地编码。
如另一个变型,可以为同一个表示规定不止一个URL构建规则,例如,基于分段时间跨度与URL时间跨度相交叉的规则(其中,Sind编号是按照增加的分段呈现时间的顺序)、基于分段时间跨度与URL时间跨度相交叉的规则(其中Sind编号是按照减少的分段呈现时间的顺序)、基于URL时间跨度中所包含的分段起始呈现时间的规则(其中Sind索引是按照增加或减少的分段起始呈现时间的顺序)、基于URL时间跨度中所包含的分段结束呈现时间的规则(其中Sind索引是按照增加或者减少的分段结束呈现时间的顺序)、具有针对同一表示的TM或TimescaleSegURL的不同值的规则、以及针对分段、分段映射、或者分段或分段映射的组合的不同规则。
例如,通用分段URL模板构建规则可以具有以下形式,其中“Content_ID”标识该内容,“Representation_ID”标识了表示,“类型”是“SPT”、“EPT”或“INT”,并且“Direction”是“I”或者“D”:
TM=value
TimescaleSegURL=value
Content_ID.Representation_ID.Type.Direction.$Tind$.$Sind$
在上面的数据结构中,“类型”指示规则的类型,即,如果其是“SPT”,则该规则是基于分段起始呈现时间,如果其是“EPT”,则该规则是基于分段结束呈现时间,如果其是“INT”,则该规则是基于分段交叉。“方向”指示Sind索引的方向,如果其是“I”,则Sind索引是处于增加的分段呈现时间的顺序,如果其是“D”,则Sind索引是处于减少的分段呈现时间的顺序。
举例而言,URL模板构建规则:
TM=20
TimescaleSegURL=1
http://www.example.com/ahs-5-INT.I.$Tind$.$Sind$
指示一种规则,其中,内容和表示是由“http://www.example.com/ahs-5-1.1.3gs”来标识的,“INT”指示该规则是如先前所定义的分段交叉规则,“I”指示该Sind索引是按照呈现时间增加的。由于TimescaleSegURL=1并且TM=20,因此该规则所定义的每个URL时间跨度在持续时间中是20秒。
简单的分段URL模板生成
可以根据其中向将做出分段请求的客户端紧凑地传送模板和/或构建规则的模板,来生成分段URL。这些模板/规则可以是简单的或复杂的。举例而言,现在将描述针对分段URL生成和URL模板生成的简单工程。
维持前一节中所描述的注解,TM是以滴答为单位表示的呈现时间参数,TimescaleSegURL是每秒的滴答数量。对于URL模板生成(和可能的其它目的),存在两个另外的参数DeltaMinus和DeltaPlus,它们都是以滴答为单位来表示的呈现时间参数。因此,URL模板构建规则的示例可以使用以下数据结构:
TM=50
TimescaleSegURL=10
DeltaMinus=4
DeltaPlus=6
http://www.example.com/ahs-8.$Sind$.3gp
在以上数据结构中,有可能传送给客户端或者在其它方面中可以被客户端获得,Sind是将被如下解释为用于URL模板构建规则的正整数参数。对于Sind=i的分段(即,对于具有URL http://www.example.com/ahs-8.i.3gp的分段),分段的起始呈现时间SPT位于呈现时间间隔之内,其中该呈现时间间隔在值(TM*I-DeltaMinus)/TimescaleSegURL所规定的时间(以秒为单位)开始并且在值(TM*I+DeltaPlus)/TimescaleSegURL所规定的时间(以秒为单位)结束。
例如,如果在上面的示例中,Sind=17,那么具有URLhttp://www.example.com/ahs-8.17.3gp的分段的起始呈现时间位于50*17-4个滴答和50*17+6个滴答之间,或者等同地位于呈现时间84.6秒与呈现时间85.6秒之间。因此,在该示例中,分段的起始时间落入一秒呈现时间间隔之内,而平均分段持续时间大约是TM/TimescaleSegURL=5秒。根据所期望的起始呈现时间,客户端可以容易地执行计算来正好足够或仍然近似于足够高效地推导出要请求的分段。
通常(但不是始终),DeltaMinus和DeltaPlus是TM的分数。但是,存在允许DeltaMinus或DeltaPlus与TM相比更大地提供益处的情形。
以上方法的一个益处在于:在视频编码过程中提供灵活性,即,提供分段的起始呈现时间的灵活性,还提供在某些情况下处于每个分段的开始处的SAP的呈现时间的灵活性。由于在很多情况下,SAP是IDR-帧,在视频编码过程所生成的IDR-帧的呈现时间中具有灵活性,允许与按照固定的呈现时间间隔所生成的IDR-帧的视频压缩相比,该视频编码过程提供对相同流速率的更好压缩。
另一个益处是对端到端时延与IDR-帧的布置中的视频压缩灵活性二者之间的平衡提供控制:其中该端到端时延可以与TM+DeltaMinus+DeltaPlus相比同样小或更小。又一个益处是:允许AHS客户端能够基于粗略的呈现时间估计(其位于(DeltaMinus+DeltaPlus)/TimescaleSegURL秒的可配置精度之内),生成其应当请求的分段的URL,而无需参照关于先前分段或后续分段的信息。
还有的益处是:该方法允许服务器生成分段和相关联的URL,而无需参照关于先前分段或后续分段或URL的信息。这在支持具有冗余服务器的直播流解决方案中是特别有利的:如果生成分段和URL的第一服务器崩溃和新的第二服务器上线代替它,那么第二服务器可以独立于崩溃的第一服务器来生成后续的分段和URL。在第二服务器所生成的视频内容和分段和URL中可能存在很短的不连续,其中该不连续的持续时间涉及在第一服务器崩溃与第二服务器替代第一服务器的位置之间的时间间隔,加上时间间隔比例项(DeltaMinus+DeltaPlus)/TimescaleSegURL。
在以上方法的一个变型中,对落入所预定的时间间隔内的分段的起始呈现时间的约束,仅应用于具有SAP位于本分段的开始的分段。在以上方法的另一个变型中,对分段的起始呈现时间的约束仅应用于具有索引Sind是某个固定正整数SAP_FREQ的倍数的分段、以及以信号发送的SAP来开始所需要的、具有索引Sind(其是SAP_FREQ的倍数)的分段。
本领域普通技术人员应当认识到,在阅读完本申请之后,存在以上方法的很多其它变型。举例而言,DeltaMinus和DeltaPlus的值可以在针对每个自适应集合的MPD中以信号发送,或者可以在自适应集合中的每一个表示中以信号发送,或者可以针对所有自适应集合进行全局地信号发送。再举其它例子,DeltaMinus和DeltaPlus的值中的一个或二者可以不显式地以信号发送,并且可以被设置为预定值(例如,基于预定义的简档)。例如,对于预定义的简档而言,可以将DeltaMinus定义为零,并且可以将DeltaPlus定义为TM/2。再举另一个例子,DeltaMinus和DeltaPlus可以具有规定的缺省值,其中如果在MPD中显式地提供了DeltaMinus和DeltaPlus的值,才重写这些缺省值。再举其它例子,可能只存在单个以信号发送的参数Delta,将DeltaMinus和DeltaPlus的值都设置为Delta,或者将DeltaMinus设置为零,将DeltaPlus设置为Delta。再举另一个例子,可以根据其它参数来推导出DeltaMinus和DeltaPlus,例如,存在替代DeltaMinus和DeltaPlus而以信号发送的两个参数FracDeltaMinus和FracDeltaPlus,随后将DeltaMinus设置为FracDeltaMinus*TM,将DeltaPlus设置为FracDeltaPlus*TM。
硬件系统概述
上面描述了可以在多种平台上操作的各种实施例、特征、方法等。该节详细地描述可以结合上面的教示而使用的一些特定硬件平台。
在图18中,描绘了块流系统1800,其包括块服务基础设施(“BST”)1801,该块服务基础设施(“BST”)1801转而包括摄取系统1803,该摄取系统1803用于摄取内容1802、准备该内容,通过将该内容存储到可由摄取系统1804和HTTP流服务器1804访问的内容存储器1810,来对该内容进行封装以便由HTTP流服务器1804进行服务。如图所示,系统1800还可以包括HTTP高速缓存1806。在操作中,诸如HTTP流客户端之类的客户端1808向HTTP流服务器1804发送请求1812并且从HTTP流服务器1804或HTTP高速缓存1806接收响应1814。在各种情况下,图18中所示的元件可以至少部分地用软件来实现,其中所述软件包括在处理器或者其它电子器件上执行的程序代码。
内容可以包括电影、音频、2D平面视频、3D视频、其它类型的视频、图像、定时文本、定时元数据等等。一些内容可能涉及要以定时方式呈现或消费的数据,例如,用于连同正在播放的其它媒体来呈现辅助信息(站标识、广告、股票行情、FlashTM序列等等)的数据。还可以使用对其它媒体和/或超出仅仅音频和视频进行组合的其它混合呈现。
如图19中所示,可以将媒体块存储在块服务基础设施1801(1)中,该块服务基础设施1801(1)可以是例如HTTP服务器、内容传送网络设备、HTTP代理、FTP代理或者服务器、或者某种其它媒体服务器或系统。块服务基础设施1801(1)连接到网络1822,该网络1822可以是例如互联网协议(“IP”)网络(例如,互联网)。将块请求流系统客户端示出为具有六个功能组件,也叫做:块选择器1823,其被提供有上面所描述的元数据,并且执行要从由元数据所指示的多个可用块中选择要请求的块或者部分块的功能;块请求器1824,其从块选择器1823接收请求指令,并且通过网络1822执行向块服务基础设施1801(1)发送针对所规定的块、一个块的一部分或者多个块的请求所必需的操作,以及转而接收包括块的数据;以及块缓冲区1825、缓冲区监测器1826、媒体解码器1827、以及有助于媒体消费的一个或多个媒体转换器1828。
将块请求器1824所接收的块数据传送到用于存储媒体数据的块缓冲区1825,以进行临时存储。替代地,可以直接将所接收的块数据存储到块缓冲区1825,如图18中所示。块缓冲区1825向媒体解码器1827提供媒体数据,媒体解码器1827对该数据执行为了向媒体转换器1828提供适当输入所必需的这些转换,该媒体转换器1828以适当的形式将媒体呈现给用户或者其它消费。媒体转换器的示例包括视觉显示设备(例如,在移动电话、计算机系统或者电视中所建立的那些),并且还可以包括诸如扬声器或耳机之类的音频呈现设备。
媒体解码器的示例将是:将具有以H.264视频编码标准描述的格式的数据转换成视频帧的模拟或数字表示(例如,具有针对每个帧或采样的相关联的呈现时间戳的YUV格式像素图)的功能。
缓冲区监测器1826接收涉及块缓冲区1825的内容的信息,并基于该信息和可能的其它信息,提供对块选择器1823的输入,该块选择器1823用于确定要请求的块的选择,如本申请所描述的。
在本申请所使用的术语中,每个块具有“播放时间”或者“持续时间”,其表示接收机按照正常速率播放该块中包括的媒体所花费的时间量。在一些情况下,一个块中的媒体的播放可能依赖于已经从先前的块接收的数据。在极少数情况下,一个块中的一些媒体的播放可能依赖于后续块,在这种情况下,针对在无需引用后续块的情况下能播放的块中的媒体,可以定义该块的播放时间,后续块的播放时间增加了该块中的媒体的播放时间(其中在已经接收到后续块之后才可以播放该块中的媒体)。由于在一个块中包括依赖于后续块的媒体是极少数情形,因此在本申请的剩余部分中,我们假定一个块中的媒体不依赖于后续块,但是注意,本领域普通技术人员应当认识到,可以将这种变型容易地添加到下面所描述的实施例。
接收机可以具有诸如“暂停”、“快进”、“倒退”等控制,这些控制可能导致以不同速率来播放所消费的块,但是如果接收机可以在与其总播放时间(除了该序列中的最后块之外)相比相等或更小的总时间中获得并解码每个连续的块序列,那么接收机可以在无停顿的情况下向用户呈现媒体。在本申请的一些描述中,将媒体流中的特定位置称为媒体中的特定“时间”,其对应于在该媒体播放的开始时刻与到达视频流中的特定位置时刻之间所流逝的时间。媒体流的时间或位置是传统概念。例如,当视频流包括每秒24帧时,第一帧可以被称为具有t=0.0秒的位置或时间,第241帧可以被称为具有t=10.0秒的位置或时间。自然,在基于帧的视频流中,位置或者时间不需要是连续的,这是由于从第241个帧的第一比特到正好位于第242个帧的第一比特之前的流中的每个比特可以具有相同的时间值。
采用以上术语,块请求流系统(BRSS)包括对一个或多个内容服务器(例如,HTTP服务器、FTP服务器等)进行请求的一个或多个客户端。摄取系统包括一个或多个摄取处理器,其中摄取处理器接收内容(实时地或非实时地),对于由BRSS所使用的内容进行处理,并且将该内容以及还有可能连同由摄取处理器所生成的元数据存储到可由内容服务器访问的存储器中。
BRSS还可以包含与内容服务器进行协调的内容高速缓存。内容服务器和内容高速缓存可以是接收针对具有HTTP请求形式的文件或分段的请求的传统HTTP服务器和HTTP高速缓存,其中所述HTTP请求包括URL并且还可以包括字节范围,以便请求与该URL所指示的所有文件或分段相比更少的内容。客户端可以包括传统HTTP客户端,该传统HTTP客户端进行HTTP服务器的请求并且处理对这些请求的响应,其中HTTP客户端是由新型客户端系统驱动的,该新型客户端系统形成请求,将这些请求传送到HTTP客户端,从HTTP客户端获得响应,对这些响应进行处理(或者存储、转换等)以便将这些响应提供给呈现播放器,以便由客户端设备进行播放。一般情况下,客户端系统事先不知道将需要哪些媒体(这是因为这些需求依赖于用户输入、用户输入的变化等),所以其被称为“流”系统,在所述“流”系统中,一接收到媒体或者在接收到媒体后不久,就“消费”该媒体。结果,响应延迟和带宽约束可能造成呈现的延迟,例如,造成呈现的暂停(由于流赶上用户在消费该呈现所处的地方)。
为了提供能觉察到具有良好质量的呈现,可以在BRSS中(在客户端终端处、在摄取终端处、或者二者)实现多个细节。在一些情况下,实现的细节是在考虑或处理位于网络的客户端-服务器接口的情况下完成的。在一些实施例中,客户端系统和摄取系统都意识到增强,而在其它实施例中,仅仅一方意识到增强。在这些情况下,整个系统从增强中获益(即使一方没有意识到该情况),而在其它情况下,只有双方都意识到时才产生该益处,但是当一方没有意识到时,其仍然进行操作而不会失败。
如图20中所示,可以根据各种实施例,将摄取系统实现成硬件和软件组件的组合。该摄取系统可以包括能被执行以使系统执行本申请所讨论的方法中的任何一个或多个的指令集。可以将该系统实现成具有计算机形式的特定机器。该系统可以是服务器计算机、个人计算机(PC)、或者能够执行指令集(串行或其它方式)的任何系统,其中该指令集规定了要由该系统采取的动作。此外,虽然仅仅描绘了单个系统,但是术语“系统”应当还包括:单独地或者联合地执行一个或多个指令集以执行本申请所讨论的方法中的任何一个或多个方法的任何系统集合。
摄取系统可以包括摄取处理器2002(例如,中央处理单元(CPU))、存储器2004以及磁盘存储器2006,其中存储器2004可以在执行期间存储程序代码,所有这些部件通过总线2000与进行相互通信。该系统还可以包括视频显示单元2008(例如,液晶显示器(LCD)或阴极射线管(CRT))。该系统还可以包括字母数字输入设备2010(例如,键盘)、以及用于接收内容源和传输内容存储的网络接口设备2012。
磁盘存储器2006可以包括机器可读介质,其中在该机器可读介质上,可以存储体现本申请所描述的方法或功能中的任何一个或多个的一个或多个指令集(例如,软件)。这些指令还可以完全地或者至少部分地位于存储器2004中、和/或在系统执行期间位于摄取处理器2002中,其中存储器2004和摄取处理器2002也构成机器可读介质。
如图21中所示,可以根据各种实施例,将客户端系统实现成硬件和软件组件的组合。客户端系统可以包括能被执行以使系统执行本申请所讨论的方法中的任何一个或多个的指令集。可以将该系统实现成具有计算机形式的特定机器。该系统可以是服务器计算机、个人计算机(PC)、或者能够执行指令集(顺序的或者其它方式)的任何系统,其中该指令集规定要由该系统采取的动作。此外,虽然仅仅描绘了单个系统,但是术语“系统”还应当包括:单独或者联合地执行一个或多个指令集以执行本申请所描述的方法中的任何一个或多个的任何系统集合。
客户端系统可以包括客户端处理器2102(例如,中央处理单元(CPU))、存储器2104以及磁盘存储2106,其中存储器2104可以在执行期间存储程序代码,所有这些部件通过总线2100进行相互通信。该系统还可以包括视频显示单元2108(例如,液晶显示器(LCD)或者阴极射线管(CRT))。该系统还可以包括字母数字输入设备2110(例如,键盘)、以及用于发送请求和接收响应的网络接口设备2112。
磁盘存储2106可以包括机器可读介质,其中在该机器可读介质上可以存储体现本申请所描述的方法或功能中的任何一个或多个的一个或多个指令集(例如,软件)。这些指令还可以完全地或者至少部分地位于存储器2104中、和/或在由系统对其执行期间位于客户端处理器2102中,其中存储器2104和客户端处理器2102也构成机器可读介质。
改进的方法概述
在以下部分中,描述了用于改进的块请求流系统的方法。应当理解的是,根据应用的需求,这些改进中的一些部分可以在具有或者不具有这些改进的其它部分的情况下进行使用。在通常的操作中,接收机可以针对特定块或者数据块的一部分,请求服务器或者其它发射机。文件(其也被称为分段)可以包含多个块,并且与媒体呈现的一个表示相关联。
优选地,生成索引信息(其也被称为“分段索引”或者“分段映射”),该索引信息提供从播放或解码时间到分段中的相应的块或片段的字节偏移的映射。这种分段索引可以被包括在分段中,通常处于该分段的开始位置(分段映射的至少一些位于开始位置处),并且通常较小。还可以用单个索引分段或文件来提供这种分段索引。特别是在分段包含分段索引的情况下,接收机可以快速地下载该分段映射的一些或全部,随后使用该信息来确定时间偏移、与和文件中的那些时间偏移相关联的片段的相应字节位置之间的映射。
接收机可以使用字节偏移向与特定时间偏移相关联的片段请求数据,而无需下载与感兴趣的时间偏移无关的其它片段相关联的所有数据。通过这种方式,分段映射或者分段索引可以极大地提高接收机直接访问与感兴趣的当前时间偏移有关的分段的部分,具有如下益处:包括改进的内容切换时间、随着网络状况的变化而快速地从一个表示改变到另一个表示的能力、减少对不在接收机处播放的媒体进行下载的网络资源的浪费。
在考虑从一个表示(本申请称为“切换自”表示)切换到另一个表示(本申请称为“切换到”表示)的情况下,还可以使用分段索引来识别在切换到表示中的随机接入点的起始时间,以识别要在切换自表示中请求的数据量,从而确保在以下意义上实现无缝切换:在切换自表示中的媒体被下载到某个呈现时间,使得可以从随机接入点无缝地开始对切换到表示的播放。
那些块表示:为了生成针对接收机的用户的输出,进行请求的接收机需要的视频媒体或其它媒体的分段。媒体的接收机可以是客户端设备,例如当接收机从发送该内容的服务器接收内容时。示例包括机顶盒、计算机、游戏控制台、特殊配置的电视、手持设备、特殊配置的移动电话或者其它客户端接收机。
本申请描述了很多改进的缓冲区管理方法。例如,一种缓冲区管理方法使客户端能够请求最高媒体质量的块,其中,所述最高媒体质量的块能被及时地接收,以便连续地播放。可变的块大小特征提高了压缩效率。这种使多个连接向进行请求的设备发送块同时限制这些请求的频率的能力,提供了改进的传输性能。可以部分地使用所接收的数据块来继续媒体呈现。一个连接能够重用于多个块,而无需在开始时将该连接提交给特定的一组块。提高了多个客户端从多个可能的服务器中选择服务器的一致性,其减少了在附近服务器中复制内容的频率,并且提高了服务器包含整个文件的概率。客户端可以基于元数据(例如,可用的媒体编码),来请求媒体块,其中所述元数据嵌入在包含媒体块的文件的URL中。系统可以提供计算,并且将开始播放内容之前所需要的缓冲时间的量减到最小,而无需在媒体播放中产生后续的暂停。可以在多个媒体块之间共享可用的带宽,并随着每个块的播放时间接近而进行调整,使得如果需要的话,可以向具有最近播放时间的块分配可用带宽的更大共享。
HTTP流可以使用元数据。例如,呈现级元数据包括:流持续时间、可用的编码(比特速率、编解码器、空间分辨率、帧速率、语言、媒体类型)、针对每种编码的流元数据的指针、以及内容保护(数字版权管理(DRM)信息)。流元数据可以是针对分段文件的URL。
分段元数据可以包括:用于分段内的请求以及随机接入点(RAP)或其它搜寻点的标识的字节范围vs.时间信息,其中该信息中的一些或全部可以是分段索引或分段映射的一部分。
流可以包括相同内容的多个编码。随后,可以将每个编码分解成一些分段,其中每个分段对应于存储单元或文件。在HTTP的情况下,分段通常是URL可以引用的资源,该URL的请求导致该分段作为请求响应消息的实体主体的返回。分段可以包括图像的多个群组(GoP)。每个GoP还可以包括多个片段,其中分段索引提供每个片段的时间/字节偏移信息,即,索引的单位是片段。
可以通过并行TCP连接来请求片段或者片段的一部分,以增加吞吐量。这样可以减轻当在瓶颈链路上共享连接时出现的问题,或者由于拥塞而使连接丢失时出现的问题,从而提高了整体速度和传输的可靠性,可以实质上提高了内容切换时间的速度和可靠性。可以通过额外请求对带宽就延迟方面进行折衷,但应当注意避免对遥远的未来作出过多请求,其可能增大匮乏的风险。
针对同一服务器上的分段的多个请求,可以进行流水线化(在当前请求完成之前,进行下一个请求),以避免重复的TCP启动延迟。可以将针对连续片段的请求聚合成一个请求。
一些CDN优选大文件,当第一次看到范围请求时,这些CDN可以触发从原始服务器后台获取整个文件。但是,大多数CDN对来自高速缓存中的范围请求进行服务(如果数据可获得的话)。因此,使客户端请求的一些部分对应于整个分段文件可能是有利的。如果需要的话,可以稍后取消这些请求。
有效的切换点可以是目标流中的搜寻点(例如,特别是RAP)。不同的实现方式是有可能的,例如,固定的GoP结构或者RAP在流之间的对齐(基于媒体的开始或者基于GoP)。
在一个实施例中,可以在不同速率的流之间,使分段和GoP对齐。在该实施例中,GoP可以具有可变的大小,并且可以包含多个片段,但是在不同速率的流之间没有对齐片段。
在一些实施例中,可以采用文件冗余来获得优势。在这些实施例中,将纠删码(erasure code)应用于每个片段以生成数据的冗余版本。优选地,由于使用FEC和额外的修复分段(例如,作为原始表示的依赖性表示,其包含所生成的FEC修复数据,并且可用作摄取系统中的另外步骤),不对源格式化进行改变。能够只使用针对片段的源数据来重新构建片段的客户端,可以只向服务器请求该分段中的片段的源数据。如果服务器不可用,或者到这些服务器的连接较慢(其可以在针对源数据的请求之前或者之后进行确定),那么可以向修复分段请求针对片段的额外修复数据,其减少了可靠地传送足够的数据来恢复片段的时间,有可能使用FEC解码来使用所接收的源和修复数据的组合来恢复片段的源数据)。此外,可以请求另外的修复数据,以便允许恢复该片段(如果片段变得紧急的话,即,其播放时间变得临近),这增加了该片段在链路上的数据共享,但与关闭该链路上的其它连接以释放带宽相比是更高效的。这还可以减轻由于并行连接的使用而造成匮乏的风险。
在通过实时传输控制协议RTCP来实现音频/视频同步的情况下,片段格式可以是存储的实时传输协议(RTP)分组的流。
在MPEG-2TS内部定时实现音频/视频同步的情况下,分段格式还可以是存储的MPEG-2TS分组的流。
1、使用信令和/或块创建来使流更高效
在块请求流系统中,可以使用或者可以不使用多个特征来提供改进的性能。性能可以涉及:无停顿地播放呈现的能力、在带宽约束下获得媒体数据的能力、和/或在客户端、服务器和/或摄取系统处的有限处理器资源内进行这些操作的能力。现在将描述这些特征中的一些特征。
2、分段中的索引
为了形成针对电影片段的部分GET请求,可以在文件或者分段内的片段中包含的所有媒体组成部分的解码或者呈现时间中,向客户端告知字节偏移和起始时间,此外还可以告知哪些片段开始或者包含随机接入点(这样适合于用作替代的表示之间的切换点),其中该信息通常被称为分段索引或者分段映射。解码或者呈现时间中的起始时间可以被直接地表示,或者可以被表示成相对于基准时间的变化量。
这种时间和字节偏移索引信息可能需要每一个电影片段至少8个字节的数据。举例而言,对于单个文件中包含的两小时电影来说,使用500ms的电影片段,这将是总共约112千字节的数据。当开始呈现时下载所有这种数据,可能导致明显的额外启动延迟。但是,可以对时间和字节偏移数据进行分级编码,使得客户端可以快速地找到与其希望开始的呈现中的时刻有关的一小块时间和偏移数据。还可以将该信息分布在分段内,使得分段索引的某种改进可以与媒体数据交织地设置。
注意,如果按时间将一个表示片割成多个分段,那么这种分级编码的使用可能不是必要的,这是由于针对每个分段的全部时间和偏移数据可能已经非常小。例如,如果在上面的示例中,分段是一分钟而不是两个小时,那么时间字节偏移索引信息是大约1千字节数据,其通常适合位于单个TCP/IP分组内。
3、不同选项是有可能向3GPP文件添加片段时间和字节偏移数据
首先,电影片段随机接入盒(“MFRA”)可以用于该目的。MFRA提供一种表格,其中该表格可以辅助阅读者使用电影片段来找到文件中的随机接入点。在支持这种功能时,MFRA附带地包含具有随机接入点的MFRA盒的字节偏移。可以将MFRA放置在文件的结束处或者附近,但并不一定是这种情况。通过从文件的结束扫描针对电影片段随机接入偏移盒并且使用其中的大小信息,人们能够定位电影片段随机接入盒的开始。但是,将MFRA设置在HTTP流的结尾处,通常需要至少3-4个HTTP请求来访问所期望的数据:至少一个用于向文件的结尾请求MFRA,一个用于获得该MFRA,最后一个用于获得该文件中的所期望的片段。因此,设置在开始处可能是期望的,这是因为可以随后以单个请求,一起下载MFRA与第一媒体数据。此外,将MFRA用于HTTP流可能是低效的,因为除了时间和moof_offset之外,不需要“MFRA”中的信息,规定偏移而不是长度可能需要更多的比特。
第二,可以使用条目位置盒(“ILOC”)。“ILOC”通过定位它们的包含文件、它们在该文件中的偏移以及它们的长度,在该文件或者其它文件中提供元数据资源的目录。例如,系统可以将所有外部引用的元数据资源综合到一个文件中,并因此重新调整文件偏移和文件引用。但是,“ILOC”旨在给出元数据的位置,所以其很难与实际的元数据共存。
最后(并且或许是最适合的)是一种新盒(其被称为时间索引盒(“TIDX”))的规范,尤其专门用于以高效的方式来提供准确的片段时间或者持续时间和字节偏移的目的。在下一节中对其进行了更详细的描述。具有相同功能的替代盒可以是分段索引盒(“SIDX”))。这里,除非另外指出,否则这二者是可互换的,由于这两个盒提供以高效方式提供准确片段时间或者持续时间和字节偏移的能力。下面提供了TIDX和SIDX之间的区别。如何互换TIDX盒和SIDX盒应当是显而易见的,这是由于这两个盒都实现分段索引。
4、分段索引
分段具有识别的起始时间和识别的字节数量。可以将多个片段串联成单个分段,客户端可以发出用于标识该分段中的特定字节范围的请求,其中该特定字节范围与所需要的片段或者片段的子集相对应。例如,当将HTTP用作请求协议时,那么HTTP范围报头可以用于该目的。这种方法需要客户端访问分段的“分段索引”,该“分段索引”规定了不同的片段在该分段中的位置。可以将该“分段索引”提供成元数据的一部分。与其中将每个块保存在单独文件的方法相比,该方法具有与需要创建和管理的文件相比远远更少的文件的结果。对于非常大数量(据说对于1小时呈现,其可以扩展到数千个)的文件的创建、传输和存储的管理可能是复杂和容易出错的,所以文件数量的减少表示一个优点。
如果客户端只知道分段的较小部分的期望的起始时间,那么其可以请求整个文件,随后通读该文件以确定适当的播放起始位置。为了提高带宽使用率,分段可以将索引文件包括成元数据,其中索引文件将各个块的字节范围与这些块所对应的时间范围进行映射,称为分段索引或者分段映射。可以将这种元数据格式化成XML数据,或者它们可以是二进制,例如,遵循3GPP文件格式的原子和盒结构。这种索引可以是简单的,其中每个块的时间和字节范围是相对于该文件的起始的绝对值,或者它们可以是分级的,其中将一些块组合成父块(并且将一些组合成祖父块等),相对于给定块的父块的时间和/或字节范围来表示块的时间和字节范围。
5、示例性索引映射结构
在一个实施例中,可以在本申请称为“媒体分段”的一个或多个媒体文件中包含媒体流的一个表示的原始源数据,其中每个媒体分段包含用于播放媒体的连续时间分段的媒体数据,例如,5分钟的媒体回放。
图22示出了媒体分段的示例性整体结构。在每个分段内,在源分段的开始处或者贯穿该源分段进行扩展,也可以存在包括时间/字节偏移分段映射的索引信息。在一个实施例中,时间/字节偏移分段映射可以是时间/字节偏移对的列表(T(0),B(0))、(T(1),B(1))、…、(T(i),B(i)),…,(T(n),B(n)),其中T(i-1)表示相对于所有媒体分段中的媒体的初始起始时间,用于媒体的第i个片段的回放的、分段中的起始时间,T(i)表示第i个片段的结束时间(因此下一个片段的起始时间),字节偏移B(i-1)是源分段中的数据的开始的相应字节索引(其中媒体的第i个片段相对于源分段的开始而开始),B(i)是第i个片段的相应结束字节索引(因此,下一个片段的第一个字节的索引)。如果分段包含多个媒体分量,那么可以通过绝对的方式,针对分段中的每个分量提供T(i)和B(i),或者可以相对于对参考媒体分量进行服务的另一个媒体分量来表示。
在该实施例中,源分段中的片段的数量是n,其中,n可以随着分段而变化。
在另一个实施例中,可以使用第一片段的绝对起始时间和每个片段的持续时间来确定每个片段的分段索引中的时间偏移。在该情况下,分段索引可以记录第一片段的起始时间、以及该分段中包括的所有片段的持续时间。分段索引还可以只记录片段的子集。在该情况下,分段索引记录子分段的持续时间,其中,将子分段定义成一个或多个连续片段,这些连续片段可以在包含的分段的结束处结束,或者在下一子分段的开始处结束。
对于每一个片段,还可能存在用于指示该片段是否在搜寻点处开始或者是否包含搜寻点(即,在该点之后的媒体不依赖于该点之前的任何媒体的点)的值,因此,可以独立于先前的片段来播放自该片段起正向的媒体。通常,搜寻点是可以独立于所有先前媒体而开始播放的媒体中的点。图22还示出了针对源分段的可能的分段索引的简单示例。在该示例中,时间偏移值是以毫秒为单位,因此该源分段的第一片段从媒体的起点之后20秒开始,第一片段具有485毫秒的播放时间。第一片段的起始的字节偏移是0,第一片段的结束/第二片段的起始的字节偏移是50,245,因此第一片段的大小为50,245个字节。如果该片段或者子分段不是以随机接入点开始,但在该片段或者子分段中包含随机接入点,那么可以给出在起始时间与实际RAP时间之间的解码时间或者呈现时间差。这实现了:在切换到该媒体分段的情况下,客户端可以准确地知道时间,直到从需要呈现的表示进行切换为止。
另外地或者替代地,可以使用简单或分级的索引、菊花链索引和/或混合索引。
由于针对不同轨道的采样持续时间可能不是相同的(例如,视频采样可能显示持续33ms,而音频采样可能持续80ms),因此电影片段中的不同轨道可能不是精确地在相同时间处开始和结束,即,音频可以稍微在视频之前或者之后开始,与先前片段相反,以便进行补偿。为了避免模糊,可以相对于特定的轨道,来规定在时间和字节偏移数据中规定的时间戳,对于每个表示来说,这可以是相同的轨道。通常,这将是视频轨道。这允许客户端在切换表示时,准确地识别下一个视频帧。
在呈现期间可以注意,尽管有以上问题,仍然维持轨道时间尺度与呈现时间之间的严格关系,以确保平滑播放和维持音频/视频同步。
下面提供了包含分段映射的盒的两个具体示例,一个被称为时间索引盒(“TIDX”),一个被称为(“SIDX”)。该定义遵循根据ISO基本媒体文件格式的盒结构。用于这些盒以定义类似的句法和使用相同的语义和功能的其它设计,对于读者而言应当是显而易见的。
6、时间索引盒
定义
盒类型:“tidx”
容器:文件
强制性:无
数量:任意数量0或1
时间索引盒可以提供用于将文件的某些区域与表示的某个时间间隔进行关联的一组时间和字节偏移索引。该时间索引盒可以包括目标类型字段,该目标类型字段指示引用数据的类型。例如,具有目标类型“moof”的时间索引盒就时间和字节偏移两个方面,向文件中包含的媒体片段提供索引。具有时间索引盒的目标类型的时间索引盒可以用于构建分级时间索引,允许文件的用户快速地导航到索引的所需要的部分。
例如,分段索引可以包含下面的句法:
Figure BDA0000487906460000971
Figure BDA0000487906460000981
语义
目标类型:是该时间索引盒所引用的盒数据的类型。其可以是电影片段报头(“moof”)或者时间索引盒(“tidx”)。
time-reference_track_id:指示规定在该索引中的时间偏移所针对的轨道。
number_of_elements:该时间索引盒所索引的元素的数量。
first_element_offset:与第一索引的元素的文件的开始的字节偏移。
first_element_time:第一索引的元素的起始时间,其使用在time_reference_track_id所标识的轨道的媒体报头盒中所规定的时间尺度。
random_access_flag:如果该元素的起始时间是随机接入点,则为1,否则为0。
长度:用字节表示的索引的元素的长度。
deltaT:依据time_reference_track_id所标识的轨道的媒体报头盒中所规定的时间尺度,在该元素的起始时间和下一个元素的起始时间之间的差。
7、分段索引盒
分段索引盒(“sidx”)提供电影片段的紧凑索引和分段中的其它分段索引盒。在分段索引盒中存在两个循环结构。第一循环记录子分段的第一采样,也就是说,第二循环标记第一电影片段中的采样。第二循环提供子分段的索引。用于“sidx”盒的容器是文件或者直接是分段。该句法可以如下所述:
Figure BDA0000487906460000982
Figure BDA0000487906460000991
语义:
reference_track_ID为引用轨道提供track_ID。
track_count:在以下循环中索引的轨道的数量(1或者更大);
reference_count:由第二循环所索引的元素的数量(1或者更大);
track_ID:轨道的ID,该轨道的轨道片段被包括在该索引所标识的第一电影片段中;确切地,该循环中的一个track_ID等于reference_track_ID;
decoding_time:在第二循环中的第一项所引用的电影片段中的track_ID所标识的轨道里的第一采样的解码时间,其用轨道的时间尺度来表达(如该轨道的媒体报头盒的时间尺度字段中所记录的);
reference_type:当设置为0时,其指示该引用是针对电影片段(“moof”)盒;当设置为1时,其指示该引用是针对分段索引(“sidx”)盒;
reference_offset:从包含分段索引盒之后的第一字节、到引用的盒的第一字节的字节距离;
subsegment_duration:当该引用是针对分段索引盒时,该字段携带该盒的第二循环中的subsegment_duration字段的总和;当该引用是针对电影片段时,该字段携带参考轨道中、在指示的电影片段和后续的电影片段中的、直到该循环中的下一个条目所记录的第一电影片段、或者该子分段的结束(以较早者为准)的采样的采样持续时间的总和,以轨道的时间尺度来表示持续时间(如该轨道的媒体报头盒的时间尺度字段中所记录的)。
contains_RAP:当该引用是针对电影片段时,如果针对具有track_ID等于reference_track_ID的轨道的电影片段中的轨道片段包含至少一个随机接入点,那么该比特可以是1,否则将该比特设置为0;当该引用是针对分段索引时,那么仅当该分段索引中的引用中的任一个将该比特设置为1时,将该比特设置为1,否则设置为0;
RAP_delta_time:如果contains_RAP是1,则提供随机接入点(RAP)的呈现(复合)时间;如果contains_RAP是0,则保留值0。将该时间表示成在track_ID等于reference_track_ID的轨道中,该条目所记录的子分段的第一采样的解码时间与随机接入点的呈现(组合)时间之间的差。
8、TIDX和SIDX之间的区别
SIDX和SIDX提供关于索引的相同功能。另外,SIDX的第一循环提供用于第一电影片段的全球定时,但该全球定时也可以包含在电影片段自身中,无论其是绝对的,还是相对于参考轨道的。
SIDX的第二循环实现TIDX的功能。具体而言,SIDX准许针对reference_type所引用的每一个索引,具有该引用的目标的混合,而TIDX只引用仅仅TIDX或者仅仅MOOF。TIDX中的number_of_elements对应于SIDX中的reference_count,TIDX中的time-reference_track_id对应于SIDX中的reference_track_ID,TIDX中的tfirst_element_offset对应于第二循环中的第一条目里的reference_offset,TIDX中的first_element_time对应于第一循环中的reference_track的decoding_time,TIDX中的random_access_flag对应于SIDX中的contains_RAP(其中,在SIDX中,可以不一定将RAP设置在片段的起始处的另外自由度),因此其需要RAP_delta_time,TIDX的长度对应于SIDX中的reference_offset,最后,TIDX中的deltaT对应于SIDX中的subsegment_duration。因此,这两个盒的功能是相同的。
9、可变的块大小和子GoP块
对于视频媒体,视频编码结构与用于请求的块结构之间的关系较为重要。例如,如果每一个块以诸如随机接入点(“RAP”)之类的搜寻点开始,并且每个块表示相等时段的视频时间,那么视频媒体中的至少一些搜寻点的位置是固定的,搜寻点在视频编码中按照规则的时间间隔出现。如视频编码领域的技术人员所公知的,如果根据视频帧之间的关系来设置搜寻点(具体而言,如果将它们设置在与前面的帧具有很少共同点的帧处),那么可以提高压缩效率。因此,块表示相等时间量的这种要求,对于视频编码施加了限制,使得压缩可以是次优的。
期望允许视频编码系统对视频呈现中的搜寻点的位置进行选择,而不是需要搜寻点位于固定位置。允许视频编码系统选择搜寻点,引起视频压缩改进,因此可以使用给定的可用带宽来提供更高质量的视频媒体,从而引起用户体验改善。当前的块请求流系统可能需要所有的块具有相同的持续时间(在视频时间中),并且每个块必须以搜寻点开始,因此这是现有系统的一个缺点。
现在描述相比于上面内容提供优势的新颖块请求流系统。在一个实施例中,第一版本的视频分量的视频编码过程,可以被配置为选择搜寻点的位置,以便优化压缩效率,但是具有关于搜寻点之间的持续时间的最大值的要求。这种后一要求限制了编码过程对于搜寻点的选择,从而降低了压缩效率。但是,倘若关于搜寻点之间的持续时间的最大值不是太小(例如,大于大约一秒),那么与针对搜寻点需要规则的固定位置所获得的压缩效率相比,这种压缩效率的降低量更小。此外,如果关于搜寻点之间的持续时间的最大值是几秒,那么与搜寻点的完全自由定位相比,压缩效率的降低量通常非常小。
在包括该实施例的很多实施例中,一些RAP可能不是搜寻点,即,可能存在其是位于两个连续的搜寻点之间的没有被选择为搜寻点的RAP的帧,例如,这是由于该RAP在时间上太靠近周围的搜寻点,或者是由于在该RAP之前或者之后的搜寻点和该RAP之间的媒体数据的量太少。
可以将媒体呈现的所有其它版本中的搜寻点的位置限制为与第一(例如,最高媒体数据速率)版本中的搜寻点相同。与允许编码器自由选择搜寻点相比,这可以降低这些其它版本的压缩效率。
搜寻点的使用通常需要可独立解码的帧,其通常导致该帧的低压缩效率。可以参照其它帧中的数据,对不要求可独立解码的帧进行编码,其通常将该帧的压缩效率增加某个量,其中该量取决于要进行编码的该帧和参考帧之间的共性的量。搜寻点位置的高效选择,优选地将与前面的帧具有较低共性的帧选定为搜寻点帧,从而使得通过可独立解码的方式对该帧进行编码而引起的压缩效率代价减到最小。
但是,在内容的不同表示之间,一个帧与潜在参考帧之间的共性水平非常相关,这是由于原始内容是相同的。结果,将其它变型中的搜寻点约束为位于与第一变型中的搜寻点相同的位置,可能不会在压缩效率上引起大的差别。
搜寻点结构优选地用于确定块结构。优选地,每一个搜寻点确定一个块的起始,可以存在涵盖两个连续搜寻点之间的数据的一个或多个块。由于对于具有良好压缩的编码来说,搜寻点之间的持续时间不是固定的,因此并不需要所有的块具有相同的播放持续时间。在一些实施例中,将块在内容的版本之间进行对齐,也就是说,如果在内容的一个版本中,存在跨度特定帧群的块,那么在该内容的另一个版本中,也存在跨度相同的帧群的块。内容的给定版本的块不重叠,该内容的每个帧被准确地包含在每个版本的一个块中。在其它实施例中,在不同的版本之间,只对包含搜寻点的块进行对齐。
允许高效地使用搜寻点之间的可变的持续时间和因此可变的持续时间GoP的实现特征,是可以包括在分段之中,或者通过其它方式向客户端提供的分段索引或者分段映射,即,其是与该表示中的该分段相关联的元数据,其可以提供包括该呈现的每一个块的起始时间和持续时间。当客户端确定开始呈现的块时,当用户在位于一个分段内的特定点处请求该呈现开始时,可以使用该分段索引数据。如果没有提供该元数据,那么呈现只可以在内容的开始处进行开始,或者在靠近于期望的点的随机或近似点处开始(例如,通过将请求的起始点(在时间上)除以平均块持续时间以给出起始块的索引,来选择起始块)。
在一个实施例中,可以将每个块提供成单独文件。在另一个实施例中,可以将多个连续的块聚合成单个文件,以形成分段。在该第二实施例中,可以提供各版本的元数据,所述元数据包括每一个块的起始时间和持续时间,以及该块开始的位置在该文件中的字节偏移。可以响应于初始协议请求来提供该元数据(即,其可与分段或文件分开获得),或者该元数据也可以包含在与这些块自身相同的文件或者分段中,例如位于文件的开始处。如本领域普通技术人员所应当清楚的,可以压缩的形式对该元数据进行编码(例如,gzip或者变化量编码,或者以二进制形式),以便减少向客户端传输元数据所需要的网络资源。
图22示出了这些块是可变大小时的分段索引的示例,其中块的范围是部分GoP(即,一个RAP和下一个RAP之间的媒体数据的一部分量)。在该示例中,通过RAP指示符来指示搜寻点,其中RAP指示符值为1指示:该块以RAP开始或者包含RAP、或者搜寻点,其中RAP指示符为0指示:该块不包含RAP或者搜寻点。在该示例中,开头三个块(即,字节0到157,033)包括第一GoP,第一GoP具有1.623秒的呈现持续时间,其中呈现时间从进入该内容的20秒运行到21.623秒。在该示例中,前三个第一块中的第一个包括.485秒的呈现时间,其包括该分段中的媒体数据的前50,245个字节。在该示例中,块4、5和6包括第二GoP,块7和8包括第三GoP,块9、10和11包括第四GoP。应当注意,在媒体数据中存在没有被指定成搜寻点的其它RAP,因此在分段映射中没有将它们作为RAP进行发送。
再次参见图22,如果客户端或者接收机想要在进入到媒体呈现近似22秒的时间偏移处,开始访问内容,那么客户端可以首先使用其它信息(例如,稍后更详细描述的MPD),来首先确定有关的媒体数据是否位于该分段之中。客户端可以例如使用HTTP字节范围请求,下载该分段的第一部分来获得分段索引,在该情况下,该分段索引只是几个字节。使用该分段索引,客户端可以确定其应当下载的第一块是具有至多22秒的时间偏移的第一块,该第一块以RAP开始(即,其是搜寻点)。在该示例中,虽然块5具有小于22秒的时间偏移(即,其时间偏移是21.965秒),但分段索引指示:块5不是以RAP开始,因此替代地,基于该分段索引,客户端选择下载块4,这是由于块4的起始时间是至多22秒(即,其时间偏移是21.623秒),并且块4是以RAP开始。因此,基于分段索引,客户端将在字节偏移157,034处开始发出HTTP范围请求。
如果分段索引是不可用的,那么客户端必须在下载该数据之前,下载所有前面的157,034字节的数据,其导致更长的启动时间、或者信道切换时间,浪费下载没有用的数据。替代地,如果分段索引是不可用的,那么客户端可以粗略估计期望的数据在分段中开始的位置,但这种粗略估计可能较差并且其可能错过适当的时间并且随后需要客户端向后返回,这同样增加了启动延迟。
通常,每一个块与前面的块一起涵盖可以由媒体播放器播放的媒体数据的一部分。因此,块结构和向客户端以信号发送这种分段索引块结构(无论其包含在该分段中,还是通过其它方式提供给客户端),可以显著地提高该客户端提供快速信道切换、以及在面对网络变化和中断时的无缝播放的能力。通过分段索引所实现的对于可变持续时间的块和涵盖GoP的仅仅一部分的块的支持,可以显著地提高流体验。例如,再次参见图22,以及上面所描述的其中客户端想要在进入到呈现大约22秒时开始播放的示例,客户端可以通过一个或多个请求,请求块4中的数据,随后只要这些数据可用于开始回放,就将这些数据送到媒体播放器。因此,在该示例中,只要在客户端处接收到块4的41,011个字节,该播放就开始,因此实现了快速信道切换时间。如果替代地,客户端需要在开始播放之前请求整个GoP,那么信道切换时间将很长,因为这是144,211个字节的数据。
在其它实施例中,RAP或者搜寻点还可以出现在一个块的中间部分,在分段索引中可以存在用于指示该RAP或搜寻点位于块或者分段之内的数据。在其它实施例中,所述时间偏移可以是块中的第一帧的解码时间,而不是块中的第一帧的呈现时间。
图23(a)和图23(b)描绘了在多个版本或者表示之间的可变块大小、对齐的搜寻点结构的示例;图23(a)描绘了在媒体流的多个版本上具有对齐的搜寻点的可变块大小,而图23(b)描绘了在媒体流的多个版本上具有非对齐的搜寻点的可变块大小。
在顶部以秒示出了时间,就其相对于时间轴的定时,从左到右示出了用于两个表示的两个分段的块和搜寻点,因此示出的每个块的长度与其播放时间成比例,而不与块中的字节数量成比例。在该示例中,用于这两个表示的两个分段的分段索引具有针对搜寻点的相同时间偏移,但在搜寻点之间具有潜在不同数量的块或者片段,以及针对块的不同字节偏移(由于每个块中的不同数量的媒体数据而引起)。在该示例中,如果客户端想要在大约23秒的呈现时间,从表示1切换到表示2,那么客户端可以在表示1的分段中请求到块1.2,并且开始请求表示2在块2.2处开始的分段,因此该切换在与表示1中的搜寻点1.2(其处于与表示2中的搜寻点2.2相同的时间)相一致的呈现时间处发生。
如通过前面的内容所应当清楚的,所描述的块请求流系统并没有将视频编码限制为:将搜寻点设置在内容中的特定位置,这减轻了现有系统的问题中的一个问题。
在上面所描述的实施例中,进行了组织,使得用于相同内容呈现的各个表示的搜寻点对齐。但是,在很多情况下,优选的是放宽这种对齐要求。例如,有时是下面的情形:使用编码工具来生成这些表示,而该编码工具不具有生成搜寻点对齐的表示的能力。再举一个例子,可以将内容呈现独立地编码成不同的表示,而在不同的表示之间无需搜寻点对齐。再举一个例子,一个表示可以包含更多的搜寻点(由于其具有更低的速率),更普遍的是,其需要进行切换,或者其包含搜寻点以支持特技模式(例如,快进或者倒退或者快速搜寻)。因此,期望提供一些方法,这些方法使块请求流系统能高效地和无缝地处理内容呈现的各个表示之间的非对齐的搜寻点。
在该实施例中,在表示之间,搜寻点的位置可能是未对齐的。对块进行构建,使得新块起始于每一个搜寻点,因此在呈现的不同版本的块之间,可能不是对齐的。在图23(b)中示出了不同表示之间这种未对齐的搜寻点结构的示例。在顶部以秒来示出了时间,就其相对于时间轴的定时,从左到右示出了用于两个表示的两个分段的块和搜寻点,因此示出的每一个块的长度与其播放时间成比例,而不与该块中的字节的数量成比例。在该示例中,用于这两个表示的两个分段的分段索引,将具有针对搜寻点的潜在不同的时间偏移,在搜寻点之间还具有潜在不同数量的块或者片段,以及针对块的不同字节偏移(由于每一个块中不同数量的媒体数据而引起)。在该示例中,如果客户端想要在近似25秒的呈现时间处,从表示1切换到表示2,那么客户端可以在表示1的分段中请求到块1.3,并且开始请求表示2的以块2.3开始的分段,因此该切换在与表示2中的搜寻点2.3相一致的呈现处发生,其位于表示1中的块1.3的播放的中间部分,因此用于块1.2的一些媒体没有被播放(但没有被播放的块1.3的帧的媒体数据可能必须被装载到接收机缓冲区,以便对要播放的块1.3的其它帧进行解码)。
在该实施例中,可以对块选择器1823的操作进行修改,使得每当需要从不同于先前所选择的版本的表示中选择块,就选择其第一帧不晚于在最后选定的块的最后一帧后面的帧。
这个最后描述的实施例可以消除对不同于第一版本的其它版本中的搜寻点的位置进行限制的要求,因此增加了这些版本的压缩效率,其导致对给定的可用带宽的更高质量的呈现,这提高了用户体验。进一步考虑在于:执行内容的多个编码(版本)之间的搜寻点对齐的功能的视频编码工具可能不是广泛可用的,因此该最后描述的实施例的优点在于:可以使用当前可用的视频编码工具。另一个优点在于:可以并行地对内容的不同版本进行编码,而无需在不同版本的编码过程之间进行协调。另一个优点在于:可以在稍后的时间对内容的其它版本进行编码并添加到呈现中,而无需提供具有特定的搜寻点位置的列表的编码工具。
通常,当将图像编码成图像组(GoP)时,序列中的第一图像可以是搜寻点,但并不需要始终是这种情况。
媒体呈现数据模型
图24描绘了图18中所示出的内容存储的可能结构,其包括分段和媒体呈现描述(“MPD”)文件,以及在MPD文件中的分段分解、定时和其它结构。现在将描述MPD结构或者文件的可能实现方案的细节。在很多示例中,将MPD描述成文件,但也可以使用非文件结构。
如本图所示,内容存储1810保存多个源分段2410、MPD2400和修复分段2412。MPD可以包括时段记录2401,时段记录2401转而可以包括表示记录2402,该表示记录2402包含诸如对初始化分段2404和媒体分段2405的引用的分段信息2403。
图25描绘了示例性元数据表格2500,图26描绘了HTTP流客户端2602如何通过与HTTP流服务器2606的连接来获得元数据表格2500和媒体块2604的示例。
在本申请所描述的方法中,提供了“媒体呈现描述”,该“媒体呈现描述”包括关于可用于客户端的媒体呈现的表示的信息。在客户端从不同的替代方案中选择一个的意义下,表示可以是替代的,或者在客户端选择这些表示中的几个的意义下,它们可以是互补的,其中每个表示还有可能来自一组替代并且将它们联合地呈现。可以将表示有利地分配给群组,其中客户端被编程或者被配置为理解:对于一个群组中的表示而言,它们对于彼此而言是替代的,而来自不同群组的表示是使得对一个以上的表示进行联合地呈现。换言之,如果在群组中存在一个以上的表示,那么客户端从该群组中挑选一个表示,从下一个群组中挑选一个表示等等,以形成呈现。
描述表示的信息可以有利地包括所应用的媒体编解码器的细节,这些细节包括对表示进行解码所需要的这些编解码器的简档和水平、视频帧速率、视频分辨率和数据速率。接收媒体呈现描述的客户端可以使用该信息,来提前判断表示是否适合于解码或者呈现。这表示了优点,因为:如果在该表示的二进制数据中只包含区别化的信息,那么需要从所有表示中请求该二进制数据,对有关信息进行解析和提取,以便发现关于其适合性的信息。这些多个请求和数据的解析语法提取可能花费一些时间,其将导致较长的启动时间从而导致较差的用户体验。
另外,媒体呈现描述可以包括用于基于当天时间来限制客户端请求的信息。例如,对于直播服务来说,可以将客户端限制为请求靠近“当前广播时间”的呈现部分。这表示优点,这是由于:对于直播广播来说,可能期望对来自服务基础设施的在当前广播时间之前超过所提供的门限时间所广播的内容的数据进行清除。这可以期望对服务基础设施中的存储资源进行重新使用。这还可以是期望的,这取决于所提供的服务的类型,例如,在一些情况下,由于接收的客户端设备的某种预订模型,呈现可能只可用于直播,而其它媒体呈现可能可用于直播和点播,其它呈现仅可用于第一类型的客户端设备直播使用,点播仅可用于第二类型的客户端设备,直播或者点播的组合适用于第三类型的客户端设备。在(下面的)媒体呈现数据模型中描述的方法允许向客户端告知这些策略,使得客户端可以针对服务基础设施中可能不可用的数据,避免请求和调整对用户的供应。举一个替代的示例,例如,客户端可以向用户呈现该数据是不可用的通知。
在本发明的另外实施例中,媒体分段可以遵循ISO/IEC14496-12或者其派生规范中所描述的ISO基本媒体文件格式(例如,3GPP技术规范26.244中所描述的3GP文件格式)。3GPP文件格式的使用部分(上面)描述了对于ISO基本媒体文件格式的新增强,其准许在块请求流系统中对文件格式的数据结构的高效使用。如该参考文献中所描述的,可以在该文件中提供信息,其中该信息准许该文件中的媒体呈现的时间分段和字节范围之间进行快速和高效映射。可以根据ISO/IEC14496-12中所规定的电影片段构造,来使媒体数据自身结构化。提供时间和字节偏移的该信息可以具有分级结构,或者结构化成单个信息块。可以在文件的起始处提供该信息。在块请求流系统所使用的文件下载协议是HTTP的情况下,使用高效编码来提供该信息(如3GPP文件格式的使用部分中所描述的),导致客户端能够例如使用HTTP部分GET请求来快速地获取该信息,其导致短时间的启动、搜寻或者流切换时间,从而改善用户体验。
以全球时间轴中对媒体呈现中的表示进行同步,以确保在表示之间进行无缝切换(其通常是可替代的),并且确保两个或更多个表示的同步呈现。因此,在自适应HTTP流媒体呈现中的表示中包含的媒体的采样定时,可以与多个分段上的连续全球时间轴有关。
包含多种类型的媒体(例如,音频和视频)的编码媒体的块,可以针对不同类型的媒体,具有不同的呈现结束时间。在块请求流系统中,可以通过连续播放每种媒体类型的方式,对这些媒体块进行连续播放,因此来自一个块的一种类型的媒体采样,可以在先前块的另一种类型的媒体采样之前进行播放,本申请将其称为“连续块拼接”。举一个替代的例子,可以通过在先前块的任何类型的最后采样之后播放一个块的任何类型的最早采样的方式,来播放这些媒体块,本申请将其称为“不连续块拼接”。当两个块包含来自相同内容项和相同表示的媒体、这两个块被顺序地编码,或者在其它情况下,连续块拼接可能是适合的。通常,在一个表示内,当对两个块进行拼接时,可以应用连续块拼接。这是有利的,因为可以应用现有的编码,并且可以在无需将媒体轨道在块边界处对齐的情况下进行分段。
1、媒体呈现描述
可以将媒体呈现视为在HTTP流服务器上的文件的结构化集合。HTTP流客户端可以下载足够的信息来向用户呈现流服务。替代的表示可以包括一个或多个3GP文件或者3GP文件的一部分,它们遵循3GPP文件格式或者至少遵循能容易地转换自或者转换到3GP文件的一组良好定义的数据结构。
媒体呈现可以通过媒体呈现描述进行描述。媒体呈现描述(MPD)可以包含元数据,客户端能使用该元数据来构建适当的文件请求(例如,HTTPGET请求)、在适当的时间访问数据和向用户提供流服务。媒体呈现描述可以为HTTP流客户端提供足够的信息,以便选择适当的3GPP文件和几份文件。以信号向客户端发送以便能访问的单元,被称为分段。
此外,媒体呈现描述可以包含如下元素和属性。
2、媒体呈现描述元素
元素对HTTP流客户端所使用的元数据进行封装,以便向终端用户提供流服务。媒体呈现描述元素可以包含以下属性和元素中的一个或多个。
版本:用于确保扩展能力的协议的版本号。
呈现标识符:使得可以在其它呈现之间,唯一地标识呈现的信息。还可以包含专有字段或者名称。
更新频率:媒体呈现描述的更新频率,即,客户端可以如何频繁地重新装载实际媒体呈现描述。如果不存在,则媒体呈现可以是静态的。对媒体呈现进行更新可能意味着:不能对媒体呈现进行高速缓存。
媒体呈现描述URI:用于记载媒体呈现描述的URI。
流:描述流或者媒体呈现的类型:视频、音频或者文本。视频流类型可以包含音频并且可以包含文本。
服务:以另外的属性来描述服务类型。服务类型可以是直播和点播的。这可以用于向客户端告知:搜寻和访问超过某个当前时间是不准许的。
最大客户端预缓冲时间:客户端可以对媒体流进行预缓冲的最大时间量。如果将客户端限制为下载超过该最大预缓冲时间,则该定时可以区分来自逐渐下载的流。
安全保护间隔直播服务:关于在服务器处的直播服务的最大转向时间的信息。向客户端提供在当前时间已经可访问什么信息的指示。如果期望客户端和服务器按照UTC时间进行操作,并且不提供准确的时间同步,则该信息可能是必需的。
时移缓冲深度:关于客户端可以相对于当前时间在直播服务中向后移动多远的信息。通过该深度的扩展,可以在服务设定没有具体变化的情况下,准许时移观看并且赶上服务。
准许的本地高速缓存:该标志指示在HTTP客户端已播放下载的数据之后,是否可以在本地对这些数据进行高速缓存。
直播呈现间隔:通过规定开始时间和结束时间,包含在此期间呈现可获得的时间间隔。开始时间指示服务的起始时间,结束时间指示服务的结束时间。如果没有规定结束时间,则在当前时间,结束时间是未知的,更新频率可以确保在服务的实际结束时间之前,客户端得到对结束时间的访问。
点播可用性间隔:呈现时间间隔指示该服务在网络上的可用性。可以提供多个呈现时间间隔。HTTP客户端可能不能够访问在任何指定的时间窗之外的服务。通过设定点播时间间隔,可以指定另外的时移观看。对于直播服务来说,该属性也是可以存在的。在对于直播服务存在该属性的情况下,服务器可以确保在所有提供的可用性时间间隔期间,客户端能将该服务作为点播服务进行访问。因此,直播呈现间隔可以不与任何点播可用性间隔相重叠。
MPD动态文件信息:描述媒体呈现中的文件的缺省动态构建。下面提供进一步的细节。如果将相同的规则用于一些或者全部替代的表示,则关于MPD水平的缺省说明可以节省不必要的重复。
MPD编解码器描述:描述该媒体呈现中的主缺省编解码器。下面提供更多细节。如果将相同的编解码器用于一些或者全部的表示,则关于MPD水平的缺省说明可以节省不必要的重复。
MPD移动盒报头大小没有变化:用于指示在整个媒体呈现中的各个文件之中,移动盒报头在大小上是否改变的标志。可以使用该标志来优化下载,该标志可以只在特定的分段格式的情况下存在,特别是对于分段包含moov报头的那些分段格式来说。
文件URI模式:客户端生成针对媒体呈现中的文件的请求消息时使用的模式。不同的属性准许生成用于媒体呈现中的文件里的每个文件的唯一URI。基本URI可以是HTTP URI。
替代的表示:描述表示的列表
1、替代的表示元素:
对用于一个表示的所有元数据进行封装的XML元素。替代的表示元素可以包含下面的属性和元素。
表示ID:用于该媒体呈现中的该特定的替代表示的唯一ID。
静态文件信息:提供一个替代呈现的所有文件的起始时间和URI的显式列表。该文件列表的静态设定可以提供媒体呈现的准确定时描述的优点,但其可能不是紧凑的,特别是如果该替代的表示包含多个文件的话。此外,文件名可以具有任意名称。
动态文件信息:提供一种隐式的方式,来构建一个替代呈现的起始时间和URI的列表。该文件列表的动态设定可以提供更加紧凑的表示的优点。如果只提供起始时间的序列,那么这里还保持定时优点,但基于文件模式URI来动态地构建文件名。如果只提供每一个分段的持续时间,那么该表示是紧凑的,并且可以适合于在直播服务中使用,但这些文件的生成可以通过全球定时来管理。
AP移动盒大小没有变化:用于指示在该替代性描述中的各个文件之中,移动盒报头的大小是否改变的标志。可以使用该标志来优化下载,并且该标志可以只在特定的分段格式的情况下存在,特别是对于分段包含moov报头的那些分段格式来说。
AP编解码器描述:描述替代性呈现中的文件的主编解码器。
媒体描述元素
媒体描述:可以对在该表示中包含的媒体的所有元数据进行封装的元素。具体而言,其可以包含关于该替代性呈现中的轨道的信息,以及推荐的轨道的群组(如果有的话)。媒体描述属性包含以下属性:
轨道描述:可以对在该表示中包含的媒体的所有元数据进行封装的XML属性。轨道描述属性包含以下属性:
轨道ID:用于替代性表示中的轨道的唯一ID。在轨道是群组描述的一部分的情况下,可以使用该轨道ID。
比特速率:轨道的比特速率。
轨道编解码器描述:包含关于在该轨道中使用的编解码器的所有属性的XML属性。轨道编解码器描述属性包含以下属性:
媒体名称:定义媒体类型的属性。该媒体类型包括:“音频”、“视频”、“文本”、“应用”和“消息”。
编解码器:包括简档和水平的编解码器类型。
语言标签:如果可以的话,是语言标签。
最大宽度、最大高度:对于视频而言,所包含的视频的以像素为单位的高度和宽度。
采样速率:针对音频的采样速率。
群组描述:向客户端提供建议,以便基于不同的参数来进行适当的分组的属性。
群组类型:客户端可以决定如何组成轨道所基于的类型。
HTTP流客户端有利地使用媒体呈现描述中的信息,来在适当的时间,执行针对文件/分段或者其一部分的请求,从与其能力相匹配的足够的表示中选择分段,例如,依据接入带宽、显示能力、编解码器能力等等,以及诸如语言等用户偏好。此外,由于媒体呈现描述说明了时间对齐和映射到全球时间轴的表示,因此客户端还可以在进行的媒体呈现期间,使用MPD中的信息,以便发起适当的动作来在表示之间进行切换,从而联合地呈现表示或者在媒体呈现中进行搜寻。
1、信令分段起始时间
可以按时间将表示划分成多个分段。在一个分段的最后一个片段与下一个分段的下一个片段之间存在轨道间定时问题。此外,在使用恒定持续时间的分段的情况下,存在另一种定时问题。
针对每个分段使用相同的持续时间,可以具有MPD既紧凑又静态的优点。但是,每个分段可以仍然在随机接入点处开始。因此,可以对视频编码进行限制,以便在这些特定点提供随机接入点,或者实际的分段持续时间可以不是如在MPD中所精确指定的。可以期望流系统不对视频编码处理设置不必要的限制,所以第二选项可以是优选的。
具体而言,如果在MPD中将文件持续时间指定为d秒,那么第n个文件可以在时间(n-1)d处或者在时间(n-1)d之后立即以随机接入点开始。
在该方法中,每一个文件可以包括:关于该分段的依据全球呈现时间的准确起始时间的信息。用于以信号发送该信息的三种可能方式包括:
(1)第一,将每一个分段的起始时间限制为如MPD中所指定的精确时间。但是,随后媒体编码器可能对IDR帧的设置没有任何灵活性,并且可能需要对文件流进行特殊编码。
(2)第二,将精确的起始时间添加到针对每一个分段的MPD中。对于点播情形来说,可以减少MPD的紧凑性。对于直播情形来说,这可能需要MPD的定期更新,其可以减少可扩展性。
(3)第三,将全球时间或者相对于该表示的通告的起始时间或者MPD中的该分段的通告的起始时间的准确起始时间,添加到该分段中(在某种意义上说,该分段包含该信息)。可以将其添加到专用于自适应流媒体的新盒中。此外,该盒还可以包括:如“TIDX”或者“SIDX”盒所提供的信息。第三种方法的结果在于:当搜寻接近于这些分段中的一个分段的开始的特定位置时,客户端可以基于MPD来选择包含所需要的搜寻点的一个分段的后续分段。在该情况下,简单的响应可以是将搜寻点向前移动到所获取的分段的起始位置(即,该搜寻点之后的下一个随机接入点)。通常,至少每几秒钟来提供随机接入点(通常,由于使其不太频繁,几乎没有编码增益),所以在最坏情况下,可以将搜寻点移动到与所规定的时间相比稍晚的几秒钟。替代地,客户端可以在获取分段的报头信息时,确定所请求的搜寻点事实上位于前一分段中,于是改为请求该分段。这可能导致执行搜寻操作所需要的时间的偶尔增加。
可访问的分段列表
媒体呈现包括一组表示,每个表示提供对原始媒体内容的某种不同版本的编码。这些表示自身有利地包含:与其它参数相比,关于区分该表示的参数的信息。它们还显式地或者隐式地包含可访问分段的列表。
分段可以被区分为只包含元数据的时间少的分段、和主要包含媒体数据的媒体分段。媒体呈现描述(“MPD”)有利地标识每个分段的属性,并且隐式地或者显式地向每个分段分配不同的属性。有利地分配给每个分段的属性包括:其中分段是可访问的时段、可访问这些分段所使用的资源和协议。此外,有利地向媒体分段分配属性,例如,在媒体呈现中的分段的起始时间、在媒体呈现中的分段的持续时间。
当媒体呈现的类型是“点播”时(如诸如点播可用性间隔之类的媒体呈现描述中的属性所有利指示的),那么该媒体呈现描述通常描述了整个分段,并且还提供这些分段何时可访问以及这些分段何时不可访问的指示。相对于媒体呈现的起始,来有利地表示分段的起始时间,使得开始对同一媒体呈现进行播放(但在不同的时间)的两个客户端可以使用相同的媒体呈现描述以及相同的媒体分段。这有利地提高了对这些分段进行高速缓存的能力。
当媒体呈现的类型是“直播”时(如诸如属性服务之类的媒体呈现描述中的属性所有利指示的),那么通常不生成包含超过实际当天时间的媒体呈现的分段,或者这些分段至少是不可访问的,尽管在MPD中完整描述了这些分段。但是,使用媒体呈现服务的类型是“直播”的指示,客户端可以基于MPD中包含的信息和该MPD的下载时间,来产生可访问分段的列表以及符合壁钟时间的当前客户端内部时间的定时属性。服务器有利地进行操作,在某种意义下使得资源可访问,从而按照壁钟时间对MPD的实例进行操作的参考客户端现在能够访问这些资源。
具体而言,参考客户端基于MPD中包含的信息和该MPD的下载时间,产生可访问分段的列表,以及用于符合壁钟时间的当前客户端内部时间的定时属性。随着时间的推进,客户端将使用相同的MPD,并且将创建新的可访问的分段列表,其中该可访问的分段列表可以用于连续地播放媒体呈现。因此,服务器可以在这些分段实际可访问之前,在MPD中通告这些分段。这是有利的,这是由于其减少了对MPD的频繁更新和下载。
假定分段的列表(每个分段具有起始时间tS)是由诸如静态文件信息之类的元素中的播放列表来显式地描述的,或者通过使用诸如动态文件信息之类的元素来隐式地描述的。下面描述用于使用动态文件信息来生成分段列表的有利方法。基于该构建规则,客户端访问每个表示r的URI列表(本申请称为文件URI(r,i)),以及针对具有索引i的每一个分段的起始时间tS(r,i)。
可以使用下面的规则,来执行使用MPD中的信息来创建分段的可访问时间窗。
对于“点播”类型的服务(如由诸如服务之类的属性所有利指示的),如果在客户端处的当前壁钟时间现在位于可用的任何范围之内(如通过诸如点播可用性间隔之类的MPD元素所有利表示的),那么该点播呈现的所有描述的分段是可访问的。如果在客户端处的当前壁钟时间位于可用的任何范围之外,那么该点播呈现的所描述的分段中没有任何一个分段是可访问的。
对于“直播”类型的服务(如通过诸如服务之类的属性所有利指示的),起始时间tS(r,i)有利地表示了壁钟时钟中的可用的时间。可以将可用性起始时间推导成事件的直播服务时间和用于捕获、编码和出版的服务器处的某个转向时间的组合。例如,可以使用所指定的安全保护间隔tG(例如,如MPD中的安全保护间隔直播服务所规定的),来规定用于该过程的时间。这提供了UTC时间和HTTP流服务器上的数据的可用性之间的最小差值。在另一个实施例中,MPD显式地指定MPD中的分段的可用时间,而不将转向时间提供成事件直播时间和该转向时间之间的差值。在下面的描述中,假定将任何全球时间指定成可用时间。直播媒体广播领域的普通技术人员可以在阅读完本说明书之后,根据媒体呈现描述中的适当信息来推导出该信息。
如果客户端的当前壁钟时间现在位于直播呈现间隔的任何范围之外(如通过诸如直播呈现间隔之类的MPD元素所有利表达的),那么该直播呈现的所描述的分段没有任何一个分段是可访问的。如果客户端的当前壁钟时间现在位于直播呈现时间间隔之内,那么该直播呈现的所描述的分段中的至少某些分段可能是可访问的。
通过以下值来管理对可访问分段的限制:
现在的壁钟时间(如可用于客户端)。
所准许的时移缓冲区深度tTSB,例如,如媒体呈现描述中的时移缓冲深度所规定的。
可以只允许处于相对事件时间tl的客户端请求在(此时–tTSB)与此时的时间间隔中具有起始时间tS(r,i)的分段,或者请求以下时间间隔中的分段:该时间间隔使得还包括具有持续时间d的分段的结束时间(其导致(此时–tTSB-d)与此时的时间间隔)。
3、更新MPD
在一些实施例中,服务器事先不知道文件或者分段定位器和该分段的起始时间,这是由于:例如,服务器位置将改变,或者媒体呈现包括来自另一个不同服务器的某个广告,或者媒体呈现的持续时间是未知的,或者服务器想要误导用于后面分段的定位器。
在这些实施例中,服务器可能只描述已经可访问的分段,或者在已经公布MPD的实例之后不久变得可访问的分段。此外,在一些实施例中,客户端有利地消耗靠近MPD中所述媒体的媒体,使得用户体验尽可能靠近媒体内容的生成的、包含的媒体节目。只要客户端预期其到达MPD中的所描述的媒体分段的结束,该客户端就在预期服务器已经公布用于描述新媒体分段的新MPD的情况下,有利地请求MPD的新实例以便继续连续播放。服务器有利地生成MPD的新实例,对MPD进行更新,使得客户端可以依赖于用于连续更新的过程。服务器可以将其MPD更新过程以及分段生成和公布调整为作为普通客户端可以执行的参考客户端的过程。
如果MPD的新实例只描述了短时间提前,那么客户端需要频繁地请求MPD的新实例。这可能导致由于不必要的频繁请求而造成的可扩展性问题和不必要的上行链路和下行链路流量。
因此,一方面,有关的是,描述尽量遥远未来的分段(还无需使它们变得可访问),另一方面,实现MPD中的不可预见的更新,以表示新服务器位置、准许诸如广告之类的新内容的插入、或者提供编解码器参数的变化。
此外,在一些实施例中,媒体分段的持续时间可以较小,例如处于几秒的范围之内。媒体分段的持续时间是有利灵活的以便调整适当的分段大小,能够将大小优化为传送或高速缓存属性以补偿直播服务中的端到端延迟、或者用于处理分段的存储或传输的其它方面、或者由于其它原因。特别是在这些分段与媒体呈现持续时间相比更小的情况下,需要在媒体呈现描述中对明显数量的媒体分段资源和起始时间进行描述。结果,媒体呈现描述的大小可能很大,其可能负面地影响媒体呈现描述的下载时间,并因此影响媒体呈现的启动延迟,还影响接入链路上的带宽使用。因此,有利的是,不仅准许使用播放列表来描述媒体分段的列表,而且还准许通过使用模板或者URL构建规则进行描述。在本说明书中,同义地使用模板和URL构建规则。
此外,在超过当前时间的直播情况下,可以有利地使用模板来描述分段定位器。在这些情况下,MPD的更新本身是不需要的,这是由于这些模板对定位器和分段列表进行了描述。但是,需要对表示或者分段的描述进行改变的不可预见事件仍然可以发生。当将来自多个不同源内容拼接在一起时(例如,当插入广告时),可能需要自适应HTTP流媒体呈现描述发生改变。来自不同源的内容可以通过多种方式区分。另一种原因在于:在直播呈现期间,可能需要改变用于内容文件的URL,以便提供从一个直播原始服务器到另一个服务器的故障转移。
在一些实施例中,如果对MPD进行更新是有利的,那么执行对MPD的更新,使得在下面的意义下,更新的MPD与先前MPD相兼容:由于已获得了MPD的先前实例,所以参考客户端和因此任何实现的客户端根据更新的MPD,针对直到先前MPD的有效时间的任何时间,来生成可访问分段的相同功能列表。该要求确保了:(a)客户端可以使用新MPD来立即开始,而无需与旧MPD进行同步,这是由于在更新时间之前,新MPD与旧MPD相兼容;(b)不需要更新时间与对MPD的实际改变所发生的时间进行同步。换言之,可以提前通告对MPD的更新,并且一旦新信息可用,服务器就可以替代MPD的旧实例,而无需维持不同版本的MPD。
在针对一组表示或者所有表示的MPD更新中,针对媒体定时可以存在两种可能性。(a)在MPD更新中,现有的全球时间轴继续(本申请将其称为“连续的MPD更新”),或者(b)当前时间轴结束,新时间轴以改变之后的分段进行开始(本申请将其称为“不连续的MPD更新”)。
当考虑媒体片段的轨道时,这些选项之间的差别可能是明显的,因此由于轨道之间的不同采样精度,分段通常不在相同的时间开始和结束。在正常呈现期间,可以在先前片段的另一个轨道的某些采样之前,可以对片段的一个轨道的采样进行提交,即,在片段之间存在某种类型的重叠,但是在单个轨道内可能不存在重叠。
(a)和(b)之间的区别是:是否可以在MPD更新中实现这种重叠。当MPD更新是由于对完全单独内容进行拼接时,这种重叠通常是难以实现的,这是由于新内容需要进行新的编码以便与先前内容进行拼接。因此,有利的是,通过重新开始用于某些分段的时间轴来提供不连续地更新媒体呈现的能力,还有可能在更新之后,定义一组新的表示。此外,如果已经对内容进行了独立编码和分段,那么其还避免调整时间戳正好位于前一段内容的全球时间轴之内。
当更新是由于诸如只向所描述的媒体分段的列表添加新媒体分段之类的较少原因时,或者如果URL的位置发生改变时,那么可以允许重叠和连续的更新。
在不连续的MPD更新的情况下,前一表示的最后分段的时间轴在该分段的任何采样的最晚呈现结束时间处结束。下一个表示的时间轴(或者更准确地说,该媒体呈现的新部分的第一媒体分段的第一呈现时间,其也被称为新时段)通常并且有利地在与最后时段的呈现的结束相同的时刻处开始,从而确保无缝和连续播放。
在图27中描绘了两种情形。
优选的和有利的是,将MPD更新限制于分段边界。用于将这些改变或更新限制于分段边界的基础理论如下。首先,对于每个表示的二进制元数据(其通常是电影报头)的改变,可以发生在至少分段边界处。第二,媒体呈现描述可以包含针对这些分段的指针(URL)。在某种意义上,MPD是将与媒体呈现相关联的所有分段文件组合在一起的“伞状”数据结构。为了维持该包含关系,可以通过单个MPD来引用每个分段,当对MPD进行更新时,有利的是只在分段边界处进行更新。
通常不需要对分段边界进行对齐,但是对于从不同源拼接的内容的情况来说,并且通常对于不连续的MPD更新,将分段边界对齐是有意义的(具体而言,每个表示的最后分段可以在同一视频帧处结束,并且可以不包含具有与该帧的呈现时间相比更晚的呈现起始时间的音频采样)。随后,不连续更新可以在常见的时刻(被称为时段),开始新的一组表示。例如,通过时段起始时间,提供这种新的一组表示的有效性的起始时间。将每个表示的相对起始时间复位为零,该时段的起始时间将该组表示设置在全球媒体呈现时间轴中的这个新时段中。
对于连续MPD更新而言,不需要对分段边界进行对齐。每个替代的表示的每个分段,可以通过单个媒体呈现描述来管理,因此,针对媒体呈现描述的新实例的更新请求(其通常是由预测在操作MPD中没有描述另外的媒体分段而触发的)可能在不同时间发生,这取决于消耗的一组表示(其包括预期要消耗的一组表示)。
为了支持更通用情形下的MPD元素和属性的更新,任何元素(不仅表示或者表示的集合)可以与有效时间相关联。所以,如果需要对MPD的某些元素进行更新(例如,当对表示的数量进行改变或者对URL构建规则进行改变时),那么可以通过提供具有不相交的有效时间的元素的多个副本,在规定的时间对这些元素分别进行更新。
有利地,有效性是与全球媒体时间相关联的,使得与有效时间相关联的所描述的元素在媒体呈现的全球时间轴的时段中是有效的。
如上所述,在一个实施例中,仅将有效时间添加到表示的完整集合中。随后,每个完整集合形成时段。换言之,在使用有效元素的特定情况下,表示的完整集合可以在某个时间段是有效的(其由针对一组表示的全球有效时间来指示)。一组表示的有效时间被称为时段。在新时段的开始处,先前一组表示的有效性到期,该组新的表示有效。再次注意,优选的是,时段的有效时间是不相交的。
如上所述,对媒体呈现描述的改变发生在分段边界,所以对于每个表示,对于元素的改变实际发生在下一个分段边界处。随后,客户端可以形成有效的MPD,该有效的MPD包括该媒体的呈现时间中的每一个时刻的分段的列表。
在下面的情形下或者其它情形下,不连续块拼接是适当的:其中,这些块包含来自不同表示的媒体数据,或者来自不同内容的媒体数据(例如,媒体数据来自内容的分段和广告)。在块请求流系统中可能需要的是,对于呈现元数据的改变只在块边界处发生。这对于实现原因来说是有利的,这是由于与只在块之间对媒体解码器参数进行更新相比,在块中对媒体解码器参数进行更新是更复杂的。在该情况下,有利的是,可以规定,将如上所述的有效时间间隔解释成近似的,使得从不早于所指定的有效时间间隔的开始的第一块边界,到不早于所指定的有效时间间隔的结束的第一块边界,将元素视为有效的。
以上内容的一个示例性实施例描述了对块请求流系统的新增强,其在稍后给出的标题为“对媒体呈现的改变”的部分中进行了描述。
4、分段持续时间信令
不连续更新有效地将呈现划分成一系列不相交的时间间隔(其称为时段)。每一个时段具有其自己的用于媒体采样定时的时间轴。位于时段之内的表示的媒体定时,可以有利地通过下面方式来指示:规定针对每个时段的分段持续时间或者针对时段中的每个表示的单独紧凑列表。
关联到MPD中的元素的属性(例如,其称为时段起始时间),可以指定该媒体呈现时间中的某些元素的有效时间。可以将该属性添加到MPD的任何元素(针对元素,可以改变可被分配有效性的属性)。
对于不连续MPD更新,所有表示的分段可以在不连续处结束。这通常至少意味着:在不连续之前的最后分段具有与先前分段不同的持续时间。信令分段持续时间可以涉及:指示所有分段是否具有相同的持续时间,或者指示每个分段的单独持续时间。可能期望针对分段持续时间列表具有紧凑的表示,这种方式在这些分段中的很多分段具有相同的持续时间的情况下是高效的。
有利地,可以使用单个字符串来实施一个表示或者一组表示中的每个分段的持续时间,其中,所述单个字符串规定了针对从不连续更新的开始(即,时段的开始)直到MPD中所描述的最后媒体分段为止的单个时间间隔的所有分段持续时间。在一个实施例中,该元素的格式是文本字符串,该文本字符串遵循包含分段持续时间条目列表的乘积,其中每个条目包含持续时间属性dur和该属性的可选乘号mult,其指示该表示包含:第一条目的持续时间<dur>的第一条目分段的<mult>、随后第二条目的持续时间<dur>的第二条目分段的<mult>等。
每个持续时间条目规定一个或多个分段的持续时间。如果<dur>值之后跟着“*”字符和一个数字,那么该数字规定具有该持续时间的连续分段的数量,以秒为单位。如果缺少乘法符号“*”,那么分段的数量是1。如果存在“*”,后面不跟数字,那么所有后续分段都具有所规定的持续时间,并且在列表中可能没有另外的条目。例如,字符串“30*”意味着:所有分段都具有30秒的持续时间。字符串“30*1210.5”指示:持续时间30秒的12个分段,后面跟着持续时间10.5秒的一个分段。
如果针对每个替代的表示,单独规定了分段持续时间,那么每个时间间隔中的分段持续时间的总和对于各表示来说可能是相同的。在视频轨道的情况下,时间间隔可以在每个替代表示中的相同帧上结束。
本领域普通技术人员在阅读了本申请之后,可以找到以紧凑方式表示分段持续时间的类似和等同方式。
在另一个实施例中,除了最后一个分段之外,针对表示中的所有分段,通过信号持续时间属性<持续时间>将分段的持续时间以信号发送成常数。只要提供了下一个不连续更新的起点或者新时段的起点(那么其意味着到达下一时段的起始的最后一个分段的持续时间),在不连续更新之前的最后分段的持续时间就可以缩短。
本领域普通技术人员在阅读本申请后,还可以想到另外的实施例。在其它实施例中,有利地,可以实现上面所公开的发明的组合或者子组合。为了说明目的,示出了组成部分的示例性排列,应当理解的是,在本发明的替代实施例中,可以预期对这些组成部分的组合、补充、重新排列等等。因此,虽然已经针对示例性实施例描述了本发明,但本领域普通技术人员应当认识到,众多修改是有可能的。
例如,本申请所描述的过程可以使用硬件组件、软件组件和/或其任意组合来实现。在一些情况下,可以将软件组件提供在用于在硬件上执行的有形的、非临时性介质上,其中该硬件提供有媒体或者与媒体是分开的。因此,应当将说明书和附图视作为示例性的,而不是限制意义的。但是,显然,可以在不脱离如权利要求书所阐述的本发明的更广精神和保护范围的基础上,对本发明做出各种修改和改变,本发明旨在覆盖落入所附权利要求书的保护范围之内的所有修改和等同物。

Claims (21)

1.一种在从服务器向客户端发送的媒体流中以信号进行发送以便在用于自适应HTTP流的表示之间进行切换的方法,所述方法包括:
将分段映射与表示的分段进行关联,其中分段映射包括相关联的分段中的时间入口点和时间出口点、以及字节偏移信息;以及
使用独立于所述相关联的分段的时间跨度的、可预测的时间跨度模式来生成分段映射。
2.一种对作为多个表示进行流式传输的内容进行格式化的方法,其中所述多个表示中的每个表示是一项内容的替代,其中,所述内容已经定义了呈现时间,所述呈现时间定义了使用所述内容的呈现内的时间,所述方法包括:
将每个表示组织成用于该表示的多个分段,其中,分段包括与所述内容的一部分有关的数据,所述内容的所述部分具有所述表示的其它分段之间的时间顺序,并且使得不访问先前分段的接收机能够使用所述分段,其中,分段的时间入口点和时间出口点表示所述表示的能够使用该分段的数据呈现的时段;
生成分段映射,其中所述分段映射包括与所述内容中的呈现时间相对应的时间转换点以及字节偏移信息,所述字节偏移信息对所述内容中的呈现时间和表示中的字节偏移进行映射;以及
至少将所述时间入口点中的一些时间入口点和所述时间出口点中的一些时间出口点进行对齐,其中所述对齐导致用于第一表示中的分段的时间入口点的呈现时间与用于第二表示中的分段的时间出口点的呈现时间相匹配,并且其中,所述对齐导致多个匹配。
3.根据权利要求2所述的方法,还包括:
针对每个分段,确定文件名称;以及
将每个分段的内容存储为使用存储的每个分段的文件名称的多个文件。
4.根据权利要求3所述的方法,还包括:
在消费内容的客户端处确定内容请求,其中所述内容请求规定至少一个表示和呈现时间范围;
确定用于所述多个文件中的、表示与所述内容请求相对应的分段的文件的一个或多个URL的集合;
使用所述URL的集合来请求分段;
接收那些分段;以及
向所述客户端处的内容消费者提供来自那些分段的内容。
5.一种使用客户端设备来请求内容的方法,所述客户端设备能够连接到网络、能够通过所述网络进行请求、并且能够呈现具有非零播放时间的内容,所述方法包括:
确定内容请求,其中所述内容请求规定至少一个呈现和呈现时间范围,所述呈现时间范围定义了请求的呈现中的一些或者全部的一部分;
从存储的媒体呈现数据集读取请求格式模板、分段时间长度和可变分段范围,其中所述可变分段范围定义了分段的呈现时间范围的变化,所述变化涉及在所述媒体呈现数据集中存储的所述分段时间长度;
将分段时间长度的值与和所述呈现时间范围的开始相对应的时间入口点进行比较,以确定初始分段索引;
评估所述初始分段索引、所述可变分段范围、所述分段时间长度和所述可变分段范围,以确定期望的分段索引;
基于所述期望的分段索引和所述请求格式模板,来生成与所述内容请求相对应的文件请求;以及
使用所述文件请求来请求至少一个文件。
6.根据权利要求5所述的方法,其中,所述文件请求是URL,并且请求至少一个文件是使用利用所述URL的HTTP请求来执行的。
7.根据权利要求5所述的方法,其中,所述初始分段索引是通过将所述时间入口点除以所述分段时间长度来确定的,当所述除法的余数小于所述可变分段范围时,所述期望的分段索引被确定为所述初始分段索引,当所述除法的余数等于或者大于所述可变分段范围时,所述期望的分段索引被确定为位于所述初始分段的前一个的分段索引。
8.根据权利要求5所述的方法,还包括:
重复文件请求,直到接收到包含具有时间出口点的内容的分段为止,其中所述时间出口点与所述呈现时间范围的结束相对应、或者晚于所述呈现时间范围的结束。
9.根据权利要求5所述的方法,其中,涉及所述分段时间长度的所述变化是时间范围,使得分段呈现时间位于以下两个端点之间并且包含这两个端点的范围内:所述分段时间长度、所述分段时间长度加上所述变化的时间范围。
10.根据权利要求5所述的方法,其中,涉及所述分段时间长度的所述变化是比例P,使得分段呈现时间位于以下两个端点之间并且包含这两个端点的范围内:所述分段时间长度的1.0倍、所述分段时间长度的1+P倍。
11.根据权利要求5所述的方法,其中,涉及所述分段时间长度的所述变化是时间范围,使得分段呈现时间能够大于或者小于所述分段时间长度,其中所述分段时间长度包括所述变化的所述时间范围。
12.根据权利要求11所述的方法,还包括:
重复文件请求,直到接收到包含具有时间出口点的内容的分段为止,其中所述时间出口点与所述呈现时间范围的结束相对应、或者晚于所述呈现时间范围的结束。
13.根据权利要求5所述的方法,其中,向多个表示中的一个表示请求分段,其中所述多个表示中的每个表示是一项内容的替代。
14.一种能够通过网络进行请求并且呈现通过所述网络获取的内容的客户端设备,所述内容具有非零播放时间,所述客户端设备包括:
能够执行存储的指令的处理单元;
能够存储数据的存储器;
能够存储指令的存储器;
用于确定内容请求的程序代码,其中所述内容请求规定至少一个呈现和呈现时间范围,所述呈现时间范围定义请求的呈现中的一些或者全部的一部分;
用于从存储的媒体呈现数据集读取请求格式模板、分段时间长度和可变分段范围的程序代码,其中所述可变分段范围定义分段的呈现时间范围的变化,所述变化涉及在所述媒体呈现数据集中存储的所述分段时间长度;
用于将分段时间长度的值与和所述呈现时间范围的开始相对应的时间入口点进行比较,以确定初始分段索引的程序代码;
用于评估所述初始分段索引、所述可变分段范围、所述分段时间长度和所述可变分段范围,以确定期望的分段索引的程序代码;
用于基于所述期望的分段索引和所述请求格式模板来生成与所述内容请求相对应的文件请求的程序代码;
用于向所述网络发送消息,并且从所述网络接收消息的网络接口;以及
用于使用所述文件请求来请求至少一个文件的程序代码。
15.根据权利要求14所述的客户端设备,其中,所述网络接口是无线网络接口。
16.根据权利要求14所述的客户端设备,其中,所述网络接口是有线网络接口。
17.根据权利要求14所述的客户端设备,其中,所述文件请求是URL,所述请求是使用所述URL的HTTP请求。
18.根据权利要求14所述的客户端设备,还包括:
用于重复文件请求,直到接收到包含具有时间出口点的内容的分段为止的程序代码,其中所述时间出口点与所述呈现时间范围的结束相对应、或者晚于所述呈现时间范围的结束。
19.根据权利要求14所述的客户端设备,其中,涉及所述分段时间长度的所述变化是时间范围,使得分段呈现时间位于以下两个端点之间并且包括这两个端点的范围内:所述分段时间长度、所述分段时间长度加上所述变化的时间范围。
20.根据权利要求14所述的客户端设备,其中,涉及所述分段时间长度的所述变化是比例P,使得分段呈现时间位于以下两个端点之间并且包括这两个端点的范围内:所述分段时间长度的1.0倍、所述分段时间长度的1+P倍。
21.根据权利要求14所述的客户端设备,其中,涉及所述分段时间长度的变化是时间范围,使得分段呈现时间能够大于或者小于所述分段时间长度,其中所述分段时间长度包括所述变化的所述时间范围。
CN201280049392.XA 2011-08-31 2012-08-31 在针对自适应http流的表示之间提供改进切换的切换信令方法 Expired - Fee Related CN103858440B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161529656P 2011-08-31 2011-08-31
US61/529,656 2011-08-31
US13/545,697 2012-07-10
US13/545,697 US9253233B2 (en) 2011-08-31 2012-07-10 Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
PCT/US2012/053394 WO2013033565A1 (en) 2011-08-31 2012-08-31 Switch signaling methods providing improved switching between representations for adaptive http streaming

Publications (2)

Publication Number Publication Date
CN103858440A true CN103858440A (zh) 2014-06-11
CN103858440B CN103858440B (zh) 2017-10-31

Family

ID=46852386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280049392.XA Expired - Fee Related CN103858440B (zh) 2011-08-31 2012-08-31 在针对自适应http流的表示之间提供改进切换的切换信令方法

Country Status (6)

Country Link
US (1) US9253233B2 (zh)
EP (1) EP2752025A1 (zh)
JP (1) JP6054398B2 (zh)
KR (1) KR101575740B1 (zh)
CN (1) CN103858440B (zh)
WO (1) WO2013033565A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105594219A (zh) * 2014-07-31 2016-05-18 Lg电子株式会社 用于广播信号的发射/接收处理的设备和方法
CN106303562A (zh) * 2016-09-20 2017-01-04 天津大学 基于pi控制的多视点视频自适应传输控制算法
WO2017088394A1 (zh) * 2015-11-24 2017-06-01 乐视控股(北京)有限公司 在线直播视频播放器及方法
CN107077543A (zh) * 2014-09-23 2017-08-18 华为技术有限公司 流媒体中内容成分的所有权标识、信令和处理
CN107426629A (zh) * 2017-06-19 2017-12-01 网宿科技股份有限公司 一种流媒体文件处理方法及直播系统
CN107534680A (zh) * 2015-04-20 2018-01-02 高通股份有限公司 用于通过广播支持dash的进一步设备定时调整和方法
CN107888993A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种视频数据的处理方法及装置
CN108668179A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 媒体索引文件的传输方法及相关设备
CN110140335A (zh) * 2016-11-10 2019-08-16 瑞典爱立信有限公司 用于改进递送性能的资源分段
CN110995788A (zh) * 2019-11-13 2020-04-10 广州辰河质检技术有限公司 一种http服务器断点续传上传文件存储的实现方法
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
CN113366807A (zh) * 2018-12-28 2021-09-07 腾讯美国有限责任公司 实时流传输期间广告持续时间的动态缩短
CN113574903A (zh) * 2019-03-14 2021-10-29 诺基亚技术有限公司 针对媒体内容中的后期绑定的方法和装置
CN114145037A (zh) * 2019-07-22 2022-03-04 上海诺基亚贝尔股份有限公司 信息段传输
CN114145037B (zh) * 2019-07-22 2024-04-19 上海诺基亚贝尔股份有限公司 信息段传输

Families Citing this family (139)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP2355360B1 (en) 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
US7139960B2 (en) * 2003-10-06 2006-11-21 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
EP2202888A1 (en) 2004-05-07 2010-06-30 Digital Fountain, Inc. File download and streaming system
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US11303684B2 (en) 2006-09-14 2022-04-12 Opentv, Inc. Methods and systems for data transmission
US8335873B2 (en) * 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
CN101802797B (zh) 2007-09-12 2013-07-17 数字方敦股份有限公司 生成和传达源标识信息以实现可靠的通信
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
KR101781873B1 (ko) * 2010-04-19 2017-09-26 엘지전자 주식회사 인터넷 기반 컨텐츠 송수신 방법 및 그를 이용한 송수신 장치
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US8938619B2 (en) * 2010-12-29 2015-01-20 Adobe Systems Incorporated System and method for decrypting content samples including distinct encryption chains
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9264508B2 (en) 2011-08-19 2016-02-16 Time Warner Cable Enterprises Llc Apparatus and methods for reduced switching delays in a content distribution network
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
EP2769523A4 (en) * 2011-10-17 2015-07-22 Ericsson Telefon Ab L M ADAPTIVE CONTINUOUS DIFFUSION METHOD, LOCAL STORAGE AND ENHANCED POST-STORAGE QUALITY OF A CONTENT FILE
KR101922552B1 (ko) * 2011-12-06 2018-11-29 삼성전자주식회사 멀티미디어 컨텐트 전송 시스템에서 적응적 스트리밍을 이용한 트래픽 제어 방법 및 장치
US9930379B2 (en) 2012-01-31 2018-03-27 Comcast Cable Communications, Llc System and method for data stream fragmentation
EP2829012A4 (en) * 2012-03-21 2015-12-23 Irdeto Bv METHOD AND SYSTEM FOR CHAIN TRANSFORMATION
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US9270461B2 (en) * 2012-04-27 2016-02-23 Futurewei Technologies, Inc. System and method for efficient support for short cryptoperiods in template mode
EP2868097A4 (en) 2012-06-28 2016-03-23 Ericsson Ab METHOD AND SYSTEM FOR ADVERTISING INSERTION IN OTT (OVER THE TOP) DISTRIBUTION OF LIVE MULTIMEDIA CONTENT
TWI606716B (zh) * 2012-07-09 2017-11-21 Vid衡器股份有限公司 多層視訊編碼編解碼器架構
JP6064249B2 (ja) 2012-07-09 2017-01-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 動的適応ストリーミングオーバーハイパーテキスト転送プロトコルクライアント挙動フレームワークおよびセッション管理の実装
US9813740B2 (en) * 2012-08-24 2017-11-07 Google Inc. Method and apparatus for streaming multimedia data with access point positioning information
CN103702237A (zh) * 2012-09-28 2014-04-02 北京大学 Http流媒体的速率自适方法及装置
FR2996715A1 (fr) * 2012-10-09 2014-04-11 France Telecom Heritage de parametres d'identifiant universel de ressource (uri)
JP6289478B2 (ja) * 2012-10-12 2018-03-07 キヤノン株式会社 ビデオデータをストリーミングするための方法および対応するデバイス
JP6239629B2 (ja) 2012-10-26 2017-11-29 インテル コーポレイション ビデオ方位に基づくマルチメディア適応
JP6105741B2 (ja) 2012-10-26 2017-03-29 インテル・コーポレーション ビデオの向きの調整(cvo)を伴うストリーミング
US9357239B2 (en) * 2012-11-16 2016-05-31 Adobe Systems Incorporated Converting live streaming content to video-on-demand streaming content
US8868964B2 (en) * 2012-11-20 2014-10-21 Adobe Systems Incorporated Method and apparatus for supporting failover for live streaming video
CN103873926B (zh) * 2012-12-13 2017-03-22 腾讯科技(深圳)有限公司 下载并播放媒体文件的方法及系统
EP2944089B1 (en) * 2013-01-11 2018-03-07 Telefonaktiebolaget LM Ericsson (publ) Technique for operating client and server devices in a broadcast communication network
EP3073712B1 (en) * 2013-01-16 2019-06-19 Huawei Technologies Co., Ltd. Url parameter insertion and addition in adaptive streaming
EP2896189B1 (en) * 2013-01-16 2016-09-14 Huawei Technologies Co., Ltd. Storing and transmitting content for downloading and streaming
US9258289B2 (en) * 2013-04-29 2016-02-09 Arbor Networks Authentication of IP source addresses
FR3005820B1 (fr) 2013-05-17 2015-05-29 Envivio France Procede de gestion de listes de lecture personnalisees du type comprenant un gabarit d'uri et une liste d'identifiants de segments.
US9722852B2 (en) * 2013-05-24 2017-08-01 Cisco Technology, Inc. On-demand encapsulating of timed metadata in a network environment
JP2015012305A (ja) * 2013-06-26 2015-01-19 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
US9814037B2 (en) * 2013-06-28 2017-11-07 Intel Corporation Method for efficient channel estimation and beamforming in FDD system by exploiting uplink-downlink correspondence
JP6149562B2 (ja) * 2013-07-12 2017-06-21 富士通株式会社 ストリーム配信システム、ストリーム作成装置、ストリーム配信方法およびストリーム作成方法
BR112016000427B1 (pt) * 2013-07-17 2023-05-09 Sony Corporation Dispositivo, método e sistema de suprimento de conteúdo, e, dispositivo terminal
FR3009161B1 (fr) * 2013-07-24 2015-09-11 Expway Procede de synchronisation lors du traitement par un lecteur multimedia d'un contenu multimedia transmis par un service mbms
US8718445B1 (en) 2013-09-03 2014-05-06 Penthera Partners, Inc. Commercials on mobile devices
US20150089073A1 (en) * 2013-09-25 2015-03-26 Ericsson Television Inc System and method for effectuating fast channel change in an adpative streaming environment
US9444856B2 (en) 2013-09-25 2016-09-13 Ericsson Ab System and method for managing adjacent channels in an adaptive streaming environment
US9244916B2 (en) * 2013-10-01 2016-01-26 Penthera Partners, Inc. Downloading media objects
CN107147942B (zh) * 2013-10-02 2021-01-26 杜比实验室特许公司 视频信号传输方法、设备、装置以及存储介质
US9270721B2 (en) * 2013-10-08 2016-02-23 Qualcomm Incorporated Switching between adaptation sets during media streaming
US10116943B2 (en) * 2013-10-16 2018-10-30 Nvidia Corporation Adaptive video compression for latency control
US20150120819A1 (en) * 2013-10-25 2015-04-30 Futurewei Technologies Inc. System and method for associating representations in adaptive streaming
US9621613B1 (en) * 2013-11-05 2017-04-11 Visualon, Inc. Bitrate adaptation transitioning using key frames
US20170006315A1 (en) * 2013-11-27 2017-01-05 Interdigital Patent Holdings, Inc. Media presentation description
CN105874486B (zh) * 2013-11-28 2020-10-27 帕特里克·弗尔韦特 用于提供定性的集群知识的平台设备
US11657109B2 (en) 2013-11-28 2023-05-23 Patrick Faulwetter Platform device for providing quantitative collective knowledge
GB2521845B (en) * 2014-01-03 2021-07-07 British Broadcasting Corp Content delivery
US9210207B2 (en) * 2014-02-13 2015-12-08 Ericsson Ab Time-sensitive content manipulation in adaptive streaming buffer
US10504200B2 (en) 2014-03-13 2019-12-10 Verance Corporation Metadata acquisition using embedded watermarks
JP2017514345A (ja) 2014-03-13 2017-06-01 ベランス・コーポレイション 埋め込みコードを用いた対話型コンテンツ取得
US20150261753A1 (en) * 2014-03-13 2015-09-17 Verance Corporation Metadata acquisition using embedded codes
US9794311B2 (en) 2014-03-18 2017-10-17 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US9596323B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing client side transmission functionality
US9596281B2 (en) 2014-03-18 2017-03-14 Qualcomm Incorporated Transport accelerator implementing request manager and connection manager functionality
US9350484B2 (en) 2014-03-18 2016-05-24 Qualcomm Incorporated Transport accelerator implementing selective utilization of redundant encoded content data functionality
US9860612B2 (en) * 2014-04-10 2018-01-02 Wowza Media Systems, LLC Manifest generation and segment packetization
CN105100887A (zh) * 2014-05-15 2015-11-25 中兴通讯股份有限公司 节目播放控制方法及装置
US20150350622A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Packed i-frames
EP3183883A4 (en) 2014-08-20 2018-03-28 Verance Corporation Watermark detection using a multiplicity of predicted patterns
US9596285B2 (en) * 2014-09-11 2017-03-14 Harman International Industries, Incorporated Methods and systems for AVB networks
US10187680B2 (en) * 2014-11-11 2019-01-22 Cisco Technology, Inc. Adaptive bit rate system architectures using named domain networking
US10735293B2 (en) * 2014-11-27 2020-08-04 Cellos Software Ltd Method and network monitoring device for estimating web page download time on a user device
WO2016100916A1 (en) 2014-12-18 2016-06-23 Verance Corporation Service signaling recovery for multimedia content using embedded watermarks
KR102326282B1 (ko) 2015-02-09 2021-11-15 한국전자통신연구원 대역폭에 적응적인 대쉬 기반 컨텐츠 제공 장치 및 방법
US10270823B2 (en) * 2015-02-10 2019-04-23 Qualcomm Incorporated Low latency video streaming
EP3062474B1 (en) * 2015-02-24 2018-09-26 Alcatel-Lucent España, S.A. Method, device, computer program product and storage medium for distributing file requests in adaptive streaming systems
US10659507B2 (en) * 2015-03-02 2020-05-19 Qualcomm Incorporated Indication for partial segment
KR102269929B1 (ko) * 2015-03-04 2021-06-28 주식회사 알티캐스트 영상 서비스 제공 방법, 사용자 단말기 및 컴퓨터 프로그램
CN106034262B (zh) * 2015-03-13 2021-01-22 中兴通讯股份有限公司 自适应流媒体处理方法及装置
US9883221B1 (en) 2015-03-25 2018-01-30 Concurrent Computer Corporation System and method for optimizing real-time video-on-demand recording in a content delivery network
WO2016155800A1 (en) * 2015-03-31 2016-10-06 Irdeto B.V. Accessing content
US9973562B2 (en) 2015-04-17 2018-05-15 Microsoft Technology Licensing, Llc Split processing of encoded video in streaming segments
CN104869477A (zh) * 2015-05-14 2015-08-26 无锡天脉聚源传媒科技有限公司 一种视频分段播放的方法及装置
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
WO2017034506A1 (en) * 2015-08-27 2017-03-02 Intel IP Corporation Indication of tdd uplink and downlink configurations
US10027733B2 (en) * 2015-09-11 2018-07-17 YipTV, Inc. Method and apparatus for viewing and filtering media content
US10152080B2 (en) * 2015-09-23 2018-12-11 Adobe Systems Incorporated Power efficient multimedia content streaming based on media segment duration
US10158682B2 (en) 2015-09-23 2018-12-18 Adobe Systems Incorporated Power efficient multimedia content streaming based on a server push
JP7109363B2 (ja) * 2016-01-28 2022-07-29 サブプライ ソリューションズ エルティーディー. オーディオコンテンツを提供する方法およびシステム
KR102287703B1 (ko) * 2016-02-16 2021-08-10 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 효율적인 적응적 스트리밍
US10652594B2 (en) 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content
US11617019B2 (en) * 2016-07-28 2023-03-28 Qualcomm Incorporated Retrieving and accessing segment chunks for media streaming
US20180109577A1 (en) * 2016-10-13 2018-04-19 Sharp Laboratories Of America, Inc. Systems and methods for enabling communications associated with digital media distribution
US10642917B2 (en) * 2016-11-14 2020-05-05 Triton Us Vp Acquisition Co. Method and device for sharing segmented video content across multiple manifests
US10666707B2 (en) * 2017-01-11 2020-05-26 Microsoft Technology Licensing, Llc Nonconsecutive file downloading
US10225603B2 (en) * 2017-03-13 2019-03-05 Wipro Limited Methods and systems for rendering multimedia content on a user device
US10499066B2 (en) * 2017-04-14 2019-12-03 Nokia Technologies Oy Method and apparatus for improving efficiency of content delivery based on consumption data relative to spatial data
US10873775B2 (en) * 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
US10652166B2 (en) * 2017-06-27 2020-05-12 Cisco Technology, Inc. Non-real time adaptive bitrate recording scheduler
US10958948B2 (en) * 2017-08-29 2021-03-23 Charter Communications Operating, Llc Apparatus and methods for latency reduction in digital content switching operations
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
US11438647B2 (en) 2018-05-11 2022-09-06 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a manifest file
US11431779B2 (en) 2018-06-07 2022-08-30 Sony Group Corporation Network controlled uplink media transmission for a collaborative media production in network capacity constrained scenarios
FR3082386A1 (fr) * 2018-06-08 2019-12-13 Orange Adaptation de debit d'une session de communication en voix sur ip
CN112585921B (zh) 2018-08-20 2023-04-18 索尼公司 提供事件协调的上行链路网络辅助的方法和网络元件
CN112585922B (zh) 2018-08-20 2023-05-23 索尼公司 提供辅助的方法、提供信息的方法、流传输的方法和设备
CN109274696A (zh) * 2018-09-20 2019-01-25 青岛海信电器股份有限公司 基于dash协议的流媒体播放方法及装置
US11089103B1 (en) * 2018-09-26 2021-08-10 Amazon Technologies, Inc. Content management in a distributed cache of a wireless mesh network
US10986387B1 (en) 2018-09-26 2021-04-20 Amazon Technologies, Inc. Content management for a distributed cache of a wireless mesh network
JP6485935B1 (ja) * 2018-10-18 2019-03-20 ベルフェイス株式会社 オンラインコミュニケーションのレビューシステム、方法、及びコンピュータプログラム
US11176269B2 (en) * 2019-03-08 2021-11-16 International Business Machines Corporation Access control of specific encrypted data segment
KR20210135226A (ko) * 2019-03-11 2021-11-12 소니그룹주식회사 정보 처리 장치, 재생 처리 장치, 정보 처리 방법 및 재생 처리 방법
US11564018B2 (en) 2019-10-02 2023-01-24 Qualcomm Incorporated Random access at resync points of dash segments
US11128688B2 (en) 2019-10-16 2021-09-21 Disney Enterprises, Inc. Transcoder conditioning for segment fluidity
CN112969089B (zh) * 2019-12-03 2022-07-12 华为技术有限公司 一种http请求传输方法及设备
US11228796B2 (en) * 2020-01-07 2022-01-18 Tencent America LLC Pattern addressing for session-based dash operations
KR102287429B1 (ko) * 2020-02-03 2021-08-06 주식회사 엘지유플러스 스트리밍 서비스를 통한 동영상 출력 방법 및 장치
US11722741B2 (en) 2021-02-08 2023-08-08 Verance Corporation System and method for tracking content timeline in the presence of playback rate changes
US11531660B2 (en) * 2021-04-20 2022-12-20 Cisco Technology, Inc. Analyzing data module versions for aliases and backwards compatibility
US11799700B1 (en) * 2022-08-31 2023-10-24 Qualcomm Incorporated Decoding multi-level coded (MLC) systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1298931A2 (en) * 2001-09-20 2003-04-02 Oplayo Oy Adaptive media stream
CN101048768A (zh) * 2003-04-03 2007-10-03 国际商业机器公司 用于自适应媒体服务的多种描述提示和交换
WO2011038013A2 (en) * 2009-09-22 2011-03-31 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
WO2011070552A1 (en) * 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
CN104040945A (zh) * 2011-08-01 2014-09-10 高通股份有限公司 用于将http上的动态自适应流媒体(dash)初始化段描述片段作为用户服务描述片段传送的方法和装置

Family Cites Families (549)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5455823A (en) 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (de) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Frequenzanalyseverfahren
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (ja) 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5517508A (en) 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
CA2219379A1 (en) 1995-04-27 1996-10-31 Cadathur V. Chakravarthy High integrity transport for time critical multimedia networking applications
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US5805825A (en) 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6079041A (en) 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
US5754563A (en) 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
KR0170298B1 (ko) 1995-10-10 1999-04-15 김광호 디지탈 비디오 테이프의 기록 방법
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
JP3305183B2 (ja) 1996-01-12 2002-07-22 株式会社東芝 ディジタル放送受信端末装置
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (ko) 1996-12-17 2000-07-15 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6044485A (en) 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
EP0854650A3 (en) 1997-01-17 2001-05-02 NOKIA TECHNOLOGY GmbH Method for addressing a service in digital video broadcasting
US6014706A (en) 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
WO1998039927A1 (en) 1997-03-07 1998-09-11 Sanyo Electric Co., Ltd. Digital broadcast receiver and display
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE19716011A1 (de) 1997-04-17 1998-10-22 Abb Research Ltd Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
US6226259B1 (en) 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5970098A (en) 1997-05-02 1999-10-19 Globespan Technologies, Inc. Multilevel encoder
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
EP0933768A4 (en) 1997-05-19 2000-10-04 Sanyo Electric Co DIGITAL MODULATION AND DEMODULATION
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (ko) 1997-06-25 2000-01-15 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US6175944B1 (en) 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US5933056A (en) 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (fr) 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6849803B1 (en) 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
EP1075762A1 (en) 1998-04-02 2001-02-14 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
CN1342354A (zh) 1998-09-04 2002-03-27 美国电报电话公司 在一种多天线装置中组合信道编码和空间一分块编码
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US7243285B2 (en) 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6704370B1 (en) 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
IT1303735B1 (it) 1998-11-11 2001-02-23 Falorni Italia Farmaceutici S Acidi ialuronici reticolati e loro usi medici.
US6408128B1 (en) 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US6483736B2 (en) 1998-11-16 2002-11-19 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (ja) 1998-11-17 2000-05-30 Toshiba Corp インターリーブ・デインターリーブ回路
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
ES2185244T3 (es) 1998-12-03 2003-04-16 Fraunhofer Ges Forschung Aparato y procedimiento para transmitir informacion y aparato y procedimiento para recibir informacion.
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6223324B1 (en) 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
JP3926499B2 (ja) 1999-01-22 2007-06-06 株式会社日立国際電気 畳み込み符号軟判定復号方式の受信装置
US6618451B1 (en) 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
KR20010043284A (ko) 1999-03-03 2001-05-25 이데이 노부유끼 송신 장치, 수신 장치, 송수신 시스템, 송신 방법 및 수신방법
US6785323B1 (en) 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6466698B1 (en) 1999-03-25 2002-10-15 The United States Of America As Represented By The Secretary Of The Navy Efficient embedded image and video compression system using lifted wavelets
JP3256517B2 (ja) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
US6609223B1 (en) 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
MY130203A (en) 1999-05-06 2007-06-29 Sony Corp Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
KR100416996B1 (ko) 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
US6229824B1 (en) 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
JP2000353969A (ja) 1999-06-11 2000-12-19 Sony Corp デジタル音声放送の受信機
US6577599B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Small-scale reliable multicasting
IL141800A0 (en) 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6643332B1 (en) 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
JP2003510734A (ja) 1999-09-27 2003-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストリーミングのエミュレート用ファイル分割
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US20020009137A1 (en) 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
WO2001058130A2 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Coding method
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
JP2001251287A (ja) 2000-02-24 2001-09-14 Geneticware Corp Ltd ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法
DE10009443A1 (de) 2000-02-29 2001-08-30 Philips Corp Intellectual Pty Empfänger und Verfahren zum Detektieren und Dekodieren eines DQPSK-modulierten und kanalkodierten Empfangssignals
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
US6384750B1 (en) 2000-03-23 2002-05-07 Mosaid Technologies, Inc. Multi-stage lookup for translating between signals of different bit lengths
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
JP2001274776A (ja) 2000-03-24 2001-10-05 Toshiba Corp 情報データ伝送システムとその送信装置及び受信装置
US6851086B2 (en) 2000-03-31 2005-02-01 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US8572646B2 (en) 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
US7073191B2 (en) 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
US6742154B1 (en) 2000-05-25 2004-05-25 Ciena Corporation Forward error correction codes for digital optical network optimization
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (ko) 2000-08-19 2004-09-04 엘지전자 주식회사 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법
JP2002073625A (ja) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> 放送番組に同期した情報提供の方法、サーバ及び媒体
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7151754B1 (en) 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7613183B1 (en) 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6694478B1 (en) 2000-11-07 2004-02-17 Agere Systems Inc. Low delay channel codes for correcting bursts of lost packets
US6732325B1 (en) 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7072971B2 (en) 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
KR100908954B1 (ko) 2000-12-15 2009-07-22 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 오디오 또는 비디오 자료의 전송방법 및 장치
JP4087706B2 (ja) 2000-12-15 2008-05-21 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー オーディオおよび、またはビデオマテリアルの送信および受信
US6850736B2 (en) 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US7143433B1 (en) 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US20020085013A1 (en) 2000-12-29 2002-07-04 Lippincott Louis A. Scan synchronized dual frame buffer graphics subsystem
NO315887B1 (no) 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US8595340B2 (en) 2001-01-18 2013-11-26 Yahoo! Inc. Method and system for managing digital content, including streaming media
DE10103387A1 (de) 2001-01-26 2002-08-01 Thorsten Nordhoff Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung
FI118830B (fi) 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
KR100464360B1 (ko) 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US6785836B2 (en) 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
US6820221B2 (en) 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7010052B2 (en) 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US7035468B2 (en) 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US6497479B1 (en) 2001-04-27 2002-12-24 Hewlett-Packard Company Higher organic inks with good reliability and drytime
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7003712B2 (en) 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
EP1670259A3 (en) 2002-01-23 2010-03-03 Nokia Corporation Grouping of image frames in video coding
EP1472847A1 (en) 2002-01-30 2004-11-03 Koninklijke Philips Electronics N.V. Streaming multimedia data over a network having a variable bandwidth
US7249291B2 (en) 2002-02-15 2007-07-24 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
EP1495566A4 (en) 2002-04-15 2005-07-20 Nokia Corp RLP LOGIC LAYER OF A COMMUNICATION STATION
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP4134027B2 (ja) 2002-04-25 2008-08-13 シャープ株式会社 画像符号化装置、画像復号装置、及び画像記録装置
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
AU2002368007A1 (en) 2002-06-11 2003-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Generation of mixed media streams
EP2278718B1 (en) 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US6956875B2 (en) 2002-06-19 2005-10-18 Atlinks Usa, Inc. Technique for communicating variable bit rate data over a constant bit rate link
JP4154569B2 (ja) 2002-07-10 2008-09-24 日本電気株式会社 画像圧縮伸長装置
JP4120461B2 (ja) 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
AU2003251964A1 (en) 2002-07-16 2004-02-02 Nokia Corporation A method for random access and gradual picture refresh in video coding
WO2004019521A1 (ja) 2002-07-31 2004-03-04 Sharp Kabushiki Kaisha データ通信装置、その間欠通信方法、その方法を記載するプログラム、及びそのプログラムを記録する記録媒体
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
EP1529389B1 (en) 2002-08-13 2016-03-16 Nokia Technologies Oy Symbol interleaving
US6985459B2 (en) 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
EP2355360B1 (en) 2002-10-05 2020-08-05 QUALCOMM Incorporated Systematic encoding and decoding of chain reaction codes
JP2004135013A (ja) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd 伝送装置及び伝送方法
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
EP1559229A1 (en) 2002-10-30 2005-08-03 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
KR101044213B1 (ko) 2002-11-18 2011-06-29 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 비디오 전송 방법
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US7086718B2 (en) 2002-11-23 2006-08-08 Silverbrook Research Pty Ltd Thermal ink jet printhead with high nozzle areal density
JP2004192140A (ja) 2002-12-09 2004-07-08 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004193992A (ja) 2002-12-11 2004-07-08 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US8135073B2 (en) 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
US7293222B2 (en) 2003-01-29 2007-11-06 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US7525994B2 (en) 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
US7756002B2 (en) 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7062272B2 (en) 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
EP1455504B1 (en) 2003-03-07 2014-11-12 Samsung Electronics Co., Ltd. Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method
JP4173755B2 (ja) 2003-03-24 2008-10-29 富士通株式会社 データ伝送サーバ
US7610487B2 (en) 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US7408486B2 (en) 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
JP2004343701A (ja) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US7113773B2 (en) 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
JP2004348824A (ja) 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置
US7277697B2 (en) 2003-05-23 2007-10-02 Adesh Desai Method and system for establishing a teleconference over a telephony network
JP2004362099A (ja) 2003-06-03 2004-12-24 Sony Corp サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
MXPA05013237A (es) 2003-06-07 2006-03-09 Samsung Electronics Co Ltd Aparato y metodo para la organizacion e interpretacion de datos multimedia en un medio de grabacion.
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US20050028067A1 (en) 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
CN1864359B (zh) 2003-08-21 2012-04-18 高通股份有限公司 用于广播和组播内容跨小区边界和/或不同传送方案之间的无缝传送的方法和相关装置
IL157885A0 (en) 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
IL157886A0 (en) 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
EP2426940A1 (en) 2003-09-15 2012-03-07 The DirecTV Group, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
ATE337643T1 (de) 2003-09-30 2006-09-15 Ericsson Telefon Ab L M In-place entschachtelung von daten
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
US7139960B2 (en) 2003-10-06 2006-11-21 Digital Fountain, Inc. Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
US7614071B2 (en) 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
US7516232B2 (en) 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
ATE479142T1 (de) 2003-10-14 2010-09-15 Panasonic Corp Datenumsetzer
US7650036B2 (en) 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
EP1528808A3 (en) 2003-10-27 2008-03-26 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving a broadcast signal
JP2005136546A (ja) 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
DE602004011445T2 (de) 2003-11-03 2009-01-15 Broadcom Corp., Irvine FEC-Dekodierung mit dynamischen Parametern
US20050102371A1 (en) 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
EP1706946A4 (en) 2003-12-01 2006-10-18 Digital Fountain Inc PROCESSING DATA AGAINST ERASURES USING SUB-SYMBOL CODES
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7590118B2 (en) 2003-12-23 2009-09-15 Agere Systems Inc. Frame aggregation format
JP4536383B2 (ja) 2004-01-16 2010-09-01 株式会社エヌ・ティ・ティ・ドコモ データ受信装置およびデータ受信方法
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
KR100834750B1 (ko) 2004-01-29 2008-06-05 삼성전자주식회사 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
JP4321284B2 (ja) 2004-02-03 2009-08-26 株式会社デンソー ストリーミングデータ送信装置、および情報配信システム
US7599294B2 (en) 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
US20080243918A1 (en) 2004-03-30 2008-10-02 Koninklijke Philips Electronic, N.V. System and Method For Supporting Improved Trick Mode Performance For Disc Based Multimedia Content
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
EP2202888A1 (en) 2004-05-07 2010-06-30 Digital Fountain, Inc. File download and streaming system
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4405875B2 (ja) 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006074335A (ja) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> 伝送方法、伝送システム及び伝送装置
JP4576936B2 (ja) 2004-09-02 2010-11-10 ソニー株式会社 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム
JP2006115104A (ja) 2004-10-13 2006-04-27 Daiichikosho Co Ltd 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置
US7529984B2 (en) 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7751324B2 (en) 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
BRPI0518304A2 (pt) 2004-11-22 2008-11-11 Thomson Res Funding Corp mÉtodo e aparelho para mudar canal em sistema dsl
WO2006060036A1 (en) 2004-12-02 2006-06-08 Thomson Licensing Adaptive forward error correction
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
JP2006174032A (ja) 2004-12-15 2006-06-29 Sanyo Electric Co Ltd 画像データ伝送システム、画像データ受信装置及び画像データ送信装置
JP2006174045A (ja) 2004-12-15 2006-06-29 Ntt Communications Kk 画像配信装置、プログラム及び方法
US7398454B2 (en) 2004-12-21 2008-07-08 Tyco Telecommunications (Us) Inc. System and method for forward error correction decoding using soft information
JP4391409B2 (ja) 2004-12-24 2009-12-24 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
CN101116306A (zh) 2005-02-08 2008-01-30 艾利森电话股份有限公司 在分组交换网络上的按需多频道流会话
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
EP1856911A4 (en) 2005-03-07 2010-02-24 Ericsson Telefon Ab L M SWITCHING MULTIMEDIA CHANNELS
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
JP2008536420A (ja) 2005-04-13 2008-09-04 ノキア コーポレイション スケーラビリティ情報の符号化、格納およびシグナリング
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
WO2006125850A1 (en) 2005-05-24 2006-11-30 Nokia Corporation Method and apparatuses for hierarchical transmission/reception in digital broadcast
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
JP2007013436A (ja) 2005-06-29 2007-01-18 Toshiba Corp 符号化ストリーム再生装置
JP2007013675A (ja) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
US7725593B2 (en) 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1755248B1 (en) 2005-08-19 2011-06-22 Hewlett-Packard Development Company, L.P. Indication of lost segments across layer boundaries
CN101053249B (zh) 2005-09-09 2011-02-16 松下电器产业株式会社 图像处理方法、图像存储方法、图像处理装置及文件格式
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US9113147B2 (en) 2005-09-27 2015-08-18 Qualcomm Incorporated Scalability techniques based on content information
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
CA2562212C (en) 2005-10-05 2012-07-10 Lg Electronics Inc. Method of processing traffic information and digital broadcast system
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
MY147530A (en) 2005-10-11 2012-12-31 Nokia Corp System and method for efficient scalable stream adaptation
CN100442858C (zh) 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
WO2007047736A2 (en) 2005-10-19 2007-04-26 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
KR100759823B1 (ko) 2005-12-08 2007-09-18 한국전자통신연구원 제로 복귀 신호 발생 장치 및 그 방법
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US20070157267A1 (en) 2005-12-30 2007-07-05 Intel Corporation Techniques to improve time seek operations
PL1969856T3 (pl) 2006-01-05 2013-01-31 Ericsson Telefon Ab L M Zarządzanie plikiem zasobnika medialnego
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
MY148628A (en) 2006-01-11 2013-05-15 Nokia Corp Backward-compatible aggregation of pictures in scalable video coding
JP5199124B2 (ja) 2006-01-12 2013-05-15 エルジー エレクトロニクス インコーポレイティド 多視点ビデオの処理
WO2007086654A1 (en) 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
US7262719B2 (en) 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US20110087792A2 (en) 2006-02-07 2011-04-14 Dot Hill Systems Corporation Data replication method and apparatus
JP5237119B2 (ja) 2006-02-08 2013-07-17 トムソン ライセンシング ラプターコードをデコードする方法及び装置
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
JP2007228205A (ja) 2006-02-23 2007-09-06 Funai Electric Co Ltd ネットワークサーバ
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US20090100496A1 (en) 2006-04-24 2009-04-16 Andreas Bechtolsheim Media server system
US20080010153A1 (en) 2006-04-24 2008-01-10 Pugh-O'connor Archie Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
EP2302869A3 (en) 2006-07-20 2013-05-22 SanDisk Technologies Inc. An improved audio visual player apparatus and system and method of content distribution using the same
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
JP4241781B2 (ja) * 2006-08-10 2009-03-18 エプソンイメージングデバイス株式会社 電気光学装置、駆動回路および電子機器
US8209736B2 (en) 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
CN101518087B (zh) 2006-08-24 2013-05-01 诺基亚公司 用于指示媒体文件中轨道关系的系统和方法
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (ja) 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
WO2008054112A2 (en) 2006-10-30 2008-05-08 Lg Electronics Inc. Methods of performing random access in a wireless communication system
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
EP2095641A2 (en) 2006-11-14 2009-09-02 QUALCOMM Incorporated Systems and methods for channel switching
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP3901779B1 (en) 2007-01-05 2022-10-26 DivX, LLC Video distribution system including progressive playback
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
CN101669323A (zh) 2007-01-09 2010-03-10 诺基亚公司 用于在mbms文件修复中支持文件版本控制的方法
US20080172430A1 (en) 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CA2656144A1 (en) 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
CN101543018B (zh) 2007-01-12 2012-12-26 庆熙大学校产学协力团 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置
KR20080066408A (ko) 2007-01-12 2008-07-16 삼성전자주식회사 3차원 영상 처리 장치 및 방법
US7949195B2 (en) 2007-01-16 2011-05-24 Cisco Technology, Inc. Per block breakpoint determining for hybrid variable length coding
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
KR101385190B1 (ko) * 2007-02-07 2014-04-15 삼성디스플레이 주식회사 액정 표시 패널 및 이의 제조 방법
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
US20080278415A1 (en) * 2007-05-09 2008-11-13 Pioneer Corporation Method for driving plasma display panel
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
WO2008140261A2 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
CA2686557A1 (en) 2007-05-16 2008-11-27 Thomson Licensing Apparatus and method for encoding and decoding signals
FR2917262A1 (fr) 2007-06-05 2008-12-12 Thomson Licensing Sas Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable.
US8487982B2 (en) 2007-06-07 2013-07-16 Reald Inc. Stereoplexing for film and video applications
EP2393301A1 (en) 2007-06-11 2011-12-07 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image
CN101690118B (zh) 2007-06-20 2013-08-28 艾利森电话股份有限公司 用于改进的媒体会话管理的方法和设备
KR20100030648A (ko) 2007-06-26 2010-03-18 노키아 코포레이션 시간 레이어 스위칭 포인트들을 표시하는 시스템 및 방법
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (ja) 2007-07-23 2009-02-05 Hitachi Ltd 映像配信サーバおよび映像配信方法
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
CN101802797B (zh) 2007-09-12 2013-07-17 数字方敦股份有限公司 生成和传达源标识信息以实现可靠的通信
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
EP2046044B1 (en) 2007-10-01 2017-01-18 Cabot Communications Ltd A method and apparatus for streaming digital media content and a communication system
EP2181541B1 (en) 2007-10-09 2018-12-05 Samsung Electronics Co., Ltd. Apparatus and method for generating mac pdu in a mobile communication system
US8635360B2 (en) 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US20090125636A1 (en) 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
EP2215595B1 (en) 2007-11-23 2012-02-22 Media Patents S.L. A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems
US8543720B2 (en) 2007-12-05 2013-09-24 Google Inc. Dynamic bit rate scaling
JP5385598B2 (ja) 2007-12-17 2014-01-08 キヤノン株式会社 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム
US9313245B2 (en) 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (ko) 2008-01-31 2015-03-26 삼성전자주식회사 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8151174B2 (en) 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
EP2263341B1 (en) 2008-04-14 2018-09-19 Amazon Technologies, Inc. Method and apparatus for performing random access procedures
US20100049865A1 (en) 2008-04-16 2010-02-25 Nokia Corporation Decoding Order Recovery in Session Multiplexing
US8855199B2 (en) 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
KR101367886B1 (ko) 2008-05-07 2014-02-26 디지털 파운튼, 인크. 브로드캐스트 채널 상에서의 고속 채널 재핑 및 고품질 스트리밍 보호
WO2009140208A2 (en) 2008-05-12 2009-11-19 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (ja) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
CN101287107B (zh) 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7860996B2 (en) 2008-05-30 2010-12-28 Microsoft Corporation Media streaming with seamless ad insertion
US20100011274A1 (en) 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
KR101019634B1 (ko) 2008-09-04 2011-03-07 에스케이 텔레콤주식회사 미디어 전송 시스템 및 방법
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US8099473B2 (en) 2008-12-31 2012-01-17 Apple Inc. Variant streams for real-time or near real-time streaming
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
CN104768032B (zh) 2009-01-26 2018-06-01 汤姆森特许公司 用于视频解码的装置
US9025670B2 (en) 2009-01-29 2015-05-05 Dolby Laboratories Licensing Corporation Methods and devices for sub-sampling and interleaving multiple images, EG stereoscopic
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
WO2010120804A1 (en) 2009-04-13 2010-10-21 Reald Inc. Encoding, decoding, and distributing enhanced resolution stereoscopic video
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
WO2011009205A1 (en) 2009-07-22 2011-01-27 Jigsee Inc. Method of streaming media to heterogeneous client devices
US8355433B2 (en) * 2009-08-18 2013-01-15 Netflix, Inc. Encoding video streams for adaptive video streaming
US20120151302A1 (en) 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
KR101598317B1 (ko) 2009-09-02 2016-02-26 애플 인크. 무선 시스템들의 mac 패킷 데이터 유닛 구성
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9438861B2 (en) 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
CN107911332B (zh) 2009-11-04 2021-01-08 阿莫泰克有限公司 媒体内容流播的方法、系统和计算机可读介质
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
KR101709903B1 (ko) 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
CN102763396B (zh) * 2010-02-19 2016-05-25 瑞典爱立信有限公司 用于在http流传输中进行表示切换的方法和装置
JP5071495B2 (ja) 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
DE112011100869T5 (de) 2010-03-11 2012-12-20 Electronics And Telecommunications Research Institute Verfahren und Vorrichtung zum Senden/Empfangen von Daten in einem MIMO-System
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
KR101737325B1 (ko) 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
US8615023B2 (en) 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9129214B1 (en) 2013-03-14 2015-09-08 Netflix, Inc. Personalized markov chains

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1298931A2 (en) * 2001-09-20 2003-04-02 Oplayo Oy Adaptive media stream
CN101048768A (zh) * 2003-04-03 2007-10-03 国际商业机器公司 用于自适应媒体服务的多种描述提示和交换
WO2011038013A2 (en) * 2009-09-22 2011-03-31 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
WO2011070552A1 (en) * 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
CN104040945A (zh) * 2011-08-01 2014-09-10 高通股份有限公司 用于将http上的动态自适应流媒体(dash)初始化段描述片段作为用户服务描述片段传送的方法和装置

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105594219B (zh) * 2014-07-31 2019-08-20 Lg 电子株式会社 用于广播信号的发射/接收处理的设备和方法
US11805286B2 (en) 2014-07-31 2023-10-31 Lg Electronics Inc. Apparatus and method for transmitting/receiving processes of a broadcast signal
US10939149B2 (en) 2014-07-31 2021-03-02 Lg Electronics Inc. Apparatus and method for transmitting/receiving processes of a broadcast signal
CN105594219A (zh) * 2014-07-31 2016-05-18 Lg电子株式会社 用于广播信号的发射/接收处理的设备和方法
CN107077543A (zh) * 2014-09-23 2017-08-18 华为技术有限公司 流媒体中内容成分的所有权标识、信令和处理
CN107077543B (zh) * 2014-09-23 2020-01-03 华为技术有限公司 流媒体中内容成分的所有权标识、信令和处理
CN107534680A (zh) * 2015-04-20 2018-01-02 高通股份有限公司 用于通过广播支持dash的进一步设备定时调整和方法
WO2017088394A1 (zh) * 2015-11-24 2017-06-01 乐视控股(北京)有限公司 在线直播视频播放器及方法
CN106303562A (zh) * 2016-09-20 2017-01-04 天津大学 基于pi控制的多视点视频自适应传输控制算法
CN106303562B (zh) * 2016-09-20 2019-03-01 天津大学 基于pi控制的多视点视频自适应传输控制算法
CN107888993A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种视频数据的处理方法及装置
CN107888993B (zh) * 2016-09-30 2020-11-06 华为技术有限公司 一种视频数据的处理方法及装置
CN110140335A (zh) * 2016-11-10 2019-08-16 瑞典爱立信有限公司 用于改进递送性能的资源分段
US11722752B2 (en) 2016-11-10 2023-08-08 Telefonaktiebolaget Lm Ericsson (Publ) Resource segmentation to improve delivery performance
US11558677B2 (en) 2016-11-10 2023-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Resource segmentation to improve delivery performance
CN108668179A (zh) * 2017-03-27 2018-10-16 华为技术有限公司 媒体索引文件的传输方法及相关设备
CN108668179B (zh) * 2017-03-27 2021-05-14 华为技术有限公司 媒体索引文件的传输方法及相关设备
CN107426629A (zh) * 2017-06-19 2017-12-01 网宿科技股份有限公司 一种流媒体文件处理方法及直播系统
US11558443B2 (en) 2018-09-17 2023-01-17 Google Llc Methods, systems, and media for delivering manifestless streaming media content
US11882168B2 (en) 2018-09-17 2024-01-23 Google Llc Methods, systems, and media for delivering manifestless streaming media content
CN111837405B (zh) * 2018-09-17 2022-08-23 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
CN111837405A (zh) * 2018-09-17 2020-10-27 谷歌有限责任公司 用于传递无清单流媒体内容的方法、系统和介质
CN113366807A (zh) * 2018-12-28 2021-09-07 腾讯美国有限责任公司 实时流传输期间广告持续时间的动态缩短
CN113574903B (zh) * 2019-03-14 2023-07-28 诺基亚技术有限公司 针对媒体内容中的后期绑定的方法和装置
US11653054B2 (en) 2019-03-14 2023-05-16 Nokia Technologies Oy Method and apparatus for late binding in media content
CN113574903A (zh) * 2019-03-14 2021-10-29 诺基亚技术有限公司 针对媒体内容中的后期绑定的方法和装置
CN114145037A (zh) * 2019-07-22 2022-03-04 上海诺基亚贝尔股份有限公司 信息段传输
US11956845B2 (en) 2019-07-22 2024-04-09 Nokia Technologies Oy Transmission of segments of information
CN114145037B (zh) * 2019-07-22 2024-04-19 上海诺基亚贝尔股份有限公司 信息段传输
CN110995788A (zh) * 2019-11-13 2020-04-10 广州辰河质检技术有限公司 一种http服务器断点续传上传文件存储的实现方法
CN110995788B (zh) * 2019-11-13 2022-02-22 广州辰河质检技术有限公司 一种http服务器断点续传上传文件存储的实现方法

Also Published As

Publication number Publication date
JP6054398B2 (ja) 2016-12-27
CN103858440B (zh) 2017-10-31
KR101575740B1 (ko) 2015-12-08
US20130246643A1 (en) 2013-09-19
KR20140054400A (ko) 2014-05-08
US9253233B2 (en) 2016-02-02
EP2752025A1 (en) 2014-07-09
WO2013033565A1 (en) 2013-03-07
JP2014529970A (ja) 2014-11-13

Similar Documents

Publication Publication Date Title
CN103858440A (zh) 在针对自适应http流的表示之间提供改进切换的切换信令方法
US11770432B2 (en) Enhanced block-request streaming system for handling low-latency streaming
CN102550034B (zh) 使用块划分或请求控制以获得改善的客户端侧处置的增强型块请求流送
CN106209892B (zh) 使用可伸缩编码的增强型块请求流送
US9628536B2 (en) Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
CN104221390B (zh) 用于处置低等待时间流送的增强型块请求流送系统
CN102577307B (zh) 使用url模板和构造规则的增强型块请求流送
EP4111700A1 (en) Identification of elements in a group for dynamic element replacement
BR112014026741B1 (pt) Método para estruturar os dados de conteúdo a serem servidos utilizando um servidor de mídia, servidor de mídia e memória legível por computador

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171031

Termination date: 20190831

CF01 Termination of patent right due to non-payment of annual fee