CN114584847B - 一种数据传输方法 - Google Patents

一种数据传输方法 Download PDF

Info

Publication number
CN114584847B
CN114584847B CN202210162606.XA CN202210162606A CN114584847B CN 114584847 B CN114584847 B CN 114584847B CN 202210162606 A CN202210162606 A CN 202210162606A CN 114584847 B CN114584847 B CN 114584847B
Authority
CN
China
Prior art keywords
data
packet
frame
information
packets
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
CN202210162606.XA
Other languages
English (en)
Other versions
CN114584847A (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.)
GHT CO Ltd
Original Assignee
GHT 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
Application filed by GHT CO Ltd filed Critical GHT CO Ltd
Priority to CN202210162606.XA priority Critical patent/CN114584847B/zh
Publication of CN114584847A publication Critical patent/CN114584847A/zh
Application granted granted Critical
Publication of CN114584847B publication Critical patent/CN114584847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供的一种数据传输方法,发送端将待发送数据切分为数据量相同的帧数据,并生成实时传输数据包,保证实时传输数据包数据量相同,提高通信传输的稳定性;为避免丢包,通过生成冗余数据包,并在冗余数据包和实时传输数据包中填充分组数据,接收方通过分组信息核验接收的通信数据包,在数据包丢失时,可根据冗余数据包还原丢失的实时传输数据包,减少通信丢包率,提高通信质量。

Description

