STAR码的编码方法及其解码方法

文档序号:27381451发布日期:2021-11-15 20:11阅读:356来源:国知局
STAR码的编码方法及其解码方法
star码的编码方法及其解码方法
技术领域
1.本发明涉及信息技术领域,特别是涉及一种star码的编码方法及其解码方法。


背景技术:

2.二进制最大距离可分(mds)阵列码被广泛用于各类存储系统中,如廉价磁盘冗余阵列,其具有两个主要优点:(1)在给定的容错水平下,存储冗余最小化;(2)在编码和解码中只涉及异或运算。具体来说,(n,k,m)二进制mds阵列码是大小为m
×
n的阵列,对km个信息比特进行编码以获得(n

k)m个校验比特,其中nm个比特(包括km个信息比特和(n

k)m个校验比特)存储在m
×
n阵列中。为满足mds特性,意味着系统可以以最小的存储冗余容忍n列中的任意r=n

k个故障。为支持具有更新密集型工作负载的存储应用(例如数据库),需要构造二进制mds阵列码,二进制阵列码在编码/解码中引起的异或数方面具有更小的编码/解码复杂度,并且在受单个信息比特变化影响的校验位的平均数量方面具有更小的更新复杂度。
3.目前对二进制mds阵列码进行了很好的研究,例如,evenodd、x码和rdp是常见的二进制mds阵列码,可以适应任何r=2列的擦除。特别是,evenodd码具有设计良好的数学结构,激发了许多的后续研究,例如star码和广义evenodd码,star码使用三个校验列,而广义evenodd码使用了两个以上的校验列扩展了evenodd码的结构。目前,有一种evenodd+码被提出,可以实现渐近最优的更新复杂度,但是只有r=2个校验列。另一种tip码具有r=3个校验列,并且实现了最优的更新复杂度,但是比现有的二进制mds阵列码(例如star码)具有高得多的解码复杂度。而star码具备具有r=3个校验列,具备三容错能力。然而,star码的更新复杂度较高,且编码解码也不够高效。


技术实现要素:

4.基于此,有必要针对star码的更新复杂度较高,且编码解码也不够高效这一不足,提供一种star码的编码方法及其解码方法。
5.一种star码的编码方法,包括步骤:
6.确定第二检验列的检验位与第三检验列的校验位;
7.确定公共因子;
8.将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。
9.上述的star码的编码方法,在确定第二检验列的检验位与第三检验列的校验位后,再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
10.在其中一个实施例中,第二检验列的校验位如下式:
[0011][0012]
第三检验列的校验位如下式:
[0013][0014]
其中,给定一个奇数m≥k,定义(m

1)
×
(k+3)阵列码;对于j=0,1,

,k

1,列j称为信息列,存储信息位b
0,j
,b
1,j


,b
m

2,j
;对于j=k,k+1,k+2,列j称为校验列,用于存储校验位;所有块的下标都需取模m运算;给定(m

1)
×
k位信息数组b
i,j
,i=0,1,

,m

2和j=0,1,

,k

1,为所有的j列定义一个虚拟行b
m

1,j
=0。
[0015]
在其中一个实施例中,公共因子包括第一公共因子b
m

1,k+1
与第二公共因子b
m

1,k+2

