User data may be encoded into codevectors as follows. A first block of
data symbols is generated by arranging a predetermined number of user
data symbols and a predetermined number of dummy data symbols in a
predetermined order. The first block of data symbols is encoded using an
ECC encoder to obtain a codeword having a predetermined number of
symbols, the codeword comprising the first block of data symbols and a
second block of parity symbols. Then a codevector is generated containing
less then all the user data symbols and parity symbols from the codeword.
The codevector can be stored or transmitted. The codevector may be
decoded by generating a codeword comprising dummy data symbols, a
codevector, and filling symbols, arranged in a predetermined order. Then
decoding the codeword using an ECC decoder to obtain the user data
symbols.