具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1所示,为本发明实施例中的视频流性能测量方法的一个流程示意图,该流程包括:
101、从视频流中获得所述视频流中的各视频帧的比特量信息。如,根据从视频流中检测出的视频帧的边界信息获得各视频帧,根据所述各视频帧获得其比特量信息。
102、根据所述各视频帧的比特量信息和预先设定的匹配策略,对在所述视频流的图像组GOP值取值范围内的假定的GOP值进行匹配检测,如果匹配成功,则所述假定的GOP值为所述视频流对应的GOP值,即得到所述视频流的匹配成功的图像组GOP值。通常,在进行匹配检测时,会在预先设定的GOP值的取值范围内(如1~30),对该范围内的每个假定的GOP值进行匹配检测,并得到匹配成功的GOP值。
在具体进行匹配检测之前还包括一个设定匹配参数值的步骤,该设定匹配参数的步骤可在每次进行匹配检测前进行,也可以预先设定好后,每次匹配检测时都使用相同的匹配参数值。
其中,根据所述各视频帧的比特量信息和预先设定的匹配策略,对在所述视频流的图像组GOP值取值范围内的假定的GOP值进行匹配检测包括:
设置假定的GOP值为当前匹配窗口长度,并根据预先设定的匹配策略中的慢捕获策略进行匹配,获得匹配成功的GOP值。
所述慢捕获策略包括:读入视频帧流中一个当前匹配窗口长度的视频帧,并根据当前匹配窗口内的第一个视频帧的比特量与所述窗口内其他视频帧的相对大小,判断当前匹配窗口是否为匹配成功的匹配窗口,若是,则匹配成功,确定当前匹配窗口长度为所述视频流对应的GOP值,否则,修改匹配窗口的长度,进入下一次慢捕获匹配。所述判断当前匹配窗口是否为匹配成功的匹配窗口也可以同时依据当前匹配窗口内的第一个视频帧的比特量与所述窗口内其他视频帧的相对大小和匹配参数值。
在根据慢捕获策略匹配成功后,为了对进行检测的范围内的全部视频流都进行性能测量,通常会对后续的视频流根据预先设定的匹配策略中的同步跟踪策略和已确定的当前匹配窗口长度对之后接收到的视频流继续进行同步匹配,以便检验已经匹配成功的GOP值是否为稳定的GOP值。但是,若需要检测的视频流不够长,如根据慢捕获策略匹配成功后,视频流也检测完了,则不需要根据同步跟踪策略继续进行匹配。
其中,同步跟踪策略包括:根据匹配窗口内的第一个视频帧的比特量与所述窗口内其他视频帧的相对大小,判断每个顺序滑动匹配窗口是否为稳定匹配窗口,如果为不稳定匹配窗口的个数等于或大于预先设定的阈值,则重新设定匹配窗口长度,按照慢捕获策略进行匹配,否则则所述确定的当前匹配窗口长度为所述视频流对应的GOP值。其中,判断每个顺序滑动匹配窗口是否为稳定匹配窗口是指:每次在视频帧流上按顺序滑动一个窗口长度,判断当前窗口内的第一个视频帧的比特量是否是所述窗口内的所有视频帧中最大的,如果是,则每个顺序滑动匹配窗口为稳定匹配窗口。
其中,在对视频流根据同步跟踪策略进行匹配时,有可能由于视频流本身的丢包等原因,造成视频流中的帧流出现非正常的变化,比如,由于两个I帧之间丢了一帧,导致这两个I帧之间持续帧的数目改变,则根据同步跟踪策略进行匹配时,会出现匹配不成功的情况,由于此时,这种不成功有可能是由于视频流本身的错误引起的,而不是反映视频流的性能的GOP值真正发生了变化,因此,进行匹配检测时,为了使匹配结果稳定的反映视频流的测量性能,而不随视频流的丢包等视频流传输的个别错误变化,因此只有当不稳定匹配窗口的个数等于或大于预先设定的阈值时,才确定当前匹配窗口为不稳定匹配窗口,需要根据慢捕获策略重新进行匹配。
103、根据GOP值优选规则,确定所述匹配成功的假定的GOP值中的一个为视频流的测量GOP值。本步为可选。只有当在上述匹配过程中得到多个匹配成功的GOP值时,才需要执行本步,以便在多个匹配成功的GOP值中合理的选择出一个较佳的GOP值。为此可设定如下GOP值优选规则:
在匹配成功的GOP值中优先认可常用的GOP值,在当前的视频编码中,GOP长度有一些比较常用的值,应该优先认可常用的GOP值,例如3和12,认可12而不是3;
在匹配成功的GOP值中优先认可绝对值较大的GOP值,即在相同的检测结果下,认可较大的GOP值,例如9和12,认可12;
在匹配成功的GOP值中优先认可同步占空比高的GOP值,所述同步占空比是指处于匹配稳定流程的帧总数占整个匹配检测帧总数的比率,即在相同的检测结果下,认可同步占空比高的GOP值,或者说只有占空比超过一定门限的GOP值才可以被认可。
在步骤103之后还可包括:104、根据所述测量GOP值确定所述视频流中I帧的位置,即确定所述测量GOP值对应的匹配窗口,在匹配成功的匹配窗口中的第一个帧为I帧。本步为可选步骤。
其中,步骤102中的匹配参数值一般包括:连续成功匹配次数阈值(N)、连续不成功匹配次数阈值(M)以及稳态连续不成功匹配次数阈值(K)、测试初始值,其中所述匹配窗口长度等于当前假定的GOP值、所述测试初始值设为零,所述测试初始值包括当前连续成功匹配次数和当前连续不成功匹配次数。
相应的,根据慢捕获策略进行匹配具体可包括如下流程,如图2所示,该流程包括:
201、读入视频帧流中当前匹配窗口内的视频帧;
202、判断当前匹配窗口内的第一个视频帧的比特量是否是所述窗口内的所有视频帧的比特量中最大的,并获得判断结果为是或否,若判断结果为是所述窗口内的所有视频帧中最大的,则可以进一步执行步骤203,若判断结果为不是所述窗口内的所有视频帧中最大的,则执行步骤204。
203、当前连续成功匹配次数加一,并判断加一后的当前连续成功匹配次数是否大于或等于(即不小于)连续成功匹配次数阈值,若判断结果为不小于,则本次匹配成功,并得到当前匹配窗口长度值为匹配成功的GOP值,若还有没有检测的视频帧,可根据同步跟踪策略继续进行匹配,若判断结果为小于,则所述匹配窗口在视频帧流上按顺序滑动一个窗口长度,并返回步骤201。
204、进一步判断当前连续不成功匹配次数是否大于或等于连续不成功匹配次数阈值,若判断结果为大于或等于,则本次假定的GOP值错误,重新设定匹配窗口长度,直至对所述取值范围内的所有GOP取值的匹配测量完成,若判断结果为小于,则当前连续成功匹配次数清零,当前连续不成功匹配次数加一,匹配窗口在所述视频帧流上按顺序滑动一帧,并读入该滑动进入匹配窗口中的帧,并返回步骤:判断当前匹配窗口内的第一个视频帧的比特量是否是所述窗口内的所有视频帧中最大的。
如图3所示,为根据慢捕获策略匹配成功后,继续进行的根据同步跟踪策略进行匹配的流程图,该流程包括:
301、所述匹配窗口在视频帧流上按顺序滑动一个窗口长度,读入一个匹配窗口的视频帧。
302、判断当前匹配窗口内的第一个视频帧的比特量是否是所述窗口内的所有视频帧中最大的,并获得判断结果为是或否,若判断结果为是所述窗口内的所有视频帧中最大的,则返回步骤301;若判断结果为不是所述窗口内的所有视频帧中最大的,则执行步骤303。
303、进入所述匹配检测的同步保持流程。
如图4所示,为根据同步跟踪策略进行匹配过程中,出现视频流的波动,根据同步保持策略进行匹配的流程示意图,该流程包括:
401、所述匹配窗口在视频帧流上按顺序滑动一个窗口长度,读入一个匹配窗口的视频帧;
402、判断当前匹配窗口内的第一个视频帧的比特量是否是所述窗口内的所有视频帧中最大的,并获得判断结果为是或否,若判断结果为是所述窗口内的所有视频帧中最大的,则执行步骤403;若判断结果为不是所述窗口内的所有视频帧中最大的,则执行步骤404。
403、当前连续不成功匹配次数清零,并进入所述匹配检测的同步跟踪流程。
404、当前连续不成功匹配次数加一,并判断加一或的当前连续不成功匹配次数是否超过稳态连续不成功匹配次数阈值,若判断结果为超过,则重新设定匹配参数值,执行慢捕获流程,若判断结果为未超过,则返回步骤401。
在上述图2~图4所示的流程中,当根据慢捕获策略进行匹配时,称匹配检测处于慢捕获状态;当根据同步跟踪策略进行匹配时,称匹配检测处于同步跟踪状态;当根据同步保持策略进行匹配时,称匹配检测处于同步保持状态。则这三种状态之间的转移关系可参见图5。慢捕获状态就是以假定的GOP值进入匹配搜索的过程;同步跟踪状态就是假定的GOP值匹配检测成功,进行稳定匹配检测的过程;同步保持状态就是在同步跟踪状态下,出现了突发的匹配窗口内I帧比特量最大的特性不能满足的情况,检验之前的匹配的GOP值是否是当前的视频流的GOP值的过程。
下面结合更具体的实施例描述本发明实施例中的视频流性能测量方法,在本例中设视频图像编码方式为MPEG-4(MPEG的全称为Moving Pictures ExpertsGroup,动态图像专家组),视频流封装到RTP传输。该测量流程如图6所示,包括:
601、工作参数设置,该工作参数可包括GOP值的取值范围以及相关的匹配参数等。
602、协议分析,对RTP报文进行捕获,取得每个报文的序列号、载荷大小、帧边界标志,其中的抖动和乱序可以通过缓存来吸收。
603、获取帧流:由于属于同一帧的报文拥有相同的时间戳,因此可以确定各报文是否属于某一帧;RTP头中的Marker比特标志每一帧的最后一个报文,从而可以确定每帧的起始。由此就可以对报文进行帧定界,检出各视频帧的边界,获取帧流,进而得到各视频帧的大小(即比特量信息)。
604、GOP值检测:设置GOP值搜索检测的范围(如:1~30),根据所述各视频帧的比特量信息对每个假定的GOP值进行匹配检测,得到若干个匹配成功的GOP值。具体匹配检测过程可参见图2~图5。
605、GOP值选定:因为正确的GOP值只有一个,在假定的GOP值范围内得到若干个匹配成功的GOP值(即可能正确的GOP值)后,就需要再从中确定尽可能正确的GOP值,本例中根据GOP值优选规则确定出测量GOP值。该规则可参见上述实施例的说明。
606、在GOP值选定后可进一步进行I帧定位。具体步骤可参见步骤104,此处不做赘述。
图6中标号为x表示是丢失报文,标号为p标识当前报文,在该行标号下方标识的I、B、P分别表示I帧、B帧和P帧。
采用本发明实施例所提供的方案,通过根据视频帧的比特量信息进行匹配检测的方法来获得GOP值,不需要对每一帧进行解析,避免了解码,避免了过于以来传输协议,避免了过于依赖深度协议分析,回避了加密和版权等问题。使得布置在网络中的测量设备能够在开销较小的情况下,检测视频序列的GOP值以及I帧定位等应用层网络参数。
另一方面,在视频序列中,由于I/B/P帧的编码特性导致它们收到损伤后对后续解码及视频图像质量的影响不同,即I帧重要性大于P帧,P帧重要性大于B帧,那么,在网络传送过程中遇到拥塞丢包时,如果可以根据报文所属的视频帧类型,选择性地丢弃不重要的帧类型的报文,就可以尽可能小地损伤视频图像质量,提高用户的视频体验质量。
在网络路由器中,通过对视频流进行GOP值检测和I帧定位,就可以判定I帧类型,再结合GOP的排列方式,就可以确定视频流的IBP帧类型,当然就可以知道报文所属的帧类型,从而就可以有选择性地进行报文丢弃了。因此,基于本发明上述实施例中所提出的方案,可以根据所述测量GOP值确定所述视频流的IBP帧类型,并根据确定的视频流的各帧的IBP帧类型选择性地进行丢包。
如图7所示,为一个进行丢包的具体实施例的流程,其中视频图像编码方式为MPEG-4,视频流封装到RTP传输。步骤801~806与图6中的步骤601~606类似,不做赘述,其余步骤包括:
707、根据I帧的位置和GOP排列方式确定B帧和P帧的位置,即确定视频流的各帧的IBP帧类型;
708、基于IBP帧的类型和重要性策略选择性地进行丢包。其中,重要性策略包括:I帧的重要性大于P帧,P帧的重要性大于B帧;先丢弃重要性低的帧。
这样,就可以以较小的开销实现选择性的丢弃相关报文。
如图8所示,为本发明实施例中的视频流性能测量装置的组成示意图。该视频流性能测量装置1包括:
帧流获取单元10,用于从视频流中获得所述视频流中的各视频帧的比特量信息,如,先根据从视频流中检测出的视频帧的边界信息获得各视频帧,再获得各视频帧的比特量信息。
匹配检测单元12,用于根据所述各视频帧的比特量信息和预先设定的匹配策略,对在所述视频流的图像组GOP值取值范围内的假定的GOP值进行匹配检测,如果匹配成功,则所述假定的GOP值为所述视频流对应的GOP值。
如图9所示,视频流性能测量装置1还可进一步包括确定单元14,用于根据GOP值优选规则,确定所述匹配成功的假定的GOP值中的一个为视频流的测量GOP值;参数设定单元16,用于设定匹配参数值;规则存储单元18,用于存储所述GOP值优选规则;I帧确定单元19,用于根据所述测量GOP值确定所述视频流中I帧的位置,即,在匹配成功状态下,所述测量GOP值对应的匹配窗口中的第一个帧为I帧。
其中,所述匹配参数值可包括,连续成功匹配次数阈值、连续不成功匹配次数阈值以及稳态连续不成功匹配次数阈值、测试初始值,其中所述匹配窗口长度等于当前假定的GOP值、所述测试初始值设为零,所述测试初始值包括当前连续成功匹配次数和当前连续不成功匹配次数。
所述GOP值优选规则包括:在匹配成功的GOP值中优先认可常用的GOP值;在匹配成功的GOP值中优先认可绝对值较大的GOP值;在匹配成功的GOP值中优先认可同步占空比高的GOP值,所述同步占空比是指处于匹配稳定流程的帧总数占整个匹配检测帧总数的比率。
如图10所示,匹配模块12可包括长度设置子模块120,用于设置所述假定的GOP值为当前匹配窗口的长度;慢捕获子模块122,用于在所述长度设置子模块设置完成当前匹配长度后,根据预先设定的匹配策略中的慢捕获策略进行匹配,以获得匹配成功的GOP值;同步跟踪子模块124,用于在慢捕获子模块确定当前匹配窗口长度为所述视频流对应的GOP值之后,根据同步跟踪策略利用已确定的当前匹配窗口长度对之后接收到的视频流继续进行匹配。其中,同步跟踪策略的定义同前述实施例。
如图11所示,为本发明实施例中的视频系统的组成示意图。该系统包括:
视频源设备2,用于产生并发送视频流;
传输设备4,用于传输所述视频源设备发送的视频流;
视频流性能测量装置1,用于检测所述传输设备传输的所述视频流性能;
其中,所述视频流性能测量装置1具体与本发明其他实施例中描述一致,如图8或9所示。此处不做赘述。
其中,上述参数、流程等的意义如图1中的相关解释的意义一致。
采用本发明实施例提供的视频流性能测量装置,通过根据视频帧的比特量信息进行匹配检测的方法来获得GOP值,不需要对每一帧进行解析,避免了解码,避免了过于以来传输协议,避免了过于依赖深度协议分析,回避了加密和版权等问题。使得布置在网络中的测量设备能够在开销较小的情况下,检测视频序列的GOP值以及I帧定位等应用层网络参数。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。