一种对前向纠错恢复的数据进行校验的方法及装置的制作方法

文档序号:7713945阅读:172来源:国知局
专利名称:一种对前向纠错恢复的数据进行校验的方法及装置的制作方法
技术领域
本发明涉及多^某体传输技术,特别涉及一种对前向纠错恢复的数据进行校 验的方法及装置。
背景技术
随着互联网的发展,多媒体在网络上的应用越来越广。多媒体数据通常使
用实时传输协议(Realtime Transmission Protocol, RTP )封装后经过网络传输。 RTP协议一般承载在用户数据包协议(User Datagram Protocol, UDP )之上, 而UDP协议是一种尽力而为的传输服务,不能保证数据包可靠到达目的地, 当数据丢包时就会对多媒体应用带来一定的影响,比如声音断断续续、视频画 面出现马赛克、虚影、画面停滞等等,造成用户体验差。
为了解决丢包的问题,人们提出各种方法来解决或者降低数据包丟失而带 来的影响。前向纠错(Forward Error Correction, FEC )技术是一种在通信系统 中广泛应用的技术,在信号传输之前以一定规则编码得到一组纠删码,当接收 端发现信道有数据丟失时则可以根据纠删码恢复这些数据,实现数据的纠错功 能。
常见的前向纠错算法,如Reed Solomon算法、Tornado算法、LT算法和 Raptor算法等,但并非所有的算法恢复出来的数据都是完全正确的,有些算法 存在一定的误码率,比如LT算法。媒体解码器在解码错误的数据时可能造成 视频图像出现马赛克、音频出现卡,甚至哺叫,因此,需要对恢复出来的数据 进行校验以防止媒体解码器解码异常,但是现有技术主要关注算法的实现和传 输层的封装方法,没有实现对恢复出来的数据进行校验。

发明内容
本发明的目的在于,提供一种对前向纠错恢复的数据进行校验的方法,能 够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影响; 本发明的另一目的在于,提供一种对前向纠错恢复的数据进行校验的装
4置,能够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影 响。
本发明的对前向纠错恢复的数据进行校验的方法,在发送数据时,包括下 列步骤
步骤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 02 0a00,第二个包的RTP扩展头对应的值为05 02 0a01,最后一个包的RTP扩 展头对应的值为05 02 0a09。
步骤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扩展头中的 前向纠错信息和填充信息分别进行校验,降低错误数据对接收端解码器的影 响。以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细 描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其 它的变化和修改,这些变化和修改均在本发明的保护范围内。
权利要求
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数据包的填充信息是否 正确,在不正确时,则校验结果为数据包错误,丢弃lt据包;在正确时,去掉 填充得到丟失的数据。
8. 如权利要求5至7中任一项所述的对前向纠错恢复的数据进行校验的 装置,其特征在于,所述前向纠错信息,包括前向纠错算法类型、编码分组编 号、编码分组大小、当前包在分组中的位置信息中的一种及一种以上信息。
全文摘要
本发明提供一种对前向纠错恢复的数据进行校验的方法及装置,其中,该方法在发送数据时,包括下列步骤步骤A数据包发送前在RTP扩展头中写入前向纠错信息;步骤B进行前向纠错编码得到冗余包,并在RTP扩展头中写入前向纠错信息,然后发送冗余包。在接收数据时,包括下列步骤步骤C当接收端发现有数据包丢失时,进行前向纠错解码;步骤D当前向纠错解码完成后,对恢复出来RTP数据包进行RTP解析,获取该包的前向纠错信息,判断该包的前向纠错信息是否正确,如果不正确,则校验结果为数据包错误,丢弃数据包;否则,校验结果为数据包正确。本发明能够对前向纠错恢复的数据进行校验,降低错误数据对接收端解码器的影响。
文档编号H04L1/00GK101662339SQ20091017730
公开日2010年3月3日 申请日期2009年9月29日 优先权日2009年9月29日
发明者何国宝, 峥 刘, 宁 汤, 郑可馨 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1