An interleaver generates a valid interleaved data address for each
iteration i of the mapping by the interleaver without employing a
multiplication operation. The interleaver includes an address generator
comprises two counters, bit-reverse and index tables, and an accumulation
register array. The interleaver further comprises two adders, two
registers storing tentative address values address.sub.i and
address.sub.i+1, and select logic including a comparator, two buffers, and
a multiplexer (mux). Two counters are employed to allow the interleaver to
generate at least one valid address for each iteration, and a tentative
address is generated from each output value of the two counters. Each
iteration generates an output interleaved address. A tentative address is
generated by using a portion of the counter value as an address to select
a corresponding entry from each of the bit-reverse and index tables and
the accumulation register array. The selected values from the index table
and accumulation register array are combined in an adder. The value
selected from the bit-reverse table is appended to the combination of the
selected values from the index table and accumulation register array to
form the tentative address. The tentative address generated from the first
counter value is compared with a threshold value, and, based on the
comparison, one of the two tentative addresses is selected as the output
interleaved address. Before beginning the next iteration, the accumulated
value used in generating the valid output interleaved address is updated
to a new accumulated value. If not all output interleaved addresses have
been generated, the counters are incremented by the same increment value,
the increment value dependent upon the comparison with the threshold
value, and the next iteration begins.
Een interleaver produceert een geldig doorschoten gegevensadres voor elke herhaling i van de afbeelding door interleaver zonder een vermenigvuldigingsverrichting aan te wenden. Interleaver omvat een adresgenerator bestaat uit twee tellers, beetje-omgekeerde en indexlijsten, en een serie van het accumulatieregister. Interleaver bestaat uit twee optellers, twee registers voorlopige adreswaarden address.sub.i opslaan en verder address.sub.i+1, en uitgezochte logica die met inbegrip van een comparateur, twee buffers, en een multiplextelegraaf (mux). Twee tellers zijn aangewend om interleaver toe te staan om minstens één geldig adres voor elke herhaling te produceren, en een voorlopig adres wordt geproduceerd van elke outputwaarde van de twee tellers. Elke herhaling produceert een output doorschoten adres. Een voorlopig adres wordt geproduceerd door een gedeelte van de tegenwaarde als adres te gebruiken om een overeenkomstige ingang van elk van beetje-omgekeerde en index de lijsten en de serie van het accumulatieregister te selecteren. De geselecteerde waarden van de van de indexlijst en accumulatie registerserie worden gecombineerd in een opteller. De waarde die uit de beetje-omgekeerde lijst wordt geselecteerd wordt toegevoegd aan de combinatie geselecteerde waarden van de van de indexlijst en accumulatie registerserie om het voorlopige adres te vormen. Het voorlopige adres dat van de eerste tegenwaarde wordt geproduceerd wordt vergeleken met een drempelwaarde, en, gebaseerd op de vergelijking, wordt één van de twee voorlopige adressen geselecteerd als output doorschoten adres. Vóór het beginnen van de met volgende herhaling, wordt de geaccumuleerde waarde die in het produceren van het geldige output doorschoten adres wordt gebruikt bijgewerkt aan een nieuwe geaccumuleerde waarde. Als niet alle output doorschoten adressen zijn geproduceerd, worden de tellers verhoogd door de zelfde toenamewaarde, de toenamewaarde afhankelijk van de vergelijking met de drempelwaarde, en de volgende herhaling begint.