CN106162374B - 一种低复杂度的帧内编码帧鲁棒传输方法及系统 - Google Patents

一种低复杂度的帧内编码帧鲁棒传输方法及系统 Download PDF

Info

Publication number
CN106162374B
CN106162374B CN201610503382.9A CN201610503382A CN106162374B CN 106162374 B CN106162374 B CN 106162374B CN 201610503382 A CN201610503382 A CN 201610503382A CN 106162374 B CN106162374 B CN 106162374B
Authority
CN
China
Prior art keywords
error correction
packet
data packet
frame
data
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
CN201610503382.9A
Other languages
English (en)
Other versions
CN106162374A (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.)
Chengdu Sego Internet Of Things Technology Co Ltd
Original Assignee
Chengdu Sego Internet Of Things Technology 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 Chengdu Sego Internet Of Things Technology Co Ltd filed Critical Chengdu Sego Internet Of Things Technology Co Ltd
Priority to CN201610503382.9A priority Critical patent/CN106162374B/zh
Publication of CN106162374A publication Critical patent/CN106162374A/zh
Application granted granted Critical
Publication of CN106162374B publication Critical patent/CN106162374B/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
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • 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
    • 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
    • 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/64723Monitoring of network processes or resources, e.g. monitoring of network load

Landscapes

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

Abstract

本发明公开了一种低复杂度的帧内编码帧鲁棒传输方法,提供了根据发送端缓存的I帧数据包生成纠错数据包,然后根据纠错数据包解析对接收端接收的I帧数据包进行丢失恢复的方式,以及,通过将接收端获得I帧数据包的顺序号反馈到发送端,从而由发送端将丢失的数据包重新发送到接收端对丢失数据包进行补充的方式。本发明通过前向纠错和重新传输两种方式的相互补充,即提高了该系统的灵活性,又提高了效率性和实用性。

Description

