Interleaver implementations, which reduce the amount of required interleaving memory