The claimed embodiments provide methods, apparatuses and systems directed
to run-length limited (RLL) coding of data. In one implementation,
concatenatable RLL codes with run lengths of zeroes not exceeding k are
constructed for any rate N/(N+1) where N.ltoreq.2.sup.k-2+k-1. As code
rates increase, the value of k departs from the minimum possible value
more slowly than that of many other codes. Further, occurrences of k-bit
run lengths occur only at the juncture of two codewords. Due to this, the
codes are mostly k-1. This quality makes the codes ideal for parity bit
insertion applications such as LDPC channels. The method, in one
implementation, places the bit addresses of violating sequences in a
table at the beginning of the codeword, and the user data, occupying the
locations where the table entries are placed, are moved into the
locations of the violating sequences. This is done iteratively and in a
way which provides for cases in which the violating sequence is inside
the address table itself.