integer greater than one; a second memory unit coupled to said first memory unit, for storing m symbols, where m is an integer greater than one; a third memory unit coupled to said first memory unit, for storing an arbitrary source segment among said source segments; a first address controller coupled to said first memory unit, for successively reading said source segments from said first memory u