[0016]
其中,第一公共因子如下式:
[0017][0018]
其中,第二公共因子如下式:
[0019][0020]
其中,第一公共因子被添加至第二校验列,第二公共因子被添加至第三校验列。
[0021]
在其中一个实施例中,将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位的过程,包括步骤:
[0022]
将公共因子添加至第二检验列的个校验位与第三检验列的个校验位。
[0023]
一种star码的编码装置,包括:
[0024]
校验位确定模块,用于确定第二检验列的检验位与第三检验列的校验位;
[0025]
公共因子确定模块,用于确定公共因子;
[0026]
公共因子添加模块,用于将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。
[0027]
上述的star码的编码装置,在确定第二检验列的检验位与第三检验列的校验位后,再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
[0028]
一种计算机存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现上述任一实施例的star码的编码方法。
[0029]
上述的计算机存储介质,在确定第二检验列的检验位与第三检验列的校验位后,
再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
[0030]
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的star码的编码方法。
[0031]
上述的计算机设备,在确定第二检验列的检验位与第三检验列的校验位后,再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
[0032]
一种star码的解码方法,包括步骤:
[0033]
获取待解码star码的信息列和校验列擦除情况;
[0034]
根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。
[0035]
上述的star码的解码方法,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0036]
在其中一个实施例中,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0037]
在三列校验列均被擦除时,根据如上述任一实施例的star码的编码方法逆向进行解码,以恢复失效校验列。
[0038]
在其中一个实施例中,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0039]
在第二校验列与第三校验列被擦除时,基于公共因子根据evenodd+码的解码方式恢复失效信息列和校验列。
[0040]
在其中一个实施例中,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0041]
在第一校验列被擦除时,根据公共因子确定校正子位;
[0042]
根据校正子位确定起始位;
[0043]
根据各起始位恢复失效信息位,以恢复失效信息列和校验列。
[0044]
在其中一个实施例中,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0045]
在没有校验列被擦除时,根据公共因子确定校正子位;
[0046]
在校正子位中找到起始点,并修复第二列被擦除的信息列;
[0047]
根据evenodd+码的解码方式恢复第一列被擦除的信息列和第三列被擦除的信息列。
[0048]
一种star码的解码装置,包括:
[0049]
擦除确定模块,用于获取待解码star码的信息列和校验列擦除情况;
[0050]
信息列和校验列恢复模块,用于根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。
[0051]
上述的star码的解码装置,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0052]
一种计算机存储介质,其上存储有计算机指令,计算机指令被处理器执行时实现上述任一实施例的star码的解码方法。
[0053]
上述的计算机存储介质,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0054]
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例的star码的解码方法。
[0055]
上述的计算机设备,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
附图说明
[0056]
图1为一实施方式的star码的编码方法流程图;
[0057]
图2为另一实施方式的star码的编码方法流程图;
[0058]
图3为另一实施方式的star码的编码装置模块结构图;
[0059]
图4为一实施方式的star码的解码方法流程图;
[0060]
图5为另一实施方式的star码的解码方法流程图;
[0061]
图6为又一实施方式的star码的解码方法流程图;
[0062]
图7为一实施方式的star码的解码装置模块结构图;
[0063]
图8为一实施方式的计算机内部构造示意图。
具体实施方式
[0064]
为了更好地理解本发明的目的、技术方案以及技术效果,以下结合附图和实施例对本发明进行进一步的讲解说明。同时声明,以下所描述的实施例仅用于解释本发明,并不用于限定本发明。
[0065]
本发明实施例提供了一种star码的编码方法。
[0066]
图1为一实施方式的star码的编码方法流程图,如图1所示,一实施方式的star码的编码方法包括步骤s100至步骤s102:
[0067]
s100,确定第二检验列的检验位与第三检验列的校验位;
[0068]
s101,确定公共因子;
[0069]
s102,将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。
[0070]
需要注意的是,在本具体实施方式的各实施例中,为便于区分基于各实施例的star码的编码/解码方法下实现的star码与传统的star码,将各实施例的star码的编码/解码方法下实现的star码统称为“star+码”,以方便实施例的陈述。
[0071]
对于给定一个奇数m≥k,定义(m

1)
×
(k+3)阵列码;对于j=0,1,

,k

1,列j称为信息列,存储信息位b
0,j
,b
1,j


,b
m

2,j
;对于j=k,k+1,k+2,列j称为校验列,用于存储校验位;所有块的下标都需取模m运算;给定(m

1)
×
k位信息数组b
i,j
,i=0,1,

,m

2和i=0,1,

,m

2,为所有的j列定义一个虚拟行b
m

1,j
=0。
[0072]
基于上述给定,则k列中的校验位为:
[0073][0074]
k+1列和k+2列中的校验位分别为:
[0075][0076]

[0077][0078]
其中,k列表示第一校验列,k+1列表示第二校验列,k+2列表示第三校验列。
[0079]
在确定各校验列以及校验位后,将公共因子添加至选定校验位中,实现star+码,不同于传统的star码(将公共因子添加至所有的校验位中)。选定校验位仅为校验位的部分。
[0080]
在其中一个实施例中,公共因子包括第一公共因子b
m

