掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法及系统

文献发布时间:2023-06-19 11:21:00


一种数据传输方法及系统

技术领域

本公开涉及数据处理技术领域,尤其涉及一种数据传输方法及系统。

背景技术

目前的视频帧是通过传输控制协议(TCP,Transmission Control Protocol)和用户数据包协议(UDP,User Datagram Protocol)来进行传输的。在弱网环境下,传输控制协议网络有丢包时,为了保证传输的实时性,可以不重传,接收端也可以正常的显示视频,但传输控制协议传输数据的效率较低,且会增加视频帧的传输时延;用户数据包协议虽然发送数据效率高,但在弱网环境下,并不能保证视频帧的可靠传输,因此在弱网环境下,需要一种兼顾传输可靠性和传输效率的视频帧传输方法。

发明内容

本公开实施例提供一种数据传输方法及系统,能够解决目前的数据传输方法在弱网环境下不能同时兼顾传输的可靠性和传输效率。所述技术方案如下:

根据本公开实施例的第一方面,提供一种数据传输方法,该方法包括:

发送端获取目标视频数据,所述目标视频数据包括至少一个视频帧;将所述视频帧写入缓存区,判断当前待写入的视频帧的帧类型,并根据所述帧类型对所述缓存区进行相应的处理;根据当前的网络传输情况,将处理后的缓存区中的视频帧拆分成至少一个数据单元;将所述至少一个数据单元发送给接收端。

在一个实施例中,所述判断当前待写入的视频帧的帧类型,并根据所述帧类型对所述缓存区进行相应的处理,包括:若所述帧类型为I帧,则清空所述缓存区之前缓存的视频帧,并将所述I帧写入所述缓存区;若所述帧类型为P帧,则将所述P帧写入所述缓存区。

在一个实施例中,检测所述缓存区的帧数量是否到达预设阈值;

若所述缓存区的帧数量达到了预设阈值,则清空所述缓存区,并请求获取I帧数据。

在一个实施例中,所述数据单元包括相应的发送序号;所述将所述数据单元发送给接收端,包括:根据所述数据单元的发送序号将所述数据单元发送给所述接收端。

在一个实施例中,所述方法还包括:接收所述接收端发送的重传请求,所述重传请求中包括数据单元的发送序号;

根据所述重传请求,将相应的数据单元发送给所述接收端。

在一个实施例中,所述方法还包括:接收所述接收端发送的应答信息,并根据所述应答信息删除对应的视频帧。

本公开提供的数据传输方法,通过将获取的目标视频数据中的视频帧写入缓存区,并判断当前待写入的视频帧的帧类型,根据帧类型缓存区进行相应的处理,然后根据当前的网络传输情况,将处理后的缓存区中的视频帧拆分成至少一个数据单元,最后将至少一个数据单元发送给接收端,接收端进行解码显示,本公开提供的数据传输方法,在发送端根据视频帧的特点,在发送端视频帧数据有堆积的情况下,在保证接收端能解码的前提下,选择性的删除一些视频帧,从而保证数据传输的实时性和传输效率。同时通过发送端和接收端的配合,使用确认机制来保证数据传输的可靠性。

根据本公开实施例的第二方面,提供一种数据传输方法,该方法包括:

接收端接收发送端发送的至少一个数据单元,并对所述数据单元进行解码显示。

在一个实施例中,所述数据单元包括相应的发送序号,所述方法还包括:

根据所述数据单元的发送序号,判断所述数据单元是否完整;

若所述数据单元有丢失,则向所述发送端发送重传请求,所述重传请求中包括数据单元的发送序号。

在一个实施例中,所述方法还包括:若所述数据单元完整,则向所述发送端发送应答信息。

根据本公开实施例的第三方面,提供一种数据传输系统,该系统包括:发送端和接收端;

所述发送端获取目标视频数据,所述目标视频数据包括至少一个视频帧;

所述发送端将所述视频帧写入缓存区,并判断当前待写入的视频帧的帧类型,并根据所述帧类型对所述缓存区进行相应的处理;

所述发送端根据当前的网络传输情况,将处理后的缓存区中的视频帧拆分成至少一个数据单元;

所述发送端将所述至少一个数据单元发送给接收端;

所述接收端对所述数据单元进行解码显示。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种数据传输方法的流程图;

图2是本公开实施例提供的一种数据传输方法的流程图;

图3是本公开实施例提供的一种数据传输系统的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的系统和方法的例子。

本公开实施例提供一种开数据传输方法,应用于发送端,如图1所示,该方法包括以下步骤:

101、获取目标视频数据。

其中,目标视频数据指代任意一个视频数据,本公开只是以对目标视频数据为例表示对数据传输过程进行说明,目标并不代表任何局限,具体的,目标视频数据包括至少一个视频帧,进一步的,目标视频数据可以包括至少一个编码的视频帧。

102、将视频帧写入缓存区,判断当前待写入的视频帧的帧类型,并根据帧类型对缓存区进行相应的处理。

在一个实施例中,若帧类型为I帧,则清空缓存区之前缓存的视频帧,并将I帧写入缓存区;若帧类型为P帧,则将P帧写入缓存区。

在一个实施例中,方法还包括:检测缓存区的帧数量是否到达预设阈值;

若缓存区的帧数量达到了预设阈值,则清空缓存区,并请求获取I帧数据。

