一种视频质量的评估方法及装置与流程

文档序号:20918260发布日期:2020-05-29 13:48阅读:177来源:国知局
一种视频质量的评估方法及装置与流程
本申请涉及视频处理
技术领域
,尤其涉及一种视频质量的评估方法及装置。
背景技术
:随着通信技术的发展,视频业务的需求量快速增长,从而给网络带来较大的负担。由于网络资源有限,为了保证视频业务的服务质量,可以通过视频质量评估技术获取网络能够提供的视频质量,根据视频质量调节视频的编码参数、传输信道参数等,从而达到在满足较大的需求量的情况下,改善视频业务的服务质量的目的。目前,在进行视频质量评估时,主要采用客观评估技术,例如,通过获取视频的丢包率、延时、抖动等客观的指标去评估视频质量。然而,同一个视频在相同的网络参数的情况下,可能由于不同应用的抗抖动、抗丢包等性能不同,而呈现出不同的质量。例如,视频在网络中传输的过程中产生了3%的丢包率,然而,该丢包率对于应用a没有影响,即该视频在应用a中播放时画质很清晰且没有卡顿。但该丢包率对于应用b可能影响很大,即该视频在应用b中播放时画质不清晰且多次出现卡顿。可见,采用客观评估技术存在针对多种不同的应用不具备普适性的问题。技术实现要素:本申请提供一种视频质量的评估方法及装置,用以提高视频质量评估技术的普适性。第一方面,提供一种视频质量的评估方法,在该方法中,首先根据用户对样本集合中的每个样本的主观评价结果和每个样本的参数集合(参数集合中的参数类型可以包括丢包率、延时、抖动中的至少一种)生成评估模型,从而在进行视频质量的评估时,先获取待评估视频的参数集合,该待评估视频的参数集合与用于生成评估模型的每个样本的参数集合具有相同的参数类型,再根据该评估模型以及该待评估视频的参数集合,评估该待评估视频的视频质量,获得评估结果。在上述技术方案中,由于生成该评估模型的主观评价结果可以反映同一样本在不同的应用中呈现出的不同的质量,也就是说,在生成该评估模型时,不仅考虑了各个样本的客观指标,也考虑了不同的应用对每个样本的视频质量的影响,从而使得使用该评估模型对待评估视频的视频质量进行评估的方法可以适用于不同的应用中。而且,由于使用该评估模型对待评估视频的视频质量进行评估的方法适用于不同的应用中,这样,在不同的应用中对视频质量进行评估时均可以得到一个较为准确的评估结果,可以提高视频质量的评估方法的准确性。在一种可能的设计中,在获取评估模型之前,先获取n个测试视频,n为大于或等于2的整数,然后,获取每个测试视频的参数集合以及用户对该测试视频的主观评价结果,从而得到与每个测试视频对应的样本得到n个样本,最后根据参数集合中的不同参数类型,对该n个样本进行分类,得到决策树模型,该决策树模型即该评估模型。在上述技术方案中,可以先获取n个样本,然后通过对该n个样本进行训练后得到评估模型,可以保证评估模型的准确性。在一种可能的设计中,该测试视频是通过为源视频添加每个参数类型对应的损伤得到的,该损伤通过参数值来表示,每个参数类型对应的参数值组成该测试视频对应的参数集合。在上述技术方案中,可以通过模拟网络损伤的方法,获取在不同的网络参数(即延时,丢包,抖动等)环境下的测试视频,实现方式简单。在一种可能的设计中,通过建立该测试视频的时延的值、丢包率的值、抖动的值中的至少一种参数与用户对该测试视频的主观评价结果的映射关系,获得与该测试视频对应的样本,其中,该测试视频的时延的值是根据发送端发送该测试视频的数据包的发送时间以及接收端接收该数据包的接收时间确定的,该测试视频的丢包率的值是根据单位时间内发送端发送该测试视频的数据包的第一数量以及在该单位时间内接收端接收该测试视频的数据包的第二数量确定的,该测试视频的丢包率的值为该第二数量与该第一数量的比值,该测试视频的抖动的值是根据单位时间内接收到的该测试视频的多个数据包中每个数据包的发送时间和接收端接收该每个数据包的接收时间之间的时间间隔确定的。在上述技术方案中,用于生成评估模型的测试样本不仅包括样本的客观指标,也包括用户对不同样本的评价结果,从而提供了一种将主观评价方式与客观评价方式进行结合的视频质量的评估方式,可以提高视频质量的评估方法的准确性。在一种可能的设计中,在获取决策树模型时,可以先将该n个样本分为测试集合和多个训练集合,再根据该参数集合中的不同参数类型,对多个训练集合中的每个训练集合中的样本进行分类,生成与每个训练集合对应的初始决策树模型,然后,使用该测试集合中的至少一个样本,对多个初始决策树模型进行测试,获得与每个初始决策树模型对应的一组测试结果,最后从得到的多组测试结果中确定测试结果与每个样本的主观评价结果均相同的一组测试结果,与该组测试结果对应的初始决策树模型即用于对视频质量进行评价的评估模型。在上述技术方案中,通过获得多个初始决策数模型,以及通过测试集合中的样本对该多个初始决策树模型进行测试,可以从多个初始决策树模型中获取最准确的决策树模型作为用于对视频质量进行评价的评估模型,可以提高视频质量的评估方法的准确性。在一种可能的设计中,获取与每个训练集合对应的初始决策树模型可以采用如下方式:首先,分别计算每个参数类型在该训练集合包括的m个样本中的信息增益,其中,每个参数类型在该m个样本中的信息增益为第一信息熵与第二信息熵之间的差值,该第一信息熵是以该m个样本为一个整体,根据每个样本的主观评价结果的取值得到的信息熵,该第二信息熵是第一子信息熵与第二子信息熵的和,该第一子信息熵是根据l个样本的主观评价结果的取值得到的信息熵,第二子信息熵是根据p个样本的主观评价结果的取值得到的信息熵,该l个样本和该p个样本是以该参数类型的取值大于或等于预设参数值为划分条件,将该m个样本划分得到的,m=l+p,m、l、p为正整数;然后,从与每个参数类型对应的信息增益中,确定与信息增益的最大值对应的第一参数类型为根节点,并以该根节点的取值大于或等于该第一参数类型的值作为划分条件,将该m个样本划分为两个一级子集合,其中,该第一参数类型的值为该第一参数类型在该m个样本中的信息增益的最大值时对应的参数值;采用与上述步骤相同的方式(即根据每个参数类型分别在两个一级子集合中的信息增益的方式),确定与每个一级子集合中对应的多个信息增益的最大值对应的第二参数类型为该一级子集合的子节点,并以该子节点的取值大于或等于该第二参数类型的值作为划分条件,将该一级子集合中的至少两个样本划分为两个二级子集合,该第二参数类型的值为该第二参数类型在该一级子集合的信息增益的最大值时对应的参数值,当确定该两个二子级集合中的任一个二级子集合中包括的至少两个样本的至少两个主观评价结果均相同或该两个二子级集合中的任一个二级子集合中仅包括一个样本时,得到与该训练集合对应的初始决策树模型。在上述技术方案中,通过机器学习的方法得到可以用于视频质量评估的评估模型,可以提高评估模型的准确性。而且,由于该评估模型是根据评价结果和客观指标(参数集合中的多个参数)得到的,从而可以使得该评估模型可以适用于不同的应用中,可以提高该评估模型的适用范围。第二方面,提供一种装置,该装置具有实现第一方面或第一方面任一种可能实现方式中的视频质量的评估方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括通信单元和处理单元,这些单元可以执行上述第一方面或第一方面任一种可能实现方式中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。在一种可能的设计中,所述装置的结构中包括通信接口、处理器和存储器,所述通信接口用于接收和发送数据,所述处理器被配置为支持所述装置执行上述第一方面或第一方面任一种可能实现方式中相应的功能。所述存储器与所述处理器耦合,其保存所述装置必要的程序指令和数据。第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能实现方式中所述的方法。第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可能实现方式中所述的方法。上述第二方面至第四方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。附图说明图1为本申请实施例提供的对视频质量进行评估的场景的一种示例的示意图;图2为本申请实施例提供一种视频质量的评估方法的流程示意图;图3为本申请实施例提供的实现为源视频添加与各个参数类型对应的损伤的一种示例的示意图;图4为本申请实施例提供的决策树模型的一种示例的示意图;图5为本申请实施例提供的装置的一种示例的结构示意图;图6为本申请实施例提供的装置的另一种示例的结构示意图。具体实施方式在本申请的描述中,“多个”是指两个或两个以上,也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括a、b和c中的至少一个,那么包括的可以是a、b、c、a和b、a和c、b和c、或a和b和c。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。本申请实施例中的术语“系统”和“网络”可被互换使用。除非有相反的说明,本申请中提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。视频质量的评估技术可以分为主观评估技术和客观评估技术两类。主观评估技术是通过选择一批受测者,让他们在受控环境中,观看不同的待评估视频,并对观看的待评估视频进行主观评价,从而得到受测者的主观感受和视频质量的对应关系,如表1所示。例如,待评估视频1的主观感受为画面流畅、清晰且毫无卡顿,其视频质量为优;待评估视频4的主观感受为画面不流畅,不清晰,明显感受到卡顿与马赛克,无法满足视频服务的基本需求,其视频质量为差。表1由表1所示,主观评估技术的评价结果依赖于受测者,不同的受测者观看同一个待评估视频对应的主观感受可能不相同,例如,对视频质量要求高的受测者观看该待评估视频的主观感受可能为画面流畅,较清晰,偶尔卡顿,而对视频质量要求较低的受测者观看该待评估视频的主观感受可能为画面流畅,清晰,毫无卡顿,可见,采用主观评估技术进行视频质量的评估难以得到较准确的质量评价结果。在此基础上,提出了客观评估技术。客观评估技术是获取待评估视频的多项客观指标(例如丢包率、延时、抖动等),根据各项客观指标的取值与预设阈值的对应关系,得到每个待评估视频的客观指标和视频质量的对应关系,如表2所示。例如,当待评估视频的延时<=80ms、抖动<=30ms以及丢包率<=0.1%/s,则视频质量为优;当待评估视频的延时<=100ms、抖动<=30ms以及丢包率<=3%/s,则视频质量为中。表2通过客观评估技术得到的质量评价结果未考虑播放待评估视频的应用对待评估视频的质量的影响。例如,同一个待评估视频在相同的网络参数的情况下,可能由于不同应用的抗抖动、抗丢包等性能不同,而呈现出不同的质量。例如,待评估视频在网络中传输的过程中产生了3%的丢包率,然而,该丢包率对于应用a没有影响,即该待评估视频在应用a中播放时画质很清晰且没有卡顿。但该丢包率对于应用b可能影响很大,即该待评估视频在应用b中播放时画质不清晰且多次出现卡顿。可见,采用客观评估技术存在针对多种不同的应用不具备普适性的问题。鉴于此,提供本申请实施例的技术方案,在本申请实施例中,首先根据用户对样本集合中的每个样本的主观评价结果和每个样本的参数集合(参数集合中的参数类型可以包括丢包率、延时、抖动中的至少一种)生成评估模型,然后再使用该评估模型对待评估视频的视频质量进行评估。由于生成该评估模型的主观评价结果可以反映同一样本在不同的应用中呈现出的不同的质量,也就是说,在生成该评估模型时,不仅考虑了各个样本的客观指标,也考虑了不同的应用对每个样本的视频质量的影响,从而使得使用该评估模型对待评估视频的视频质量进行评估的方法可以适用于不同的应用中。而且,由于使用该评估模型对待评估视频的视频质量进行评估的方法适用于不同的应用中,这样,在不同的应用中对视频质量进行评估时均可以得到一个较为准确的评估结果,可以提高视频质量的评估方法的准确性。本申请实施例提供的技术方案可以应用于对视频质量进行评估的场景中。请参考图1,为本申请实施例提供的对视频质量进行评估的场景的一种示例。如图1所示,首先由视频源提供源视频,然后通过服务器的编码器将源视频进行编码,形成适合终端播放的视频数据流,然后通过网络将编码后的视频数据流发送至终端,用户则通过终端观看视频。在此过程中,为了保证服务器输出的视频数据流的视频质量能够满足用户的需求,则需要对源视频的视频质量进行评估,进而根据评估结果确定使用的编码参数。例如,以编码参数为压缩标准为例,当使用h.261压缩标准对源视频进行压缩编码获取的视频数据流的视频质量不满足用户的需求,则可以使用性能更优的h.263压缩标准对源视频进行压缩编码,以提高编码后的视频数据流的视频质量。在如图1所示的对视频质量进行评估的场景中,尽管示出了视频源、服务器以及终端,但在实际应用中的场景并不限于包括视频源、服务器以及终端。例如,该场景还可以包括核心网设备或用于承载虚拟化网络功能的设备等,这些对于本领域普通技术人员而言是显而易见的,在此不一一详述。另外,图1中的终端的数量只是举例,在实际应用中,服务器可以为多个终端提供视频服务。下面结合附图介绍本申请实施例提供的技术方案。本申请实施例提供一种视频质量的评估方法,请参见图2,为该方法的流程示意图。在下文的介绍过程中,以该方法应用于图1所示的场景中为例,也就是说,下文中由图1所示的场景中的服务器评估视频质量,即该服务器作为视频质量的评估装置。另外,该评估装置还可以是能够支持服务器实现该方法所需的功能的通信装置,当然还可以是其他通信装置,例如芯片系统,在此,不对该评估装置的实现方式进行限制。为便于介绍,在下文中,以该方法由服务器执行为例。s21、服务器获取n个测试视频,n为大于或等于2的整数。在本申请实施例中,该n个测试视频可以是预先存储在视频源中,然后由视频源将所述n个测试视频发送给服务器的,或者,也可以是对视频源发送的一个或多个源视频进行处理后得到的n个测试视频。该处理方式可以是为源视频添加与各个参数类型对应的损伤,损伤可以通过每个参数类型的参数值来表示,其中,参数类型包括抖动、时延、丢包率、编码类型、吞吐量、乱序数等中的至少一种,当然,也可以包括其他的参数类型。本领域技术人员可以根据实际使用需求设置参数类型,在此不作限制。作为一种示例,为源视频添加与各个参数类型对应的损伤可以包括但不限于如下方式:请参考图3,可以在视频源和服务器之间,以串联的方式增加网络模拟仪,当视频源向服务器发送源视频后,通过网络模拟仪来设置该源视频的网络损伤,也就是改变该源视频的各种参数类型的参数值,从而得到具有不同网络损伤的测试视频。例如,视频源是以数据包的形式,向服务器发送源视频的视频数据流,也就是说,视频源将源视频对应的视频数据流拆分成多个数据包,然后逐个发送给服务器。当网络模拟仪检测到视频源发送的源视频后,可以改变该视频数据流的部分数据包中的内容,例如,将该视频数据流中的若干个数据包设置为源地址错误的数据包,这样当服务器检测到该源地址错误的数据包后则会直接丢弃该数据包,则增加了源视频的丢包率,从而当服务器接收到该视频数据流的所有的数据包后,则获取了一个丢包率高于源视频的测试视频。或者,网络模拟仪在检测到视频源发送的视频数据流后,可以改变该视频数据流中的部分数据包之间的顺序,增加视频数据流的乱序数,从而当服务器接收到该视频数据流的所有的数据包后,则获取了一个乱序数高于源视频的测试视频。通过网络模拟仪设置该源视频的其他参数类型的损伤的过程与前述过程相似,在此不再赘述。s22、该服务器将该n个测试视频发送给终端,终端接收该n个测试视频。当服务器获取n个测试视频后,则将该n个测试视频发送给终端。s23、终端播放该n个测试视频,获取用户对该n个测试视频的n个主观评价结果。终端获取该n个测试视频后,则播放该n个测试视频。需要说明的是,终端可以使用同一个应用播放该n个测试视频,也可以使用不同的应用播放该n个测试视频,在本申请实施例中不作限制。当终端结束播放一个测试视频时,该终端可以显示一个评价界面,该评价界面上可以显示各种不同级别的主观评价结果,例如,该主观评价结果可以分为四种,分别标记为优、良、中、差四个级别,如表1所示。或者,该主观评价结果可以分为五种,分别标记为s、a、b、c、d,如表3所示,若测试视频的画面流畅、清晰且毫无卡顿,则该测试视频的主观评价结果为s;若测试视频的画面无法正常播放,则该测试视频的主观评价结果为d。表3用户可以通过在该评价界面的输入操作,例如,选中某一个主观评价结果,对该测试视频的视频质量进行评价,终端则根据该输入操作,确定与该测试视频对应的主观评价结果。s24、终端将用户对该n个测试视频的n个主观评价结果发送给服务器,服务器接收该n个主观评价结果。终端可以在获取n个测试视频的n个主观评价结果之后,将该n个主观评价结果一起发送给服务器,也可以单独发送与每个测试视频对应的主观评价结果,也就是说,在获取某个测试视频的主观评价结果之后,便将该测试视频的主观评价结果发送给服务器。在本申请实施例中,不对终端发送n个主观评价结果的方式进行限制。s25、该服务器获取该n个测试视频中每个测试视频对应的样本得到n个样本。当服务器获取n个测试视频的n个主观评价结果之后,则根据该n个测试视频及该n个主观评价结果,得到n个样本。在本申请实施例中,该n个样本中的每个样本包括与该样本对应的测试视频的参数集合以及用户对该测试视频的主观评价结果,其中,每个测试视频的参数集合中的参数类型与对该测试视频设置损伤的各个参数类型相同,例如,在s21中,通过网络模拟仪分别设置了该n个测试视频的抖动、时延、丢包率、编码类型、吞吐量以及乱序数的损伤,则与该测试视频对应的样本的参数集合中的参数类型包括抖动、时延、丢包率、编码类型、吞吐量以及乱序数。然后,获取每个测试视频的各个参数类型的参数值,从而得到了与每个测试视频对应的参数集合。下面,对每个参数类型的参数值进行说明。测试视频的时延的值是根据发送端发送所述测试视频的数据包的发送时间以及接收端接收所述数据包的接收时间确定的。需要说明的是,在下文的描述中,发送端指的是视频源,接收端指的是服务器。以n个测试视频中的第一个测试视频为例,假设视频源与服务器之间的传输通道允许一次传输的数据包的大小的最大值为256千字节(kilobyte,kb),第一个测试视频的大小为5兆字节(megabyte,m),则视频源将该第一个测试视频拆分成20个数据包,并对每一个数据包进行编号,记为数据包0~数据包19,然后按照数据包的编号的大小顺序,逐个将这20个数据包发送给服务器。视频源在发送每个数据包时,可以在该数据包中携带视频源发送该数据包的发送时刻,这样,当服务器在接收到该数据包后,则可以根据接收该数据包的接收时刻以及数据包中携带的发送时刻,确定该数据包的时延的值。例如,视频源发送数据包0的发送时刻为t1,服务器接收数据包0的时刻为t2,则服务器确定数据包0的时延的值为t2-t1。以此类推,从而获取第一个测试视频的每个数据包的时延的值,即20个时延的值,然后获取该20个时延的值的平均值,即为第一个测试视频的时延的值。对n个测试视频中的其他测试视频采用相同的方式进行计算,从而获取每个测试视频的时延的值,如表4中的第二列所示,第一个测试视频和第二个测试视频的时延的值均为30ms,第三个测试视频的时延的值为80ms,剩余的n-3个测试视频的时延的值为100ms。测试视频的丢包率的值是根据单位时间内发送端发送所述测试视频的数据包的第一数量以及在该单位时间内接收端接收该测试视频的数据包的第二数量确定的,该测试视频的丢包率的值为该第二数量与该第一数量的比值。以视频源将该第一个测试视频拆分成20个数据包发送给服务器为例。视频源在发送每个数据包时,可以在该数据包中携带该数据包的编号,这样,当服务器在接收到该数据包后,则可以根据接收该数据包的编号确定视频源总共发送的数据包的数量。例如,服务器在单位时间内(该单位时间可以是预设的时间,例如10s或者30s等)接收到的最后一个数据包的编号为10,则服务器确定在该单位时间内,视频源总共发送了11个数据包,然后服务器可以确定接收到的数据包的数量,例如,为9个,则服务器确定第一个测试视频的丢包率的值为9/11。当然,服务器也可以计算该第一个测试视频在多个单位时间内的多个丢包率的值,然后将该多个丢包率的值的平均值作为该第一个测试视频的丢包率的值。对n个测试视频中的其他测试视频采用相同的方式进行计算,从而获取每个测试视频的丢包率的值,如表4中的第三列所示,第一个测试视频的丢包率的值为0.5%,第二个测试视频的丢包率的值均为1%,第三个测试视频的丢包率的值为3%。测试视频的抖动的值是根据单位时间内接收到的该测试视频的多个数据包中每个数据包的发送时间和接收端接收所述每个数据包的接收时间之间的时间间隔确定的。以视频源将该第一个测试视频拆分成20个数据包发送给服务器为例。视频源在发送每个数据包时,可以在该数据包中携带视频源发送该数据包的发送时刻,这样,当服务器在接收到该数据包后,则可以根据接收该数据包的接收时刻以及数据包中携带的发送时刻,确定该数据包的时延的值。例如,视频源发送数据包0的发送时刻为t1,服务器接收数据包0的时刻为t2,则服务器确定数据包0的时延的值为d0=t2-t1。以此类推,从而获取服务器在单位时间内(该单位时间可以是预设的时间,例如10s或者30s等)接收到的第一个测试视频的多个数据包的时延的值,例如,服务器在单位时间内接收到第一个测试视频的数据包的数量为9个,该9个数据包的时延的值分别记为d0~d8,从而服务器根据公式(1)确定第一个测试视频的抖动的值,公式(1)如下:d=(|d2-d1|+|d3-d2|+…+|dj-dj-1|)/j-2(1)其中,j为服务器在单位时间内接收到的第一个测试视频的数据包的数量。当然,服务器也可以计算该第一个测试视频在多个单位时间内的多个抖动的值,然后将该多个抖动的值的平均值作为该第一个测试视频的抖动的值。对n个测试视频中的其他测试视频采用相同的方式进行计算,从而获取每个测试视频的抖动的值,如表4中的第四列所示,第一个测试视频的抖动的值为10ms,第二个测试视频和第三个测试视频的抖动的值均为30ms。测试视频的编码类型的值即该测试视频的数据包中携带的编码类型字段的取值。对于任意一个测试视频,该测试视频的每一个数据包中均携带编码类型字段,服务器在获取一个测试视频的数据包后,直接读取该数据包中编码类型字段即可获取该测试视频的编码类型的值。在本申请实施例中,编码类型可以分为h.261、mpeg1、mpeg2、h.263以及mpeg4五种类型,从而在编码类型字段中通过3个比特来指示编码类型,当编码类型字段的取值为001时,指示该数据包的编码类型为h.261,当编码类型字段的取值为010时,指示该数据包的编码类型为mpeg1,以此类推,在此不再赘述。如表4中的第五列所示,第一个测试视频和第二个测试视频的编码类型的值为1,第三个测试视频的编码类型的值为2。测试视频的吞吐量的值即统计在单位时间内服务器接收到该测试视频的字节数的值。假设视频源与服务器之间的传输通道允许一次传输的数据包的大小的最大值为256kb,服务器在单位时间内(该单位时间可以是10s)接收到的第一个测试视频的数据包的数量为6个,则服务器确定在第一个测试视频的吞吐量的值为256*6=1536kb/s=1.5kbps。对n个测试视频中的其他测试视频采用相同的方式进行计算,从而获取每个测试视频的吞吐量的值,如表4中的第六列所示,第一个测试视频的吞吐量的值为1.5kbps,第二个测试视频的吞吐量的值为1.4kbps,第三个测试视频的吞吐量的值为1.3kbps。测试视频的乱序数的值即统计服务器在单位时间内接收到该测试视频的数据包发生乱序的次数。数据包发生乱序,可以理解为:服务器将接收到的该测试视频的相邻数据包的编号相减,若相减的值不为1,则代表发生乱序。例如,服务器在单位时间内(该单位时间可以是10s)接收到的第一个测试视频的数据包的数量为6个,其中,6个数据包的编号分别为0、1、2、4、6、7,其中,第三次接收到的数据包的编号与第四次接收到的数据包的编号之间的差值不为1,以及第五次接收到数据包的编号与第四次接收到的数据包的编号之间的差值不为1,则服务器确定第一个测试视频的乱序数的值为2。当然,服务器也可以计算该第一个测试视频在多个单位时间内的多个乱序数的值,然后将该多个乱序数的值的平均值作为该第一个测试视频的乱序数的值。对n个测试视频中的其他测试视频采用相同的方式进行计算,从而获取每个测试视频的乱序数的值,如表4中的第七列所示,第一个测试视频的乱序数的值为2/s,第二个测试视频的乱序数的值为5/s,第三个测试视频的乱序数的值为6/s。在服务器获取该n个测试视频的参数集合后,则建立n个测试视频的参数集合与用户对n个测试视频的n个主观评价结果之间的映射关系,也就是说,建立第一个测试视频的参数集合与用户对第一个测试视频的主观评价结果的第一个映射关系,即获得与第一个测试视频对应的第一个样本,建立第二个测试视频的参数集合与用户对第二个测试视频的主观评价结果的第二个映射关系,即获得与第二个测试视频对应的第二个样本,直至获得第n个测试视频的参数集合与用户对第n个测试视频的主观评价结果的第n个映射关系,从而获得与n个测试视频对应的n个样本,请参考表4,为该n个样本的示意图。表4s26、该服务器根据所述参数集合中的不同参数类型,对所述n个样本进行分类,得到决策树模型。当服务器获取n个样本后,则利用机器学习算法对该n个样本进行训练,从而生成决策树模型。该机器学习算法可以包括但不限于支持向量机(supportvectormachine,svm)算法、k最近邻(k-nearestneighbor,knn)算法、决策树算法、随机森林算法等。在本申请实施例中,得到决策树模型的方式包括但不限于如下两种。第一种方式:步骤1:将n个样本中的参数集合中的每个参数类型看成是一个节点,使用每个节点将n个样本进行分类,计算使用每个节点进行分类带来的条件信息熵。将使用每个节点进行分类带来的条件信息熵与该n个样本的信息熵进行比较,确定出信息增益最大的一个节点,将该节点作为根节点。步骤2:确定使得该根节点取得该最大的信息增益时的参数值,以该根节点的取值大于或等于该参数值作为划分条件,将该n个样本进行分类,得到两个一级子集;步骤3:针对每一个子集,执行步骤1和步骤2的过程,确定每个子集的子节点,其中,使用子节点对该子集中的样本进行分类带来的信息增益最大,然后使用该子节点对该子集中的样本进行分类,得到两个二级子集;步骤4:对每一个二级子集进行判断,当每个二级子集中只包括一种主观评价结果时自动结束分类,从而得到决策树模型;否则,重复步骤1和步骤2直至每个n级子集中只包括一种主观评价结果时,则得到决策树模型。在本申请实施例中,使用一个节点将n个样本进行划分,可以理解为,以该节点的取值大于或等于预设参数值为划分条件,将n个样本划分,从而得到第一个子集和第二个子集。n个样本的信息熵,可以理解为,是根据n个样本的主观评价结果的取值以及每种主观评价结果的取值在n个样本中出现的概率得到的信息熵。使用每个节点进行分类带来的条件信息熵可以理解为第一个子集的信息熵和第二个子集的信息熵的和,具体来讲,当使用一个节点将n个样本进行划分后,则得到第一个子集和第二个子集,第一个子集中包括s个样本,第二个子集中包括q个样本,n=s+q,然后根据第一个子集中的s个样本的主观评价结果的取值以及每种主观评价结果的取值在第一个子集中出现的概率得到第一个子集的信息熵,根据第二个子集中的q个样本的主观评价结果的取值以及每种主观评价结果的取值在第二个子集中出现的概率得到第二个子集的信息熵,最后计算第一个子集的信息熵和第二个子集的信息熵的和,则得到使用该节点进行分类带来的条件信息熵。下面,以n=10为例,对上述第一种方式进行说明。请参考表4,为10个样本的一种示例。1、计算10个样本的信息熵,定义为ent(d),信息熵的计算过程满足公式(2):其中,n为样本空间的大小,即样本的总数量,p(k)为主观评价结果的取值为k的样本在样本空间中所占的比例。针对表4所示的10个样本,主观评价结果的取值有五种,分别为s、a、b、c、d,其中,主观评价结果为s的为样本1~样本3,主观评价结果为a的为样本4,主观评价结果为b的为样本5和样本6,主观评价结果为c的为样本7,主观评价结果为d的为样本8~样本10,从而得到p(s)=3/10=0.3,p(a)=1/10=0.1,p(b)=2/10=0.2,p(c)=1/10=0.1,p(d)=3/10=0.3,根据公式(2)计算得到:ent(d)=-(0.3*log20.3+0.1*log20.1+0.2*log20.2+0.1*log20.1+0.3*log20.3)=2.172、计算与每个节点对应的信息增益。以抖动为例,可以获取10个样本内抖动的最大值(max)和最小值(min),在该10个样本中,抖动的最大值为65,最小值为10,然后在最大值和最小值之间进行枚举,例如,可以设定枚举步长为(max-min/样本个数)并向下取整,即(65-10)/10=5.5,向下取整后,得到枚举步长5,则需要分别计算抖动的参数值取10,15,20,25,30,35,40,45,50,55,60,65时对应的条件信息熵。也就是说,需要计算以抖动的参数值大于或等于10作为划分条件将该10个样本划分后得到的条件信息熵、计算以抖动的参数值大于或等于15作为划分条件将该10个样本划分后得到条件信息熵,计算以抖动的参数值大于或等于20作为划分条件将该10个样本划分后得到条件信息熵……直至计算以抖动的参数值大于或等于65作为划分条件将该10个样本划分后得到条件信息熵。以计算抖动的参数值大于或等于40作为划分条件得到的条件信息熵为例,其计算过程为:抖动的参数值小于40的样本数为4,其中3个样本的主观评价结果为s,1个样本的主观评价结果为a,抖动的参数值大于或等于40的样本个数为6,其中2个样本的主观评价结果为b,1个样本的主观评价结果为c,3个样本的主观评价结果为d,则以抖动的参数值大于或等于40作为划分条件得到的条件信息熵为:ent(d1)=4/10*[-(3/4*log23/4+1/4*log21/4)]+6/10*[-(2/6*log22/6+1/6*log21/6+3/6*log23/6)]=1.218;从而得到,以抖动的参数值大于或等于40作为划分条件对10个样本进行划分得到的信息增益(标记为g(d,抖动40))为:g(d,抖动40)=ent(d)-ent(d1)=2.17-1.218=0.952;采用上述相似的计算过程,算出g(d,抖动10),g(d,抖动15),…g(d,抖动65)。然后,从g(d,抖动10),g(d,抖动15),…g(d,抖动65)选出一个最大值,作为节点为抖动时对应的信息增益,例如,g(d,抖动40)为最大值,则节点为抖动时对应的信息增益为0.952。然后,采用上述相似的计算过程,计算节点为时延、丢包率、编码类型、吞吐量以及乱序数时分别对应的信息增益,记为g(d,时延),g(d,丢包率),g(d,编码类型),g(d,吞吐量),g(d,乱序数)。3、从g(d,抖动),g(d,时延),g(d,丢包率),g(d,编码类型),g(d,吞吐量),g(d,乱序数)中选择一个最大值,作为根节点。确定上述计算值中的最大值,例如,最大值为g(d,抖动),而g(d,抖动)是在抖动的参数值为40时对应的信息增益,从而,确定根节点为抖动,且根节点的取值为40。4、分别按照“大于或等于根节点的数值”和“小于根节点的数值”,将10个样本划分为两个一级子集,得到如图4所示决策树模型的第二层。如图4所示,根据抖动的参数值大于或等于40和抖动的参数值小于40,可以将10个样本划分为两个一级子集,第一个一级子集包括样本1~样本4,第二个一级子集包括样本5~样本10。5、然后对每个一级子集中的样本重复步骤2~步骤4,确定每个一级子集的子节点,根据子节点将每个一级子集中的样本进行划分,直到第n级子集中只包含一种主观评价结果的取值时,则结束迭代,从而获得该决策树模型,如图4所示。第二种方式:为了保证决策树模型的准确性,在获得决策树模型时,可以将n个样本分成多个训练集合和一个测试集合,例如,从n个样本中选择3个样本作为测试集合,然后,将剩余的n-3个样本随机划分为多个训练集合。根据n个样本的参数集合中的不同参数类型,对多个训练集合中的每个训练集合中的样本进行分类,从而得到与每个训练集合对应的初始决策树模型。作为一种示例,该计算过程为:分别计算每个参数类型在一个训练集合包括的m个样本中的信息增益,确定与计算出的多个信息增益的最大值对应的第一参数类型为根节点,以根节点的取值大于或等于该根节点取得信息增益的最大值时对应的参数值作为划分条件,将该训练集合中的m个样本划分为两个一级子集合,然后采用确定根节点的相同的方法,确定每个一级子集合中的子节点,使用每个一级子集合中的子节点对每个一级子集合中的样本进行分类,直至第n级子集合中的样本只包括一种主观评价结果,从而得到与该训练集合对应的初始决策树模型。需要说明的是,获取与每个训练集合对应的初始决策树模型的过程与第一种方式中对n个样本进行划分从而得到决策树模型的过程相似,在此不再赘述。在得到与每个训练集合对应的初始决策树模型之后,则使用测试集合中的样本对获得的多个初始决策树模型进行测试,得到与每个初始决策树模型对应的测试结果。例如,测试集合中包括3个样本,分别为表4所示的样本1、样本4以及样本5,n-3个样本被划分为3个训练集合,从而服务器能够根据这3个训练集合得到3个初始决策树模型。使用样本1、样本4以及样本5对第一个初始决策树模型进行测试,得到的第一组测试结果为{s、a、a};使用样本1、样本4以及样本5对第二个初始决策树模型进行测试,得到的第二组测试结果为{s、a、b};使用样本1、样本4以及样本5对第三个初始决策树模型进行测试,得到的第三组测试结果为{a、a、b}。将得到的多组测试结果与测试集合中的样本的主观评价结果进行比较,若某组测试结果中的每个测试结果分别与被测试的样本的主观评价结果相同,则与该组测试结果对应的初始决策树模型则为用于评估视频质量的决策树模型。例如,样本1、样本4以及样本5的主观评价结果分别为s、a、b,3个初始决策树模型对这3个样本进行测试得到的测试结果分别为{s、a、a}、{s、a、b}以及{a、a、b},从而可以确定第一个初始决策树模型的测试结果与3个样本的主观评价结果相同,从而确定与第一个训练集合对应的第一个初始决策树模型为用于评估视频质量的决策树模型。若得到的多组测试结果中,有至少两组测试结果与测试集合中的样本的主观评价结果相同,则可以从与该至少两组测试结果对应的至少两个初始决策树模型中随机选择一个初始决策树模型,作为用于评估视频质量的决策树模型。需要说明的是,s21~s26为可选步骤,即不是必须要执行的。例如,该决策树模型可以是在出厂时,由技术人员根据s21~s26中的内容得到决策树模型后,直接将该决策树模型烧写在服务器中的,在这种情况下,便可以不用执行s21~s26。s27、该服务器获取待评估视频的参数集合。当服务器需要评估待评估视频的视频质量时,则获取待评估视频的参数集合。在本申请实施例中,待评估视频的参数集合与s26中每个样本的参数集合的参数类型相同,也就是说,在s26中,每个样本包括抖动、时延、丢包率、编码类型、吞吐量以及乱序数,则服务器需要获取待评估视频的抖动的值、时延的值、丢包率的值、编码类型的值、吞吐量的值以及乱序数的值,具体获取方式与s25中相似,在此不再赘述。作为一种示例,请参考表5,为该待评估视频的参数集合。在表5中,该待评估视频的时延的值为32ms,丢包率的值为0.6%,抖动的值为13ms,编码类型的值为1,吞吐量的值为1.5kbps,乱序数的值为4。表5时延/ms丢包率抖动/ms编码类型吞吐量/kbps乱序数/s320.6%1311.54s28、该服务器获取评估模型。在本申请实施例中,该评估模型即通过s26得到的决策树模型,例如,该评估模型为如图4所示的决策树模型。s29、该服务器使用该评估模型以及该待评估视频的参数集合评估该待评估视频的视频质量,获得评估结果。以待评估视频的参数集合如表5所示,评估模型如图4所示为例,首先获取待评估视频的抖动的值为13ms,将待评估视频的抖动的值与评估模型中的第二层的划分条件进行比较,由于13ms<40ms,从而获取待评估视频的时延的值,为32ms。将待评估视频的时延的值与评估模型中的第三层的划分条件进行比较,由于32ms<50ms,从而得到待评估视频的评估结果为s。在上述技术方案中,用于评估视频质量的评估模型是根据用户的主观评价结果和样本的参数集合生成的,而主观评价结果可以反映同一样本在不同的应用中呈现出的不同的质量,也就是说,该评估模型不仅考虑了各个样本的客观指标,也考虑了不同的应用对每个样本的视频质量的影响,从而使得该评估模型可以适用于不同的应用中,这样,使用该评估模型对待评估视频的视频质量进行评估的方法也就可以适用于不同的应用中。进一步,由于该方法在不同的应用中的普适性,因此,在不同的应用中对视频质量进行评估时均可以得到一个较为准确的评估结果,可以提高视频质量的评估方法的准确性。可以理解的是,上述实施例中的服务器为了实现相应的功能,其可以包括执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。图5示出了一种装置500的结构示意图。其中,装置500可以是服务器,能够实现本申请实施例提供的方法中服务器的功能;装置500也可以是能够支持服务器实现本申请实施例提供的方法中服务器的功能的装置。装置500可以是硬件结构、软件模块、或硬件结构加软件模块。装置500可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。装置500可以包括处理单元501和通信单元502。处理单元501可以用于执行图2所示的实施例中的步骤s21、步骤s25~步骤s29,和/或用于支持本文所描述的技术的其它过程。通信单元502用于装置500和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。通信单元502可以用于执行图2所示的实施例中的步骤s22和步骤s24,和/或用于支持本文所描述的技术的其它过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。如图6所示为本申请实施例提供的装置600,其中,装置600可以是图2所示的实施例中的服务器,能够实现本申请实施例提供的方法中服务器的功能;装置600也可以是能够支持服务器实现本申请实施例提供的方法中服务器的功能的装置。其中,该装置600可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。装置600包括至少一个处理器620,用于实现或用于支持装置600实现本申请实施例提供的方法中服务器的功能。示例性地,处理器620可以获取待评估视频的参数集合,获取用于评估视频质量的评估模型等,具体参见方法示例中的详细描述,此处不做赘述。装置600还可以包括至少一个存储器630,用于存储程序指令和/或数据。存储器630和处理器620耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器620可能和存储器630协同操作。处理器620可能执行存储器630中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。装置600还可以包括通信接口610,用于通过传输介质和其它设备进行通信。示例性地,该其它设备可以是视频源。处理器620可以利用通信接口610收发数据。本申请不限定上述通信接口610、处理器620以及存储器630之间的具体连接介质。本申请实施例在图6中以存储器630、处理器620以及通信接口610之间通过总线640连接,总线在图6中以粗线表示。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。在本申请实施例中,处理器620可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接由硬件处理器执行完成,或者由处理器中的硬件及软件模块组合执行完成。在本申请实施例中,存储器630可以是非易失性存储器,比如硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图2所示的实施例中服务器执行的方法。本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图2所示的实施例中服务器执行的方法。本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中服务器的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1