1,k+1
与第二公共因子b
m

1,k+2

[0081]
其中,第一公共因子如下式:
[0082][0083]
其中,第二公共因子如下式:
[0084][0085]
其中,第一公共因子被添加至第二校验列,第二公共因子被添加至第三校验列。
[0086]
在其中一个实施例中,图2为另一实施方式的star码的编码方法流程图,如图2所示,步骤s101中将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位的过程,包括步骤s200:
[0087]
s200,将公共因子添加至第二检验列的个校验位与第三检验列的个校验位。
[0088]
基于此,在star+(m,k)中,我们仅在k+1列和k+2列中分别将两个公共因子b
m

1,k+1
和b
m

1,k+2
添加到个校验位,而star码将两个公共因子b
m

1,k+1
和b
m

1,k+2
分别添加到第二
和第三校验列中的所有校验位。这种区分使得star+(m,k)的更新复杂度渐近最优。下表1描述了star+(9,3)的一个例子,其中两个公共因子b
8,4
和b
8,5
分别被加到第4列的前两个校验位和第5列的最后两个校验位。
[0089]
表1 star+(9,3)表(其中公共因子b
8,4
=b
7,1
+b
6,2
,b
8,6
=b
0,1
+b
1,2
)
[0090][0091]
为了更好地解释本发明实施例的效果,以下对star+(m,k)的更新复杂性进行具体评估。
[0092]
如果信息位发生变化,需要更新k列中的一个校验位以及k+1和k+2列中的个校验位。因此,更新复杂度为如果m>>k,则更新复杂度接近最优值因此,当m远大于k时,更新复杂度是渐近最优的,star码的更新复杂度为如果m>k,则严格大于star+(m,k),下表2给出了当k=7,m在7到53之间时,star码和star+(m,k)的更新复杂度。当m>7时,star+(m,k)比star码具有更小的更新复杂度,并且这种优势随着m的增加而增加。由于m=49不是素数,没有在表2中将star码的更新复杂度表示出来。
[0093]
请注意,star+(m,k)中只将公共因子添加到最后两个校验列中的一些校验位,而star码中将公共因子添加到最后两个校验列中的所有校验位。与star码相比,star+(m,k)的编码/解码复杂度较低。
[0094]
表2 star+(m,7)和star码的更新复杂度表
[0095][0096]
上述任一实施例的star码的编码方法,在确定第二检验列的检验位与第三检验列的校验位后,再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检
验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
[0097]
本发明实施例还提供了一种star码的编码装置。
[0098]
图3为另一实施方式的star码的编码装置模块结构图,如图3所示,一实施方式的star码的编码装置包括模块100、模块101和模块102:
[0099]
校验位确定模块100,用于确定第二检验列的检验位与第三检验列的校验位;
[0100]
公共因子确定模块101,用于确定公共因子;
[0101]
公共因子添加模块102,用于将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。
[0102]
上述的star码的编码装置,在确定第二检验列的检验位与第三检验列的校验位后,再确定公共因子,最后将公共因子添加至第二检验列的选定检验位与第三检验列的选定检验位。基于此,不同于传统的star码,仅在计算后两个校验列时,会在部分校验位上添加公共因子,有效地提高编码效率和降低更新复杂度。
[0103]
本发明实施例还提供了一种star码的解码方法。
[0104]
图4为一实施方式的star码的解码方法流程图,如图4所示,包括步骤s300和步骤s301:
[0105]
s300,获取待解码star码的信息列和校验列擦除情况;
[0106]
s301,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。
[0107]
步骤s300中各待解码star码的信息列和校验列擦除情况包括校验列被全部擦除和部分擦除。其中,待解码star码(star+码)包括三个校验列。star+(m,k)的解码算法来恢复任意三列的擦除,从而也证明了其mds性质。以下的定理1展示了star+(m,k)的解码算法的一个关键性质。
[0108]
定理1:对于定理1:对于
[0109]
考虑根据式(1)和式(2),前式可以表示为:
[0110][0111]
考虑b
m

