CN101662339A - 一种对前向纠错恢复的数据进行校验的方法及装置 - Google Patents
一种对前向纠错恢复的数据进行校验的方法及装置 Download PDFInfo
- Publication number
- CN101662339A CN101662339A CN 200910177306 CN200910177306A CN101662339A CN 101662339 A CN101662339 A CN 101662339A CN 200910177306 CN200910177306 CN 200910177306 CN 200910177306 A CN200910177306 A CN 200910177306A CN 101662339 A CN101662339 A CN 101662339A
- Authority
- CN
- China
- Prior art keywords
- packet
- error correction
- forward error
- rtp
- 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.)
- Granted
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种对前向纠错恢复的数据进行校验的方法及装置,其中,该方法在发送数据时,包括下列步骤:步骤A:数据包发送前在RTP扩展头中写入前向纠错信息;步骤B:进行前向纠错编码得到冗余包,并在RTP扩展头中写入前向纠错信息,然后发送冗余包。在接收数据时,包括下列步骤:步骤C:当接收端发现有数据包丢失时,进行前向纠错解码;步骤D:当前向纠错解码完成后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,判断该包的前向纠错信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,校验结果为数据包正确。本发明能够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影响。
Description
技术领域
本发明涉及多媒体传输技术,特别涉及一种对前向纠错恢复的数据进行校验的方法及装置。
背景技术
随着互联网的发展,多媒体在网络上的应用越来越广。多媒体数据通常使用实时传输协议(Realtime Transmission Protocol,RTP)封装后经过网络传输。RTP协议一般承载在用户数据包协议(User Datagram Protocol,UDP)之上,而UDP协议是一种尽力而为的传输服务,不能保证数据包可靠到达目的地,当数据丢包时就会对多媒体应用带来一定的影响,比如声音断断续续、视频画面出现马赛克、虚影、画面停滞等等,造成用户体验差。
为了解决丢包的问题,人们提出各种方法来解决或者降低数据包丢失而带来的影响。前向纠错(Forward Error Correction,FEC)技术是一种在通信系统中广泛应用的技术,在信号传输之前以一定规则编码得到一组纠删码,当接收端发现信道有数据丢失时则可以根据纠删码恢复这些数据,实现数据的纠错功能。
常见的前向纠错算法,如Reed Solomon算法、Tornado算法、LT算法和Raptor算法等,但并非所有的算法恢复出来的数据都是完全正确的,有些算法存在一定的误码率,比如LT算法。媒体解码器在解码错误的数据时可能造成视频图像出现马赛克、音频出现卡,甚至啸叫,因此,需要对恢复出来的数据进行校验以防止媒体解码器解码异常,但是现有技术主要关注算法的实现和传输层的封装方法,没有实现对恢复出来的数据进行校验。
发明内容
本发明的目的在于,提供一种对前向纠错恢复的数据进行校验的方法,能够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影响;
本发明的另一目的在于,提供一种对前向纠错恢复的数据进行校验的装置,能够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影响。
本发明的对前向纠错恢复的数据进行校验的方法,在发送数据时,包括下列步骤:
步骤A:数据包发送前在RTP扩展头中写入前向纠错信息;
步骤B:进行前向纠错编码得到冗余包,并在RTP扩展头中写入前向纠错信息,然后发送冗余包;
在接收数据时,包括下列步骤:
步骤C:当接收端发现有数据包丢失时,进行前向纠错解码;
步骤D:当前向纠错解码完成后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,判断该包的前向纠错信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,校验结果为数据包正确。
其中,在所述步骤B中,包括下列步骤:对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
另外,在所述步骤C中,在接收端进行前向纠错解码之前,包括下列步骤:对接收到的原始数据包进行填充,再进行前向纠错解码;
在所述步骤D中,在对恢复出来RTP数据包进行RTP解析时,进一步包括下列步骤:获取RTP数据包的填充信息,并在校验结果为数据包正确时,进一步校验恢复出来的RTP数据包的填充信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,去掉填充得到丢失的数据。
其中,所述前向纠错信息,包括前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
本发明的对前向纠错恢复的数据进行校验的装置,发送端包括发送单元和编码单元,其中,所述发送单元,用于在原始RTP数据包发送前在RTP扩展头中写入前向纠错信息,以及在发送编码单元产生的冗余包之前在RTP扩展头中写入前向纠错信息;所述编码单元,用于对原始RTP数据包进行前向纠错编码得到冗余包;接收端,包括解码单元和校验单元,其中,所述解码单元,用于在发现有数据包丢失时,进行前向纠错解码;所述校验单元,用于在解码单元完成前向纠错解码后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,校验该包的前向纠错信息是否正确,在不正确时,则校验结果为数据包错误,丢弃数据包;在正确时,校验结果为数据包正确。
其中,所述编码单元,进一步用于对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
另外,所述解码单元,用于在发现有数据包丢失时,对接收到的原始数据包进行填充,再进行前向纠错解码;所述校验单元,进一步用于校验恢复出来的RTP数据包的填充信息是否正确,在不正确时,则校验结果为数据包错误,丢弃数据包;在正确时,去掉填充得到丢失的数据。
另外,所述前向纠错信息,包括前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
本发明的有益效果是:依照本发明的对前向纠错恢复的数据进行校验的方法及装置,由于使用标准的RTP协议扩展头,对于不支持该扩展类型的接收端可以直接丢弃扩展信息,不影响正常的RTP负载的处理;本发明在前向纠错解码完成后,根据同一编码组的前向纠错信息对恢复出来的RTP包的RTP扩展头中的前向纠错信息和填充信息分别进行校验,降低错误数据对接收端解码器的影响。
附图说明
图1为本发明实施例的前向纠错信息结构示意图;
图2为本发明实施例的FEC头结构示意图;
图3为本发明实施例的前向纠错编码处理流程示意图;
图4为本发明实施例的前向纠错解码处理流程示意图;
图5为本发明的对前向纠错恢复的数据进行校验的装置示意图。
具体实施方式
以下,参考附图1~5详细描述本发明的对前向纠错恢复的数据进行校验的方法及装置。
如图3所示,本发明的对前向纠错恢复的数据进行校验的方法,在发送数据时,包括下列步骤:
步骤11:数据包发送前在RTP扩展头中写入前向纠错信息。
其中,步骤11中的前向纠错信息,包括用于前向纠错编解码的信息,例如前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置等,其中每个参数占用一个字节,如图1所示。
以当前实施例来说,编码分组内第一个包的RTP扩展头对应的值为05 020a 00,第二个包的RTP扩展头对应的值为05 02 0a 01,最后一个包的RTP扩展头对应的值为05 02 0a 09。
步骤12:进行前向纠错编码前对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
其中,在步骤12中进行填充的目的如下:由于发送端发送的数据包长度大小不等,而接收端往往只能通过每个冗余包所带的FEC头来获得每个原始包的长度,当分组变大时,这些长度信息所占用的空间也就越大,很容易导致冗余包长度超过最大传输单元(MTU)大小,在网络传输过程中被中间网元分片传送,造成分片丢失的风险。使用填充不但可以通过去填充得知原始包的实际长度,还可以由此校验恢复数据是否正确,此外,可以大大缩减FEC头的长度,避免冗余包长度超过MTU的情况。
填充所使用的算法必须保证可以正确的去填充。例如,填充算法可以选择使用出现概率比较低的比特串,也可以选择一些常用的填充算法,例如PKCS7,对于填充后的数据包长度仍然小于分组内填充后的最大包长度的数据包,剩余数据全部填充0。
步骤13:冗余包发送前在RTP扩展头中写入前向纠错信息。
由于本实施例前向纠错解码处理不依赖于RTP包序号,因此可以根据实际情况调整FEC头部结构,本发明实施例采用图2所示的FEC头部结构。该前向纠错信息中编码分组编号等于当前所在编码分组的编码分组编号,为了便于接收端可以立刻知道冗余包个数,冗余包编码分组大小等于冗余包的个数,当前实施例中,冗余包的分组大小为2,因此,第一个冗余包的前向纠错信息为05 02 02 00,第2个冗余包的前向纠错信息为05 02 02 01。
如图4所示,本发明的对前向纠错恢复的数据进行校验的方法,在接收数据时,包括下列步骤:
步骤21:当接收端发现有数据包丢失并尝试进行前向纠错解码时,首先对接收到的原始数据包进行填充,再进行前向纠错解码。
其中,步骤21中的填充与前向编码时使用的填充方法一致。在本发明实施例中,使用PCKS7算法进行填充,如果填充后数据包长度仍小于从冗余包的FEC头部信息中获取的数据包最大长度,则填充0至数据包最大长度。
步骤22:当前向纠错解码完成后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息。
步骤23:校验该包的前向纠错信息是否正确,如果是,则执行步骤24;否则,执行步骤27。
具体地,判断前向纠错信息中编码分组的编号是否和当前所在的编码分组的编码分组编号一致;编码分组大小和当前所在分组的分组大小是否一致;当前包在编码分组中的位置是否和该包应处于编码分组中的位置一致。
步骤24:校验恢复出来的RTP数据包的填充信息。
步骤25:判断校验是否正确,如果是,则执行步骤26;否则,执行步骤27。
步骤26:去掉填充信息,输出数据。
步骤27:检验失败,丢弃数据包。
步骤28:释放缓存的数据。
如图5所示,本发明的对前向纠错恢复的数据进行校验的装置,在发送端,包括发送单元,用于在数据包发送前在RTP扩展头中写入前向纠错信息,以及在发送编码单元产生的冗余包之前在RTP扩展头中写入前向纠错信息;编码单元,用于对原始RTP数据包进行前向纠错编码得到冗余包。其中,编码单元,进一步用于对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
本发明的对前向纠错恢复的数据进行校验的装置,在接收端,包括解码单元和校验单元。其中,解码单元,用于在发现有数据包丢失并尝试进行前向纠错解码时,对接收到的原始数据包进行填充,再进行前向纠错解码;
校验单元,用于在解码单元完成前向纠错解码后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,校验该包的前向纠错信息是否正确,在不正确时,检验失败,丢弃数据包;在正确时,校验结果为数据包正确。
解码单元,用于在发现有数据包丢失时,对接收到的原始数据包进行填充,再进行前向纠错解码;校验单元,进一步用于校验恢复出来的RTP数据包的填充信息是否正确,在不正确时,则校验结果为数据包错误,丢弃数据包;在正确时,去掉填充,得到丢失的数据。
另外,该前向纠错信息,包括前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
综上所述,依照本发明的对前向纠错恢复的数据进行校验的方法及装置,由于使用标准的RTP协议扩展头,对于不支持该扩展类型的接收端可以直接丢弃扩展信息,不影响正常的RTP负载的处理;本发明在前向纠错解码完成后,根据同一编码组的前向纠错信息对恢复出来的RTP包的RTP扩展头中的前向纠错信息和填充信息分别进行校验,降低错误数据对接收端解码器的影响。
以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。
Claims (8)
1.一种对前向纠错恢复的数据进行校验的方法,其特征在于,在发送数据时,包括下列步骤:
步骤A:数据包发送前在RTP扩展头中写入前向纠错信息;
步骤B:进行前向纠错编码得到冗余包,并在RTP扩展头中写入前向纠错信息,然后发送冗余包;
在接收数据时,包括下列步骤:
步骤C:当接收端发现有数据包丢失时,进行前向纠错解码;
步骤D:当前向纠错解码完成后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,判断该包的前向纠错信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,校验结果为数据包正确。
2.如权利要求1所述的对前向纠错恢复的数据进行校验的方法,其特征在于,在所述步骤B中,包括下列步骤:对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
3.如权利要求1所述的对前向纠错恢复的数据进行校验的方法,其特征在于,在所述步骤C中,在接收端进行前向纠错解码之前,包括下列步骤:对接收到的原始数据包进行填充,再进行前向纠错解码;
在所述步骤D中,在对恢复出来RTP数据包进行RTP解析时,进一步包括下列步骤:获取RTP数据包的填充信息,并在校验结果为数据包正确时,进一步校验恢复出来的RTP数据包的填充信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,去掉填充得到丢失的数据。
4.如权利要求1至3中任一项所述的对前向纠错恢复的数据进行校验的方法,其特征在于,所述前向纠错信息,包括前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
5.一种对前向纠错恢复的数据进行校验的装置,其特征在于,发送端包括发送单元和编码单元,其中,
所述发送单元,用于在原始RTP数据包发送前在RTP扩展头中写入前向纠错信息,以及在发送编码单元产生的冗余包之前在RTP扩展头中写入前向纠错信息;
所述编码单元,用于对原始RTP数据包进行前向纠错编码得到冗余包;
接收端,包括解码单元和校验单元,其中,
所述解码单元,用于在发现有数据包丢失时,进行前向纠错解码;
所述校验单元,用于在解码单元完成前向纠错解码后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,校验该包的前向纠错信息是否正确,在不正确时,则校验结果为数据包错误,丢弃数据包;在正确时,校验结果为数据包正确。
6.如权利要求5所述的对前向纠错恢复的数据进行校验的装置,其特征在于,所述编码单元,进一步用于对原始RTP数据包进行填充,然后进行前向纠错编码得到冗余包。
7.如权利要求5所述的对前向纠错恢复的数据进行校验的装置,其特征在于,所述解码单元,用于在发现有数据包丢失时,对接收到的原始数据包进行填充,再进行前向纠错解码;
所述校验单元,进一步用于校验恢复出来的RTP数据包的填充信息是否正确,在不正确时,则校验结果为数据包错误,丢弃数据包;在正确时,去掉填充得到丢失的数据。
8.如权利要求5至7中任一项所述的对前向纠错恢复的数据进行校验的装置,其特征在于,所述前向纠错信息,包括前向纠错算法类型、编码分组编号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910177306 CN101662339B (zh) | 2009-09-29 | 2009-09-29 | 一种对前向纠错恢复的数据进行校验的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910177306 CN101662339B (zh) | 2009-09-29 | 2009-09-29 | 一种对前向纠错恢复的数据进行校验的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101662339A true CN101662339A (zh) | 2010-03-03 |
CN101662339B CN101662339B (zh) | 2012-12-19 |
Family
ID=41790153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910177306 Active CN101662339B (zh) | 2009-09-29 | 2009-09-29 | 一种对前向纠错恢复的数据进行校验的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101662339B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533453A (zh) * | 2013-10-28 | 2014-01-22 | 苏州新海宜通信科技股份有限公司 | 一种抗丢包的传输方法 |
CN105933342A (zh) * | 2016-06-24 | 2016-09-07 | 浙江宇视科技有限公司 | 一种视频监控数据的传输方法及装置 |
CN106571893A (zh) * | 2016-11-10 | 2017-04-19 | 深圳市潮流网络技术有限公司 | 一种语音数据的编解码方法 |
CN110463082A (zh) * | 2017-06-07 | 2019-11-15 | 华为技术有限公司 | 具有受控比特概率的传输系统 |
CN113541853A (zh) * | 2020-04-13 | 2021-10-22 | 海能达通信股份有限公司 | 数据传输方法、终端及计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5184527B2 (ja) * | 2006-07-25 | 2013-04-17 | トムソン ライセンシング | スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復 |
CN100579069C (zh) * | 2006-07-25 | 2010-01-06 | 中兴通讯股份有限公司 | 语音前向纠错信息传输在cdma2000系统中的实现方法 |
CN101102282A (zh) * | 2007-08-08 | 2008-01-09 | 中兴通讯股份有限公司 | 一种数据广播业务发送和接收方法 |
-
2009
- 2009-09-29 CN CN 200910177306 patent/CN101662339B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533453A (zh) * | 2013-10-28 | 2014-01-22 | 苏州新海宜通信科技股份有限公司 | 一种抗丢包的传输方法 |
CN105933342A (zh) * | 2016-06-24 | 2016-09-07 | 浙江宇视科技有限公司 | 一种视频监控数据的传输方法及装置 |
CN106571893A (zh) * | 2016-11-10 | 2017-04-19 | 深圳市潮流网络技术有限公司 | 一种语音数据的编解码方法 |
CN106571893B (zh) * | 2016-11-10 | 2022-05-24 | 深圳市潮流网络技术有限公司 | 一种语音数据的编解码方法 |
CN110463082A (zh) * | 2017-06-07 | 2019-11-15 | 华为技术有限公司 | 具有受控比特概率的传输系统 |
CN110463082B (zh) * | 2017-06-07 | 2020-11-17 | 华为技术有限公司 | 具有受控比特概率的传输系统 |
US11018768B2 (en) | 2017-06-07 | 2021-05-25 | Huawei Technologies Co., Ltd. | Transmission systems with controlled bit probabilities |
CN113541853A (zh) * | 2020-04-13 | 2021-10-22 | 海能达通信股份有限公司 | 数据传输方法、终端及计算机可读存储介质 |
CN113541853B (zh) * | 2020-04-13 | 2022-12-16 | 海能达通信股份有限公司 | 数据传输方法、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101662339B (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5442816B2 (ja) | 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング | |
CN106656422B (zh) | 一种动态调整fec冗余度的流媒体传输方法 | |
EP2437421B1 (en) | Method, device and communication system for retransmitting based on forward error correction | |
US7151754B1 (en) | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding | |
US9225357B2 (en) | Data packet transmission/reception apparatus and method | |
US7409627B2 (en) | Method for transmitting and receiving variable length packets based on forward error correction (FEC) coding | |
EP2103026B1 (en) | A method to support forward error correction for real-time audio and video data over internet protocol networks | |
US7525993B2 (en) | Robust transmission system and method for mobile television applications | |
US9246644B2 (en) | Jitter buffer | |
US8855145B2 (en) | Jitter buffer | |
US8004963B2 (en) | Apparatus and method for packet redundancy and recovery | |
CN101800757B (zh) | 一种基于单光纤结构的无反馈单向数据传输方法 | |
CN109862440A (zh) | 音视频传输前向纠错方法、装置、计算机设备及存储介质 | |
CN110943800A (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
US8948213B2 (en) | Jitter buffer | |
CN101662339B (zh) | 一种对前向纠错恢复的数据进行校验的方法及装置 | |
KR101118194B1 (ko) | 손실된 패킷 재건을 위한 방법 및 상기 방법을 수행하기 위한 디바이스 | |
US9667384B2 (en) | Apparatus and method for transmitting and receiving forward error correction packet | |
KR20130008438A (ko) | 멀티미디어 패킷 전송망에서 전방향 오류 정정 제어 방법 | |
US20020161851A1 (en) | Redundant packet network architecture | |
CN110602452B (zh) | 一种保障全球udp音视频流远距离实时传输流畅的方法 | |
EP1655844A2 (en) | Method of transmitting digital data packets and apparatus implementing the method | |
CN113037431A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |