In telecommunication, a longitudinal redundancy check (LRC), or horizontal redundancy check, is a form of redundancy check that is applied independently to each of a parallel group of bit streams. The data must be divided into transmission blocks, to which the additional check data is added.

The term usually applies to a single parity bit per bit stream, calculated independently of all the other bit streams (BIP-8).[1][2]

This "extra" LRC word at the end of a block of data is very similar to checksum and cyclic redundancy check (CRC).

Optimal rectangular code

edit

While simple longitudinal parity can only detect errors, it can be combined with additional error-control coding, such as a transverse redundancy check (TRC), to correct errors. The transverse redundancy check is stored on a dedicated "parity track".

Whenever any single-bit error occurs in a transmission block of data, such two-dimensional parity checking, or "two-coordinate parity checking",[3] enables the receiver to use the TRC to detect which byte the error occurred in, and the LRC to detect exactly which track the error occurred in, to discover exactly which bit is in error, and then correct that bit by flipping it.[4][5][6]

Pseudocode

edit

International standard ISO 1155[7] states that a longitudinal redundancy check for a sequence of bytes may be computed in software by the following algorithm:

lrc := 0
for each byte b in the buffer do
    lrc := (lrc + b) and 0xFF
lrc := (((lrc XOR 0xFF) + 1) and 0xFF)

which can be expressed as "the 8-bit two's-complement value of the sum of all bytes modulo 28" (x AND 0xFF is equivalent to x MOD 28).

Other forms

edit

Many protocols use an XOR-based longitudinal redundancy check byte (often called block check character or BCC), including the serial line interface protocol (SLIP, not to be confused with the later and well-known Serial Line Internet Protocol),[8] the IEC 62056-21 standard for electrical-meter reading, smart cards as defined in ISO/IEC 7816, and the ACCESS.bus protocol.

An 8-bit LRC such as this is equivalent to a cyclic redundancy check using the polynomial x8 + 1, but the independence of the bit streams is less clear when looked at in that way.

References

edit
  1. ^ RFC 935: "Reliable link layer protocols".
  2. ^ "Errors, Error Detection, and Error Control: Data Communications and ComputerNetworks: A Business User's Approach".
  3. ^ "Chapter1". Archived from the original on 2013-06-13. Retrieved 2012-08-20.
  4. ^ Gary H. Kemmetmueller. "RAM error correction using two dimensional parity checking".
  5. ^ Oosterbaan. "Longitudinal parity".
  6. ^ "Errors, Error Detection, and Error Control".
  7. ^ ISO 1155:1978 Information processing -- Use of longitudinal parity to detect errors in information messages.
  8. ^ RFC 914. "A Thinwire Protocol for connecting personal computers to the INTERNET". Appendix D: "Serial Line Interface Protocol (SLIP)".

📚 Artikel Terkait di Wikipedia

Error detection and correction

on the first magnetic tape data storage in 1951. The optimal rectangular code used in group coded recording tapes not only detects but also corrects single-bit

Group coded recording

RLL code is not sufficient to ensure reliable data storage. On top of the RLL code, an error-correcting code called the Optimal Rectangular Code (ORC)

Coding theory

areas is a trade-off. So, different codes are optimal for different applications. The needed properties of this code mainly depend on the probability of

Data Matrix

Matrix is a two-dimensional code consisting of black and white "cells" or dots arranged in either a square or rectangular pattern, also known as a matrix

Error correction code

Nordstrom-Robinson code, used in Geometry and Group Theory Online code, a near-optimal rateless erasure correcting code Polar code (coding theory) Raptor code, a near-optimal

Gray code

track code of length 9 which they believe is optimal. Since this number is larger than 28 = 256, more than 8 sensors are required by any code, although

Shape optimization

optimization is part of the field of optimal control theory. The typical problem is to find the shape which is optimal in that it minimizes a certain cost

Galactic algorithm

but asymptotically optimal code that can reach the theoretical capacity of a communication channel. It requires assigning a random code word to every possible