Universal Latin Square Codes

General - What is error correction ?

Error Detecting Codes (aka EDC, CRC, digest) are techniques to ascertain if a block of symbols (like a text or a file) is received error-free after transmission over a noisy channel.

Error Correcting Codes (aka ECC, Forward Error Correction) address the much more challenging task of removing the errors and obtaining a replica of the original block.

These techniques, developed since 1950, are now applied in a variety of digital transmission systems and applications.

It has been soon recognized that the problem of storing data on a storage device (such as a hard disk, a CD-ROM) and correcting device errors is essentially the same. The prevailing ECC terminology is, however, still borrowed from transmission systems (source, channel, noise, transmission,...)

Note that in many cases (like TCP/IP) the protocol that governs transmission is a sophisticated two-way protocol, so that one may use Error Detection only and request a retransmission of blocks in error. Alternatively, one may use both Errror Detection and Error Correction and request retransmission of the rare blocks that cannot be corrected.

In other cases (like transmission from a space probe or reading from a CD-ROM) error correction has no real alternatives.

A variety of techniques has been proposed for error correction. The basic idea is to transmit the payload (the information symbols) followed by some redundant check symbols (aka checksums) that are used by a decoder to spot and correct (most) errors.

The channel error probability p is thus reduced to a lower residual probability pb, which can be very close to zero.

A code that transmits a total of n symbols (a codeword) of which k are payload has a rate of k/n. Slower transmission (rate <1) is the main price paid for nearly error-free transmission and a code defines a trade-off between the two.

Some applications (like transmission of program files, block-encrypted data) have no room for errors, while others (like transmission of uncompressed bitmap images) are quite tolerant.

The transmitted symbols can be taken from any alphabet of D symbols: for example they can be bits (D=2) or bytes (D=256) or text symbols. In actual practice, D is typically chosen to be a power of 2.

To wrap it up, practical applications of Error Correcting Codes range from mobile phones to CD-ROM and DVD, from telemetry to radio links, from Internet protocols to satellite broadcasting.

In the last 50 years, while the theory and practice of codes made great progresses, the scenario of applications has also changed dramatically, from a world of scarse resources to a world of plenty, in terms of data volumes, transmission line throughput, storage capacity, CPU power and so forth.

Desirable qualities of an ECC

Why is an ECC better than the next ?

The answer lies in several user requirements, which in turn depend on the application. But the main aims are high rate and low residual probability pb.

While accepting this trade-off between pb and rate, if a code A has both higher rate and lower pb than code B (for the same p), we conclude that A outperforms B.

Then there are many minor criteria (which are more application dependent), e.g.

State of the art

Unfortunately, there is no single ECC technique for all situations.

Many families of ECC have been proposed over the years, under the names of Golay, BCH, Reed Solomon, Goppa, convolutional, quadratic residue, turbo, LDPC codes ...

These constitute a constellation of clever solutions, each based on a different mathematical theory, suitable for a range of probabilities, implemented by totally unrelated programs or hardware.

This leaves three types of problems.

Universal Latin Square codes

Universal Latin Square codes (ULS) have been recently developed as an improvement on points 1. 2. 3.

They tend to be long codes (with n of hundreds or thousand of symbols) with a cost of decoding that grows moderately with n.

The main point is that they are "universal", meaning that the same algorithm provides a good solution for any choice of

In fact they provide poor solutions only at the boundary of this space: when n is very low (say, below 100) and when p is very high (say, above 0.1).

The design phase becomes much easier: the designer chooses D, p and rate and finds acceptable n and pb through few exploratory simulations. This may take as little as half an hour.

Several sophistications and on-the-fly reconfigurations are possible, while the algorithm remains the same: the problem reduces to synchronizing encoder and decoder to using a new set of parameters --- and this must be done via the same noisy channel used for data transmission.

Advantages of Universal Latin Square codes

Tabular results of ULC performance (pdf)

Write to mauro.guazzo [at] gmail.com if you want to

Home page - Contact