I have an application in which I need to use error correction. I am uncertain as to which approach makes the most sense. Reed Solomon seems to be the most popular choice but I thought I'd just list my environment to see if something else comes up.
I have a potentially very noisy data stream with 50% data loss and occassional synchronization loss problems. The sender will repeat the data many times. The receiver can read multiple copies of the data, but each one is subject to a different loss and may have pieces of the data missing. In each each data block I can generally determine which bytes have been lost due to transmission, but the error correction should also include a way to verify and correct the entire data block.
When I say pieces are missing I mean a synchronization loss. I will drop out of the data stream and come back in at some arbitrary point later. There is no way to tell where I am in the stream without some kind of marker codes. These I can add myself, but if there is a standard approach here as well, that would be nice.
If Reed-Solomon is the way to go, does somebody know of a good C++ implementation?
TCP
? Would that help? – Default