一种数据传输方法
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输方法。
背景技术
随着社会的发展,高清可视化的通信在电力、轨道交通、石油石化等行业当中尤为重要,由于该些行业复杂的网络环境,现有技术的通信方法在通信过程中通信数据包经常丢失,严重影响视频传输质量,该影响主要有:马赛克现象、局部变形、图像模糊、屏幕频繁刷新或图像静止等。
发明内容
本发明的目的是提供一种数据传输方法,减少通信过程中数据包的丢失,优化通信质量。
本发明实施例提供一种数据传输方法,所述方法包括:
发送端:将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,将每一填充后的帧数据封装成实时传输数据包;对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包;将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包;
所述接收端接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,所述通信数据包为实时传输数据包或冗余数据包。
优选地,所述待发送数据的获取过程为:
所述发送端将待发送的视频数据进行编码,并提取出编码后的码流中的一帧图像数据作为所述待发送数据。
作为一种优选方案,所述将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,具体包括:
所述发送端根据预设的第一数据量将所述待发送数据进行切分,并对获得的帧数据的数据量进行判断;
当获得帧数据的数据量小于所述第一数据量时,在该帧数据后填充“0”字符,直至该帧数据的数据量与所述第一数据量相同;
当获得的帧数据的数据量与所述第一数量相同时,在该帧数据前填充数据量相同的帧信息。
优选地,所述帧信息包括每一帧数据的帧大小,以及每一帧数据在所述待发送数据中的帧序号和帧内编号。
优选地,所述对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包,具体包括:
将所述待发送数据的实时传输数据包按照预设的同组数据包数量分为不同的分组,并得到每一分组的分组信息,将每一实时传输数据包的对应的分组信息填充进其拓展头部中;
通过用户数据包协议向所述接收端发送填充后的实时传输数据包。
优选地,所述分组信息包括:预设的同组数据包数量、编码组号、编码组合序号和预设的同组冗余包数量。
作为一种优选方案,所述将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包,具体包括:
将填充后的帧数据按照分组信息将同组帧数据依次加入编码缓冲区,并判断编码缓冲区中帧数据的数量是否达到该分组的分组信息中的同组数据包数量;
当编码缓冲区中帧数据的数量未达到所述同组数据包数量,继续将填充后的帧数据加入编码缓冲区;
当编码缓冲区中帧数据的数量达到所述同组数据包数量,进行前向纠错编码,生成冗余编码数据;
将获得的冗余编码数据封装成该分组的分组信息中同组冗余包数量的冗余数据包;
在每一冗余数据包的拓展头部中填充该分组的分组信息,通过流媒体协议向所述接收端发送冗余数据包。
作为一种优选方案,所述接收端接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,具体包括:
所述接收端根据获得的通信数据包的分组信息中的编码组号判断该通信数据包与接收的上一通信数据包是否为同一分组;
当该通信数据包与上一通信数据包为同一分组,将该通信数据包加入接收缓冲区中;
当该通信数据包与上一通信数据包不为同一分组,清空接收缓冲区中的数据,将该通信数据包加入清空的接收缓冲区中;
根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包;
当该分组的通信数据包未发生丢包时,将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区。
进一步地,所述方法还包括:
当该分组的通信数据包发生丢包时,判断解码缓冲区中所有通信数据包的数量是否小于该分组的分组信息中同组数据包数量;
当通信数据包的数量不小于该分组的分组信息中同组数据包数量,通过所有通信数据包还原丢失的实时传输数据包,并将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区;
当通信数据包的数量小于该分组的分组信息中同组数据包数量,判断通信数据丢失。
优选地,所述根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包,具体包括:
检查接收缓冲区中的通信数据包的分组信息的编码组合序号,当接收缓冲区中出现分组信息的编码组合序号等于该分组信息的同组数据包数量与同组冗余包数量之和的通信数据包时,检查接收缓冲区中通信数据包的数量;
当接收缓冲区中通信数据包的数量小于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包发生丢包;
当接收缓冲区中通信数据包的数量等于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包未发生丢包。
本发明提供的一种数据传输方法,通过发送端将待发送数据切分为数据量相同的帧数据,并生成实时传输数据包,保证实时传输数据包数据量相同,提高通信传输的稳定性;为避免丢包,通过生成冗余数据包,并在冗余数据包和实时传输数据包中填充分组数据,避免数据丢失,减少通信丢包率,提高通信质量。
附图说明
图1是本发明实施例提供一种数据传输方法的流程示意图;
图2是本发明实施例提供的帧数据获取的流程示意图;
图3是本发明实施例提供的一种数据传输系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例提供一种数据传输方法的流程示意图,所述方法包括步骤S1~S2,由发送端和接收端执行;
发送端执行步骤S1:将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,将每一填充后的帧数据封装成实时传输数据包;对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包;将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包;
接收端执行步骤S2:接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,所述通信数据包为实时传输数据包或冗余数据包。
在本实施例具体实施时,所述发送端在发送视频数据时,先获取一阵视频数据作为待发送数据,并将待发送数据切分为不同帧数据,每一帧数据的数据量相同;
在每一帧数据前填充所述待发送数据的帧信息,帧信息包括每一帧数据的顺序以及所述待发送数据包含多少帧信息,便于在接收方进行校验;
将每一填充好的帧数据封装成实时传输数据包,对获取的实时传输包进行分组,将所有实时传输数据包按照预设的数量分为不同的组别;并在每一实时传输数据包的拓展头部中填充分组信息,所述分组信息用于在接收方识别实时传输数据包的分组组别。
发送端将填充好的实时传输数据包实时发送给接收端;
将填充后的帧数据按照每一分组信息,对每一组帧数据分别进行冗余编码,将每一组帧数据封装为预设数量的冗余数据包,每一冗余数据包的拓展头部中填充该分组的分组信息,并将填充后的冗余数据包。
接收方接收发送端发送的实时传输数据包以及冗余数据包,将接收的实时传输数据包以及冗余数据包作为通信数据包,每一通信数据包中均包括分组信息,根据通信数据包中的分组信息,将接收的通信数据包还原成所述待发送数据。
通过发送端将待发送数据切分为数据量相同的帧数据,并生成实时传输数据包,保证实时传输数据包数据量相同,提高通信传输的稳定性;为避免丢包,通过生成冗余数据包,并在冗余数据包和实时传输数据包中填充分组数据,避免数据丢失,减少通信丢包率,提高通信质量。
在本发明提供的又一实施例中,所述待发送数据的获取过程为:
所述发送端将待发送的视频数据进行编码,并提取出编码后的码流中的一帧图像数据作为所述待发送数据。
在本实施例具体实施时,通信设备通过USB摄像头采集视频数据,并通过硬件采集模块将采集的视频数据编码成H264码流,并获取编码后的码流数据中的一帧图像数据作为待发送数据;
通过对每一帧图像数据作为待发送数据进行处理,将待发送数据发送至接收端,接收端通过对每一帧图像数据进行解码,获取完整视频码流。
在本发明提供的又一实施例中,所述将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,具体包括:
所述发送端根据预设的第一数据量将所述待发送数据进行切分,并对获得的帧数据的数据量进行判断;
当获得帧数据的数据量小于所述第一数据量时,在该帧数据后填充“0”字符,直至该帧数据的数据量与所述第一数据量相同;
当获得的帧数据的数据量与所述第一数量相同时,在该帧数据前填充数据量相同的帧信息。
本实施例具体实施时,参见图2,是本发明实施例提供的帧数据获取的流程示意图,将获取的待发送数据按照每960byte进行切片处理,切片成帧数据,每一帧数据中包括960byte的数据量;预设的第一数据量为960byte,在其他实施例中,可设置为其他值;
由于待发送数据的数据量大小不一,每一待发送数据的切分最后的帧数据可能不足960byte,因此,需要对帧数据的数据量进行判断;
当获得帧数据的数据量小于960byte时,在该帧数据后填充“0”字符,直至该帧数据的数据量达到960byte;
当获得的帧数据的数据量均为960byte时,在每一帧数据前填充数据量相同的帧信息,帧信息包含帧数据在待发送数据中的顺序,以及每一待发送数据中帧数据的数量;
对待发送数据进行切片处理后,按照固定数据量进行压缩编码,避免由于视频帧数据量差异而造成的冗余编码运算时间耗时过长,导致算法效率低的问题,提高视频冗余编解码处理效率。
在本发明提供的又一实施例中,所述帧信息包括每一帧数据的帧大小,以及每一帧数据在所述待发送数据中的帧序号和帧内编号。
在本实施例具体实施时,参加图2,每一帧数据的头部的帧信息数据量均相同,均为64byte,包括每一帧数据的帧大小32byte,以及每一帧数据在所述待发送数据中的帧序号16byte和帧内编号16byte。
每一帧数据的帧信息的数据量相同,保持填充帧信息后的帧数据的数据量先相同,便于后续压缩和编码过程。
在本发明提供的又一实施例中,所述对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包,具体包括:
将所述待发送数据的实时传输数据包按照预设的同组数据包数量分为不同的分组,并得到每一分组的分组信息,将每一实时传输数据包的对应的分组信息填充进其拓展头部中;
通过用户数据包协议向所述接收端发送填充后的实时传输数据包。
在本实施例具体实施时,在对实时传输数据包进行分组时,需要设定每组帧数据的同组数据包数量,可设置为10;
根据预设的同组数据包数量,将待发送的实时传输数据包分成不同组分,并将每一组的每一实时传输数据包的分组信息填充进拓展头部中,分组信息用于区分不同实时传输数据包的分组以及每一实时传输数据包在分组中的排序;
通过用户数据包协议向所述接收端发送填充后的实时传输数据包。
通过将不同的通信数据包分为不同的分组,并在每一通信数据包中填充分组信息,便于接收端根据分组信息核验每组的实时传输数据包是否缺失,减少数据丢失。
在本发明提供的又一实施例中,所述分组信息包括:预设的同组数据包数量、编码组号、编码组合序号和预设的同组冗余包数量。
在本实施例具体实施时,每一实时传输数据包中填充的分组信息包括同组数据包数量k,同组冗余包数量n,编码组号gid,编码组内序号esi;每一组的实施传输数据包都会被压缩成数量为n的冗余数据包,同组冗余数据包数量n可根据实际情况设定。
在本发明提供的又一实施例中,所述将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包,具体包括:
将填充后的帧数据按照分组信息将同组帧数据依次加入编码缓冲区,并判断编码缓冲区中帧数据的数量是否达到该分组的分组信息中的同组数据包数量;
当编码缓冲区中帧数据的数量未达到所述同组数据包数量,继续将填充后的帧数据加入编码缓冲区;
当编码缓冲区中帧数据的数量达到所述同组数据包数量,进行前向纠错编码,生成冗余编码数据;
将获得的冗余编码数据封装成该分组的分组信息中同组冗余包数量的冗余数据包;
在每一冗余数据包的拓展头部中填充该分组的分组信息,通过流媒体协议向所述接收端发送冗余数据包。
在本实施例具体实施时,将填充后的帧数据按照分组信息将同组帧数据依次加入编码缓冲区,并判断编码缓冲区是否已满,其中编码缓冲区的数据量设定为同组数据包数量的帧数据的数据量;
当编码缓冲区还未满时,继续将填充后的帧数据加入编码缓冲区,直到编码缓冲区的数据量已满;
当编码缓冲区的数据量已满时,依据FEC前向冗余纠错编码信息启动FEC编码器,并对缓冲区中数据进行冗余编码,生成冗余编码数据;
将获得的冗余编码数据封装成该分组的分组信息中同组冗余包数量的冗余数据包;
在每一冗余数据包的拓展头部中填充该分组的分组信息,通过流媒体协议向所述接收端发送冗余数据包;
重复执行上述过程直到所有待发送数据发送完毕。
按照分组进行冗余编码,有效避免传统FEC按帧冗余编码时,某一帧数据量过大,处理器处理时长指数级增长而造成丢包未恢复的视频花屏、卡顿问题。
在本发明提供的又一实施例中,所述接收端接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,具体包括:
所述接收端根据获得的通信数据包的分组信息中的编码组号判断该通信数据包与接收的上一通信数据包是否为同一分组;
当该通信数据包与上一通信数据包为同一分组,将该通信数据包加入接收缓冲区中;
当该通信数据包与上一通信数据包不为同一分组,清空接收缓冲区中的数据,将该通信数据包加入清空的接收缓冲区中;
根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包;
当该分组的通信数据包未发生丢包时,将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区。
在本实施例具体实施时,接收端接收发送端发送的实时传输数据包和冗余数据包,将实时传输数据包和冗余数据包作为通信数据包;
依次对接收的每一通信数据包的分组进行判断,判断该通信数据包与接收的上一通信数据包是否为同一分组;具体地,同一组分的通信数据包的分组信息中的编码组号相同;
当该通信数据包与上一通信数据包为同一分组,将该通信数据包加入接收缓冲区中;
当该通信数据包与上一通信数据包不为同一分组,清空接收缓冲区中的数据,将该通信数据包加入清空的接收缓冲区中;以使接收缓冲区中只存在一个分组的通信数据包数据;
根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包,具体可通过分组信息中的同组数据包数量和同组冗余包数量判断;
当该分组的通信数据包未发生丢包时,将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区。
通过每一通信数据包的分组信息将接收的同一分组的通信数据包进行区分,并验证每一分组的数据量是否丢失,对未丢失通信数据包的组分的数据进行还原,生成待发送数据,减少数据量丢失导致视频卡顿和花屏。
在本发明提供的又一实施例中,所述方法还包括,接收端执行:
当该分组的通信数据包发生丢包时,判断解码缓冲区中所有通信数据包的数量是否小于该分组的分组信息中同组数据包数量;
当通信数据包的数量不小于该分组的分组信息中同组数据包数量,通过所有通信数据包还原丢失的实时传输数据包,并将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,即待发送数据中包括的所有帧数据均被接收时,所述待发送数据缓冲完成,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区;
当通信数据包的数量小于该分组的分组信息中同组数据包数量,判断通信数据丢失。
在本实施例具体实施时,当接受端通过通信数据包的分组信息判断该分组的通信数据包丢失时,判断解码缓冲区中所有通信数据包的数量是否小于同组数据包数量;
当通信数据包的数量不小于该分组的分组信息中同组数据包数量,此时该分组丢失的数据包的数据可通过为丢失的冗余数据包回复;
即,通过所有通信数据包还原丢失的实时传输数据包,并将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区;
当通信数据包的数量小于该分组的分组信息中同组数据包数量,无法通过接收的通信数据包还原所有实时传输数据包,此时判断通信数据丢失。
当接收的通信数据包的数量较多时,可通过接收的通信数据包还原带发送数据;当接收的通信数据包的数量较多时,无法还原待发送数据;将每一实时传输数据包的数据量设置相同,避免较多数据量的数据包丢失导致数据无法还原,提高通信传输质量。
在本发明提供的又一实施例中,所述根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包,具体包括:
检查接收缓冲区中的通信数据包的分组信息的编码组合序号,当接收缓冲区中出现分组信息的编码组合序号等于该分组信息的同组数据包数量与同组冗余包数量之和的通信数据包时,检查接收缓冲区中通信数据包的数量;
当接收缓冲区中通信数据包的数量小于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包发生丢包;
当接收缓冲区中通信数据包的数量等于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包未发生丢包。
在本实施例具体实施时,对通信数据包是否丢失的判断过程如下:
检查接收缓冲区中通信数据包的分组信息的编码组合序号,分组的同组数据包数量与同组冗余包数量之和为(k+n),当接收缓冲区中某一通信数据包的编码组合序号X与(k+n)相同时,表明该分组的通信数据包已接收到最后一个;此时,检查接收缓冲区中通信数据包的数量;
当接收缓冲区中通信数据包的数量小于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包发生丢包;
当接收缓冲区中通信数据包的数量等于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包未发生丢包。
通过对接收的通信数据包进行判断,确定每一分组的数据包是否发生丢包,保证传输数据的完整性。
参见图3,是本发明实施例提供的一种数据传输系统的结构示意图;数据传输系统包括发送端和接收端;
发送端包括:
硬件采集编码模块:通过USB摄像头采集视频图像并编码成H264码流。
fec编码模块:从硬件编解码中获取一帧视频数据作为待发送数据,对待发送数据进行切分并填充帧信息,对每组帧数据进行FEC前向冗余纠错编码和冗余数据包,发送冗余数据包。
rtp发送模块:将编码后的帧数据根据rtp协议封装成实时传输数据包,并填充分组信息,采用UDP协议的rtp发送向接收端的rtp接收模块发送实时传输数据包。
接收端包括:
rtp接收模块:对发送端发送的实时传输数据包和冗余数据包进行接收和排序。
fec解码模块:对接收到的通信数据包进行解码处理,将其恢复成H264码流,并放入硬件解码缓冲区。
硬件解码模块:将获取到的H264码流进行硬件解码,将H264码流数据恢复成视频图像。
接收方获取视频数据,并生成码流数据,进行编码,将向接收端传输数据;接收端接收数据,将其解码成码流数据,还原视频数据。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (8)

