前向纠错方法、装置和系统的制作方法

文档序号:7704170阅读:189来源:国知局
专利名称:前向纠错方法、装置和系统的制作方法
技术领域
本发明实施例涉及通信传输领域,尤其是一种前向纠错编码方法、装置,一种前向 纠错解码方法、装置,以及通信系统。
背景技术
数据包在网络中传输时会遭受不定数量的丢失,使得服务质量下降,实时音视频 流中数据包的丢失可能导致更差的服务质量。因此需要使用一些错误控制技术来提高数 据在网络上传输的可靠性。自动重传请求(ARQ,Automatic Repeat Request)和前向纠错 (FEC, Forward Error Correction)是两种广泛应用的丢包恢复技术。前向纠错不需要反馈信道,应用广泛。其基本原理是在k个源数据包中插入n-k 个冗余包,并将这n个数据包一并发送给接收端,其中n-k个冗余包是由k个源数据包经过 编码计算得到的。把这n个数据包称为一个源数据块(source block),每个源数据块对应 一个源块标号(SBN,Source BlockNumber);每个数据包在源数据块中都有一个编号,称为 编码符号标识(ESI,Encoding Symbol ID)。由于网络传输的不可靠,一个源数据块中的一 些数据包在传输过程中可能丢失。接收端通过ESI可以确定这些丢失的数据包在源数据块 中的位置,在丢包数量不超过纠错能力极限的情况下,由于冗余包的存在,接收端可以利用 冗余包来恢复丢失的源数据包。现有技术中,提供了一种多媒体广播组播业务的流传输方法。在发送端,由应用层 提供源数据包,在应用层与传输层之间使用独立的FEC层。FEC层对源数据包进行源数据块 构建并进行FEC编码,将FEC编码后的数据包封装成FEC源数据包和FEC校验数据包进行 传输。由于不限制媒体数据流的数目及源数据包的大小,接收端如果要进行FEC解码则必 须知道每个源数据包的大小,因此,在FEC编码时,在每个源数据包的最后添加了该源数据 包在源数据块中的位置信息,来构成FEC源数据包。现有技术中的多媒体广播组播业务的 流传输方法,在源数据包的最后添加了位置信息,改变了源数据包的结构,没有FEC功能的 接收端不能对FEC源数据包进行解码或者解码失败,与现有通信系统不兼容。

