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

文档序号:9526803阅读:来源:国知局
CC编码器515编码成符号520。这保护ECC符号中的简单传输错误免于合成多个错误(例如,保护比特错误免于转变成字节错误)。在计算方面,这类似于像处理通过第一 ECC生成器525的另一通路的数据一样处理第一 ECC符号520(即元数据)。如本领域普通技术人员所明白的,该过程可以进一步延伸至更高级(通过第一 ECC生成器525的更多通路)。为了便于描述,仅参照图2和图3描述了一个这种通路,其中为了清楚起见在适当位置添加了对于多个通路的细节。
[0065]更详细地,ECC (奇偶校验)符号520的这些组与它们对应的数据符号520包(即,数据和ECC符号520,其中这两种符号基于例如符号流中的位置或者元数据标识符等是可辨别的)被装载在相同的传输流550中。例如,在一些实施例中,第一 ECC 530嵌在与数据字节包对应的流元数据包(例如,多组奇偶校验符号)内,并且通过传输编码功能(例如,数据编码器515)发送,以在整个传输流550各处保持一致的符号编码。
[0066]利用这种技术,在传输原始数据符号520的同时,传输代表FEC字节(例如,奇偶校验字节510或奇偶校验符号520)的附加符号,而不进行进一步的处理。这能够实现接收侧基于符号的纠错,其中可以利用低复杂度FEC方法(如汉明码)处理所接收的符号,以在源设备将数据字节编码成符号之后并且在宿设备将数据符号解码成数据字节之前纠正所传输流550中的错误。作为另一示例,在一些实施例中,将ECC直接放入传输流中并且利用控制码对该ECC进行分帧,这导致与将被验证的传输流的部分连续的ECC。
[0067]ECC生成法通常生成比对应量的原始数据少得多的奇偶校验比特或字节(即,数据符号520的每个包通常远大于其对应的ECC符号520组)。此外,上面的技术大大降低传输流550中影响接收设备能够重建原始数据的错误的可能性。然而,即便可能存在比原始数据符号少得多的ECC符号,ECC符号中的错误也可能产生与在编码数据之前在进行FEC处理时遇到的那些问题类似的问题。例如,ECC符号中的单比特错误可能导致无效码或者导致被解码成完全不同的字节的有效码,从而将字节错误(例如,多达八个分离的比特错误)引入接收设备端处的ECC中。对于低复杂度FEC方法(如汉明码)来说,ECC符号中的这种错误可能使得不可能纠正对应数据符号中的传输错误。
[0068]为了解决这些问题,可以利用几种方法。例如,在步骤120 (其在一些实施例中可以被省略)中,ECC符号520本身可以通过第一 ECC生成器525接受处理(例如像处理数据一样处理较低级ECC符号520)。也就是说,在一些实施例中,ECC符号520的组可以接受第一 ECC生成,并且由此产生的(较高级ECC)符号被添加至传输流550。这允许容易地纠正ECC符号520中的传输错误,同时降低通常明显小于数据符号和(较低级)ECC符号的字节级损坏仅暴露给较高级ECC符号。
[0069]如本领域普通技术人员所明白的,在其它实施例中,该过程可以继续许多级(例如,通过第一 ECC生成器525和数据/ECC编码器515处理较高级ECC符号520,以生成更高极ECC符号),因此减低了通常明显小于数据符号和较低级ECC符号的字节级损坏暴露给最高级ECC符号。为了方便描述,在所描述的实施例中利用多级ECC符号可被省略。
[0070]在其它实施例中,在步骤120中,第一 ECC 530除了如上面描述的那样通过一个或多个附加级的第一 ECC生成被处理(例如,汉明码)以外或者代替通过一个或多个附加级的第一 ECC生成被处理,还可以通过第二(例如更高复杂度的)ECC生成器535 (例如,字节级ECC生成器,如里德-所罗门或LDPC)处理,以在编码之前向数据和ECC流510增加附加ECC字节(例如第二 ECC)。在步骤130中,然后可以根据第一 ECC和第二 ECC编码ECC符号520。由于第二 ECC生成器535仅处理第一 ECC 530 (其通常比对应的数据符号少得多),所以(可能更高复杂度的)第二 ECC生成器535处理可以仅用于相对少量的全部数据和奇偶校验字节和符号。然而,如里德-所罗门和LDPC的更高复杂度的技术在传输过程期间允许ECC符号中的多字节级损坏从在错误的情况下恢复为ECC符号。在进一步其它实施例中,上述技术可以扩展至较高级或者相结合(例如,向较高级第一 ECC字节应用里德-所罗门)。
[0071]在步骤140中,向接收设备传输传输流550并且接收设备接收该传输流550。例如,传输流550可以在经过串行器545之后以设定的或预定的传输速率(例如,高速串行链路)一次一个比特地被发送给接收设备。例如,可以首先发送数据符号520的包,之后发送其对应的ECC符号520的组。然后,该传输流550被接收设备接收,并且例如被解串行(利用解串行器555)成构成向该接收设备发送的传输流550的(未被提取的)数据符号和ECC符号560。控制符号可以例如用于将数据符号520的包与ECC符号520的组分离开。
[0072]在步骤150中,数据/ECC提取器565从所接收的传输流550中提取ECC符号570 (例如,传输流550可以被分离成ECC符号570和数据符号572)。例如,根据在通过串行器545进行串行之前数据/ECC编码器515如何组合传输流550 (例如,元数据或奇偶校验符号的位置或用于识别或对元数据或奇偶校验符号进行分帧的控制符号的位置),ECC符号570的提取使该过程反向进行,以将ECC符号570与代表数据流的数据符号572分离。类似地,数据/ECC解码器575解码ECC符号570 (利用与编码算法对应的解码算法,如标准的10/8解码算法),以产生对应的ECC (奇偶校验)字节580 (例如上面描述的第一 ECC和第二 ECC),其在图3中被示意性地图示为从右向左运动通过数据/ECC解码器575。
[0073]此外,在步骤150中,根据(例如通过第二 ECC生成器535)用于保护源设备中的第一 ECC字节530或ECC符号520的第二 ECC技术(如果有的话),第二误差纠正器585可以对ECC 580执行对应的纠错,以产生纠正的第一 ECC 586。例如,如果里德-所罗门被用于保护第一 ECC字节530,那么第二误差纠正器585可以用于利用里德-所罗门纠错逻辑来纠正所解码的(第一和第二)ECC字节580中的任何错误(例如,所解码的第二 ECC可以用于纠正所解码的第一 ECC中的错误)。
[0074]如果或除了更尖端的技术(如里德-所罗门或LDPC)以外,利用多级(例如两级)汉明码ECC方法,那么数据/ECC提取器565可以提取较高级ECC符号,以将较高级ECC符号与数据和较低级ECC符号572分离(通过纠错过程处理较低级ECC符号就像处理其第一通路的数据符号一样)。较高级ECC符号570可以被数据/ECC解码器575解码成较高级ECC580,较高级ECC 580(如果例如还利用里德-所罗门)可以通过第二误差纠正器处理,以创建纠正的(较高级)第一 ECC 586。该纠正的(较高级)第一 ECC 586可以用于经由第一误差纠正器587 (如汉明数据纠正器)纠正较低级ECC符号572,以产生纠正的较低级ECC符号588。这些纠正的较低级ECC符号588可以被输入至解码器575,以产生解码的较低级ECC 580 (图3中被示意性地图示为从数据/ECC解码器575的底部进入并且从数据/ECC解码器575的左侧离开),该解码的较低级ECC 580可以例如用作纠正的第一 ECC 586 (例如略过来自第二误差纠正器585的任何第二纠错)。
[0075]在步骤160中,在第一误差纠正器587中利用所提取的、被解码的以及被纠正的第一 ECC 586纠正所接收的传输流中所接收的数据符号572中的比特错误,以恢复构成该数据流的纠正的数据符号588。例如,依据用于在第一 ECC生成器525中生成第一 ECC 530 (例如,汉明码)的ECC算法,在步骤150中提取的、解码的以及可能纠正的对应第一 ECC 586被用于纠正所接收的数据符号572中检测到的比特错误,并且创建经纠正的数据符号588。这可以是与在步骤150中可用于利用所提取的(以及可能纠正的)较高级第一 ECC 586纠正较低级ECC符号相同的处理(并且利用相同的第一误差纠正器587)。为了便于描述,在图3中,第一误差纠正器587 (以及处理)可以对应于第一 ECC生成器525 (例如执行反向处理),而第二误差纠正器585可以对应于第二 ECC生成器535。在一些实施例中,第二误差纠正器585和第一误差纠正器587可以被实现为单个误差纠正器部件。
[0076]在步骤170中,解码(例如,利用与之前用于解码ECC符号570相同的数据/ECC解码器575,只是这一次在图3中被示意性地图示为向上运动通过数据/ECC解码器575)所提取的和纠正的数据符号588,以恢复数据流590,该数据流590然后可以被供应给数据宿595(例如,诸如显示设备的宿设备)。例如,如果在步骤110中利用标准8/10编码器作为数据/ECC编码器515来将数据流510编码成数据符号520,那么标准10/8解码器可以用于解码所接收的传输流中所恢复的(纠正的)数据符号588。
[0077]如上面提到的,在一些实施例中,ECC在传输流中作为与数据符号类似的符号传送,该ECC被嵌在流元数据包中并且通过传输编码功能发送(例如,与用于生成数据符号的传输编码功能相同的传输编码功能),以在整个传输流各处保持一致的编码和解码。这将参照图4进一步说明。
[0078]图4是根据本发明实施例的在符号编码的传输流中创建并插入FEC码的方法的流程图。作为示例,图4的方法可以用于实现上面描述的图2的方法中的步骤120和步骤130。
[0079]处理开始,并且在步骤210中,利用FEC算法(如汉明码),来生成例如具有K个数据符号的多个包中设定或预定数量的数据符号的ECC比特(奇偶校验比特)。例如,(72,64)汉明码(其中每八个字节¢4比特)数据具有与其关联的八个ECC比特或奇偶校验比特(即,一个字节的奇偶校验比特))可以用于生成每八个数据字节的奇偶校验字节。因此,对于具有64个数据符号的每个包(代表64 X 10 = 640比特符号或640/8 = 80字节的符号,每个具有10组8字节),利用(72,64)汉明码生成具有10X8 = 80ECC奇偶校验(元数据)比特(即,10个字节)的组。然后,该具有10个奇偶校验字节的组可以通过与数据字节相同的编码器运行,以生成10个对应的ECC符号(奇偶校验符号),或者许多这样的ECC字节组可以在进入编码器之前被缓冲。该(72,64)汉明码具有足够的奇偶校验比特,来纠正传输流中每个数据符号包中的任何单个错误以及检测两个错误的任意组合。此外,该(72, 64)汉明码以简单的逻辑和快速的执行对本领域技术人员而言容易实现。
[0080]ECC生成可以与例如具有K个数据符号的每个包的数据字节的符号编码同时发生。因此,在步骤220中,为具有K个数据符号的每个包生成具有N-K个奇偶校验(ECC)字节的组,这导致总共N个ECC字节和数据符号。例如,利用上面描述的(72,64)汉明码,K可以是包中的64个数据符号,而对于总共N = 74的与数据符号的每个包关联的奇偶校验字节以及数据符号
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1