Method and system for performing two-dimensional transform on data value array with reduced power consumption
First Claim
1. A system configured to perform a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes a row transform and a column transform, said system including:
- row transform circuitry configured to generate a block of partially transformed data in response to each said input data block, by performing the row transform on each row of the input data block; and
column transform circuitry configured to perform the column transform on each column of the block of partially transformed data,wherein the row transform circuitry is configured to determine, when performing the row transform on each said row, whether each of different subsets of the data values comprising a partition of the row includes at least one zero value, whether each of different subsets of a first one of the subsets of the partition of the row includes at least one zero value, and whether each of different subsets of a second one of the subsets of the partition of the row includes at least one zero value, andthe row transform circuitry is configured to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined to be a zero value.
2 Assignments
0 Petitions
Accused Products
Abstract
In some embodiments, a method for performing and a system configured to perform a 2D transform (for example, an inverse discrete cosine transform) on each block of a sequence of data blocks, where the 2D transform includes a row transform and a column transform. To perform the row or column transform on a row or column of data, these embodiments determine whether each of different subsets of the data values comprising a partition of the row (column) includes at least one zero value, whether each of different subsets of a first subset of the partition includes at least one zero value, and whether each of different subsets of at least one other subset of the partition includes at least one zero value. When performing the row (column) transform on each row or column that includes at least one zero value and at least one non-zero value, at least one transformation operation on at least one zero value is bypassed or performed in a reduced-power manner, where such transformation operation would otherwise be performed in a manner consuming full power if the zero value were a non-zero value. In some embodiments, the system is a pipelined video decoding system or other video processing system (or a video processing subsystem of a portable media player or other system) including a transform engine implemented in accordance with the invention. Other aspects are transform engines and transform engine circuitry for use in any embodiment of the system.
107 Citations
57 Claims
-
1. A system configured to perform a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes a row transform and a column transform, said system including:
-
row transform circuitry configured to generate a block of partially transformed data in response to each said input data block, by performing the row transform on each row of the input data block; and column transform circuitry configured to perform the column transform on each column of the block of partially transformed data, wherein the row transform circuitry is configured to determine, when performing the row transform on each said row, whether each of different subsets of the data values comprising a partition of the row includes at least one zero value, whether each of different subsets of a first one of the subsets of the partition of the row includes at least one zero value, and whether each of different subsets of a second one of the subsets of the partition of the row includes at least one zero value, and the row transform circuitry is configured to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined to be a zero value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system configured to perform a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes a row transform and a column transform, said system including:
-
column transform circuitry configured to generate a block of partially transformed data in response to each said input data block, by performing the column transform on each column of the input data block; and row transform circuitry configured to perform the row transform on each row of the block of partially transformed data, wherein the column transform circuitry is configured to determine, when performing the column transform on each said column, whether each of different subsets of the data values comprising a partition of the column includes at least one zero value, whether each of different subsets of a first one of the subsets of the partition of the column includes at least one zero value, and whether each of different subsets of a second one of the subsets of the partition of the column includes at least one zero value, and the column transform circuitry is configured to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined to be a zero value. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for performing a 2D transform on a sequence of input data blocks, wherein each of the blocks comprises rows and columns of input data values, and the 2D transform includes a row transform and a column transform, said method including the steps of:
-
(a) performing the row transform on each row of one of the input data blocks, including by performing transformation operations on input data values of each said row, to generate a partially transformed data block; and (b) performing the column transform on each column of the partially transformed data block, including by performing additional transformation operations on data values of each said column, wherein step (a) includes the steps of; (c) determining whether each of different subsets of the data values comprising a partition of each said row includes at least one zero value, determining whether each of different subsets of a first subset of the partition includes at least one zero value, and determining whether each of different subsets of at least one other subset of the partition includes at least one zero value; and (d) when performing the row transform on each said row that is determined to include at least one zero value and at least one non-zero value, bypassing or performing in a reduced-power manner at least one of the transformation operations on at least one of the input data values that is determined to be a zero value, where said one of the transformation operations would otherwise be performed in a manner consuming full power if the zero value were a non-zero value. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A method for performing a 2D transform on a sequence of input data blocks, wherein each of the blocks comprises rows and columns of input data values, and the 2D transform includes a row transform and a column transform, said method including the steps of:
-
(a) performing the row transform on each row of one of the input data blocks, including by performing transformation operations on input data values of each said row, to generate a partially transformed data block; and (b) performing the column transform on each column of the partially transformed data block, including by performing additional transformation operations on data values of each said column, wherein step (b) includes the steps of; (c) determining whether each of different subsets of the data values comprising a partition of each said column includes at least one zero value, determining whether each of different subsets of a first subset of the partition includes at least one zero value, and determining whether each of different subsets of at least one other subset of the partition includes at least one zero value; and (d) when performing the column transform on each said column that is determined to include at least one zero value and at least one non-zero value, bypassing or performing in a reduced-power manner at least one of the additional transformation operations on at least one of the data values that is determined to be a zero value, where said one of the additional transformation operations would otherwise be performed in a manner consuming full power if the zero value were a non-zero value. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A video processing system, including a transform engine configured to perform a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes a row transform and a column transform, said transform engine including:
-
row transform circuitry configured to generate a block of partially transformed data in response to each said input data block, by performing the row transform on each row of the input data block; and column transform circuitry configured to perform the column transform on each column of the block of partially transformed data, wherein the row transform circuitry is configured to determine, when performing the row transform on each said row, whether each of different subsets of the data values comprising a partition of the row includes at least one zero value, whether each of different subsets of a first subset of the partition of the row includes at least one zero value, and whether each of different subsets of at least one other subset of the partition of the row includes at least one zero value, and the row transform circuitry is configured to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined to be a zero value. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43)
-
-
44. A video processing system, including a transform engine configured to perform a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes a row transform and a column transform, said transform engine including:
-
column transform circuitry configured to generate a block of partially transformed data in response to each said input data block, by performing the column transform on each column of the input data block; and row transform circuitry configured to perform the row transform on each row of the block of partially transformed data, wherein the column transform circuitry is configured to determine, when performing the column transform on each said column, whether each of different subsets of the data values comprising a partition of the column includes at least one zero value, whether each of different subsets of a first subset of the partition of the column includes at least one zero value, and whether each of different subsets of at least one other subset of the partition of the column includes at least one zero value, and the column transform circuitry is configured to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined to be a zero value. - View Dependent Claims (45, 46, 47, 48, 49)
-
-
50. A transform engine configured to perform a row transform of a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes the row transform and a column transform, said transform engine including:
-
first circuitry coupled to receive each row of each said input data block and configured to determine whether each of different subsets of the data values comprising a partition of each said row includes at least one zero value, whether each of different subsets of a first one of the subsets of the partition of the row includes at least one zero value, and whether each of different subsets of at least one other one of the subsets of the partition of the row includes at least one zero value; and transform circuitry coupled to the first circuitry and configured to perform the row transform on the data values of each said row, wherein the transform circuitry is configured to operate under control of the first circuitry to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined by the first circuitry to be a zero value. - View Dependent Claims (51, 52, 53)
-
-
54. A transform engine configured to perform a column transform of a 2D transform on each input data block of a sequence of input data blocks, wherein each said input data block comprises rows and columns of input data values and the 2D transform includes the column transform and a row transform, said transform engine including:
-
first circuitry coupled to receive each column of each said input data block and configured to determine whether each of different subsets of the data values comprising a partition of each said column includes at least one zero value, whether each of different subsets of a first one of the subsets of the partition of the column includes at least one zero value, and whether each of different subsets of at least one other one of the subsets of the partition of the column includes at least one zero value; and transform circuitry coupled to the first circuitry and configured to perform the column transform on the data values of each said column, wherein the transform circuitry is configured to operate under control of the first circuitry to bypass or perform in a reduced-power manner at least one transformation operation on at least one of the data values that is determined by the first circuitry to be a zero value. - View Dependent Claims (55, 56, 57)
-
Specification