面向画面画质较小损失的rtp视频流数据包重组方法

文档序号:7822348阅读:379来源:国知局
面向画面画质较小损失的rtp视频流数据包重组方法
【专利摘要】本发明公开了一种面向画面画质较小损失的RTP视频流数据包重组方法,在理想情况下顺序处理;在网络信号不稳定时,包括四种方式,方式1、若待解视频包与接收视频包序号相差在15以内;方式2、若待解视频包与接收视频包序号相差在15至100之间;方式3、若待解视频包与接收视频包序号相差多于100个号;方式4、若待解视频包与接收视频包序号相差小于0,区分是视频包序号重新开始,还是视频包乱序。本发明方法通过对相应序号不同情况的分类处理,在不考虑网络环境下快速完成网络视频排序,最大限度保证播放的流畅度和准确性,提高视频排序效率。
【专利说明】
面向画面画质较小损失的RTP视频流数据包重组方法

【技术领域】
[0001]本发明属于网络视频流可靠传输【技术领域】,涉及一种面向画面画质较小损失的RTP视频流数据包重组方法。

【背景技术】
[0002]随着网络多媒体技术的深入发展,实时直播、视频监控已经成为一个庞大产业。目前,视频流媒体技术广泛用于互联网多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务的方方面面。
[0003]流媒体是以流的方式在网络中传输音频、视频和多媒体文件的一种形式。流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向用户计算机连续、实时传送。用户无需将整个文件下载完毕,只需经过较短时间的启动延时即可在用户计算机上利用相应的播放器对压缩的视频或音频等流式媒体文件进行播放,剩余的部分将继续进行下载,直至播放完毕。这个过程的一系列相关的包称为“流”。
[0004]传输协议是流媒体技术的一个重要组成部分,也是基础组成部分。它包括"RSVP"(资源预留协议)、"RTP"(实时传输协议)、"RTCP"(实时传输控制协议)、"RTSP"(实时流协议),这四种协议构成了 〃real-time〃服务的基础。其中,RTP (Real-time TransportProtocol,实时传输协议)是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。
[0005]RTP协议为数据提供了具有实时特征的端对端传送服务,RTP视频传输往往基于UDP协议,以便使用其多路结点和校验服务;这两种协议都提供了传输层协议的功能。但是RTP可以与其它适合的底层网络或传输协议一起使用。另外,RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。
[0006]RTP报文由两部分组成,即报头和有效载荷。
[0007]目前普遍使用的RTP视频数据包排序方法是基于序列号进行排序,用序号进行排序可以保证视频播放的连续性,但在网络条件较差的情况下,由于接收端长时间的等待某一序号的视频包,视频解析无法持续进行,导致视频画面停止及视频播放中断,甚至关闭,而通过重新加载视频的方法,性能会大幅度下降。
[0008]基于UDP的数据传输大量数据容易差生丢包、乱序。传输过程中NALU分片容易丢失,会导致视频数据的不连续。


【发明内容】

