IP Library Granted Patent US 9,554,153
Granted Patent B2
US 9,554,153 · App. 14/859,094 · Granted Jan 24, 2017

Data compression using spatial decorrelation

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 9,554,153
App. No.
14/859,094
Granted
Jan 24, 2017
Kind
B2
Abstract

Methods and modules for spatial decorrelation and recorrelation are described. A block of data values can be spatially decorrelated in two dimensions efficiently by processing rows of the data values in a particular order such that if the results of spatially decorrelating a first row will be used for column-wise spatial decorrelation of a second row then the data values of the first row are processed in an earlier iteration to that in which the data values of the second row are processed. This allows for highly parallelised processing of the block of data values. Spatial recorrelation can be performed as an inverse process to the spatial decorrelation.

Claims (63)

1. A spatial decorrelation module configured to perform spatial decorrelation on a block of data values as part of a data compression system, wherein the data values in the block are arranged into a two dimensional array, and wherein the spatial decorrelation module comprises a plurality of parallel processing pipelines each comprising a first stage and a second stage, wherein the first stages of the processing pipelines are configured to implement first spatial decorrelation in a first dimension, and wherein the second stages of the processing pipelines comprise respective storage units and are configured to implement spatial decorrelation in a second dimension,

wherein the first stage of each of the processing pipelines is configured to, in each of a plurality of iterations:

(a) receive one or more of the data values from a first line of data values from the block; and

(b) implement first spatial decorrelation in the first dimension on the received data values to thereby output, to corresponding second stages of the processing pipelines, a first coefficient for a respective one of the data values of the first line; and

wherein the second stage of each of the processing pipelines is configured to, in each of said plurality of iterations:

(a) selectively store the first coefficients for the first line in the respective storage units; and

(b) implement second spatial decorrelation in the second dimension on first coefficients for a second line for which the first spatial decorrelation was performed in a previous iteration, to thereby output a second coefficient for a respective one of the data values of the second line, wherein the second coefficients are spatially decorrelated data values,

wherein the second stages of the processing pipelines are configured to selectively store the first coefficients for the first line in the respective storage units if the first coefficients for the first line will be used for the second spatial decorrelation for another line of the block on a subsequent iteration, and

wherein the first stages of the processing pipelines are configured to receive the lines of data values in a particular order such that if the first coefficients for a particular line will be used for the second spatial decorrelation for another line then the data values of the particular line are received at the first stages in an earlier iteration to that in which the data values of said another line are received at the first stages.

2. The spatial decorrelation module of claim 1 wherein the spatial decorrelation module is configured to iterate the spatial decorrelation for different lines of data values of the block until second coefficients are output from the second stages of the processing pipelines for data values of all of the lines of data values in the block, to thereby output spatially decorrelated values for all of the data values of the block.

3. The spatial decorrelation module of claim 1 wherein the number of parallel processing pipelines in the spatial decorrelation module equals the number of data values of the block that are in each line in the first dimension.

4. The spatial decorrelation module of claim 1 wherein the first stage of at least one of the processing pipelines comprises a processing unit configured to:

receive more than one of the data values of the first line;

determine a prediction of one of the received data values using the other one or more received data values according to a first prediction scheme; and

output a first coefficient based on a difference between the prediction of the one of the received data values and the received value of the one of the received data values.

5. The spatial decorrelation module of claim 4 wherein the first prediction scheme is a Linear prediction scheme or a Haar prediction scheme.

6. The spatial decorrelation module of claim 1 wherein the second stage of each of the processing pipelines comprises a processing unit configured to:

determine a prediction of one of the received first coefficients for the second line, according to a second prediction scheme, using at least one of the first coefficients stored in the storage unit of the respective processing pipeline; and

output a second coefficient based on a difference between the prediction of the one of the received first coefficients and the received value of the one of the received first coefficients for the particular line.

7. The spatial decorrelation module of claim 6 wherein the second prediction scheme is a Linear prediction scheme or a Haar prediction scheme.

8. The spatial decorrelation module of claim 1 wherein the storage unit of each of the second stages of the processing pipelines is configured to store up to three first coefficients.