1.一种数据传输方法,其特征在于,所述方法包括:
发送端:将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,将每一填充后的帧数据封装成实时传输数据包;对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包;将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包;
所述接收端接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,所述通信数据包为实时传输数据包或冗余数据包;
所述接收端接收所述发送端发送的通信数据包,根据通信数据包的分组信息,将接收的通信数据包还原成所述待发送数据,具体包括:
所述接收端根据获得的通信数据包的分组信息中的编码组号判断该通信数据包与接收的上一通信数据包是否为同一分组;
当该通信数据包与上一通信数据包为同一分组,将该通信数据包加入接收缓冲区中;
当该通信数据包与上一通信数据包不为同一分组,清空接收缓冲区中的数据,将该通信数据包加入清空的接收缓冲区中;
根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包;
当该分组的通信数据包未发生丢包时,将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区;
当该分组的通信数据包发生丢包时,判断解码缓冲区中所有通信数据包的数量是否小于该分组的分组信息中同组数据包数量;
当通信数据包的数量不小于该分组的分组信息中同组数据包数量,通过所有通信数据包还原丢失的实时传输数据包,并将该分组的所有实时传输数据包加入解码缓冲区中,通过实时传输数据包的帧信息判断所述待发送数据的通信数据包缓冲完成时,将解码缓冲区中所有的实时传输数据包按照帧信息和分组信息还原成所述待发送数据,并清空解码缓冲区;
当通信数据包的数量小于该分组的分组信息中同组数据包数量,判断通信数据丢失。
2.如权利要求1所述的数据传输方法,其特征在于,所述待发送数据的获取过程为:
所述发送端将待发送的视频数据进行编码,并提取出编码后的码流中的一帧图像数据作为所述待发送数据。
3.如权利要求1所述的数据传输方法,其特征在于,所述将待发送数据切分为数据量相同的若干帧数据,在每一帧数据前填充所述待发送数据的帧信息,具体包括:
所述发送端根据预设的第一数据量将所述待发送数据进行切分,并对获得的帧数据的数据量进行判断;
当获得帧数据的数据量小于所述第一数据量时,在该帧数据后填充“0”字符,直至该帧数据的数据量与所述第一数据量相同;
当获得的帧数据的数据量与所述第一数据量相同时,在该帧数据前填充数据量相同的帧信息。
4.如权利要求1所述的数据传输方法,其特征在于,所述帧信息包括每一帧数据的帧大小,以及每一帧数据在所述待发送数据中的帧序号和帧内编号。
5.如权利要求1所述的数据传输方法,其特征在于,所述对获得的实时传输数据包进行分组,在每一实时传输数据包中填充分组信息,向接收端发送填充后的实时传输数据包,具体包括:
将所述待发送数据的实时传输数据包按照预设的同组数据包数量分为不同的分组,并得到每一分组的分组信息,将每一实时传输数据包的对应的分组信息填充进其拓展头部中;
通过用户数据包协议向所述接收端发送填充后的实时传输数据包。
6.如权利要求1所述的数据传输方法,其特征在于,所述分组信息包括:预设的同组数据包数量、编码组号、编码组合序号和预设的同组冗余包数量。
7.如权利要求1所述的数据传输方法,其特征在于,所述将填充后的帧数据按照分组信息进行冗余编码,并封装成若干冗余数据包,在每一冗余数据包中填充对应分组信息,依次向所述接收端发送填充后的冗余数据包,具体包括:
将填充后的帧数据按照分组信息将同组帧数据依次加入编码缓冲区,并判断编码缓冲区中帧数据的数量是否达到该分组的分组信息中的同组数据包数量;
当编码缓冲区中帧数据的数量未达到所述同组数据包数量,继续将填充后的帧数据加入编码缓冲区;
当编码缓冲区中帧数据的数量达到所述同组数据包数量,进行前向纠错编码,生成冗余编码数据;
将获得的冗余编码数据封装成该分组的分组信息中同组冗余包数量的冗余数据包;
在每一冗余数据包的拓展头部中填充该分组的分组信息,通过流媒体协议向所述接收端发送冗余数据包。
8.如权利要求1所述的数据传输方法,其特征在于,所述根据接收缓冲区中的通信数据包和该分组的分组信息判断该分组的通信数据包是否发生丢包,具体包括:
检查接收缓冲区中的通信数据包的分组信息的编码组合序号,当接收缓冲区中出现分组信息的编码组合序号等于该分组信息的同组数据包数量与同组冗余包数量之和的通信数据包时,检查接收缓冲区中通信数据包的数量;
当接收缓冲区中通信数据包的数量小于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包发生丢包;
当接收缓冲区中通信数据包的数量等于该分组信息的同组数据包数量与同组冗余包数量之和时,判定该分组数据包未发生丢包。
CN202210162606.XA 2022-02-22 2022-02-22 一种数据传输方法 Active CN114584847B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210162606.XA CN114584847B (zh) 2022-02-22 2022-02-22 一种数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210162606.XA CN114584847B (zh) 2022-02-22 2022-02-22 一种数据传输方法

