一种基于定长格式的视频数据传输方法与流程

文档序号:22120339发布日期:2020-09-04 16:09阅读:326来源:国知局
一种基于定长格式的视频数据传输方法与流程

本发明属于视频传输技术领域,具体涉及一种基于定长格式的视频数据传输方法。



背景技术:

近年来,随着因特网(internet)的迅猛发展,对在线桌面实时共享的需求越来越多,比如在线教育、远程会议以及远程桌面等场景。在线协作对实时性要求比较高,目前常用的方法是用视频技术来实现桌面实时共享,一方面因为视频流本身适合实时传输的场景,另一方面视频编解码标准相对成熟并且应用广泛,很多设备支持硬件编解码。

直接通过摄像头刷新的视频图像数据往往数据量过大,严重影响实时传输过程的效率。因而,在实时视频传输中需要对视频帧进行压缩编码。h264是一种经典的视频帧间编码格式,其编码后的视频帧可以分为三种类型,分别为i帧、b帧、p帧。现有技术是对在传统h264压缩编码后形成的视频帧进行基于范德蒙式的直接纠删码的编码和解码,最后视频播放。

由于h264编码是一种帧间视频帧编码方法,编码后的视频帧之间的大小差异较大,其中i帧包含一帧中的全部信息,其数据量较大,而p帧与b帧则可以通过i帧的差分得到,所以其中仅包含相应的参考信息即可。因此,如果以帧为单位进行拆包会导致最终传输过程中数据包的大小不一致,影响传输效率。



技术实现要素:

针对目前的困境,提出一种基于定长格式的视频数据传输方法,包括:

步骤1,生成视频序列,所述视频序列中包括多个的数据帧;

步骤2,发送端采用定长格式传输视频序列;

步骤3,发送端对网络传输状态进行连续实时统计;

步骤4,根据网络传输状态的统计,评估所述网络传输的性能;

步骤5,根据性能评估,实时动态地调节纠删码冗余度;

步骤6,接收端接收发送端传输的视频序列;

步骤7,按照固定的帧率进行视频的播放。

本发明从数据包大小和包含冗余包的数据分组大小两个方面对纠删码技术进行优化。不同于传统上对h264视频帧直接进行纠删码编码,本发明基于atm信元传输研究对于定长数据包的已有结论采用将帧定长拆包的方式,同时通过确定合理的收发缓冲区大小将分组大小固定,即固定了视频数据包和冗余包的总个数,从而稳定控制了传输速度。并且还达到了编解码时延较传统范德蒙式降低,传输速率稳定性好,抗网络波动,以及传输效率高,丢包重传大数据少的有益效果。

附图说明

图1本发明的纠删码编码示意图;

图2本发明的纠删码编码过程示意图;

图3本发明的发送端拆包过程流程图;

图4本发明的接收端组包逻辑示意图。

具体实施方式

为了更好地理解本发明,下面结合附图参考实施例的描述,对本发明的系统进行进一步的说明。

为了全面理解本发明,在以下详细描述中提到了众多具体细节。但是本领域技术人员应该理解,本发明可以无需这些具体细节而实现。在实施例中,不详细描述公知的方法、过程、组件,以免不必要地使实施例繁琐。

参见图1-4所示,本发明提供了一种基于定长格式的视频数据传输方法,包括:

步骤1,生成视频序列,所述视频序列中包括多个的数据帧;

步骤2,发送端采用定长格式传输视频序列;

步骤3,发送端对网络传输状态进行连续实时统计;

步骤4,根据网络传输状态的统计,评估所述网络传输的性能,

步骤5,根据性能评估,实时动态地调节纠删码冗余度;

步骤6,接收端接收发送端传输的视频序列;

步骤7,按照固定的帧率进行视频的播放。

优选地,其中,所述步骤2,发送端采用定长格式传输视频序列,具体包括:

步骤2-1,预设标准包长为m;

步骤2-2,获取一帧视频数据后,确定该视频帧的长度l;

步骤2-3,判断视频帧的长度,若该视频帧的长度l大于标准包长m,则将该视频数据拆分为l/m份长度不超过l的视频数据包,并在视频数据包的包头中添加相应的拆组包控制信息;若该视频帧的长度l不大于标准包长m,则不进行拆分,使用一个视频数据包发送这些数据;

