tornado code implementation
(too old to reply)
2005-04-08 08:16:50 UTC
Hi everybody, I hope this is right place to as this question.

[No. Coding theory and cryptography are very
different subjects. But it's a serious question
and perhaps our contributors can help you anyway.
So I'm letting it through. -- Moderator (ggr)]

I am
trying to implement encoder and decoder for Mckay and Luby's tornado
codes in c/c++, I will use them in a school project based on optimizing
a network traffic for multicast real time data transmission. We assume
that error probability is negligible and loss rate is high. I have
understood basically how tornado codes work however I think there are
not really any programming resource on them. I dont want to write whole
code from scratch by myself based on my simple pathetic understanding,
I thought it will be easier to see some working code and modify it. So
do you know of any programming resources on tornado codes? (or
generally any code about digital fountain codes)

Secondly while building the graph for encoding a source (again for
tornado codes) we have to choose degree distribution based on soliton
distribution and then after assigning degrees to right nodes on graph,
we create (degree) many connections to left nodes randomly. Is that
correct until this point? Is there anything I miss?

Suppose I have created graph and everything, how do you think I should
send encoded data to decoder? I mean in tornado codes there are really
not discrete codewords I mean we can speak of rate of code but it is
based on whole encoding ratio of data, right? I think rate is defined

rate = (encoded data size) / (pure data size)

So how should I segment encoded data to send it to decoder?

Thirdly how do encoder and decoder agree on degree distributions, I
have read that this data is also sent with node packets from encoder
however if that is lost then whole graph will be messed up, right?

thanx in advance.
2005-04-12 16:27:35 UTC

MacKay's web page seems to contain some source for digital fountain
codes. Try to have a look there if you haven't done so yet.