发明内容
本发明实施例一方面提供了前向纠错编码的方法和装置,另一方面提供了前向纠 错解码的方法和装置,以及一种通信系统,即能够与现有通信系统兼容,又可以有效的利用 前向纠错恢复丢失的源数据。本发明实施例提供的前向纠错编码方法,包括利用多个源数据构造源数据块,每个源数据对应一个位置信息,该位置信息用于 标识该源数据在源数据块中的位置;对构造的源数据块进行前向纠错编码,生成校验数据;通过第一数据包发送多个源数据,通过第二数据包发送校验数据和源数据的位置 信息;其中,第二数据包中携带源数据的位置信息与源数据的对应关系。
本发明实施例提供的前向纠错编码装置,包括构造模块,用于利用多个源数据构造源数据块,每个源数据对应一个位置信息,该 位置信息用于标识该源数据在源数据块中的位置;编码模块,用于对构造的源数据块进行前向纠错编码,生成校验数据;第一发送模块,用于通过第一数据包发送多个源数据,通过第二数据包发送校验 数据和源数据的位置信息,其中,第二数据包中携带源数据的位置信息与源数据的对应关 系。本发明实施例提供的前向纠错解码方法,包括接收第一数据包和第二数据包,第一数据包中携带源数据,第二数据包中携带校 验数据、源数据的位置信息、以及源数据的位置信息与源数据的对应关系;根据第二数据包中携带的源数据的位置信息以及源数据的位置信息与源数据的 对应关系,利用第一数据包中携带的多个源数据生成重构数据块;利用第二数据包中携带的校验数据,对重构数据块进行前向纠错解码,恢复丢失 的源数据。本发明实施例提供的前向纠错解码设备,包括第二接收模块,用于接收第一数据包和第二数据包,第一数据包中携带源数据,第 二数据包中携带校验数据、源数据的位置信息、以及源数据的位置信息与源数据的对应关 系;重构模块,用于根据第二数据包中携带的源数据的位置信息以及源数据的位置信 息与源数据的对应关系,利用第一数据包中携带的多个源数据生成重构数据块;解码模块,用于利用第二数据包中携带的校验数据,对重构数据块进行前向纠错 解码,恢复丢失的源数据。本发明实施例提供的通信系统,包括至少一个网络节点;所述网络节点中的全部或部分包括上述的前向纠错编码设备和/或上述的前向 纠错编码设备。由以上技术方案可知,本发明实施例中,通过将源数据在源数据块中的位置信息 和校验数据携带在第二数据包中传输,而源数据通过第一数据包传输,使得源数据与校验 数据以及源数据的位置信息分开采用不同的数据包传输,不改变承载源数据的第一数据包 的结构,从而没有前向纠错功能的解码端可以丢弃第二数据包,只根据第一数据包进行解 码,同时,有前向纠错能够的解码端可以根据校验数据以及源数据的位置信息,利用校验数 据和接收到的源数据进行前向纠错解码,恢复丢失的源数据,所以,本发明实施例提供的技 术方案既能够与现有通信系统兼容,叉可以有效的利用前向纠错恢复丢失的源数据。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本发明实施例一的前向纠错编码方法流程图2为本发明实施例一的方法中源数据块构造示意图;图3为本发明实施例二的前向纠错解码方法流程图;图4为本发明实施例三的前向纠错编解码方法流程图;图5为本发明实施例三的方法中源数据包结构示意图;图6为本发明实施例三的方法中校验数据包结构示意图;图7为本发明实施例三的方法中校验数据包的修复净载荷ID结构示意图;图8为本发明实施例三的方法中位置数据包结构示意图;图9为本发明实施例三的方法中位置数据包的位置信息和对应关系结构示意图;图10为本发明实施例三的方法中位置数据包的位置信息和对应关系的一个实例 图;图11为本发明实施例三的方法中重构数据块构造示意图;图12为本发明实施例三的方法中位置数据包的另一种位置信息和对应关系结构 示意图;图13为本发明实施例三的方法中位置数据包的另一种位置信息和对应关系的一 个实例图;图14为本发明实施例四的通信系统结构示意图;图15为本发明实施例四的编码设备结构示意图;图16为本发明实施例四的解码设备结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。实施例一如附图1所示,本发明实施例提供了一种前向纠错编码方法,该方法包括以下步 骤步骤11 利用多个源数据构造源数据块;每个源数据对应一个位置信息,该位置 信息用于标识该源数据在源数据块中的位置。源数据可以是各种格式的数据包,例如RTP(Real_time TransferProtocol,实 时传输协议)包、RTCP (Real Time Control Protocol,实时控制协议)包、IP (Internet Protocol,网际协议)包、TCP (Transfer Control Protocol,传输控制协议)包、UDP(User Datagram Protocol,用户数据报协议)包等;或者,源数据可以是上层净载荷(payload), 例如应用层程序输出的净载荷,具体的有多媒体数据源输出的视频帧、音频帧等。利用多个源数据构造源数据块的实现方式可以参考图2,图2示出了一个源数据 块,源数据块的每一行表示固定长度的数据,每一行的数据称为一个符号(Symbol),每一 个符号对应一个ESI (Encoding Symbol ID,编码符号标识),ESI是收发双方约定的一种 标识,可以按照约定的规则编号,例如使用码表或者从一个初值开始顺序递增或递减,图 2中的ESI示例性的使用了自然数顺序编号,源数据块左边的一列数字(1,2,...K,K+1,K+2,...M,...M+n)即为每个符号对应的ESI。每个源数据在源数据块中可以占用一个或者 多个符号的存储空间,本发明实施例对此不做限定。参考2所示,在每收到一个源数据时,根据该源数据对应的流(flow)确定该源数 据的流标号F,不同的流对应不同的流标号,并根据该一个源数据的长度(length)确定其 长度值L ;之后,在源数据块中填写流标号F、长度值L,并将源数据填写入数据区D ;由于源 数据的长度可变,数据区D占用的最后一个符号可能还有剩余的位,此时,可以对最后一个 符号中剩余的位进行填充,以便每一个源数据的流标识F都在一个符号的开始,图2中的填 充区P即为源数据占用的最后一个符号中剩余的位,并且,当数据区D正好填满最后一个符 号时,该源数据占用的最后一个符号中没有填充区P。这样,每个源数据都会在源数据块中 占用一个或多个符号,每收到一个源数据就将该源数据增加到源数据块的最后,当接收了 一定的源数据后,例如设定每个原数据块中的源数据为100个符号,则不再在该源数据块 中增加新的源数据;如果收到新的源数据,则构建一个新的源数据块,将新的源数据增加到 新的源数据块中。每个源数据对应的位置信息,是用于标识该源数据在源数据块中的位置,因此任 何能够标识该源数据在源数据块中的位置的信息都可以作为源数据对应的位置信息,例 如,源数据对应的位置信息可以是源数据起始行的ESI。当然,本领域技术人员可以使用的 其他任何能够标识该源数据在源数据块中的位置的信息也都在本发明的保护范围之内。在 图2中,每个源数据在源数据块中的位置可以用该源数据的起始行的ESI来表示,例如,源 数据块中的第一个源数据占用了符号1(即第1行)和符号2,则该第一个源数据的位置为 1,而源数据块中的另一个源数据占用了符号K、符号K+1和符号K+2,则该的另一个源数据 的位置为K。步骤12 对构造的源数据块进行前向纠错编码,生成校验数据。在步骤11利用源数据构造了源数据块之后,进一步对该源数据块进行前向纠错 编码,生成一个或多个校验数据,这里的前向纠错编码可以使用各种前向纠错编码算法,对 此本发明不做限定;其中,可以对不同的源数据分别进行校验生成多个校验数据,不同的校 验数据由不同的源数据进行前向纠错编码获得,或者,对源数据块中的全部源数据生成一 个校验数据。在生成校验数据之后,可以将校验数据也增加到源数据块的最后,此时,每个 校验数据对应一个位置信息,该位置信息用于标识该校验数据在源数据块中的位置,参考 图2,如果M-1行是源数据块中最后添加的源数据,则将校验数增加到M行至M+n行中,校验 数据可以采用ESI(图2中的M,...M+n)作为位置信息;或者,生成校验数据后,校验数据 可以作为单独的一个数据块,此时,校验数据不需要位置信息或采用独立的位置信息。实际 中校验数据可以占用源数据块的一个或多个符号,例如图2中的校验数据为符号M至符号 M+n,校验数据在源数据块中共占用了 n+1个符号。步骤13 通过第一数据包发送源数据块中的源数据,通过第二数据包发送校验数 据和源数据的位置信息;其中,第二数据包中携带源数据的位置信息与源数据的对应关系。源数据的位置信息可以是包括每个源数据对应的位置信息;或者,包括每个源 数据对应的位置信息和最后一个源数据的结束位置;或者,包括每个源数据对应的位置信 息和最后一个源数据的长度;或者,包括每个源数据对应的位置信息和源数据总共的长度; 或者,包括每个源数据对应的位置信息和每个源数据的长度;或者,包括每个源数据对应的位置信息和第一个校验数据的起始位置。由于源数据和源数据的位置信息是分开传送的, 所以携带源数据的位置信息与源数据的对应关系是为了,使在第一数据包中携带的源数据 与在第二数据包中携带的位置信息能够相互对应,即解码端根据该对应关系可以将第一数 据包中携带的源数据与第二数据包中携带的位置信息对应起来,该对应关系的具体实现方 式不限,只要能够实现源数据与位置信息的对应即可。源数据的位置信息与源数据的对应 关系可以是源数据的位置信息与源数据的编号的对应关系,或者,源数据的位置信息与源 数据的序号的对应关系,或者,源数据的位置信息与源数据的其他标识的对应关系;在实际 中,只需要将源数据的位置信息与源数据的标识(源数据的编号、序号或其他标识)按照一 定的规则携带在第二数据包中即可,解码端可以按照相同的规则解出源数据的位置信息与 源数据的标识之间的对应关系。第一数据包和第二数据包是不同的数据包,其中,第一数据包仅用于封装源数据, 第二数据包用于封装除源数据之外的其他数据或信息。在封装第二数据包时,可以将校验 数据和源数据的位置信息分别封装,此时,将校验数据封装为校验数据包,将源数据的位置 信息封装为位置数据包,并在校验数据包或位置数据包中携带源数据的位置信息与源数据 的对应关系,校验数据包和位置数据包可以采用不同的类型标识进行区别;或者,将校验数 据和源数据的位置信息封装在同一个第二数据包中,并在第二数据包中携带源数据的位置 信息与源数据的对应关系。其中,如果校验数据较多,可以对校验数据进行划分,采用多个 数据包进行传输,例如将校验数据占用的多个符号的数据分开传输,每个数据包中传输一 个符号的校验数据。由于源数据块的数量可能为多个,因此,在第二数据包中携带的每个源数据对应 的位置信息可以进一步包括源数据块标号(SBN,Source BlockNumber),以确定源数据所在 的源数据块,例如,每个源数据对应的位置信息包括SBN和起始行ESI,则根据SBN可以确定 源数据所在的源数据块,根据起始行ESI可以确定源数据在该源数据块中的具体位置。另 外,在具体应用中,如果源数据来自不同的数据流,在第二数据包中携带的每个源数据对应 的位置信息可以进一步包括流标号F,用来区别不同的流;由于不同的流的源数据构成同 一源数据块时,是否区分不同的流的数据,并不影响对该源数据块进行前向纠错编码或解 码,因此,该流标号F为可选的;当位置信息中包括了流标号时,可以根据流标号对不同的 流分别进行前向纠错编码和解码。当然,在实际中如果只有一个源数据块,并且所有的源数 据都来自相同的流,则在第二数据包中携带的每个源数据对应的位置信息则不需包括源数 据块标号SBN和流标号F。一个源数据块对应的校验数据和源数据的位置信息,可以封装为一个或者多个第 二数据包,例如,将一个源数据块对应的校验数据以符号为单位进行传输,每个符号的校验 数据使用一个第二数据包传输,源数据的位置信息采用一个第二数据包传输,并在传输位 置信息的第二数据包中携带源数据的位置信息与源数据的对应关系。当构造了多个源数 据块时,不同源数据块对应的校验数据及其源数据的位置信息可以封装在一个第二数据包 中,并在该第二数据包中携带源数据的位置信息与源数据的对应关系;或者,不同源数据块 对应的校验数据及其源数据的位置信息可以分别封装在不同的第二数据包中,即每个源数 据块对应的校验数据和该源数据块中源数据的位置信息封装在一个第二数据包中,并在该 第二数据包中携带该源数据块的源数据的位置信息与源数据的对应关系。
在发送数据包时,分别发送第一数据包和第二数据包。第一数据包和第二数据包 可以采用各种传输协议进行传送,例如RTP、UDP、RTCP等。本发明各实施例中,第一数据 包和第二数据包仅是用于区别数据包类型,而不限定数据包的数量,例如在通过第一数据 包发送源数据块中的源数据时,可以将多个源数据放在一个第一数据包中发送,也可以在 每个第一数据包中只携带一个源数据;在通过第二数据包发送校验数据和源数据的位置 信息时,可以将多个源数据块对应的校验数据和源数据的位置信息放在一个第一数据包中 发送,也可以在每个第二数据包中只携带一个源数据块对应的校验数据和源数据的位置信 息;在通过第二数据包发送校验数据和源数据的位置信息时,也可以将第二数据包进一步 细分为校验数据包和位置数据包,可以在每个校验数据包中只携带一个源数据块对应的校 验数据,在每个位置数据包中只携带一个源数据块对应的源数据的位置信息,不同数据块 对应的校验数据采用不同的校验数据包携带,不同数据块对应的位置信息采用不同的位置 数据包携带。本实施例中,在步骤11之前,还可以包括步骤10 获取多个源数据。获取多个源 数据的方式可以是接收通过网络传输的多个数据包;或者,接收上层净载荷。当接收通过 网络传输的多个数据包时,由于该接收的多个数据包可以直接转发,因此,该接收的多个数 据包即是步骤13中的第一数据包。本实施例中,通过在编码端对源数据块中的源数据进行前向纠错编码,生成校验 数据,并将源数据在源数据块中的位置信息和校验数据携带在第二数据包中向解码端发 送,而源数据通过第一数据包向解码端发送,使得源数据与校验数据以及源数据的位置信 息分开采用不同的数据包发送,不改变承载源数据的第一数据包的结构,从而没有前向纠 错功能的解码端可以丢弃第二数据包,只根据第一数据包进行解码,同时,有前向纠错能够 的解码端可以根据校验数据以及源数据的位置信息,利用校验数据和接收到的源数据进行 前向纠错解码,恢复丢失的源数据,所以,本发明实施例提供的技术方案即能够与现有通信 系统兼容,又可以有效的利用前向纠错恢复丢失的源数据。实施例二如附图3所示,本发明实施例提供了一种前向纠错解码方法,该方法包括以下步 骤步骤31 接收第一数据包和第二数据包;其中,第一数据包中携带源数据,第二数 据包中携带校验数据、源数据的位置信息、以及源数据的位置信息与源数据的对应关系。源数据的位置信息可以是包括每个源数据对应的位置信息;或者,包括每个源 数据对应的位置信息和最后一个源数据的结束位置;或者,包括每个源数据对应的位置信 息和最后一个源数据的长度;或者,包括每个源数据对应的位置信息和源数据总共的长度; 或者,包括每个源数据对应的位置信息和每个源数据的长度;或者,包括每个源数据对应的 位置信息和第一个校验数据的起始位置。源数据的位置信息与源数据的对应关系可以是 源数据的位置信息与源数据的编号的对应关系,或者,源数据的位置信息与源数据的序号 的对应关系,或者,源数据的位置信息与源数据的其他标识的对应关系;在实际中,只需要 将源数据的位置信息与源数据的标识(源数据的编号、序号或其他标识)按照一定的规则 携带在第二数据包中即可,解码端可以按照相同的规则解出源数据的位置信息与源数据的 标识之间的对应关系。
步骤32 根据第二数据包中携带的源数据的位置信息以及源数据的位置信息与 源数据的对应关系,利用第一数据包中携带的多个源数据生成重构数据块;其中,每个源数据对应一个位置信息,该位置信息用于标识该源数据在源数据块 中的位置;所述对应关系用于指示每个第一数据包中的源数据与第二数据包中该源数据的 位置信息的对应。根据源数据的位置信息与源数据的对应关系,可以确定每个第一数据包中的源数 据对应的位置信息,该对应的位置信息携带在第二数据包中;之后,根据源数据对应的位置 信息和该源数据可以生成重构数据块,该重构数据块是基于接收的第一数据包和第二数据 包中的内容,对编码端构造的源数据块的重新构造。例如,参考图2,源数据的位置信息是用 ESI指示的,则在生成重构数据块时,根据源数据的ESI将源数据填入重构数据块的相应位 置,即以该ESI对应的符号作为起始行,将该源数据填入重构数据块,生成重构数据块时源 数据的填入方式与构造源数据块时的填入方式类似,在此不再赘述。利用第一数据包中携带的多个源数据生成重构数据块可以是当源数据的位置信 息包括每个源数据对应的位置信息时,则根据每个源数据对应的位置信息将接收到的每个 源数据填入重构数据块,并以最后一个源数据的结束位置作为重构数据块中源数据的结束 位置;或者,当源数据的位置信息包括每个源数据对应的位置信息和最后一个源数据的结 束位置时,则根据每个源数据对应的位置信息将接收到的每个源数据填入重构数据块,并 以最后一个源数据的结束位置作为重构数据块中源数据的结束位置;或者,当源数据的位 置信息包括每个源数据对应的位置信息和最后一个源数据的长度时,则根据每个源数据对 应的位置信息将接收到的每个源数据填入重构数据块,并根据最后一个源数据的长度和最 后一个源数据的位置信息确定重构数据块中源数据的结束位置,例如,最后一个源数据的 长度为n个符号,最后一个源数据的位置信息指示的起始行为第N行,则重构数据块中源数 据的结束位置为第(N+n-1)行;或者,当源数据的位置信息包括每个源数据对应的位置信 息和源数据总共的长度,则根据每个源数据对应的位置信息将接收到的每个源数据填入重 构数据块,并以源数据总共的长度确定重构数据块中源数据的结束位置,例如,源数据总共 的长度为Q个符号,则重构数据块中源数据的结束位置为第Q行;或者,当源数据的位置信 息包括每个源数据对应的位置信息和每个源数据的长度时,则根据每个源数据对应的位置 信息将接收到的每个源数据填入重构数据块,并根据最后一个源数据的长度和最后一个源 数据的位置信息确定重构数据块中源数据的结束位置;或者,当源数据的位置信息包括每 个源数据对应的位置信息和第一个校验数据的起始位置时,则根据每个源数据对应的位置 信息将接收到的每个源数据填入重构数据块,并根据第一个校验数据的起始位置确定重构 数据块中源数据的结束位置,例如,第一个校验数据的起始位置为第M行,则重构数据块中 源数据的结束位置为第(Q-1)行。如果在第二数据包中携带的每个源数据对应的位置信息还包括源数据块标号 SBN,则首先根据位置信息中的SBN确定源数据对应的重构数据块,然后以位置信息中的 ESI对应的符号作为起始行,将该源数据填入该重构数据块。如果在第二数据包中携带的 每个源数据对应的位置信息还包括流标号F,则在将源数据填入重构数据块时,将流标号F 也填入重构数据块,例如参考图2,将流标号填入该源数据的ESI对应的符号的第一字节 中。源数据块标号SBN和流标号F在编码端构造源数据块时是可选的,解码端在生成重构数据块时只需根据编码端的配置相应的处理数据包中的信息即可,所以上述对源数据块标 号SBN和流标号F也不是必须的。步骤33 利用第二数据包中携带的校验数据,对重构数据块进行前向纠错解码, 恢复丢失的源数据。在步骤32中,利用接收的第一数据包中携带的多个源数据生成重构数据块时,由 于数据包在传输时可能丢失,导致重构数据块中缺失了部分源数据,所以,可以利用接收的 第二数据包中携带的校验数据,对重构数据块进行前向纠错解码,生成缺失的源数据,从而 恢复出与编码端源数据块相同的数据块。对重构数据块进行前向纠错解码可以是利用接收的一个或多个校验数据和接收 的多个源数据,生成未接收到的缺失的源数据,从而在解码端恢复出与编码端源数据块相 同的数据块。其中,当有多个校验数据时,不同的校验数据可以对不同的源数据进行前向纠 错解码;或者,当只有一个校验数据时,利用该一个校验数据对接收的多个源数据进行前向 纠错解码。本实施例中,通过在解码端分别接收承载源数据的第一数据包和承载校验数据以 及源数据位置信息的第二数据包,使得源数据与校验数据以及源数据的位置信息分开采用 不同的数据包发送,不改变承载源数据的第一数据包的结构,从而没有前向纠错功能的解 码端可以丢弃第二数据包,只根据第一数据包进行解码,同时,有前向纠错能够的解码端可 以根据校验数据以及源数据的位置信息,利用校验数据和接收到的源数据进行前向纠错解 码,恢复丢失的源数据,所以,本发明实施例提供的技术方案即能够与现有通信系统兼容, 又可以有效的利用前向纠错恢复丢失的源数据。实施例三如附图4所示,本发明实施例提供了一种前向纠错编解码方法,该方法包括以下 步骤步骤40 编码设备接收多个源数据包;其中,源数据包的格式不限,源数据包可以来自不同的数据流,用流标号F来区别 不同数据流的源数据包。步骤41 编码设备利用接收的多个源数据包构造源数据块;每个源数据包对应一 个位置信息,该位置信息用于标识该源数据包在源数据块中的位置;其中,利用多个源数据包构造源数据块的实现方式可以参考图2,图2示出了一个 源数据块,源数据块的每行表示一个符号,每个符号对应一个符号标识(如图2中源数据块 左边的一列数字所示),图2中F表示源数据包对应的流标号,L表示源数据包的长度(即 数据区D的长度),D表示数据区,每个数据区D中填充了一个源数据包,一个数据区D可以 占用源数据块的一个多个符号,P表示剩余位,可以按照一定的规则对剩余位进行填充。步骤42 编码设备对构造的源数据块进行前向纠错编码,生成校验数据;参考图2,图2中R表示校验数据,一个源数据块的可以有一个多个符号的校验数 据,在生成校验数据后也可以给校验数据对应的符号标识,以便解码时可以重新恢复出图2 所示的源数据块。步骤43 编码设备转发接收的多个源数据包;由于接收的源数据包本身已经是封装好的数据包,可以对这些接收的数据包不做处理直接转发,此时,接收的多个源数据包即为第一数据包,参考图5,图5示例性的给 出了一种源数据包的格式,该源数据包包括IP头部(Internet Protocol Header)、UDP 头部(User Datagram Protocol Header)禾口原始 UDP 净载荷(Original User Datagram Protocol Payload);具体的,可以在接收到多个源数据包时,复制接收的多个源数据包,将 复制的多个源数据包用于步骤41中的构造和步骤42中的编码,将接收的多个源数据包用 于步骤43中的转发。步骤44 编码设备通过第二数据包发送校验数据和源数据包的位置信息;其中, 第二数据包中携带源数据包的位置信息与源数据包的对应关系;源数据包的位置信息以及源数据包的位置信息与源数据包的对应关系有各种各 样的实现形式,具体可以参考实施例一中的相关内容。校验数据和位置信息以及对应关系可以采用不同的第二数据包进行传输,例如, 将校验数据封装为校验数据包,将位置信息以及对应关系封装为位置数据包。参考图6,图 6示例性的给出了一种校验数据包的格式,该校验数据包包括IP头部、UDP头部、修复净载 荷 ID(R印air FEC Payloadldentification)和修复净载荷(R印air symbols),其中,修复 净载荷即为生成的校验数据,修复净载荷ID包括该校验数据对应的源数据块的SBN以及在 该源数据块中校验数据起始行的ESI ;参考图7,图7示例性的给出了一种校验数据包中修 复净载荷ID的格式,该修复净载荷ID包括校验数据对应的源数据块的SBN、在该源数据块 中校验数据起始行的ESI、和该源数据块中源数据包的总长度SBUSource Block Length, 源数据块长度)。参考图8,图8示例性的给出了一种位置数据包的格式,该位置数据包包 括IP头部、UDP头部、位置信息和对应关系;参考图9,图9示例性的给出了一种位置数据包 中位置信息和对应关系的格式,该位置信息和对应关系包括前向纠错ID(fec_id)、源数据 块标识(SBN)、流标号(FlowID)、初始序列号(InitialSequence Number,ISN)、多个 ESI,其 中,fec_id用于表示FEC编码类型,可以确定SBN和ESI的格式,SBN标识该位置信息和对 应关系对应的源数据块,FlowID标识该位置信息和对应关系对应的数据流的流ID,ISN标 识该源数据块中属于某一 FlowID的第一个ESI对应的源数据包的序列号,length标识该 位置信息和对应关系中属于某一 FlowID的信息的长度,多个ESI组成一个ESI列表,每个 ESI标识源数据块中的一个源数据包。在图9的位置信息和对应关系中,源数据包的位置 信息包括源数据块标识、流标号和该源数据块的该数据流中的ESI列表。其中,ESI列表中 的多个ESI可以包括该源数据块的该数据流中第一个源数据包的ESI的绝对值,和除第一 源数据包外的其他源数据包与其前一个源数据包的ESI的差值,由于同一数据流中的源数 据包一般在同一源数据块中是连续的,因此,只要知道了该数据流中第一个源数据包的ESI 和之后每两个相邻源数据包的ESI差值,即可确定出该源数据块的该数据流中各个源数据 包的ESI,使用差值可以有效减少ESI列表的长度;或者,该源数据块的该数据流中各源数 据包的ESI的绝对值。对应关系是通过如下方法实现由于同一数据流中的源数据包的序 列号是顺序增加的,则只要知道源数据块的某一数据流中的第一个源数据包的序列号,则 可以确定之后的任一个源数据包的序列号,因此,在图9的位置信息和对应关系中,只需携 带第一个源数据包的序列号即可得知各个源数据包的位置信息与序列号的对应,即确定源 数据包的位置信息与源数据包的对应关系。根据图9的位置信息和对应关系的格式,图10给出了一个具体的例子。从图10示出的位置信息和对应关系中,可以得到SBN为0的源数据块中有两条流,流ID为分别为 96和97。流ID为96的三个源数据包的序列号分别为14567,14568 = 14567+1,14569 = 14567+2 ;ESI为1、7 = 1+6,11 = 7+4 ;其中,序列号为14567源数据包对应的ESI为1,序 列号为14568源数据包对应的ESI为7,序列号为14569源数据包对应的ESI为11。流ID 为97的两个源数据包的序列号分别为5734,5735 = 5734+1 ;ESI为15、19 = 15+4 ;其中, 序列号为5734源数据包对应的ESI为15,序列号为5735源数据包对应的ESI为19。步骤45 解码设备接收源数据包(即第一数据包)和第二数据包(校验数据包和 位置数据包);其中,校验数据包中携带校验数据,位置数据包中携带各源数据包的位置信 息、以及源数据包的位置信息与源数据包的对应关系;例如,接收如图5所示的源数据包,第二数据包包括如图6所示的校验数据包和如 图7所示的位置数据包。步骤46 解码设备根据第二数据包中携带的源数据包的位置信息以及源数据包 的位置信息与源数据包的对应关系,利用接收的多个源数据包生成重构数据块。首先,解码设备根据接收的一个或多个第二数据包确定源数据包的位置信息以及 源数据包的位置信息与源数据包的对应关系,例如,接收如图10所示的位置信息和对应关 系,确定SBN为0的源数据块中有两条流,流ID为分别为96和97 ;流ID为96的数据流中 包括三个源数据包,序列号为14567源数据包对应的ESI为1,序列号为14568源数据包对 应的ESI为7,序列号为14569源数据包对应的ESI为11 ;流ID为97的数据流中包括两个 源数据包,序列号为5734源数据包对应的ESI为15,序列号为5735源数据包对应的ESI为 19。之后,解码设备根据确定的源数据包的位置信息以及源数据包的位置信息与源数 据包的对应关系,利用接收到的多个源数据包生成重构数据块。例如,解码设备只接收到四 个源数据包,接收到的四个源数据包的序列号分别为14567,14568,5734,5735,丢失的一个 源数据包的序列号为14569,则根据图10所示的位置信息和对应关系,将接收到的四个源 数据包(序列号分别为14567,14568,5734,5735)按照其对应的位置信息填入重构数据块, 具体的,根据序列号14567的源数据包对应的ESI值1,以重构数据块中第1行为起始行将 序列号14567的源数据包填入重构数据块,根据序列号14568的源数据包对应的ESI值7, 以重构数据块中第7行为起始行将序列号14568的源数据包填入重构数据块,根据序列号 5734的源数据包对应的ESI值15,以重构数据块中第15行为起始行将序列号5734的源数 据包填入重构数据块,根据序列号5735的源数据包对应的ESI值19,以重构数据块中第19 行为起始行将序列号5735的源数据包填入重构数据块,生成的重构数据块如图11所示。其 中,如果最后一个源数据包(序列号5735)丢失,则重构数据块的结束位置可以从图7示出 的修复净载荷ID中确定,修复净载荷ID中携带了校验数据起始行的ESI,假设校验数据起 始行的ESI值为26,则重构数据块中源数据包的结束位置为第25行;或者,由于是否确定 最后一个源数据包(序列号5735)的长度,并不影响前向纠错解码,因此,如果最后一个源 数据包(序列号5735)丢失,则将接收到的最后一个源数据包(例如序列号5734的源数据 包)填入源数据块后,不确定源数据块中源数据包的结束位置,只确定源数据块中最后一 个源数据包丢失即可。在图11的重构数据块中,第1行至6行填充了序列号14567的源数 据包,第7至10填充了序列号14568的源数据包,由于序列号14569的源数据包丢失,则第
1511至14行中不填充数据,第15至18填充了序列号5734的源数据包,第19至25填充了 序列号5735的源数据包;各个源数据包填充时,源数据包对应的长度L、流标号F、填充位P 可以根据实际设置。步骤47 利用校验数据包中携带的校验数据,对重构数据块进行前向纠错解码, 恢复丢失的源数据包。例如,重构数据块如图11所示,序列号14569的源数据包丢失,则可以根据校验数 据和接收到的其他源数据包(序列号分别为14567,14568,5734,5735)中的部分或全部,进 行前向纠错解码,从而恢复出丢失的序列号14569的源数据包,例如,根据校验数据和序列 号14568的源数据包进行前向纠错解码恢复序列号14569的源数据包。因为可以根据一个 源数据块中的全部源数据包生成一个校验数据,或根据不同的一个或多个源数据包生成不 同的校验数据,所以,在利用校验数据进行前向纠错解码时,可以利用一个或多个校验数据 和接收到的源数据包中的部分或全部,来恢复丢失的一个或多个源数据包,具体使用时,可 以根据前向纠错算法的不同来灵活处理,本发明实施例在此不做限定。在其他实施例中,第二数据包的格式可以多种多样,本实施例仅仅是示例性的给 出了一些具体的报文格式,这些报文格式是为了更好的理解发明,而不构成对本发明的限 制。例如,第二数据包可以是RTP报文、RTCP报文或者是自定义的新报文等等。在具体传 输源数据包的位置信息以及源数据包的位置信息与源数据包的对应关系时,可以将源数据 包的位置信息以及源数据包的位置信息与源数据包的对应关系分为多个第二数据包进行 传送。另外,在编码端,编码设备为了保证校验数据或源数据包的位置信息以及源数据 包的位置信息与源数据包的对应关系传输的可靠性,可以多次发送携带校验数据的校验数 据包,和/或多次发送携带位置信息与对应关系的位置数据包;例如,连续发送多个相同的 位置数据包,或者,穿插在其他数据包(第一数据包和/或校验数据包)中发送多个相同的 位置数据包,以减小位置数据包丢失的概率。而且,编码设备利用接收的多个源数据包构造 源数据块时,可以选择接收的多个源数据包中的部分源数据包构造源数据块,例如,只选择 视频数据流中的I帧数据包构造源数据块,而P帧、B帧不用于构造源数据块。如果选择多 个源数据包中的部分源数据包构造源数据块,则在位置数据包中,只需传输选择的源数据 包的位置信息以及对应关系,例如可以在位置数据包(参考图9)中规定其中不参与构造 源数据块的源数据包的ESI字段为某一特殊值(比如OxFFFF);或者,在位置数据包中将只 包含一系列连续源数据包的初始序列号,进一步扩展为包含参与构造源数据块的源数据包 的多个不同源数据包段的起始序列号,参考图12,图12示例性的给出了一种位置数据包中 位置信息和对应关系的格式,图12中与图9相同的部分不再重复,其中,序列号(Sequence Number, SN)标识该源数据块中包含的不同源数据包段的起始序列号,ESI计数值(ESI Count, EC)标识该源数据块中包含的不同源数据包段中源数据包的计数值,EC用于确定下 一个SN的位置。根据图12的位置信息和对应关系的格式,图13给出了一个具体的例子。从图13 示出的位置信息和对应关系中,可以得到SBN为0的源数据块中有两条流,流ID为分别为 96和97。流ID为96的两段源数据包分别以序列号14567、14587开始,以14567开始的 3个数据包的ESI为0、6 = 6+0、10 = 6+4,以14587开始的2个数据包的ESI为13、17 =13+4 ;流ID为97的只有一段段源数据包,以序列号5734开始的1个数据报的ESI为19。本实施例中,通过在编码端对源数据块中的源数据进行前向纠错编码,生成校验 数据,并将源数据在源数据块中的位置信息和校验数据携带在第二数据包中向解码端发 送,而源数据通过第一数据包向解码端发送,在解码端分别接收承载源数据的第一数据包 和承载校验数据以及源数据位置信息的第二数据包,使得源数据与校验数据以及源数据的 位置信息分开采用不同的数据包发送,不改变承载源数据的第一数据包的结构,从而没有 前向纠错功能的解码端可以丢弃第二数据包,只根据第一数据包进行解码,同时,有前向纠 错能够的解码端可以根据校验数据以及源数据的位置信息,利用校验数据和接收到的源数 据进行前向纠错解码,恢复丢失的源数据,所以,本发明实施例提供的技术方案即能够与现 有通信系统兼容,又可以有效的利用前向纠错恢复丢失的源数据。实施例四如附图14所示,本发明实施例提供了一种通信系统,该系统包括编码设备5,用于利用多个源数据构造源数据块,每个源数据对应一个位置信息, 该位置信息用于标识该源数据在源数据块中的位置;对构造的源数据块进行前向纠错编 码,生成校验数据;通过第一数据包发送源数据块中的源数据,通过第二数据包发送校验 数据和源数据的位置信息;其中,第二数据包中携带源数据的位置信息与源数据的对应关 系;解码设备6,用于接收第一数据包和第二数据包,第一数据包中携带源数据,第二 数据包中携带校验数据、源数据的位置信息、以及源数据的位置信息与源数据的对应关系; 根据第二数据包中携带的源数据的位置信息以及源数据的位置信息与源数据的对应关系, 利用第一数据包中携带的多个源数据生成重构数据块;利用第二数据包中携带的校验数 据,对重构数据块进行前向纠错解码,恢复丢失的源数据。编码设备5与解码设备6通过网络7相连,编码设备5通过网络7向解码设备6发 送第一数据包和第二数据包。第一数据包和第二数据包携带的内容以及携带内容的方式, 可以参考其他实施例中的相关内容,这里不再赘述。编码设备5可以进一步包括构造模块51,用于利用多个源数据构造源数据块,每 个源数据对应一个位置信息,该位置信息用于标识该源数据在源数据块中的位置;编码模 块52,用于对构造模块51构造的源数据块进行前向纠错编码,生成校验数据;第一发送模 块53,用于通过第一数据包发送源数据块中的源数据,通过第二数据包发送编码模块52生 成的校验数据和源数据的位置信息,其中,第二数据包中携带源数据的位置信息与源数据 的对应关系。编码设备5还可以包括获取模块50,用于获取用于构造源数据块的多个源数据。 其中,获取模块50可以进一步包括第一接收单元501,用于接收通过网络传输的多个数据 包,以接收的多个数据包中的全部或部分作为所述多个源数据,或者,接收通过网络传输的 多个数据包,解析出接收的多个数据包的净载荷,将解析出的净载荷中的全部或部分作为 所述多个源数据;和/或第一获取单元502,用于获取上层的多个净载荷,以获取的多个净 载荷中的全部或部分作为所述多个源数据。其中,编码模块52可以进一步包括第一编码单元521,用于对源数据块中不同的 源数据分别进行校验生成多个校验数据,不同的校验数据由不同的源数据进行前向纠错编码获得;或第二编码单元522,用于对源数据块中的全部源数据进行前向纠错编码,生成一 个校验数据。其中,对源数据块中不同的源数据分别进行校验生成多个校验数据可以是 对一个源数据块中不同的源数据分别进行校验生成多个校验数据;或者,对不同源数据块 的源数据分别进行校验生成多个校验数据,每个源数据块分别校验生成一个或多个校验数 据。对源数据块中的全部源数据进行前向纠错编码,生成一个校验数据可以是对一个源数 据块中的全部源数据进行前向纠错编码,生成一个校验数据;或者,对多个源数据块中的全 部源数据进行前向纠错编码,生成一个校验数据。其中,第一发送模块53可以进一步包括第一发送单元531,用于通过第一数据包 发送源数据块中的源数据,通过一个或多个校验数据包发送校验数据,通过一个或多个位 置数据包发送位置信息及对应关系,所述第二数据包包括校验数据包和位置数据包;或第 二发送单元532,用于通过第一数据包发送源数据块中的源数据,将校验数据、源数据的位 置信息和源数据的位置信息与源数据的对应关系封装在同一个第二数据包中,发送该第二 数据包。解码设备6可以进一步包括第二接收模块60,用于接收第一数据包和第二数据 包,第一数据包中携带源数据,第二数据包中携带校验数据、源数据的位置信息、以及源数 据的位置信息与源数据的对应关系;重构模块61,用于根据第二接收模块60接收的第二数 据包中携带的源数据的位置信息以及源数据的位置信息与源数据的对应关系,利用第二接 收模块60接收的第一数据包中携带的多个源数据生成重构数据块;解码模块62,用于利用 第二数据包中携带的校验数据,对重构模块61生成的重构数据块进行前向纠错解码,恢复 丢失的源数据。解码设备6还可以包括第二发送模块63,用于发送接收和恢复的全部的源数据。其中,重构模块61可以进一步包括确定单元611,用于根据源数据的位置信息 与源数据的对应关系,确定接收的每个第一数据包中的源数据对应的位置信息;填写单元 612,用于根据每个源数据对应的位置信息,对应的将接收的每个源数据填入重构数据块。其中,解码模块62可以进一步包括第一解码单元621,用于利用校验数据中的一 个或多个与重构数据块中的一个或多个接收到的源数据,进行前向纠错解码,生成丢失的 源数据。以上通信系统中的编码设备5与解码设备6的具体功能,以及使用的各种位置信 息、对应关系、报文格式可以参考其他实施例的相关内容,这里不再赘述。其中,编码设备5可以作为一个模块设置在各种网络节点上,例如,设置在路由器 或交换机等中间节点上,作为中间节点的一个模块,对中间节点接收的数据流进行复制,从 复制的数据流中获取多个源数据,进而利用这些获取的源数据构造源数据块、进行前向纠 错编码,并在中间节点通过第一数据包转发接收的数据流的同时,编码设备5发送携带校 验数据、源数据的位置信息和源数据的位置信息与源数据的对应关系的第二数据包;或者, 编码设备5对中间节点接收的数据流进行解析,解析出接收的数据流的净载荷,以解析出 的净载荷作为多个源数据,进而利用这些源数据构造源数据块、进行前向纠错编码,并在通 过第一数据包发送解析出的净载荷的同时,发送携带校验数据、源数据的位置信息和源数 据的位置信息与源数据的对应关系的第二数据包。编码设备5可以也作为一个模块设置 在网络的头端节点上,头端节点可以产生数据流,例如头端节点通过视频采集设备采集视
18频流和音频流,编码设备5以头端节点的数据流作为多个源数据,进而利用这些源数据构 造源数据块、进行前向纠错编码,并在通过第一数据包发送源数据的同时,发送携带校验数 据、源数据的位置信息和源数据的位置信息与源数据的对应关系的第二数据包。相应的,解 码设备6也可以作为一个模块设置在各种网络节点上,例如,对应编码设备5的设置在编码 设备5的下游节点上,解码设备6在恢复出丢失的源数据后,可以将接收的和恢复的全部源 数据向其他网络节点发送。当然,各个网络节点上也可以同时设置编码设备5和解码设备 6,或者,将编码设备5和解码设备6集成为一个编解码设备设置在网络节点上,以实现在双 向的数据传输时,都可以进行前向纠错编解码。针对不同的网络情况及网络布局,可以灵活的部署编码设备5和解码设备6,例如 在网络条件相对较好侧(如核心网)可以不需要,而对于网络条件相对较差侧(如接入网) 则增加编码设备5和解码设备6 ;还可以根据不同的接入端选择编码设备5和解码设备6的 使用与否;还可以在整个网络中可靠性差的网段分段部署编码设备5和解码设备6,例如整 个网络的某一部分可靠性比较差,可以在可靠性差的网段入口端部署编码设备5,相应地, 在该网段地出口端增加解码设备6。这样可以减少部署成本,且对现有系统影响较小,实现 平滑升级。在不改变现有系统前提下,可以旁挂在网络的任意节点,比如汇聚交换机,边缘 路由器等,应用广泛,灵活。由于编码设备5和解码设备6可以灵活的设置在各种网络节点上作为一个附加的 功能模块,而不同网络节点所使用的数据包格式也可能各种各样,因此,编码设备5和解码 设备6中第一数据包和第二数据包可以采用各种形式的数据包格式。当编码设备5和解码设备6旁挂在各种网络节点上作为一个附加的功能模块时, 编码设备5的获取模块50从编码设备5所在的网络节点接收的源数据包中获取多个源数 据,这里,可以是将网络节点接收的源数据包复制,以复制的源数据包作为多个源数据,或 者,将网络节点接收的源数据包复制,对复制的源数据包进行解析,以解析出的源数据包净 载荷作为多个源数据;之后,编码设备5的第一发送模块53将第二数据包通过网络接口直 接发送,或者将第二数据包发送给编码设备5所在的网络节点,然后由该网络节点通过网 络接口发送第二数据包;由于在获取源数据时,进行了流复制,因此可以由给编码设备5所 在的网络节点直接转发接收的源数据包(即第一数据包),而编码设备5的第一发送模块 53仅需发送第二数据包即可。本实施例中,通过在编码端对源数据块中的源数据进行前向纠错编码,生成校验 数据,并将源数据在源数据块中的位置信息和校验数据携带在第二数据包中向解码端发 送,而源数据通过第一数据包向解码端发送,在解码端分别接收承载源数据的第一数据包 和承载校验数据以及源数据位置信息的第二数据包,使得源数据与校验数据以及源数据的 位置信息分开采用不同的数据包发送,不改变承载源数据的第一数据包的结构,从而没有 前向纠错功能的解码端可以丢弃第二数据包,只根据第一数据包进行解码,同时,有前向纠 错能够的解码端可以根据校验数据以及源数据的位置信息,利用校验数据和接收到的源数 据进行前向纠错解码,恢复丢失的源数据,所以,本发明实施例提供的技术方案即能够与现 有通信系统兼容,又可以有效的利用前向纠错恢复丢失的源数据。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。 总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
权利要求
一种前向纠错编码方法,其特征在于,包括利用多个源数据构造源数据块,每个源数据对应一个位置信息,该位置信息用于标识该源数据在源数据块中的位置;对构造的源数据块进行前向纠错编码,生成校验数据;通过第一数据包发送多个源数据,通过第二数据包发送校验数据和源数据的位置信息;其中,第二数据包中携带源数据的位置信息与源数据的对应关系。
2.如权利要求1所述的方法,其特征在于,在所述利用多个源数据构造源数据块之前, 所述方法还包括接收通过网络传输的多个数据包,以接收的多个数据包中的全部或部分作为所述多个 源数据;或者,接收多个数据包,解析出接收的多个数据包的净载荷,将解析出的净载荷中的全部或 部分作为所述多个源数据;或者,获取上层的多个净载荷,以获取的多个净载荷中的全部或部分作为所述多个源数据。
3.如权利要求1所述的方法,其特征在于,所述位置信息为源数据在源数据块中占用一个或多个符号,源数据的起始行对应的符号标识作为该源 数据在源数据块中的位置信息。
4.如权利要求3所述的方法,其特征在于,当有多个源数据块时,所述位置信息还包括源数据所在源数据块的源数据块标号,所 述源数据块标号用于区分不同的源数据块;和/或如果源数据来自不同的数据流,所述位置信息还包括流标号,所述流标号用于区分不 同的数据流。
5.如权利要求1所述的方法,其特征在于,所述对构造的源数据块进行前向纠错编码 生成校验数据包括对源数据块中不同的源数据分别进行校验生成多个校验数据,不同的校验数据由不同 的源数据进行前向纠错编码获得;或者,对源数据块中的源数据进行前向纠错编码,生成一个校验数据。
6.如权利要求1所述的方法,其特征在于,所述源数据的位置信息包括源数据块中每个源数据对应的位置信息;或源数据块中 每个源数据对应的位置信息和最后一个源数据的结束位置;或源数据块中每个源数据对应 的位置信息和最后一个源数据的长度;或源数据块中每个源数据对应的位置信息和源数据 块中源数据总共的长度;或源数据块中每个源数据对应的位置信息和校验数据的起始位 置;所述源数据的位置信息与源数据的对应关系包括源数据的位置信息与源数据的编号 的对应关系;或源数据的位置信息与封装源数据的第一数据包序号的对应关系,每个第一 数据包封装一个源数据;或源数据的位置信息与源数据的序号的对应关系,每个源数据为 一个第一数据包;或源数据的位置信息与源数据的其他标识的对应关系。
7.如权利要求1或6所述的方法,其特征在于,所述通过第二数据包发送校验数据和源 数据的位置信息为所述第二数据包包括封装校验数据的校验数据包和封装源数据的位置信息及源数据的位置信息与源数据的对应关系的位置数据包,通过一个或多个校验数据包发送校验数 据,通过一个或多个位置数据包发送位置信息及对应关系;或者,将校验数据、源数据的位置信息和源数据的位置信息与源数据的对应关系封装在同一 个第二数据包中,发送该第二数据包。
8.一种前向纠错解码方法,其特征在于,包括接收第一数据包和第二数据包,第一数据包中携带源数据,第二数据包中携带校验数 据、源数据的位置信息、以及源数据的位置信息与源数据的对应关系;根据第二数据包中携带的源数据的位置信息以及源数据的位置信息与源数据的对应 关系,利用第一数据包中携带的多个源数据生成重构数据块;利用第二数据包中携带的校验数据,对重构数据块进行前向纠错解码,恢复丢失的源 数据。
9.如权利要求8所述的方法,其特征在于,所述第二数据包包括封装校验数据的校验数据包和封装源数据的位置信息及源数据 的位置信息与源数据的对应关系的位置数据包,校验数据封装在一个或多个校验数据包 中,位置信息及对应关系封装在一个或多个位置数据包中;或者,校验数据、源数据的位置信息和源数据的位置信息与源数据的对应关系封装在同一个 第二数据包中。
10.如权利要求8或9所述的方法,其特征在于,所述源数据的位置信息包括源数据块中每个源数据对应的位置信息;或源数据块中 每个源数据对应的位置信息和最后一个源数据的结束位置;或源数据块中每个源数据对应 的位置信息和最后一个源数据的长度;或源数据块中每个源数据对应的位置信息和源数据 块中源数据总共的长度;或源数据块中每个源数据对应的位置信息和校验数据的起始位 置;所述源数据的位置信息与源数据的对应关系包括源数据的位置信息与源数据的编号 的对应关系;或源数据的位置信息与封装源数据的第一数据包序号的对应关系,每个第一 数据包封装一个源数据;或源数据的位置信息与源数据的序号的对应关系,每个源数据为 一个第一数据包;或源数据的位置信息与源数据的其他标识的对应关系。
11.如权利要求8所述的方法,其特征在于,所述根据第二数据包中携带的源数据的位 置信息以及源数据的位置信息与源数据的对应关系,利用第一数据包中携带的多个源数据 生成重构数据块包括根据源数据的位置信息与源数据的对应关系,确定接收的每个第一数据包中的源数据 对应的位置信息;根据每个源数据对应的位置信息,对应的将接收的每个源数据填入重构数据块。
12.如权利要求11所述的方法,其特征在于,当所述源数据对应的位置信息为源数据 在源数据块中的起始行对应的符号标识时,所述根据每个源数据对应的位置信息,对应的 将接收的每个源数据填入重构数据块包括以每个源数据的对应的符号标识在重构数据块中对应的行作为起始行,将每个源数据 分别填入重构数据块。
13.如权利要求8所述的方法,其特征在于,所述利用第二数据包中携带的校验数据,对重构数据块进行前向纠错解码,恢复丢失的源数据为利用校验数据中的一个或多个与重构数据块中的一个或多个接收到的源数据,进行前 向纠错解码,生成丢失的源数据。
14.一种前向纠错编码设备,其特征在于,包括构造模块,用于利用多个源数据构造源数据块,每个源数据对应一个位置信息,该位置 信息用于标识该源数据在源数据块中的位置;编码模块,用于对构造的源数据块进行前向纠错编码,生成校验数据; 第一发送模块,用于通过第一数据包发送多个源数据,通过第二数据包发送校验数据 和源数据的位置信息,其中,第二数据包中携带源数据的位置信息与源数据的对应关系。
15.如权利要求14所述的设备,其特征在于,所述设备还包括第一接收单元,用于接收通过网络传输的多个数据包,以接收的多个数据包中的全部 或部分作为所述多个源数据;或者,接收通过网络传输的多个数据包,解析出接收的多个数 据包的净载荷,将解析出的净载荷中的全部或部分作为所述多个源数据;和/或第一获取单元,用于获取上层的多个净载荷,以获取的多个净载荷中的全部或部分作 为所述多个源数据。
16.如权利要求14所述的设备,其特征在于,所述编码模块包括第一编码单元,用于对一个源数据块中不同的源数据分别进行校验生成多个校验数 据,不同的校验数据由不同的源数据进行前向纠错编码获得;或第二编码单元,用于对一个源数据块中的全部源数据进行前向纠错编码,生成一个校 验数据。
17.如权利要求14所述的设备,其特征在于,所述第一发送模块包括第一发送单元,用于通过第一数据包发送源数据块中的源数据;通过一个或多个校验 数据包发送校验数据,通过一个或多个位置数据包发送位置信息及对应关系,所述第二数 据包包括校验数据包和位置数据包;或第二发送单元,用于通过第一数据包发送源数据块中的源数据;将校验数据、源数据的 位置信息和源数据的位置信息与源数据的对应关系封装在同一个第二数据包中,发送该第 二数据包。
18.一种前向纠错解码设备,其特征在于,包括第二接收模块,用于接收第一数据包和第二数据包,第一数据包中携带源数据,第二数 据包中携带校验数据、源数据的位置信息、以及源数据的位置信息与源数据的对应关系;重构模块,用于根据第二数据包中携带的源数据的位置信息以及源数据的位置信息与 源数据的对应关系,利用第一数据包中携带的多个源数据生成重构数据块;解码模块,用于利用第二数据包中携带的校验数据,对重构数据块进行前向纠错解码, 恢复丢失的源数据。
19.如权利要求18所述的设备,其特征在于,所述重构模块包括确定单元,用于根据源数据的位置信息与源数据的对应关系,确定接收的每个第一数 据包中的源数据对应的位置信息;填写单元,用于根据每个源数据对应的位置信息,对应的将接收的每个源数据填入重 构数据块。
20.如权利要求18所述的设备,其特征在于,所述解码模块包括第一解码单元,用于利用校验数据中的一个或多个与重构数据块中的一个或多个接收 到的源数据,进行前向纠错解码,生成丢失的源数据。
21.一种通信系统,其特征在于,包括至少一个网络节点;所述网络节点中的全部或部分包括权利要求14至17任一项所述的前向纠错编码设备 和/或权利要求18至20任一项所述的前向纠错解码设备。
全文摘要
本发明实施例涉及通信传输领域,尤其是一种前向纠错编码方法、装置,一种前向纠错解码方法、装置,以及通信系统。本发明实施例提供的前向纠错编码方法包括利用多个源数据构造源数据块;对构造的源数据块进行前向纠错编码,生成校验数据;通过第一数据包发送多个源数据,通过第二数据包发送校验数据和源数据的位置信息。使得源数据与校验数据以及源数据的位置信息分开采用不同的数据包传输,所以,本发明实施例提供的技术方案既能够与现有通信系统兼容,又可以有效的利用前向纠错恢复丢失的源数据。
文档编号H04L1/00GK101877620SQ20091010703
公开日2010年11月3日 申请日期2009年4月30日 优先权日2009年4月30日
发明者张卫娥, 胡昌启, 艾常权, 邹子轩, 陈兵, 鲁亚东 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1