A convolutional interleaver or deinterleaver comprises an address signal generator for repeatedly generating [(B-1)N/2]+1 sequences of address signals, where B is a desired interleave depth and N is a value equal to or greater than the number of data bytes in a R-S block of the data stream.