一种具有冗余的多媒体数据实时传输方法技术

技术编号:22756659 阅读:31 留言:0更新日期:2019-12-07 04:39
本发明专利技术公开了一种具有冗余的多媒体数据实时传输方法,属于无线音视频通信技术领域。本发明专利技术将FEC算法和RTP协议有机地结合起来,能够减小RTP实时多媒体数据传输过程中的丢包率,提高RTP多媒体播放的质量。此外,本发明专利技术通过末尾补零使数据包长度相等,从而便于应用FEC算方生成冗余数据包,同时,在传输数据包时,本发明专利技术又将末尾零去掉,从而能够有效节省带宽,提高传输效率。本发明专利技术还可以根据带宽情况和数据传输质量动态调整冗余度,从而适应当前的传输情况,提高数据传输效率。本专利受国家重点研发计划资助,项目编号2017YFC0821900。

A real-time transmission method of multimedia data with redundancy

The invention discloses a real-time transmission method of multimedia data with redundancy, belonging to the technical field of wireless audio and video communication. The invention organically combines FEC algorithm and RTP protocol, which can reduce packet loss rate in RTP real-time multimedia data transmission process and improve the quality of RTP multimedia playback. In addition, the invention makes the length of the data packet equal by filling zero at the end, so as to facilitate the application of FEC algorithm to generate redundant data packets. At the same time, when transmitting data packets, the invention also removes zero at the end, so as to effectively save bandwidth and improve transmission efficiency. The redundancy can also be dynamically adjusted according to the bandwidth situation and the data transmission quality, so as to adapt to the current transmission situation and improve the data transmission efficiency. This patent is supported by national key R & D plan, Project No. 2017yfc0821900.

【技术实现步骤摘要】
一种具有冗余的多媒体数据实时传输方法
本专利技术属于无线音视频通信
,特别是指一种具有冗余的多媒体数据实时传输方法。
技术介绍
无线音视频多媒体应用经常会受到数据包丢失、错误或网络带宽资源不足的干扰。相关研究表明,在多数情况下,丢包率是影响视频流化质量的关键因素。有鉴于此,为了保证音视频质量,通常可以采用前向纠错(forwarderrorcorrection,简称FEC)编码来提高视频数据传输的可靠性。FEC算法一般有RS编码(Reed-SolomonCodes)和LDPC码等形式。该算法的基本原理是,对k个大小相等的原始数据包冗余出n-k个冗余数据包,使得在n个数据包内,随机选取k个数据,就可以恢复出原始有序的k个数据包。也就是说,一组n个数据包,可以抵抗n-k/n的丢包率。FEC算法中,需要保证每个数据包的大小都是相等,并且,在恢复数据包时,需要知道该包在这一组包内的序号。该算法中,n-k越大,就代表冗余所需的额外带宽也越大。现有技术中用于实现该算法的开源库有OpenFEC等。目前,音视频传输大都采用实时传输协议(Real-timeTransportProtocol,简写为RTP)。但是,对于RTP传输过程中的丢包问题,现有技术中还缺少有效的解决方案。
技术实现思路
有鉴于此,本专利技术提出一种具有冗余的多媒体数据实时传输方法,该方法将FEC算法和RTP传输协议有机地结合起来,能够有效地克服音频实时传输中的网络丢包问题。为了实现上述目的,本专利技术采用的技术方案为:一种用于发送端的具有冗余的多媒体数据实时传输方法,包括以下步骤:(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。一种用于接收端的具有冗余的多媒体数据实时传输方法,该方法用于接收如上所述方法发送的多媒体数据包,包括以下步骤:(r1)设置当前待处组序号cur_session_id;(r2)通过RTP协议接收数据包;(r3)若收到数据包的session_id大于cur_session_id,则直接结束组序号为cur_session_id的处理过程,并将cur_session_id加一,回到步骤(r2)接收下一组数据;若收到数据包的session_id小于cur_session_id,则直接丢弃该数据包;若收到数据包的session_id等于cur_session_id,则执行步骤(r4);(r4)根据数据包中的k值和esi值判断收到的数据包是否为前k个数据包,若是,则将该数据包直接转给音/视频解码模块,每个数据包只转发给音/视频解码模块一次;同时,根据需要对接收到的数据包进行末尾补零,使数据包的长度为symbol_size,然后将该数据包存入缓存;(r5)若具有同一session_id的前k个数据包均已转发给音/视频解码模块,则清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据;若缓存中的数据包达到k个,且同一session_id的前k个数据包尚未全部接收到,则根据缓存中的数据包,通过FEC前向纠错算法的解码算法,获得前k个原始数据包,并将其中未接收到的数据包转发给音/视频解码模块,然后清空缓存,将cur_session_id加一,回到步骤(r2)接收下一组数据。采用上述技术方案的有益效果在于:1、本专利技术将FEC算法和RTP协议有机地结合起来,能够减小RTP实时多媒体数据传输过程中的丢包率,提高RTP多媒体播放的质量。2、本专利技术通过末尾补零使数据包长度相等,从而便于应用FEC算方生成冗余数据包,同时,在传输数据包时,本专利技术又将末尾零去掉,从而能够有效节省带宽,提高传输效率。3、本专利技术可以根据带宽情况和数据传输质量动态调整冗余度,即,动态调整一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,从而适应当前的传输情况,提高数据传输效率。附图说明图1是本专利技术实施例中数据包帧结构的示意图。具体实施方式下面结合附图和具体实施方式对本专利技术做进一步的说明。一种用于发送端的具有冗余的多媒体数据实时传输方法,包括以下步骤:(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送本文档来自技高网...

【技术保护点】
1.一种用于发送端的具有冗余的多媒体数据实时传输方法,其特征在于,包括以下步骤:/n(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;/n(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;/n(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;/n所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;/n(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;/n(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。/n...

【技术特征摘要】
1.一种用于发送端的具有冗余的多媒体数据实时传输方法,其特征在于,包括以下步骤:
(t1)根据带宽和数据传输质量设定数据冗余度,确定一组数据包的数据包总数n以及一组数据包中原始多媒体数据包的个数k,并设定数据包的规范大小symbol_size,symbol_size大于或等于原始多媒体数据包的最大长度;
(t2)将待发送的k个原始多媒体数据包按照帧结构进行封包,并通过RTP协议发送出去;
(t3)根据需要对k个原始多媒体数据包进行末尾补零,得到k个大小均为symbol_size的数据包,然后通过FEC前向纠错算法生成这k个数据包的n-k个冗余数据包,冗余数据包的大小均为symbol_size;
所述帧结构的帧头部分包括:magic魔数,用来验证数据的合法性;session_id,用来标识数据包的组序号;n,用来标识一组数据包中数据包的总数;k,用来标识一组数据包中原始多媒体数据包的个数;n-k,用来标识一组数据包中冗余数据包的个数;symbol_size,用来标识一个数据包的规范大小;length,用来标识一个数据包的实际大小;Timestamp,用于表示RTP协议中的时间戳;Sequence,用于表示RTP协议中的数据包序列号;esi,用来标识数据包在一组数据包内的位置;
(t4)将各冗余数据包的末尾零剔除,更新冗余数据包的实际大小length,然后通过RTP协议将不含末尾零的n-k个冗余数据包发送出去;
(t5)重复步骤(t1)~(t4),发送下一组n个数据包,下一组数据包的组序号等于前一组数据包的组序号加一。<...

【专利技术属性】
技术研发人员:高晓伟张松轶康志杰李勇王艳超刘梦阳张治涛张军山王东卫梁泽李帅甫张乐宾李亚明李泽欣宋贝贝孙庆科
申请(专利权)人:河北远东通信系统工程有限公司
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1