背景技术
DVB-T2是第二代欧洲数字地面电视广播传输标准,DVB-T2标准中要求对比特进行交织。比特交织包含LDPC(Low Density Parity Check Code,低密度奇偶校验码)帧的奇偶交织和FEC(Forward Error Correction,前向纠错)帧的行列交织。交织的主要目的是将LDPC或FEC帧中的每个比特数据进行有规则的打乱,当LDPC或FEC帧在无线传输时即使出现错误,也可以在解码的时候进行纠错,保证信号传输质量。
对于FEC帧的行列交织,通常采用列入行出的方式,即先依次按列将比特数据写入存储器,再依次按行从存储器读出比特数据,读出的相邻比特数据的比特位号不连续,从而将无线传输时可能出现的错误离散化。
对于DVB-T2标准,在对FEC帧采用列入行出方式进行交织时,还规定了矩阵中每一列上的比特数据对应的偏移值。该偏移值要求矩阵中每一列的比特数据的比特位号在列方向上进行偏移,偏移的距离即为偏移值。
DVB-T2标准中,写入FEC帧时,利用每个比特数据的比特位号通过以下公式计算每个比特数据在矩阵中的行号和列号:
cj=j div M
rj=(j+tc)mod M
其中,j为比特位号,0≤j<L,L为FEC帧中比特数据的总数,div为求商运算符号,mod为求余运算符号,cj为列号,rj为行号,tc为cj对应的偏移值。具体为,写入当前比特数据时,根据当前比特数据的比特位号计算列号cj,通过列号cj查询相应的tc,然后再计算行号rj,最后将当前比特数据写入矩阵中列号cj和行号rj上的位置。由于需要进行求商运算和求余运算,并且计算出列号cj后,还要将列号cj乘以矩阵行数以确定当前比特数据在存储器中的位置,所以写入FEC帧时需要使用两个除法器和一个乘法器。
在实际应用中,现有DVB-T2标准中的需要使用除法器和乘法器,造成了逻辑资源的浪费,同时,除法器输出具有相当的延迟,并且乘法器和除法器也有严格的时序同步要求,所以也造成了时序资源的浪费。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种DVB-T2标准中的比特交织方法,能够降低时序延迟,节省资源。
本发明采用的技术方案是提供一种DVB-T2标准中的比特交织方法,比特交织方法包括:按照预先配置的参照表中的指示将存储空间中的前向纠错FEC帧的比特数据逻辑分为M行N列矩阵,其中,所述FEC帧的比特数据按照比特位号的先后次序依序存储在所述存储空间中,并且所述矩阵中每一列第一行的比特数据的比特位号与前一列最后一行的比特数据的比特位号相连;按照所述矩阵行号的先后次序轮询每一行,并在轮询当前行时按照所述矩阵列号的先后次序轮询每一行中的每一列,获取每一比特数据的行号和列号;根据当前比特数据的当前列号查询所述当前列号在所述参照表中对应的偏移值,并判断所述当前比特数据的当前行号是否大于所述偏移值;如果大于或等于所述偏移值,将所述当前比特数据的当前比特位号减去所述偏移值得到第一比特位号,读取所述第一比特位号对应的比特数据;如果小于所述偏移值,将所述当前比特数据的当前比特位号加上所述矩阵的行数M并减去所述偏移值得到第二比特位号,读取所述第二比特位号对应的比特数据。
优选地,所述按照所述矩阵行号的先后次序轮询每一行,并在轮询当前行时按照所述矩阵列号的先后次序轮询每一行中的每一列,获取每一比特数据的行号和列号的步骤具体包括:按照所述矩阵行号的先后次序轮询每一行,并在轮询每一行时按照所述矩阵列号的先后次序轮询每一行中的每一列,在轮询每一行时采用第一计数器对行号进行计数累加,在轮询每一行中的每一列时采用第二计数器对列号进行计数累加,并且每当所述第一计数器的行号进行计数累加时,将所述第二计数器清零;当所述第一计数器和所述第二计数器进行计数累加时,从所述第一计数器获取行号,从所述第二计数器获取列号,进而获取每一比特数据的行号和列号。
优选地,所述当前比特数据的当前比特位号为所述第二计数器的累加值与M的乘积再加上所述第一计数器的累加值。
优选地,获取每一比特数据的行号和列号时设置获取序号,并且每获取一个比特数据的行号和列号后对所述获取序号进行累加,其中,比特数据的行号和列号按照以下公式获取:
ri=i div N
ci=i mod N
其中,i为所述获取序号,ri为行号,ci为列号,div为求商运算符号,mod为求余运算符号。
优选地,所述FEC帧对应的调制模式为16-QAM,所述FEC帧中比特数据的数量为64800,M等于8100,N等于8;如果所述FEC帧中比特数据的数量为16200,则M等于2025,N等于8。
综上所述,由于采用了上述技术方案,本发明的有益效果是:FEC帧在交织时按照比特位号的先后次序依序存储在存储空间,不进行任何偏移,在读出比特数据时,将FEC帧逻辑分为M行N列矩阵,轮询矩阵的行和列,获取每一比特数据的行号和列号,根据行号小于列号对应的偏移值,将当前比特数据的当前比特位号加上矩阵的行数M并减去偏移值得到第二比特位号,否则将当前比特位号减去偏移值得到第一比特位号,实现这一过程只需要使用一个加法器和一个减法器,加法器和减法器相较于现有DVB-T2标准中的乘法器和除法器更容易、方便实现,从而能够节省逻辑资源,并且加法器和减法器几乎没有时序延迟,因此能够很容易地达到时序同步,节省了时序资源,从而实现了降低时序延迟,节省资源的目的。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示,是本发明DVB-T2标准中的比特交织方法实施例的流程示意图。本实施例的比特交织方法包括以下步骤:
S11:按照预先配置的参照表中的指示将存储空间中的FEC帧的比特数据逻辑分为M行N列矩阵,其中,FEC帧的比特数据按照比特位号的先后次序依序存储在存储空间中,并且矩阵中每一列第一行的比特数据的比特位号与前一列最后一行的比特数据的比特位号相连。
具体地,FEC帧的比特数据按照比特位号的先后次序依序存储在存储空间中,是指FEC帧中的比特数据不做任何顺序的调整,以比特数据原始的顺序写入存储空间。参照表中规定了需要划分的行数和列数,该行数即为M,该列数即为N。由于FEC帧可以具有多种调制模式,对于16-QAM调制模式,如果FEC帧中比特数据的数量为64800,M等于8100,N等于8;如果FEC帧中比特数据的数量为16200,则M等于2025,N等于8。对于其它调制模式,比如64-QAM调制模式,且FEC帧中比特数据的数量为64800,则M等于5400,N等于12。如图2所示,是FEC帧在存储空间的数据结构示意图。图中,FEC帧采用16-QAM调制模式调制,且FEC帧中比特数据的数量为64800,M等于8100,N等于8。其中,矩阵中每一列中的数字表示FEC帧中比特数据的比特位号。每一列第一个比特数据的比特位号与前一列最后一个比特数据的比特位号相连。例如,列号1对应列的第一个比特数据的比特位号为8100,列号0对应列的最后一个比特数据的比特位号为8099,8099与8100连号。
S12:按照矩阵行号的先后次序轮询每一行,并在轮询每一行时按照矩阵列号的先后次序轮询每一行中的每一列,获取每一比特数据的行号和列号。
其中,由于将FEC帧划分为矩阵时,行号和列号已确定,矩阵中每一个比特数据的行号和列号就对应存储空间的一个存储地址。开始轮询时,从行号0对应行开始轮询,将该行8个比特数据轮询完后,在继续轮询下一行,以此类推,直到最后一行轮询完成。
S13:根据当前比特数据的当前列号查询当前列号在参照表中对应的偏移值,并判断当前比特数据的当前行号是否大于偏移值。
其中,参照表中规定了列号对应的偏移值,如表1所示。
表1 参照表
表1中不仅显示了各种调制模式所对应的行数和列数,还规定了每个列号对应的偏移值。并且,表1中列号仅示意性地列出到11。对于16-QAM,具有8列,所以最大的列号为7;对于64-QAM,具有12列,所以最大的列号为11;对于256-QAM,最大的列号为15。
S14:如果大于或等于偏移值,将当前比特数据的当前比特位号减去偏移值得到第一比特位号,读取第一比特位号对应的比特数据;如果小于偏移值,将当前比特数据的当前比特位号加上矩阵的行数M并减去偏移值得到第二比特位号,读取第二比特位号对应的比特数据。
其中,大于或等于偏移值时,如果偏移值为0,那么第一比特位号就是当前比特数据的当前比特位号。也就是说,可以直接从该行号和列号在矩阵中对应的位置读取比特数据。小于偏移值时,第二比特位号必然大于当前比特位号,也就是说,所读取的比特数据的比特位号改变了,那么读取的比特数据不再是原来列号和行号上的比特数据。
下面将结合应用实例对本发明的比特交织方法进行详细说明:
继续参见表1和图2,如果按照DVB-T2标准中的读取方式,那么在行号0对应行上,所读取的比特数据的比特位号依次是0、8100、16200、24300、32400、40500、48600、56700。但是由于参照表中规定了列号对应的偏移值,所以需要进一步确定比特位号的顺序。
以行号0列号2为例,当读取到行号0列号2处的比特数据(该比特数据的比特位号在矩阵中是16200)时,从参照表确定列号2对应的偏移值为2,而行号0小于2,所以比特位号16200加上行数8100再减去偏移值2,第二比特位号就为24298,也就是说,在行号0列号2处读取的比特数据不是原来的比特位号16200对应的比特数据,而是比特位号24298对应的比特数据,相当于在读取比特数据时进行了偏移。
再以行号2列号2为例,当读取到行号2列号2处的比特数据(该比特数据的比特位号在矩阵中是16202)时,从参照表确定列号2对应的偏移值为2,而行号2等于2,所以比特位号16202减去偏移值2,第一比特位号就为16200,也就是说,在行号2列号2处读取的比特数据不是原来的比特位号16202对应的比特数据,而是比特位号16200对应的比特数据,相当于在读取比特数据时进行了偏移。
通过该应用实例不难发现,在读取FEC帧之前,列号2对应列的比特数据的比特位号依次为16200、16201、16202、16203、……、24296、24297、24298、24299,在读取FEC帧之后,列号2对应列的比特数据的比特位号变为24298、24299、16200、16201、16202、16203、……、24296、24297。每个比特位号向下偏移了2个位置,满足DVB-T2标准的要求。
本实施例的比特交织方法只需要将当前比特数据的当前行号与偏移值比较,根据比较结果对当前比特数据的当前比特位号进行加法和/或减法运算,加法器和减法器相较于现有DVB-T2标准中的乘法器和除法器更容易、方便实现,从而能够节省逻辑资源,并且加法器和减法器几乎没有时序延迟,因此能够很容易地达到时序同步,节省了时序资源,从而实现了降低时序延迟,节省资源的目的。
在本实施例中,S12具体包括:按照矩阵行号的先后次序轮询每一行,并在轮询当前行时按照矩阵列号的先后次序轮询每一行中的每一列,在轮询每一行时采用第一计数器对行号进行计数累加,在轮询每一行中的每一列时采用第二计数器对列号进行计数累加,并且每当第一计数器的行号进行计数累加时,将第二计数器清零;当第一计数器和第二计数器进行计数累加时,从第一计数器获取行号,从第二计数器获取列号,进而获取每一比特数据的行号和列号。
其中,行号和列号的获取通过计数器来实现。在轮询矩阵第一行第一个比特数据时,第一计数器和第二计数器默认计0,当轮询到第一行第二个比特数据时,第一计数器仍然计0,第二计数器累加1,当轮询到第一行第三个比特数据时,第一计数器仍然计0,第二计数器继续累加1,以此类推,当轮询到第一行第八个比特数据时,第一计数器仍然计0,第二计数器累加到7。
然后继续轮询矩阵的第二行,此时第一计数器累加1,第二计数器清零。在轮询矩阵第二行第一个比特数据时,第一计数器仍然计1,第二计数器默认计0,当轮询到第二行第二个比特数据时,第一计数器仍然计1,第二计数器累加1,当轮询到第二行第三个比特数据时,第一计数器仍然计1,第二计数器继续累加1,当轮询到第二行第八个比特数据时,第一计数器仍然计1,第二计数器累加到7。
第一计数器和第二计数器按照上述方式进行计数,当轮询到矩阵的最后一行最后一个比特数据后,第一计数器清零。
轮询比特数据时,当前比特数据的当前比特位号为第二计数器的累加值与M的乘积再加上第一计数器的累加值。比如第一计数器和第二计数器的累加值均2时,对应的行号和列号均为2,则比特位号为2×8100+2=16202,16202在图2中对应的行号和列号正好为2。在实际应用中,当前比特数据的当前比特位号可以采用第三计数器计算,第三计数器和第二计数器同步,第三计数器和第二计数器在初始时均默认为0,当第二计数器累加1时,第三计数器也累加,但累进的值为8100,即矩阵的行数。当第二计数器清零时,第三计数器也清零。
在其它一些实施例中,在S12中,获取每一比特数据的行号和列号时设置获取序号,并且每获取一个比特数据的行号和列号后对获取序号进行累加,其中,比特数据的行号和列号按照以下公式获取:
ri=i div N
ci=i mod N
其中,i为获取序号,ri为行号,ci为列号,div为求商运算符号,mod为求余运算符号。获取序号初始默认为0,每次获取行号和列号获取序号累加1。获取序号最大为FEC帧的比特数据的总数。
假设N=8,bits=64800,第一次获取行号和列号时,i=0,那么0对8求商为0,即ri=0,0对8求余为0,即ci=0,而行号0列号0刚好对应矩阵中的第一个比特数据。当i=7时,7对8求商为0,7对8求余为7,即ri=0,ci=7,对应矩阵中第一行的第八个比特数据。当i=8时,8对8求商为1,8对8求余为0,即ri=1,ci=0。以此类推,当i累加至64799时,ri=8099,ci=7,对应矩阵中最后一行的第八个比特数据。
通过上述方式,本发明的比特交织方法中,FEC帧在交织时按照比特位号的先后次序依序存储在存储空间,不进行任何偏移,在读出比特数据时,将FEC帧逻辑分为M行N列矩阵,轮询矩阵的行和列,获取每一比特数据的行号和列号,如果行号小于列号对应的偏移值,将当前比特数据的当前比特位号加上矩阵的行数M并减去偏移值得到第二比特位号,否则将当前比特位号减去偏移值得到第一比特位号,实现这一过程只需要使用一个加法器和一个减法器,加法器和减法器相较于现有DVB-T2标准中的乘法器和除法器更容易、方便实现,从而能够节省逻辑资源,并且加法器和减法器几乎没有时序延迟,因此能够很容易地达到时序同步,节省了时序资源,从而实现了降低时序延迟,节省资源的目的。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。