用于在符号编码的传输流中传送前向纠错码的方法_4

文档序号:9526803阅读:来源:国知局
,N-K可以是与数据符号中的640个比特对应的10个奇偶校验字节。N-K个奇偶校验字节可以与对应的K个数据字节的K个数据符号的编码同时生成。当编码数据流中下面的K个数据字节中的具有K个数据符号的另一包时,可以缓冲该N-K个奇偶校验字Ti O
[0081]在一些实施例中,在步骤230中,新生成的元数据(奇偶校验字节)可以自身接受ECC生成。否则,元数据中的传输错误可能造成接收ECC处理中的显著损坏。由于编码ECC符号中的一个比特错误在解码之后可能导致受影响的ECC字节中的多个错误,所以这里可以采用更强健的方法,如(12,10)里德-所罗门码。利用里德-所罗门码或类似纠错都通过增加两个字节的奇偶校验数据,提供任何受影响的ECC字节的完全纠正,无论在该受影响的字节中引入多少比特错误。
[0082]此外,如果被损坏的特定ECC字节是已知的,则利用两个奇偶校验字节的里德-所罗门可以纠正该组中任何两个ECC字节(例如,接收的传输流中无效的ECC符号导致它们对应的字节的损坏值,因此这些特定的ECC字节将已知是坏的,并且该组中的这些ECC字节中的任意两个可以利用里德-所罗门添加的两个额外ECC字节进行纠正)。这产生总共N-K=12个这样的字节或者与每个数据包关联的总共N= 76个奇偶校验字节和数据符号。然后,该具有12个ECC字节的组形成具有64个数据字节的包的元数据。数个这样的数据字节包可以被编码并且被添加至传输流,同时它们对应的ECC字节组被缓冲并且然后被编码以及在这些数据符号之后被添加至传输流中。
[0083]在另一实施例中,不是利用里德-所罗门来保护ECC字节,而是这10个(第一级)ECC符号(即,这10个奇偶校验字节在已经经过编码之后变成10个ECC符号)自身接受该(72,64)汉明码,以生成附加的2(第二级)个ECC字节,这次是为了使这10个第一级ECC字节不受在这些ECC字节已经变成符号并且传输给宿设备之后引入的错误的影响。该技术也为每个组生成总共N-K = 12个ECC字节,其中该技术仅在各处采用相同的(72,64)汉明码而不是汉明码和里德-所罗门的组合。在其它实施例中,更多字节(例如,更多的数据包)可以具有为这些字节生成的ECC,以更充分地利用多级汉明码、里德-所罗门(或其它更复杂的纠错逻辑,如LDPC)或这些方法的组合。
[0084]在步骤240中,利用例如与在数据字节编码(例如,标准8/10编码器)中利用的相同编码机制,将这N-K个奇偶校验字节编码成N-K个奇偶校验符号。因此,对于具有64个数据符号的包而言,编码具有10或12个对应奇偶校验符号的组,这导致每个数据字节包的总共74或76个奇偶校验符号和数据符号。这10或12个奇偶校验符号可以被视作与具有64个数据符号的数据包对应的元数据包,其中传输数个这样的数据符号包,然后传输它们对应的奇偶校验符号元数据包。
[0085]在步骤250中,对于该包中的总共74个或76个符号,为了传输将该包组合作为K(例如,64)个数据符号(数据包)和之后的Ν-Κ(例如,10或12)个奇偶校验符号(元数据包),每个符号用相同的(例如,DC均衡)编码算法进行编码。如上面介绍的,可以首先发送数个这样的数据包,然后发送它们对应的元数据包。在一些实施例中,在步骤260中,如大多数编码方案中的一部分那样,可以用控制符号(例如,没有对应的解码值的编码符号值)对元数据包进行单独地分帧或者以其它方式识别。例如,控制符号可以用于将数据包与对应的元数据包(以及用于将元数据包与下一数据包分离的另一控制符号,如具有不同值的控制符号)分离。
[0086]图5是根据本发明实施例的在符号编码的传输流中移除和处理FEC码的方法的流程图。作为示例,图5的方法可以用于实现上面描述的图2的方法中的步骤150、步骤160和步骤170。
[0087]处理开始,并且在步骤310中,识别接下来接收的传输数据包。例如,在一些实施例中,这可以通过保存接收的符号的计数、知道(数据和ECC)包以规则的间隔开始来实现。在其它实施例中,可以识别包或一组包的开始或结束(例如,利用控制符号)。
[0088]在步骤320中,处理这些包,将与每个包对应的K个数据符号移动至缓冲区,同时分离对应的N-K个奇偶校验符号(在每个元数据包中)。作为此过程的一部分,相应地标识和处理控制符号(例如,移除或以其它方式分离)。在多级ECC的情况中,从数据符号和较低级的ECC符号中可以提取最高级的ECC符号。在步骤330中,解码这些奇偶校验符号来恢复ECC字节(或在多级ECC情况中,最高级的ECC字节)。
[0089]在步骤340中,如果奇偶校验字节自身接受FEC处理(如里德-所罗门)或是多级汉明码的一部分(或者接受FEC处理并且是多级汉明码的一部分),那么检查接收的ECC字节,并且纠正任何(能够纠正的)错误,或者由较高级ECC字节纠正较低级的ECC符号(或者纠正任何(能够纠正的)错误并且由较高级ECC字节纠正较低级的ECC符号)。例如,利用(12,10)里德-所罗门,两个额外的奇偶校验字节保护ECC字节,允许在ECC字节完全恢复的情况下(依据诸如利用多少ECC字节以及在传输期间对数据符号造成多少错误此类的因素,这同样可能导致数据的完全恢复)这十二个奇偶校验字节之一(或者如果能够识别特定奇偶校验字节,则可能两个)损坏(例如,在符号传输期间)。类似地,在其它实施例中,如果存在10个第一级(汉明码)奇偶校验字节以及两个第二级奇偶校验字节,那么第二级奇偶校验字节可以用于纠正第一级奇偶校验符号中的传输错误,该第一级奇偶校验符号然后可以被解码成第一级ECC字节并且用于纠正数据符号中的任何错误。
[0090]在步骤350中,利用这些ECC字节来纠正所接收的数据符号中的任何传输错误。例如,利用(72,64)汉明码,具有8字节数据符号(64个比特)的每个组被对应字节(8比特)的奇偶校验数据保护,允许纠正(每个组中)的单个比特错误以及检测(每个组中)的双比特错误。在一些实施例中,这可以是对上面描述的多级ECC方法利用的同样的纠正,只是这次将纠正应用于所接收的数据符号,而不是较低级的ECC符号。在步骤360中,解码所恢复的数据符号(例如,利用10/8解码器)来从传输流中恢复数据字节。例如,这可以利用与之前用于解码ECC符号相同的解码逻辑。
[0091]图6是根据本发明另一实施例的在符号编码的传输流中传送FEC码的方法的流程图。图7是根据本发明另一实施例(如图6的实施例)的传输流编码器和解码器的框图。图6和图7的实施例的多个部分可以与上面描述的图2和图3的实施例的对应部分相同或相似。因此,这些部分的描述可不再重复。
[0092]参考图6和图7,处理开始,并且在步骤610中,数据编码器715将由数据源705供应的数据流710编码成符号(或数据符号)720,并且将该符号添加至传输流750 (例如,由串行器745供应的串行传输流750)。例如,来自数据流710的数据字节的包可以利用8/10编码器作为数据编码器715,被编码成数据符号720的对应包。
[0093]在步骤620中,数据符号720除了被送到(串行)传输流750 (经由串行器745)以夕卜,还被ECC生成器725用于创建数据符号720的纠错码(ECC) 730 (例如,奇偶校验比特或字节)。例如,汉明码可以被用于生成数据符号720的ECC 730。数据符号720的每个包可以用于生成ECC 730的对应组。汉明码可以具有充足的奇偶校验比特,例如以检测传输流750中符号和ECC的集合中的多个比特错误或者纠正单个比特错误,或者检测该符号和ECC的集合中的多个比特错误并且纠正单个比特错误,或者纠正这些符号和ECC中的多个特比特错误。
[0094]在步骤630中,利用行程长度检测器735评估所生成的ECC 730。为了避免例如编码ECC字节(如上面关于图2和图3描述的)的一些复杂问题,在图6和图7的实施例中,在不接受编码的情况下将ECC 730添加至传输流750。这有助于例如防止传输流中的单比特错误产生接收的ECC字节中的多个比特错误。然而,如果没有编码,则ECC 730可能不具有满足传输流750的传送协议的正确形式(例如,ECC 730可能不满足与DC均衡相关的规则或准则,或者具有‘0’比特和‘I’比特之间的足够数量转变或者‘I’比特和‘0’比特之间的足够数量转变)。
[0095]因此,行程长度检测器735可以测量所生成的ECC 730,并且如果ECC 730已经达到某一设定的或预定的标准(例如,达到特定长度,或者未处于足够的DC均衡或者具有保证进一步增长的足够转变),则行程长度检测器735可以停止进一步缓冲ECC 730,并且作为替代可以将所生成的ECC 730经由串行器745插入传输流750内。例如,行程长度检测器735可以用控制符号对ECC 730进行分帧,以产生经分帧的ECC 740并且将该经分帧的ECC 740在其对应的数据包之后插入传输流750中。
[0096]在步骤640中,向接收设备传输传输流750并且接收设备接收该传输流750。例如,传输流750可以在经过串行器745之后以设定的或预定的传输速率(例如,高速串行链路)一次一个比特地被发送给接收设备。例如,数据符号720的各包可以首先被发送,之后发送其对应的一组分帧的ECC字节740的各组。然后,该传输流750被接收设备接收,并且例如被解串行(利用解串行器755)成构成向该接收设备发送的传输流750的(未被提取的)数据符号和ECC字节760。控制符号可以例如用于将数据符号720的这些包与ECC字节730的这些组分离(例如,通过将ECC字节730分帧为分帧ECC 740)。
[0097]在步骤650中,从所接收的传输流750中提取ECC字节770 (例如,传输流750可以被分离成ECC字节770和数据符号772)。例如,依据ECC 730如何被行程长度检测器735分帧以及如何作为分帧ECC 740被串行器745插入传输流750内(例如,控制符号用于对这些ECC字节进行识别或分帧),ECC字节770的提取使该过程反向进行,以将ECC字节770与代表数据流的数据符号772分离。
[0098]在步骤660中,利用所提取的ECC字节770纠正所接收的传输流的数据符号772中的比特错误,以恢复构成数据流的经纠正的数据符号780。例如,依据用于生成ECC字节730 (例如,汉明码)的FEC算法,在步骤650中提取的对应ECC字节770被用于纠正所接收的数据符号772中检测到的比特错误并且创建经纠正的数据符号780。相同的处理还可以用于同时纠正所传输的ECC字节中的比特错误。例如,作为相同ECC处理的一部分,汉明码可以检测和纠正数据符号772和它们对应的(未编码的)ECC字节770中的(传输)错误。
[0099]在步骤670中,例如利用使编码器715所执行的编码反向的解码器785,解码所恢复的(被纠正的)数据符号780,以恢复数据流790,数据流可以然后被供应给数据宿795 (例如,如显示设备的宿设备)。例如,如果在步骤610中利用标准的8/10编码器作为数据/ECC编码器715来将数据流710编码成数据符号720,那么标准的10/8解码器可以用于解码接收的传输流中所恢复的(纠正的)数据符号780。
[0100]虽然结合特定示例实施例描述了
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1