Please disable your adblock and script blockers to view this page

Practical Reed-Solomon for Programmers - Bert Hubert's writings



\
Linux
R-S
TCP
ZFS
GitHub
LDPC
Polar


Bert Hubert's
Reed-Solomon
Phil Karn
KA9Q

Reed-Solomon
Reed-Solomon
R.E. Blahut


European

No matching tags

No matching tags


8-bit

No matching tags

Positivity     48.00%   
   Negativity   52.00%
The New York Times
SOURCE: https://berthub.eu/articles/posts/reed-solomon-for-programmers/
Write a review: Hacker News
Summary

data is transmitted highly redundantly by making good use of Reed-Solomon encoding.To work with this data, I attempted to learn more about Reed-Solomon and I however allow you to understand and use any R-S codes you have to work message.These t parity symbols then allow you to:A symbol can be 8 bits long and equal a byte, but this does not have to be the case.Not only is this is pretty good error resilience, it provably does not get bits in total, equivalent to around 111 bytes.The more parity symbols you add, the less room there is for your message in are payload, and that 255-223 = 32 (t) bytes are parity symbols.This configuration can recover from 16 corrupted bytes, anywhere in the 255 deal with packet loss.If there are between 16 and 32 corruptions in unknown places, R-S will at guidance online, or worse, incorrect advice.Here is what you need to know.For 8-bit symbols, there are two polynomials you can use:For the “primitive element”, you can pick any number under 255, as long as a non-8 bit symbol size, you must use other numbers (and other polynomials, defined block sizes - you may need to include a length field yourself!An example using 8 bytes of parity:The parity is emitted in base 16.All these settings can be changed at will (check out --help). Note that the message has been corrupted:Here we corrupted 4 bytes, which is as much as can be corrected using 8 is guaranteed to detect this, up to 8 corruptions in total:However, Reed-Solomon can correct all 8 corruptions if we tell the decoder where they are:Finally note that you can also corrupt the parity bytes, it still works:rscmd allows you to configure all Reed-Solomon parameters, including the only detect any (very rare) individual corrupted bytes.But if the fourth packet got lost, things will look like this:Each of the original 4 packets now has a 25% hole in it! Many RAID6 variants use R-S more or less as described above, for example.255 bytes might simply be too large for your message. octets to an IP address to provide 2 symbols of R-S protection.As noted in Theory and practice of error control R-S excels at fixing bursts of erroneous data.Over the past few decades, a lot has been learned about error correcting 0 (or many other values).Reed-Solomon is appropriate for hard decision coding where every symbol has work very well if you already understood Reed-Solomon.Here are some documents that I found useful:From reviews and my personal experience it is also clear that Theory and practice of error control

As said here by