9. The spatial decorrelation module of claim 1 wherein the two dimensional array has m rows and n columns, where m>1 and n>1, and wherein the rows of data values are in the first dimension and the columns of data values are in the second dimension, and wherein the spatial decorrelation module comprises n parallel processing pipelines.

10. The spatial decorrelation module of claim 9 , wherein n=m=8, and wherein the particular order in which the first stages of the spatial decorrelation module are configured to receive the rows is: row 0 , row 4 , row 6 , row 7 , row 5 , row 2 , row 3 then row 1 .

11. A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when processed at a computer system for generating a manifestation of an integrated circuit, cause the computer system to generate a manifestation of a spatial decorrelation module configured to perform spatial decorrelation on a block of data values as part of a data compression system, wherein the data values in the block are arranged into a two dimensional array, and wherein the spatial decorrelation module comprises a plurality of parallel processing pipelines each comprising a first stage and a second stage, wherein the first stages of the processing pipelines are configured to implement first spatial decorrelation in a first dimension, and wherein the second stages of the processing pipelines comprise respective storage units and are configured to implement spatial decorrelation in a second dimension,

wherein the first stage of each of the processing pipelines is configured to, in each of a plurality of iterations:

(a) receive one or more of the data values from a first line of data values from the block; and

(b) implement first spatial decorrelation in the first dimension on the received data values to thereby output, to corresponding second stages of the processing pipelines, a first coefficient for a respective one of the data values of the first line; and

wherein the second stage of each of the processing pipelines is configured to, in each of said plurality of iterations:

(a) selectively store the first coefficients for the first line in the respective storage units; and

(b) implement second spatial decorrelation in the second dimension on first coefficients for a second line for which the first spatial decorrelation was performed in a previous iteration, to thereby output a second coefficient for a respective one of the data values of the second line, wherein the second coefficients are spatially decorrelated data values,

wherein the second stages of the processing pipelines are configured to selectively store the first coefficients for the first line in the respective storage units if the first coefficients for the first line will be used for the second spatial decorrelation for another line of the block on a subsequent iteration, and

wherein the first stages of the processing pipelines are configured to receive the lines of data values in a particular order such that if the first coefficients for a particular line will be used for the second spatial decorrelation for another line then the data values of the particular line are received at the first stages in an earlier iteration to that in which the data values of said another line are received at the first stages.

12. A spatial recorrelation module configured to perform spatial recorrelation on a block of spatially decorrelated data values as part of a data decompression system, wherein the spatially decorrelated data values in the block are arranged into a two dimensional array, and wherein the spatial recorrelation module comprises a plurality of parallel processing pipelines each comprising a first stage and a second stage, wherein the first stages of the processing pipelines comprise respective storage units and are configured to implement first spatial recorrelation in a first dimension, and wherein the second stages of the processing pipelines are configured to implement spatial recorrelation in a second dimension,

wherein the first stage of each of the processing pipelines is configured to, in each of a plurality of iterations:

(a) receive a respective one of the spatially decorrelated data values from a first line of spatially decorrelated data values of the block;

(b) implement first spatial recorrelation in the first dimension on the received spatially decorrelated data values to thereby output, to corresponding second stages of the processing pipelines, a first coefficient for a respective one of the spatially decorrelated data values of the first line; and

(c) selectively store the first coefficients for the first line in the respective storage units;

wherein the second stage of each of the processing pipelines is configured to, in each of said plurality of iterations:

implement second spatial recorrelation in the second dimension on first coefficients for a second line for which the first spatial recorrelation was performed in a previous iteration, to thereby output a second coefficient for a respective one of the spatially decorrelated data values of the second line, wherein the second coefficients are spatially recorrelated data values,

wherein the first stages of the processing pipelines are configured to selectively store the first coefficients for the first line in the respective storage units if the first coefficients for the first line will be used for the first spatial recorrelation for another line of the block on a subsequent iteration, and

wherein the first stages of the processing pipelines are also configured to receive the lines of spatially decorrelated data values in a particular order such that if the first coefficients for a particular line will be used for the first spatial recorrelation for another line then the spatially decorrelated data values of the particular line are received at the first stages in an earlier iteration to that in which the spatially decorrelated data values of said another line are received at the first stages.

