视频流的帧类型检测、帧大小检测方法及装置制造方法

文档序号:7982317阅读:120来源:国知局
视频流的帧类型检测、帧大小检测方法及装置制造方法
【专利摘要】本发明实施例提供一种视频流的帧类型检测、帧大小检测方法及装置。视频帧类型检测方法包括:获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;根据当前视频帧和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧和前一视频帧、前两视频帧的大小判断所述前一视频帧是否为I帧。本发明提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,且充分考虑了视频帧率的影响。
【专利说明】视频流的帧类型检测、帧大小检测方法及装置
【技术领域】
[0001]本发明实施例涉及多媒体技术,尤其涉及一种视频流的帧类型检测、帧大小检测方法及装置。
【背景技术】
[0002]在网络媒体迅速发展的背景下,影视点播、网络电视、可视电话等业务已成为宽带网络和无线网络的主要业务,使得运营商需要对传输的视频业务质量进行监控并及时采取相应措施进行调节以保证用户对媒体业务的体验需求。网络视频质量评估是网络视频应用中必不可少的一项重要技术。
[0003]根据对原始参考视频需要的程度,视频客观质量评估方法通常可以分成三大类:全参考、部分参考和无参考视频客观质量评估。由于信道带宽的限制,视频接收端通常无法获得所需的原始参考视频序列,因此需要利用无参考视频质量评估方法来对网络中传输的视频流进行评价。
[0004]现有基于帧类型参数的无参考视频质量评估方法中,需要先检测视频帧类型,而现有技术中还没有一套完整有效的检测帧类型的方法。
[0005]另外,现有的帧大小检测方法仅适用于没有丢包的帧,对于有丢包的帧的大小检测,还没有一种有效的解决方案。

【发明内容】

[0006]本发明实施例提供一种视频流的帧类型检测方法及装置,用以提供一套完整有效的检测帧类型的方法。
[0007]本发明的第一个方面是提供一种视频流的帧类型检测方法,包括:
[0008]获得当前视频帧的大小,所述当前帧位于所述视频流的第一个视频帧之后;
[0009]根据当前视频帧的大小和与所述当期视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
[0010]根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
[0011]根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
[0012]本发明的第二个方面是提供一种视频流的帧类型检测装置,包括:
[0013]帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
[0014]特征提取模块,用于根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
[0015]阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;[0016]类型判断模块,用于根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
[0017]本发明的第三个方面是提供一种视频流的帧类型检测方法,包括:
[0018]获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
[0019]根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
[0020]根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
[0021]根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
[0022]本发明的第四个方面是提供一种视频流的帧类型检测装置,其特征在于,包括:
[0023]帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
[0024]特征提取模块,用于根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
[0025]阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
[0026]类型判断模块,用于根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
[0027]上述多个技术方案中的一个技术方案至少具有如下有益效果或优点:
[0028]本发明实施例通过根据当前视频帧和与所述当前视频帧相邻的前一视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧、前一视频帧和前两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,即前两视频帧,解决了现有视频帧类型检测中基于之前的多个视频帧进行计算导致复杂度高、时延大的问题,且充分考虑了视频帧率的影响,使得检测结果更加准确。
[0029]本发明实施例还提供了一种帧大小检测方法,用以提供一种有效的检测有丢包的帧的大小的解决方案。
[0030]本发明的第五个方面是提供了一种帧大小检测方法,包括:
[0031 ] 若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
[0032]根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V—1stPackets ;
[0033]根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;[0034]根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
[0035]本发明的第六个方面是提供了一种帧大小检测装置,包括:
[0036]净载估计模块,用于若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
[0037]总丢失数获得模块,用于根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets ;
[0038]各丢失数估计模块,用于根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;
[0039]帧大小检测模块,用于根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
[0040]上述多个技术方案中的一个技术方案至少具有如下有益效果或优点:
[0041]本发明实施例通过若确定接收到的两个RTP包之间发生丢包,则根据各接收到的RTP包的净载估计每个丢失的RTP包的净载,并根据所述两个RTP包的序列号获得所述两个RTP包之间丢失的RTP包的总个数,然后根据所述丢失的RTP包的总个数VJostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数,从而根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载得到丢包的各帧的大小,提供一种有效的检测有丢包的帧的大小的解决方案。
【专利附图】

【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本发明实施例提供的一种视频流的帧类型检测方法的流程示意图;
[0044]图2A-2I为本发明实施例的丢包例一至九的示意图;
[0045]图3为本发明实施例提供的又一种视频流的帧类型检测方法的流程示意图;
[0046]图4为本发明实施例提供的一种帧大小检测方法的流程示意图;
[0047]图5为本发明实施例提供的一种视频流的帧类型检测装置的结构示意图;
[0048]图6为本发明实施例提供的又一种视频流的帧类型检测装置的结构示意图
[0049]图7为本发明实施例提供的一种帧大小检测装置的结构示意图;
[0050]图8为本发明实施例提供的另一种视频流的帧类型检测装置的结构示意图;
[0051]图9为本发明实施例提供的再一种视频流的帧类型检测装置的结构示意图
[0052]图10为本发明实施例提供的又一种帧大小检测装置的结构示意图。
【具体实施方式】
[0053]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054]图1为本发明实施例提供的一种视频流的帧类型检测方法的流程示意图。如图1所示,该方法包括:
[0055]101、获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后。
[0056]举例来说,本发明实施例提供的视频流的帧类型检测装置确定当前视频帧的大小。该视频帧类型检测装置可以设置在网络设备或测试设备中。具体地,该视频帧类型检测装置接收视频流,该视频流可通过用户数据包协议(User Datagram Protocol,简称UDP)或传输控制协议(Transport Control Protocol,简称TCP)协议传输,还可以通过其它传输协议,如实时传输协议(Real-time Transport Protocol,简称RTP)、传输流(TransportStream,简称 TS)、超文本传输协议(Hyptertext Transfer Protocol,简称 HTTP)等传输。下面以视频流通过RTP传输协议为例进行说明。当视频流通过RTP传输时,视频流中每一视频帧包含至少一个RTP包。图1为RTP包的格式示意图。如图1所示,RTP包由RTP包头层和RTP净载组成,RTP包头层包含如标记(marker)位、时间戳、序列号等。
[0057]由 于连续的视频帧中各RTP包的序列号递增,序列号的取值范围在0至65535之间(包括65535),每当该序列号递增超过65535时会重回0继续递增,因此可以通过接收到的RTP包的序列号判断是否有丢包以及丢失的RTP包的个数。如果两个连续接收到的RTP包的序列号中后一个的序列号比前一个的序列号大,则该两个连续接收到的RTP包之间丢失的RTP包的总个数V_lostPackets可通过公式(I)计算得到:
[0058]V_lostPackets=后一个的序列号-前一个的序列号-1(I)
[0059]若后一个的序列号比前一个的序列号大1,则VJostPackets=O,没有丢包。
[0060]如果两个连续接收到的RTP包的序列号中后一个的序列号不大于前一个的序列号,则该两个连续接收到的RTP包之间丢失的RTP包的总个数V_lostPackets可通过公式
(2)计算得到:
[0061 ] V_lostPackets=后个的序列号+65536-前个的序列号_1(2)
[0062]若后一个的序列号比前一个的序列号小65535,且时间戳相同,则V_1stPackets=O,没有丢包。
[0063]进一步地,在连续接收到的RTP包中,可通过RTP包头的marker位和/或时间戳将接收到的RTP包划分为不同的视频视频帧。在同一个视频帧中,该视频帧的最后一个RTP包头的marker位为1,其他RTP包的marker位为0,同时,该视频帧的所有RTP包头的时间戳相同,且与相邻视频帧不同。进一步地,在确定连续接收到的RTP包之间有丢包的情况下,还可以根据RTP包头中的时间戳判断连续接收到的RTP包之间是否有视频帧丢失,即一个视频帧的所有的RTP包均丢失,视频帧的丢失个数V_lostFrames可通过如下公式(3)计算:
【权利要求】
1.一种视频流的帧类型检测方法,其特征在于,包括: 获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后; 根据所述当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值; 根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值; 根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
2.根据权利要求1所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧未丢包,则获得所述当前视频帧中各实时传输协议RTP包的的净载; 将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
3.根据权利要求1所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小; 根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小; 将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
4.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载具体包括: 获得所述前相邻的RTP包的净载和后相邻的RTP包的净载; 根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
5.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或, 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为VJostPackets。
6.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧以及所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets ; 确定所述当前视频帧中丢失的RTP包的个数为int (V_lostPackets/2) +V_lostPackets%2。
7.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧以及所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数VJostFrames和丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
8.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续以及且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为I。
9.根据权利要求1所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数VJostFrames和丢失的RTP包的总个数 V_lostPackets ; 若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int (V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int ((V_1stPackets-1) /V_lostFrames); 根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述根据所述当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值具体包括: 将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值具体包括: 根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得当前视频帧的I帧阈值。
12.根据权利要求11所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括: 若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,I]。
13.根据权利要求11所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括: 若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所 述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,I],所述第一缩放因子大于所述第二缩放因子。
14.根据权利要求1-13中任一项所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧具体包括: 若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
15.根据权利要求14所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧具体还包括: 若所述当前视频帧为所述视频流的第二个视频帧,则判断所述当前视频帧的前一视频帧为I帧。
16.根据权利要求14所述的方法,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
17.根据权利要求14或15所述的方法,其特征在于,所述判断所述前一视频帧为I帧之后还包括: 计算I帧的平均大小。
18.根据权利要求17所述的方法,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括: 若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于O。
19.根据权利要求1-18中任一项所述的方法,其特征在于,所述获得当前视频帧的大小之前,还包括: 获得所述第一个视频帧的大小; 确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(O,I]; 确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
20.一种视频流的帧类型检测装置,其特征在于,包括: 帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后; 特征提取模块,用于根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值; 阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值; 类型判断模块,用于根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
21.根据权利要求20所述的装置,其特征在于,所述帧大小获得模块具体用于: 若确定所述当前视频帧未丢包,则获得所述当前视频帧中各实时传输协议RTP包的的净载;` 将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
22.根据权利要求20所述的装置,其特征在于,所述帧大小获得模块具体包括: 接收大小获得单元,用于若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小; 丢失大小获得单元,用于根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小; 帧大小获得单元,用于将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
23.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体用于: 获得所述前相邻的RTP包的净载和后相邻的RTP包的净载; 根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
24.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于:若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或, 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为VJostPackets。
25.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧以及所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数VJostPackets ;确定所述当前视频帧中丢失的RTP包的个数为int (V_1stPackets/2) +V_lostPackets%2。
26.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧以及所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数VJostFrames和丢失的RTP包的总个数V_lostPackets ;确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_1stFrames0
27.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续以及所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为I。
28.根据权利要求20所述的装置,其特征在于,所述帧大小获得模块具体用于: 若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数VJostFrames、丢失的RTP包的总个数 V_lostPackets ; 若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int (V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int ((V_1stPackets-1) /V_lostFrames); 根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
29.根据权利要求20-28中任一项所述的装置,其特征在于,所述特征提取模块具体用于: 将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
30.根据权利要求20-29中任一项所述的装置,其特征在于,所述阈值获得模块具体用于: 根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
31.根据权利要求30所述的装置,其特征在于,所述阈值获得模块具体用于: 若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,I]。
32.根据权利要求30所述的装置,其特征在于,所述阈值获得模块具体用于: 若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当 前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,I],所述第一缩放因子大于所述第二缩放因子。
33.根据权利要求20-32中任一项所述的装置,其特征在于,所述类型判断模块具体用于: 若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
34.根据权利要求33所述的装置,其特征在于,所述类型判断模块具体用于: 若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
35.根据权利要求33所述的装置,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
36.根据权利要求33或34所述的装置,其特征在于,还包括: 均值计算模块,用于在所述类型判断模块判断所述前一视频帧为I帧之后,计算I帧的平均大小。
37.根据权利要求36所述的装置,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,所述类型判断模块还用于: 若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于O。
38.根据权利要求20-37中任一项所述的装置,其特征在于,所述帧大小获得模块还用于:获得所述第一个视频帧的大小; 所述特征提取模块还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];所述阈值获得模块还用于:确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
39.一种视频流的帧类型检测方法,其特征在于,包括: 获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后; 根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值; 根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值; 根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
40.根据权利要求39所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧未丢包,则获得所述当前视频帧中各实时传输协议RTP包的的净载; 将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
41.根据权利要求39所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小; 根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小; 将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
42.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载具体包括: 获得所述前相邻的RTP包的净载和后相邻的RTP包的净载; 根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
43.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或, 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为VJostPackets。
44.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数 V_lostPackets ; 确定所述当前视频帧中丢失的RTP包的个数为int (V_lostPackets/2) +V_lostPackets%2。
45.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数VJostFrames和丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为V—lostPackets%V—1stFrames。
46.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为I。
47.根据权利要求39所述的方法,其特征在于,所述获得当前视频帧的大小具体包括: 若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数VJostFrames、丢失的RTP包的总个数 V_lostPackets ; 若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int (V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int ((V_1stPackets-1) /V_lostFrames);根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
48.根据权利要求39-47中任一项所述的方法,其特征在于,所述根据所述当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值具体包括: 将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
49.根据权利要求39-48中任一项所述的方法,其特征在于,所述根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值具体包括: 根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得当前视频帧的I帧阈值。
50.根据权利要求49所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括: 若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
51.根据权利要求49所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括: 若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,I],所述第一缩放因子大于所述第二缩放因子。
52.根据权利要求39-51中任一项所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧具体包括: 若所述前一视频帧的大和与所述前一视频帧相邻的前两视频帧的大小的比值或所述前一视频帧的大小和所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或, 若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
53.根据权利要求52所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧具体还包括:若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
54.根据权利要求52所述的方法,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
55.根据权利要求52或53所述的方法,其特征在于,所述判断所述前一视频帧为I帧之后还包括: 计算I帧的平均大小。
56.根据权利要求55所述的方法,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括: 若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于O。
57.根据权利要求39-56中任一项所述的方法,其特征在于,所述获得当前视频帧的大小之前,还包括: 获得所述第一个视频帧的大小; 确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(O,I]; 确定第一个视频帧的I帧阈 值等于所述第一个视频帧的变化特征值。
58.一种视频流的帧类型检测装置,其特征在于,包括: 帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后; 特征提取模块,用于根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值; 阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值; 类型判断模块,用于根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
59.根据权利要求58所述的装置,其特征在于,所述帧大小获得模块具体用于: 若确定所述当前视频帧未丢包,则获得所述当前视频帧中各实时传输协议RTP包的净载; 将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
60.根据权利要求58所述的装置,其特征在于,所述帧大小获得模块具体包括: 接收大小获得单元,用于若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小; 丢失大小获得单元,用于根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小; 帧大小获得单元,用于将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
61.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体用于: 获得所述前相邻的RTP包的净载和后相邻的RTP包的净载; 根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
62.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或, 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为VJostPackets。
63.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数 V_lostPackets ;` 确定所述当前视频帧中丢失的RTP包的个数为int (V_lostPackets/2) +V_lostPackets%2。
64.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数VJostFrames和丢失的RTP包的总个数V_1stPackets ; 确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
65.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体还用于: 若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为I。
66.根据权利要求58所述的装置,其特征在于,所述帧大小获得模块具体用于: 若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数VJostFrames、丢失的RTP包的总个数 V_lostPackets ; 若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int (V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int ((V_1stPackets-1) /V_lostFrames); 根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
67.根据权利要求58-66中任一项所述的装置,其特征在于,所述特征提取模块具体用于: 将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
68.根据权利要求58-67中任一项所述的装置,其特征在于,所述阈值获得模块具体用于: 根据视频帧率、 所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
69.根据权利要求68所述的装置,其特征在于,所述阈值获得模块具体用于: 若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,I]。
70.根据权利要求68所述的装置,其特征在于,所述阈值获得模块具体用于: 若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,I],所述第一缩放因子大于所述第二缩放因子。
71.根据权利要求58-70中任一项所述的装置,其特征在于,所述类型判断模块具体还用于: 若所述前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小的比值或所述前一视频帧的大小和所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或, 若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
72.根据权利要求71所述的装置,其特征在于,所述类型判断模块具体用于: 若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
73.根据权利要求71所述的装置,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
74.根据权利要求71或72所述的装置,其特征在于,还包括: 均值计算模块,用于在所述类型判断模块判断所述前一视频帧为I帧之后,计算I帧的平均大小。
75.根据权利要求74所述的装置,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,所述类型判断模块还用于: 若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于O。
76.根据权利要求58-75中任一项所述的装置,其特征在于,所述帧大小获得模块还用于:获得所述第一个视频帧的大小; 所述特征提取模块还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(O,I]; 所述阈值获得模块还用于: 确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
77.—种帧大小检测方法,其特征在于,包括: 若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载; 根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_1stPackets ; 根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数; 根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
78.根据权利要求77所述的方法,其特征在于,所述根据各接收到的RTP包的净载估计每个丢失的RTP包的净载具体包括: 根据所述两个RTP包的净载的平均值估计每个丢失的RTP包的净载;或 根据丢失的RTP包之前接收到的多个RTP包的净载的平均值估计每个丢失的RTP包的净载。
79.根据权利要求77或78所述的方法,其特征在于,所述根据所述丢失的RTP包的总个数VJostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数具体包括: 若根据所述两个RTP包的时间戳确定所述两个RTP包属于同一帧,或,若根据所述两个RTP包的时间戳和标记位确定两个RTP包分别属于两个连续的帧且前一 RTP包为所属帧的最后一个RTP包,则确定后一 RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数 V_lostPackets0
80.根据权利要求77或78所述的方法,其特征在于,所述根据所述丢失的RTP包的总个数VJostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数具体包括: 若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包分别属于两个连续的帧且前一 RTP包不是所属帧的最后一个RTP包,则确定所述前一 RTP包所属帧中丢失的RTP包的个数为 int (V_lostPackets/2) +V_lostPackets%2,后一 RTP 包所属帧中丢失的 RTP 包的个数为 int (V_lostPackets/2)。
81.根据权利要求77或78所述的方法,其特征在于,所述根据所述丢失的RTP包的总个数VJostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数具体包括: 若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一 RTP包为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数VJostFrames ; 确定各丢失的整帧中丢失的RTP包的个数为int (V_lostPackets/V_lostFrames),后一 RTP包所属帧丢失的RTP包的个数为V_lostPackets%V_lostFrames。
82.根据权利要求77或78所述的方法,其特征在于,所述根据所述丢失的RTP包的总个数VJostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数具体包括: 若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一 RTP包不为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数VJostFrames ; 确定所述前一 RTP包所属帧中丢失的RTP包的个数为I,各丢失的整帧中丢失的RTP包的个数为int ((V_lostPackets_l)/`V_lostFrames),后一 RTP包所属帧丢失的RTP包的个数为(V_lostPackets_l) %V_lostFrames。
83.一种帧大小检测装置,其特征在于,包括: 净载估计模块,用于若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载; 总丢失数获得模块,用于根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets ; 各丢失数估计模块,用于根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数; 帧大小检测模块,用于根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
84.根据权利要求83所述的装置,其特征在于,所述净载估计模块具体用于: 根据所述两个RTP包的净载的平均值估计每个丢失的RTP包的净载;或 根据丢失的RTP包之前接收到的多个RTP包的净载的平均值估计每个丢失的RTP包的净载。
85.根据权利要求83或84所述的装置,其特征在于,所述各丢失数估计模块具体用于:若根据所述两个RTP包的时间戳确定所述两个RTP包属于同一帧,或,若根据所述两个RTP包的时间戳和标记位确定两个RTP包分别属于两个连续的帧且前一 RTP包为所属帧的最后一个RTP包,则确定后一 RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数 V_lostPackets0
86. 根据权利要求83或84所述的装置,其特征在于,所述各丢失数估计模块具体用于: 若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包分别属于两个连续的帧且前一 RTP包不是所属帧的最后一个RTP包,则确定所述前一 RTP包所属帧中丢失的RTP包的个数为 int (V_lostPackets/2) +V_lostPackets%2,后一 RTP 包所属帧中丢失的 RTP 包的个数为 int (V_lostPackets/2)。
87.根据权利要求83或84所述的装置,其特征在于,所述各丢失数估计模块具体用于:若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一 RTP包为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数VJostFrames ;确定各丢失的整帧中丢失的RTP包的个数为int (V_lostPackets/V_lostFrames),后一 RTP包所属帧丢失的RTP包的个数为V_lostPackets%V_lostFrames。
88.根据权利要求83或84所述的装置,其特征在于,所述各丢失数估计模块具体用于: 若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一 RTP包不为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数VJostFrames ;确定所述前一 RTP包所属帧中丢失的RTP包的个数为I,各丢失的整帧中丢失的RTP包的个数为int ((V_lostPackets_l)/V_lostFrames),后一 RTP包所属帧丢失的RTP包的个数为(V_lostPackets_l) %V_lostFrames。
【文档编号】H04N19/89GK103634698SQ201210298928
【公开日】2014年3月12日 申请日期:2012年8月21日 优先权日:2012年8月21日
【发明者】高山, 张雷, 孙李娜 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1