具体实施方式
在流媒体服务实现过程中,策略与控制服务器为流服务器提供的控制策略可以包括多个方面的各种策略,如:
A、带宽策略管理:给每个媒体流分配什么样的带宽。
B、视频流策略管理:给每个视频流提供什么样的参数,这里的参数如编码协议、图像大小、帧率等。
C、音频流策略管理:给每个音频流提供什么样的参数,这里的参数如编码协议、比特率等。
D、QoS/QoE(Quality of service/Quality of experience,服务质量/体验质量)策略管理:给出每个媒体流的QoS/QoE管理策略。
从服务于用户的角度来说,流媒体服务实现过程中最重要的是:为用户提供最好的用户体验。用户体验会直接影响到用户是否愿意使用流媒体服务。因此,为流服务器提供的各种策略中QoE策略是核心策略。如何为流服务器提供最优的QoE策略,使用户能够得到最好的用户体验是实现流媒体服务的关键。如何优化为流服务器提供的QoE策略,是本发明实施方式技术方案的关键。本发明实施方式中的策略与控制服务器可以为流服务器提供优化的QoE策略。策略与控制服务器是根据用户体验定量模型来确定QoE策略的。这里的QoE策略包括的变量如:1、各个媒体流的最大允许带宽;2、各个媒体流的视频,音频编码协议;3、采用的比特率;4、图像大小;5、帧率;6、优先级;7、纠错编码保护类型和保护强度参数等。本发明实施方式是通过用户体验定量模型转换的数学优化问题来确定QoE策略中的各变量的。
用户体验定量模型是指:将流媒体用户体验量化数值和媒体流各个属性参数关联起来的函数关系。函数关系的自变量即媒体流的各个属性参数,函数关系的取值是流媒体用户体验量化数值。对于视频流媒体服务来说,这里的各个属性参数包括但不限于:比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数;对于音频流媒体服务来说,这里的各个属性参数包括但不限于:比特率、压缩编码协议、纠错编码类型、保护强度参数。
本发明实施方式在用户体验定量模型的基础上,提出了一种通用的流媒体服务实现框架,该通用的流媒体服务实现框架能够适用于目前的各种用户体验定量模型,也能够适用于以后的用户体验定量模型。本发明实施方式通过这个通用的流媒体服务实现框架能够为用户提供最优的用户体验。
用户体验定量模型可以为视频用户体验定量模型,也可以为音频体验定量模型;当一个用户终端同时接收到视频流和音频流时,用户体验定量模型还可以为包括视频音频的用户体验定量模型。
下面以几个具体的用户体验定量模型为例,对本发明实施方式中的视频用户体验定量模型、音频体验定量模型分别进行说明。
一、视频用户体验定量模型(QEV)。
视频用户体验定量模型QEV=f(vbr,fr,vcp,pf,kfi,ecct,eccp) (1)
其中,f(.)表示一个函数,视频用户体验定量模型中的各参数解释如下:
vbr为视频比特率(video bit rate),如128kbps,384kbps等,vbr的单位为比特/秒或者千比特/秒。
fr为帧率(frame rate),fr的单位是fps(帧/秒),如15fps,30fps,在一般应用中,最高帧率为30fps。
vcp为视频压缩编码协议(video compression protocol),可选择的压缩编码协议有多种,如国际标准的H.261、H.263/H.263+/H.263++、H.264、MPEG-2、MPEG-4,中国标准AVS以及私有协议如MSVC1等等。
pf为图像格式(picture format),图像格式决定图像的大小,图像格式如CIF、QCIF、SQCIF、4CIF、VGA、XGA、D1、1080i等等。
kfi为关键帧间隔(key frame interval),用两个相继关键帧之间隔开的非关键帧数量表示。
ecct为纠错编码类型(error correction code type、或error control code type)。
Eccp为纠错编码参数,即保护强度参数(error correction/control code parameters)。视频用户体验定量模型QEV可进一步表示为:
QEV=f(vbr,fr,vcp,pf,kfi,ecct,eccp)=fcp(vbr,fr,vcp,pf,kfi)+fecc(ecct,eccp) (2)
其中,fcp(vbr,fr,vcp,pf,kfi)表示与视频压缩编码(cp,compression)相关的项,而fecc(ecct,eccp)表示和纠错编码相关的项。
下面以一个具体的表现形式为例,对视频用户体验定量模型QEV中的fcp(vbr,fr,vcp,pf,kfi)和fecc(ecct,eccp)分别进行说明。
目前,fcp(vbr,fr,vcp,pf,kfi)可以表述为如下形式:
fcp(vbr,fr,vcp,pf,kfi)=1+G(vbr,fr;vcp,pf,kfi) (3)
其中:
0≤a(vbr;vcp,pf,kfi)≤4(5)
ofr(vbr;vcp,pf,kfi)=d(vcp,pf,kfi)+e(vcp,pf,kfi)br,1≤ofr(vbr;vcp,pf,kfi)≤30(6)
ω(vbr;vcp,pf,kfi)=f(vcp,pf,kfi)+g(vcp,pf,kfi)br, (7)
在上述公式(3)、(4)、(5)、(6)、(7)所示的视频用户体验定量模型中,函数中的一组系数a,b,c,d,e,f是随着编码协议、图像格式和关键帧间隔的变化而变化的,而通过这些系数的变化,br、fr和fcp关联起来。
上述公式(3)、(4)、(5)、(6)、(7)所示的视频用户体验定量模型仅仅是用于描述本发明实施方式而例举的一个具体的例子。由于本发明实施方式与用户体验定量模型的具体表现形式无关,所以,本发明实施方式可以适用于目前存在的其他各种用户体验定量模型,也可以适用于将来可能出现的各种用户体验定量模型。
在实际应用中,视频比特率vbr不是连续变化的,即使是采用所谓的FGS(Fine GranularityScalability,精细分层编码)的压缩编码技术,vbr也不是连续变化的。Fr、vcp、pf、kfi在本质上都是非连续变化的,是离散变量。因此,fcp(br,fr,cp,pf,kfi)涉及的5个变量都可以离散化,可以用每个变量所常用的典型值来表示该变量。如对于比特率,可以考虑如下离散值:128bkps、256bkps、384kbps、512kbps、768kbps、1024kbps、1536kbps、1920kbps、2048kbps等等。由此可知,fcp(vbr,fr,vcp,pf,kfi)可以用一个5维的离散表格来表示。
本发明实施方式对fecc(ecct,eccp)模型的分析如下:
对于给定的纠错编码类型,如R-S(Reed-Solomon Code)码、BCH码、喷泉(Fountain Code)码、旋风码(Tornado Code)、速龙码(Raptor Code)等,在不考虑带宽的约束下,采用的保护强度越高,用户的体验效果就越好。对于保护强度,可以采用一组参数来描述,如对于很多纠错编码类型,可以采用两个参数(n,m)分别表示总的节点数和数据节点数来联合表示保护强度性能。其中,总的节点数=数据节点数+校验节点数。本发明实施方式可以用K个参数来描述保护强度。
对于某种给定的纠错编码类型,端到端的丢包率越高,则用户体验越差。因此,在fecc(ecct,eccp)模型中,丢包率是一个关键数据,丢包率是一个外部变量,是流服务器无法控制的。但是,在为流服务器提供的控制策略中需要使用丢包率这个变量,因此,在本发明实施方式中必须获取丢包率。获得丢包率的原理如附图3所示。
在图3中,用户终端为媒体流的接收端,用户终端统计一段时间内的丢包数和总的包数,从而得到该段时间内的平均丢包率,然后,用户终端通过QoS报告机制,如通过RTCP(Real-time Control Protocol)数据包将平均丢包率上报给流服务器。流服务器将用户终端上报的平均丢包率上报给策略与控制服务器,策略与控制服务器获得用户终端的丢包率。
对于某种给定的纠错编码类型,在不同的端到端丢包率下,fecc(ecct,eccp)可以用一个多维表格来表示。如果将丢包率、纠错编码类型也作为维度考虑,则可以采用K+2维的表格来表示fecc(ecct,eccp),其中K为描述eccp的参数个数。图4示出了fecc与丢包率、以及保护强度参数的两个参数之间的关系。图4示出的fecc(ecct,eccp)是一个二维表格,其中,eccp1和eccp2是两个描述保护强度的参数。
纠错编码工作原理如附图5所示。
图5中,流服务器从存储设备中的视频或者音频文件中读出视频或者音频数据,视频和音频数据可以存储在不同的文件中,也可以存储在一种通用容器文件中,如AVI(Audio VideoInterleaved,音频视频交织)文件,一个AVI文件可以同时包含多个视频和音频流。流服务器可以根据需要通过纠错编码环节对多媒体流进行编码,然后,通过打包发送环节将视频流和音频流打包为数据包流,最后,将数据包流发送到网络上。
引入了纠错编码后,对于媒体流数据来说,虽然在丢包的情况下提高了保护能力,但是,媒体流数据的比特率有所增加。对于某种给定的纠错编码类型以及一组给定的保护强度参数,对应存在一个比例因子kecc(ecct,eccp),即经过纠错编码后,视频流的比特率增加为原来的kecc(ecct,eccp)倍。严格的说,压缩的媒体流数据经过打包后,也会存在额外的开销。这个额外的开销是可以精确计算的。针对一种固定的编码协议和具体参数如比特率、打包协议(如RTP,Real Time Protocol,实时协议)等,可以确定一个比特率倍增比例因子kpac(br,cp,pacp),其中,变量pacp表示打包协议(packetization protocol)。由于这个额外的开销一般可以忽略不计,所以,本发明实施方式可以忽略这个比例因子,认为kpac(br,cp,pacp)恒等于1。
二、音频用户体验定量模型(QEA)。
音频用户体验定量模型QEA=g(abr,acp,ecct,eccp) (8)
其中,g(.)表示一个函数,音频用户体验定量模型中的各参数解释如下:
abr为音频比特率(Audio bit rate),如32kbps,48kbps,64kbps,192kbps等,abr的单位为比特/秒或者千比特/秒。
acp为音频压缩编码协议(Audio compression protocol),目前可选择的压缩编码协议有多种,如ITU-T的G.711、G.722、G.723.1、G.728、G.729、G.729.1、MPEG的AAC、MP3以及IETF的iLBC(Internet Low-BitRate Codec)等等。
ecct为纠错编码类型(error correction code type、或error control code type)。
eccp为纠错编码参数,即保护强度参数(error correction/control code parameters)。音频用户体验定量模型QEA可进一步表示为:
QEA=g(abr,acp,ecct,eccp)=gcp(abr,acp)+gecc(ecct,eccp) (9)
其中,gcp(abr,acp)表示与音频压缩编码相关的项,而gecc(ecct,eccp)表示和纠错编码相关的项。
本发明实施方式采用的音频用户体验定量模型主要依赖于音频压缩编码协议acp和比特率abr两个变量。acp的不同取值对应不同的音频压缩编码协议。当前的许多音频压缩编码协议都支持多个比特率,如32kbps、48kbps、64kbps、192kbps等等。音频流由于采用了纠错编码而提高了用户体验,gecc(ecct,eccp)与视频fecc(ecct,eccp)类似,也可以用一个多维离散表格来表示。gecc(ecct,eccp)也主要依赖于丢包率。同时,由于对音频流使用了纠错保护编码,同样会引起比特率的上升,上升的比例因子也是kecc(ecct,eccp)。另外,在采用纠错编码后,会引起流服务器对多媒体数据处理量的额外增加,导致流服务器对多媒体数据处理效率降低。
上述实施方式例举了具体的用户体验定量模型,用户体验定量模型是本发明实施方式的目标函数,本发明实施方式还需要设置目标函数的约束条件,从而将用户体验定量模型转换为数学优化问题。这里的约束条件可以从媒体流对应的资源限制条件来获得。由于媒体流需要消耗流服务器的资源,因此,本发明实施方式可以从流服务器的资源来设置约束条件。
下面以流服务器的处理资源为例对媒体流需要消耗流服务器的资源情况进行说明。
流服务器是一个具有处理计算能力的网络设备,流服务器总处理资源是有限的。衡量流服务器处理能力的一个粗略指标是并发流数(number of concurrent streams),也就是流服务器同时发送媒体流的个数。但是,本发明实施方式可以不考虑并发流数这个指标,而从媒体流的处理过程来分析媒体流对流服务器资源的消耗。流服务器对媒体流的处理过程可以包括如下环节:
1、从存储设备中读取流媒体数据;
2、对流媒体数据进行纠错编码;
3、将流媒体数据进行打包发送。
在上述三个环节中,读取环节和打包发送环节是必须经过的,这两个环节基本上只和比特率有关,即由单位时间内读取和打包发送的数据量决定。设定流服务器对读取和打包发送过程的处理开销为:Cp(br),即依赖的变量是比特率br,对于视频流来说比特率是vbr,对于音频流来说比特率是abr。纠错编码环节是可选的,即流服务器可以不对媒体流进行纠错编码处理,也可以对媒体进行纠错编码处理。纠错编码环节除了和比特率有关外,还与ecct和eccp有关。因此,可以设定纠错编码环节的处理开销为:Cecc(br,ecct,eccp),即依赖的变量是比特率(对于视频流来说比特率是vbr,对于音频流来说比特率是abr)、ecct和eccp。
对于一个媒体流来说,流服务器的总处理开销为:
从公式10可知,对于一个媒体流来说,流服务器的总处理开销可以有如表1所示的几种情况:
表1流服务器对单个媒体流的总处理开销情况
流类型\有无纠错编码 |
有 |
无 |
视频流 |
Cp(vbr)+Cecc(vbr,ecct,eccp) |
Cp(vbr) |
音频流 |
Cp(abr)+Cecc(abr,ecct,eccp) |
Cp(abr) |
对于视频流来说,Cp(vbr)是随着vbr的增大而增大的,Cecc(vbr,ecct,eccp)也是随着vbr的增大而增大的。对于音频流来说,Cp(abr)是随着abr的增大而增大的,Cecc(abr,ecct,eccp)也是随着abr的增大而增大的。
在实际应用中,存在一组数值(ecct,eccp)max使得对于每个给定的vbr或者abr值,Cecc(vbr,ecct,eccp)或者Cecc(abr,ecct,eccp)的取值最大。也就是说,对于每个给定的vbr或者abr值,可以计算出视频流或者音频流所需要消耗流服务器的最大处理资源。视频流需要消耗流服务器的最大处理资源、音频流需要消耗流服务器的最大处理资源可以表示为如下形式:
mpvpr(vbr)=Cp(vbr)+Cecc(vbr,ecctmax,eccpmax)
mpapr(abr)=Cp(abr)+Cecc(abr,ecctmax,eccpmax) (11)
其中,mpvpr(maximum possible video processing resource)表示视频流可能需要消耗流服务器的最大处理资源;mpapr(maximum possible audio processing resource)表示音频流可能需要消耗流服务器的最大处理资源。Mpvpr是比特率vbr的递增函数,mpapr是比特率abr的递增函数。
设定流服务器的总处理资源为RT(R,Resource资源;T,Total全部),RT中有一部分资源是固定的,和媒体流没有关系,如用于系统管理、运行操作系统等等。在计算流服务器用于流的总处理资源时,需要将这一部分固定资源从RT中减去。上述固定资源用RF表示(F表示固定即fixed),则流服务器用于流的真正可用处理资源RA(A,Available,可用)为:RA=RT-RF。在设置目标函数的约束条件时,应考虑音频流或视频流需要消耗的最大处理资源必须不能超过流服务器的可用处理资源RA。
本发明实施方式还可以根据流服务器的带宽资源、用户终端对流媒体服务的限制条件等来设置目标函数的约束条件。
在根据用户体验定量模型设置了数学优化问题后,策略与控制服务器可以根据现有的各种求解方法来求解数学优化问题。该求解过程可以通过采用DSP(Digital Signal Processor,即数字信号处理器)芯片来实现。当数学优化问题采用所谓的神经网络如Hopfield网络来求解时,可以利用目前已经存在的商用神经网络数字集成电路芯片。策略与控制服务器通过求解结果获得了用户体验定量模型中的各参数,即确定了为流服务器提供的控制策略中的各参数。然后,策略与控制服务器将控制策略输出给流服务器。流服务器需要在媒体流读取、纠错编码和打包发送过程中执行这些控制策略。控制策略中包括对流服务器执行媒体流读取、纠错编码、打包发送等各过程中各变量的控制。这里的变量如视频的压缩编码协议、图像大小、帧率、比特率等;再如音频的压缩编码协议、比特率等。
在本发明实施方式中,流服务器可以执行控制策略中的各变量,也就是说,策略与控制服务器是可以根据控制策略来控制流服务器为用户提供的流媒体服务。在具体的实际应用中,如果某些变量不能控制,则会使策略与控制服务器在确定各变量的过程更简单一些,从而成为确定各变量的一个特例。
在本发明实施方式中,只考虑视频、音频流已经作为压缩的媒体文件存在于存储设备中的情况,不考虑通过实时编码设备获得视频、音频流的情况。因此,控制策略中的有些变量不是都能控制的,至少是不能连续控制的,如视频的帧率一般不能随意控制;如果压缩文件中对应于某个比特率,帧率应该是固定的,要改变帧率,可以采用跳帧等方法;改变帧率一般是无法实现或者很难实现的。强制进行跳帧,会导致用户在一段时间内的用户体验严重下降。
目前,通过采用分层编码(Layered coding)技术,可以使视频数据经过一次压缩编码同时支持多个比特率和图像格式。如基本层支持QCIF(Quarter Common Interchange Format,四分之一公共信息交换格式)格式、比特率为128kbps;增强层支持CIF格式,比特率为768kbps等等。一般情况下,视频数据可以支持一个基本层和多个增强层,因此,视频数据可以提供多种比特率的组合。
即便是不采用分层编码技术,也同样可以使视频数据支持多个比特率和图像格式。对于同一个视频内容如同一个电影,可以采用不同的编码协议和比特率进行压缩编码,形成多个版本的视频数据,不同版本的视频数据提供给具有不同能力的用户终端。
对于同一个音频内容如同一首歌,可以采用AAC压缩,也可以采用MP3压缩,从而产生不同的比特率。
对于图像格式也可以采用不同的编码协议和比特率进行压缩,以产生不同版本的图像格式,这是非常具有实际应用意义的。比如同一部电影,采用1080i格式进行压缩,该版本的视频数据可以提供给需要高清质量的用户终端;采用XGA格式进行压缩,该版本的视频数据可以提供给PC用户终端;采用CIF或者QCIF格式进行压缩,该版本的视频数据可以提供给移动终端。
对于帧率,也可以采用上述类似的方法,即通过采用不同帧率进行压缩编码得到不同帧率的多媒体数据。不过通常来说,帧率和比特率之间存在一个最优配合关系。在给定比特率的情况下,会存在一个最优的帧率与之配合。公式(6)即可以体现出比特率和帧率的最优配合关系。
流服务器执行策略与控制服务器传输来的控制策略的过程如附图6所示。
在图6中,流服务器在执行具体的控制策略时,需要按照控制策略中的各变量,来选择存储设备中存储的合适的媒体数据文件,并读取选择的媒体数据文件,并对媒体数据文件进行纠错编码、打包发送等处理。
图6中流服务器执行策略与控制服务器传输来的控制策略的具体实现过程可以包括如下四种情况:
情况一、针对同一内容的视频媒体流,存储设备中存储的流媒体数据文件包括:支持不同比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数的多个流媒体数据文件。此时,流服务器在接收到策略与控制服务器传输来的控制策略后,根据控制策略中的比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数选择读取存储设备中存储的流媒体数据文件。在成功读取了流媒体数据文件后,流服务器直接将读取的流媒体数据文件转化成媒体流,发送给用户终端。
情况二、针对同一内容的视频媒体流,存储设备中存储的流媒体数据文件包括:支持不同比特率、帧率、压缩编码协议、图像格式、关键帧间隔的多个流媒体数据文件。此时,流服务器在接收到策略与控制服务器传输来的控制策略后,根据控制策略中的比特率、帧率、压缩编码协议、图像格式、关键帧间隔选择读取存储设备中存储的流媒体数据文件。在成功读取了流媒体数据文件后,流服务器根据控制策略中的纠错编码类型、保护强度参数对读取的流媒体数据文件进行纠错编码处理。然后,流服务器将纠错编码处理后的流媒体数据文件转化成媒体流,发送给用户终端。
情况三、针对同一内容的音频媒体流,存储设备中存储的流媒体数据文件包括:支持不同比特率、压缩编码协议、纠错编码类型、保护强度参数的多个流媒体数据文件。此时,流服务器在接收到策略与控制服务器传输来的控制策略后,根据控制策略中的比特率、压缩编码协议、纠错编码类型、保护强度参数选择读取存储设备中存储的流媒体数据文件。在成功读取了流媒体数据文件后,流服务器直接将读取的流媒体数据文件转化成媒体流,发送给用户终端。
情况四、针对同一内容的音频媒体流,存储设备中存储的流媒体数据文件包括:支持不同比特率、压缩编码协议的多个流媒体数据文件。此时,流服务器在接收到策略与控制服务器传输来的控制策略后,根据控制策略中的比特率、压缩编码协议读取流媒体数据文件,并根据控制策略中的纠错编码类型、保护强度参数对读取的流媒体数据文件进行纠错编码处理。然后,流服务器将纠错编码处理后的流媒体数据文件转化成媒体流,发送给用户终端。
由于本发明实施方式中的流服务器是根据控制策略来选择媒体数据文件、纠错编码、打包发送的,而本发明实施方式中的控制策略是在用户体验定量模型的基础上获得的,因此,本发明实施方式中的流服务器为用户终端提供的流媒体服务是使用户终端体验最优的流媒体服务。
下面以几种具体的实施方式为例对本发明实施方式获得控制策略的方法进行说明。
实施方式一、针对单个视频流的控制策略获得方法。
首先,策略与控制服务器需要确定编码协议类型、比特率、帧率、关键帧间隔、纠错编码码型、保护强度参数等变量的最优数值,以使得用户体验达到最优。在确定各变量的过程中,需要结合端到端丢包率pl,丢包率为外部变量。获得丢包率的方法如上面实施方式中的描述,本发明实施方式不限制获得丢包率的具体实现过程。策略与控制服务器设置的目标函数为:
QEV=f(vbr,fr,vcp,pf,kfi,ecct,eccp)=fcp(vbr,fr,vcp,pf,kfi)+eccind×fecc(ecct,eccp)(12)
在上述目标函数中引入了一个新的变量,即eccind(error correction code indicator),eccind用于指示是否采用了纠错编码。eccind的取值如下:
针对目标函数(12)构造约束条件的过程为:
在流服务器的网络连接带宽方面:如果对于每个视频流设定了视频最高允许发送带宽amvtb(allowable maximum video transmission bandwidth),那么一个视频流在需要消耗的带宽方面需要满足如下条件:
((kecc(ecct,eccp)-1)eccind+1)vbr≤amvtb (14)
如果没有对每个视频流设定视频最高允许发送带宽amvtb,那么一个视频流在需要消耗的带宽方面需要满足如下条件:
((kecc(ecct,eccp)-1)eccind+1)vbr≤TAB (15)
其中:TAB(Total Available Bandwidth,总可用带宽)是流服务器对外发送媒体流的总可用带宽。如果流服务器还存在一些其他通讯需求,如与其他服务器进行通讯等,则TAB应小于流服务器与网络连接的总带宽。
流服务器的处理资源方面:如果对于每个视频流设定了视频最大允许使用处理资源amvpr(allowable maximum video processing resource),那么一个视频流在需要消耗的处理资源方面需要满足如下条件:
Cp(vbr)+eccind×Cecc(vbr,ecct,eccp)≤amvpr (16)
如果没有对于每个视频流设定视频最大允许使用处理资源amvpr,那么一个视频流在需要消耗的处理资源方面需要满足如下条件:
Cp(vbr)+eccind×Cecc(vbr,ecct,eccp)≤RA (17)
其中,RA为流服务器用于流的真正可用处理资源。
本发明实施方式可以仅根据上述流服务器的网络连接带宽和流服务器的处理资源来设置目标函数(12)的约束条件,本发明实施方式也可以根据流服务器的网络连接带宽、流服务器的处理资源、以及用户终端的资源来设置目标函数(12)的约束条件。用户终端的资源如用户终端连接的网络带宽、用户终端对多媒体流格式的限制等等。用户终端对多媒体流格式的限制如对多媒体流图像格式的限制等等。
如果用户终端的网络带宽存在限制,且用户终端的视频最大允许接收带宽是amvrb(allowable maximum video reception bandwidth),那么约束条件(14)需要修正为:
((kecc(ecct,eccp)-1)eccind+1)vbr≤min(amvtb,amvrb) (18)
其中,min(x,y)表示取x,y两个数中的最小值。
如果用户终端的网络带宽存在限制,且用户终端的视频最大允许接收带宽是amvrb,那么约束条件(15)需要修正为:
((kecc(ecct,eccp)-1)eccind+1)vbr≤min(TAB,amvrb) (19)
因此,数学优化问题可以描述为如下形式:
s.t.
(1)((kecc(ecct,eccp)-1)eccind+1)vbr≤min(amvtb,amvrb)
或者 (20)
((kecc(ecct,eccp)-1)eccind+1)vbr≤min(TAB,amvrb)
(2)
Cp(vbr)+eccind × Cecc(vbr,ecct,eccp)≤amvpr
或者
Cp(vbr)+eccind × Cecc(vbr,ecct,eccp)≤RA
其中,s.t.(subject to)表示约束条件;VVS(video variable space,视频变量空间),表示变量vbr、fr、vcp、pf、kfi所有取值的各种组合所构成的集合;ECCVS(error correctioncode variable space,纠错编码变量空间),表示变量ecct、eccp所有取值的各种组合所构成的集合;运算符“
”表示两个空间(集合)的笛卡尔积(Cartesian Product);集合{0,1}是变量eccind的取值集合。
在上述实施方式中已经说明了vbr、fr、vcp、pf、kfi、ecct、eccp等变量的取值可以均为离散值,因此,VVS、ECCVS均为有限集合,即VVS、ECCVS均为元素个数有限的集合。从而,VVS、ECCVS和{0,1}的笛卡尔积也是有限集合。
在有限集合的基础上求解一个数学优化问题,有很多种方法,如蛮力搜索法(Brutal forcesearch)、组合优化(combinatoric optimization)方法等等。蛮力搜索法即在约束条件限制下,搜索比较集合中的每组变量组,最后找到使得目标函数值最大的一组变量值。使目标函数值最大的一组变量值即为使编码协议类型、比特率、帧率、关键帧间隔、纠错编码码型、保护强度参数等变量的最优数值。这些变量的最优数值即为视频用户体验定量模型中的各参数,视频用户体验定量模型中的各参数也就是控制策略中的各决策参数。
对数学优化问题进行求解的方法属于现有的数学方法,在此不再对数学优化问题的求解方法进行详细说明。而且,本发明实施方式不限制对数学优化问题进行求解的方法。
实施方式二、针对单个音频流的控制策略获得方法。
首先,策略与控制服务器需要确定变量编码协议类型、比特率、纠错编码码型、保护强度参数的最优数值,以使得用户体验达到最优。在确定各变量的过程中,需要结合端到端丢包率pl,丢包率为外部变量。获得丢包率的方法如上面实施方式中的描述,本发明实施方式不限制获得丢包率的具体实现过程。策略与控制服务器设置的目标函数为:
QEA=g(abr,acp,ecct,eccp)=gcp(abr,acp)+eccind×gecc(ecct,eccp) (21)
针对目标函数(21)构造约束条件的过程为:
流服务器的网络连接带宽方面:如果对于每个音频流设定了音频最高允许发送带宽amatb(allowable maximum audio transmission bandwidth),那么一个音频流在需要消耗的带宽方面需要满足如下条件:
((kecc(ecct,eccp)-1)eccind+1)abr≤amatb (22)
如果没有对每个音频流设定音频最高允许发送带宽amvtb,那么一个音频流在需要消耗的带宽方面需要满足如下条件:
((kecc(ecct,eccp)-1)eccind+1)abr≤TAB (23)
其中:TAB(Total Available Bandwidth,总可用带宽)是流服务器对外发送媒体流的总可用带宽。如果流服务器还存在一些其他通讯需求,如与其他服务器进行通讯等,则TAB应小于流服务器与网络连接的总带宽。
在流服务器的处理资源方面:如果对每个音频流均设定了音频最大允许使用处理资源amapr(allowable maximum audio processing resource),那么一个音频流在需要消耗处理资源方面需要满足如下条件:
Cp(abr)+eccind×Cecc(abr,ecct,eccp)≤amapr (24)
如果没有对每个音频流设定了音频最大允许使用处理资源amapr,那么一个音频流在需要消耗处理资源方面需要满足如下条件:
Cp(abr)+eccind×Cecc(abr,ecct,eccp)≤RA (25)
本发明实施方式可以仅根据上述流服务器的网络连接带宽和流服务器的处理资源来设置目标函数(21)的约束条件,本发明实施方式也可以根据流服务器的网络连接带宽、流服务器的处理资源、以及用户终端的资源来设置目标函数(21)的约束条件。用户终端的资源如用户终端连接的网络带宽、用户终端对多媒体流格式的限制等等。用户终端对多媒体流格式的限制如对音频流格式的限制等等。
如果用户终端的网络带宽存在限制,且用户终端的音频最大允许接收带宽是amarb(allowable maximum audio reception bandwidth),那么约束条件(22)需要修正为:
((kecc(ecct,eccp)-1)eccind+1)vbr≤min(amatb,amarb) (26)
其中,min(x,y)表示取x,y两个数中的最小值。
如果用户终端的网络带宽存在限制,且用户终端的音频最大允许接收带宽是amarb,那么约束条件(23)需要修正为:
((kecc(ecct,eccp)-1)eccind+1)vbr≤min(TAB,amarb) (27)
因此,根据流媒体的用户体验定量模型建立的数学优化问题可以描述为如下形式:
s.t.
(1)((kecc(ecct,eccp)-1)eccind+1)abr≤min(amatb,amarb)
或者
((kecc(ecct,eccp)-1)eccind+1)abr≤min(TAB,amarb) (28)(2)
Cp(abr)+eccind×Cecc(abr,ecct,eccp)≤amapr
或者
Cp(abr)+eccind×Cecc(abr,ecct,eccp)≤RA
其中,s.t.表示约束条件;AVS(audio variable space,音频变量空间),表示变量abr,acp所有取值的各种组合所构成的集合;ECCVS,表示变量ecct、eccp所有取值的各种组合所构成的集合;运算符“×”表示两个空间(集合)的笛卡尔积;集合{0,1}是变量eccind的取值集合。
在上述实施方式中已经说明了abr、acp、ecct、eccp等变量的取值可以均为离散值,因此,AVS、ECCVS均为有限集合,即AVS、ECCVS均为元素个数有限的集合。从而,AVS、ECCVS和{0,1}的笛卡尔积也是有限集合。
在有限集合的基础上求解一个数学优化问题有很多种方法,对数学优化问题进行求解的方法属于现有的数学方法,在此不再对数学优化问题的求解方法进行详细说明。而且,本发明实施方式不限制对数学优化问题进行求解的方法。无论采用怎样的求解方法,在确定出使得目标函数值最大的一组变量值后,即确定出控制策略中的各决策参数。
在实际应用中,流服务器往往会同时提供多个媒体流,并为多个用户终端同时提供服务。媒体流和用户终端之间的对应关系主要有如附图7所示的四种情况。图7示出的四种情况分别为:
情况a、一对一,即一个单播流提供给一个用户终端。情况a适用于视频点播或者网络不支持组播情况下的直播(Live)。
情况b、一对多,即网络支持组播,用于直播(Live)或者模拟直播(Simucast)。从流服务器发出的一个组播流经过流复制节点复制发送到多个用户终端。
情况c、多对一,即一个用户终端同时接收多个单播媒体流,类似于电视机的画中画。
情况d、多对多,上述三种情况的组合。
在实际应用中,视频流和音频流不一定成对出现,如在网络电台(InternetRadio)应用中,只有音频流没有视频流;再如在远程监控应用中,可能只有视频流没有音频流。在IPTV应用中,视频流和音频流往往成对出现。但是,视频流的数量和音频流的数量可以不同。因此,策略与控制服务器在建立数学优化过程中,必须要考虑到上述不同的情况,使得数学优化问题的描述具有一般性。在考虑到上述不同的情况,针对多个媒体流的流媒体服务的控制策略获得方法可以为如下两种:
实施方式三、针对多个媒体流、且分别考虑资源需要消耗的控制策略获得方法。
设定流服务器需要发送给用户终端的媒体流包括NV个视频流和NA个音频流。每个视频流的视频最高允许发送带宽为:amvtb(i),其中,i=0、1、2、...,NV-1。每个视频流的视频最高允许发送带宽的具体数值不一定相同。每个音频流的音频最高允许发送带宽为:amatb(j),其中,j=0、1、2、...,NA-1。每个音频流的音频最高允许发送带宽的有各自的最高允许发送带宽数值,不一定相同。
在设置各个视频流和音频流的最高允许发送带宽时,那么所有音频流和所有视频流在需要消耗的带宽方面需要满足如下条件:
即流服务器的总可用带宽能够满足各视频流和音频流的带宽需求。
在设置各视频流、音频流的最大允许使用处理资源时,那么所有音频流和所有视频流在需要消耗的处理资源方面需要满足如下条件:
即流服务器的可用处理资源能够满足各视频流和音频流的处理资源需求。
在设定公式(29)和(30)的约束条件后,即可以将各用户体验定量模型转换为数学优化问题,然后,对数学优化问题求解。无论采用怎样的求解方法,在确定出使得目标函数值最大的一组变量值后,即确定出针对每个媒体流的控制策略中的各决策参数,从而为各个用户终端均提供最优的用户体验。
上述实施方式三是对各个媒体流分别进行资源需要消耗考虑的,分别考虑各个媒体流的资源需要消耗是一种保守的方法,其缺点是不能联合考虑各个流媒体流的具体情况,各个媒体流之间的资源不能相互调济。各个媒体流都设定了一个最高允许发送带宽,如果实际用不到,其它流也不能使用这部分多余的带宽,并且也不能使用剩余的处理资源。
实施方式四、针对多个媒体流、且联合考虑各个媒体流的资源需要消耗的控制策略获得方法。该方法是一种综合最优的控制策略获得方法。
仍然设定流服务器需要发送给用户终端的媒体流包括NV个视频流和NA个音频流,每个媒体流服务的用户数量为:NVC(i),i=0,1,2,......,NV-1;NAC(j),j=0,1,2,......,NA-1;其中:NVC(Number of video customers)为视频用户数量,NAC(Number of audiocustomers)为音频用户数量;且对于单播流来说,用户数量为1,对于组播流来说,用户数量可能大于1。用户终端的总体验质量QET(Quality of Experience Total)为:
所有用户的综合用户体验是一种各个媒体流用户体验的加权和。这里可以设定每个用户终端是平等的,也可以设定用户终端之间是存在差别的。如果用户终端之间存在差别,如存在VIP用户和普通用户的差别,则在设置加权时,还要考虑不同用户终端之间的差异。
本发明实施方式引入表示用户终端等级差异的权值w,如果等级最低用户的权值为1、等级最高用户的权值为WM,则w=1,2,3,...,WM。共WM级。考虑到权值之后,公式(31)需要修正为:
其中:w(i,k),k=0,1,2,...,NVC(i)-1表示接收第i个视频流的NVC(i)个用户各自的等级权值。其中w(j,k),k=0,1,2,...,NAC(j)-1表示接收第j个音频流的NAC(j)个用户各自的等级权值。
在公式(31)和公式(32)中,每个视频流有8个变量需要优化,每个音频流有5个变量需要优化,因此,需要优化的变量总数是8NV+5NA。
所有音频流和所有视频流在需要消耗的带宽方面需要满足如下条件:
所有音频流和所有视频流在需要消耗的处理资源方面需要满足如下条件:
因此,根据各用户终端的用户体验定量模型转换获得的数学优化问题为:
s.t.
其中,VVSNV×AVSNA×ECCVSNV×NA×{0,1}NV×NA表示NV个VVS、NA个AVS、NV×NA个ECCVS和NV×NA个{0,1}的笛卡尔积。
上述公式(35)是一个典型的离散数学优化问题,需要优化的变量个数为8NV+5NA。本发明实施方式可以采用现有技术中的多种求解方法对上述公式(35)的数学优化问题进行求解,在此不再详细描述。
如果以CARD(VVS)表示VVS集合中元素个数、以CARD(AVS)表示AVS集合中元素个数、以CARD(ECCVS)表示ECCVS集合中元素个数,那么VVSNV×AVSNA×ECCVSNV×NA×{0,1}NV×NA中元素个数为:2NV×NA[CARD(VVS)]NV[CARD(AVS)]NA[CARD(ECCVS)]NV×NA。而在上述分别考虑各个媒体流的实施方式中,虽然需要优化的变量的数量没有变化,也是8NV+5NA,但是需要搜索的集合中的元素个数是:
2(NV×NA)+NV×[CARD(VVS)]+NA ×[CARD(AVS)]+(NV×NA)×[CARD(ECCVS)]。
显然,在分别考虑各个媒体流的实施方式中,数学优化问题的规模随着媒体流的总数按照算术级数增长,在综合考虑各个媒体流的实施方式中,数学优化问题的规模随着媒体流的总数按照几何级数增长。
本发明实施方式可以通过减少需要优化的变量数目,来降低问题的规模、简化求解该问题的计算量。减少需要优化的变量数目的方法如将媒体流按照类别进行归并,如有1000个媒体流的用户终端带宽、需要的图像大小、编码协议等变量均相同,则这1000个媒体流可以归并为一类,这1000个媒体流的变量优化结果是相同的,只要对其中一个媒体流的变量进行优化,得到的优化变量值即可适合其它各个同类的媒体流。这样,大大简化了数学优化问题,从而使影响数学优化问题规模的不是媒体流的数量,而是不同类媒体流的类数量。
同时,在实际应用中,有些变量如图像格式、编码协议等是需要固定下来的,这样也减少了数学优化问题的规模。
本发明实施方式还提供一种流媒体服务实现系统,该系统包括存储设备、策略与控制服务器和流服务器。
存储设备主要用于存储流媒体数据文件。这里的流媒体数据文件包括:针对同一内容的媒体流、支持不同控制策略的多个流媒体数据文件;例如,针对同一内容的视频媒体流,存储设备中存储有支持不同比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数的多个流媒体数据文件;或者支持不同比特率、帧率、压缩编码协议、图像格式、关键帧间隔的多个流媒体数据文件;再例如,针对同一内容的音频媒体流,存储设备中存储有支持不同比特率、压缩编码协议、纠错编码类型、保护强度参数的多个流媒体数据文件;或者支持不同比特率、压缩编码协议的多个流媒体数据文件。
策略与控制服务器主要用于存储根据流媒体的用户体验定量模型而建立的数学优化问题,该数学优化问题的约束条件可以是根据流媒体服务的资源限制条件设置的。策略与控制服务器对该数学优化问题进行求解,以确定用户体验定量模型中的各参数,然后,策略与控制服务器根据确定的各参数设置控制策略,将设置好的控制策略传输给流服务器。策略与控制服务器可以根据流服务器的资源来设置目标函数的约束条件,还可以根据流服务器的带宽资源、用户终端对流媒体服务的限制条件等来设置目标函数的约束条件。策略与控制服务器在设置约束条件时,可以根据单个媒体流需要消耗流服务器资源的限制条件设置数学优化问题的约束条件;也可以在各媒体流需要消耗流服务器的资源互不调剂的条件下设置数学优化问题的约束条件;还可以在各媒体流需要消耗流服务器的资源允许相互调剂的条件下设置数学优化问题的约束条件。策略与控制服务器设置约束条件的具体实施方式、对数学优化问题的求解过程等如上述方法实施方式中的描述。
流服务器主要用于根据接收到的控制策略从存储设备中读取流媒体数据文件、并将读取的流媒体数据文件转化成媒体流发送给用户终端;例如,流服务器根据控制策略中的比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数选择读取存储设备中存储的视频流媒体数据文件,然后,流服务器直接将读取的视频流媒体数据文件转化成媒体流,发送给用户终端;例如,流服务器根据控制策略中的比特率、帧率、压缩编码协议、图像格式、关键帧间隔选择读取存储设备中存储的视频流媒体数据文件,然后,流服务器根据控制策略中的纠错编码类型、保护强度参数对读取的视频流媒体数据文件进行纠错编码处理;再例如,流服务器根据控制策略中的比特率、压缩编码协议、纠错编码类型、保护强度参数选择读取存储设备中存储的音频流媒体数据文件,然后,流服务器直接将读取的音频流媒体数据文件转化成媒体流,发送给用户终端;还有,流服务器根据控制策略中的比特率、压缩编码协议读取音频流媒体数据文件,流服务器根据控制策略中的纠错编码类型、保护强度参数对读取的音频流媒体数据文件进行纠错编码处理,然后,流服务器将纠错编码处理后的流媒体数据文件转化成媒体流,发送给用户终端。流服务器执行的具体操作如上述方法实施方式中的描述。
本发明实施方式还提供一种策略与控制服务器。该策略与控制服务器中设置有存储模块、求解模块和传输模块。
存储模块主要用于存储根据流媒体的用户体验定量模型所建立的数学优化问题;该数学优化问题的约束条件可以是根据流媒体服务的资源限制条件设置的,如该数学优化问题的约束条件可以根据流服务器的资源来设置,还可以根据流服务器的带宽资源、用户终端对流媒体服务的限制条件等来设置。存储模块中存储的数学优化问题的约束条件可以是根据单个媒体流需要消耗流服务器资源的限制条件设置的;也可以是在各媒体流需要消耗流服务器的资源互不调剂的条件下设置的;还可以是在各媒体流需要消耗流服务器的资源允许相互调剂的条件下设置的。存储模块中存储的数学优化问题及其约束条件如上述方法实施方式中的描述。
求解模块主要用于对存储模块中存储的数学优化问题进行求解。求解模块可以采用现有的各种方法和装置来实现,其具体求解过程在此不再详细描述。
传输模块主要用于将求解模块通过求解所述数学优化问题获得的用户体验定量模型中的各参数设置为控制策略,并将控制策略传送给流服务器。对于视频流媒体服务来说,这里的控制策略包括但不限于:比特率、帧率、压缩编码协议、图像格式、关键帧间隔、纠错编码类型、保护强度参数;对于音频流媒体服务来说,这里的控制策略包括但不限于:比特率、压缩编码协议、纠错编码类型、保护强度参数。
由于本发明实施方式中的控制策略是根据用户体验定量模型精确计算出来的,而且,用户体验定量模型综合考虑了用户体验的各个方面,因此,本发明实施方式能够最大程度地为用户提供最优的用户体验。对于视频流、音频流等对应的用户体验定量模型,会随着相关领域研究的不断深入,而提出更多的用户体验定量模型。由于本发明实施方式的实现过程与用户体验定量模型的具体表现形式没有关系,因此,本发明实施方式对于各种不同的用户体验定量模型都能够适用。而且,当用户体验定量模型改进后,本发明实施方式为用户终端带来的用户体验也会有所改进,从而为用户终端带来更好的用户体验。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。