一种低复杂度的帧内编码帧鲁棒传输方法及系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种低复杂度的帧内编码帧鲁棒传输方法及系统。
背景技术
多媒体的传输对移动网络的服务质量带来了很大挑战,其原因在于多媒体数据的传输对时延、抖动、丢包、带宽等都很敏感。例如对于视频会议系统,国际电信联盟ITU-T提出单向时延不能大于150毫秒,视频数据的丢包率要低于1%。虽然,新一代的移动网络有很多优化,但其仍然没有解决无线电路不稳定的问题,在进行视频通话时,视频数据传输过程中很容易发生错误和丢失,这样会严重影响视频通话的体验。
在视频码流中,I帧由于在时域上不参考其他帧,是时域上重同步点,一段视频一旦出现由丢包造成的马赛克时,必须当一个新的I帧(帧内编码帧)出现时,马赛克才会消失,因此对I帧进行保护进而确保其能够被接收端正确接收对于提升视频质量具有重要意义。
对于传输数据的保护,在应用层上有两种思路,一种是前向纠错码,通过对重要数据添加冗余信息,在发生数据丢失时,可以通过冗余信息恢复丢失的数据,常用的前向纠错码就是R-S(Reed-Solomon)码。这种方式不会带来时延,但是运算复杂;另一种方式是重传技术,将接收端收到的数据信息发送给发送端,发送端获得该信息后可以将接收端没有正确接收的数据进行重新发送。这种方式一般存在一定的时延,且待反馈的数据较多,对网络带宽压力较大。
发明内容
基于背景技术存在的技术问题,本发明提出了一种低复杂度的帧内编码帧鲁棒传输方法及系统。
本发明提出的一种低复杂度的帧内编码帧鲁棒传输方法,包括以下步骤:
S1、将待传输数据的输入码流组包后发送,接收端接收数据后对已经接收的I帧数据包进行缓存;
S2、在发送端获取已经发送的数据的I帧数据包并缓存;
S3、对所有的I帧数据包进行分组异或运算,生成相应的纠错数据包并发送给接收端;
S4、接收端根据接收到的I帧数据包和相应的纠错数据包恢复该I帧的正确数据,纠正在传输过程中丢掉的帧内编码数据包;
S5、接收端遍历经过纠错处理后的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包发送到发送端;
S6、发送端获取接收端生成的负反馈包并进行解析,然后根据I帧数据包的顺序号从缓存的I帧数据包调取在接收端不能正确获得的I帧数据包进行重新发送。
优选地,步骤S1中,接收端分析接收到的数据包,对于RTP封装格式,通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,并对I帧数据包进行缓存。
优选地,当步骤S1中输入码流通过RTP封装格式组包,步骤S2具体包括以下步骤:
S21、通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,并将I帧数据包进行缓存;
S22、通过解析RTP包头中的marker_bit字段判断当前数据包是否为当前I帧的最后一个数据包,如果当前数据包为当前I帧的最后一个数据包,如果是则执行步骤S3,如果不是则返回步骤S21。
优选地,步骤S3具体包括以下步骤:
S31、预设阈值fec_unit,将当前所有的K个I帧数据包以fec_unit个包划分为一个纠错编码单元,每个纠错编码单元生成一个纠错包,纠错包由纠错包包头和纠错包负载数据构成;K为大于等于1的整数,fec_unit为大于等于1的整数,如果K不能被fec_unit整除,则最后一个纠错编码单元以K%fec_unit个数据包为输入,%为取模运算;
S32、对应每个纠错包分配对应其负载数据长度max_len的max_len个字节的内存用于存储纠错包负载数据,并置0;
S33、将纠错编码单元内的第一个数据包数据拷贝至纠错包负载数据内;
S34、将纠错编码单元内的第2个数据包数据与纠错包负载数据按照每个字节分别进行异或运算,如果当前数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据;
S35、按照步骤S34的方式,分别处理纠错编码单元内的剩下的数据包;
S36、构建纠错包的包头,纠错包的包头包含纠错编码单元的第一个数据包的顺序号、该纠错编码单元所包含的数据包数量以及纠错长度;
S37、纠错包构造完毕后,存入纠错数据包缓存,在非I帧数据包发送时,顺序将纠错数据包缓存内的的纠错数据包发送出去。
优选地,步骤S32中,生成的纠错包的负载数据长度max_len为对应的纠错编码单元内包长度最大的数据包的包长度。
优选地,步骤S36中,纠错长度由该纠错编码单元内所有数据包的负载长度进行异或运算得到。
优选地,步骤S4具体具体为:解析纠错包的包头,获得纠错编码单元的第一个数据包的顺序号和该纠错编码单元所包含的数据包数量,判断该纠错编码单元里的数据包在I帧数据包缓存里是否都存在,如果都存在或者丢失的数据包超过一个,则不需要对纠错包进行解译;如果丢失的数据包数量为1个,则对纠错包进行解析并恢复丢失的数据包。
优选地,步骤S4中,对纠错包进行解析并恢复丢失的数据包的方式包括以下步骤:
S41、从纠错包包头中获得纠错长度,顺序与接收端I帧缓存中的该纠错编码单元中的数据包包长度进行异或运算并将计算结果重新赋值给纠错长度;
S42、顺序取出接收端I帧缓存中的该纠错编码单元中的数据包进行如下运算:数据包数据与纠错包负载数据按照字节分别进行异或运算,如果数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据;
S43、从步骤S42中取出步骤S41所得到的纠错长度对应的负载长度的数据即为丢失的数据包。
优选地,步骤S5具体为:接收端每隔m毫秒检查I帧缓存中时间戳早于当前数据包的所有I帧数据包的顺序号连续性,计算出缺失的顺序号,并将这些顺序号作为负反馈包的负载数据构建完成负反馈包,然后将负反馈包发送给发送端。
一种低复杂度的I帧鲁棒传输系统,由发送端将待传输数据的输入码流组包后发送到接收端,发送端包括第一I帧数据包缓存模块、前向纠错包处理模块和负反馈包处理模块,接收端包括第二I帧数据包缓存模块、前向纠错包解译模块和负反馈包生成模块;
第一I帧数据包缓存模块获取已经发送的I帧数据包并进行缓存;前向纠错包处理模块与第一I帧数据包缓存模块连接,其对缓存的I帧数据包进行分组异或运算,生成相应的纠错数据包;
第二I帧数据包缓存模块获取接收端接收的I帧数据包进行缓存;前向纠错包解译模块分别连接第二I帧数据包缓存模块和前向纠错包处理模块,其根据纠错数据包对第二I帧数据包缓存模块缓存的I帧数据包进行纠错;
负反馈包生成模块与第二I帧数据包缓存模块连接,其用于遍历经过前向纠错处理后的第二I帧数据包缓存模块内的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包;
负反馈包处理模块分别连接负反馈包生成模块和第一I帧数据包缓存模块,其获取负反馈包并进行解析,并将在接收端不能正确获得的I帧数据包进行重新发送到接收端。
本发明提供的一种低复杂度的帧内编码帧鲁棒传输方法,提供了根据发送端缓存的I帧数据包生成纠错数据包,然后根据纠错数据包解析对接收端接收的I帧数据包进行丢失恢复的方式,以及,通过将接收端获得I帧数据包的顺序号反馈到发送端,从而由发送端将丢失的数据包重新发送到接收端对丢失数据包进行补充的方式。
本发明中,通过解析纠错包判断I帧数据包在传输过程中的丢失情况,如果丢失的I帧数据包可通过纠错包解析进行恢复,则通过前向纠错对接收端缓存的I帧数据包进行恢复,提高接收端数据包恢复的速度,避免时间延迟,提高数据传输的效率。如果丢失的I帧数据包数量过多,不可通过前向纠错进行恢复,则通过数据包重新传输对接收端数据包进行补充。如此,通过前向纠错和重新传输两种方式的相互补充,即提高了该系统的灵活性,又提高了效率性和实用性。
附图说明
图1为本发明提出的一种低复杂度的帧内编码帧鲁棒传输方法流程图;
图2为本发明中纠错包生成及发送方法流程图;
图3为对纠错包进行解析并恢复丢失的数据包的方式流程图;
图4为一种低复杂度的I帧鲁棒传输系统结构图。
具体实施方式
参照图1、图2,本发明提出的一种低复杂度的帧内编码帧鲁棒传输方法,包括以下步骤。
S1、将待传输数据的输入码流组包后发送,接收端接收数据后对已经接收的I帧(帧内编码帧)数据包进行缓存。
本实施方式中,输入码流可通过RTP封装格式组包,接收端分析接收到的数据包,对于RTP封装格式,通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,并对I帧数据包进行缓存。
S2、在发送端获取已经发送的数据的I帧数据包并缓存。如此,当接收方接收的I帧数据包不正确,可直接从发送端调取缓存的I帧数据包重新发送。
当步骤S1中输入码流通过RTP封装格式组包,步骤S2具体包括以下步骤:
S21、通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,如果是I帧数据包,则将I帧数据包进行缓存。
S22、通过解析RTP包头中的marker_bit字段判断当前数据包是否为当前I帧的最后一个数据包,如果当前数据包为当前I帧的最后一个数据包,如果是则执行步骤S3,即从I帧数据包缓存中取出所有当前I帧数据包进行后续处理;如果不是则返回步骤S21,对后续数据包进行判断,直至将接收端接收到的所有数据包判断完成。
本实施方式中,为了便于后续处理,将发送端缓存的I帧数据包数量以K值表示,K为大于等于1的整数。
S31、预设阈值fec_unit,将当前所有的K个I帧数据包以fec_unit个包划分为一个纠错编码单元,每个纠错编码单元生成一个纠错包,纠错包由纠错包包头和纠错包负载数据构成。fec_unit为大于等于1的整数。
本步骤中,根据I帧数据包划分纠错编码单元,如果K能被fec_unit整除,则每个纠错编码单元均包含fec_unit个数据包;如果K不能被fec_unit整除,则最后一个纠错编码单元以K%fec_unit个数据包为输入,%为取模运算。本实施方式中,假设K/fec_unit≈N,N为正整数且N×fec_unit≦K,则K%fec_unit表示K除以N的余数。
S32、对应每个纠错包分配对应其负载数据长度max_len的max_len个字节的内存用于存储纠错包负载数据,并置0。本步骤中,生成的纠错包的负载数据长度max_len为对应的纠错编码单元内包长度最大的数据包的包长度,以便各纠错包容纳负载数据。
S33、将纠错编码单元内的第一个数据包数据拷贝至纠错包负载数据内。
S34、将纠错编码单元内的第2个数据包数据与纠错包负载数据按照每个字节分别进行异或运算,如果当前数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据。
S35、按照步骤S34的方式,分别处理纠错编码单元内的剩下的数据包,直至纠错包负载数据与纠错单元内每一个数据包相关。
S36、构建纠错包的包头,纠错包的包头包含纠错编码单元的第一个数据包的顺序号、该纠错编码单元所包含的数据包数量以及纠错长度。纠错长度由该纠错编码单元内所有数据包的负载长度进行异或运算得到。
S37、纠错包构造完毕后,存入纠错数据包缓存,在非I帧数据包发送时,顺序将纠错数据包缓存内的的纠错数据包发送出去。
如此,通过步骤S31至步骤S37获得的纠错数据包与发送端I帧缓存内的每一个I帧数据包相关,接收端获得纠错数据包后可作为发送端发送出去的数据包的纠错依据。
S4、接收端根据接收到的I帧数据包和相应的纠错数据包恢复该I帧的正确数据,纠正在传输过程中丢掉的帧内编码数据包。具体方式为:解析纠错包的包头,获得纠错编码单元的第一个数据包的顺序号和该纠错编码单元所包含的数据包数量,判断该纠错编码单元里的数据包在I帧数据包缓存里是否都存在,如果都存在或者丢失的数据包超过一个,则不需要对纠错包进行解译;如果丢失的数据包数量为1个,则对纠错包进行解析并恢复丢失的数据包。
本步骤中,如果纠错编码单元里的数据包在接收端I帧数据包缓存里都存在,则说明数据传输过程没有发生丢包,不需要对接收端I帧数据包缓存里的I帧数据包机械牛纠正。如果,纠错编码单元里的数据包在接收端I帧数据包缓存里丢失的数据包超过一个,由于纠错包采用的生成方式,不能直接根据纠错包对丢失的数据包进行恢复。故而,本步骤中,只有当纠错编码单元里的数据包在接收端I帧数据包缓存里丢失的数据包为一个时,才对纠错包进行解析并恢复丢失的数据包。
参照图3,步骤S4中,对纠错包进行解析并恢复丢失的数据包的方式包括以下步骤:
S41、从纠错包包头中获得纠错长度,顺序与接收端I帧缓存中的该纠错编码单元中的数据包包长度进行异或运算并将计算结果重新赋值给纠错长度。
根据步骤S32中纠错包纠错长度的计算方式可知,通过步骤S42重新赋值的纠错长度即为丢失的数据包包长度。
S42、顺序取出接收端I帧缓存中的该纠错编码单元中的数据包进行如下运算:数据包数据与纠错包负载数据按照字节分别进行异或运算,如果数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据。
S43、从步骤S42中取出步骤S41所得到的纠错长度对应的负载长度的数据即为丢失的数据包。
S5、接收端遍历经过纠错处理后的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包发送到发送端。
本步骤具体针对步骤S4中,纠错编码单元里的数据包在接收端I帧数据包缓存里丢失的数据包超过一个的情况。
步骤S5具体为:接收端每隔m毫秒检查I帧缓存中时间戳早于当前数据包的所有I帧数据包的顺序号连续性,计算出缺失的顺序号,并将这些顺序号作为负反馈包的负载数据构建完成负反馈包,然后将负反馈包发送给发送端。
S6、发送端获取接收端生成的负反馈包并进行解析,然后根据I帧数据包的顺序号从缓存的I帧数据包调取在接收端不能正确获得的I帧数据包进行重新发送。
如此,本实施方式中,结合步骤S4的纠错恢复与不好走S5中负反馈,可保证最终接收端接收到的I帧数据包的正确性。
以下结合一种具体地系统对以上方法做进一步解释。
参照图4,本发明提供的一种低复杂度的I帧鲁棒传输系统,包括发送端和接收端,发送端将待传输数据的输入码流组包后发送到接收端。发送端包括第一I帧数据包缓存模块、前向纠错包处理模块和负反馈包处理模块,接收端包括第二I帧数据包缓存模块、前向纠错包解译模块和负反馈包生成模块。
发送端输入的码流按照正常的组包方式进行组包并发送。
第一I帧数据包缓存模块获取已经发送的I帧数据包并进行缓存。具体地,对于RTP封装格式,通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,如果是I帧数据包将其存入第一I帧数据包缓存模块。
前向纠错包处理模块与第一I帧数据包缓存模块连接,其对缓存的I帧数据包进行分组异或运算,生成相应的纠错数据包。
前向纠错包处理模块获取第一I帧数据包缓存模块缓存的所有K个I帧数据包并划分为多个纠错编码单元,每一个纠错编码单元包括fec_unit个I帧数据包。如果,如果K不能被fec_unit整除,则最后一个纠错编码单元包括K%fec_unit个I帧数据包,其中%为取模运算。对于每个纠错编码单元,寻找该单元内包长度最大的数据包,其包长度为max_len,则生成的纠错包的负载数据长度为max_len,然后分配max_len个字节的内存用于存储纠错包负载数据并置0,将纠错编码单元内的第一个数据包数据拷贝至纠错包的负载数据内。将第2个I帧数据包的包数据与纠错包负载数据按照每个字节分别进行异或运算,如果当前数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据。按照对第2个I帧数据包的处理方式依次对纠错编码单元内剩余的I帧数据包进行处理。
纠错包由负载数据和包头构成,负载数据通过以上方式获得,包头包含三部分信息,第一,纠错编码单元的第一个数据包的顺序号;第二,该纠错编码单元所包含的数据包数量;第三,纠错长度。纠错长度由该纠错编码单元内所有数据包的负载长度之间进行异或运算得到。
第二I帧数据包缓存模块获取接收端接收的I帧数据包进行缓存。具体地,接收端对接收到的数据包进行分析,对于RTP封装格式,通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,如果是I帧数据包将其存入第二I帧数据包缓存模块。且,通过解析I帧数据包RTP包头中的marker_bit字段判断当前数据包是否为当前I帧的最后一个数据包,以便对发送的所有的I帧数据包进行缓存。
前向纠错包解译模块分别连接第二I帧数据包缓存模块和前向纠错包处理模块,其根据纠错数据包对第二I帧数据包缓存模块缓存的I帧数据包进行纠错。前向纠错包解译模块监听是否收到纠错包,如果收到纠错包,则判断是否需要采用纠错包进行数据纠错,具体判断方式为:解析纠错包的包头,获得纠错编码单元的第一个数据包的顺序号和该纠错编码单元所包含的数据包数量,判断该纠错编码单元里的数据包在I帧数据包缓存里是否都存在,如果都存在或者丢失的数据包超过一个,则不需要对该前向纠错包进行解译;如果丢失的数据包数量为1个,则对该纠错包进行解译恢复丢失的数据包。
负反馈包生成模块与第二I帧数据包缓存模块连接,其用于遍历经过前向纠错处理后的第二I帧数据包缓存模块内的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包。
负反馈包处理模块分别连接负反馈包生成模块和第一I帧数据包缓存模块。负反馈包处理模块监听从接收端是否发送来负反馈包,其获取负反馈包并进行解析获得负反馈包中的数据包的顺序号,并根据顺序号将在接收端不能正确获得的I帧数据包进行重新发送到接收端。
本实施方式中,通过解析纠错包判断I帧数据包在传输过程中的丢失情况,如果只丢失一个I帧数据包则通过前向纠错对接收端缓存的I帧数据包进行恢复;如果丢失的I帧数据包为多个,则通过数据包重新传输对接收端数据包进行补充。如此,通过前向纠错和重新传输两种方式的相互补充,即提高了该系统的灵活性,又提高了效率性和实用性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种低复杂度的帧内编码帧鲁棒传输方法,其特征在于,包括以下步骤:
S1、将待传输数据的输入码流组包后发送,接收端接收数据后对已经接收的I帧数据包进行缓存;
S2、在发送端获取已经发送的数据的I帧数据包并缓存;
S3、对所有的I帧数据包进行分组异或运算,生成相应的纠错数据包并发送给接收端;
S4、接收端根据接收到的I帧数据包和相应的纠错数据包恢复该I帧的正确数据,纠正在传输过程中丢掉的帧内编码数据包;
S5、接收端遍历经过纠错处理后的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包发送到发送端;
S6、发送端获取接收端生成的负反馈包并进行解析,然后根据I帧数据包的顺序号从缓存的I帧数据包调取在接收端不能正确获得的I帧数据包进行重新发送;
步骤S3具体包括以下步骤:
S31、预设阈值fec_unit,将当前所有的K个I帧数据包以fec_unit个包划分为一个纠错编码单元,每个纠错编码单元生成一个纠错包,纠错包由纠错包包头和纠错包负载数据构成;K为大于等于1的整数,fec_unit为大于等于1的整数,如果K不能被fec_unit整除,则最后一个纠错编码单元以K%fec_unit个数据包为输入,%为取模运算;
S32、对应每个纠错包分配对应其负载数据长度max_len的max_len个字节的内存用于存储纠错包负载数据,并置0;
S33、将纠错编码单元内的第一个数据包数据拷贝至纠错包负载数据内;
S34、将纠错编码单元内的第2个数据包数据与纠错包负载数据按照每个字节分别进行异或运算,如果当前数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据;
S35、按照步骤S34的方式,分别处理纠错编码单元内的剩下的数据包;
S36、构建纠错包的包头,纠错包的包头包含纠错编码单元的第一个数据包的顺序号、该纠错编码单元所包含的数据包数量以及纠错长度;
S37、纠错包构造完毕后,存入纠错数据包缓存,在非I帧数据包发送时,顺序将纠错数据包缓存内的的纠错数据包发送出去。
2.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S1中,接收端分析接收到的数据包,对于RTP封装格式,通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,并对I帧数据包进行缓存。
3.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,当步骤S1中输入码流通过RTP封装格式组包,步骤S2具体包括以下步骤:
S21、通过解析RTP包负载数据的第一个字节,判断当前数据包是否为I帧数据包,并将I帧数据包进行缓存;
S22、通过解析RTP包头中的marker_bit字段判断当前数据包是否为当前I帧的最后一个数据包,如果当前数据包为当前I帧的最后一个数据包,如果是则执行步骤S3,如果不是则返回步骤S21。
4.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S32中,生成的纠错包的负载数据长度max_len为对应的纠错编码单元内包长度最大的数据包的包长度。
5.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S36中,纠错长度由该纠错编码单元内所有数据包的负载长度进行异或运算得到。
6.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S4具体具体为:解析纠错包的包头,获得纠错编码单元的第一个数据包的顺序号和该纠错编码单元所包含的数据包数量,判断该纠错编码单元里的数据包在I帧数据包缓存里是否都存在,如果都存在或者丢失的数据包超过一个,则不需要对纠错包进行解译;如果丢失的数据包数量为1个,则对纠错包进行解析并恢复丢失的数据包。
7.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S4中,对纠错包进行解析并恢复丢失的数据包的方式包括以下步骤:
S41、从纠错包包头中获得纠错长度,顺序与接收端I帧缓存中的该纠错编码单元中的数据包包长度进行异或运算并将计算结果重新赋值给纠错长度;
S42、顺序取出接收端I帧缓存中的该纠错编码单元中的数据包进行如下运算:数据包数据与纠错包负载数据按照字节分别进行异或运算,如果数据包的包长度没有达到纠错包的负载数据的长度,则使用0与剩余的纠错包负载数据按照字节进行异或运算,将计算结果重新赋值给纠错包负载数据;
S43、从步骤S42中取出步骤S41所得到的纠错长度对应的负载长度的数据即为丢失的数据包。
8.如权利要求1所述的低复杂度的帧内编码帧鲁棒传输方法,其特征在于,步骤S5具体为:接收端每隔m毫秒检查I帧缓存中时间戳早于当前数据包的所有I帧数据包的顺序号连续性,计算出缺失的顺序号,并将这些顺序号作为负反馈包的负载数据构建完成负反馈包,然后将负反馈包发送给发送端。
9.一种低复杂度的I帧鲁棒传输系统,由发送端将待传输数据的输入码流组包后发送到接收端,其特征在于,发送端包括第一I帧数据包缓存模块、前向纠错包处理模块和负反馈包处理模块,接收端包括第二I帧数据包缓存模块、前向纠错包解译模块和负反馈包生成模块;
第一I帧数据包缓存模块获取已经发送的I帧数据包并进行缓存;前向纠错包处理模块与第一I帧数据包缓存模块连接,其对缓存的I帧数据包进行分组异或运算,生成相应的纠错数据包;
第二I帧数据包缓存模块获取接收端接收的I帧数据包进行缓存;前向纠错包解译模块分别连接第二I帧数据包缓存模块和前向纠错包处理模块,其根据纠错数据包对第二I帧数据包缓存模块缓存的I帧数据包进行纠错;
负反馈包生成模块与第二I帧数据包缓存模块连接,其用于遍历经过前向纠错处理后的第二I帧数据包缓存模块内的I帧数据包,计算出没有正确传输到接收端的I帧数据包的顺序号,并将这些顺序号组成负反馈包;
负反馈包处理模块分别连接负反馈包生成模块和第一I帧数据包缓存模块,其获取负反馈包并进行解析,并将在接收端不能正确获得的I帧数据包进行重新发送到接收端。
CN201610503382.9A 2016-06-29 2016-06-29 一种低复杂度的帧内编码帧鲁棒传输方法及系统 Active CN106162374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610503382.9A CN106162374B (zh) 2016-06-29 2016-06-29 一种低复杂度的帧内编码帧鲁棒传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610503382.9A CN106162374B (zh) 2016-06-29 2016-06-29 一种低复杂度的帧内编码帧鲁棒传输方法及系统