1,k+1
和b
m

1,j
=0,j=0,1,

,k

1的定义,上述等式变为下式:
[0112][0113]
使用相同的参数和方法,也可获得证明定理1完成。
[0114]
其中,star+(m,k)的两列擦除解码可视为是三列擦除解码的一种特殊情况,因此可只研究三列擦除的解码算法。假设擦除f、g、h三列,其中0≤f<g<h≤k+2,以此提出一种解码算法,从剩余的k列中重建所有被擦除的位。基于不同的擦除模式,重构可分为四种情况:(i)三列校验列擦除,即f=k,g=k+1,h=k+2;(ii)两列校验列擦除,即0≤f≤k

1和k≤g<h≤k+2;(iii)一列校验列擦除,即0≤f<g≤k

1和k≤h≤k+2;(iv)没有校验列擦除,即0≤f<g<h≤k

1。
[0115]
在其中一个实施例中,步骤s301中根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0116]
在三列校验列均被擦除时,根据如上述任一实施例的star码的编码方法逆向进行解码,以恢复失效校验列。
[0117]
应用上述任一实施例的star码的编码方法,进行解码的方式与任一实施例的star码的编码方法中的等式(1)、(2)和(3)中定义相同。
[0118]
对于两列校验列擦除,包括三种模式:(i)g=k+1,h=k+2,(ii)g=k,h=k+2,(iii)g=k,h=k+1。对于模式(i)和模式(ii),可以使用与传统的evenodd+码中解码方法恢复失效的信息列f。g=k,h=k+1的解码过程类似于g=k,h=k+2的解码方法。其中,传统的evenodd+码中解码方法已被公开,在此不进行赘述。
[0119]
基于此,在其中一个实施例中,步骤s301中根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤:
[0120]
在第二校验列与第三校验列被擦除时,基于公共因子根据evenodd+码的解码方式恢复失效信息列和校验列。
[0121]
在第一校验列被擦除时,图5为另一实施方式的star码的解码方法流程图,如图5所示,步骤s301中根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤s400至步骤s402:
[0122]
s400,在第一校验列被擦除时,根据公共因子确定校正子位;
[0123]
s401,根据校正子位确定起始位;
[0124]
s402,根据各起始位恢复失效信息位,以恢复失效信息列和校验列。
[0125]
第一校验列被擦除时的解码算法(即h=k,0≤f<g≤k

1)。以下的引理2展示了如何获得b
m

1,k+1
+b
m

1,k+2

[0126]
引理2.
[0127]
计算b
m

1,k+1
+b
m

1,k+2
通过
[0128][0129]
等式(4)由等式(2)和(3)推导;等式(5)因是一个偶数;等式(6)因为{

j,1

j,

,m
‑1‑
j}={0,1,

,m

1}modm。基于此,证明定理2完成。
[0130]
对于i=0,1,

,m

2,通过从b
i,k+1
和b
i,k+2
中减去k

2个幸存信息列中的所有信息位,获得以下2m

2个校正子位
[0131][0132][0133]
根据引理2,可通过把等式(7)和等式(8)的所有位相加计算(b
‑1‑
f,f
+b
‑1‑
g,g
)+(b

1+f,f
+b

1+g,g
)。
[0134]
考虑f>0的情况,当f>0时,在等式(7)中当i=f

1(因为0≤f

1≤k

3)有
[0135]
p
f

1,1
=b

g+f

1,g
+(b
‑1‑
f,f
+b
‑1‑
g,g
)
ꢀꢀꢀ
(9)
[0136]
在等式(7)中当i=g

1(因为0≤g

1≤k

2)有
[0137]
p
g

1,1
=b

f+g

1,f
+(b
‑1‑
f,f
+b
‑1‑
g,g
)
ꢀꢀꢀ
(10)
[0138]
同理,在等式(8)中当i=m

f

1(因为m

k+1≤m

f

1≤m

2)有
[0139]
p
m

f

1,1
=b
g

f

1,g
+(b

1+f,f
+b

1+g,g
)
ꢀꢀꢀ
(11)
[0140]
在等式(8)中当i=m