[0009]本发明的目的是提供一种面向画面画质较小损失的RTP视频流数据包重组方法,解决了现有技术采用基于序列号进行排序,但在网络条件较差的情况下,由于接收端长时间的等待某一序号的视频包,视频解析无法持续进行,导致视频画面停止及视频播放中断,甚至关闭的问题。
[0010]本发明所采用的技术方案是,一种面向画面画质较小损失的RTP视频流数据包重组方法,该方法按照以下步骤实施:
[0011]发送端发送N个视频流封包,序号为0,1,2, 3, - ,Ν, Ν<1000,
[0012]在网络信号稳定的理想情况下,接收端开始接收,需要解析0号视频包,如果接收到的第一个包为0号视频包,则直接进行解析播放,之后则需要等待1号视频包,接到第二个包为1号视频包时,继续进行解析播放,依次类推,等待Ν号视频包,如接收到为Ν号视频包,则直接解析播放,即待解视频包与接收视频包对等,顺序处理;
[0013]在网络信号不稳定的情况下,接收端没有按照顺序接收待解包,假设接收端当前待解包为Μ号视频包,而当前收到的包为Κ号视频包,则根据具体情况包括以下四种方式:
[0014]方式1、若0〈Κ-Μ< 15,即待解视频包与接收视频包序号相差在15以内,则将接收到的视频包暂存入哈希表中,然后在哈希表中查找当前所需的待解视频包,即Μ号视频包,如果查找到待解的视频包,则直接对Μ号视频包进行解析播放,并在哈希表中删除Μ号视频包,以保持哈希表中存在较少的元素,如果没有搜索到Μ号视频包,则继续等待下一个接收的视频包;
[0015]方式2、若15〈Κ-Μ ( 100,即待解视频包与接收视频包序号相差在15至100之间,则将接收到的视频包暂存入哈希表中,然后在哈希表中从Μ号视频包开始查找缓存,一个一个处理组成NALU,直到处理到Κ号视频包为止;
[0016]方式3、若Κ-Μ>100,即待解视频包与接收视频包序号相差多于100个号,说明网络环境很不稳定,为了保持视频的流畅度,需要做适当丢弃处理,将缓存哈希表中的元素清空,直接把接收到的视频包当作待解视频包,解析播放,即把当前接收视频包Κ作为Μ号视频包,重新开始缓存;
[0017]方式4、若Κ-Μ〈0,则需要区分是视频包序号重新开始,还是视频包乱序,
[0018]当Κ是一个远远小于Μ的数,那么可以确定为视频包序号重新开始,将Μ初始为Κ,继续下一次接收;
[0019]当Κ与Μ的差值在一个较小的范围内,那么认为是视频包乱序,将该视频包缓存,继续下次接收。
[0020]本发明的有益效果是,
[0021]1)该方法在分析视频包时,对RTP包序列号进行提取,不同于传统按时戳提取排序的思路,能够提高视频序列分析的速度,可以在不考虑网络环境下快速完成网络视频排序,并最大限度保证播放的流畅度和准确性;同时,本发明可处理多种类型视频文件的排序,能够应对视频文件种类多等情况。
[0022]2)本发明适用于实时监控性质的工程,确保在线监控画面的连续性,防止视频画面失真。该方法简洁、高效的保持了视频播放的实时性,同时亦能满足视频流数据包的顺序解析。
[0023]3)本发明采用相应的视频包分析算法,通过对包序号和时戳的分析,按不同序号分类缓存,依网络环境适当丢包,调整视频包的解析次序,不仅在网络环境优良的情况下,保持较高的视频清晰度,而且在网络不稳定的情况下,对视频包做适当丢弃,最大限度的减少视频画面的损失,从而保证播放的流畅度和准确性。在包丢失、乱序的情况下,对已经接收到的数据进行重新排序、解码。关键技术在于能够高质量的保证视频的流畅解析。

【专利附图】

【附图说明】
[0024]图1是本发明方法实施例在WIFI网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟的发包接包的数量柱状图;
[0025]图2是本发明方法实施例在WIFI网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟的解包弃包的数量柱状图;
[0026]图3是本发明方法实施例在3G网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟的发包接包的数量柱状图;
[0027]图4是本发明方法实施例在3G网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟的解包弃包的数量柱状图。

