A memory can be used to interleave and deinterleave the portions, this may be double buffered.
The symbols are then extracted from the deinterleave table in a row-wise manner.