Publications (2)

Publication Number Publication Date
CN114584847A CN114584847A (zh) 2022-06-03
CN114584847B true CN114584847B (zh) 2023-11-28

Family

ID=81775012

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210162606.XA Active CN114584847B (zh) 2022-02-22 2022-02-22 一种数据传输方法

Country Status (1)

Country Link
CN (1) CN114584847B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285554A (ja) * 1997-04-07 1998-10-23 Sony Corp 誤り訂正データ生成装置および方法、誤り訂正装置および方法、並びにデータ記録装置および方法
CN1968036A (zh) * 2006-05-31 2007-05-23 华为技术有限公司 一种前向纠错解码装置及控制方法
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
CN101359981A (zh) * 2008-09-27 2009-02-04 腾讯科技(深圳)有限公司 一种数据包冗余编解码的方法、装置及系统
JP2010119009A (ja) * 2008-11-14 2010-05-27 Onkyo Corp コンテンツ配信システム、受信装置及び再生プログラム
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
JP2012114569A (ja) * 2010-11-22 2012-06-14 Panasonic Corp データ通信システム
CN108039938A (zh) * 2017-12-21 2018-05-15 国网浙江省电力有限公司电力科学研究院 电力物联网低功耗并发数据帧编码方法及系统
CN109547467A (zh) * 2018-12-19 2019-03-29 北京东土科技股份有限公司 媒体数据纠错传输及纠错方法、装置、设备及存储介质
CN112804028A (zh) * 2020-10-22 2021-05-14 北京佳讯飞鸿电气股份有限公司 一种数据包的传输方法、设备及存储介质
CN113810769A (zh) * 2021-08-18 2021-12-17 西安万像电子科技有限公司 数据传输方法及系统
CN114051173A (zh) * 2021-10-09 2022-02-15 广州广哈通信股份有限公司 一种基于rtp扩展头部的视频帧可靠传输方法、装置及设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285554A (ja) * 1997-04-07 1998-10-23 Sony Corp 誤り訂正データ生成装置および方法、誤り訂正装置および方法、並びにデータ記録装置および方法
CN1968036A (zh) * 2006-05-31 2007-05-23 华为技术有限公司 一种前向纠错解码装置及控制方法
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
CN101359981A (zh) * 2008-09-27 2009-02-04 腾讯科技(深圳)有限公司 一种数据包冗余编解码的方法、装置及系统
JP2010119009A (ja) * 2008-11-14 2010-05-27 Onkyo Corp コンテンツ配信システム、受信装置及び再生プログラム
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
JP2012114569A (ja) * 2010-11-22 2012-06-14 Panasonic Corp データ通信システム
CN108039938A (zh) * 2017-12-21 2018-05-15 国网浙江省电力有限公司电力科学研究院 电力物联网低功耗并发数据帧编码方法及系统
CN109547467A (zh) * 2018-12-19 2019-03-29 北京东土科技股份有限公司 媒体数据纠错传输及纠错方法、装置、设备及存储介质
CN112804028A (zh) * 2020-10-22 2021-05-14 北京佳讯飞鸿电气股份有限公司 一种数据包的传输方法、设备及存储介质
CN113810769A (zh) * 2021-08-18 2021-12-17 西安万像电子科技有限公司 数据传输方法及系统
CN114051173A (zh) * 2021-10-09 2022-02-15 广州广哈通信股份有限公司 一种基于rtp扩展头部的视频帧可靠传输方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
减少重建数据量的冗余编码技术研究;马良荔等;;计算机科学(S1);全文 *

