Patent attributes
A data allocator allocates (N×kV×kH)-byte source data distributively in N (kV bytes×kH bytes) tw0-dimensional arrays and sends the data to a V coder and an H coder. The V coder codes each column of the tow-dimensional arrays according to an (nV, kV) code V, and the H coder codes each row of the two-dimensional arrays according to an (nH, kH) code H. The V and H coders send redundant data to a data allocator. The data allocator allocates the redundant data in a memory to obtain N (nV bytes×nH bytes) product-code codewords and outpouts each row of the product-code codewords in an alternating manner for the N product-code codewords.