Patent ID: 7085969

Claim:
An apparatus for interleaving comprising: (a) a first blocker that receives and groups a source sequence of symbols into a sequence of M blocks, wherein M is a number of blocks that is determined by the number of symbols of the source sequence of symbols, and wherein each block includes L number of symbols; (b) an intra-permuter that receives and performs intra-block permutations on the sequence of M blocks from the first blocker to produce an intra-block permuted sequence by re-ordering the symbols within each block of the sequence of M blocks; (c) a second blocker that receives the intra-block permuted sequence from the intra-permuter and groups the intra-block permuted sequence into an intra-block permuted sequence of blocks; and (d) an inter-permuter that receives and performs inter-block permutations on the intra-block permuted sequence of blocks from the second blocker by re-ordering the symbols in each block of the intra-block permuted sequence of blocks across a number of blocks to form an interleaved output sequence of symbols, wherein the symbols of a given block K in the intra-block permuted sequence of blocks are re-ordered across E K blocks prior to the given block K and L K blocks after the given block K, wherein E K is an integer of min(D, K−1) and L K is an integer of min (D, M−K), and D is a parameter associated with the inter-block permutation, wherein the first blocker, the intra-permuter, the second blocker and the inter-permuter are operated overlapped in time, in which an intra-block permutation begins immediately once the source sequence of symbols is available to the intra-permuter from the first blocker, then the second blocker begins to group the sequence of intra-permuted symbols into the sequence of intra-permuted blocks, and after one full block of the sequence of blocks is intra-permuted by the intra-permuter, the second blocker begins to group the sequence of intra-permuted symbols into the sequence of intra-permuted blocks, and the inter-permuter begins to interleave the sequence of intra-permuted blocks across a number of B blocks, where B is a number of blocks of intra-permuted symbols in the sequence of intra-permuted blocks for outputting the sequence of interleaved symbols at a start of block B+1 after B blocks first have been inter-permuted.