Also Published As

Publication number Publication date
CN114584847A (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
CN102143367B (zh) 一种纠错校验方法、设备和系统
KR101050830B1 (ko) Crc 패리티 코드를 사용하는 비디오 에러 검출 기술
US20110085602A1 (en) Video Communication System, Device and Method Based on Feedback Reference Frames
RU2009116472A (ru) Динамическая модификация свойств видео
JP2000134620A (ja) 圧縮符号化されたビデオ信号を復号化する方法
CN110943800A (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
TW201001967A (en) Communication transmitter, communication receiver, packet redundancy method and packet recovery method
CN111935485A (zh) 一种rs码前向纠错方法及装置
CN108429921A (zh) 一种视频编解码方法及装置
CN113364508B (zh) 一种语音数据的传输控制方法、系统及设备
CN114584847B (zh) 一种数据传输方法
CN109245863B (zh) 用于传输和接收前向纠错分组的装置和方法
CN101192903B (zh) 数据帧编解码控制方法
CN101296166B (zh) 基于索引的多媒体数据的测量方法
CN1863311B (zh) 传输视频数据的方法
KR20150046700A (ko) 오류 정정 부호를 사용하는 통신 시스템에서 패킷 송수신 기법
JP3408957B2 (ja) 可変長符号化データ伝送装置、送信側装置、受信側装置およびその方法
CN113541853B (zh) 数据传输方法、终端及计算机可读存储介质
EP1555788A1 (en) Method for improving the quality of an encoded video bit stream transmitted over a wireless link, and corresponding receiver
JP5474896B2 (ja) Crcパリティコードを利用したビデオエラー検出技術
CN105407351A (zh) 一种从实时传输协议数据包中重建编码方式的方法和装置
CN117041584A (zh) 一种适用于北斗三代短报文图片的高效传输方法
CN117749322A (zh) 一种数据传输方法和装置
KR20180054690A (ko) 무선 네트워크에서 비디오 데이터 스트림의 송신을 최적화하기 위한 방법
Pascual Biosca et al. Optimal interleaving for robust wireless JPEG 2000 images and video transmission

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant