Our LDPC codec is the only Open-Source GNU/LGPL large block FEC codec for the Packet Erasure Channel (e.g. Internet) case we are aware of. To the best of our knowledge, our codec does not infringe any patent. In particular it does not use any of the claims specified in the following Digital Fountain US Patents: #6073250, #6081909 and #6163870. If ever you disagree, please let us know so that we can see how to address the problem!
The codec is an object oriented C++ library. The library is both integrated in our FLUTE/ALC tool and distributed independantly. This LDPC codec can easily be used by other external applications or libraries. Several such sample applications are provided in the LDPC distribution to facilitate its integration into legacy applications. The codec is multi-platform and runs on Linux/Linux for PDAs/Solaris/ FreeBSD/Windows operating systems, as well as on Itanium IA-64/Linux platforms.
The encoding/decoding performances are already excellent (more information in the associated documents). With the LDPC_v1.8 codec version, on a Pentium IV/3.06GHz/Linux, and an object of 20,000 packets, each of size 1 kilobyte, producing 10,000 parity packets (FEC ratio=1.5, or code rate=2/3), we achieved:
LDPC STAIRCASE:
encoding (considering parity packets only): | 734.0 Mbps |
encoding (considering source+parity packets): | 2,205.0 Mbps |
decoding: | 816.5 Mbps |
LDPC TRIANGLE:
encoding (considering parity packets only): | 443.8 Mbps |
encoding (considering source+parity packets): | 1,331.4 Mbps |
decoding: | 434.9 Mbps |
Just for comparison, with a Reed-Solomon codec, we achieved:
REED-SOLOMON, if we set n = 255 (for better erasure protection):
encoding (considering parity packets only): | 21.5 Mbps |
encoding (considering source+parity packets): | 64.4 Mbps |
decoding: | 52.3 Mbps |
REED-SOLOMON, if we set k = 51 (for higher speed):
encoding (considering parity packets only): | 86.0 Mbps |
encoding (considering source+parity packets): | 258.0 Mbps |
decoding: | 242.0 Mbps |