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传输协议有机地结合起来,能够有效地克服音频实时传输中的网络丢包问题。为了实现上述目的,本专利技术采用的技术方案为 ...
【技术保护点】
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协议中的时间戳; ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。