一种带宽测量方法和装置与流程

文档序号:27623175发布日期:2021-11-29 14:46阅读:97来源:国知局
一种带宽测量方法和装置与流程

1.本发明涉及流媒体技术,特别是涉及一种带宽测量方法和装置。


背景技术:

2.随着近几年网络技术的发展,流媒体的使用已经遍布人们工作、生活的方方面面的,电视、手机、笔记本等各种终端中都要使用流媒体进行视频的播放,如何实现终端视频的流畅和快速播放成为影响用户视频观看体验的至关重要的因素。实现流媒体视频的流畅播放,需要在复杂多变的网络条件下,更加快速地计算出用户在当前时间段内准确的网络带宽值,从而可以自适应地切换到最合适的码率视频资源进行下载播放。
3.目前,通常采用的带宽测量方案是:根据已下载流媒体片段的带宽信息或者将要下载的视频片段的下载时长等信息,构建qoe模型(如滤波器、李雅普诺夫模型等),然后,根据模型输出计算出当前带宽。
4.发明人在实现本技术的过程中,发现现有的带宽测量技术存在运算开销大、测量不准确以及实时性差的问题。


技术实现要素:

5.有鉴于此,本发明的主要目的在于提供一种带宽测量方法和装置,可以提高测量准确性和实时性,并且运算开销小。
6.为了达到上述目的,本发明实施例提出的技术方案为:
7.一种带宽测量方法,包括:
8.当客户端接收到服务器返回的视频数据时,根据预设的带宽过滤条件,判断所述视频数据的带宽是否需要过滤;如果不需要,则根据所述视频数据,更新当前的带宽测量参数;
9.所述客户端实时地根据所述带宽测量参数和预设的采样周期,判断当前是否满足预设的带宽测量条件,如果是,则根据所述带宽测量参数,触发带宽采样,并获取当前的带宽采样点数量,根据已采样的带宽值和所述带宽采样点数量,计算当前的带宽测量值。
10.较佳地,所述带宽过滤条件包括:
11.所述视频数据属于预设的小数据量文件数据,所述小数据量文件数据包括索引文件数据和初始化片段数据;和/或,当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值。
12.较佳地,所述带宽测量参数包括待用于带宽采样的传输时间和已接收且不需要过滤带宽的视频数据总量。
13.较佳地,根据所述视频数据,更新当前的带宽测量参数包括:
14.将所述待用于带宽采样的传输时间设置为当前距离最近一次请求下载视频数据的时间间隔;
15.将所述视频数据的大小增加至当前的所述视频数据总量中。
16.较佳地,所述方法进一步包括:
17.当判定所述视频数据的带宽需要过滤,且所述视频数据所属的下载单元存在暂停下载操作,并满足:当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值时,将当前已参与带宽测量的视频数据总量,设置为当前已接收且不需要过滤带宽的视频数据总量,并将当前的采样周期计时归零。
18.较佳地,所述带宽测量条件包括:
19.当前到达所述采样周期;
20.或者,当前已接收且不需要过滤带宽的视频数据中尚未参与带宽测量的视频数据数量大于预设的带宽测量数量阈值。
21.较佳地,根据所述带宽测量参数,触发带宽采样包括:
22.如果所述待用于带宽采样的传输时间处于预设的时间范围内,则根据所述待用于带宽采样的传输时间以及当前已接收且不需要过滤带宽的视频数据中尚未参与带宽测量的视频数据数量,计算当前采样的带宽值。
23.较佳地,获取当前的带宽采样点数量包括:
24.将当前已接收且未显示的数据播放时长与所述采样周期相除,得到初始采样点数量;
25.如果当前播放文件的最大下载单元的播放时长小于预设的时长阈值,则根据预设的初始采样点数量与带宽采样点数量之间的映射关系,确定与所述初始采样点数量相匹配的带宽采样点数量,并设置为当前的带宽采样点数量,否则,将当前的带宽采样点数量设置为预设的最大采样点数量阈值。
26.本发明实施例还提供了一种带宽测量装置,设置于客户端中,包括:
27.带宽过滤单元,用于当客户端接收到服务器返回的视频数据时,根据预设的带宽过滤条件,判断所述视频数据的带宽是否需要过滤;如果不需要,则根据所述视频数据,更新当前的带宽测量参数;
28.带宽测量单元,用于实时地根据所述带宽测量参数和预设的采样周期,判断当前是否满足预设的带宽测量条件,如果是,则根据所述带宽测量参数,触发带宽采样,并获取当前的带宽采样点数量,根据已采样的带宽值和所述带宽采样点数量,计算当前的带宽测量值。
29.本发明实施例还提供了一种带宽测量的电子设备,其特征在于,包括处理器和存储器;
30.所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上所述的带宽测量方法。
31.本发明实施例还提供了一种计算机可读存储介质,其中存储有计算机可读指令,该计算机可读指令用于执行如上所述的带宽测量方法。
32.综上所述,本发明实施例提出的带宽测量方案,应用于客户端中,在客户端接收到服务器返回的视频数据时,需要根据预设的带宽过滤条件,判断当前所接收数据的带宽是否需要过滤,即是否可以参与带宽测量,如果需要过滤,则不基于当前接收的数据对用于带宽测量的参数进行更新,如此,可以提高带宽测量参数的有效性和准确性,将容易影响带宽测量准确性的因素,排除在带宽测量之外,从而可以提高带宽测量的准确性和实时性,并且
由于不需要采用qoe模型,因此,相比于现有带宽测量方法可以大幅度降低带宽测量运算开销小。
附图说明
33.图1为本发明实施例的方法流程示意图;
34.图2为本发明实施例的装置结构示意图。
具体实施方式
35.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
36.发明人通过对现有的带宽测量方案进行认真研究分析后,发现其存在上述运算开销大、测量不准确以及实时性差问题的主要原因如下:
37.1、现有带宽测量方案基于qoe模型实现,其模型计算公式较为繁琐,从而会增加方案运行的运算开销,进而影响带宽计算效率。
38.2、现有带宽测量方案在进行带宽计算时需要等待单个或多个连续下载单元下载完成后再计算,从而会影响带宽测量的实时性。其中,所述下载单元是指用户一次请求的流媒体数据。
39.3、在流媒体数据下载过程中,音频数据和视频数据的下载是独立的,用户请求音频数据的下载时,需要暂停视频数据的下载,这样,视频数据下载过程中可能会存在暂停下载的时间段,从而导致视频数据下载过程中会存在没有视频数据传输的空闲时间。现有带宽测量方案是基于视频数据的接收情况进行的,且在计算视频数据传输时间时并未考虑扣除上述空闲时间的存在,从而导致带宽测量的不准确。
40.4、视频文件不仅包括视频主体数据,还包括数据量小的其他类型数据:如文本信息mpd和用于携带视频关键信息的初始配置信息(init segment)。这些其他类型数据所在的下载单元由于数据量小,传输速率会很快,因此,这些下载单元的下载速率和实际带宽是不匹配的。而现有带宽测量方案中并不区分小数据的下载,因此,在进行带宽测量时会受限于这些小数据的影响,而存在不准确性问题。另外,服务器在进行流媒体传输时,会将用户请求的下载单元分割成若干部分依次传输,这样,最后传输的下载单元尾部数据可能也会数据量很小,从而导致其传输速率也很快。
41.5、在流媒体数据的实际传输过程中,可能会受网络波动的影响,使得个别数据下载速度很快,这些数据的下载速度也不能反映正常的带宽,因此,在带宽测量时,这些个别数据的下载速度也会影响带宽测量的准确性。
42.基于上述问题分析,本技术将不再基于模型实现带宽测量,以降低运算开销,在进行带宽时,为了提高带宽测量的准确性,实时地对当前接收数据的带宽能否用于带宽测量进行筛选,以过滤掉会影响带宽测量准确性的数据,基于未被过滤掉的视频数据,对用于带宽测量的参数进行更新,并在满足预设的带宽测量条件时立即触发带宽测量,而不需要等待一个或若干下载单元下载完成后再触发带宽测量,以提高带宽测量的实时性。
43.图1为本发明实施例的带宽测量方法流程示意图,如图1所示,该实施例主要包括:
44.步骤101、当客户端接收到服务器返回的视频数据时,根据预设的带宽过滤条件,
判断所述视频数据的带宽是否需要过滤;如果不需要,则根据所述视频数据,更新当前的带宽测量参数。
45.本步骤中,客户端在接收服务器根据数据下载请求返回的视频数据时,根据预设的带宽过滤条件,对所接收到的视频数据的带宽能否用于带宽测量进行筛选,并实时地对带宽测量参数进行相应更新,以过滤掉会影响带宽测量准确性的数据,增强用于带宽测量的参数的有效性,进而提高带宽测量的准确性。
46.这里,视频数据的带宽需要过滤是指该视频数据的带宽被过滤掉,不能参与带宽测量。
47.较佳地,为获得较好的过滤效果,所述带宽过滤条件可以基于所接收视频数据的传输时间和/或传输大小进行设置。
48.在一种实施方式中,可设置所述带宽过滤条件包括下述内容:
49.所述视频数据属于预设的小数据量文件数据,所述小数据量文件数据包括索引文件数据和初始化片段数据;
50.和/或,当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值。
51.上述带宽过滤条件中考虑到小数据量文件数据的数据量很小,相应的它们所占用下载单元很小,这些下载单元的下载速率与实际带宽往往并不一致,故,可以考虑将这类数据的带宽过滤掉,以提高带宽测量的准确性。具体的,所述小数据量文件数据包括视频文件的索引文件数据(如mpd、m3u8等)和初始化片段数据(如init segment),但不限于此,也可包括其他数据量很小的数据内容。
52.上述带宽过滤条件“当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值”中,“当前距离最近一次请求下载视频数据的时间间隔”表征了当前所接收数据的传输时长大小,当满足该条件时,说明当前所接收数据的传输时长很短,出现这种情况,有可能是下载单元的数据本身数量很小,或者下载单元因暂停恢复下载后的剩余数据量很小,也有可能是受网络波动影响而获得异常快的传输速率,这些传输时长很短的情况通常不能反映真实带宽情况,故,可以考虑将该类情况下接收的数据带宽过滤掉,以提高带宽测量的准确性。
53.对于所述过滤时间阈值,本领域技术人员可以根据实际需要,设置合理的取值,以使得可以利用该过滤时间阈值将不能代表当前真实带宽情况的数据带宽过滤掉。比如可以设置为100ms,但不限于此。
54.在一种实施方式中,对于需要实时更新的所述带宽测量参数,具体可以包括:待用于带宽采样的传输时间和已接收且不需要过滤带宽的视频数据总量。
55.相应地,具体可以采用下述方法对当前的带宽测量参数进行更新:
56.将所述待用于带宽采样的传输时间设置为当前距离最近一次请求下载视频数据的时间间隔;将所述视频数据的大小增加至当前的所述视频数据总量中。
57.这里,通过将所述待用于带宽采样的传输时间设置为当前距离最近一次请求下载视频数据的时间间隔,其中最近一次请求数据可以为首次请求下载一个数据单元,也可以是下载暂停后恢复下载所触发的数据下载请求。这样,通过上述更新可以使得所述待用于带宽采样的传输时间将始终记录最近一次请求数据的传输时间。这样,就可以把下载暂停
后的空闲时间排除,以避免空闲时间影响带宽测量的准确性。
58.上述更新方法中,对于不需要过滤带宽的视频数据,将其数据大小增加至当前的所述视频数据总量中,以便在带宽测量时,可以计算该参数与当前已参与带宽测量的总数据量的差值,获得当前不需要过滤且未参与带宽测量的数据量,进而可以基于该数据量进行带宽采样。
59.相应的,在一种实施方式中,如果所述带宽过滤条件中包含了上述“当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值”,则步骤101中在检测到当前需要对所述视频数据的带宽进行过滤,且所述视频数据所属的下载单元存在暂停下载操作,并满足:当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值时,则需要将“当前已参与带宽测量的视频数据总量”,设置为“当前已接收且不需要过滤带宽的视频数据总量”,并将当前的采样周期计时归零。
60.上述方法中,考虑到如果所述视频数据所属的下载单元存在暂停下载操作,并满足:当前距离最近一次请求下载视频数据的时间间隔小于预设的过滤时间阈值,说明当前接收的数据因为暂停下载时所在下载单元剩余数据较小,恢复下载后所传输的数据量较小而需要被过滤。此种情况下,该下载单元的下载时间已不能准确用于计算带宽,因此,需要将该下载单元已下载和未下载的所有数据信息都过滤。故,在上述方法中,需要将当前“不需要过滤且未参与带宽测量的数据量”被设置为零,即将“当前已参与带宽测量的视频数据总量”,设置为“当前已接收且不需要过滤带宽的视频数据总量”,这样两者的差值即为零。如此,可以确保此后统计的“待用于带宽采样的传输时间”和“当前不需要过滤且未参与带宽测量的数据量”是一致的,它们都是对应于新接收的未被过滤和采样的数据,从而可以保障后续采样结果不会受当前数据过滤的影响。
61.步骤102、所述客户端实时地根据所述带宽测量参数和预设的采样周期,判断当前是否满足预设的带宽测量条件,如果是,则根据所述带宽测量参数,触发带宽采样,并获取当前的带宽采样点数量,根据已采样的带宽值和所述带宽采样点数量,计算当前的带宽测量值。
62.本步骤与现有技术不同的是,在根据当前的带宽测量参数和预设的采样周期,判断出满足预设的带宽测量条件时,需要考虑触发带宽测量,而不需要等待一个或若干下载单元下载完成后再触发带宽测量,从而可以提高带宽测量的实时性。
63.具体地,为了提高带宽的实时性,在计算当前的带宽测量值时,需要基于最新采样的m个带宽采样值,进行计算。其中,如果当前已采样到的带宽值达到所述带宽采样点数量,则m为当前获取的所述带宽采样点数量,否则,m为当前实际已获取的所有带宽值数量。
64.在具体利用新采样的m个带宽采样值计算当前的带宽测量值时,可采用计算平均值的方式,但不限于此,也可以是其他能使测量结果与真实带宽更匹配的计算方式。
65.在一种实施方式中,为了提高带宽测量的及时性,可以设置所述带宽测量条件包括下述内容:
66.当前到达所述采样周期;或者,当前已接收且不需要过滤带宽的视频数据中尚未参与带宽测量的视频数据数量大于预设的带宽测量数量阈值。
67.其中,对于所述采样周期是否到达的监控,可以通过一定时器实现。
68.基于上述带宽测量条件,当达到预设采样周期,或者已接收的不需要过滤带宽且
尚未参与带宽测量的视频数据数量达到一定数量时,需要考虑触发进行带宽测量计算。
69.对于所述采样周期和所述带宽测量数量阈值,具体可由本领域技术人员根据实际需要设置,只要能确保带宽测量的及时性和准确性即可。
70.在一种实施方式中,在确定当前满足预设的带宽测量条件后,具体可以采用下述方法根据所述带宽测量参数,触发带宽采样:
71.如果所述待用于带宽采样的传输时间处于预设的时间范围内,则根据所述待用于带宽采样的传输时间,以及当前已接收且不需要过滤带宽的视频数据中尚未参与带宽测量的视频数据数量,计算当前采样的带宽值。
72.在上述方法中,考虑到带宽采样所基于的数据样本的传输时间太短会影响采样结果的真实性,为了进一步提高带宽采样的有效性,设置了上述时间范围,只有当前待用于带宽采样的传输时间在该时间范围内时,才能进行带宽采样。具体地,在一种实施方式中,所述时间范围具体为大于等于预设的最小采样传输时间小于等于所述采样周期,如此,可以尽量避免:由于采样样本数据对应的传输时长太短,而影响采样结果的准确性。对于所述最小采样传输时间,可由本领域技术人员根据实际应用场景需要设置合适取值。
73.在一种实施方式中,步骤102中还可以基于当前已接收且未显示的数据播放时长,获取当前的带宽采样点数量,以通过动态地获取当前的带宽采样点数量,来提高带宽测量的准确性,具体地,可以采用下述步骤获取当前的带宽采样点数量:
74.步骤x1、将当前已接收且未显示的数据播放时长与所述采样周期相除,得到初始采样点数量。
75.本步骤用于基于当前缓存的未显示数据对应的播放时长,确定初始采样点数量,以便在后续步骤中基于该初始采样点数量,得到最终用于进行带宽测量的采样点数量。这里,由于在确定初始采样点数量时,考虑了当前缓存数据的播放时长,使得最终用于进行带宽测量的采样点数量能够与当前缓存数据的时长相匹配,从而可以保障带宽采样的连贯性和实时性。
76.步骤x2、如果当前播放文件的最大下载单元的播放时长小于预设的时长阈值,则根据预设的初始采样点数量与带宽采样点数量之间的映射关系,确定与所述初始采样点数量相匹配的带宽采样点数量,并设置为当前的带宽采样点数量,否则,将当前的带宽采样点数量设置为预设的最大采样点数量阈值。
77.这里,为了使得所确定的带宽采样点数量与当前播放文件的传输需求相匹配,在设置当前的带宽采样点数量时,考虑了当前播放文件的最大下载单元的播放时长,在该播放时长不是太长时,按照预设的初始采样点数量与带宽采样点数量之间的映射关系,基于步骤x1得到的所述初始采样点数量,来确定当前的带宽采样点数量。在当前播放文件的最大下载单元的播放时长较长时,说明需要的带宽较大,此时,将当前的带宽采样点数量设置为预设的最大采样点数量阈值,可以通过尽量多的采样点数量,提高带宽测量的准确性。
78.其中,对于所述初始采样点数量与带宽采样点数量之间的映射关系,可以按照两者正比的关系进行设置,以使得当缓存区中待播放的数据时长较大时可以设置较大的带宽采样点数量,进而可以尽量基于较多的采样数据,来提高带宽测量的准确性。
79.对于所述最大采样点数量阈值,可由本领域技术人员根据实际经验设置合适取值,只要能尽量满足带宽测量的准确性需求即可。
80.与上述方法实施例相对应,本发明实施例还提供了一种带宽测量装置,设置于客户端中,包括:
81.带宽过滤单元201,用于当客户端接收到服务器返回的视频数据时,根据预设的带宽过滤条件,判断所述视频数据的带宽是否需要过滤;如果不需要,则根据所述视频数据,更新当前的带宽测量参数;
82.带宽测量单元202,用于实时地根据所述带宽测量参数和预设的采样周期,判断当前是否满足预设的带宽测量条件,如果是,则根据所述带宽测量参数,触发带宽采样,并获取当前的带宽采样点数量,根据已采样的带宽值和所述带宽采样点数量,计算当前的带宽测量值。
83.基于上述带宽测量方法实施例,本技术实施例还实现了一种带宽测量的电子设备,包括处理器和存储器;所述存储器中存储有可被所述处理器执行的应用程序,用于使得所述处理器执行如上所述的带宽测量方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述带宽测量方法实施方式中任一实施方式的功能。
84.其中,存储器具体可以实施为电可擦可编程只读存储器(eeprom)、快闪存储器(flash memory)、可编程程序只读存储器(prom)等多种存储介质。处理器可以实施为包括一或多个中央处理器或一或多个现场可编程门阵列,其中现场可编程门阵列集成一或多个中央处理器核。具体地,中央处理器或中央处理器核可以实施为cpu或mcu。
85.本技术实施例实现了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上所述的带宽测量方法的步骤。
86.需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
87.各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
88.在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中的只示意性地表示出了与本发明相关部分,而并不代表其作为产品的实际结构。另
外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”并不表示将本发明相关部分的数量限制为“仅此一个”,并且“一个”不表示排除本发明相关部分的数量“多于一个”的情形。在本文中,“上”、“下”、“前”、“后”、“左”、“右”、“内”、“外”等仅用于表示相关部分之间的相对位置关系,而非限定这些相关部分的绝对位置。
89.以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1