步骤2-4,根据当前的网络可用带宽和视频码率,为视频数据包编码相应冗余度的冗余包;

步骤2-1,将数据包进行发送,所述数据包包括视频数据包和冗余包;

优选地,其中,所述步骤6,接收端接收发送端传输的视频序列,具体包括:

步骤6-1,数据包达到接收端后,接收端通过包头信息将数据包放到视频帧的组包缓冲区中对应的位置;

步骤6-2,当数据包中的数据被组合成一帧完整的数据后,视频帧被放置到播放缓冲区中。

优选地,其中,所述步骤6-2,当数据包中的数据被组合成一帧完整的数据后,视频帧被放置到播放缓冲区中,具体包括:

步骤6-2-1,将接收端处的播放缓冲区划分为三种不同的区域a、b、c,其中,b区域是实际存在的帧缓冲区,表示等待播放的帧缓冲区,a区域表示已经播放结束的视频的缓冲区,c区域表示后续的视频帧的缓冲区。

步骤6-2-2,判断当前收到的数据包中的帧号位于的区域,如果当前收到的数据包中的帧号位于a区域,说明已被解码的视频帧数据到达,则直接将该包丢弃;如果当前收到的数据包中的帧号位于b区域,则直接按照包号将其中的视频数据放到对应的缓冲区位置;如果当前收到的数据包中的帧号位于c区域,则表示后续的视频帧已经到达,这时若b区域仍然含有尚未播放的不完整视频帧,为了不影响播放过程的时延,则直接播放当前收到的后续的视频帧。

优选地,其中,所述标准包长m为512字节。

其中,发送端对网络传输状态进行连续实时统计,根据网络传输状态的统计,评估所述网络传输的性能,根据性能评估,实时动态地调节纠删码冗余度,具体包括:

统计一段时间内n次连续的数据包网络往返时延,得到初始化的该段时间内数据包往返时延的平均值μrtt和标准差σrtt;

对该段时间内连续的数据包往返时延进行统计确定时延阈值λr′tt=μrtt+2σrtt;

获取发送端传输当前的单个数据包往返时延λrtt;

将当前的数据包往返时延λrtt与通过对该包之前连续数据包的传输时延进行统计得到的时延阈值λ′rtt进行比较;

若出现λrtt≥λ′rtt,则表示数据包往返时延过长,判定为该当前数据包在网络传输过程中丢失,记录一次丢包;

若λrtt<λ′rtt,则表示数据包往返时延正常,使用滑动窗口的方式,设置窗口大小为m,每当得到新的数据包确认信息后,去掉窗口中最早的往返时延,将新的结果加入该窗口中,实现对数据包往返时延及数据包丢失情况的实时监测;

发送端根据公式(1),得到丢包率结果,其中nsend和nloss分别表示一个统计周期内发送的数据包总数和丢失的数据包个数,r表示丢包率;

r=(nsend-nloss)/nsend(1)

根据n次数据包传输丢包率的统计,得到该段时间内数据包丢包率的平均值μplr和标准差σplr;

计算纠删码编码冗余度调整的参考比率:

rate=μplr+3σplr(2)

根据纠删码编码冗余度调整的参考比率rate,调整发送端纠删码编码冗余度,更新数据包个数与冗余包个数;

使用滑动窗口的方式,设置窗口大小为m,每当得到新的丢包率后,去掉窗口中最早的丢包率数据,将新的结果加入该窗口中,实现对网络状况的实时监测。

本发明从数据包大小和包含冗余包的数据分组大小两个方面对纠删码技术进行优化。不同于传统上对h264视频帧直接进行纠删码编码,本发明基于atm信元传输研究对于定长数据包的已有结论采用将帧定长拆包的方式,同时通过确定合理的收发缓冲区大小将分组大小固定,即固定了视频数据包和冗余包的总个数,从而稳定控制了传输速度。并且还达到了编解码时延较传统范德蒙式降低,传输速率稳定性好,抗网络波动,以及传输效率高,丢包重传大数据少的有益效果。

这里只说明了本发明的优选实施例,但其意并非限制本发明的范围、适用性和配置。相反,对实施例的详细说明可使本领域技术人员得以实施。应能理解,在不偏离所附权利要求书确定的本发明精神和范围情况下,可对一些细节做适当变更和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1