g

1(因为m

k≤m

g

1≤m

3)有
[0141]
p
m

g

1,1
=b
f

g

1,f
+(b

1+f,f
+b

1+g,g
)
ꢀꢀꢀ
(12)
[0142]
其中,等式(9)、(10)、(11)和等式(12)中的位为起始位。从等式(9)中的起始位开始,可以计算如下一个信息位。首先,计算位p
f

1,1
和p

2g+f

1,2
的和,以获得:
[0143]
b

2g+2f

1,f
+(b
‑1‑
f,f
+b
‑1‑
g,g
)+ε(b

1+f,f
+b

1+g,g
),
[0144]
其中ε∈{0,1}。然后,在等式(7)中找到b

2g+2f

1,f
的位,用等式(7)中i=3f

2g

1位和上述等式相加能获得:
[0145]
η(b
‑1‑
f,f
+b
‑1‑
g,g
)+ε(b

1+f,f
+b

1+g,g
)+b

3f

2g

1,g

[0146]
其中η∈{0,1}。通过重复上述过程次,可以获得:
[0147][0148][0149][0150]
其中是一个非负整数。回想一下,在等式(7)和等式(8)中分别不存在项b
‑1‑
f,f
+b
‑1‑
g,g
和b

1+f,f
+b

1+g,g
。如果:
[0151]
or
[0152]
or
[0153]
or
[0154][0155]
则上述过程结束。同理,可以得到:
[0156][0157]
或者:
[0158][0159]
其中是一个非负整数。通过对等式(7)和等式(8)中选择的位相加,直到
[0160]
or
[0161]
or
[0162]
or
[0163][0164]
对于等式(11)中的起始位p

f

1,2
,可以获得:
[0165][0166]
或者:
[0167][0168]
其中是一个非负整数,
[0169]
or
[0170]
or
[0171]
or
[0172][0173]
对于等式(12)中的起始位p

g

1,2
,可以获得:
[0174]
or
[0175]
or
[0176]
or
[0177][0178]
因为等式(7)中对于i=m

1没有b

f+i,f
+b

g+i,g
,等式(8)中对于i=m

1没有b
f+i,f
+b
g+i,g
。将b
‑1‑
f,f
+b
‑1‑
g,g
和等式(7)中的m

1位放入第一组,把b

1+f,f
+b

1+g,g
和等式(8)中的m

1位放入第二组。给定整数t,满足0≤t≤m

1,总是可在第一组找到包含b
(

f+i)mod m,f
=b
t,f
或者b
(

g+i)mod m,g
=b
t,g
的一个位,并且可在第二组找到包含b
(f+i)mod m,f
=b
t,f
或者b
(g+i)mod m,g
=b
t,g
的一个位。对于每个起始位,递归地选择等式(7)或等式(8)中一个能够抵消的位,直到剩余位为b

f

1,f
、b

g

1,g
、b
f

1,f
、b
g

1,g
中的一个。因此,等式(7)和等式(8)中的所有2(m

1)校正子位使用等式(9)、(10)、(11)和等式(12)中的起始位计算一个位,以及等式(7)和等式(8)中的每一位在计算等式(9)、(10)、(11)和等式(12)中起始位的位时只使用一次。可在等式(7)和等式(8)中将2(m

1)位分成四组。每组中的位用于计算从起始位开始的位。s1、s2、s3和s4分别表示与起始位p
f

1,1
、p
g

1,1
、p

f

1,2
和p

g

1,2
相关的组。
[0179]
引理3.设组s1、s2、s3和s4的位数分别为|s1|、|s2|、|s3|和|s4|,有|s1|=|s3|,还有|s2|=|s4|。
[0180]
证明:首先证明|s1|=|s3|。等式(13)中的和以或结束,等式(14)中的和以或结束。如果则有否则,如果则有另一方面,如果则有如果则有等式(13)和等式(14)中校正子位的个数分别为:
[0181][0182]

[0183][0184]
因此,有:
[0185][0186]
对于起始位p

f

