Introduction to Fountain Codes: LT Codes with Python
franpapers.com
franpapers.com
I was initially surprised that they were able to get an actual error correcting code running in Python at 100 MB/s to 300 MB/s, but once I saw that it was just XOR all over the place, that made lots more sense.
I think it'd be really cool to see this author write a post explaining some of the more advanced codes such as Raptor codes.
"Raptor codes are heavily covered with patents in various jurisdictions. For the specific instances specified in RFCs, statements by patent owners may or may not provide some leeway, depending among other things on whether the device carrying the implementation also implements a "wide-area wireless" specification."
So I encourage people who otherwise work with Error-Correcting codes to tread lightly when considering implementing Raptor and RaptorQ codes.
Do you know of any other fountain codes more powerful than the LT code described in the article, that are not particularly patent encumbered? This seems like a really interesting area, but from reading around a bit, it seems like part of the issue is that because all of the research is so recent, you end up stepping on someone or other's IP.
For a completely open and free alternative for application-level forward erasure correction (AL-FEC) codes, checkout OpenFEC[2].
1 - https://en.wikipedia.org/wiki/Tornado_code 2 - http://openfec.org
I had the idea to continue this "series" with the Raptor Codes but, as it was replied, it is under a lot of patents and I have to admit that it was discouraging. What a frustration for the readers to understand something but no being able to use it freely.
I am not so sure about the LT Codes either.
Knowing b1, we find b2 such that b2 = b1 \oplus s;
Knowing b2, we find b1 such that b1 = b1 \oplus s.
Do you mean, b1 = b2 \oplus s in the second bullet? I also cannot follow the example right below it: XOR s5 and s6 gives b3, not b4.Can someone help me with this?
You cannot solve b3 before you solve s2. b4 is solved with s6 right after that you realize that s1 = b1, and thus s6 = b1 xor b4
What are the applications today?