CN103634698B - 视频流的帧类型检测、帧大小检测方法及装置 - Google Patents

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

Info

Publication number
CN103634698B
CN103634698B CN201210298928.3A CN201210298928A CN103634698B CN 103634698 B CN103634698 B CN 103634698B CN 201210298928 A CN201210298928 A CN 201210298928A CN 103634698 B CN103634698 B CN 103634698B
Authority
CN
China
Prior art keywords
frame
rtp bag
current video
described current
video frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210298928.3A
Other languages
English (en)
Other versions
CN103634698A (zh
Inventor
高山
张雷
孙李娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to CN201210298928.3A priority Critical patent/CN103634698B/zh
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410667892.0A priority patent/CN104394485B/zh
Priority to ES13831640.1T priority patent/ES2620640T3/es
Priority to JP2015511928A priority patent/JP5994193B2/ja
Priority to ES16193850T priority patent/ES2741851T3/es
Priority to SG11201406597VA priority patent/SG11201406597VA/en
Priority to PCT/CN2013/081781 priority patent/WO2014029310A1/zh
Priority to EP16193850.1A priority patent/EP3203733B1/en
Priority to EP13831640.1A priority patent/EP2830317B1/en
Priority to KR1020147031406A priority patent/KR101603862B1/ko
Publication of CN103634698A publication Critical patent/CN103634698A/zh
Priority to HK14107676.0A priority patent/HK1194576A1/zh
Priority to US14/469,953 priority patent/US9571862B2/en
Application granted granted Critical
Publication of CN103634698B publication Critical patent/CN103634698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0835One way packet loss

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Television Systems (AREA)

Abstract

本发明实施例提供一种视频流的帧类型检测、帧大小检测方法及装置。视频帧类型检测方法包括:获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;根据当前视频帧和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧和前一视频帧、前两视频帧的大小判断所述前一视频帧是否为I帧。本发明提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,且充分考虑了视频帧率的影响。

Description

视频流的帧类型检测、帧大小检测方法及装置
技术领域
本发明实施例涉及多媒体技术,尤其涉及一种视频流的帧类型检测、帧大小检测方法及装置。
背景技术
在网络媒体迅速发展的背景下,影视点播、网络电视、可视电话等业务已成为宽带网络和无线网络的主要业务,使得运营商需要对传输的视频业务质量进行监控并及时采取相应措施进行调节以保证用户对媒体业务的体验需求。网络视频质量评估是网络视频应用中必不可少的一项重要技术。
根据对原始参考视频需要的程度,视频客观质量评估方法通常可以分成三大类:全参考、部分参考和无参考视频客观质量评估。由于信道带宽的限制,视频接收端通常无法获得所需的原始参考视频序列,因此需要利用无参考视频质量评估方法来对网络中传输的视频流进行评价。
现有基于帧类型参数的无参考视频质量评估方法中,需要先检测视频帧类型,而现有技术中还没有一套完整有效的检测帧类型的方法。
另外,现有的帧大小检测方法仅适用于没有丢包的帧,对于有丢包的帧的大小检测,还没有一种有效的解决方案。
发明内容
本发明实施例提供一种视频流的帧类型检测方法及装置,用以提供一套完整有效的检测帧类型的方法。
本发明的第一个方面是提供一种视频流的帧类型检测方法,包括:
获得当前视频帧的大小,所述当前帧位于所述视频流的第一个视频帧之后;
根据当前视频帧的大小和与所述当期视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
本发明的第二个方面是提供一种视频流的帧类型检测装置,包括:
帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
特征提取模块,用于根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
类型判断模块,用于根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
本发明的第三个方面是提供一种视频流的帧类型检测方法,包括:
获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
本发明的第四个方面是提供一种视频流的帧类型检测装置,其特征在于,包括:
帧大小获得模块,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
特征提取模块,用于根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
阈值获得模块,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
类型判断模块,用于根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
上述多个技术方案中的一个技术方案至少具有如下有益效果或优点:
本发明实施例通过根据当前视频帧和与所述当前视频帧相邻的前一视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧、前一视频帧和前两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,即前两视频帧,解决了现有视频帧类型检测中基于之前的多个视频帧进行计算导致复杂度高、时延大的问题,且充分考虑了视频帧率的影响,使得检测结果更加准确。
本发明实施例还提供了一种帧大小检测方法,用以提供一种有效的检测有丢包的帧的大小的解决方案。
本发明的第五个方面是提供了一种帧大小检测方法,包括:
若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets;
根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;
根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
本发明的第六个方面是提供了一种帧大小检测装置,包括:
净载估计模块,用于若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
总丢失数获得模块,用于根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets;
各丢失数估计模块,用于根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;
帧大小检测模块,用于根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
上述多个技术方案中的一个技术方案至少具有如下有益效果或优点:
本发明实施例通过若确定接收到的两个RTP包之间发生丢包,则根据各接收到的RTP包的净载估计每个丢失的RTP包的净载,并根据所述两个RTP包的序列号获得所述两个RTP包之间丢失的RTP包的总个数,然后根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数,从而根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载得到丢包的各帧的大小,提供一种有效的检测有丢包的帧的大小的解决方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频流的帧类型检测方法的流程示意图;
图2A-2I为本发明实施例的丢包例一至九的示意图;
图3为本发明实施例提供的又一种视频流的帧类型检测方法的流程示意图;
图4为本发明实施例提供的一种帧大小检测方法的流程示意图;
图5为本发明实施例提供的一种视频流的帧类型检测装置的结构示意图;
图6为本发明实施例提供的又一种视频流的帧类型检测装置的结构示意图
图7为本发明实施例提供的一种帧大小检测装置的结构示意图;
图8为本发明实施例提供的另一种视频流的帧类型检测装置的结构示意图;
图9为本发明实施例提供的再一种视频流的帧类型检测装置的结构示意图
图10为本发明实施例提供的又一种帧大小检测装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种视频流的帧类型检测方法的流程示意图。如图1所示,该方法包括:
101、获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后。
举例来说,本发明实施例提供的视频流的帧类型检测装置确定当前视频帧的大小。该视频帧类型检测装置可以设置在网络设备或测试设备中。具体地,该视频帧类型检测装置接收视频流,该视频流可通过用户数据包协议(User Datagram Protocol,简称UDP)或传输控制协议(Transport ControlProtocol,简称TCP)协议传输,还可以通过其它传输协议,如实时传输协议(Real-time Transport Protocol,简称RTP)、传输流(Transport Stream,简称TS)、超文本传输协议(Hyptertext Transfer Protocol,简称HTTP)等传输。下面以视频流通过RTP传输协议为例进行说明。当视频流通过RTP传输时,视频流中每一视频帧包含至少一个RTP包。图1为RTP包的格式示意图。如图1所示,RTP包由RTP包头层和RTP净载组成,RTP包头层包含如标记(marker)位、时间戳、序列号等。
由于连续的视频帧中各RTP包的序列号递增,序列号的取值范围在0至65535之间(包括65535),每当该序列号递增超过65535时会重回0继续递增,因此可以通过接收到的RTP包的序列号判断是否有丢包以及丢失的RTP包的个数。如果两个连续接收到的RTP包的序列号中后一个的序列号比前一个的序列号大,则该两个连续接收到的RTP包之间丢失的RTP包的总个数V_lostPackets可通过公式(1)计算得到:
V_lostPackets=后一个的序列号-前一个的序列号-1      (1)
若后一个的序列号比前一个的序列号大1,则V_lostPackets=0,没有丢包。
如果两个连续接收到的RTP包的序列号中后一个的序列号不大于前一个的序列号,则该两个连续接收到的RTP包之间丢失的RTP包的总个数V_lostPackets可通过公式(2)计算得到:
V_lostPackets=后一个的序列号+65536-前一个的序列号-1      (2)
若后一个的序列号比前一个的序列号小65535,且时间戳相同,则V_lostPackets=0,没有丢包。
进一步地,在连续接收到的RTP包中,可通过RTP包头的marker位和/或时间戳将接收到的RTP包划分为不同的视频视频帧。在同一个视频帧中,该视频帧的最后一个RTP包头的marker位为1,其他RTP包的marker位为0,同时,该视频帧的所有RTP包头的时间戳相同,且与相邻视频帧不同。进一步地,在确定连续接收到的RTP包之间有丢包的情况下,还可以根据RTP包头中的时间戳判断连续接收到的RTP包之间是否有视频帧丢失,即一个视频帧的所有的RTP包均丢失,视频帧的丢失个数V_lostFrames可通过如下公式(3)计算:
V _ lostFrames = ( V _ T S t - V _ TS t - 1 ) · videoFrameRate V _ CR - 1 - - - ( 3 )
其中,V_TSt为两个连续接收到的RTP包中后一个RTP包的时间戳,V_TSt-1为前一个RTP的时间戳,videoFrameRate为当前视频流的视频帧率,V_CR为RTP包的时钟频率(Clock Rate)。
如果视频流是H.264,V_CR必须取值为90000。如果视频流是MPEG4,V_CR建议取值为90000,另外,该值也可通过下述两个方法得到:
1)如果有会话描述协议(Session Description Protocol,简称SDP),可以从SDP中获取得到;
2)如果没有SDP,且videoFrameRate已知,可以通过公式(4)计算得到:
V_CR=videoFrameRate·V_TSm         (4)
另外,videoFrameRate为预知的信息或从预定位置中读取获得,其中,所述预定位置,包括预定文件,或者预定的存储位置。也可以通过两个连续接收到的视频帧的RTP包头的时间戳的差值计算得到,该两个连续接收到的视频帧中间必须没有出现整个视频帧丢失的情况,即通过公式(5)得到:
videoFrameRate = V _ CR V _ TSm - - - ( 5 )
其中,V_TSm是两个连续的视频帧的RTP包头的时间戳的差值。
基于上述判断是否有丢失RTP包、丢失视频帧的方法,可以确定当前视频帧是否有丢包以及当前视频帧是否整帧丢失。
若确定所述当前视频帧未丢包,即接收到了所述当前视频帧中的所有RTP包,则确定接收到的所述当前视频帧中各RTP包的净载;将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
具体地,由图1可知,RTP包的净载=RTP包的大小-RTP包头层的大小,其中RTP包的大小可由封装该RTP包的上一层协议信息中获得,RTP包头层的大小可在接收到该RTP包后通过解析包头层来确定。
若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小;
根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小;
将所述当前视频帧接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
其中,所述的每个丢失RTP包可为接收到的所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包。
具体地,每个丢失的RTP包的净载V_lostBytes可以根据所述前相邻的RTP的净载包和后相邻的RTP包的净载的平均值来估计,参照公式(6):
V _ lostBytes = V _ receivedByte s t + V _ receivedByte s t - 1 + 1 2 - - - ( 6 )
其中,V_receivedBytest为接收到的各RTP包中与丢失的RTP包后相邻的RTP包的净载,V_receivedBytest-1为接收到的各RTP包中与丢失的RTP包前相邻的RTP包的净载。如果连续丢包,即连续丢失的RTP包数目大于1,则估计每个丢失的RTP包的净载V_lostBytes相等。举例来说,若连续接收到序列号分别为3和5的RTP包,判断丢失了序列号为4的RTP包,则根据上述公式估计序列号为4的RTP包的净载为序列号分别为3和5的RTP包的净载的平均值。又举例来说,若连续接收到序列号分别为3和7的RTP包,判断丢失了序列号分别为4、5、6的RTP包,则根据上述公式估计序列号为4、5、6的RTP包各自的净载均为序列号为3和7的RTP包的净载的平均值。
另外,还可以根据丢失的RTP包之前接收到的多个RTP包的净载的平均值来估计每个丢失的RTP包的净载,如丢失的RTP包之前所有接收到的RTP包的净载的平均值,或丢失的RTP包之前滑动窗内接收到的RTP包的净载的平均值。
进一步地,当前视频帧丢包但未整帧丢失有如下五种情况。
第一种情况:根据连续接收到的两个RTP包的序列号判断该两个RTP包之间有丢包,且根据该两个RTP包的时间戳确定均属于当前视频帧,即根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧。在此情况下,该两个RTP包之间所有丢失的RTP包分配给当前视频帧,具体地,根据公式(1)或(2)确定该两个RTP包之间丢失的RTP包的总个数V_lostPackets,确定所述当前视频帧中丢失的RTP包的个数等于V_lostPackets。
下面给出第一种情况的一个例子,即丢包例一。图2A为本发明实施例的丢包例一的示意图。如图2A所示,序列号(V_SN)为5的RTP包丢失,序列号为4和6的RTP包为连续接收到的RTP包,丢失的RTP包的总个数为1。当前视频帧(t_frame)被分配的RTP丢包数(V_lostPt_frame)为1。
第二种情况:根据连续接收到的两个RTP包的序列号判断该两个RTP包之间有丢包,根据该两个RTP包的时间戳确定前一RTP包属于当前视频帧的前一视频帧且后一RTP包属于当前视频帧且根据前一RTP包的marker位确定前一RTP包为所述前一视频帧的最后一个RTP包,即根据所述前相邻的RTP包和后相邻的RTP包的时间戳和marker位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包。在此情况下,该两个RTP包之间所有丢失的RTP包分配给当前视频帧,具体地,根据公式(1)或(2)获得该两个RTP包之间丢失的RTP包的总个数V_lostPackets,确定所述当前视频帧中丢失的RTP包的个数等于V_lostPackets。
下面给出第二种情况的一个例子,即丢包例二。图2B为本发明实施例的丢包例二的示意图。如图2B所示,序列号(V_SN)为3的RTP包丢失,序列号为2和4的RTP包为连续接收到的RTP包,序列号为2的RTP包是前一视频帧(t-1_frame)最后一个接收到的RTP包,且marker位(V_MB)为1,序列号为4的RTP包是当前视频帧(t_frame)第一个接收到的RTP包,丢失的RTP包的总个数为1。当前视频帧被分配的RTP丢包数(V_lostPt_frame)为1。
第三种情况:根据连续接收到的两个RTP包的序列号判断该两个RTP包之间有丢包,根据该两个RTP包的时间戳确定前一RTP包属于当前视频帧且后一RTP包属于与当前视频帧相邻的后一视频帧,且根据前一RTP包的marker位确定前一RTP包不是当前视频帧的最后一个RTP包,即根据所述前相邻的RTP包和后相邻的RTP包的时间戳和marker位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包。在此情况下,先根据公式(1)或(2)获得该连续接收到的两个RTP包之间丢失的RTP包的总个数V_lostPackets,将V_lostPackets个RTP包平均地分配给当前视频帧和后一个视频帧,再将平均分配剩下的丢失的RTP包分配给当前视频帧,即当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2,其中,int表示取整,%表示取模运算,即:%2表示除以2的余数。
下面给出第三种情况的三个例子,即丢包例三、四、五。图2C-2E分别为本发明实施例的丢包例三、四、五的示意图。
如图2C所示,丢包例三:序列号为5的RTP包丢失,序列号为4和6的RTP包为连续接收到的RTP包,序列号为4的RTP包是当前视频帧(t_frame)最后一个接收到的RTP包且marker位(V_MB)不为1,序列号为6的RTP包是与当前视频帧相邻的后一视频帧(t+1_frame)第一个接收到的RTP包,丢失RTP包的总个数V_lostPackets为1。所以,当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为int(1/2)+1%2=1,后一视频帧被分配的RTP丢包数(V_lostP_t+1_frame)为int(1/2)=0。
如图2D所示,丢包例四:序列号(V_SN)为5和6的RTP包丢失,序列号为4和7的RTP包为连续接收到的RTP包,序列号为4的RTP包是当前视频帧(t_frame)最后一个接收到的RTP包且marker位(V_MB)不为1,序列号为7的RTP包是与当前视频帧相邻的后一视频帧(t+1_frame)第一个接收到的RTP包,丢失的RTP包的总个数V_lostPackets为2。所以,当前视频帧(t_frame)被分配的RTP丢包数(V_lostP_t_frame)为int(2/2)+2%2=1,后一视频帧(t+1_frame)被分配的RTP丢包数(V_lostP_t+1_frame)为int(2/2)=1。
如图2E所示,丢包例五:序列号(V_SN)为4、5和6的RTP包丢失,序列号为3和7的RTP包为连续接收到的RTP包,序列号为3的RTP包是当前视频帧(t_frame)最后一个接收到的RTP包且marker位(V_MB)不为1,序列号为7的RTP包是与当前视频帧相邻的后一视频帧(t+1_frame)第一个接收到的RTP包,丢失RTP包的总个数V_lostPackets为3。所以,当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为int(3/2)+3%2=2,后一视频帧被分配的RTP丢包数(V_lostP_t+1_frame)为int(3/2)=1。
第四种情况:根据连续接收到的两个RTP包的序列号判断该两个RTP包之间有丢包,根据该两个RTP包的时间戳确定前一RTP包所属视频帧与当前视频帧不连续、后一RTP包属于当前视频帧、且根据前一RTP包的marker位确定前一RTP包是所属视频帧的最后一个RTP包,即根据所述前相邻的RTP包和后相邻的RTP包的时间戳和marker位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包。也就是说,在连续接收到的两个RTP包之间有整个视频视频帧丢失,在此种情况下,先根据公式(1)或(2)获得该两个RTP包之间丢失的RTP包的总个数V_lostPackets,以及根据公式(3)获得丢失的视频帧数V_lostFrames,再将丢失的RTP包平均分配给每个丢失的视频帧,最后将平均分配剩下的丢失的RTP包分配给当前视频帧,即当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
下面给出第四种情况的2个例子,即丢包例六、七。图2F、2G分别为本发明实施例的丢包例六、七的示意图。
如图2F所示,丢包例六:序列号(V_SN)为3、4、5和6的RTP包丢失,序列号为2和7的RTP包为连续接收到的RTP包,且时间戳不连续,序列号为2的RTP包是接收到的前一视频帧(t-3_frame)的最后一个接收到的RTP包且marker位(V_MB)为1,序列号为7的RTP包是当前视频帧(t_frame)的第一个接收到的RTP包,丢失RTP包的总个数V_lostPackets为4。若根据公式(3)得到丢失的整个视频帧的帧数V_lostFrames为2,则每个丢失的视频帧,即前两视频帧(t-2_frame)和前一视频帧(t-1_frame)各自被分配的RTP丢包数(V_lostP_lost_frame)均为int(V_lostPackets/V_lostFrames)=int(4/2)=2,当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为V_lostPackets%V_lostFrames=4%2=0。需要说明的是,由于当前视频帧之前有整帧丢失,因此,接收到的前一视频帧(t-3_frame)并非实际的前一视频帧(t-1_frame)。
如图2G所示,丢包例七:序列号(V_SN)为3、4、5、6和7的RTP包丢失,序列号为2和8的RTP包为连续接收到的RTP包,且时间戳不连续,序列号为2的RTP包是接收到的前一视频帧(t-3_frame)的最后一个接收到的RTP包且marker位(V_MB)为1,序列号为8的RTP包是当前视频帧(t_frame)的第一个接收到的RTP包,丢失的RTP包的总个数V_lostPackets为5。若根据公式(3)得到丢失的视频帧的帧数V_lostFrames为2,则每个丢失的视频帧,即前两视频帧(t-2_frame)和前一视频帧(t-1_frame)各自被分配的RTP丢包数(V_lostP_lost_frame)均为int(V_lostPackets/V_lostFrames)=int(5/2)=2,当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为V_lostPackets%V_lostFrames=5%2=1。
第五种情况:根据连续接收到的两个RTP包的序列号判断该两个RTP包之间有丢包,根据该两个RTP包的时间戳确定前一RTP包属于当前视频帧、后一RTP包所属视频帧与当前视频帧不连续、且根据前一RTP包的marker位确定前一RTP包不是当前视频帧的最后一个RTP包,即根据所述前相邻的RTP包和后相邻的RTP包的时间戳和marker位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包。在此种情况下,先根据公式(3)获得丢失的视频帧的帧数V_lostFrames,先分配一个丢失的RTP包给当前视频帧,再将其余的丢失的RTP包平均分配给每个丢失的视频帧,平均分配剩下的丢失的RTP包分配给后一RTP包所属视频帧,即接收到的后一视频帧,相当于当前视频帧中丢失的RTP包的个数为1。
下面给出第五种情况的2个例子,即丢包例八、九。图2H、2I分别为本发明实施例的丢包例八、九的示意图。
如图2H所示,丢包例八:序列号(V_SN)为2、3、4、5和6的RTP包丢失,序列号为1和7的RTP包为连续接收到的RTP包,且时间戳不连续,序列号为1的RTP包是当前视频帧(t_frame)的最后一个接收到的RTP包,且marker位(V_MB)不为1,序列号为7的RTP包是接收到的后一视频帧(t+3_frame)的第一个接收到的RTP包,丢失的RTP包的总个数V_lostPackets为5。若根据公式(3)得到丢失的视频帧的帧数V_lostFrames为2,当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为1,每个丢失的视频帧,即与当前视频帧相邻的后一视频帧(t+1_frame)和与后一视频帧相邻的后两视频帧(t+2_frame)各自被分配的RTP丢包数(V_lostP_lost_frame)均为int((V_lostPackets-1)/V_lostFrames)=int(4/2)=2,接收到的后一个视频帧被分配的RTP丢包数(V_lostP_t+3_frame)为(V_lostPackets-1)%V_lostFrames=4%2=0。需要说明的是,由于当前视频帧之后有整帧丢失,因此,接收到的后一视频帧(t+3_frame)并非实际上与当前视频帧相邻的后一视频帧(t+1_frame)。
如图2I所示,丢包例九:序列号(V_SN)为2、3、4、5、6和7的RTP包丢失,序列号为1和8的RTP包为连续接收到的RTP包,且时间戳不连续,序列号为1的RTP包是当前视频帧(t_frame)的最后一个接收到的RTP包,且marker位(V_MB)不为1,序列号为8的RTP包是接收到的后一视频帧(t+3_frame)的第一个接收到的RTP包,丢失的RTP包的总个数V_lostPackets为6。若根据公式(3)得到丢失的视频帧的帧数V_lostFrames为2,则当前视频帧被分配的RTP丢包数(V_lostP_t_frame)为1,每个丢失的整个视频帧,即与当前视频帧相邻的后一视频帧(t+1_frame)和与后一视频帧相邻的后两视频帧(t+2_frame)各自被分配的RTP丢包数(V_lostP_lost_frame)均为int((V_lostPackets-1)/V_lostFrames)=int(5/2)=2,接收到的后一个视频帧被分配的RTP丢包数(V_lostP_t+3_frame)为(V_lostPackets-1)%V_lostFrames=5%2=1。
另外,参照上述第四、五种情况,若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的整个视频的视频帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的marker位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
进一步地,还可以参照上述方法获得除第一个视频帧之外各视频帧的大小。
102、根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值。
具体地,为了降低计算的复杂度,只考虑之前的一个视频帧,即前一视频帧时,可以将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值;此时,变化特征值相当于斜率,用公式表示如下:
V_FGt_frame=(abs)(t_frame_size-t-1_frame_size)        (7)
其中,V_FGt_frame为当前视频帧的变化特征值,t_frame_size为当前视频帧的大小,t-1_frame_size为前一视频帧的大小,abs表示绝对值。
进一步地,还可以参照上述方法获得除第一视频帧之外各视频帧的变化特征值,也就是除第一视频帧之外的前一视频帧的变化特征值。
103、根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值。
具体地,103中可以根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。这里,所述当前视频帧与之前最近的一个I帧的距离,也就是当前视频帧与之前最近一个I帧相差的视频帧数。换句话说,本发明实施例中所述的距离是一个视频帧与另外一个视频帧之间相差的视频帧数,举例来说,若与所述前一视频帧相邻的前两视频帧为之前最近一个I帧,则所述当前视频帧与之前最近的一个I帧的距离为2。需要说明的是,本发明实施例中的I帧指的是帧内编码帧。
进一步地,若所述前两视频帧为之前最近的一个I帧,即当前视频帧与之前最近一个I帧的距离为2,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1],该(0,1]表示取值范围为大于零小于等于1。
这里的第一常数可以是个默认的固定值,比如2/3,也可以根据视频帧率和码率确定。具体地,可以将当前视频帧的大小作为码率,也可以将当前视频帧和之前至少一视频帧的大小的平均值作为码率。另外,也可将已检测出来的所有I帧的平均大小与第一常数的乘积作为所述当前视频帧的I帧阈值。
若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。相应地,用算法表示如下:
IF(V_FDI≤(int)videoFrameRate)THEN
V_IThresht_frame=V_IThresht-1_frame*ScaledFactor2
ELSE
V_IThresht_frame=V_IThresht-1_frame*ScaledFactor1
其中,V_FDI为当前视频帧与之前最近的一个I帧的距离,videoFrameRate为所述视频流的视频帧率,V_IThresht_frame为当前视频帧的I帧阈值,V_IThresht-1_frame为前一视频帧的I帧阈值,ScaledFactor1为第一缩放因子,ScaledFactor2为第二缩放因子。举例来说,ScaledFactor1取0.995,ScaledFactor2取0.985。
进一步地,还可以设置当V_FDI远大于videoFrameRate时的缩放因子,如设置V_FDI>2*videoFrameRate时的缩放因子为1,即V_IThresht_frame=V_IThresht-1_frame
或者,当V_FDI大于videoFrameRate时,V_IThresht_frame可以设置为不小于一个门限值,即:V_IThresht_frame=max(V_IThresht-1_frame*ScaledFactor1,MIN_VALUE),其中,MIN_VALUE为预设的一个门限值,如500,或者为根据码率、视频帧率得到的值,即可以自适应调整。
需要说明的是,若当前视频帧为所述视频流的第二个视频帧,则当前视频帧的前两视频帧不存在,则属于所述当前视频帧的前两视频帧不为之前最近的一个I帧的情况。
另外,若所述当前视频帧的前两视频帧不为之前最近的一个I帧,还可以将前一视频帧的I帧阈值乘以一个与视频帧率相关的常数的结果作为当前视频帧的I帧阈值。
进一步地,还可以参照上述方法获得除第一视频帧之外各视频帧的I帧阈值。
104、根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
具体地,若所述上一视频帧的大小与上上一视频帧的大小的比值或所述上一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述上一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述上一视频帧为I帧,否则判断所述上一视频帧不为I帧。
第二常数可以为一个默认的固定值,如1.5,优选地,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定,即可自适应调整。
需要说明的是,若所述当前视频帧为所述视频流的第二个视频帧,即前一视频帧为第一个视频帧,则判断所述前一视频帧为I帧。也就是说,第一个视频帧默认为I帧。
进一步地,判断所述前一视频帧为I帧之后还可以包括:
计算I帧的平均大小。
具体地,每当检测出一个I帧之后,更新I帧的平均大小。
进一步地,从当前视频帧为第二个视频帧到当前视频帧为最后一个视频帧,均使用上述方法判断当前视频帧的前一视频帧是否为I帧。进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
具体地,当前视频帧是否为最后一个视频帧可以通过是否接收到所述视频流的后续视频帧来判断,也可以通过视频帧结束指示来判断。第三常数可以为一个默认的固定值,如0.75,优选地,还可以根据码率、视频帧率和所述当前视频帧的位置确定,即可自适应调整。
进一步地,在101之前还可以包括:
获得所述第一个视频帧的大小;
确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1]。
确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
具体地,由于是否第一个视频帧是以接收到的顺序来说,接收到的所述视频流的第一个视频帧即为第一个视频帧,因此,第一个视频帧不存在丢失整帧的情况,且接收到的第一个RTP包之前是否有丢包通常也不考虑,因此,可以参照101中未丢包和丢包中的第一、三、五种情况,确定第一个视频帧的大小。第四常数举例来说可以为2/3。需要进一步说明的是,所述的当前视频帧以及所述的前一视频帧具体指相邻的两个视频帧之间的先后顺序,并不局限于现实时间顺序上的当前视频帧和前一视频帧,上述方法适用于任意相邻两个视频帧的所述变化特征值的获得、所述I帧阈值的获得以及所述帧类型的判断。换句话说,也就是可以在任意时间点启动针对相对于所述的任意时间点之前的是两个相邻的视频帧或者之后的两个相邻视频帧或者在所述任意时间点的两个相邻的视频帧的相关处理步骤,即所述的所述变化特征值的获得、所述I帧阈值的获得以及所述帧类型的判断。
需要说明的是,本发明实施例也适用于所述视频流以其他IP协议传输的场景。
本发明实施例通过根据当前视频帧和前一视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧、前一视频帧和前两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,即前两视频帧,解决了现有视频帧类型检测中基于之前的多个视频帧进行计算导致复杂度高、时延大的问题,且充分考虑了视频帧率的影响,使得检测结果更加准确。
图3为本发明实施例提供的又一种视频流的帧类型检测方法的流程示意图。如图3所示,该方法包括:
301、获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后。
301的具体实现参照上述实施例中的101。
302、根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值。
具体地,可以将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
303、根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值。
303的具体实现参照上述实施例中的103。
304、根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
具体地,若所述前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小的比值或所述前一视频帧的大小和所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或,
若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
第二常数可以为一个默认的固定值,如1.5,优选地,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定,即可自适应调整。
需要说明的是,若所述当前视频帧为开始所述视频流的帧类型检测后所所接收到的所述视频流中的第二个视频帧,即前一视频帧为第一个视频帧,则判断所述前一视频帧为I帧。也就是说,第一个视频帧默认为I帧。
进一步地,判断所述前一视频帧为I帧之后还可以包括:
计算I帧的平均大小。
具体地,每当检测出一个I帧之后,更新I帧的平均大小。
进一步地,从当前视频帧为第二个视频帧到当前视频帧为最后一个视频帧,均使用上述方法判断当前视频帧的前一视频帧是否为I帧。进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
具体地,当前视频帧是否为最后一个视频帧可以通过是否接收到所述视频流的后续视频帧来判断,也可以通过视频帧结束指示来判断。第三常数可以为一个默认的固定值,如0.75,优选地,还可以根据码率、视频帧率和所述当前视频帧的位置确定,即可自适应调整。
进一步地,在301之前还可以包括:
获得所述第一个视频帧的大小;
确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1]。
确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
具体地,由于是否第一个视频帧是以接收到的顺序来说,接收到的所述视频流的第一个视频帧即为第一个视频帧,因此,第一个视频帧不存在丢失整帧的情况,且接收到的第一个RTP包之前是否有丢包通常也不考虑,因此,可以参照101中未丢包和丢包中的第一、三、五种情况,确定第一个视频帧的大小。第四常数举例来说可以为2/3。
本发明实施例通过根据当前视频帧和之前至少两视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧和之前至少两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且充分考虑了视频帧率的影响,使得检测结果更加准确。
下面为实现本发明实施例提供的一种视频流的帧类型检测方法的伪代码示例,V_TNF表示总视频帧数包括丢失和接收到的视频帧数,例如:1表示为第一个视频帧,2表示为第二个视频帧。
Pseudo code is shown below:
int t_frame_size=0其中,t_frame_size表示当前视频帧大小;
int t-1_frame_size=0其中,t-1_frame_size表示前一视频帧大小;
int t-2_frame_size=0其中,t-2_frame_size表示前两视频帧大小;
图4为本发明实施例提供的一种帧大小检测方法的流程示意图。如图4所示,该方法包括:
401、若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载。
具体地,本发明实施例提供的帧大小检测装置检测帧的大小。该帧大小检测装置可以设置在网络设备或测试设备中,接收媒体流,媒体流中包含视频帧和/或音频帧。本实施例可以用来检测视频帧或音频帧的大小。视频帧包含至少一个视频RTP包,音频帧包含至少一个音频RTP包,RTP包的格式如图1所示,可通过RTP包头层的负载类型(payload type)和/或封装RTP包的用户数据包协议(User Datagram Protocol,简称UDP)层的目的端口(destination port)区分视频RTP包和音频RTP包。
具体地,由图1可知,RTP包的净载=RTP包的大小-RTP包头层的大小,其中RTP包的大小可由封装该RTP包的上一层协议信息(即UDP层)中获得,RTP包头层的大小可在接收到该RTP包后通过解析包头层来确定。
具体地,每个丢失的RTP包的净载V_lostBytes可以根据所述前相邻的RTP包和后相邻的RTP包的净载的平均值来估计,参照公式(6)。另外,还可以根据丢失的RTP包之前接收到的多个RTP包的净载的平均值来估计每个丢失的RTP包的净载,如丢失的RTP包之前所有接收到的RTP包的净载的平均值,或丢失的RTP包之前滑动窗内接收到的RTP包的净载的平均值。
402、根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets。
具体地,可以参照公式(1)或(2)获得V_lostPackets。
403、根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数。
具体地,连续接收到的两个RTP包之间发生丢包,有如下五种情况。
第一种情况:根据所述两个RTP包的时间戳确定所述两个RTP包属于同一帧,则确定该两个RTP包所属帧丢包但未整帧丢失,且该两个RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数V_lostPackets。具体参照图2A。
第二种情况:根据所述两个RTP包的时间戳和标记位确定两个RTP包分别属于两个连续的帧且前一RTP包为所属帧的最后一个RTP包,则确定后一RTP包所属帧丢包但未整帧丢失,且该后一RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数V_lostPackets。具体参照图2B。
第三种情况:根据所述两个RTP包的时间戳和标记位确定所述两个RTP包分别属于两个连续的帧且前一RTP包不是所属帧的最后一个RTP包,则确定所述前一RTP包所属帧和前一RTP包所属帧均丢包但未整帧丢失,且前一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2,后一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)。具体参照图2C-2E。
第四种情况:根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续、前一RTP包为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;确定所述两个RTP包所属帧之间的V_lostFrames个帧丢包且整帧丢失,后一个RTP包所属帧丢包但未整帧丢失,且确定各丢失的整帧中丢失的RTP包的个数为int(V_lostPackets/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为V_lostPackets%V_lostFrames。具体参照图2F、2G。
第五种情况:根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续、前一RTP包不为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳获得所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;确定所述两个RTP包所属帧之间的V_lostFrames个帧丢包且整帧丢失,两个RTP包所属帧均丢包但未整帧丢失,且确定所述前一RTP包所属帧中丢失的RTP包的个数为1,各丢失的整帧中丢失的RTP包的个数为int((V_lostPackets-1)/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为(V_lostPackets-1)%V_lostFrames。具体参照图2H、2I。
403的具体实现可以参照本发明实施例提供的一种帧类型检测方法中的101。
404、根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
具体地,对于有丢包但未整帧丢失的帧,根据该帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到该帧丢失的RTP包的总大小;同时,获得该帧中接收到的各RTP包的净载,将接收到的各RTP包的净载累加,得到该帧接收到的RTP包的总大小;将该帧丢失的RTP包的总大小和接收到的RTP包的总大小相加,得到该帧的大小。
对于整帧丢失的帧,则直接根据该帧中丢失的RTP包的个数和每个丢失的RTP包的净载,确定该帧的大小。
本发明实施例通过若确定接收到的两个RTP包之间发生丢包,则根据各接收到的RTP包的净载估计每个丢失的RTP包的净载,并根据所述两个RTP包的序列号获得所述两个RTP包之间丢失的RTP包的总个数,然后根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数,从而根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载得到丢包的各帧的大小,提供一种有效的检测有丢包的帧的大小的解决方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明实施例提供的一种视频流的帧类型检测装置的结构示意图。如图5所示,该装置包括:
帧大小获得模块51,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
特征提取模块52,用于根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
阈值获得模块53,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
类型判断模块54,用于根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
可选地,帧大小获得模块51具体用于:
若确定所述当前视频帧未丢包,则获得所述当前视频帧中各RTP包的的净载;
将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
可选地,帧大小获得模块51具体包括:
接收大小获得单元,用于若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小;
丢失大小获得单元,用于根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小;
帧大小获得单元,用于将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
进一步地,所述丢失大小获得单元具体用于:
获得所述前相邻的RTP包的净载和后相邻的RTP包的净载;
根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
进一步地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或,若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
可选地,帧大小获得模块54具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载确定所述当前视频帧的大小。
进一步地,特征提取模块52具体用于:
将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
进一步地,阈值获得模块53具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
进一步地,阈值获得模块53具体用于:
若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
可选地,阈值获得模块53具体用于:
若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
进一步地,类型判断模块54具体用于:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
进一步地,类型判断模块54具体用于:
若所述当前视频帧为第二个视频帧,则判断所述前一视频帧为I帧。
优选地,所述第二常数根据码率、帧率和所述当前视频帧的位置确定。
进一步地,所述装置还包括:
均值计算模块,用于在类型判断模块54判断所述前一视频帧为I帧之后,计算I帧的平均大小。
进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,类型判断模块54还用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
进一步地,帧大小获得模块51还用于:获得所述第一个视频帧的大小;
特征提取模块52还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];
阈值获得模块53还用于:确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
本实施例的具体实现参照本发明实施例提供的一种视频帧类型检测方法。本发明实施例通过根据当前视频帧和前一视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧、前一视频帧和前两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,即前两视频帧,解决了现有视频帧类型检测中基于之前的多个视频帧进行计算导致复杂度高、时延大的问题,且充分考虑了视频帧率的影响,使得检测结果更加准确。
图6为本发明实施例提供的又一种视频流的帧类型检测装置的结构示意图。如图6所示,该装置包括:
帧大小获得模块61,用于获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
特征提取模块62,用于根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
阈值获得模块63,用于根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
类型判断模块64,用于根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
可选地,帧大小获得模块61具体用于:
若确定所述当前视频帧未丢包,则获得所述当前视频帧中各RTP包的净载;
将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
可选地,帧大小获得模块61具体包括:
接收大小获得单元,用于若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小;
丢失大小获得单元,用于根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小;
帧大小获得单元,用于将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
进一步地,所述丢失大小获得单元具体用于:
获得所述前相邻的RTP包的净载和后相邻的RTP包的净载;
根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或,若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
可选地,帧大小获得模块61具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
进一步地,特征提取模块62具体用于:
将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
进一步地,阈值获得模块63具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
可选地,阈值获得模块63具体用于:
若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
可选地,阈值获得模块63具体用于:
若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
进一步地,类型判断模块64具体用于:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或,
若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
进一步地,类型判断模块64具体还用于:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
优选地,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
进一步地,所述装置还包括:
均值计算模块,用于在类型判断模块64判断所述前一视频帧为I帧之后,计算I帧的平均大小。
进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,类型判断模块64还用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
可选地,帧大小获得模块61还用于:获得所述第一个视频帧的大小;
特征提取模块62还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];
阈值获得模块63还用于:确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
本发明实施例通过根据当前视频帧和之前至少两视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧和之前至少两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且充分考虑了视频帧率的影响,使得检测结果更加准确。
图7为本发明实施例提供的一种帧大小检测装置的结构示意图。如图7所示,该装置包括:
净载估计模块71,用于若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
总丢失数获得模块72,用于根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets;
各丢失数估计模块73,用于根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;
帧大小检测模块74,用于根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
进一步地,净载估计模块71具体用于:
根据所述两个RTP包的净载的平均值估计每个丢失的RTP包的净载;或
根据丢失的RTP包之前接收到的多个RTP包的净载的平均值估计每个丢失的RTP包的净载。
进一步地,各丢失数估计模块73具体用于:
若根据所述两个RTP包的时间戳确定所述两个RTP包属于同一帧,或,若根据所述两个RTP包的时间戳和标记位确定两个RTP包分别属于两个连续的帧且前一RTP包为所属帧的最后一个RTP包,则确定后一RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数V_lostPackets。
可选地,各丢失数估计模块73具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包分别属于两个连续的帧且前一RTP包不是所属帧的最后一个RTP包,则确定所述前一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2,后一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)。
可选地,各丢失数估计模块73具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一RTP包为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳确定所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;
确定各丢失的整帧中丢失的RTP包的个数为int(V_lostPackets/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,各丢失数估计模块73具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一RTP包不为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳确定所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;
确定所述前一RTP包所属帧中丢失的RTP包的个数为1,各丢失的整帧中丢失的RTP包的个数为int((V_lostPackets-1)/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为(V_lostPackets-1)%V_lostFrames。
本实施例的具体实现参照本发明实施例提供的一种帧大小检测方法。本发明实施例通过若确定接收到的两个RTP包之间发生丢包,则根据各接收到的RTP包的净载估计每个丢失的RTP包的净载,并根据所述两个RTP包的序列号获得所述两个RTP包之间丢失的RTP包的总个数,然后根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数,从而根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载得到丢包的各帧的大小,提供一种有效的检测有丢包的帧的大小的解决方案。
图8为本发明实施例提供的另一种视频流的帧类型检测装置的结构示意图。如图8所示,该装置800包括:
存储器81,用于存储指令;
处理器82,与所述存储器耦合,处理器82被配置为执行存储在存储器81中的指令,其中,处理器82被配置为用于:
获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
根据当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值;
根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧。
可选地,处理器82被配置为具体用于:
若确定所述当前视频帧未丢包,则获得所述当前视频帧中各RTP包的的净载;
将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
可选地,处理器82被配置为具体用于:
若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小;
根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小;
将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
进一步地,处理器82被配置为具体用于:
获得所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包的净载和后相邻的RTP包的净载;
根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
进一步地,处理器82被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或,若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
可选地,处理器82被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2。
可选地,处理器82被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,处理器82被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
可选地,处理器82被配置为具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载确定所述当前视频帧的大小。
进一步地,处理器82被配置为还具体用于:
将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
进一步地,处理器82被配置为还具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
进一步地,处理器82被配置为具体用于:
若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
可选地,处理器82被配置为具体用于:
若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
进一步地,处理器82被配置为还具体用于:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
进一步地,处理器82被配置为具体用于:
若所述当前视频帧为第二个视频帧,则判断所述前一视频帧为I帧。
优选地,所述第二常数根据码率、帧率和所述当前视频帧的位置确定。
进一步地,处理器82被配置为还用于:
在判断所述前一视频帧为I帧之后,计算I帧的平均大小。
进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,处理器82被配置为还用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
进一步地,处理器82被配置为还用于:获得所述第一个视频帧的大小;确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
本实施例的具体实现参照本发明实施例提供的一种视频帧类型检测方法。本发明实施例通过根据当前视频帧和前一视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧、前一视频帧和前两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且使得在检测前一视频帧的帧类型时可以只考虑其之前的一个视频帧,即前两视频帧,解决了现有视频帧类型检测中基于之前的多个视频帧进行计算导致复杂度高、时延大的问题,且充分考虑了视频帧率的影响,使得检测结果更加准确。
图9为本发明实施例提供的再一种视频流的帧类型检测装置的结构示意图。如图9所示,该装置900包括:
存储器91,用于存储指令;
处理器92,与所述存储器耦合,处理器92被配置为执行存储在存储器91中的指令,其中,处理器92被配置为用于:
获得当前视频帧的大小,所述当前视频帧位于所述视频流的第一个视频帧之后;
根据当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值;
根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值;
根据所述当前视频帧的变化特征值和与所述当前视频帧相邻的前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧。
可选地,处理器92被配置为具体用于:
若确定所述当前视频帧未丢包,则获得所述当前视频帧中各RTP包的净载;
将所述当前视频帧中各RTP包的净载累加,得到所述当前视频帧的大小。
可选地,处理器92被配置为具体用于:
若确定所述当前视频帧丢包且未整帧丢失,则获得所述当前视频帧中接收到的各RTP包的净载,将所述当前视频帧中接收到的各RTP包的净载累加,得到所述当前视频帧接收到的RTP包的总大小;
根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数,根据每个丢失的RTP包的净载和所述当前视频帧中丢失的RTP包的个数得到所述当前视频帧丢失的RTP包的总大小;
将所述当前视频帧的接收到的RTP包的总大小和丢失的RTP包的总大小相加,得到所述当前视频帧的大小。
进一步地,处理器92被配置为具体用于:
获得所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包的净载和后相邻的RTP包的净载;
根据所述前相邻的RTP包的净载和后相邻的RTP包的净载的平均值估计每个丢失的RTP包的净载。
可选地,处理器92被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳确定所述前相邻的RTP包和后相邻的RTP包均属于所述当前视频帧,或,若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述前一视频帧且后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所述前一视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
可选地,处理器92被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2。
可选地,处理器92被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧且所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,处理器92被配置为还具体用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
可选地,处理器92被配置为具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
进一步地,处理器92被配置为还具体用于:
将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
进一步地,处理器92被配置为还具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
可选地,处理器92被配置为具体用于:
若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
可选地,处理器92被配置为具体用于:
若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
进一步地,处理器92被配置为还具体用于:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或,
若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
进一步地,处理器92被配置为还具体用于:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
优选地,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
进一步地,处理器92被配置为还用于:
在判断所述前一视频帧为I帧之后,计算I帧的平均大小。
进一步地,若所述当前视频帧为所述视频流的最后一个视频帧,处理器92被配置为还具体用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
可选地,处理器92被配置为还用于:获得所述第一个视频帧的大小;确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
本发明实施例通过根据当前视频帧和之前至少两视频帧的大小获得所述当前视频帧的变化特征值,根据视频帧率和所述当前视频帧的位置获得所述当前视频帧的I帧阈值,根据所述当前视频帧和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧和之前至少两视频帧的大小判断所述前一视频帧是否为I帧,提供了一套完整有效的检测帧类型的方法,并且充分考虑了视频帧率的影响,使得检测结果更加准确。
图10为本发明实施例提供的又一种帧大小检测装置的结构示意图。如图10所示,该装置1000包括:
存储器11,用于存储指令;
处理器12,与所述存储器耦合,处理器12被配置为执行存储在存储器11中的指令,其中,处理器12被配置为用于:
若确定接收到的两个RTP包之间发生丢包,则获得各接收到的RTP包的净载,根据各接收到的RTP包的净载估计每个丢失的RTP包的净载;
根据所述两个RTP包的序列号,获得所述两个RTP包之间丢失的RTP包的总个数V_lostPackets;
根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数;
根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载,得到丢包的各帧的大小。
进一步地,处理器12被配置为具体用于:
根据所述两个RTP包的净载的平均值估计每个丢失的RTP包的净载;或
根据丢失的RTP包之前接收到的多个RTP包的净载的平均值估计每个丢失的RTP包的净载。
进一步地,处理器12被配置为还具体用于:
若根据所述两个RTP包的时间戳确定所述两个RTP包属于同一帧,或,若根据所述两个RTP包的时间戳和标记位确定两个RTP包分别属于两个连续的帧且前一RTP包为所属帧的最后一个RTP包,则确定后一RTP包所属帧丢失的RTP包的个数等于丢失的RTP包的总个数V_lostPackets。
可选地,处理器12被配置为还具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包分别属于两个连续的帧且前一RTP包不是所属帧的最后一个RTP包,则确定所述前一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2,后一RTP包所属帧中丢失的RTP包的个数为int(V_lostPackets/2)。
可选地,处理器12被配置为还具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一RTP包为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳确定所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;
确定各丢失的整帧中丢失的RTP包的个数为int(V_lostPackets/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为V_lostPackets%V_lostFrames。
可选地,处理器12被配置为还具体用于:
若根据所述两个RTP包的时间戳和标记位确定所述两个RTP包属于不同的帧且所属帧不连续以及前一RTP包不为所属帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述两个RTP包的时间戳确定所述两个RTP包所属帧之间丢失的整帧数V_lostFrames;
确定所述前一RTP包所属帧中丢失的RTP包的个数为1,各丢失的整帧中丢失的RTP包的个数为int((V_lostPackets-1)/V_lostFrames),后一RTP包所属帧丢失的RTP包的个数为(V_lostPackets-1)%V_lostFrames。
本实施例的具体实现参照本发明实施例提供的一种帧大小检测方法。本发明实施例通过若确定接收到的两个RTP包之间发生丢包,则根据各接收到的RTP包的净载估计每个丢失的RTP包的净载,并根据所述两个RTP包的序列号获得所述两个RTP包之间丢失的RTP包的总个数,然后根据所述丢失的RTP包的总个数V_lostPackets、两个RTP包的时间戳和标记位,估计丢包的各帧中丢失的RTP包的个数,从而根据丢包的各帧中丢失的RTP包的个数和每个丢失的RTP包的净载得到丢包的各帧的大小,提供一种有效的检测有丢包的帧的大小的解决方案。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (76)

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_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
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包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
8.根据权利要求3所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续以及且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
9.根据权利要求1所述的方法,其特征在于,所述获得当前视频帧的大小具体包括:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述根据所述当前视频帧的大小和与所述当前视频帧相邻的前一视频帧的大小,获得所述当前视频帧的变化特征值具体包括:
将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
11.根据权利要求1-9中任一项所述的方法,其特征在于,所述根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值具体包括:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得当前视频帧的I帧阈值。
12.根据权利要求11所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括:
若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
13.根据权利要求11所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括:
若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
14.根据权利要求1-9中任一项所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧具体包括:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
15.根据权利要求14所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小、前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小判断所述前一视频帧是否为I帧具体还包括:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述当前视频帧的前一视频帧为I帧。
16.根据权利要求14所述的方法,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
17.根据权利要求15所述的方法,其特征在于,所述判断所述前一视频帧为I帧之后还包括:
计算I帧的平均大小。
18.根据权利要求17所述的方法,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
19.根据权利要求1-9中任一项所述的方法,其特征在于,所述获得当前视频帧的大小之前,还包括:
获得所述第一个视频帧的大小;
确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];
确定第一个视频帧的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_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
25.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包属于所述当前视频帧且后相邻的RTP包属于与所述当前视频帧相邻的后一视频帧以及所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则根据所述前相邻的RTP包和后相邻的RTP包的序列号获得所述前相邻的RTP包和后相邻的RTP包之间丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为int(V_lostPackets/2)+V_lostPackets%2。
26.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定所述前相邻的RTP包所属视频帧与所述当前视频帧不连续且所述后相邻的RTP包属于所述当前视频帧以及所述前相邻的RTP包为所属视频帧的最后一个RTP包,则根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的序列号、时间戳获得所述前相邻的RTP包和后相邻的RTP包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
27.根据权利要求22所述的装置,其特征在于,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续以及所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
28.根据权利要求20所述的装置,其特征在于,所述帧大小获得模块具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames、丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
29.根据权利要求20-28中任一项所述的装置,其特征在于,所述特征提取模块具体用于:
将所述当前视频帧的大小和前一视频帧的大小的差值的绝对值,作为所述当前视频帧的变化特征值。
30.根据权利要求20-28中任一项所述的装置,其特征在于,所述阈值获得模块具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
31.根据权利要求30所述的装置,其特征在于,所述阈值获得模块具体用于:
若所述前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
32.根据权利要求30所述的装置,其特征在于,所述阈值获得模块具体用于:
若所述前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
33.根据权利要求20-28中任一项所述的装置,其特征在于,所述类型判断模块具体用于:
若所述前一视频帧的大小与前两视频帧的大小的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
34.根据权利要求33所述的装置,其特征在于,所述类型判断模块具体用于:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
35.根据权利要求33所述的装置,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
36.根据权利要求34所述的装置,其特征在于,还包括:
均值计算模块,用于在所述类型判断模块判断所述前一视频帧为I帧之后,计算I帧的平均大小。
37.根据权利要求36所述的装置,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,所述类型判断模块还用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
38.根据权利要求20-28中任一项所述的装置,其特征在于,所述帧大小获得模块还用于:获得所述第一个视频帧的大小;
所述特征提取模块还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(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_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
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包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
46.根据权利要求41所述的方法,其特征在于,所述根据所有接收到的各RTP包中与所述当前视频帧中丢失的RTP包前相邻的RTP包和后相邻的RTP包,估计所述当前视频帧中丢失的RTP包的个数具体包括:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
47.根据权利要求39所述的方法,其特征在于,所述获得当前视频帧的大小具体包括:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames、丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
48.根据权利要求39-47中任一项所述的方法,其特征在于,所述根据所述当前视频帧的大小和之前至少两视频帧的大小,获得所述当前视频帧的变化特征值具体包括:
将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
49.根据权利要求39-47中任一项所述的方法,其特征在于,所述根据视频帧率和所述当前视频帧的位置,获得所述当前视频帧的I帧阈值具体包括:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得当前视频帧的I帧阈值。
50.根据权利要求49所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括:
若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
51.根据权利要求49所述的方法,其特征在于,所述根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值具体包括:
若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
52.根据权利要求39-47中任一项所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧具体包括:
若所述前一视频帧的大和与所述前一视频帧相邻的前两视频帧的大小的比值或所述前一视频帧的大小和所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或,
若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
53.根据权利要求52所述的方法,其特征在于,所述根据所述当前视频帧的变化特征值和前一视频帧的变化特征值、当前视频帧的I帧阈值、所述当前视频帧的大小和之前至少两视频帧的大小判断所述前一视频帧是否为I帧具体还包括:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
54.根据权利要求52所述的方法,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
55.根据权利要求53所述的方法,其特征在于,所述判断所述前一视频帧为I帧之后还包括:
计算I帧的平均大小。
56.根据权利要求55所述的方法,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,则所述方法还包括:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
57.根据权利要求39-47中任一项所述的方法,其特征在于,所述获得当前视频帧的大小之前,还包括:
获得所述第一个视频帧的大小;
确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];
确定第一个视频帧的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_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets。
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包之间丢失的视频帧的帧数V_lostFrames和丢失的RTP包的总个数V_lostPackets;
确定所述当前视频帧中丢失的RTP包的个数为V_lostPackets%V_lostFrames。
65.根据权利要求60所述的装置,其特征在于,所述丢失大小获得单元具体还用于:
若根据所述前相邻的RTP包和后相邻的RTP包的时间戳和标记位确定前相邻的RTP包属于所述当前视频帧且后相邻的RTP包所属视频帧与所述当前视频帧不连续且所述前相邻的RTP包不是所述当前视频帧的最后一个RTP包,则确定所述当前视频帧中丢失的RTP包的个数为1。
66.根据权利要求58所述的装置,其特征在于,所述帧大小获得模块具体用于:
若确定所述当前视频帧整帧丢失,则根据所有接收到的各RTP包中与所述当前视频帧前相邻的RTP包和后相邻的RTP包估计每个丢失的RTP包的净载,根据视频帧率、RTP包的时钟频率和所述前相邻的RTP包和后相邻的RTP包的时间戳、序列号获得所述前相邻的RTP包和后相邻的RTP包所属视频帧之间丢失的视频帧的帧数V_lostFrames、丢失的RTP包的总个数V_lostPackets;
若根据所述前相邻的RTP包的标记位确定所述前相邻的RTP包为所述前相邻的RTP包所属视频帧的最后一个RTP包,则确定所述当前视频帧中RTP包的个数为int(V_lostPackets/V_lostFrames),否则确定所述当前视频帧中RTP包的个数为int((V_lostPackets-1)/V_lostFrames);
根据所述当前视频帧中RTP包的个数和每个丢失的RTP包的净载得到所述当前视频帧的大小。
67.根据权利要求58-66中任一项所述的装置,其特征在于,所述特征提取模块具体用于:
将所述当前视频帧的大小和之前至少两视频帧的大小的差值的均值的绝对值或将所述当前帧的大小和之前至少两视频帧的大小的差值的绝对值的均值,作为所述当前视频帧的变化特征值。
68.根据权利要求58-66中任一项所述的装置,其特征在于,所述阈值获得模块具体用于:
根据视频帧率、所述当前视频帧与之前最近的一个I帧的距离,获得所述当前视频帧的I帧阈值。
69.根据权利要求68所述的装置,其特征在于,所述阈值获得模块具体用于:
若与所述前一视频帧相邻的前两视频帧为之前最近的一个I帧,则确定所述当前视频帧的I帧阈值为所述之前最近一个I帧的大小与第一常数的乘积,所述第一常数的取值范围为(0,1]。
70.根据权利要求68所述的装置,其特征在于,所述阈值获得模块具体用于:
若与所述前一视频帧相邻的前两视频帧不为之前最近的一个I帧,则判断所述当前视频帧与之前最近的一个I帧的距离是否大于所述视频帧率,若大于则将所述前一视频帧的I帧阈值和第一缩放因子的乘积确定为所述当前视频帧的I帧阈值,若不大于则将所述前一视频帧的I帧阈值和第二缩放因子的乘积确定为所述当前视频帧的I帧阈值;其中,所述第一缩放因子、第二缩放因子的取值范围为(0,1],所述第一缩放因子大于所述第二缩放因子。
71.根据权利要求58-66中任一项所述的装置,其特征在于,所述类型判断模块具体还用于:
若所述前一视频帧的大小和与所述前一视频帧相邻的前两视频帧的大小的比值或所述前一视频帧的大小和所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧;或,
若所述前一视频帧的大小与所述前一视频帧之前至少两视频帧的大小的均值的比值或所述前一视频帧的大小与所述当前视频帧的大小的比值大于第二常数,且所述当前视频帧的变化特征值大于所述当前视频帧的I帧阈值,且所述前一视频帧的变化特征值大于所述当前视频帧的I帧阈值,则判断所述前一视频帧为I帧,否则判断所述前一视频帧不为I帧。
72.根据权利要求71所述的装置,其特征在于,所述类型判断模块具体用于:
若所述当前视频帧为所述视频流的第二个视频帧,则判断所述前一视频帧为I帧。
73.根据权利要求71所述的装置,其特征在于,所述第二常数根据码率、视频帧率和所述当前视频帧的位置确定。
74.根据权利要求72所述的装置,其特征在于,还包括:
均值计算模块,用于在所述类型判断模块判断所述前一视频帧为I帧之后,计算I帧的平均大小。
75.根据权利要求74所述的装置,其特征在于,若所述当前视频帧为所述视频流的最后一个视频帧,所述类型判断模块还用于:
若所述当前视频帧与所述I帧的平均大小的比值大于第三常数,则判断所述当前视频帧为I帧,否则判断所述当前视频帧不为I帧,所述第三常数大于0。
76.根据权利要求58-66中任一项所述的装置,其特征在于,所述帧大小获得模块还用于:获得所述第一个视频帧的大小;
所述特征提取模块还用于:确定第一个视频帧的变化特征值为所述第一个视频帧的大小与第四常数的乘积,所述第四常数的取值范围为(0,1];
所述阈值获得模块还用于:确定第一个视频帧的I帧阈值等于所述第一个视频帧的变化特征值。
CN201210298928.3A 2012-08-21 2012-08-21 视频流的帧类型检测、帧大小检测方法及装置 Active CN103634698B (zh)

Priority Applications (12)

Application Number Priority Date Filing Date Title
CN201410667892.0A CN104394485B (zh) 2012-08-21 2012-08-21 视频流的帧大小检测方法及装置
CN201210298928.3A CN103634698B (zh) 2012-08-21 2012-08-21 视频流的帧类型检测、帧大小检测方法及装置
KR1020147031406A KR101603862B1 (ko) 2012-08-21 2013-08-19 비디오 스트림의 프레임 유형 및 프레임 크기를 검출하기 위한 방법 및 디바이스
ES16193850T ES2741851T3 (es) 2012-08-21 2013-08-19 Método de detección del tipo de trama para flujo de vídeo
SG11201406597VA SG11201406597VA (en) 2012-08-21 2013-08-19 Frame type detection and frame size detection methods and apparatuses for video stream
PCT/CN2013/081781 WO2014029310A1 (zh) 2012-08-21 2013-08-19 视频流的帧类型检测、帧大小检测方法及装置
ES13831640.1T ES2620640T3 (es) 2012-08-21 2013-08-19 Método y dispositivo para detectar el tipo de trama y el tamaño de trama de un flujo de vídeo
EP13831640.1A EP2830317B1 (en) 2012-08-21 2013-08-19 Method and device for detecting frame type and frame size of video stream
JP2015511928A JP5994193B2 (ja) 2012-08-21 2013-08-19 ビデオ・ストリームのフレーム・タイプ検出方法および装置ならびにフレーム・サイズ検出方法および装置
EP16193850.1A EP3203733B1 (en) 2012-08-21 2013-08-19 Frame type detection method for video stream
HK14107676.0A HK1194576A1 (zh) 2012-08-21 2014-07-28 視頻流的幀類型檢測、幀大小檢測方法及裝置
US14/469,953 US9571862B2 (en) 2012-08-21 2014-08-27 Frame type detection and frame size detection methods and apparatuses for video stream

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210298928.3A CN103634698B (zh) 2012-08-21 2012-08-21 视频流的帧类型检测、帧大小检测方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201410667892.0A Division CN104394485B (zh) 2012-08-21 2012-08-21 视频流的帧大小检测方法及装置

Publications (2)

Publication Number Publication Date
CN103634698A CN103634698A (zh) 2014-03-12
CN103634698B true CN103634698B (zh) 2014-12-03

Family

ID=50149436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210298928.3A Active CN103634698B (zh) 2012-08-21 2012-08-21 视频流的帧类型检测、帧大小检测方法及装置

Country Status (9)

Country Link
US (1) US9571862B2 (zh)
EP (2) EP2830317B1 (zh)
JP (1) JP5994193B2 (zh)
KR (1) KR101603862B1 (zh)
CN (1) CN103634698B (zh)
ES (2) ES2741851T3 (zh)
HK (1) HK1194576A1 (zh)
SG (1) SG11201406597VA (zh)
WO (1) WO2014029310A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713842B (zh) * 2015-11-16 2019-07-02 晶睿通讯股份有限公司 影像处理方法及其摄影机

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547300B (zh) * 2010-12-17 2015-01-21 华为技术有限公司 帧类型的检测方法和装置
US9794375B2 (en) * 2013-03-14 2017-10-17 Openwave Mobility, Inc. Method, apparatus, and non-transitory computer medium for obtaining a required frame size for a compressed data frame
US10349057B2 (en) * 2015-04-01 2019-07-09 Cox Communications, Inc. Systems and methods for optimizing video coding efficiency based on characteristics of video content
US10298509B2 (en) * 2016-03-17 2019-05-21 Telefonaktiebolaget Lm Ericsson (Publ) Managing a sequence number range for radio link control entities in a radio access network during an on-going connection
CN105915904A (zh) * 2016-05-23 2016-08-31 北京中兴高达通信技术有限公司 一种宽带集群呼叫业务的视频流Qos控制方法
US10440087B2 (en) 2016-08-01 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Estimation of losses in a video stream
CN106878703B (zh) * 2017-03-14 2019-01-04 珠海全志科技股份有限公司 一种行车记录仪录像检测方法
KR20190065792A (ko) * 2017-12-04 2019-06-12 삼성전자주식회사 전자 장치 및 전자 장치의 영상 데이터 전송 방법
CN110213614B (zh) * 2019-05-08 2021-11-02 北京字节跳动网络技术有限公司 从视频文件中提取关键帧的方法和装置
CN111953961A (zh) * 2020-06-30 2020-11-17 武汉烽火众智数字技术有限责任公司 一种基于国标视频播放问题分析方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101426137A (zh) * 2008-11-25 2009-05-06 上海华为技术有限公司 一种视频帧类型的识别方法和装置
CN101558657A (zh) * 2007-08-22 2009-10-14 日本电信电话株式会社 视频质量估计装置、视频质量估计方法、帧类型确定方法及记录介质
WO2012013655A1 (en) * 2010-07-30 2012-02-02 Deutsche Telekom Ag Method for estimating the type of the group of picture structure of a plurality of video frames in a video stream

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4232114B2 (ja) 2006-02-17 2009-03-04 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム
EP1995961A4 (en) 2006-03-14 2012-08-15 Sony Corp IMAGE PROCESSING DEVICE AND METHOD
EP2206303B1 (en) * 2007-07-16 2013-03-06 Telchemy, Incorporated Method and system for viewer quality estimation of packet video streams
US8254449B2 (en) * 2008-08-29 2012-08-28 Georgia Tech Research Corporation Video traffic bandwidth prediction
ES2592811T3 (es) * 2008-11-04 2016-12-01 Telefonaktiebolaget L M Ericsson (Publ) Método y sistema para determinar un valor de calidad de un flujo continuo de vídeo
CN102547300B (zh) * 2010-12-17 2015-01-21 华为技术有限公司 帧类型的检测方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101558657A (zh) * 2007-08-22 2009-10-14 日本电信电话株式会社 视频质量估计装置、视频质量估计方法、帧类型确定方法及记录介质
CN101426137A (zh) * 2008-11-25 2009-05-06 上海华为技术有限公司 一种视频帧类型的识别方法和装置
WO2012013655A1 (en) * 2010-07-30 2012-02-02 Deutsche Telekom Ag Method for estimating the type of the group of picture structure of a plurality of video frames in a video stream

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713842B (zh) * 2015-11-16 2019-07-02 晶睿通讯股份有限公司 影像处理方法及其摄影机

Also Published As

Publication number Publication date
JP5994193B2 (ja) 2016-09-21
WO2014029310A1 (zh) 2014-02-27
CN103634698A (zh) 2014-03-12
EP3203733A1 (en) 2017-08-09
KR20150009968A (ko) 2015-01-27
EP2830317A4 (en) 2015-07-08
ES2741851T3 (es) 2020-02-12
KR101603862B1 (ko) 2016-03-16
SG11201406597VA (en) 2014-11-27
EP2830317B1 (en) 2017-01-11
EP3203733B1 (en) 2019-05-22
ES2620640T3 (es) 2017-06-29
EP2830317A1 (en) 2015-01-28
JP2015524188A (ja) 2015-08-20
US20150003530A1 (en) 2015-01-01
HK1194576A1 (zh) 2014-10-17
US9571862B2 (en) 2017-02-14

Similar Documents

Publication Publication Date Title
CN103634698B (zh) 视频流的帧类型检测、帧大小检测方法及装置
CN101911714B (zh) 视频质量估计设备、方法
CN102056004B (zh) 一种视频质量评估方法、设备及系统
US8001260B2 (en) Flow-rate adaptation for a connection of time-varying capacity
US7436772B2 (en) Available bandwidth estimation
AU2014404319B2 (en) Methods and apparatus to predict end of streaming media using a prediction model
CN104618195B (zh) 带宽估测方法和装置
US8582453B2 (en) System for measuring the transmission bandwidth for multimedia streaming and method for same
US20120201310A1 (en) Video quality estimation apparatus, video quality estimation method, and program
US20100023635A1 (en) Data streaming through time-varying transport media
US20150341248A1 (en) Method for detecting network transmission status and related device
US10063922B2 (en) Performance metrics for downloads of encrypted video
CN102547300B (zh) 帧类型的检测方法和装置
US8873590B2 (en) Apparatus and method for correcting jitter
JP2007208327A (ja) 通信負荷密度測定システム、通信負荷密度測定方法、送信装置、受信装置、及びコンピュータプログラム
CN102106112A (zh) 用于时变容量的连接的流速率适应
WO2011025502A1 (en) Reducing communication delay of video data
CN104394485A (zh) 视频流的帧类型检测、帧大小检测方法及装置
CN104185081B (zh) 在使用实时传输协议包播放的图像中显示时间的方法
CN103595593A (zh) 一种基于探针测量mdi的系统及方法
CN101835058B (zh) 视频体验质量的检测方法、系统和设备
CN105491403A (zh) 用于评估视频实时传输质量的方法和系统
CN1679268A (zh) 用于细长传输信道的速率控制协议
JP4823253B2 (ja) ユーザ体感品質測定装置、ユーザ体感品質測定方法およびプログラム
US20200296443A1 (en) Transmission device, reception device, and video distribution method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1194576

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1194576

Country of ref document: HK