📄 readme
字号:
-------- Erasure codes based on Vandermonde matrices ----------------- (C) 1996-1998 Luigi Rizzo (luigi@iet.unipi.it) ---------See fec.c for other contributors.fec.c contains an implementation of an encoder/decoder for an erasurecode based on Vandermonde matrices computed over GF(2^m), m=2..16PRINCIPLE OF OPERATIONThe encoded data is computer as y = E xwhere x is a k-vector with source data, y is an n-vector with theredundant info, and E is an n*k matrix derived from a Vandermondematrix. The code is systematic.At the receiver, any subset y' of k elements from y allows thereconstruction of the whole x by solving the system y' = E' xwhere E' is made of rows from E corresponding to the receivedelements.The complexity of matrix inversion is O(k*l^2) where l is the numberof elements not in x available at the receiver. This might seemlarge, but data elements are in fact be packets of large size, sothe inversion cost can be amortized over the size of the packet.For practical applications (k and l as large as 30, packet sizesof 1KB) the cost can be neglected.In addition, each of the l lost data packets has a reconstructioncost O(k), (obviously) similar to the cost of the encoding phase.Being the code systematic, you can express encoding and decoding costsroughly as Encoding speed: (c_e/l) MB/s Decoding speed: (c_d/l) MB/s PERFORMANCEThe values of c_d and c_e (similar) are very sensitive to issuessuch as cache hit rate, memory speed, field size (8 or 16 bits),etc. Also some machines are better than others in working withbytes or 16-bit words. With the June'98 implementation I havemeasured the following values for c_e and c_d (8-bit version; 16-bitversion has a penalty between 3 and 4). Hardware C version Optimized version(*) PentiumII 266 62 33 PentiumPRO 200 56 30 Pentium133 14.5 18 486dx2/66 4.05 4.55(*) The 'optimized' version has some manual optimizations of the assembly code generated by the compiler. It is generally faster for machines with a single instruction pipeline, and generally slower for machines with multiple pipelines.See the manpage for detailed usage information.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -