背景技术
在数字通信系统中,为了提高数据在信道传输过程中的可靠性,往往采用前向纠错技术抵抗噪声和干扰的影响,降低误码率,提高接收质量。里德——索罗门(Reed-Solomon,RS)码具有强大的纠正随机和突发差错的能力,在现代通信系统中得到了广泛的应用。
CMMB系统采用了级联码,内码是LDPC码,外码是有限域GF(28)上的(240,k)系统缩短RS码。RS码长恒为n=240字节,码率有4种。图1给出了不同码率下RS码的信息数据字节长度k和校验数据字节长度r=n-k。
为进一步提高RS码纠正突发差错的能力,CMMB系统还采用了字节块交织技术。交织宽度等于RS码长n=240,深度m与交织模式、信道带宽和LDPC码率密切相关,如图2所示,m的最大值是432。图3给出了字节交织器的结构示意图,它包括信息区(左边阴影区)和校验区(右边非阴影区)两部分。
RS编码和字节交织的现有解决方案主要包括以下三个步骤:(1)根据RS码参数k和交织深度m,将km字节的信息数据逐列写入信息区;(2)对信息区逐行进行RS编码,并将计算得到的校验数据写入校验区的同一行;(3)对m个RS码字进行交织,依次从信息区和校验区逐列读出数据。
以上是一个交织块内RS编码和字节交织的一般实现方法。为了满足各种交织方式的需要,通常的做法是根据最大交织深度设计兼容所有交织方式的缓冲区。另外,为了保证数据输入输出的连续性,往往采取基于两个交织块的乒乓操作机制。因此,RS编码和字节交织的现有解决方案需要432*240*8*2=1,658,880bit的存储空间。如此大的存储需求导致字节交织操作难以在主流FPGA的片内存储器完成,而只能诉诸外部存储器,由此带来成本高、访问速度慢和稳定性差等一系列缺点。
发明内容
针对CMMB系统RS编码和字节交织的现有实现方案中存在的需要大容量存储器这一技术缺点,本发明提供了一种基于分段和乒乓处理机制的RS编码和字节交织的联合实现方案,有效降低字节交织对存储器容量的需求。在此基础上,提供了一种改进的RS编码器,以提高分段RS编码的速度。
如图4所示,基于分段和乒乓处理机制的CMMB标准中RS编码和字节交织的联合处理装置主要由4部分组成:信息缓冲区1、信息缓冲区2、校验缓冲区和改进的RS编码器。
在本发明中,一个交织块内的信息数据被分成多个小段,其字节交织在两个较小的信息缓冲区之间乒乓完成,保证信息数据连续输入输出;校验数据不分段,其字节交织在校验缓冲区完成。由于两个信息缓冲区和校验缓冲区的总存储空间远小于一个交织块内的信息区,所以能有效降低字节交织对存储器容量的需求。
由于信息数据被分段,所以RS编码也要分段进行。本发明提供了一种改进的RS编码器,图5是其结构框图,它对信息数据进行分段逐行编码。改进的RS编码器把临时的校验信息视为另一路输入,每次编码时无需恢复移位寄存器的数值。与传统RS编码器相比,节约了初始化移位寄存器的时间,从而提高了编码速度。
本发明极大地节约了存储器消耗,使字节交织操作得以在主流FPGA的片内存储器完成,克服了现有解决方案的一系列缺点,由此带来成本低、处理时间短和稳定可靠等好处。此外,对于分段进行RS编码,改进的RS编码器以增加少许编码复杂度为代价,有效地提高了编码速度。
关于本发明的优点与精神可通过接下来的发明详述及附图得到进一步的了解。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
图4给出了基于分段和乒乓处理机制的CMMB标准中RS编码和字节交织的联合实现结构示意图,它主要由信息缓冲区1、信息缓冲区2、校验缓冲区和改进的RS编码器四个功能模块组成。
两个信息缓冲区采用乒乓机制分段逐列输入和输出信息数据,完成不同RS码字中信息数据的字节交织。两个信息缓冲区的构成完全相同。如图6所示,信息缓冲区的深度等于最大交织深度432,宽度是8,等于图1中4种k的最大公约数16的一半。图7给出了不同的k对应的分段处理次数k/8,它们都是偶数,从而保证了信息数据的交织总是开始于信息缓冲区1,结束于信息缓冲区2。
校验缓冲区逐行存储一个RS码字临时的或最终的校验数据;逐行输出临时的校验数据,用于进行分段RS编码;逐列输出最终的校验数据,完成不同RS码字中校验数据的字节交织。如图8所示,校验缓冲区的深度也等于最大交织深度432,宽度是图1中4种r的最大值64。
改进的RS编码器在两个信息缓冲区之间切换,利用校验缓冲区中的临时校验数据逐行对选择的信息缓冲区进行编码,实现对所有RS码字中信息数据的分段编码。图5是改进的RS编码器的结构框图,它进行一次分段逐行编码的步骤如下:
(1)清零所有移位寄存器R0,R1,...,R239-k。
(2)闭合开关S1、S2和S3,断开开关S4。从信息缓冲区的第i(0≤i<m)行读出8字节的信息数据,同时从校验缓冲区的第i行读出8字节的临时校验数据pi,239-k,pi,238-k,...,pi,232-k,把它们依次送入编码器进行编码。
(3)闭合开关S3和S4,断开开关S1和S2。继续从校验缓冲区的第i行读出余下的(232-k)字节临时校验数据pi,231-k,pi,230-k,...,pi,0,把它们依次送入编码器修正新的校验数据。与此同时,逐个输出移位寄存器的数值,把(232-k)字节临时的或最终的校验数据pi,239-k,pi,238-k,...,pi,8存储到校验缓冲区的第i行。
(4)闭合开关S4,断开开关S1、S2和S3。继续逐个输出移位寄存器的数值,把8字节临时的或最终的校验数据pi,7,pi,6,...,pi,0存储到校验缓冲区的第i行。
综上可见,改进的RS编码器完成一次RS编码需要8*2+(232-k)个时钟周期。
图9是传统RS编码器的结构框图。如果用它来进行分段逐行编码,那么一次RS编码的步骤如下:
(1)闭合开关W1,断开开关W2、W3和W4。从校验缓冲区的某一行读出(240-k)字节的临时检验数据,逐个初始化移位寄存器R0,R1,...,R239-k。
(2)闭合开关W2和W3,断开开关W1和W4。从信息缓冲区的同一行读出8字节的信息数据,送入编码器进行编码。
(3)闭合开关W4,断开开关W1、W2和W3。逐个输出移位寄存器的数值,将(240-k)字节临时的或最终的检验数据存储到校验缓冲区的同一行。
容易看出,传统RS编码器完成一次RS编码需要8+(240-k)*2个时钟周期。
图10比较了两种RS编码器完成一次分段逐行编码所需的时间。注意,对于k=240,无需进行RS编码。由图10可知,对于k=224、192和176,改进的RS编码器的速度分别是传统RS编码器的1.67、1.86和1.89倍。通过上述分析以及对比图8和9可得出以下结论:改进的RS编码器无需逐个初始化移位寄存器,能在基本保持实现复杂度的同时,有效提高编码速度。
本发明提供了一种CMMB标准中RS编码和字节交织的联合实现方法(如图4所示),它是基于分段和乒乓机制,处理一个交织块的步骤如下:
(1)清零校验缓冲区,开关Z1处于位置1。
(2)向信息缓冲区1输入第j(j是奇数1,3,…,k/8-1)段信息数据,逐列填满信息缓冲区1的前m行。填满后,开关Z1切换到位置2。
(3)开关Z2切换到位置1,利用校验缓冲区中的临时校验数据,使用改进的RS编码器对信息缓冲区1中的信息数据进行逐行分段编码,并将计算得到的临时校验数据保存到校验缓冲区的相应行。期间,使用信息缓冲区2缓冲下一段信息数据。
(4)逐列输出信息缓冲区1前m行中的信息数据。期间,使用信息缓冲区2缓冲下一段信息数据。
(5)向信息缓冲区2输入第j (j是偶数2,4,…,k/8)段信息数据,逐列填满信息缓冲区2的前m行。填满后,开关Z1切换到位置1。
(6)开关Z2切换到位置2,利用校验缓冲区中的临时校验数据,使用改进的RS编码器对信息缓冲区2中的信息数据进行逐行分段编码,并将计算得到的临时(j=2,4,…,k/8-2)或最终(j=k/8)校验数据保存到校验缓冲区的相应行。期间,使用信息缓冲区1缓冲下一段信息数据。
(7)逐列输出信息缓冲区2前m行中的信息数据。期间,使用信息缓冲区1缓冲下一段信息数据。
(8)重复步骤(2)~(7),直到完成所有k/8段信息数据的RS编码和字节交织。
(9)逐列输出校验缓冲区前m行、前(240-k)列中的校验数据。期间,使用信息缓冲区1缓冲下一交织块的第1段信息数据。
RS编码和字节交织的现有解决方案需要在两个字节交织块(如图3所示)之间进行乒乓操作,故需要432*240*8*2=1,658,880bit的存储空间。而本发明对交织块进行拆分和复用,字节交织和RS编码采用分段处理手段,乒乓操作只是在两个很小的信息缓冲区内进行,它们共享同一个校验缓冲区,只需要432*(8*2+64)*8=276,480bit的存储空间,仅为现有解决方案的16.7%。
现有解决方案的大存储量需求导致字节交织操作难以在主流FPGA的片内存储器完成,而只能诉诸外部存储器,具有成本高、访问速度慢和稳定性差等缺点。而本发明极大地节约存储器消耗,使字节交织操作得以在主流FPGA的片内存储器完成,克服了现有解决方案的一系列缺点,由此带来成本低、处理时间短和稳定可靠等好处。此外,对于分段进行RS编码,改进的RS编码器以增加少许编码复杂度为代价,将编码速度提高至传统RS编码器的1.67~1.89倍。
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。