【具体实施方式】
[0028]下面结合附图和【具体实施方式】对本发明进行详细说明。
[0029]本发明面向画面画质较小损失的RTP视频流数据包重组方法,通过使用RTP报头中的序列号和时戳内容进行包排序,具体包括:
[0030]序列号占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1,接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据;
[0031]时戳(Timestamp)占32位,时戳反映了该RTP报文的第一个八位组的采样时刻,接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
[0032]本发明的方法,考虑到存在网络环境不稳定、视频丢包等因素,利用RTP报头包序号的提取,给出了一种提取序号排序RTP视频包的方法,具体按照以下步骤实施,
[0033]假设有一段待处理的原始视频流,发送端发送N个视频流封包,序号依次为0,1,2,3,…..,N,N〈1000,
[0034]接收端在接收并解析RTP视频包时,根据视频包报头序号,其间本方法维系一张哈希表对视频包进行缓存处理,哈希表(也叫散列表),是根据关键码值(Key)而直接进行访问的数据结构,其中,通过映射函数,即一个关键码值对应唯一的存储数据,存储数据的数组叫做散列表,也就是说,通过把关键码值映射到表中一个位置来访问存储,以加快查找的速度,在本发明中的哈希表,关键码值为视频包序号,对应存储的为整个接收到的视频包,分为以下两大类情况处理,
[0035]网络信号稳定的理想情况下,
[0036]接收端开始接收,需要解析0号视频包,如果接收到的第一个包为0号视频包,则直接进行解析播放,之后则需要等待1号视频包,接到第二个包为1号视频包时,继续进行解析播放,依次类推,等待N号视频包,如接收到为N号视频包,则直接解析播放,即待解(等待解析)视频包与接收视频包对等,顺序处理;
[0037]网络信号不稳定的情况下,接收端没有按照顺序接收待解包,假设接收端当前待解包为Μ号视频包,而当前收到的包为Κ号视频包,则根据具体情况包括以下四种方式:
[0038]方式1、若0〈Κ-Μ ( 15,即待解视频包与接收视频包序号相差在15(含15)以内,则将接收到的视频包暂存入哈希表中,然后在哈希表中查找当前所需的待解视频包,即Μ号视频包,如果查找到待解的视频包,则直接对Μ号视频包进行解析播放,并在哈希表中删除Μ号视频包,以保持哈希表中存在较少的元素,如果没有搜索到Μ号视频包,则继续等待下一个接收的视频包;
[0039]方式2、若15〈Κ_Μ ( 100,即待解视频包与接收视频包序号相差在15至100 (含100)之间,则将接收到的视频包暂存入哈希表中,然后在哈希表中从Μ号视频包开始查找缓存,一个一个处理组成NALU,直到处理到Κ号视频包为止;
[0040]方式3、若Κ-Μ>100,即待解视频包与接收视频包序号相差多于100个号,说明网络环境很不稳定,为了保持视频的流畅度,需要做适当丢弃处理,将缓存哈希表中的元素清空,直接把接收到的视频包当作待解视频包,解析播放,即把当前接收视频包Κ作为Μ号视频包,重新开始缓存;
[0041]方式4、若Κ-Μ〈0,则需要区分是视频包序号重新开始,还是视频包乱序,
[0042]当Κ是一个远远小于Μ的数,那么可以确定为视频包序号重新开始,将Μ初始为Κ,继续下一次接收;
[0043]当Κ与Μ的差值在一个较小的范围内,那么认为是视频包乱序,将该视频包缓存,继续下次接收。
[0044]实施例、假定有一段视频流(含200个视频包)。
[0045]发送端发送视频包序号为0,1,2,3,4,5,6,…,200,接收端接收的视频包序号依次为0,1,2,4,18,3,5,30,65,126,118…,接收端接收到0号视频包、1号视频包、2号视频包时,因为接收视频包与待解视频包对等(即Κ = Μ),所以直接解析播放,之后接收端接收到4号视频包,则将4号视频包暂存入哈希表中(即0〈Κ-Μ ( 15),并在哈希表中查找3号视频包,之后的18号视频包依旧暂存哈希表中,继续等待接收;当接收到3号视频包时,对3号视频包进行解析播放处理;之后接收到5号视频包,则将5号视频包暂存入哈希表,并在哈希表中查找4号视频包,当下哈希表中存有4号视频包,则从缓存中取出4号视频包进行解析播放,并将4号视频包从哈希表中删除;继续接收到30号视频包,则将30号视频包暂存入哈希表中(即15〈Κ-Μ ( 100),并查找5号视频包进行解析播放,缓存删除5号视频包后,接收到65号视频包,则将65号视频包暂存入哈希表中,开始查找6号视频包,由于表中没有6号视频包,则取出表中最小序号的视频包,即18号视频包作为待解包,进行解析播放;接收到126号视频包时(即Κ-Μ>100),则将哈希表缓存清空,把126号视频包作为待解视频包,解析播放,重新缓存;最后接到118号视频包(即Κ-Μ〈0),Κ与Μ的差值较小,认定为乱序,将该视频包缓存,继续下次接收。
[0046]从上述过程可以看出,本发明在视频包解包过程中,依网络环境的不同情况,对应不同的解包方法,在网络环境较差的情况下,由于丢包严重,本发明的解包播放虽然可能使接收视频的播放产生间断、不连续等现象,但能够依然保持视频的流畅播放,流畅度能够满足用户的视觉感受,因此本发明RTP视频包排序的方法在视觉性能上完全满足实际应用要求。
[0047]此外,本方法也具有较高的时间效率,包括以下两方面:
[0048]1)本发明根据不同情况分类明确,在取出视频包序号后,直接与分类数字比较(以0,15,100为例),比较结果直接对封包进行处理,避免了大量不必要的计算,节约了时间开销。
[0049]2)本发明在取包解析过程中,维持一张哈希表,哈希表在解包后立即清理,网络情况不佳时,随时清空,始终保持表内较少的数据量,提高了表内搜索的效率。
[0050]图1是在WIFI网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟视频包的发包接包的数量柱状图,图中横坐标表示随机抽取的时间端,纵坐标是视频包的数量,每组的左边框为发送包个数,右边框为接收包个数;图2是本发明方法实施例针对图1中对应时间解包弃包的数量柱状图,图中横坐标表示随机抽取的时间段,纵坐标是视频包的数量,每组的左边框为解包个数,右边框为弃包个数。图1、图2中,统计了第1、6、17、23、29分钟6个时间段的发送包、接收包、解包、弃包数量。发送视频的分辨率为1920x1080,由图1、图2可以看出,发送包和接收包数量基本持平,网络环境较好,弃包数量较少,接收到视频包基本能够解包播放,说明本发明在良好网络环境下可以快速的接收并解出视频包,能够按序流畅的播放视频。
[0051]图3是在3G网络环境下,手机客户端在接收视频30分钟内随机抽取第N分钟的发包接包的数量柱状图,图中横坐标表示随机抽取的时间端,纵坐标是视频包的数量,每组的左边框为发送包个数,右边框为接收包个数;图4是本发明方法实施例针对图3中对应时间解包弃包的数量柱状图,图中横坐标表示随机抽取的时间段,纵坐标是视频包的数量,每组的左边框为解包个数,右边框为弃包个数;图3和图4中,统计了第1、4、16、22、26分钟6个时间段的发送包、接收包、解包、弃包数量。发送视频的分辨率为1920x1080,由图3、图4可以看出,发送包和接收包有一定的数量差,网络环境较不稳定,且有一定数量的弃包,部分接收到的包会存入哈希缓存,通过缓存提取逐步解包播放,说明本发明在网络环境不稳定的情况下,可以通过哈希缓存快速的提取解包,虽然有一定数量的弃包,但不影响整体视频的流畅播放。
[0052]本发明方法考虑到不同网络环境、多种视频分辨率、视频播放的流畅度与实时性等因素,利用RTP协议报头,对视频包序号进行提取,通过哈希表缓存,依不同情况分类处理,给出了一种在RTP视频流传输排序解包的方法,改变了传统根据时戳、序号提取排序的思路,在保证准确性的条件下,简化了视频包排序流程,可以快速完成网络视频顺序解包播放的过程,并保证结果的实时性和准确性;同时,本发明可处理多种类型视频流的排序,面向各种视频压缩标准(如MPEG-l/2/4、H.261、H.263等)的视频文件,能够应对多种分辨率的视频,并保持流畅播放。
【权利要求】
1.一种面向画面画质较小损失的RTP视频流数据包重组方法,其特征在于,该方法按照以下步骤实施: 假设发送端发送N个视频流封包,序号为O,I, 2,3,…,N,N〈1000, 在网络信号稳定的情况下,接收端开始接收,需要解析O号视频包,如果接收到的第一个包为O号视频包,则直接进行解析播放,之后则需要等待I号视频包,接到第二个包为I号视频包时,继续进行解析播放,依次类推,等待N号视频包,如接收到为N号视频包,则直接解析播放,即待解视频包与接收视频包对等,顺序处理; 在网络信号不稳定的情况下,接收端没有按照顺序接收待解包,假设接收端当前待解包为M号视频包,而当前收到的包为K号视频包,则根据具体情况包括以下四种处理方式:方式1、若0〈Κ-Μ ( 15,即待解视频包与接收视频包序号相差在15以内,则将接收到的视频包暂存入哈希表中,然后在哈希表中查找当前所需的待解视频包,即M号视频包,如果查找到待解的视频包,则直接对M号视频包进行解析播放,并在哈希表中删除M号视频包,以保持哈希表中存在较少的元素,如果没有搜索到M号视频包,则继续等待下一个接收的视频包; 方式2、若15〈K-M ( 100,即待解视频包与接收视频包序号相差在15至100之间,则将接收到的视频包暂存入哈希表中,然后在哈希表中从M号视频包开始查找缓存,一个一个处理组成NALU,直到处理到K号视频包为止; 方式3、若K-M>100,即待解视频包与接收视频包序号相差多于100个号,说明网络环境很不稳定,为了保持视频的流畅度,需要做适当丢弃处理,将缓存哈希表中的元素清空,直接把接收到的视频包当作待解视频包,解析播放,即把当前接收视频包K作为M号视频包,重新开始缓存; 方式4、若Κ-Μ〈0,则需要区分是视频包序号重新开始,还是视频包乱序, 当K是一个远远小于M的数,那么可以确定为视频包序号重新开始,将M初始为K,继续下一次接收; 当K与M的差值在一个较小的范围内,那么认为是视频包乱序,将该视频包缓存,继续下次接收。
2.根据权利要求1所述的面向画面画质较小损失的RTP视频流数据包重组方法,其特征在于:所述的哈希表通过映射函数,即一个关键码值对应唯一的存储数据,本方法中的哈希表,关键码值为视频包序号,对应存储的为整个接收到的视频包。
【文档编号】H04N21/6437GK104469538SQ201410751308
【公开日】2015年3月25日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】孙钦东, 张景鹏, 尹潇龙, 王健 申请人:西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1