IP Library Granted Patent US 7,370,246
Granted Patent B2
US 7,370,246 · App. 11/007,785 · Granted May 6, 2008

Method and device of de-interleaving successive sequences of interleaved data samples

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,370,246
App. No.
11/007,785
Granted
May 6, 2008
Kind
B2
Abstract

Successive sequences of interleaved data samples extracted from a virtual memory having L0 columns and C0 rows are de-interleaved. The de-interleaving includes receiving each sequence of the interleaved data samples, and writing row by row the received sequences of interleaved data samples in a de-interleaving memory array having L rows and C columns, with L being greater or equal to L0 and C being greater or equal to C0. The data samples stored in the de-interleaving memory array are de-interleaved sub-array by sub-array. Each sub-array is a square cluster array having a number SQ of rows and columns. A cluster array is a row of the square cluster array comprising SQ data samples, with the number L of rows and the number C of columns of the de-interleaving memory array being multiples of the number SQ of rows and columns.

Claims (67)

1. A method for de-interleaving successive sequences of interleaved data samples extracted from a virtual memory array having L0 columns and C0 rows, the method comprising:

receiving each sequence of the interleaved data samples;

writing row by row the received sequences of interleaved data samples in a de-interleaving memory array having L rows and C columns, with L being greater or equal to L0 and C being greater or equal to C0; and

de-interleaving the data samples stored in the de-interleaving memory array sub-array by sub-array, with each sub-array being a square cluster array having a number SQ of rows and columns, and with a cluster row being a row of the square cluster array comprising SQ data samples, the number L of rows and the number C of columns of the de-interleaving memory array being multiples of the number SQ of rows and columns, the sub-array de-interleaving comprising

for a first group of clusters of a current cluster row, reading each cluster of the first group, outputting a first data sample of the cluster row, and reordering other data samples of the cluster row in a column of a reordering buffer, and writing back the data samples de-interleaved in the reordering buffer into the de-interleaving memory at the last SQ-1 accessed clusters, and

for a second group of previously reordered clusters, reading each cluster of the second group, and outputting all data samples of the cluster row.

2. A method according to claim 1 , wherein if L0 and C0 are not multiples of SQ, then the writing comprises completing the de-interleaving memory array with padding data to have L rows and C columns, with L and C being multiples of SQ.

3. A method according to claim 1 , wherein the square cluster array comprises consecutive clusters along rows of the de-interleaving memory array.

4. A method according to claim 1 , wherein the de-interleaving comprises de-interleaving the square cluster array C/SQ times, including L/SQ consecutive processing with reordering of clusters, and L−L/SQ consecutive processing without reordering of clusters.

5. A method according to claim 1 , wherein the reordering buffer has SQ-1 rows and SQ columns.

6. A method according to claim 1 , wherein a look-up table having three rows and a number of columns equal to C×L/SQ is used, the look-up table containing logical addresses of some of the samples of the current sequence and the corresponding physical addresses in the de-interleaving memory array.

7. A method according to claim 6 , wherein:

storing in a first row of the look-up table the logical addresses of the data samples of interleaved data samples of the current sequence stored in the columns of the de-interleaving memory array indexed p(i)+k×SQ, where p(i) specifies intercolumns permutation, with i varying from 0 to L/SQ-1, and k varying from 0 to C/SQ-1;

storing in a second row of the look-up table the physical addresses of the respective logical addresses of the first row; and

storing in a third row of the look-up table the physical addresses of data samples of a next sequence of interleaved data samples to be written in the de-interleaving memory array having the respective logical addresses of the first row.

8. A method according to claim 7 , wherein the square cluster array de-interleaving further comprises, after having processed a previous cluster, selecting in the square cluster array a next cluster having a first data sample having a logical address immediately following the logical address of a last data sample of the previous cluster.

9. A de-interleaving device of successive sequences of interleaved data samples for a receiving system, the interleaved data samples being extracted from a virtual memory having L0 columns and C0 rows, the de-interleaving device comprising:

a de-interleaving memory array having L rows and C columns, with L being greater or equal to L0 and C being greater or equal to C0;

a receiving circuit for receiving each sequence of the interleaved data samples;

a writing circuit for writing row by row the received sequences of interleaved data samples in said de-interleaving memory array;

a reordering buffer; and

