检测视频传输丢包的方法、装置和系统的制作方法

文档序号:7890735阅读:199来源:国知局
专利名称:检测视频传输丢包的方法、装置和系统的制作方法
技术领域
本发明涉及视频传输技术领域,尤其涉及一种检测视频传输丢包的方法、装置和系统。
背景技术
活动图像专家组(Moving Picture Experts Group,以下简称MPEG)视频流在发送端经过处理后得到视频数据包,该视频数据包经过以太网的传输和交换传送至数据接收端,在传送过程中,受网络状况的影响,容易发生延迟或丢包的情况。目前的流视频业务,例如交互式网络电视(Internet Protocol television,以下简称IPTV)业务,具有高带宽、对实时性要求高的特点,其对分组丢失、乱序、传输延时和时延抖动等网络损伤都非常敏感,因此,需要获取非常准确的视频传输质量数据。然而,现有技术中的媒体传输指标(Media Delivery Index,以下简称MDI)主要是通过考虑延迟因素(Delay Factor)和媒体丢包率(Media Loss Rate)评价网络传输质量来获取,上述评价方式没有考虑到视频流传输的特点,存在评价准确率低的缺陷。

发明内容
本发明实施例提供一种检测视频传输丢包的方法、装置和系统,用于提高对视频传输质量评价的准确性。本发明实施例提供了一种检测视频传输丢包的方法,包括接收承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、B帧和P帧;从携带有视频数据帧帧头信息的视频数据包中获取帧序号,以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,所述图像组为起始于帧序号为零的I帧的一组视频数据帧;在发生视频数据包丢失,且发生视频数据包丢失前获得的图像组序号与发生视频数据包丢失后获得的图像组序号一致,发生视频数据包丢失前最后获得的帧序号和视频数据包丢失后最先获得的帧序号发生不一致时,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的I帧的丢失数之和。本发明实施例还提供了一种检测视频传输丢包的装置,包括第一接收模块,用于接收承载有视频数据帧的视频数据包,所述视频数据帧包括I 帧、B帧和P帧;第二获取模块,用于从携带有视频数据帧帧头信息的视频数据包中获取帧序号, 以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和, 所述图像组为起始于帧序号为零的I帧的一组视频数据帧;第一检测视频传输丢包的模块,用于在发生视频数据包丢失,且发生视频数据包丢失前获得的图像组序号与发生视频数据包丢失后获得的图像组序号一致,发生视频数据包丢失前最后获得的帧序号和视频数据包丢失后最先获得的帧序号发生不一致时,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的I帧的丢失数之和。本发明实施例还提供了一种检测视频传输丢包的系统,包括上述的检测视频传输丢包的装置。本发明提供的技术方案,通过在视频数据包的图像条的描述信息中添加图像组序号和帧类型累计值,使得检测视频传输丢包的设备在接收视频数据包,并发生视频数据包丢失时,根据帧序号以及在图像条的描述信息中携带的帧类型累加值,能够获取实际丢失的P帧数目,以更加准确的反映实际丢包对视频画面质量的影响,能够提高对视频传输质量评价的准确性。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例中视频数据传输处理方法的流程示意图;图2为本发明实施例中检测视频传输丢包的方法的流程示意图;图3为本发明具体实施例中视频数据传输处理方法的流程示意图;图4为本发明具体实施例中检测视频传输丢包的方法的流程示意图;图5为图4所示实例中进行丢失视频数据帧情况测量的具体流程示意图;图6为图4所示实施例中进行暂存状态下丢失视频数据帧的情况计算的具体流程示意图;图7为图4所示实施例中更新丢失宏块列表的具体流程示意图;图8为本发明实施例中视频数据传输处理装置的结构示意图;图9为本发明实施例中检测视频传输丢包的装置的结构示意图一;图10为本发明实施例中检测视频传输丢包的装置的结构示意图二 ;图11为本发明实施例中检测视频传输丢包的装置的结构示意图三;图12为本发明实施例中检测视频传输丢包的装置的结构示意图四。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。针对现有技术中无法实现对视频流的传输质量进行准确评价的缺陷,本发明实施例提供了一种技术方案,本发明实施例提供的技术方案包括发送端对视频数据的传输处理方法,以及检测视频传输丢包的设备对视频传输质量的获取方法,且该检测视频传输丢包的设备可以设置在传输网络中任意需要对视频传输质量进行评估的节点,或者是在视频数据的接收端。图I为本发明实施例中视频数据传输处理方法的流程示意图,如图I所示,包括如下的步骤步骤101、依次获取承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、B 帧和P帧;步骤102、在获取的所述视频数据包的图像条的描述信息中添加图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,所述图像组为起始于帧序号为零的I帧的一组视频数据帧;在具体的实施例中,可能不是全部的视频数据包都承载有图像条的描述信息,因此步骤102中仅是针对承载有图像条的描述信息的数据包进行处理。另外,对于I帧,其可能仅存在帧序号为零的I帧,也可能是还存在帧序号为非零的I帧的情况,上述的帧类型累计值针对不同的情况表征不同的数值;步骤103、将所述视频数据包添加到发送队列中进行发送。本发明上述实施例提供的技术方案,通过在视频数据包的图像条的描述信息中添加图像组序号和帧类型累计值,使得检测视频传输丢包的设备在接收视频数据包,并发生视频数据包丢失时,根据帧序号以及在图像条的描述信息中携带的帧类型累加值,能够获取实际丢失的P帧数目,以更加准确的反映实际丢包对视频画面质量的影响,能够提高对视频传输质量评价的准确性。本发明上述实施例中的步骤102中,可以通过多种方式在视频数据包的图像条的描述信息中添加图像组序号和帧类型累计值,例如针对MPEG-2定义的图像条的描述信息, 其中包含了扩展字段,可以在所述视频数据包的图像条的描述信息的扩展字段中添加图像组序号和帧类型累计值;而例如针对H. 264定义的图像条的描述信息,其中包含了帧序号字段,因此可以在视频数据包的图像条的的描述信息的帧序号字段中写入图像组累计值和帧类型累计值。具体的该图像条的帧序号字段为2个字节,可以将其改写为I位的帧类型累计值标志位,9位的帧类型累计值,I位的图像组序号标志位和5位的图像组序号。上述实施例是在视频数据包发送端执行的处理方法,其中步骤102中,在所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目时,帧类型累计值具体的可以是由视频数据包发送端获取图像组内包括当前视频数据帧的累计帧序号为零的I 帧的数目A,图像组内包括当前视频数据帧的累计B帧的数目B以及图像组内包括当前视频数据帧的累计P帧的数目C,并根据公式G = A+B+nC计算得出,其中G表示帧类型累计值, η为大于I的整数。或者是在所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和时,所述帧类型累计值由视频数据包发送端获取图像组内包括当前视频数据帧的累计帧序号为零的I帧的数目Α,据图像组内包括当前视频数据帧的累计B帧的数目B,据图像组内包括当前视频数据帧的累计P帧的数目C,以及据图像组内包括当前视频数据帧的累计帧序号为非零的I帧的数目D,并根据公式G = A+B+mC+mD计算得出,其中G表示巾贞类型累计值,m为大于I的整数。本发明上述实施例中,通常媒体流中会包括视频数据包、音频数据包等多种数据包,其中对视频数据包处理可能会造成包间隔抖动,在这种情况下,上述步骤103中的通过缓存队列发送所述视频数据包可以具体为调整包括所述视频数据包的媒体流码率,通过缓存队列按照预先设定的发送速率发送包括所述视频数据包的媒体流。本发明实施例还提供了一种检测视频传输丢包的方法,图2为本发明实施例中检测视频传输丢包的方法的流程示意图,如图2所示,包括如下的步骤步骤201、接收承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、B帧和 P帧,并从携带有视频数据帧帧头信息的视频数据包中获取帧序号,以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,所述图像组为起始于帧序号为零的I帧的一组视频数据帧;步骤202、在发生视频数据包丢失,且发生视频数据包丢失前获得的图像组序号与发生视频数据包丢失后获得的图像组序号一致,发生视频数据包丢失前最后获得的帧序号和视频数据包丢失后最先获得的帧序号发生不一致时,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的I帧的丢失数之和。本发明实施例是针对图I所示实施例处理后的视频数据包的传输质量进行评价, 首先接收视频数据包,并可以从所述视频数据包的图像条的描述信息中获取图像组序号和帧类型累计值,如果发生视频数据包丢失,则根据发生视频数据包丢失前后的帧序号和帧类型累计值判定丢失的类型,在发生视频数据包丢失前后的帧类型累计值不一致时,确认是发生了跨帧丢失,因此可以根据帧序号和图像条的描述信息中携带的帧类型累计值获取 P帧丢失数,或者是P帧与帧序号非零的I帧的丢失数之和,能够更加准确的反映实际丢包对视频画面质量的影响,能够提高对视频传输质量评价的准确性。另外,本发明上述实施例中,还可以根据视频数据帧的实际丢帧总数,以及根据帧速率计算得到的理论丢帧总数获取屏幕冷冻时间。具体的,首先是在上述接收视频数据包的同时,依次记录接收承载有视频数据帧的视频数据包的接收时间,并从承载有视频数据帧帧头信息的视频数据包中获取帧速率,该帧速率包含在视频数据帧帧头信息中。在发生视频数据包丢失时,可以根据发生视频数据包丢失前最后获得的帧序号和发生视频数据包丢失后最先获得的帧序号获取丢失视频数据帧数目;并根据记录的发生视频数据包丢失前最后接收承载有视频数据帧帧头信息的视频数据包的接收时间,以及发生视频数据包丢失后最先接收携带有视频数据帧帧头信息的视频数据包的接收时间获取丢帧时间差,该情况下,需要将发生视频数据包丢失前接收最后一个可解析的视频数据帧的时间去掉,另外,还有一种情况是记录的发生视频数据包丢失前接收承载最后一个可解析视频数据帧的最后一个视频数据包的时间,根据上述时间以及发生视频数据包丢失后最先接收携带有视频数据帧帧头的视频数据包的时间获取丢帧时间差;
根据上述任一方式获取的丢帧时间差以及所述帧速率可以获取理论丢失视频数据帧的数目。最后,根据上述理论丢失视频数据帧的数目和实际丢失视频数据帧的数目的差值获取屏幕冷冻时间。另外,对于发生视频数据包丢失的情况,还有可能是视频数据帧内部宏块丢失的情况,该情况下需要获取帧内宏块丢失信息,具体的,即获取各个视频数据包中最后一个图像条的描述信息中的图像组序号、帧类型累计值和图像条序号;在发生视频数据包丢失,且确定发生视频数据包丢失前最后获取的图像组序号与发生视频数据包丢失后最先获取的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值一致时,获取第一帧内宏块丢失信息,该第一帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,到发生视频数据包丢失后最先获取的图像条序号对应的图像条之前的所有图像条的宏块的信息。或者是在发生视频数据包丢失,且确定发生视频数据包丢失前最后获得的图像组序号与发生视频数据包丢失后最先获得的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值不一致时,获取第二帧内宏块丢失信息,所述第二帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,以及之后所有图像条的宏块的信息。并且进一步的,可以将第一巾贞内宏块丢失信息、第二巾贞内宏块丢失信息和实际丢失视频数据帧所包含的宏块信息存储到宏块丢失列表中;然后根据各个视频数据帧内未丢失宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于宏块丢失列表中,如果是则确认所述未丢失宏块为丢失宏块,且将所述丢失宏块信息存储于宏块丢失列表中,通过该步骤,在进行视频传输质量的评价时,可以将帧内或帧间预测引起的损伤传播考虑进来,使得对视频传输质量的评价更加准确。具体的,上述宏块丢失列表可以包括当前帧宏块丢失列表,前向宏块丢失列表和后向宏块丢失列表,而上述的根据各个视频数据帧内未丢失宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于宏块丢失列表具体为根据I帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于当前帧宏块丢失列表中,这主要考虑I帧为帧内预测编码的视频数据帧,其只需要考虑同一视频数据帧内部的参考宏块是否丢失即可;根据P帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于前向帧宏块丢失列表中,这主要考虑P帧为前向预测编码的视频数据帧,其需要考虑存储在前向帧宏块丢失列表中的前一个视频数据帧的宏块丢失情况;或,根据B帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于前向帧宏块丢失列表和后向帧宏块丢失列表中,这主要考虑B帧为双向预测编码的视频数据帧,其需要考虑存储在前向帧宏块丢失列表中的前一个视频数据帧的宏块丢失情况,以及存储在后向帧宏块丢失列表中的后一个视频数据帧的宏块丢失情况。本发明上述实施例中,其中的步骤102中在图像条的描述信息中添加图像组序号和帧类型累加值,可以按照如图3所示的实施例给出的步骤进行步骤301、变量初始化,图像组序号用变量(Group sequence,简称GS)表示,巾贞类型累计值用变量(the sum of every graphics frame type,简称EGTS表示,首先将上述两个变量值初始化为O ;步骤302、从接收到的视频数据包中获取视频数据帧帧头信息,该帧头信息中会携带帧类型值和帧序号,通过分析帧头信息可以确定帧序号为O的I帧,本实施例在第一次查找到符合条件的I帧后开始循环,执行下述的步骤303-307 ;步骤303、读取视频数据帧帧头信息中的帧类型和帧序号;步骤304、根据帧类型和帧序号判断是否为帧序号为O的I帧,如是则执行步骤 305,否则执行步骤306 ;步骤305、将图像组序号变量GS的值加1,即GS+1,并将帧类型累计值EGTS设为 0,本步骤中在第一次获取到符合条件的I帧时,其中EGTS的值即为0,而在之后获取到符合条件的I帧时,可能EGTS的值已经被改变,本步骤中再将其设置为0,这是考虑到本发明实施例中是根据帧序号为O的I帧将视频数据帧划分为不同的图像组,对于新的图像组,其中帧类型累计值也重新计算;步骤306、判断该视频数据帧的类型并更新EGTS的值,对于仅存在帧序号为零的I 帧时,若其为I帧或B帧,将ETGS的值增加1,即EGTS+1,否则将EGTS的值增加2,即EGTS+2, 或者也可以是其他非I的整数值;对于存在帧序号为非零的I帧时,若其为B帧或帧序号为零的I帧,将EGTS的值增加I,否则将EGTS的值增加2,或者也可以是其他非I的整数值。 这里主要是考虑到在视频数据帧的帧头信息中会存储帧序号,在图像组中帧序号都是依次增加I的,本步骤中,在I帧或B帧时,将ETGS的值增加1,而P帧时增加非I的整数,通过两者的差值容易得到P帧的数目,或者是P帧与帧序号为非零的I帧的数目之和。步骤307、将GS的值和EGTS的值写入到图像条的描述信息中,由于视频数据帧的帧头信息通常只存在于发送该视频数据帧的第一个视频数据包中,而图像条的描述信息则可能存在于后续的多个视频数据包中,本实施例中可能是在后续接收到的多个视频数据包的图像条的描述信息中添加GS的值和EGTS的值;步骤308、在执行上述步骤307的同时也需要查找下一个视频数据帧的帧头信息, 并在查找到后不在添加GS的值和EGTS的值,而转到执行上述的步骤303。本发明上述实施例中,在视频数据包的发送端按照图3所示的实施例进行了处理,进一步的可以在后续的任一网络节点或视频数据包的接收端进行视频传输质量分析, 具体的可以包括如图4所示的步骤步骤401、初始化监测所需要的列表和变量,具体的列表包括当前帧丢失宏块列表、前向参考宏块列表、后向参考宏块列表和指针偏移列表;步骤402、寻找有效的监测起点,如上述图3所示实施例给出的,其中是从帧序号为O的I帧开始处理的,因此本步骤中的寻找帧序号为O的I帧,具体的可是从接收到的视频数据包的视频数据帧帧头信息中寻找,该视频数据帧帧头信息可以看作是图像头起始标志位或TS的起始标志位,包括帧类型以及帧序号等信息;步骤403、获取帧类型,并判断是否需要暂存该承载视频数据帧帧头信息的视频数据包地址,以及是否需要打开暂存状态,若是执行步骤404,否则执行步骤405,本步骤具体的包括如下情形A、若不需要暂存,则转向执行步骤405 ;
B、若需要暂存,且当前视频数据帧为B巾贞,则暂存状态打开;C、若需要暂存,但当前视频数据帧为P帧或帧序号非O的I巾贞,则暂存状态关闭;本步骤中是否需要暂存主要依据是是否丢失P帧,丢失P帧时为需要暂存,而仅在当前视频数据帧为B帧时才真正将暂存状态打开,这主要是考虑到B帧为双向预测数据帧, 需要对其前后的视频数据帧损伤评价完成后再进行评价。步骤404、进行丢失视频数据帧情况的测量,根据不同的丢失视频数据帧的情况暂存相应的内容,具体的根据不同的丢失视频数据帧的情况并暂存相应的内容包括A、未丢任何视频数据帧,且当前视频数据帧为B帧,暂存当前的视频数据帧;B、仅丢失η个B帧,暂存η个B帧损伤率结果,其值为100% ;C、丢失η个视频数据帧,且丢失至少I个P帧,暂存η个视频数据帧的损伤率结果, 并转向执行步骤409 ;上述A和B两种情况下,从视频数据包中寻找下一个图像头起始标志位,并转向执行步骤403 ;步骤405、根据当前视频数据帧的帧类型和当前帧宏块丢失列表的状态,判断是否需要分析未丢失宏块信息,并将结果赋给变量MMBFLag,该变量用于表征是否需要分析帧间级联损伤,即时域损伤分析,判断上述变量MMBFLag为真还是假,分别执行如下A、若MMBFLag为真,对当前视频数据包的每一个宏块进行时域损伤分析;B、若MMBFlag为假,记录最后一个同步点(图像条起始标志位)的位置,若当前视频数据包不包含同步点,则记录该视频数据包中首个宏块坐标;步骤406、提取下一个视频数据包,判断是否为连续的视频数据包,若成立则执行步骤408,否则执行步骤407 ;步骤407、进行损伤的空间传播分析,即损伤的空域扩散分析,如果是跨视频数据帧的损伤,执行步骤409,否则执行步骤408 ;步骤408、判断当前的视频数据包是否为承载视频数据帧的第一个视频数据包,通常该第一个视频数据包中会包括视频数据帧帧头信息,若是执行步骤409,否则执行步骤 405 ;步骤409、根据当前帧宏块丢失列表,计算当前视频数据帧中宏块丢失情况,并根据帧类型或丢失P帧数量更新前向宏块丢失列表和后向宏块丢失列表;步骤410、根据暂存序列元素数情况进行相应操作,具体的该各个元素可以暂存在指针偏移列表中A、若指针偏移列表中的元素数大于1,取出首个元素,若该元素存储为帧丢失状态,则输出帧损伤比,转步骤410,否则指针指向元素储存的地址,转向步骤403 ;B、若指针偏移列表中的元素数为1,指针指向该唯一元素储存的地址,转向步骤 403 ;C、若指针偏移列表中的元素数目为0,转向步骤403。上述实施例中是以仅存在帧序号为零的I帧的情况进行的说明,其中可以获取丢失P帧的数目,当存在帧序号非零的I帧时,根据上述的实施例也可以获取丢失的P帧和非零的I帧的数目和。本发明上述实施例中,步骤404中的进行丢失视频数据帧情况测量可以包括如图5所示的步骤步骤501、发生视频数据包丢失时,获取最近接收到的承载视频数据帧帧头信息的视频数据包的到达时间,并从视频数据帧帧头信息中获取帧序号,另外。还需要获取帧类型累计值和图像组序号,其可以从故障前最后接收到的图像条的描述信息中得到;步骤502、查找下一个含有图像条启示标志位,也即是含有图像条的描述信息的视频数据包,作为再同步点;步骤503、提取再同步点的图像条的描述信息中携带的帧类型累计值和图像组序号;步骤504、判断步骤501中获得的图像组序号,和步骤503中获得的图像组序号是否相同,如果是执行步骤505,否则执行步骤506 ;步骤505、判断501中获得的帧类型累计值,和步骤503中获得的帧类型累计值是否相同,如果是则说明损伤未跨视频数据帧,直接执行步骤513,结束丢失视频数据帧情况计算,否则执行步骤507;步骤506、将步骤501中获取的帧类型类累计值,以及帧序号进行重新初始化;步骤507、从后续的视频数据包中查找下一个携带图像头起始标志位的视频数据包,也就是携带视频数据帧帧头信息的视频数据包;步骤508、记录步骤507中接收到上述视频数据包的时间,并从上述视频数据帧帧头信息中获取帧序号、帧类型,以及从第一个图像条的描述信息中获取帧类型累计值和图像组序号;步骤509、判断步骤501中获取的图像组序号和步骤508中获取的图像组序号是否一致,如果一致则执行步骤511,否则执行步骤510 ;步骤510、将步骤501中获取的帧类型类累计值,以及帧序号重新初始化;步骤511、根据步骤501中获得的承载故障点所在视频数据帧的第一个视频数据包的到达时间,以及步骤508中获得的接收视频数据包的时间,以及视频数据帧帧头信息中的帧速率获取理论丢帧总数,该理论丢帧总数包含了屏幕冷冻时间;步骤512、根据步骤501中获得的帧序号和帧类型累计值,以及步骤508中获得的帧序号和帧类型累计值,获取实际丢帧总数,并在帧类型累计值表征图像组内包括当前视频数据帧的累计P帧的数目时,获取丢失的P帧的数目;或者是在帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,获取丢失的 P帧和丢失的帧序号非零的I帧的数目之和;步骤513、结束丢失视频数据帧情况计算。另外,对于暂存状态下丢失视频数据帧的情况计算可以按照图6所示的步骤进步骤601、在发生视频数据包丢失时,若暂存状态打开,获取前一个可解析视频数据帧的帧序号,承载前一个可解析视频数据帧的最后一个视频数据包的到达时间,以及前一个可解析视频数据帧的最后一个图像条携带的帧类型累计值和图像组序号;步骤602、获知视频数据包丢失后,从下一个承载有图像头的标志信息,也即是视频数据帧帧头信息的视频数据包中获得第一个图像条的描述信息中的帧类型累计值和图像组序号;
步骤603、判断步骤601和步骤602中获取的图像组序号是否一致,如果是执行步骤604,否则执行步骤605 ;步骤604、判断步骤601和步骤602中获取的帧类型累计值是否一致,如果一致执行步骤609,结束丢失帧情况计算的步骤,否则执行步骤606 ;步骤605、将步骤601中获取的帧类型累计值和帧序号重新初始化;步骤606、从步骤602中获取的视频数据包中获取视频数据帧帧头信息中携带的帧序号、帧类型,以及帧速率,并记录该视频数据包的达到时间,这是后一个视频数据帧的到达时间;步骤607、根据步骤601中获取的承载前一个视频数据帧的最后一个视频数据包的到达时间,步骤606中获取的后一个视频数据帧的到达时间,以及帧速率获取理论丢帧总数;步骤608、根据前后两个视频数据帧的帧序号、帧类型累计值计算实际丢帧总数, 以及实际丢失P帧总数,或者是实际丢失的P帧和帧序号非零的I帧的总数之和;步骤609、丢失视频数据帧情况计算结束。针对图4所示实施例中的步骤409中更新丢失宏块列表,其中的丢失宏块列表可以包括当前巾贞宏块丢失列表(Current frame list,以下简称CFL)、前向巾贞宏块丢失列表 (previous reference picture list,以下简称SPRL)和后向巾贞宏块丢失列表(succeed reference picture list,以下简称PRPL),具体步骤可以按照图7执行步骤701、获取P帧的丢失情况,即判断是否丢失P帧,在丢失P帧时执行步骤702, 未丢失P帧时执行步骤705 ;步骤702、判断是否丢失两个以上的P帧,若是执行步骤704,否则执行步骤703 ;步骤703、将SRPL的信息值赋给PRPL,并将丢失的P帧的所有宏块坐标都加入到 SRPL中,同时将CFL清空,执行步骤709 ;步骤704、将丢失的P帧的所有宏块坐标都加入到SRPL和PRPL中,将CFL清空,执行步骤709 ;步骤705、判断该视频数据帧是否为帧序号为零的I帧,如果是执行步骤708,否则执行步骤706 ;步骤706、判断该视频数据帧是否为B帧,如果是执行步骤709,否则执行步骤 707 ;步骤707、将SRPL的信息值赋给PRPL,将CFL的信息值赋给SRPL,执行步骤709 ;步骤708、将SRPL和PRPL的值清空,并将CFL的值加入到SRPL中;步骤709、宏块列表更新完成。图4所示实施例的步骤405中进行时域损伤分析可以包括如下的过程(I)顺序获得视频数据包内每一个宏块的坐标信息提取当前宏块的宏块地址增量(Macro block incremental,以下简称MBI),该增量是当前宏块与前一宏块的距离,并结合前一宏块的坐标信息得到当前宏块的坐标信息。其中,若当前视频数据包含有图像头标志,即视频数据帧帧头信息,则提取当前视频数据包中第一个图像条的垂直序号,并结合视频数据帧水平分辨率和宏块水平尺寸得到前一宏块(即虚拟宏块)的坐标地址;(2)计算当前宏块参考的基准宏块,具体的可以通过提取当前宏块的矢量位移和预测模式得到其基准宏块;(3)查找基准宏块在关键帧参考列表中的状态,该关键帧参考列表包括前向参考宏块列表和后向参考宏块列表,若其为丢失,则将当前宏块加入到当前巾贞宏块丢失列表中, 具体的,对于B帧中的宏块,若其前向参考宏块或者后向参考宏块之一的状态为丢失,则认为当前宏块的状态也为丢失;(4)若宏块地址增量MBI大于1,则判断当前宏块与前一宏块之间的所有跳跃宏块的基准宏块是否丢失,若其丢失,则将该跳跃宏块加入到当前帧宏块丢失列表中。另外,若当前视频数据帧为P帧,则将跳跃宏块的前向矢量位移赋值为0,若当前视频数据帧为B帧, 则每一个跳跃宏块的预测模式状态和相对应的矢量位移取自前一宏块。图4所示的实施例中的对损伤进行空间传播分析可以包括如下的过程(I)获取损伤起始点的宏块坐标,具体的包括若当前的视频数据包未对丢失的宏块进行信息匹配,即解析巾贞内快标志(the flag of mapping macro block,以下简称 MMBFlag)为0,此时从记录的最后一个图像条标志位的位置,即发生数据包丢失前最后接收到的图像条的描述信息的位置开始检测其后的每一个宏块的地址增量,以得到损伤初始点的宏块坐标,若当前视频数据包已经对丢失宏块进行信息匹配,则取前一宏块的坐标作为损伤初始点的宏块坐标;
(2)查找下一个含有图像头起始标志位,也即是含有图像条的描述信息的视频数据包,并将下一个图像头起始标志位位置作为再同步点;(3)根据损伤起始点所在的图像条描述信息中的帧类型累计值,以及再同步点的图线条的描述信息中的帧类型累计值,判断损伤是否跨帧;(4)对损伤初始点和再同步点之间的宏块进行处理若损伤未跨帧,则将损伤初始点和再同步点之间的所有宏块加入到当前帧的宏块丢失列表中。若损伤跨帧时,则将损伤初始点之后的当前帧的剩余宏块加入到当前帧的宏块丢失列表中。以下是本发明的一个具体实施例,其中的编号为1-82的视频数据包为在网络中传输的一组传输流序列,具体的已经按照图3所示的实施例在图像条的描述信息中添加了帧类型累计值和图像序号,本实施例中的I帧仅包括帧序号为零的情况,其中的帧类型累计值仅用于表征图像组内P帧的累计值,具体的视频数据包可以如表I所示
权利要求
1.一种检测视频传输丢包的方法,其特征在于,包括接收承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、B帧和P帧;从携带有视频数据帧帧头信息的视频数据包中获取帧序号,以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,所述图像组为起始于帧序号为零的I帧的一组视频数据帧;在发生视频数据包丢失,且发生视频数据包丢失前获得的图像组序号与发生视频数据包丢失后获得的图像组序号一致,发生视频数据包丢失前最后获得的帧序号和视频数据包丢失后最先获得的帧序号发生不一致时,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的I帧的丢失数之和。
2.根据权利要求I所述的检测视频传输丢包的方法,其特征在于,所述图像组序号和帧类型累计值携带在所述视频数据包的图像条的描述信息的扩展字段中,或所述图像组序号和帧类型累计值携带在所述视频数据包的图像条的描述信息的帧序号字段中。
3.根据权利要求I所述的检测视频传输丢包的方法,其特征在于,在所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目时,所述帧类型累计值由视频数据包发送端获取图像组内包括当前视频数据帧的累计帧序号为零的I帧的数目A,图像组内包括当前视频数据帧的累计B帧的数目B以及图像组内包括当前视频数据帧的累计P 帧的数目C,并根据公式G = A+B+nC计算得出,其中G表示帧类型累计值,η为大于I的整数。
4.根据权利要求I所述的检测视频传输丢包的方法,其特征在于,在所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和时,所述帧类型累计值由视频数据包发送端获取图像组内包括当前视频数据帧的累计帧序号为零的I帧的数目Α,据图像组内包括当前视频数据帧的累计B帧的数目B,据图像组内包括当前视频数据帧的累计P帧的数目C,以及据图像组内包括当前视频数据帧的累计帧序号为非零的I帧的数目D,并根据公式G = A+B+mC+mD计算得出,其中G表示帧类型累计值,m为大于I的整数。
5.根据权利要求1-4任一所述的检测视频传输丢包的方法,其特征在于,还包括依次记录接收承载有视频数据帧的视频数据包的接收时间,并从携带有视频数据帧帧头的视频数据包中获取视频数据帧的帧速率;在发生视频数据包丢失时,根据发生视频数据包丢失前最后获得的帧序号和发生视频数据包丢失后最先获得的帧序号获取实际丢失视频数据帧数目;根据记录的发生视频数据包丢失前最后接收携带有视频数据帧帧头的视频数据包的接收时间,以及发生视频数据包丢失后最先接收携带有视频数据帧帧头的视频数据包的接收时间获取丢帧时间差,或根据记录的发生视频数据包丢失前接收承载最后一个可解析视频数据帧的最后一个视频数据包的时间,以及发生视频数据包丢失后最先接收携带有视频数据帧帧头的视频数据包的时间获取丢帧时间差;根据获取的丢帧时间差以及所述帧速率获取理论丢失视频数据帧数目;根据所述理论丢失视频数据帧数目和实际丢失视频数据帧数目的差值获取屏幕冷冻时间。
6.根据权利要求1-4任一所述的检测视频传输丢包的方法,其特征在于,还包括获取各个视频数据包中最后一个图像条的描述信息中的图像组序号、帧类型累计值和图像条序号;在发生视频数据包丢失,且确定发生视频数据包丢失前最后获得的图像组序号与发生视频数据包丢失后最先获得的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值一致时,获取第一帧内宏块丢失信息,所述第一帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,到发生视频数据包丢失后最先获取的图像条序号对应的图像条之前的所有图像条的宏块的信息;或,在发生视频数据包丢失,且确定发生视频数据包丢失前最后获得的图像组序号与发生视频数据包丢失后最先获得的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值不一致时,获取第二帧内宏块丢失信息,所述第二帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,以及之后所有图像条的宏块的信息。
7.根据权利要求6所述的检测视频传输丢包的方法,其特征在于,还包括将所述第一帧内宏块丢失信息、所述第二帧内宏块丢失信息和所述实际丢失视频数据帧所包含的宏块信息存储到宏块丢失列表中;根据各个视频数据帧内未丢失宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于宏块丢失列表中,如果是则确认所述未丢失宏块为丢失宏块,且将所述丢失宏块信息存储于宏块丢失列表中。
8.根据权利要求7所述的视频数据帧传输质量获取方法,其特征在于,所述宏块丢失列表包括当前巾贞宏块丢失列表,前向宏块丢失列表和后向宏块丢失列表,所述根据各个视频数据帧内未丢失宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于宏块丢失列表具体为根据I帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于当前帧宏块丢失列表中;或,根据P帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于前向帧宏块丢失列表中;或,根据B帧内未丢失的宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于前向巾贞宏块丢失列表和后向巾贞宏块丢失列表中。
9.一种检测视频传输丢包的装置,其特征在于,包括第一接收模块,用于接收承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、 B帧和P帧;第二获取模块,用于从携带有视频数据帧帧头信息的视频数据包中获取帧序号,以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值,所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧的数目,或所述帧类型累计值用于表征图像组内包括当前视频数据帧的累计P帧和累计帧序号非零的I帧的数目之和,所述图像组为起始于帧序号为零的I帧的一组视频数据帧;第一检测视频传输丢包的模块,用于在发生视频数据包丢失,且发生视频数据包丢失前获得的图像组序号与发生视频数据包丢失后获得的图像组序号一致,发生视频数据包丢失前最后获得的帧序号和视频数据包丢失后最先获得的帧序号发生不一致时,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的 I帧的丢失数之和。
10.根据权利要求9所述的检测视频传输丢包的装置,其特征在于,所述第二获取模块还用于从携带有视频数据帧帧头的视频数据包中获取视频数据帧的帧速率,所述装置还包括时间记录模块,用于依次记录接收承载有视频数据帧的视频数据包的接收时间; 第三获取模块,用于在发生视频数据包丢失时,根据发生视频数据包丢失前最后获得的帧序号和发生视频数据包丢失后最先获得的帧序号获取实际丢失视频数据帧数目;根据记录的发生视频数据包丢失前最后接收携带有视频数据帧帧头的视频数据包的接收时间, 以及发生视频数据包丢失后最先接收携带有视频数据帧帧头的视频数据包的接收时间获取丢帧时间差,或根据记录的发生视频数据包丢失前接收承载最后一个可解析视频数据帧的最后一个视频数据包的时间,以及发生视频数据包丢失后最先接收携带有视频数据帧帧头的视频数据包的时间获取丢帧时间差;第二检测视频传输丢包的模块,用于根据获取的丢帧时间差以及所述帧速率获取理论丢失视频数据帧数目,以及根据所述理论丢失视频数据帧数目和实际丢失视频数据帧数目的差值获取屏幕冷冻时间。
11.根据权利要求9所述的检测视频传输丢包的装置,其特征在于,所述第二获取模块具体用于获取各个视频数据包中最后一个图像条的描述信息中的图像组序号、帧类型累计值和图像条序号,所述装置还包括第三检测视频传输丢包的模块,用于在发生视频数据包丢失,且确定发生视频数据包丢失前最后获得的图像组序号与发生视频数据包丢失后最先获得的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值一致时,获取第一帧内宏块丢失信息,所述第一帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,到发送视频数据包丢失后最先获取的图像条序号对应的图像条之前的所有图像条的宏块的信息;或,在发生视频数据包丢失,且确定发生视频数据包丢失前最后获得的图像组序号与发生视频数据包丢失后最先获得的图像组序号一致,发生视频数据包丢失前最后获得的帧类型累计值与发生视频数据包丢失后最先获得的帧类型累计值不一致时,获取第二帧内宏块丢失信息,所述第二帧内宏块丢失信息包括发生视频数据包丢失前最后获得的图像条序号对应的图像条在内,以及之后所有图像条的宏块的信息。
12.根据权利要求11所述的检测视频传输丢包的装置,其特征在于,还包括丢失宏块列表,用于存储所述第一帧内宏块丢失信息,所述第二帧内宏块丢失信息和实际丢失视频数据帧所包含的宏块信息;第四检测视频传输丢包的模块,用于根据各个视频数据帧内未丢失宏块的地址相关信息判断所述未丢失宏块的基准宏块是否是位于宏块丢失列表中,如果是则确认所述未丢失宏块为丢失宏块,且将所述丢失宏块信息存储于宏块丢失列表中。
13.—种检测视频传输丢包的系统,其特征在于,包括权利要求9-12任一所述的检测视频传输丢包的装置。
全文摘要
本发明提供了一种检测视频传输丢包的方法、装置和系统,其中检测视频传输丢包的方法包括接收承载有视频数据帧的视频数据包,所述视频数据帧包括I帧、B帧和P帧;从携带有视频数据帧帧头信息的视频数据包中获取帧序号,以及从携带图像条的描述信息的视频数据包中获取图像组序号和帧类型累计值;在发生视频数据包丢失,根据发生视频数据包丢失前最后获得的帧序号和对应的帧类型累计值,以及发生视频数据包丢失后最先获得的帧序号和对应的帧类型累计值,获取P帧丢失数,或者是获取P帧与帧序号非零的I帧的丢失数之和。本发明还提供了相应的装置和系统。本发明的技术方案能够提高对视频传输质量评价的准确性。
文档编号H04N7/64GK102611894SQ20121005360
公开日2012年7月25日 申请日期2012年3月2日 优先权日2012年3月2日
发明者刘衍珩, 王爱民, 许鑫, 陈齐标 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1