Longitudinal Redundancy Check (LRC)/2-D Parity Check

Last Updated : 7 Sep, 2026

Longitudinal Redundancy Check (LRC) is a parity-based error-detection technique in which data bits are arranged in rows and columns. Parity bits are calculated column-wise and added as an additional row called the LRC. It is sometimes referred to as a 2-D parity check because the data is organized in a two-dimensional (row-and-column) arrangement.

  • LRC helps detect errors by checking the parity of each column, making it effective for identifying multiple-bit errors.
  • It is commonly used with block-based data transmission, where an additional parity row is added to the original data.
frame_3498
Longitudinal Redundancy Check

Note: In LRC, parity is calculated for each column, while the data itself is arranged in a two-dimensional matrix of rows and columns. Therefore, the term 2-D parity refers to this matrix-based arrangement. In some texts, 2-D parity check specifically refers to schemes that calculate parity for both rows and columns, so the terminology may vary.

Example: If a block of 32 bits is to be transmitted, it is divided into matrix of four rows and eight columns which as shown in the following figure:

In this matrix of bits, a parity bit (odd or even) is calculated for each column. It means 32 bits data plus 8 redundant bits are transmitted to receiver. Whenever data reaches at the destination, receiver uses LRC to detect error in data.

Advantages

  • Detects burst errors: LRC is effective in detecting many burst errors that may affect multiple consecutive bits.
  • Detects multiple-bit errors: It can detect many multiple-bit error patterns by checking parity column-wise.
  • Simple to implement: LRC is relatively simple to calculate and implement because it uses basic parity checking.

Example: Suppose 32 bit data plus LRC that was being transmitted is hit by a burst error of length 5 and some bits are corrupted as shown in the following figure:

frame_3499
Burst error & LRC

The LRC received by the destination does not match with newly corrupted LRC. The destination comes to know that the data is erroneous, so it discards the data.

Disadvantage:

  • Cannot detect all errors: Certain error patterns, such as the same bit positions being corrupted in multiple rows, may go undetected.
  • Adds redundancy: Additional parity bits must be transmitted, increasing the amount of data sent.
  • Does not correct errors: LRC can detect errors but generally cannot identify and correct the corrupted bits.

Example: If data 110011 010101 is changed to 010010110100.

frame_3500
Two bits at same bit position damaged in 2 data units

In this example 1st and 6th bit in one data unit is changed . Also the 1st and 6th bit in second unit is changed.

Comment

Explore