1,2
,有等式(17)或等式(18)中的位。如果等式(17)中的下标是或则式(17)中的和结束。同理,如果等式(18)中的下标为或
则式(18)中的和结束。如果有此外,如果有另一方面,如果有如果有因此有
[0187][0188]
对于两个起始位p
g

1,1
和p

g

1,2
,用相同的参数,同样可以证明|s2|=|s4|。证明完成。
[0189]
根据引理3,有|s1|=|s3|和|s2|=|s4|。由于有2(m

1)个校正子位,且每个校正子位都在一个组中,得到|s1|+|s3|=|s2|=|s4|=m

1。
[0190]
从p
f

1,1
的起始位,可以获得:
[0191]
η(b
‑1‑
f,f
+b
‑1‑
g,g
)+ε(b

1+f,f
+b

1+g,g
)+b
‑1‑
f,f

[0192]
if|s1|=2f
·
(2g

2f)
‑1mod m,
ꢀꢀꢀ
(21)
[0193]
η(b
‑1‑
f,f
+b
‑1‑
g,g
)+ε(b

1+f,f
+b

1+g,g
)+b

1+f,f

[0194]
if|s1|=2(m

f)
·
(2g

2f)
‑1mod m,
ꢀꢀꢀ
(22)
[0195]
η(b
‑1‑
f,f
+b
‑1‑
g,g
)+ε(b

1+f,f
+b

1+g,g
)+b

1+g,g

[0196]
if|s1|=2(f

2g)
·
(2g

2f)
‑1mod m+1,
ꢀꢀꢀ
(23)
[0197]
并进一步得到:
[0198][0199]
同理,对于p

f

1,1
的起始位,可以得到:
[0200][0201]
根据引理3,有|s1|=|s3|,连同式(24)和式(25),可从p
f

1,1
和p

f

1,2
的两个起始位计算出两个不同的信息位。同理,也能证明从p
g

1,1
和p

g

1,2
两个起始位计算出两个不同的信息位。因此,从四个起始位得到四个信息位b

1+g,g
,b

1+f,f
,b
‑1‑
f,f
和b
‑1‑
g,g
,并进一步计算b
‑1‑
f,f
+b
‑1‑
g,g
和b

1+f,f
+b

1+g,g
。f列和g列中的其他信息位可以按照传统star码的方式计算,
在此不进行赘述。
[0202]
当f=0,有两个起始位b
g

1,0
+b
‑1‑
g,g
和b

g

1,0
+b

1+g,g
,且只需通过上述f>0的相同方法计算两个位b
‑1‑
g,g
和b

1+g,g

[0203]
考虑表1中的例子。假如列f=1,g=2和l=3失效。通过从第4列和第5列的校验位中减去第0列的信息位,就可获得以下位:
[0204]
b
7,2
+b
8,4
,b
0,1
+b
8,4
,b
1,1
+b
0,2
,b
2,1
+b
1,2

[0205]
b
3,1
+b
2,2
,b
4,1
+b
3,2
,b
5,1
+b
4,2
,b
6,1
+b
5,2

[0206]
b
1,1
+b
2,2
,b
2,1
+b
3,2
,b
3,1
+b
4,2
,b
4,1
+b
5,2

[0207]
b
5,1
+b
6,2
,b
6,1
+b
7,2
,b
7,1
+b
8.5
,b
0,2
+b
8,5

[0208]
通过对以上所有位求和,可以得到b
8,4
+b
8,5
=b
7,1
+b
6,2
+b
0,1
+b
1,2
。当f>0时,有四个起始位b
7,2
+b
8,4
、b
0,1
+b
8,4
、b
7,1
+b
8,5
和b
0,2
+b
8,5
。从起始位b
7,2
+b
8,4
开始,可以计算b
0,1
通过:
[0209]
(b
7,2
+b
8,4
)+(b
6,1
+b
7,2
)+(b
6,1
+b
5,2
)+(b
4,1
+b
5,2
)+(b
4,1
+b
3,2
)+(b
2,1
+b
3,2
)+(b
2,1
+b
1,2
)+(b
8,4
+b
8,5
)=b
0,1
[0210]
并用b
0,1
+(b
0,1
+b
8,4
)计算b
8,4
。一旦b
8,4
已知,就能计算b
8,5
。所有其他信息位可以迭代解码,以此完成解码。
[0211]
在没有校验列被擦除时,图6为又一实施方式的star码的解码方法流程图,如图6所示,步骤s301中根据信息列和校验列擦除情况与公共因子对待解码star码进行解码的过程,包括步骤s500至步骤s502:
[0212]
s500,在没有校验列被擦除时,根据公共因子确定校正子位;
[0213]
s501,在校正子位中找到起始点,并修复第二擦除信息列;
[0214]
s502,根据evenodd+码的解码方式恢复第一擦除信息列和第三擦除信息列。
[0215]
考虑三个信息列f、g和h被擦除,其中0≤f<g<h≤k