a de-interleaving circuit for de-interleaving the data samples stored in said de-interleaving memory array sub-array by sub-array, each sub-array being a square cluster array having a number SQ of rows and columns, with a cluster row being a row of the square cluster array comprising SQ data samples, the number L of rows and the number C of columns of said de-interleaving memory array being multiples of the number SQ of rows and columns, said de-interleaving circuit comprising

a first reading circuit for reading each cluster of a first group of clusters of the current cluster row, outputting a first data sample of the cluster row, and reordering other data samples of the cluster row in a column of said reordering buffer, and writing its content back at the SQ-1 last accessed clusters into said de-interleaving memory, and

a second reading circuit for reading each cluster of a second group of clusters of the current cluster row, and outputting all data samples from the cluster row.

10. A de-interleaving device according to claim 9 , wherein said de-interleaving circuit comprises a completing circuit for completing, if L0 and C0 are not multiples of SQ, said de-interleaving memory array with padding data to have L rows and C columns, with L and C being multiples of SQ.

11. A de-interleaving device according to claim 9 , wherein said de-interleaving circuit comprises a defining circuit for defining the square cluster array comprising consecutive clusters.

12. A de-interleaving device according to claim 9 , wherein said reordering buffer comprises SQ-1 rows and SQ columns.

13. A de-interleaving device according to claim 9 , further comprising a look-up table having three rows and a number of columns equal to C×L/SQ, the look-up table containing logical addresses of some of the data samples of the current sequence and corresponding physical addresses in said de-interleaving memory array.

14. A de-interleaving device according to claim 13 , wherein said de-interleaving circuit comprises:

a first storage circuit for storing, in a first row of said look-up table, the logical addresses of the data samples of interleaved data samples of the current sequence stored in the columns of said de-interleaving memory array indexed p(i)+k×SQ, where p(i) specifies the inter-columns permutation, with i varying from 0 to L/SQ-1, and k varying from 0 to C/SQ-1;

a second storage circuit for storing, in a second row of said look-up table, the physical addresses of the respective logical addresses of the first row; and

a third storage circuit for storing, in a third row of said look-up table, the physical addresses of data samples of a next sequence of interleaved data samples to be written in said de-interleaving memory array having the respective logical addresses of the first row.

15. A de-interleaving device according to claim 14 , wherein said de-interleaving circuit comprises a selection circuit for selecting, after having processed a previous cluster in the square cluster array, a next cluster having a first data sample having a logical address immediately following the logical address of a last data sample of the previous cluster.

16. A de-interleaving device for a receiving system, with interleaved data samples being extracted from a virtual memory having L0 columns and C0 rows, the de-interleaving device comprising:

a de-interleaving memory array having L rows and C columns, with L being greater or equal to L0 and C being greater or equal to C0;

a receiving circuit for receiving each sequence of the interleaved data samples;

a writing circuit for writing row by row the received sequences of interleaved data samples in said de-interleaving memory array; and

a de-interleaving circuit for de-interleaving the data samples stored in said de-interleaving memory array sub-array by sub-array, each sub-array being a square cluster array having a number SQ of rows and columns, with a cluster row being a row of the square cluster array comprising SQ data samples, the number L of rows and the number C of columns of said de-interleaving memory array being multiples of the number SQ of rows and columns;

said de-interleaving circuit comprising a completing circuit for completing, if L0 and C0 are not multiples of SQ, said de-interleaving memory array with padding data to have L rows and C columns, with L and C being multiples of SQ, the completing based on a look-up table having three rows and a number of columns equal to C×L/SQ, the look-up table containing logical addresses of some of the data samples of the current sequence and corresponding physical addresses in said de-interleaving memory array, said de-interleaving circuit comprising

a first storage circuit for storing, in a first row of said look-up table, the logical addresses of the data samples of interleaved data samples of the current sequence stored in the columns of said de-interleaving memory array indexed p(i)+k×SQ, where p( 1 ) specifies the intercolumns permutation, with i varying from 0 to L/SQ-1, and k varying from 0 to C/SQ-1,

a second storage circuit for storing, in a second row of said look-up table, the physical addresses of the respective logical addresses of the first row, and

a third storage circuit for storing, in a third row of said look-up table, the physical addresses of data samples of a next sequence of interleaved data samples to be written in said de-interleaving memory array having the respective logical addresses of the first row.

17. A de-interleaving device according to claim 16 , wherein said de-interleaving circuit further comprises a defining circuit for defining the square cluster array comprising consecutive clusters.

18. A de-interleaving device according to claim 16 , further comprising a reordering buffer; and wherein said de-interleaving circuit comprises:

a first reading circuit for reading each cluster of a first group of clusters of the current cluster row, outputting a first data sample of the cluster row, and reordering other data samples of the cluster row in a column of said reordering buffer, and writing its content back at the SQ-1 last accessed clusters into said de-interleaving memory; and

a second reading circuit for reading each cluster of a second group of clusters of the current cluster row, and outputting all data samples from the cluster row.

19. A de-interleaving device according to claim 18 , wherein said reordering buffer comprises SQ-1 rows and SQ columns.

20. A de-interleaving device according to claim 16 , wherein said de-interleaving circuit comprises a selection circuit for selecting, after having processed a previous cluster in the square cluster array, a next cluster having a first data sample having a logical address immediately following the logical address of a last data sample of the previous cluster.

21. A cellular mobile phone comprising:

a radio frequency (RF) stage for receiving interlaced data samples; and

a de-interleaving device connected to said RF stage for processing successive sequences of the received interleaved data samples, the interleaved data samples being extracted from a virtual memory having L0 columns and C0 rows, said de-interleaving device comprising

a de-interleaving memory array having L rows and C columns, with L being greater or equal to L0 and C being greater or equal to C0,

a receiving circuit for receiving each sequence of the interleaved data samples,

a writing circuit for writing row by row the received sequences of the interleaved data samples in said de-interleaving memory array,

a reordering buffer, and

a de-interleaving circuit for de-interleaving the data samples stored in said de-interleaving memory array sub-array by sub-array, each sub-array being a square cluster array having a number SQ of rows and columns, with a cluster row being a row of the square cluster array comprising SQ data samples, the number L of rows and the number C of columns of said de-interleaving memory array being multiples of the number SQ of rows and columns, said de-interleaving circuit comprising

a first reading circuit for reading each cluster of a first group of clusters of the current cluster row, outputting a first data sample of the cluster row, and reordering other data samples of the cluster in a column of said reordering buffer, and writing its content back at the SQ-1 last accessed clusters into said de-interleaving memory; and

a second reading circuit for reading each cluster of a second group of clusters of the current cluster row, and outputting all data samples from the cluster row.

22. A cellular mobile phone according to claim 21 , wherein said de-interleaving circuit comprises a completing circuit for completing, if L0 and C0 are not multiples of SQ, said de-interleaving memory array with padding data to have L rows and C columns, with L and C being multiples of SQ.

23. A cellular mobile phone according to claim 21 , wherein said de-interleaving circuit comprises a defining circuit for defining the square cluster array comprising consecutive clusters.

24. A cellular mobile phone according to claim 21 , wherein said reordering buffer comprises SQ-1 rows and SQ columns.

25. A cellular mobile phone according to claim 21 , wherein said de-interleaving device further comprises a look-up table having three rows and a number of columns equal to C×L/SQ, the look-up table containing logical addresses of some of the data samples of the current sequence and corresponding physical addresses in said de-interleaving memory array.

26. A cellular mobile phone according to claim 25 , wherein said de-interleaving circuit comprises:

a first storage circuit for storing, in a first row of said look-up table, the logical addresses of the data samples of interleaved data samples of the current sequence stored in the columns of said de-interleaving memory array indexed p(i)+k×SQ, where p(i) specifies the intercolumns permutation, with i varying from 0 to L/SQ-1, and k varying from 0 to C/SQ-1;

a second storage circuit for storing, in a second row of said look-up table, the physical addresses of the respective logical addresses of the first row; and

a third storage circuit for storing, in a third row of said look-up table, the physical addresses of data samples of a next sequence of interleaved data samples to be written in said de-interleaving memory array having the respective logical addresses of the first row.

27. A cellular mobile phone according to claim 26 , wherein said de-interleaving circuit comprises a selection circuit for selecting, after having processed a previous cluster in the square cluster array, a next cluster having a first data sample having a logical address immediately following the logical address of a last data sample of the previous cluster.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: STMICROELECTRONICS N.V.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 062201/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2005
From: WELLIG, ARMIN; ZORY, JULIEN
To: STMICROELECTRONICS N.V.
Reel/Frame 016358/0236 →