一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

确定数据组块的可用性以用于网络流式传输媒体数据的制作方法

2022-10-26 21:28:14 来源:中国专利 TAG:

确定数据组块的可用性以用于网络流式传输媒体数据
1.本技术要求享受以下申请的优先权:于2021年3月24日递交的美国专利申请no.17/211,641和于2020年3月25日递交的美国临时专利申请no.62/994,725,每份申请的全部内容通过引用的方式被并入本文。美国专利申请no.17/211,641要求享受于2020年3月25日递交的美国临时专利申请no.62/994,725的权益。
技术领域
2.本公开内容涉及对经编码的视频数据的存储和传输。


背景技术:

3.数字视频能力可以被合并到各种各样的设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型计算机或台式计算机、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、视频电话会议设备等。数字视频设备实现视频压缩技术(诸如在由mpeg-2、mpeg-4、itu-t h.263或itu-t h.264/mpeg-4(第10部分,高级视频译码(avc))、itu-t h.265(也被称为高效率视频译码(hevc))定义的标准以及此类标准的扩展中描述的那些技术),以更加高效地发送和接收数字视频信息。
4.诸如音频和视频数据之类的媒体数据可以被分组化以进行发送或存储。媒体数据可以被组装成符合各种标准(诸如国际标准化组织(iso)的基媒体文件格式以及其扩展(诸如avc))中的任何一种的视频文件。


技术实现要素:

