2006《Raptor Codes》学习笔记
Raptor码是LT码的扩展,采用线性时间编码和解码。 对比LT码,Raptor码具有更低的解码器错误概率。
9.20补充:
6.3 如何生成系统的Raptor码
先给出一个非系统Raptor码案例,用源符号(x1,x2,…xk)去生成冗余(z1,z2,…z(n-k))时采用预编码,如果接收端知道这些预编码关系,相当于接收端在接受到的符号外,具有n-k个约束符号,即部分符号的和一定为0。
而系统Raptor码要求:
思路是:给定非系统Raptor码R,其编解码过程相当于符号的逆映射。
- 如果用R的解码映射将原符号(x)序列映射为(z)序列,那么解码时在解码(z)序列得到的就是(x)序列了
- 然后再(z)序列的基础上用R的编码器生成修复符号的(yk …)序列
假设接收机收到了一共包含n个符号的(y‘)序列,相当于上述(y)序列的随机符号擦除。继续假设前m个(y’)符号和原符号相同,即
(
x
i
1
,
…
,
x
i
m
)
=
(
y
i
1
,
…
,
y
i
m
)
\left(x_{i_1}, \ldots, x_{i_m}\right)=\left(y_{i_1}, \ldots, y_{i_m}\right)
(xi1,…,xim)=(yi1,…,yim),而剩余n-m个为修复符号,从整体中先回复(z)序列,然后从(z)序列中恢复(x)序列:
这一方法缺点在于源符号和修复符号的度分布不同了,导致其overhead-failure曲线表现的不太好。
Raptor(三): Shokrollahi, A. and M. Luby, “Raptor Codes”中补充
目录
1. Distribution on F 2 k \mathbb{F}_{2}^{k} F2k
以
Ω
0
,
Ω
1
,
…
,
Ω
k
\Omega_{0}, \Omega_{1}, \ldots, \Omega_{k}
Ω0,Ω1,…,Ωk表示取值
{
0
,
…
,
k
}
\{0, \ldots, k\}
{0,…,k}的概率分布,后续用生成多项式
Ω
(
x
)
=
∑
i
=
0
k
Ω
i
x
i
\Omega(x)=\sum_{i=0}^{k} \Omega_{i} x^{i}
Ω(x)=∑i=0kΩixi表示概率分布,此时分布的期望为
Ω
′
(
1
)
\Omega^{\prime}(1)
Ω′(1)(一般来说
Ω
0
=
0
\Omega_{0}=0
Ω0=0)。
Ω
(
x
)
\Omega(x)
Ω(x) on
F
2
k
\mathbb{F}_{2}^{k}
F2k表示具有权重值 w 的向量 v 在空间
F
2
k
\mathbb{F}_{2}^{k}
F2k 上的概率分布为
Ω
w
/
(
k
w
)
\Omega_{w} /\left(\begin{array}{l}k \\ w\end{array}\right)
Ωw/(kw),该分布可由一个抽样算法产生:首先从分布
Ω
(
x
)
\Omega(x)
Ω(x)中抽选一个权重w,然后再
F
2
k
\mathbb{F}_{2}^{k}
F2k依照均匀随机抽样的分布多项式
Ω
(
x
)
=
1
2
k
(
1
+
x
)
k
\Omega(x)=\frac{1}{2^{k}}(1+x)^{k}
Ω(x)=2k1(1+x)k得出具有权重w的向量。
关于 F 2 k \mathbb{F}_{2}^{k} F2k 的理解参考伽罗华域
2. 喷泉码和LT码
对于正整数 k k k 和 F 2 k \mathbb{F}_{2}^{k} F2k 上的度分布 D \mathcal{D} D , ( k , D ) (k, \mathcal{D}) (k,D)喷泉码就是将其 F 2 k \mathbb{F}_{2}^{k} F2k 中的长度为k的二进制bit流 ( x 1 , … , x k ) \left(x_{1}, \ldots, x_{k}\right) (x1,…,xk)线性映射成 F 2 N \mathbb{F}_{2}^{\mathbb{N}} F2N中长度为N的新序列 { ∑ i v i x i } \{\sum_{i} v_{i} x_{i}\} {∑ivixi},其中序列中每一个码字的 ( v 1 , … , v k ) \left(v_{1}, \ldots, v_{k}\right) (v1,…,vk)经过两步生成:先从度分布中抽选一个整数k,然后根据整数k从 Ω ( x ) = 1 2 k ( 1 + x ) k \Omega(x)=\frac{1}{2^{k}}(1+x)^{k} Ω(x)=2k1(1+x)k均匀抽选出k个值的向量。这样每一组输入符号都有对应关联的喷泉码。
编码器开销即得到symbol预期的运算次数
解码算法开销即得到每个symbol预期的平均运算次数
以下讨论擦除概率为p的无记忆BEC上的喷泉码,通过其解码图分析其编解码开销的信息论下界:
Proposition1:编码器开销为 Ω ′ ( 1 ) \Omega^{\prime}(1) Ω′(1),其下界为 o ( log ( k ) ) o( \log (k)) o(log(k))
要点:解码器的错误概率由未覆盖VNs的存在概率下限决定。(该概率与CNs的平均度存在关系)对指数形式进行泰勒展开后放缩得到CNs的平均度 α \alpha α下限为 c log ( k ) c \log (k) clog(k),其中c为一个常数。解码器错误下限为 1 − α / k 1-\alpha / k 1−α/k。解码器的解码图边数至少为 o ( k log ( k ) ) o( k \log (k)) o(klog(k)),
Proposition2:假定权重向量使用均匀分布生成,则其期望为 k 2 \frac{k}{2} 2k,对应CNs连接的平均边数和编码器平均开销。则ML解码器的开销下界为 O ( log ( k ) / k ) O(\log (k) / k) O(log(k)/k)
要点:解码过程等价于线性方程组的求解,矩阵非满秩的概率 ( 2 k − 1 ) / 2 n ≤ 2 k − n \left(2^{k}-1\right) / 2^{n} \leq 2^{k-n} (2k−1)/2n≤2k−n:矩阵所有行都属于同一超平面的概率为 2 − n 2^{-n} 2−n,一共有 2 k − 1 2^{k}-1 2k−1超平面,非满秩即所有行都不在一个超平面。之后利用Proposition1结论:令 n = k + c log ( k ) n=k+c \log (k) n=k+clog(k)可使得解码器错误概率趋近下限。故ML解码器对于 n n n阶线性方程操作次数为 O ( n ) O(n) O(n),解码器开销为 O ( log ( k ) / k ) O(\log (k) / k) O(log(k)/k)
BP解码器执行以下步骤,直到图中不存在一级输出符号或者直到所有输入符号都已恢复:
- 解码器都会识别一个一级的输出符号。如果不存在,且并非所有输入符号都已恢复,则算法会报告解码失败。
- 否则,度为1的输出符号的值恢复其在输入符号中的唯一邻居的值。一旦恢复该输入符号值,其值将添加到所有相邻输出符号的值中,并且输入符号及其发出的所有边将从图形中删除。
3. Raptor码
在保留LT码解码错误率趋近信息论下界的基础上,Raptor:
- 以加大解码器间接开销为代价实现恒定解码间接开销进行编码和解码
- 降低解码错误概率的下限
提出思想:从Proposition1入手,解码器的解码图边数至少为
o
(
k
log
(
k
)
)
o( k \log (k))
o(klog(k)),是为了每一个VNs都有足够高的概率被纳入覆盖范围。Raptor码考虑只将一定比例的VNs纳入被覆盖范围。
利用上述思路需要实现:1. 如何设计编解码算法趋近理论下界——靠调整LT码编解码方案解决 2. 需要恢复所有VNs而不是一定比例的VNs——靠纠正擦除的预编码实现
如上图所示,
(
k
,
C
,
Ω
(
x
)
)
(k, \mathcal{C}, \Omega(x))
(k,C,Ω(x)) Raptor码即经过
k
→
n
k→n
k→n预编码过程
C
\mathcal{C}
C后,再经过预设度分布
Ω
(
x
)
\Omega(x)
Ω(x)对新n个中间节点生成的无限长的或截断的喷泉码码字。
Raptor码编码开销为 E ( C ) / k + Ω ′ ( 1 ) \mathrm{E}(\mathcal{C}) / k+\Omega^{\prime}(1) E(C)/k+Ω′(1),其中 E ( C ) \mathrm{E}(\mathcal{C}) E(C)即预编码的期望运算次数。
研究Raptor码性能:
- space:源于编码器存储中间节点的需求,设预编码码率为 R = k n R=\frac{k}{n} R=nk,则空间开销定义为 1 / R 1/R 1/R
- Overhead ε \varepsilon ε:解码器间接开销,定义为解码器确保以高概率恢复输入符号所需接受的输出符号数减去输入符号数。即需要接受 ( 1 + ε ) k (1+\varepsilon) k (1+ε)k个符号才能高概率解码成功
- cost:编解码器开销
4. 具有良好渐近性能的Raptor码设计分析(非实用角度)
目的:使得空间开销趋近1,解码器间接开销趋近0
做法:选择合适的CNs预设度分布和预编码
4.1 预设度分布
设最大的度
D
:
=
⌈
4
(
1
+
ε
)
/
ε
⌉
D:=\lceil 4(1+\varepsilon) / \varepsilon\rceil
D:=⌈4(1+ε)/ε⌉,并定义度分布
Ω
D
(
x
)
=
1
μ
+
1
(
μ
x
+
∑
i
=
2
D
x
i
(
i
−
1
)
i
+
x
D
+
1
D
)
\Omega_{D}(x)=\frac{1}{\mu+1}\left(\mu x+\sum_{i=2}^{D} \frac{x^{i}}{(i-1) i}+\frac{x^{D+1}}{D}\right)
ΩD(x)=μ+11(μx+i=2∑D(i−1)ixi+DxD+1)其中
μ
=
(
ε
/
2
)
+
(
ε
/
2
)
2
\mu=(\varepsilon / 2)+(\varepsilon / 2)^{2}
μ=(ε/2)+(ε/2)2。
有如下定理(定理4):
∃ c ( ε ) > 0 \exist c(\varepsilon)> 0 ∃c(ε)>0,使得在 ( n , Ω D ( x ) ) \left(n, \Omega_{D}(x)\right) (n,ΩD(x))LT码中BP解码器能通过 ( 1 + ε / 2 ) n + 1 (1+\varepsilon / 2) n+1 (1+ε/2)n+1个CNs恢复出至少 ( 1 − δ ) n (1-\delta) n (1−δ)n个VNs,其中 δ = ( ε / 4 ) / ( 1 + ε ) \delta=(\varepsilon / 4) /(1+\varepsilon) δ=(ε/4)/(1+ε),解码器无法恢复 δ n \delta n δn个VNs(或更多)的错误概率上界为 e − c n e^{-c n} e−cn
4.2 适配的预编码
预编码方式不是一定的,但参数是一定的,该参数下无论什么预编码都能使得-n变化-空间开销趋近1,解码器间接开销趋近0,只是趋近速度不同
定理5在说:采用在定理四的条件下(
D
=
⌈
4
(
1
+
ε
)
/
ε
⌉
,
R
=
(
1
+
ε
/
2
)
/
(
1
+
ε
)
,
n
=
⌈
k
/
(
1
−
R
)
⌉
D=\lceil 4(1+\varepsilon) / \varepsilon\rceil, R=(1+\varepsilon / 2) /(1+\varepsilon), n=\lceil k /(1-R)\rceil
D=⌈4(1+ε)/ε⌉,R=(1+ε/2)/(1+ε),n=⌈k/(1−R)⌉)的预编码,Raptor码可以实现空间开销1/R,解码器间接开销
ε
\varepsilon
ε,和解码开销
O
(
log
(
1
/
ε
)
)
O(\log (1 / \varepsilon))
O(log(1/ε))
Todo: 定理证明
6. 有限长Raptor分析
6.1 CNs度分布
input symbol released at time T:如果一个VN在T个VN被解码后度数降为1,称该VN在T时刻被释放
input ripple at time T:定义为在时刻T被释放的VNs的集合
度分布的衡量指标:要使得解码过程中input ripplle尽可能大
方法:and-or tree分析法
结论:文中的k大于等于65536,k较短时需要参考别的论文
6.2 LDPC+LT分总式解码错误概率分析(sec7bcd)
ToDo
6.3 短块Raptor设计
CNs度分布的设计+解码器的设计(文中仅引用未细说)