13. The spatial recorrelation module of claim 12 wherein the spatial recorrelation module is configured to iterate the spatial recorrelation for different lines of spatially decorrelated data values of the block until second coefficients are output from the second stages of the processing pipelines for spatially decorrelated data values of all of the lines of spatially decorrelated data values in the block, to thereby output spatially decorrelated values for all of the spatially decorrelated data values of the block.

14. The spatial recorrelation module of claim 12 wherein the number of parallel processing pipelines in the spatial recorrelation module equals the number of spatially decorrelated data values of the block that are in each line in the first dimension.

15. The spatial recorrelation module of claim 12 wherein the second stage of at least one of the processing pipelines comprises a processing unit configured to:

receive more than one of the first coefficients for the first line;

determine a second coefficient based on the received first coefficients; and

output the determined second coefficient.

16. The spatial recorrelation module of claim 12 wherein the first stage of each of the processing pipelines comprises a processing unit configured to:

receive one of the received spatially decorrelated data values for the second line and at least one of the first coefficients stored in the storage unit of the respective processing pipeline;

determine a first coefficient for the second line using the received one of the spatially decorrelated data values and the received at least one first coefficient stored in the storage unit of the respective processing pipeline; and

output the determined first coefficient.

17. The spatial recorrelation module of claim 12 wherein the storage unit of each of the first stages of the processing pipelines is configured to store up to three first coefficients.

18. The spatial recorrelation module of claim 12 wherein the two dimensional array has m rows and n columns, where m>1 and n>1, and wherein the rows of data values are in the second dimension and the columns of data values are in the first dimension, and wherein the spatial recorrelation module comprises n parallel processing pipelines.

19. The spatial recorrelation module of claim 18 wherein n=m=8.

20. A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when processed at a computer system for generating a manifestation of an integrated circuit, cause the computer system to generate a manifestation of a spatial recorrelation module configured to perform spatial recorrelation on a block of spatially decorrelated data values as part of a data decompression system, wherein the spatially decorrelated data values in the block are arranged into a two dimensional array, and wherein the spatial recorrelation module comprises a plurality of parallel processing pipelines each comprising a first stage and a second stage, wherein the first stages of the processing pipelines comprise respective storage units and are configured to implement first spatial decorrelation in a first dimension, and wherein the second stages of the processing pipelines are configured to implement spatial decorrelation in a second dimension,

wherein the first stage of each of the processing pipelines is configured to, in each of a plurality of iterations:

(a) receive a respective one of the spatially decorrelated data values from a first line of spatially decorrelated data values of the block;

(b) implement first spatial recorrelation in the first dimension on the received spatially decorrelated data values to thereby output, to corresponding second stages of the processing pipelines, a first coefficient for a respective one of the spatially decorrelated data values of the first line; and

(c) selectively store the first coefficients for the first line in the respective storage units;

wherein the second stage of each of the processing pipelines is configured to, in each of said plurality of iterations:

implement second spatial recorrelation in the second dimension on first coefficients for a second line for which the first spatial recorrelation was performed in a previous iteration, to thereby output a second coefficient for a respective one of the spatially decorrelated data values of the second line, wherein the second coefficients are spatially recorrelated data values,

wherein the first stages of the processing pipelines are configured to selectively store the first coefficients for the first line in the respective storage units if the first coefficients for the first line will be used for the first spatial recorrelation for another line of the block on a subsequent iteration; and

wherein the first stages of the processing pipelines are also configured to receive the lines of spatially decorrelated data values in a particular order such that if the first coefficients for a particular line will be used for the first spatial recorrelation for another line then the spatially decorrelated data values of the particular line are received at the first stages in an earlier iteration to that in which the spatially decorrelated data values of said another line are received at the first stages.

Assignments (4)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY'S ADDRESS PREVIOUSLY RECORDED ON REEL 037021 FRAME 0258. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 18, 2015
From: FENNEY, SIMON
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 037127/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: FENNEY, SIMON
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 037021/0258 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2015
From: FENNEY, SIMON
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 037022/0786 →