5.概括而言,本公开内容描述了用于确保数据的分段和组块的起点可用(诸如在基于http的动态自适应流式传输(dash)中,以及在一些示例中,用于低时延dash)的技术。在一些示例中,服务器设备和/或客户端设备可以确定服务的有效性(例如,作为两个示例,媒体内容的视频和/或音频表示)以确定服务遵从dash规范。作为一个示例,服务器设备和/或客户端设备可以执行dash-if一致性软件,该一致性软件对照规范中的承诺来测试服务供应的有效性。可以通过下载最少数据来进行对服务的有效性的确定。
6.在一些情况下,当访问服务的分段(例如,低时延的被组块化的分段)时,服务器设备和/或客户端设备(例如,经由一致性软件)可能访问不存在的数据。本公开内容描述了可以解决关于访问不存在的数据(诸如在dash中)的问题的示例。作为一个示例,可以在媒体呈现中包括指示随着时间推移分段和组块的起点可用的信息。此外,客户端设备(例如,dash客户端)和/或服务器设备(例如,dash服务器)可以被配置为避免访问不存在的数据(例如,基于对dash客户端的关于允许什么请求以及禁止什么请求以及当发生针对部分完成资源的请求时dash服务器的预期响应码的要求)。以这种方式,示例技术提供了对技术问题的技术解决方案,其为dash的改进提供了实际应用。
7.在一个示例中,一种传输媒体数据的方法包括:确定用于媒体呈现的清单文件包
括表示用于所述媒体呈现的分段的重新同步元素的增量时间值的数据;确定所述增量时间值的倍数;使用所述增量时间值的所述倍数来确定所述分段的当前可用于取回的组块的数量;以及向服务器设备发送针对所述分段的当前可用的所述组块的请求,其中,所述请求忽略所述分段的当前不可用的组块。
8.在另一示例中,一种用于传输媒体数据的设备包括:被配置为存储媒体数据的存储器;以及一个或多个处理器,其在电路中实现并且被配置为:确定用于媒体呈现的清单文件包括表示用于所述媒体呈现的分段的重新同步元素的增量时间值的数据;确定所述增量时间值的倍数;使用所述增量时间值的所述倍数来确定所述分段的当前可用于取回的组块的数量;向服务器设备发送针对所述分段的当前可用的所述组块的请求,其中,所述请求忽略所述分段的当前不可用的组块;以及将响应于所述请求而接收的组块的数据存储在所述存储器中。
9.在另一示例中,一种计算机可读存储介质具有存储在其上的指令,所述指令在被执行时使得处理器进行以下操作:确定用于媒体呈现的清单文件包括表示用于所述媒体呈现的分段的重新同步元素的增量时间值的数据;确定所述增量时间值的倍数;使用所述增量时间值的所述倍数来确定所述分段的当前可用于取回的组块的数量;以及向服务器设备发送针对所述分段的当前可用的所述组块的请求,其中,所述请求忽略所述分段的当前不可用的组块。
10.在另一示例中,一种用于传输媒体数据的设备包括:用于确定用于媒体呈现的清单文件包括表示用于所述媒体呈现的分段的重新同步元素的增量时间值的数据的单元;用于确定所述增量时间值的倍数的单元;用于使用所述增量时间值的所述倍数来确定所述分段的当前可用于取回的组块的数量的单元;以及用于向服务器设备发送针对所述分段的当前可用的所述组块的请求的单元,其中,所述请求忽略所述分段的当前不可用的组块。
11.在附图和以下描述中阐述了一个或多个示例的细节。根据说明书和附图以及根据权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
12.图1是示出根据本公开内容的技术的实现用于在网络上对媒体数据进行流式传输的技术的示例系统的框图。
13.图2是更详细地示出图1的取回单元的示例组件集合的框图。
14.图3是示出示例多媒体内容的元素的概念图。
15.图4是示出可以对应于表示的分段(segment)(诸如图3的分段之一)的示例视频文件的元素的框图。
16.图5是示出可以执行本公开内容的技术的示例低时延架构的概念图。
17.图6是示出被组块化的分段分布的示例的概念图。
18.图7是示出公共媒体应用格式(cmaf)组块结构的示例的表。
19.图8是示出分段的标记和重新同步点的示例的概念图。
20.图9是示出resync point元素和属性名称以及对应描述的表。
21.图10是示出resync索引的示例的概念图。
22.图11是示出resync point的@dt元素和@di属性的示例的概念图。
23.图12是示出用于执行本公开内容的技术的示例方法的流程图。
具体实施方式
24.概括而言,本公开内容描述了用于确定分段的可用于取回的组块的技术(诸如在基于http的动态自适应流式传输(dash)中,以及在一些示例中,针对低时延dash)。具体地,这些技术可以允许在分段本身完全可用之前确定组块何时可用。这些技术可以允许客户端设备在确定分段的组块可用时请求这些组块,而不是在请求该分段的数据之前等待该分段被完全形成。以这种方式,这些技术可以用于减少在流式传输实时捕获的媒体数据的背景下的时延。也就是说,一旦组块是可用的,客户端设备就可以请求分段的组块(子部分),而不是等待用于完全形成(例如,捕获、编码和封装)分段的全部时间量。
25.具体地,服务器设备可以向客户端设备发送清单文件(例如,dash中的媒体呈现描述(mpd))。清单文件可以通告清单文件是否包括用于分段的重新同步元素的增量时间值(例如,@dt属性)。当清单文件包括增量时间值时,客户端设备可以使用增量时间值来确定分段的特定组块何时可用。具体地,清单文件可以用信号通知用于分段的标称分段可用性开始时间(nsast)。当清单文件用信号通知用于分段的重新同步元素的增量时间值时,客户端设备可以使用增量时间值来确定分段的在当前时间处当前可用的组块的数量。
26.具体地,客户端设备可以确定第一组块在用信号通知的用于分段的nsast处是可用的。然后,客户端设备可以基于自从nsast以来已经经过的时间量来确定分段的后续组块的可用性。对于每一倍数的自从nsast以来已经经过的增量时间值,客户端设备可以确定该数量的组块当前是可用的。换句话说,在时间nsast n*@dt处(其中,n是整数倍),客户端设备可以确定分段的第一组块和n个额外组块可用于取回。当分段不具有重新同步元素时,客户端设备可以使用针对整体分段的请求来简单地请求分段,而不是请求该分段的个别组块。
27.此外,客户端设备可以从清单文件确定表示两个随机访问点(例如,两个重新同步元素)之间的最小数据大小的值,诸如@dimin值。客户端设备可以使用该值,以使用上面讨论的倍数来确定分段的在当前时间处可用于取回的数据量。具体地,如果当前时间再次是nsast n*@dt,则客户端设备可以确定分段的(n 1)*@dimin数据是可用的。因此,客户端设备可以构造http部分get请求,该http部分get请求指定定义包括n*@dimin数据的范围的“range:”报头。替代地,如果b表示分段的先前已经请求的最新字节,则客户端设备可以构造指定包括(n 1)*@dimin-b数据的范围的请求。
28.本公开内容的技术可以应用于符合根据以下各项中的任何一项封装的视频数据的视频文件:iso基媒体文件格式、可缩放视频译码(svc)文件格式、高级视频译码(avc)文件格式、第三代合作伙伴计划(3gpp)文件格式、和/或多视图视频译码(mvc)文件格式、或其它类似的视频文件格式。
29.在http(超文本传输协议)流式传输中,频繁使用的操作包括head、get和部分get。head操作取回与给定的统一资源定位符(url)或统一资源名称(urn)相关联的文件的报头,而不取回与url或urn相关联的有效载荷。get操作取回与给定的url或urn相关联的整个文件。部分get操作接收作为输入参数的字节范围,并且取回文件的连续数量的字节,其中字节数量对应于所接收的字节范围。因此,可以提供电影片段(fragment)以用于http流式传
输,因为部分get操作可以获得一个或多个个别的电影片段。在电影片段中,可以存在不同轨道(track)的若干轨道片段。在http流式传输中,媒体呈现可以是客户端可访问的结构化数据集合。客户端可以请求并且下载媒体数据信息以向用户呈现流式服务。
30.在使用http流式传输来对3gpp数据进行流式传输的示例中,针对多媒体内容的视频和/或音频数据可以存在多个表示。如下文所解释的,不同的表示可以对应于不同的译码特性(例如,视频译码标准的不同简档或级别)、不同的译码标准或译码标准的扩展(诸如多视图和/或可缩放扩展)、或不同的比特率。这样的表示的清单可以是在媒体呈现描述(mpd)数据结构中定义的。媒体呈现可以对应于http流式传输客户端设备可访问的结构化数据集合。http流式传输客户端设备可以请求并且下载媒体数据信息以向客户端设备的用户呈现流式传输服务。媒体呈现可以是在mpd数据结构中描述的,mpd数据结构可以包括mpd的更新。
31.媒体呈现可以包含一个或多个时段的序列。每个时段可以延长直到下一时段的开始为止,或者直到媒体呈现的结束为止(在最后一个时段的情况下)。每个时段可以包含针对相同媒体内容的一个或多个表示。表示可以是音频、视频、时序文本或其它此类数据的多个替代经编码版本之一。表示可以在编码类型(例如,对于视频数据而言,比特率、分辨率和/或编解码器、以及对于音频数据而言,比特率、语言和/或编解码器)方面不同。术语表示可以用于指代经编码的音频或视频数据中的与多媒体内容的特定时段相对应并且以特定方式编码的一部分。
32.特定时段的表示可以被分配给由mpd中的指示这些表示所属的适配集的属性指示的组。同一适配集中的表示通常被认为是彼此的替代,因为客户端设备可以在这些表示之间动态且无缝地切换,例如以执行带宽适配。例如,用于特定时段的视频数据的每个表示可以被分配给相同的适配集,使得可以选择这些表示中的任何表示进行解码以呈现多媒体内容的用于对应时段的媒体数据,诸如视频数据或音频数据。在一些示例中,在一个时段内的媒体内容可以通过来自组0的任何一个表示(如果存在的话)或者来自每个非零组的至多一个表示的组合来表示。用于时段的每个表示的时序数据可以是相对于该时段的开始时间来表达的。
33.表示可以包括一个或多个分段。每个表示可以包括初始化分段,或者表示的每个分段可以是自初始化的。当存在时,初始化分段可以包含用于访问表示的初始化信息。通常,初始化分段不包含媒体数据。分段可以由标识符唯一地引用,诸如统一资源定位符(url)、统一资源名称(urn)或统一资源标识符(uri)。mpd可以为每个分段提供标识符。在一些示例中,mpd还可以以range属性的形式提供字节范围,字节范围可以对应于用于在文件内通过url、urn或uri可访问的分段的数据。
34.可以选择不同的表示以用于基本上同时地取回不同类型的媒体数据。例如,客户端设备可以选择要从其取回分段的音频表示、视频表示和时序文本表示。在一些示例中,客户端设备可以选择特定的适配集以执行带宽适配。也就是说,客户端设备可以选择包括视频表示的适配集、包括音频表示的适配集和/或包括时序文本的适配集。替代地,客户端设备可以为某些类型的媒体(例如,视频)选择适配集,而为其它类型的媒体(例如,音频和/或时序文本)直接选择表示。
35.图1是示出了实现用于在网络上对媒体数据进行流式传输的技术的示例系统10的
框图。在该示例中,系统10包括内容准备设备20、服务器设备60和客户端设备40。客户端设备40和服务器设备60通过可以包括互联网的网络74通信地耦合。在一些示例中,内容准备设备20和服务器设备60也可以通过网络74或另一网络耦合,或者可以直接通信地耦合。在一些示例中,内容准备设备20和服务器设备60可以包括相同的设备。
36.在图1的示例中,内容准备设备20包括音频源22和视频源24。音频源22可以包括例如麦克风,其产生表示被捕获的要由音频编码器26编码的音频数据的电信号。替代地,音频源22可以包括存储先前记录的音频数据的存储介质、音频数据生成器(诸如计算机化的合成器)、或任何其它音频数据源。视频源24可以包括产生要由视频编码器28编码的视频数据的摄像机、利用先前记录的视频数据而编码的存储介质、视频数据生成单元(诸如计算机图形源)、或任何其它视频数据源。在所有示例中,内容准备设备20不一定通信地耦合到服务器设备60,而是可以将多媒体内容存储到由服务器设备60读取的单独介质。
37.原始音频和视频数据可以包括模拟或数字数据。模拟数据可以在被音频编码器26和/或视频编码器28编码之前被数字化。音频源22可以在讲话参与者正在讲话时从讲话参与者获得音频数据,并且视频源24可以同时获得讲话参与者的视频数据。在其它示例中,音频源22可以包括包含存储的音频数据的计算机可读存储介质,而视频源24可以包括包含存储的视频数据的计算机可读存储介质。以这种方式,在本公开内容中描述的技术可以被应用于实况的(live)、流式传输的、实时的(real-time)音频和视频数据或者被应用于被存档的、预先记录的音频和视频数据。
38.与视频帧相对应的音频帧通常是包含音频数据的音频帧,音频数据是与由视频源24捕获(或生成)的被包含在视频帧内的视频数据同时地、由音频源22捕获(或生成)的。例如,当讲话参与者通常通过讲话产生音频数据时,音频源22捕获音频数据,而视频源24同时(即,当音频源22正在捕获音频数据时)捕获讲话参与者的视频数据。因此,音频帧可以在时间上对应于一个或多个特定视频帧。相应地,对应于视频帧的音频帧通常对应于以下情形:音频数据和视频数据是同时被捕获的,并且针对其音频帧和视频帧分别包括同时被捕获的音频数据和视频数据。
39.在一些示例中,音频编码器26可以将表示用于每个经编码的音频帧的音频数据被记录的时间的时间戳编码到该经编码的音频帧中,并且类似地,视频编码器28可以将表示用于每个经编码的视频帧的视频数据被记录的时间的时间戳编码在该经编码的视频帧中。在这样的示例中,音频帧对应于视频帧可以包括含有时间戳的音频帧和含有相同时间戳的视频帧。内容准备设备20可以包括内部时钟,其中音频编码器26和/或视频编码器28可以根据该内部时钟来生成时间戳,或者音频源22和视频源24可以使用该内部时钟将音频数据和视频数据分别与时间戳相关联。
40.在一些示例中,音频源22可以向音频编码器26发送与音频数据被记录的时间相对应的数据,而视频源24可以向视频编码器28发送与视频数据被记录的时间相对应的数据。在一些示例中,音频编码器26可以将序列标识符编码到经编码的音频数据中,以指示经编码的音频数据的相对时间顺序,但是不一定指示音频数据被记录的绝对时间,并且类似地,视频编码器28也可以使用序列标识符来指示经编码的视频数据的相对时间顺序。类似地,在一些示例中,序列标识符可以被映射或以其它方式与时间戳相关。
41.音频编码器26通常产生经编码的音频数据的流,而视频编码器28产生经编码的视
频数据的流。每个个别的数据流(无论是音频还是视频)都可以被称为基本流。基本流是表示的单个的、经数字译码的(可能被压缩的)分量。例如,表示的经译码的视频或音频部分可以是基本流。在将基本流封装在视频文件内之前,可以将其转换为分组化基本流(pes)。在同一表示内,流id可以用于将属于一个基本流的pes分组与属于另一基本流的pes分组区分开。基本流的基础数据单元是分组化基本流(pes)分组。因此,经译码的视频数据通常对应于基本视频流。类似地,音频数据对应于一个或多个相应的基本流。
42.许多视频译码标准(诸如itu-t h.264/avc、以及高效率视频译码(hevc)标准、以及即将到来的通用视频译码(vvc)标准)定义了用于无错误比特流的语法、语义和解码过程,其中的任何一者符合某个简档或级别。视频译码标准通常不指定编码器,但是编码器被派给有保证所生成的比特流对于解码器来说是符合标准的任务。在视频译码标准的背景下,“简档”对应于应用于它们的算法、特征、或工具和约束的子集。例如,如由h.264标准所定义的,“简档”是由h.264标准所指定的整个比特流语法的子集。“级别”对应于与图片的分辨率、比特率和块处理率有关的解码器资源消耗的限制,诸如例如,解码器存储器和计算。可以利用profile_idc(简档指示符)值来用信号通知简档,而可以利用level_idc(级别指示符)值来用信号通知级别。
43.vvc标准将“简档”定义为vvc的语法的指定子集,并且将“级别”定义为关于可以由vvc的语法元素和变量采用的值的约束集。在一些示例中,在vvc中,针对所有简档定义了相同的级别集,其中每个级别的定义的大多数方面在不同的简档之间是共同的。在指定约束内,个别实现可以针对每个支持的简档支持不同级别。
44.例如,h.264标准认可的是,在由给定简档的语法施加的界限内,仍然可能需要编码器和解码器的性能的大变化,这取决于由比特流中的语法元素所采用的值,诸如指定的经解码的图片大小。h.264标准进一步认可的是,在许多应用中,实现能够处理特定简档内的语法的所有假设用途的解码器是既不实用也不经济的。因此,h.264标准将“级别”定义为对在比特流中的语法元素的值施加的指定的约束集合。这些约束可能是对值的简单限制。替代地,这些约束可以采取对值的算术组合的约束的形式(例如,图片宽度乘以图片高度乘以每秒解码的图片数量)。h.264标准还规定,个别实现针对每个支持的简档可以支持不同级别。
45.符合简档的解码器通常支持在简档中定义的所有特征。例如,作为译码特征,b图片译码在h.264/avc的基准简档中是不支持的,但是在h.264/avc的其它简档中是支持的。符合级别的解码器应当能够对不需要超出在该级别中定义的限制的资源的任何比特流进行解码。简档和级别的定义可以有助于可解释性。例如,在视频传输期间,可以为整个传输会话协商并且商定一对简档和级别定义。更具体地说,在h.264/avc中,级别可以定义对以下各项的限制:需要被处理的宏块数量、经解码图片缓冲器(dpb)大小、经译码图片缓冲器(cpb)大小、垂直运动矢量范围、每两个连续mb的运动矢量的最大数量、以及b块是否可以具有小于8x8个像素的子宏块分割。以这种方式,解码器可以确定该解码器是否能够对比特流进行正确地解码。
46.上文是关于h.264/avc来描述的。解码器可以类似地确定解码器是否能够对符合vvc或hevc的比特流进行正确地解码。
47.在图1的示例中,内容准备设备20的封装单元30从视频编码器28接收包括经译码
的视频数据的基本流,并且从音频编码器26接收包括经译码的音频数据的基本流。在一些示例中,视频编码器28和音频编码器26可以分别包括用于从经编码的数据形成pes分组的分组化器。在其它示例中,视频编码器28和音频编码器26可以分别与用于从经编码的数据形成pes分组的相应的分组化器进行对接。在其它示例中,封装单元30可以包括用于从经编码的音频和视频数据形成pes分组的分组化器。
48.视频编码器28可以以各种方式对多媒体内容的视频数据进行编码,以产生多媒体内容的处于各种比特率并且具有各种特性(诸如像素分辨率、帧速率、符合各种译码标准、符合用于各种译码标准的各个简档和/或简档的级别、具有一个或多个视图的表示(例如,用于二维或三维回放)或其它这样的特性)的不同表示。如在本公开内容中使用的表示可以包括音频数据、视频数据、文本数据(例如,用于隐藏式字幕)或其它这样的数据中的一者。表示可以包括基本流,诸如音频基本流或视频基本流。每个pes分组可以包括标识该pes分组所属的基本流的stream_id。封装单元30负责将基本流组装成各个表示的视频文件(例如,分段)。
49.封装单元30从音频编码器26和视频编码器28接收用于表示的基本流的pes分组,并且从pes分组形成对应的网络抽象层(nal)单元。可以将经译码的视频分段组织为nal单元,这些nal单元提供了寻址到诸如视频电话、存储、广播或流式传输之类的应用的“网络友好”视频表示。nal单元可以被分类为视频译码层(vcl)nal单元和非vcl nal单元。vcl单元可以包含核心压缩引擎,并且可以包括块、宏块和/或切片级数据。其它nal单元可以是非vcl nal单元。在一些示例中,在一个时间实例中通常被呈现为基本经译码图片的经译码图片可以被包含在访问单元中,访问单元可以包括一个或多个nal单元。
50.除此之外,非vcl nal单元还可以包括参数集nal单元和sei nal单元。参数集可以包含序列级别报头信息(在序列参数集(sps)中)和不频繁变化的图片级别报头信息(在图片参数集(pps)中)。利用参数集(例如,pps和sps),不需要为每个序列或图片重复不频繁变化的信息;因此可以提高译码效率。此外,使用参数集可以实现对重要报头信息的带外传输,从而避免为了错误恢复而对于冗余传输的需求。在带外传输示例中,可以在与其它nal单元(诸如sei nal单元)不同的信道上发送参数集nal单元。
51.补充增强信息(sei)可能包含对于从vcl nal单元解码经译码的图片样本而言不必要的信息,但是可能有助于与解码、显示、错误恢复和其它目的有关的过程。sei消息可以被包含在非vcl nal单元中。sei消息是一些标准规范的规范性部分,并且因此对于符合标准的解码器实现而言并非总是强制的。sei消息可以是序列级别sei消息或图片级别sei消息。一些序列级别信息可以被包含在sei消息中,诸如在svc示例中的可缩放性信息sei消息、以及在mvc中的视图可缩放性信息sei消息。这些示例sei消息可以传递关于例如操作点的提取和操作点的特性的信息。另外,封装单元30可以形成清单文件,诸如描述表示的特性的媒体呈现描述符(mpd)。封装单元30可以根据可扩展标记语言(xml)来将mpd格式化。
52.封装单元30可以将用于多媒体内容的一个或多个表示的数据以及清单文件(例如,mpd)一起提供给输出接口32。输出接口32可以包括网络接口、或用于写入存储介质的接口(诸如通用串行总线(usb)接口、cd或dvd刻录机或烧录机、与磁或闪速存储介质的接口、或用于存储或发送媒体数据的其它接口)。封装单元30可以将多媒体内容的表示中的每个表示的数据提供给输出接口32,输出接口32可以经由网络传输或存储介质将数据发送给服
务器设备60。在图1的示例中,服务器设备60包括用于存储各种多媒体内容64的存储介质62,每种多媒体内容包括相应的清单文件66和一个或多个表示68a-68n(表示68)。在一些示例中,输出接口32还可以直接向网络74发送数据。
53.在一些示例中,表示68可以被分成适配集。也就是说,表示68的各个子集可以包括相应的公共特性集,诸如编解码器、简档和级别、分辨率、视图数量、用于分段的文件格式、可以标识将与表示和/或要被解码和例如由扬声器呈现的音频数据一起显示的文本的语言或其它特性的文本类型信息、可以描述针对适配集中的表示的场景的相机角度或现实世界视角的相机角度信息、描述内容对于特定观众的适合性的评级信息等。
54.清单文件66可以包括指示与特定的适配集相对应的表示68的子集以及用于适配集的公共特性的数据。清单文件66还可以包括表示用于适配集中的个别表示的个别特性的数据,诸如比特率。以这种方式,适配集可以提供简化的网络带宽适配。可以使用清单文件66的适配集元素中的子元素来指示在适配集中的表示。
55.根据本公开内容的技术,清单文件66可以用信号通知表示68的分段的标称分段可用性开始时间(nsast)。清单文件66还可以用信号通知用于表示68的分段的重新同步元素的增量时间值。客户端设备40可以取回清单文件66,并且使用nsast和增量时间值来确定分段的组块的可用性。具体地,客户端设备40的取回单元52可以例如确定分段的第n组块在时间nsast (n-1)*@dt处是可用的,其中,@dt是用信号通知的增量时间值。因此,取回单元52可以在对应的时间处请求分段的组块,以便尽量接近于组块可用的时间来取回组块,从而减少与对分段的媒体数据进行流式传输相关联的时延。
56.服务器设备60包括请求处理单元70和网络接口72。在一些示例中,服务器设备60可以包括多个网络接口。此外,服务器设备60的任何或所有特征可以在内容递送网络的其它设备上实现,诸如路由器、桥接器、代理设备、交换机或其它设备。在一些示例中,内容递送网络的中间设备可以对多媒体内容64的数据进行高速缓存,并且包括基本上与服务器设备60的组件一致的组件。通常,网络接口72被配置为经由网络74发送和接收数据。
57.请求处理单元70被配置为从诸如客户端设备40之类的客户端设备接收对存储介质62的数据的网络请求。例如,请求处理单元70可以实现如在rfc 2616中(1999年6月,ietf,网络工作组,r.fielding等人的“hypertext transfer protocol

http/1.1”)中描述的超文本传输协议(http)版本1.1。也就是说,请求处理单元70可以被配置为接收http get或部分get请求,并且响应于所述请求而提供多媒体内容64的数据。请求可以指定表示68中的一个表示的分段(例如,使用该分段的url)。在一些示例中,请求还可以指定分段的一个或多个字节范围,由此包括部分get请求。请求处理单元70还可以被配置为对http head请求进行服务以提供表示68中的一个表示的分段的报头数据。在任何情况下,请求处理单元70可以被配置为处理请求以将请求的数据提供给进行请求的设备,诸如客户端设备40。
58.另外或替代地,请求处理单元70可以被配置为经由诸如embms之类的广播或多播协议来递送媒体数据。内容准备设备20可以以与所描述的基本相同的方式来创建dash分段和/或子分段,但是服务器设备60可以使用embms或另一广播或多播网络传输协议来递送这些分段或子分段。例如,请求处理单元70可以被配置为从客户端设备40接收多播组加入请求。也就是说,服务器设备60可以向包括客户端设备40的客户端设备通告与多播组相关联的互联网协议(ip)地址,该多播组与特定的媒体内容(例如,实况事件的广播)相关联。客户
端设备40进而可以提交用于加入多播组的请求。该请求可以在整个网络74(例如,组成网络74的路由器)中传播,从而使路由器将去往与多播组相关联的ip地址的业务引导到订制客户端设备(诸如客户端设备40)。
59.如在图1的示例中所示,多媒体内容64包括清单文件66,清单文件66可以对应于媒体呈现描述(mpd)。清单文件66可以包含对不同替代表示68(例如,具有不同质量的视频服务)的描述,并且该描述可以包括例如表示68的编解码器信息、简档值、级别值、比特率和其它描述性特性。客户端设备40可以取回媒体呈现的mpd以确定如何访问表示68的分段。
60.具体地,取回单元52可以取回客户端设备40的配置数据(未示出)以确定视频解码器48的解码能力和视频输出44的渲染能力。配置数据还可以包括以下各项中的任何一项或全部:由客户端设备40的用户选择的语言偏好、与由客户端设备40的用户设置的深度偏好相对应的一个或多个相机视角、和/或由客户端设备40的用户选择的评级偏好。取回单元52可以包括例如被配置为提交http get和部分get请求的网页浏览器或媒体客户端。取回单元52可以对应于由客户端设备40的一个或多个处理器或处理单元(未示出)执行的软件指令。在一些示例中,关于取回单元52描述的功能中的全部或部分功能可以用硬件、或者用硬件、软件和/或固件的组合来实现,其中可以提供必需的硬件来执行针对软件或固件的指令。
61.取回单元52可以将客户端设备40的解码和渲染能力与由清单文件66的信息所指示的表示68的特性进行比较。取回单元52可以初始地取回清单文件66的至少一部分以确定表示68的特性。例如,取回单元52可以请求清单文件66的描述一个或多个适配集的特性的一部分。取回单元52可以选择表示68的具有可以由客户端设备40的译码和渲染能力满足的特性的子集(例如,适配集)。取回单元52然后可以确定用于在适配集中的表示的比特率,确定当前可用的网络带宽量,并且从表示中的一个表示中取回具有网络带宽可以满足的比特率的分段。
62.通常,较高比特率的表示可以产生较高质量的视频回放,而较低比特率的表示可以在可用网络带宽减小时提供足够质量的视频回放。相应地,当可用网络带宽是相对高的时,取回单元52可以从相对高比特率的表示中取回数据,而当可用网络带宽是低的时,取回单元52可以从相对低比特率的表示中取回数据。以这种方式,客户端设备40可以在网络74上对多媒体数据进行流式传输,同时还适应于网络74的变化的网络带宽可用性。
63.另外或替代地,取回单元52可以被配置为根据诸如embms或ip多播之类的广播或多播网络协议来接收数据。在这样的示例中,取回单元52可以提交用于加入与特定的媒体内容相关联的多播网络组的请求。在加入多播组之后,取回单元52可以接收该多播组的数据,而无需向服务器设备60或内容准备设备20发出另外的请求。当不再需要多播组的数据时,取回单元52可以提交用于离开该多播组的请求,例如,停止回放或者将信道改变到不同的多播组。
64.网络接口54可以接收所选择的表示的分段的数据并且将其提供给取回单元52,取回单元52进而可以将分段提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组成的pes流,对pes流进行解分组化以取回经编码的数据,并且向音频解码器46或视频解码器48发送经编码的数据,这取决于经编码的数据是音频流还是视频流的一部分(例如,如由该流的pes分组报头所指示的)。音频解码器46对经编码的音频数据进行解码并且
将经解码的音频数据发送到音频输出42,而视频解码器48对经编码的视频数据进行解码并且将经解码的视频数据(其可以包括流的多个视图)发送到视频输出44。
65.视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、取回单元52和解封装单元50均可以在适用的情况下被实现为各种适当的处理电路中的任何一者,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑电路、软件、硬件、固件或其任何组合。视频编码器28和视频解码器48中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以被集成为组合的视频编码器/解码器(codec)的一部分。同样,音频编码器26和音频解码器46中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以被集成为组合的codec的一部分。包括视频编码器28、视频解码器48、音频编码器26、音频解码器46、封装单元30、取回单元52和/或解封装单元50的装置可以包括集成电路、微处理器和/或无线通信设备(诸如蜂窝电话)。
66.客户端设备40、服务器设备60和/或内容准备设备20可以被配置为根据本公开内容的技术进行操作。出于示例的目的,本公开内容关于客户端设备40和服务器设备60描述了这些技术。然而,应当理解的是,内容准备设备20可以被配置为执行这些技术,代替(或者除了)服务器设备60。
67.封装单元30可以形成nal单元,nal单元包括标识该nal单元所属的节目的报头以及有效载荷(例如,音频数据、视频数据、或描述nal单元所对应的传输或节目流的数据)。例如,在h.264/avc中,nal单元包括1字节的报头和可变大小的有效载荷。在其有效载荷中包括视频数据的nal单元可以包括各种粒度级别的视频数据。例如,nal单元可以包括视频数据块、多个块、视频数据的切片、或视频数据的整个图片。封装单元30可以以基本流的pes分组的形式从视频编码器28接收经编码的视频数据。封装单元30可以将每个基本流与对应的节目相关联。
68.封装单元30还可以从多个nal单元组装访问单元。通常,访问单元可以包括一个或多个nal单元,其用于表示视频数据的帧、以及与该帧相对应的音频数据(当这样的音频数据是可用的时)。访问单元通常包括用于一个输出时间实例的所有nal单元,例如,用于一个时间实例的所有音频和视频数据。例如,如果每个视图具有20帧每秒(fps)的帧速率,则每个时间实例可以对应于0.05秒的时间间隔。在该时间间隔期间,可以同时渲染用于同一访问单元(同一时间实例)的所有视图的特定帧。在一个示例中,访问单元可以包括在一个时间实例中的经译码的图片,其可以被呈现为基本经译码图片。
69.相应地,访问单元可以包括公共时间实例的所有音频和视频帧,例如,对应于时间x的所有视图。本公开内容还将特定视图的经编码的图片称为“视图分量”。也就是说,视图分量可以包括在特定时间处用于特定视图的经编码的图片(或帧)。相应地,访问单元可以被定义为包括公共时间实例的所有视图分量。访问单元的解码顺序不一定需要与输出或显示顺序相同。
70.媒体呈现可以包括媒体呈现描述(mpd),其可以包含不同替代表示(例如,具有不同质量的视频服务)的描述,并且该描述可以包括例如编解码器信息、简档值和级别值。mpd是清单文件的一个示例,诸如清单文件66。客户端设备40可以取回媒体呈现的mpd,以确定如何访问各个呈现的电影片段。电影片段可以位于视频文件的电影片段盒(box)(moof盒)
中。
71.清单文件66(其可以包括例如mpd)可以通告表示68的分段的可用性。也就是说,mpd可以包括指示表示68中的一个表示的第一分段变得可用的时钟时间的信息、以及指示表示68内的分段的持续时间的信息。以这种方式,客户端设备40的取回单元52可以基于在特定分段之前的分段的开始时间以及持续时间来确定每个分段何时可用。
72.在封装单元30已经基于所接收的数据将nal单元和/或访问单元组装为视频文件之后,封装单元30将视频文件传递到输出接口32以进行输出。在一些示例中,封装单元30可以将视频文件进行本地存储或者经由输出接口32将视频文件发送给远程服务器,而不是将视频文件直接发送给客户端设备40。输出接口32可以包括例如发射机、收发机、用于将数据写入计算机可读介质的设备(诸如例如,光学驱动器、磁介质驱动器(例如,软盘驱动器))、通用串行总线(usb)端口、网络接口或其它输出接口。输出接口32将视频文件输出到计算机可读介质,诸如例如,传输信号、磁介质、光学介质、存储器、闪存驱动器或其它计算机可读介质。
73.网络接口54可以经由网络74接收nal单元或访问单元,并且经由取回单元52将nal单元或访问单元提供给解封装单元50。解封装单元50可以将视频文件的元素解封装为组成pes流,将pes流进行解分组化以取回经编码的数据,并且向音频解码器46或视频解码器48(取决于经编码的数据是音频流还是视频流的一部分,例如如由流的pes分组报头指示的)发送经编码的数据。音频解码器46对经编码的音频数据进行解码并且将经解码的音频数据发送到音频输出42,而视频解码器48对经编码的视频数据进行解码并且将经解码的视频数据(其可以包括流的多个视图)发送到视频输出44。
74.以这种方式,客户端设备40表示用于传输媒体数据的设备的示例,该设备包括:被配置为存储媒体数据的存储器;以及一个或多个处理器,其在电路中实现并且被配置为:确定用于媒体呈现的清单文件包括表示用于媒体呈现的分段的重新同步元素的增量时间值的数据;确定增量时间值的倍数;使用增量时间值的倍数来确定分段的当前可用于取回的组块的数量;向服务器设备发送针对分段的当前可用的组块的请求,其中,请求忽略分段的当前不可用的组块;以及将响应于请求而接收的组块的数据存储在存储器中。
75.图2是更详细地示出图1的取回单元52的示例组件集合的框图。在该示例中,取回单元52包括embms中间件单元100、dash客户端110和媒体应用112。
76.在该示例中,embms中间件单元100还包括embms接收单元106、高速缓存104和代理服务器单元102。在该示例中,embms接收单元106被配置为经由embms,例如,根据基于单向传输的文件传送(flute)来接收数据,flute是在2012年11月、rfc 6726、网络工作组、t.paila等人的“flute—file delivery over unidirectional transport”中描述的,其可在tools.ietf.org/html/rfc6726处获得。也就是说,embms接收单元106可以经由广播从例如服务器设备60接收文件,服务器设备60可以充当广播/多播服务中心(bm-sc)。
77.随着embms中间件单元100接收用于文件的数据,embms中间件单元可以将所接收的数据存储在高速缓存104中。高速缓存104可以包括计算机可读存储介质,诸如闪存、硬盘驱动器、ram或任何其它适当的存储介质。
78.代理服务器单元102可以充当用于dash客户端110的服务器。例如,代理服务器单元102可以向dash客户端110提供mpd文件或其它清单文件。代理服务器单元102可以在mpd
文件中通告针对分段的可用性时间以及分段可以从其中被取回的超链接。这些超链接可以包括与客户端设备40相对应的本地主机地址前缀(例如,对于ipv4而言,为127.0.0.1)。以这种方式,dash客户端110可以使用http get或部分get请求从代理服务器单元102请求分段。例如,对于可从链接http://127.0.0.1/rep1/seg3得到的分段,dash客户端110可以构造包括针对http://127.0.0.1/rep1/seg3的请求的http get请求,并且向代理服务器单元102提交该请求。代理服务器单元102可以响应于这样的请求来从高速缓存104取回所请求的数据,并且将该数据提供给dash客户端110。
79.图3是示出示例多媒体内容120的元素的概念图。多媒体内容120可以对应于多媒体内容64(图1)或被存储在存储介质62中的另一多媒体内容。在图3的示例中,多媒体内容120包括媒体呈现描述(mpd)122和多个表示124a-124n(表示124)。表示124a包括可选的报头数据126和分段128a-128n(分段128),而表示124n包括可选的报头数据130和分段132a-132n(分段132)。为了方便起见,字母n用于指定表示124中的每个表示中的最后一个电影片段。在一些示例中,在表示124之间可以存在不同数量的电影片段。
80.mpd 122可以包括与表示124分开的数据结构。mpd 122可以对应于图1的清单文件66。同样,表示124可以对应于图1的表示68。通常,mpd 122可以包括通常描述表示124的特性的数据,诸如译码和渲染特性、适配集、mpd 122所对应的简档、文本类型信息、相机角度信息、评级信息、特技模式信息(例如,指示包括时间子序列的表示的信息)、和/或用于取回远程时段的信息(例如,用于在回放期间将目标广告插入到媒体内容中)。
81.报头数据126(在存在时)可以描述分段128的特性,例如,随机访问点(rap,也被称为流访问点(sap))的时间位置、分段128中的哪个包括随机访问点、与分段128内的随机访问点的字节偏移、分段128的统一资源定位符(url)、或分段128的其它方面。报头数据130(当存在时)可以描述分段132的类似特性。另外或替代地,这样的特性可以被完全包括在mpd 122中。
82.分段128、132包括一个或多个经译码的视频样本,其中的每个经译码的视频样本可以包括视频数据的帧或切片。分段128的经译码的视频样本中的每一者可以具有类似的特性,例如,高度、宽度和带宽要求。这样的特性可以由mpd 122的数据来描述,虽然在图3的示例中未示出这样的数据。mpd 122可以包括如由3gpp规范描述的特性,其中添加了在本公开内容中描述的用信号通知的信息中的任何或全部信息。
83.分段128、132中的每个分段可以与唯一的统一资源定位符(url)相关联。因此,分段128、132中的每个分段可以是可使用诸如dash之类的流式传输网络协议来独立地取回的。以这种方式,诸如客户端设备40之类的目的地设备可以使用http get请求来取回分段128或132。在一些示例中,客户端设备40可以使用http部分get请求来取回分段128或132的特定字节范围。
84.尽管在图3中未示出,但是分段128、182中的一些分段可以包括相应的数据组块,其包括可以使用例如字节范围请求而请求的媒体数据。具体地,字节范围请求可以是指定“range:”报头的http部分get请求。根据本公开内容的技术,取回单元52(图1)可以提交这样的请求,该请求指定根据mpd 122指示在特定时间处可用的数据量的字节范围。也就是说,mpd 122可以用信号通知用于分段128、132的标称分段可用性开始时间(nsast)、以及用于分段128、132中的一个或多个分段的重新同步元素的增量时间值(例如,@dt属性)、以及
表示在两个随机访问点之间的最小数据大小的数据(例如,@dimin值)。取回单元52可以确定分段的n 1个组块在时间nsast n*@dt处是可用的,并且确定(n 1)*@dimin字节的数据在时间nsast n*@dt处可用于被请求。
85.图4是示出示例视频文件150的元素的框图,视频文件150可以对应于表示的分段,诸如图3的分段128、132之一。分段128、132中的每个分段可以包括基本上符合在图4的示例中示出的数据的布置的数据。视频文件150可以被认为是封装分段。如上所述,根据iso基媒体文件格式以及其扩展的视频文件将数据存储在被称为“盒”的一系列对象中。在图4的示例中,视频文件150包括文件类型(ftyp)盒152、电影(moov)盒154、分段索引(sidx)盒162、电影片段(moof)盒164、以及电影片段随机访问(mfra)盒166。尽管图4表示视频文件的示例,但是应当理解的是,其它媒体文件可以包括根据iso基媒体文件格式以及其扩展而与视频文件150的数据类似地构造的其它类型的媒体数据(例如,音频数据、时序文本数据等)。
86.文件类型(ftyp)盒152通常描述用于视频文件150的文件类型。文件类型盒152可以包括标识描述用于视频文件150的最佳用途的规范的数据。文件类型盒152可以替代地被放置在moov盒154、电影片段盒164和/或mfra盒166之前。
87.在一些示例中,诸如视频文件150之类的分段可以在ftyp盒152之前包括mpd更新盒(未示出)。mpd更新盒可以包括指示与包括视频文件150的表示相对应的mpd将被更新的信息以及用于更新mpd的信息。例如,mpd更新盒可以提供用于将用于更新mpd的资源的uri或url。作为另一示例,mpd更新盒可以包括用于更新mpd的数据。在一些示例中,mpd更新盒可以紧跟在视频文件150的分段类型(styp)盒(未显示)之后,其中styp盒可以定义用于视频文件150的分段类型。
88.在图4的示例中,moov盒154包括电影报头(mvhd)盒156、轨道(trak)盒158以及一个或多个电影扩展(mvex)盒160。通常,mvhd盒156可以描述视频文件150的一般特性。例如,mvhd盒156可以包括描述视频文件150最初何时被创建、视频文件150最近何时被修改、用于视频文件150的时间标度、用于视频文件150的回放的持续时间的数据、或者通常描述视频文件150的其它数据。
89.trak盒158可以包括用于视频文件150的轨道的数据。trak盒158可以包括描述与trak盒158相对应的轨道的特性的轨道报头(tkhd)盒。在一些示例中,trak盒158可以包括经译码的视频图片,而在其它示例中,轨道的经译码的视频图片可以被包括在电影片段164中,电影片段164可以通过trak盒158和/或sidx盒162的数据来引用。
90.在一些示例中,视频文件150可以包括一个以上的轨道。因此,moov盒154可以包括一数量的trak盒,trak盒的数量等于视频文件150中的轨道的数量。trak盒158可以描述视频文件150的对应轨道的特性。例如,trak盒158可以描述用于对应轨道的时间和/或空间信息。当封装单元30(图3)在诸如视频文件150之类的视频文件中包括参数集轨道时,类似于moov盒154的trak盒158的trak盒可以描述参数集轨道的特性。封装单元30可以在描述参数集轨道的trak盒内用信号通知序列级别sei消息在参数集轨道中的存在。
91.mvex盒160可以描述对应的电影片段164的特性,例如,以用信号通知除了被包括在moov盒154内的视频数据(如果有的话)之外,视频文件150还包括电影片段164。在流式传输视频数据的背景下,经译码的视频图片可以被包括在电影片段164中,而不是在moov盒154中。因此,所有经译码的视频样本可以被包括在电影片段164中,而不是在moov盒154中。
92.moov盒154可以包括一数量的mvex盒160,mvex盒160的数量等于视频文件150中的电影片段164的数量。mvex盒160中的每一者可以描述电影片段164中的相应电影片段的特性。例如,每个mvex盒可以包括电影扩展报头盒(mehd)盒,其描述用于电影片段164中的对应电影片段的时间上的持续时间。
93.如上所述,封装单元30可以将序列数据集存储在不包括实际经译码的视频数据的视频样本中。视频样本通常可以对应于访问单元,访问单元是在特定时间实例处的经译码的图片的表示。在avc的背景下,经译码的图片包括包含要构造访问单元的所有像素的信息的一个或多个vcl nal单元和其它相关联的非vcl nal单元(诸如sei消息)。相应地,封装单元30可以在电影片段164中的一个电影片段中包括序列数据集,序列数据集可以包括序列级别sei消息。封装单元30还可以在mvex盒160内的与电影片段164之一相对应的mvex盒中将序列数据集和/或序列级别sei消息的存在用信号通知为存在于电影片段164中的该电影片段中。
94.sidx盒162是视频文件150的可选元素。也就是说,符合3gpp文件格式或其它这样的文件格式的视频文件不一定包括sidx盒162。根据3gpp文件格式的示例,sidx盒可以用于标识分段(例如,被包含在视频文件150内的分段)的子分段。3gpp文件格式将子分段定义为“具有对应媒体数据盒的一个或多个连续电影片段盒的自包含集,并且包含由电影片段盒引用的数据的媒体数据盒必须跟随在该电影片段盒之后并且在包含关于相同轨道的信息的下一电影片段盒之前。”3gpp文件格式还指示sidx盒“包含对由该盒所记载的(子)分段的子分段的引用序列。所引用的子分段在呈现时间上是连续的。类似地,由分段索引盒所引用的字节在分段内始终是连续的。所引用的大小给出了在所引用的材料中的字节数量的计数。”95.sidx盒162通常提供表示被包括在视频文件150中的分段的一个或多个子分段的信息。例如,此类信息可以包括子分段开始和/或结束的回放时间、针对子分段的字节偏移、子分段是否包括流访问点(sap)(例如,从其开始)、用于sap的类型(例如,sap是即时解码器刷新(idr)图片、干净随机访问(cra)图片、断链访问(bla)图片、还是其它图片)、sap在子分段中的位置(依据回放时间和/或字节偏移)等。
96.电影片段164可以包括一个或多个经译码的视频图片。在一些示例中,电影片段164可以包括一个或多个图片组(gop),其中的每个图片组可以包括多个经译码的视频图片,例如,帧或图片。另外,如上所述,在一些示例中,电影片段164可以包括序列数据集。电影片段164中的每个电影片段可以包括电影片段报头盒(mfhd,在图4中未示出)。mfhd盒可以描述对应电影片段的特性,诸如用于该电影片段的序列号。电影片段164可以按照序列号的顺序被包括在视频文件150中。
97.mfra盒166可以描述在视频文件150的电影片段164内的随机访问点。这可以辅助执行特技模式,诸如对通过视频文件150封装的分段内的特定时间位置(即,回放时间)执行搜索。mfra盒166通常是可选的,并且在一些示例中不需要被包括在视频文件中。同样,客户端设备(例如,客户端设备40)不一定需要引用mfra盒166来正确地解码和显示视频文件150的视频数据。mfra盒166可以包括一数量的轨道片段随机访问(tfra)盒(未示出),tfra盒的数量等于视频文件150的轨道数量,或者在一些示例中,等于视频文件150的媒体轨道(例如,非提示轨道)的数量。
98.在一些示例中,电影片段164可以包括一个或多个流访问点(sap),诸如idr图片。同样,mfra盒166可以提供对sap在视频文件150内的位置的指示。相应地,视频文件150的时间子序列可以从视频文件150的sap形成。时间子序列还可以包括其它图片,诸如依赖于sap的p帧和/或b帧。可以将时间子序列的帧和/或切片布置在分段内,使得可以正确地解码时间子序列的、依赖于该子序列的其它帧/切片的帧/切片。例如,在数据的分层布置中,用于针对其它数据的预测的数据也可以被包括在时间子序列中。
99.在一些示例中,dash打包器(例如,取回单元52,诸如取回单元52的dash客户端110)接收关于服务的一般描述以及编码器配置的信息(例如,级别和简档信息,作为一个示例)。如所描述的,音频编码器26和/或视频编码器28可以产生公共媒体应用格式(cmaf)组块和片段,其可以形成相应多媒体内容64的一部分。
100.mpd打包器(例如,封装单元30或服务器设备60的可能组件)将组块映射到分段上,并且将其以增量方式提供给网络72。在一些示例中,分段不是作为整体递送的,而是随着分段被生成而逐步递送的。
101.在mpd中可以存在信令(@availabilitytimeoffset和@availabilitycomplete)。当低时延dash客户端(例如,dash客户端110)进行计算时,低时延dash客户端应当进行相同的计算,但是当其第一组块在来源上变得可用(由来自dash清单(例如,清单66)的@availabilitytimeoffset参数用信号通知)时请求下一分段。
102.随着cdn(内容递送网络(例如,服务器设备60))正以http组块化传输编码模式来递送实况边缘分段时,可以以一个或多个步骤将每个媒体分段添加到回放缓冲器中。@availabilitycomplete向客户端(例如,客户端设备40或dash客户端110)告知媒体分段在所计算的标称分段可用性时间处在服务器(例如,服务器设备60)上尚不可用。
103.可以在以下各项中找到额外的细节:dash-if草案cr,其可从https://dashif.org/docs/dash-if-iop-cr-low-latency-live-community-review.pdf得到;以及etsi ts 103 285中的dvb-dash,其可从https://www.etsi.org/deliver/etsi_ts/103200_103299/103285/01.02.01_60/ts_103285v010201p.pdf得到。可在以下项处得到另外的信息:dvb-dash bluebook a168,“mpeg-dash profile for transport of iso bmff based dvb services over ip based networks”,2019年2月,https://www.dvb.org/resources/public/standards/a168_dvb_mpeg-dash_feb_2019.pdf。
104.图5是示出可以执行本公开内容的技术的示例性低时延架构200的概念图。在该示例中,图5示出了用于根据dash-if iop来操作低时延dash服务的基本信息流。低时延架构200包括dash打包器202、编码器216、内容递送网络(cdn)220、常规dash客户端230和低时延dash客户端232。编码器216通常可以对应于图1的音频编码器26和视频编码器28中的任一者或两者,而dash打包器202可以对应于图1的封装单元30。
105.在该示例中,编码器216对所接收的媒体数据进行编码以形成cmaf报头(ch)(诸如ch 208)、cmaf初始组块206a、206b(cic 206)和cmaf非初始组块204a-204d(cnc 204)。编码器216向dash打包器202提供ch 208、cic 206和cnc 204。dash打包器202还接收服务描述,其包括关于服务的一般描述和编码器216的编码器配置的信息。
106.dash打包器202使用服务描述、ch 208、cic 206和cnc 204来形成媒体呈现描述(mpd)210和初始化分段212。dash打包器202还将ch 208、cic 206和cnc 204产生映射到分
段214a、214b(分段214)中,并且以增量方式将分段214提供给cdn 220。随着分段214被生成,dash打包器202可以以组块的形式递送分段214。cdn 220包括用于存储mpd 210、is 212和分段214的分段存储器222。例如,响应于来自常规dash客户端230和低时延dash客户端232的http get或部分get请求,cdn 220向常规dash客户端230递送完整分段,但是向低时延dash客户端232递送个别组块(例如,ch 208、cic 206和cnc 204)。
107.图6是示出被组块化的分段分布的示例的概念图。在一些示例中,图6的编码器表示图1的音频编码器26和/或视频编码器28;图6的内容递送网络(cdn)包括图1的服务器设备60;并且图6的播放器表示图1的客户端设备40的至少一部分。
108.图6描绘了完整分段和被组块化的分段二者。在该示例中,分段240包括电影片段(moof)盒242和电影数据(mdat)盒244。同样在该示例中,被组块化的分段248包括多个moof片段242a-242b(moof盒242)和mdat盒244a-244b(mdat盒244)。因此,内容准备设备20(图1)可以准备被组块化的分段248以包括多个moof盒242和mdat盒244。因此,图6的播放器可以取回个别对的moof盒242和mdat盒244,作为被组块化的分段248的组块。也就是说,例如,moof盒242a和mdat盒244a可以表示一个组块,moof盒242b和mdat盒244b可以表示另一个组块,以此类推。
109.图7是示出公共媒体应用格式(cmaf)组块结构的示例的表。在图7的示例中,每个盒可以在开始具有类型以及大小。在这些盒外部可以没有数据。在盒外部没有数据的情况下使类型和大小在开始处可以允许找到新盒的起点。
110.关于低时延dash,在传统技术中可能存在某些问题。如上所述,在一些示例中,dash-if一致性测试(例如,作为一个示例,由客户端设备40通过取回单元52执行的软件测试)可以对照规范的承诺来测试所提供的服务的有效性(例如,测试服务是否符合规范,以便确定级别和简档信息)。在一些示例中,实现测试使得仅需要下载最少数据。在这样的测试期间,通常跳过媒体,并且仅下载文件格式结构。这意味着mdat盒通常不作为整体下载,仅下载其类型和大小。
111.通过这样做,一致性软件可以在经调整的可用性开始时间处请求分段的初始字节范围,下载数据并且分析除了mdat以外的所有盒中的数据,提取mdat大小并且识别下一盒的起点,下载字节范围以请求下一组块起点(styp、moof、mdat的起点),并且持续这样做。在一些情形下,在进行测试时,所下载的数据不一致,从而导致不期望的问题。
112.下载数据的不一致性可能不是由于一致性软件引起的。例如,可能的是,当访问低时延被组块化的分段时,对不存在的数据进行访问。作为一个示例,尚未产生moof,并且不存在警告或任何404错误、不清楚响应或对垃圾数据的可能取回。也就是说,取回单元52可以按设计进行操作,但是可能访问不存在的数据。在这种情况下,取回单元52可能取回垃圾数据,而不是接收错误消息或访问不存在的数据的某个其它通知。
113.dash低时延规范可能不具有关于何时是下一组块在服务器上可用的最新时间以及如果对不可用字节范围发布请求将发生何事(例如,这可能引起客户端设备未被配置为寻址的意外响应)的信息。在dash低时延规范中也不清楚在请求分段的各部分方面允许客户端做何事并且允许什么http请求以及响应将是什么。对于http/1.1,不清楚对不完整文件的什么请求被允许以及例如被报告的大小是多少。可能存在其它此类问题,并且应当检查最相关的信息。
114.针对上述问题可能存在各种原因。例如,可以在经调整的分段可用性开始时间(asast)(其是标称可用性开始时间nsast-availabilitytimeoffset)处访问分段,并且分段的顺序的第一个组块块是可在nsast处完全地访问的。当利用http请求来访问asast和nsast之间的分段时,将完整地提供分段,直到单个请求中的分段结束为止。在传统dash中,一些客户端设备是在如下的假定下构造的:当尝试利用http请求来访问在asast和nsast之间的时间处的分段时,响应于针对分段的单个请求,分段被逐步地产生和发送直到该分段结束为止。然而,不必是这种情况。例如,在dash规范中实际上没有承诺任何关于这个问题的任何内容。也就是说,可能不存在关于分段被逐步地产生和被发送直到单个请求中的分段结束(诸如当利用http请求来访问在asast和nsast之间的分段时)为止的限制。
115.本公开内容描述了解决这些问题的示例技术。例如,本公开内容描述了用于向媒体呈现(例如,清单文件)供应添加一些丰富信息的示例,这些丰富信息指示随着时间推移分段和组块的起点的可用性(例如,不仅承诺随着时间推移分段的起点的可用性,而且还承诺随着时间推移组块的起点的可用性)。本公开内容还描述了添加针对dash客户端(例如,dash客户端110)的关于允许什么请求和禁止什么请求的更多要求。本公开内容还描述了当发生对部分完成资源的请求时添加用于dash服务器(例如,服务器设备60)的预期响应码。
116.在第4版的amd.1中,mpeg引入了resync元素。下文进一步提供resync元素信令和语义的概述。
117.在下文中,提出了对resync的一些扩展,以解决该问题。作为一个示例,可能的是,添加关于在某个时间之后组块可用的信令,即,使用@dt属性。该信令可以是隐式(如果@availabilitycomplete=false的话)用信号通知的,或者是某种显式的新信号。
118.承诺(例如,确保组块是可用的)如下。换句话说,封装单元30和/或请求处理单元70可以确保在nsast处,第一组块是可用的并且至少@dimin数据可以被访问,在nsast dt处,第二组块是可用的并且至少2*@dimin数据可以被访问,在nsast 2*dt处,第三组块是可用的并且至少3*@dimin数据可以被访问,以及在nsast i*dt处,第(i 1)组块是可用的并且至少(i 1)*@dimin数据可以被访问。
119.在一些示例中,对resync客户端行为的以下扩展可以解决该问题。如果不存在resync并且用信号通知@availabilitycomplete=false,则预期客户端(例如,dash客户端110)不利用字节范围请求来访问分段。客户端(例如,dash客户端110)不应当预期任何媒体数据在nsast之前在接收机处是可用的。
120.如果resync元素是以@dt和@dimin呈现的,则可以允许客户端设备(例如,dash客户端110)访问在当前时间now处可用的字节范围请求。可以允许客户端(例如,dash客户端110)访问在当前时间now处可用的组块。可以不预期客户端(例如,dash客户端110)利用字节范围请求来访问尚未可用的分段。
121.图8是示出分段的标记和重新同步点的示例的概念图。在分段中的重新同步点(诸如resync点252、258、262、266)可以被如下定义:
122.a.重新同步(resync)点使得能够在容器级别(例如,文件格式盒级别)开始解析和处理。
123.b.已经为resync point分配以下特性:
124.i.其具有距分段的起点的字节偏移或索引index(例如,索引270),其指向重新同
步点。
125.ii.已经为其分配了在表示中的最早呈现时间time,即,当从重新同步指针开始处理时在表示中包括的任何样本的最小呈现时间。
126.iii.已经为其分配了类型type(例如,由iso/iec 14496-12中的sap类型定义的)。
127.iv.已经为其分配关于在通过特定结构解析分段时是否能够检测到重新同步点或者是否需要通过外部手段来用信号通知resync点的布尔标记特性marker。
128.c.从重新同步点开始处理分段、以及初始化分段中的信息(如果有的话),允许容器解析。关于是否以及如何访问所包含的和潜在加密的基本流的能力是通过重新同步访问点类型来指示的。
129.图9是示出resync point元素和属性名称以及对应描述的表。在一些示例中,通过在用于每个媒体分段的重新同步索引分段中提供针对每个重新同步点的二进制映射,来用信号通知resync点。这最容易用于在网络上完全可用的分段。在一些示例中,通过利用额外信息来用信号通知在媒体分段中的重新同步点的存在以及提供重新同步点的类型,从而用信号通知resync点,其中该额外信息允许依据字节位置和呈现时间来容易地定位resync。
130.图10是示出resync索引的示例的概念图。在该示例中,分段300包括resync 302、306、312和316、组块304、310、314和318以及标记306。在该示例中,索引320表示resync 302和组块304。resync 302还表示数据集,其包括resync索引330、resync点332、时间334、标记336和类型338,而标记306表示resync点342、时间344、标记346和类型348。
131.图11是示出resync point的@dt属性和@di属性的示例的概念图。在该示例中,分段350包括流访问点(sap)1 352、356、360和364以及组块354、358、362和366。分段370包括sap 1 372、280、388和396、sap 3 376、384和392以及组块374、378、382、386、290、394和398。如图11中所示,与在分段350中相比,在分段370中sap更加频繁。因此,与用于分段350的@dt和@di相比,用于分段370的@dt和@di更短。具体地,每个@dt和@di表示媒体数据的一对sap和组块。因为分段370的@dt和@di属性较小,所以分段370可以支持相对于分段350而言减少的时延。
132.下文描述了信令用例的示例。为了用信号通知快速加入、向下切换或重新同步,存在至少一个表示,其中@bandwidth值是适配集中的最低值,并且其包含具有以下设置的resync元素:@type值被设置为1或2,并且@dt被设置使得由表示的@timescale归一化的值最多是用信号通知的目标时延,并且应当小于用信号通知的目标时延的一半。
133.可以将@marker设置为真(true)。在表示级别上,@dt提供两个随机访问点的最大和标称距离,@dimax提供在两个随机访问点之间的数据的最大大小,而如果未知的话,可以省略参数,@dimin提供在两个随机访问点之间的数据的最小大小,而如果未知的话,可以省略参数,并且@type被设置为1、2或3以指示随机访问是可能的。
134.下文描述了客户端实现(例如,dash客户端110)。对于重新同步情况,可能存在低时延流式传输和对服务的快速访问、广播服务中的快速信道捕获、在丢失或缓冲器欠载运行之后的低时延流式传输和重新同步、在低持续时间缓冲器情况下的快速向下切换、对时间的快速且高效搜寻。
135.为了重新同步和重新启动,可以找到分段内的盒结构,找到适当的重新同步点(包括利用对于开始解析和解码所需要的所有相关信息),找到被呈现的最早呈现时间,处理事
件消息(如果适用的话),获得所有解密相关信息(如果适用的话),并且在基本流级别上开始解码。
136.下文描述了用于重新同步的盒结构。可以存在不同的方式来在特定时间处重新同步盒结构。如果提供了分段索引,则可以在呈现时间和字节偏移处进行重新同步。然而,分段索引通常不可用于动态服务。
137.如果提供了重新同步点索引,则可以在呈现时间和字节偏移处进行重新同步。这可以适用于常规实况服务,但不适用于低时延的情况。
138.如果分段的起点是可访问的,则可以从开始下载分段并且对其进行解析,直到找到合适的索引和时间为止。然而,这样的下载可能需要不必要的带宽或者可能不够快。
139.重新同步信息是由基础协议提供的,该协议例如提供针对每个重新同步点的索引,并且该信息被传递给dash客户端。
140.如果分段的起点是不可用的,则基于合适的模式找到重新同步点是可能的。一旦找到,常规解析就可以开始并且找到允许你进行处理的合适的盒结构(具体地,“emsg”、“prft”、“mdat”、“moof”和“mdat”)。
141.下文描述了针对标记的搜索。在解析分段之前,推荐仅下载分段的将包括重新同步点的一部分。为此,可以使用resync@dt、resync@dmax以及resync@dmin中的信息。如果设置了resync@marker,则客户端可以如下解析字节流以找到下一重新同步点的索引。
142.在分段中找到“styp”字节字符串的出现,比如在字节偏移b1处。如下对照随机仿真进行验证:将下一盒类型与任何预期盒类型(“styp”、“prft”、“emsg”、“moof”、“mdat”、“free”、“skip”)的列表进行比较。如果找到已知盒类型之一,则字节偏移b1-4八位字节是重新同步点的索引。如果这不是前面提到的已知盒类型之一,则“styp”盒的这种出现被视为无效的重新同步点并且被忽略。从上面重新开始。
143.下文描述了使用resync信息。最早呈现时间可以是重新同步点的时间。该最早呈现时间可以通过使用“tfdt”和电影片段报头中的其它信息来指示。
144.对于重新同步点的类型,可能存在若干选项。一种选项可以是基于“moof”中的信息的检测。一种选项可以是使用用于sap类型的兼容性品牌。
145.如果cmaf如在iso/iec 23000-1中定义地处于使用中,则可以推导出以下各项:“cmff”:指示sap为1或2;“cmfl”:指示sap为0;以及“cmfr”:指示sap为1、2或3。一旦找到合适的时间和索引,就可以发起媒体管道的早期重新同步。
146.图12是示出用于执行本公开内容的技术的示例方法的流程图。图12的方法可以由图1的客户端设备40和服务器设备60来执行。归属于服务器设备的动作可以另外或替代地由图1的内容准备设备20来执行。在其它示例中,其它设备可以被配置为根据本公开内容的技术来执行这些或其它功能。例如,图5的低时延dash客户端232、编码器216、dash打包器202和cdn 220可以被配置为执行本公开内容的技术。
147.最初,服务器设备60可以形成清单文件,其包括用于分段的重新同步(resync)元素的@dt值(400)。替代地,在一些示例中,服务器设备60可以从内容准备设备20接收清单文件。清单文件可以是如上讨论的媒体呈现描述(mpd)。
148.然后,客户端设备40可以从服务器设备60请求清单文件(402)。客户端设备40可以解析和处理清单文件以确定分段可用性时间,诸如标称分段可用性开始时间(nsast)
(404)。根据本公开内容的技术,nsast值可以表示分段的顺序的第一组块可用的时间。
149.因此,客户端设备40然后可以确定当前时间(408)。假定当前时间在用于分段的组块的nsast处或之后,则客户端设备40可以使用当前时间、分段可用性时间和@dt值来形成针对分段的一个或多个组块的请求,所述一个或多个组块可以包括顺序的第一组块(410)。具体地,如果当前时间是在nsast之后但是小于从nsast开始的一个@dt值,则客户端设备40可以仅请求顺序的第一组块。如果当前时间是在从nsast开始的一个@dt值与从nsast开始的两个@dt值之间,则客户端设备40可以确定分段的顺序的第一组块和顺序的第二组块两者是可用的,并且因此,客户端设备40可以形成指定第一组块和第二组块两者的请求,或者如果已经请求了第一组块,则仅请求第二组块。
150.具体地,客户端设备40可以将请求形成为http部分get请求,http部分get请求指定分段的与要请求的组块相对应的字节范围。例如,客户端设备40可以使用在清单文件中用信号通知的@dimin值的倍数来确定在特定时间处可用的数据量。具体地,在nsast之后的n*@dt处,客户端设备40可以确定(n 1)*@dimin字节的数据可用于取回。因此,客户端设备40可以根据该确定来指定字节范围。最终,客户端设备40可以向服务器设备60发送请求(412)。
151.然后,服务器设备60可以从客户端设备40接收请求(414)。服务器设备60可以向客户端设备40发送所请求的组块(416)。然后,客户端设备40可以接收组块(418),并且解码和呈现组块的媒体数据(420)。然后,客户端设备40可以再次确定新的当前时间(408)并且请求一个或多个新的可用组块。
152.以这种方式,图1的方法表示一种方法的示例,该方法包括:确定用于媒体呈现的清单文件包括表示用于媒体呈现的分段的重新同步元素的增量时间值的数据;确定增量时间值的倍数;使用增量时间值的倍数来确定分段的当前可用于取回的组块的数量;以及向服务器设备发送针对分段的当前可用的组块的请求,其中,该请求忽略分段的当前不可用的组块。
153.在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过其进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质,或者包括例如根据通信协议来促进计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取回用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
154.通过举例而非限制性的方式,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于以指令或数据结构形式存储期望的程序代码以及能够由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(dsl)或者无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源传输指令,则同轴电缆、光纤光缆、双绞线、dsl或者无线技术(诸如红外线、无线电和微波)被包括
在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非暂时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述各项的组合也应当被包括在计算机可读介质的范围之内。
155.指令可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指代前述结构中的任何一者或者适于实现本文描述的技术的任何其它结构。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入经组合的编解码器中。此外,所述技术可以完全在一个或多个电路或逻辑元件中实现。
156.本公开内容的技术可以在多种多样的设备或装置中实现,包括无线手机、集成电路(ic)或一组ic(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元以强调被配置以执行所公开的技术的设备的功能性方面,但是不一定需要通过不同的硬件单元来实现。确切而言,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
157.已经描述了各个示例。这些和其它示例在所附的权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献