Publications (2)

Publication Number Publication Date
CN106162374A CN106162374A (zh) 2016-11-23
CN106162374B true CN106162374B (zh) 2019-04-02

Family

ID=57350417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610503382.9A Active CN106162374B (zh) 2016-06-29 2016-06-29 一种低复杂度的帧内编码帧鲁棒传输方法及系统

Country Status (1)

Country Link
CN (1) CN106162374B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109862400B (zh) * 2019-02-18 2021-08-31 苏州长风航空电子有限公司 一种流媒体传输方法、装置及其系统
CN109905925B (zh) * 2019-05-10 2019-08-16 恒玄科技(上海)有限公司 无线设备组件及无线设备组件的通信方法
CN110636333A (zh) * 2019-08-19 2019-12-31 西安万像电子科技有限公司 丢帧处理方法及装置
CN110649994B (zh) * 2019-09-27 2022-03-22 北京奇艺世纪科技有限公司 数据传输控制方法及相关设备、存储介质
CN113541853B (zh) * 2020-04-13 2022-12-16 海能达通信股份有限公司 数据传输方法、终端及计算机可读存储介质
WO2021237400A1 (zh) * 2020-05-25 2021-12-02 深圳市大疆创新科技有限公司 传输数据的方法、装置、发送端和接收端
CN114079534B (zh) 2020-08-20 2023-03-28 腾讯科技(深圳)有限公司 编码、解码方法、装置、介质和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741435A (zh) * 2004-08-24 2006-03-01 华为技术有限公司 对丢失数据单元进行恢复的方法
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
CN101521559A (zh) * 2008-02-27 2009-09-02 英属开曼群岛商傲群视音股份有限公司 通讯发送器及通讯接收器及分组冗余法及分组复原法
CN101562512A (zh) * 2009-05-27 2009-10-21 西安电子科技大学 基于fec的选择重传系统及其重传方法
CN101568037A (zh) * 2008-04-21 2009-10-28 展讯通信(上海)有限公司 一种dvb-h手机电视流式修复的方法、终端与系统
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
CN103152652A (zh) * 2013-03-15 2013-06-12 浙江大学 一种基于柯西rs编码的视频帧数据网络传输方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1741435A (zh) * 2004-08-24 2006-03-01 华为技术有限公司 对丢失数据单元进行恢复的方法
CN101119319A (zh) * 2007-09-19 2008-02-06 腾讯科技(深圳)有限公司 一种在数据传输过程中抵抗丢包的方法、收发装置及系统
CN101521559A (zh) * 2008-02-27 2009-09-02 英属开曼群岛商傲群视音股份有限公司 通讯发送器及通讯接收器及分组冗余法及分组复原法
CN101568037A (zh) * 2008-04-21 2009-10-28 展讯通信(上海)有限公司 一种dvb-h手机电视流式修复的方法、终端与系统
CN101562512A (zh) * 2009-05-27 2009-10-21 西安电子科技大学 基于fec的选择重传系统及其重传方法
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
CN103152652A (zh) * 2013-03-15 2013-06-12 浙江大学 一种基于柯西rs编码的视频帧数据网络传输方法