1,希望恢复f、g和h列中的信息位,又一实施方式的star码的解码方法如下。
[0216]
第一步:通过定理1计算b
m

1,k+1
和b
m

1,k+2

[0217]
第二步:通过从b
m

1,k+1
、b
m

1,k+2
和3(p

1)个校验位中减去k

3个幸存信息列中的信息位计算如下3p

1个校正子:
[0218]
b
i,f
+b
i,g
+b
i,h for 0≤i≤p

2,
[0219]
b
i

f,f
+b
i

g,g
+b
i

h,h for 0≤i≤p

1,
[0220]
b
i+f,f
+b
i+g,g
+b
i+h,h for 0≤i≤p

1.
[0221]
第三步:在g列找到一个起始点,并修复g列。
[0222]
第四步:通过evenodd+中的解码算法修复f列和h列。
[0223]
执行上述四个步骤后,可以恢复被擦除的三个信息列。g列寻找起点的方法与传统rtp码的恢复方法类似,在此不进行赘述。
[0224]
在引理2的证明中,通过对k+1和k+2列中的所有2(m

1)个校验位求和来计算b
m

1,k+1
+b
m

1,k+2
是解码算法中的一个关键点。通过引理2,如果在k+1列(k+2列)包含偶数个b
m

1,k+1
(b
m

1,k+2
),总是可得到b
m

1,k+1
+b
m

1,k+2
。这也是将b
m

1,k+1
添加到k+1列的前校验位,并将b
m

1,k+2
添加到k+2列的后校验位的原因之一。然而,k+1列中的校验位的数量(或k+
2列),分别包含b
m

1,k+1
(b
m

1,k+2
)应不低于个,因为需要确保任何k

1列信息列加上第k+1列都能恢复所有信息位。在任意三个信息列擦除的解码算法中,定理1中给出的b
m

1,k+1
和b
m

1,k+2
2的计算至关重要,因为解码算法可以简化为传统rtp的算法。
[0225]
还要注意,在传统的star代码中,信息列的数量应该是质数,行数等于信息列的数量减1。但是,在star+(m,k)中放宽了这个约束。当k=m时,star+(m,k)简化为star码。
[0226]
上述任一实施例的star码的解码方法,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0227]
本发明实施例还提供了一种star码的解码装置。
[0228]
图7为一实施方式的star码的解码装置模块结构图,如图7所示,一实施方式的star码的解码装置包括模块200和模块201:
[0229]
擦除确定模块200,用于获取待解码star码的信息列和校验列擦除情况;
[0230]
信息列和校验列恢复模块201,用于根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。
[0231]
上述的star码的解码装置,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0232]
本发明实施例还提供了一种计算机存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一实施例的star码的编码方法或star码的解码方法。
[0233]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0234]
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、终端、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、ram、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0235]
与上述的计算机存储介质对应的是,在一个实施例中还提供一种计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其
中,处理器执行程序时实现如上述各实施例中的任意一种star码的编码方法或star码的解码方法。
[0236]
该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种star码的编码方法或star码的解码方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0237]
上述计算机设备,在获取待解码star码的信息列和校验列擦除情况后,根据信息列和校验列擦除情况与公共因子对待解码star码进行解码,恢复失效信息列和校验列。基于此,根据star码的公共因子在选定校验位的添加,提高star码的解码效率。
[0238]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0239]
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1