在实际应用中,视频编码后的数据,首先送入缓存区,在缓存区中尽可能的保证视频帧的实时性和可解码。缓存区为了保证实时性,会有一个缓冲大小上限,如30帧。缓存区根据送入视频帧的类型执行对应操作,若送入帧为I帧,则清空帧缓冲区,若送入帧为P帧,在帧缓冲区未到达发送上限时不执行任何操作。当帧缓冲区满时,清空帧缓冲区,同时请求I帧。基于以上策略,在保证视频帧实时性的同时,也可以保证发送的视频帧在接收端是可解码显示的。

103、根据当前的网络传输情况,将处理后的缓存区中的视频帧拆分成至少一个数据单元。

具体的,根据当前网络的MTU(最大传输单元,Maximum Transmission Unit),将视频帧拆分成适合网络传输的数据单元,并会根据数据单元的发送顺序生成唯一的序号。

104、将至少一个数据单元发送给接收端。

在一个实施例中,数据单元包括相应的发送序号;将数据单元发送给接收端,包括:根据数据单元的发送序号将数据单元发送给接收端。

在步骤104之后,还包括:接收接收端发送的重传请求,重传请求中包括数据单元的发送序号;根据重传请求,将相应的数据单元发送给接收端。

接收接收端发送的应答信息,并根据应答信息删除对应的视频帧。

在实际应用中,将视频帧发送给接收端后,为了以防接收端请求重传,并不会立即删除,而是在接收到接收端发送的应答信息后删除相应的视频帧。

本公开提供的数据传输方法,通过将获取的目标视频数据中的视频帧写入缓存区,并判断当前待写入的视频帧的帧类型,根据帧类型缓存区进行相应的处理,然后根据当前的网络传输情况,将处理后的缓存区中的视频帧拆分成至少一个数据单元,最后将至少一个数据单元发送给接收端,接收端进行解码显示,本公开提供的数据传输方法,在发送端根据视频帧的特点,在发送端视频帧数据有堆积的情况下,在保证接收端能解码的前提下,选择性的删除一些视频帧,从而保证数据传输的实时性和传输效率。同时通过发送端和接收端的配合,使用确认机制来保证数据传输的可靠性。

在图1对应的实施例的基础上,本公开实施例提供了一种开数据传输方法,应用于接收端,如图2所示,该方法包括以下步骤:

201、接收发送端发送的至少一个数据单元。

在一个实施例中,数据单元包括相应的发送序号,方法还包括:根据数据单元的发送序号,判断数据单元是否完整;若数据单元有丢失,则向发送端发送重传请求,重传请求中包括数据单元的发送序号。

在一个实施例中,若数据单元完整,则向发送端发送应答信息。

在实际应用中,接收端从网络接收发送端发送的数据单元,根据数据单元的序列号判断是否有丢包。若有丢包则向发送端发送NACK重传请求。当收到每帧的最后一个数据单元的数据,判断一帧是否收齐,若收齐则向发送端发送ACK应答,当收齐一帧后将数据单元组成一个视频帧送入帧缓冲区。

202、对数据单元进行解码显示。

具体的,将一帧视频数据完整的数据单元通过视频解码器进行解码显示。

基于在图1和图2对应的实施例的基础上,本公开实施例提供了一种开数据传输系统,如图3所示,该系统包括:发送端31和接收端32。

其中,发送端31中包括编码模块311、第一缓存模块312、处理模块313和第一通信模块314;接收端32中包括:第二通信模块321、管理模块322、第二缓存模块323和解码模块324。

在实际应用中,首先通过编码模块311对视频数据进行编码,视频编码后的数据,首先送入第一缓存模块312,在第一缓存模块312中尽可能的保证视频帧的实时性和可解码。第一缓存模块312为了保证实时性,会有一个缓冲大小上限,如30帧。

第一缓存模块312根据送入视频帧的类型执行对应操作,若送入帧为I帧,则清空第一缓存模块312,若送入帧为P帧,在第一缓存模块312未到达发送上限时不执行任何操作。当第一缓存模块312满时,清空第一缓存模块312,同时向编码模块311请求I帧。基于以上策略,在保证视频帧实时性的同时,也可以保证发送的视频帧在接收端是可解码显示的。

处理模块313根据当前网络带宽情况,从帧缓冲区中以帧为当单位,拉取视频帧,处理模块313中的帧数据需可靠的传输到接收端。

具体的,处理模块313拿到帧数据后,会根据当前网络MTU,将视频帧拆分成适合网络传输的数据单元或称为小包。并会根据小包的发送顺序生成唯一的序号。将其发送到通信模块314中。视频帧发送完后,为了以防接收端32请求重传,并不会立即删除。

进一步的,若有丢包,接收端32会发送NACK重传请求,请求中会携带需要重传的小包序列号。发送端31根据NACK中小包序列号重传对应的小包数据。当接收端32收到整帧数据以后,会发送一个对应帧的ACK应答。发送端31会删除对应帧数据。

第二通信模块321接收通过第一通信模块314发送的数据单元,管理模块322从第二通信模块321获取数据单元,并根据小包的序列号判断是否有丢包。若有丢包则向发送端31发送NACK重传请求。当收到每帧的最后一包数据,判断一帧是否收齐,若收齐则向发送端发送ACK应答。当收齐一帧后将小包组成一个视频帧送入第二缓存模块323进行缓存,并将缓存后的数据单元发送给解码模块324进行解码显示。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 数据记录介质、数据记录方法、数据处理设备、数据发送方法和数据发送设备、数据传输方法和数据传输设备,以及数据发送系统和数据通信系统
  • 一种北斗技术数据传输方法、气象数据传输方法和系统
技术分类

06120112895228