Also Published As

Publication number Publication date
CN106162374A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106162374B (zh) 一种低复杂度的帧内编码帧鲁棒传输方法及系统
KR100458878B1 (ko) Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
CN110943800B (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
US8004963B2 (en) Apparatus and method for packet redundancy and recovery
KR101649374B1 (ko) 가속화된 처리율을 달성하는 시스템 및 방법
EP2421190B1 (en) Medium streaming distribution system
US5844918A (en) Digital transmission/receiving method, digital communications method, and data receiving apparatus
US8365034B2 (en) Forward error correction (FEC) encoding and decoding method of variable length packet based on three-dimensional storage apparatus
CN1937631B (zh) 用户数据报协议报文的处理方法及装置
JP3450771B2 (ja) データ伝送方法,及びデータ送信装置
CN101193312B (zh) 基于反馈的自适应错误恢复装置、视频通信系统和方法
WO2001084731A1 (en) Methods and systems for forward error correction based loss recovery for interactive video transmission
CN109905205B (zh) 数据发送、接收的方法及设备、数据传输方法及系统
CA2543349C (en) Method for lost packet reconstruction and device for carrying out said method
EP1169801B1 (en) Method and devices for digital data transfer
CN102006295A (zh) 基于atm承载ip语音的数据压缩方法
JP2005323171A (ja) 送信装置、誤り訂正装置、ネットワーク接続装置およびパケット中継方法
CN110120853A (zh) 多链路环境下数据发送、接收装置及数据发送、接收方法
JP2006217530A (ja) データ伝送システム、送信側端末装置、受信側端末装置、データ送信プログラム及びデータ受信プログラム
JP6673604B2 (ja) ログデータ転送方式及びログデータ転送システム
JP2016027698A (ja) データ転送システム、中継ノード及びデータ転送方法
CN103684695B (zh) 一种数据传输方法和系统
KR20130034569A (ko) 버스트 데이터 손실 복구를 위한 오류 정정용 xor-연산fec 및 harq를 갖는 비균등 오류 보호방법
CN103684695A (zh) 一种数据传输方法和系统

Legal Events

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