Apparatus and method for processing an image
First Claim
1. An image processor for processing data representing an image, comprising:
- a first memory for storing the data as an array of numbers in a format having rows and columns of data positions;
a second memory for storing the data as an array of numbers in a format having rows and columns of data positions;
means for scrolling the data in each row of the second memory with respect to the first memory by at least one data position;
a data processor;
means for outputting the scrolled data of the second memory and the data of the first memory to the data processor; and
said data processor being operable to combine every other group of at least one number of each row of the scrolled data with a corresponding every other group of at least one number of each row of the data from the first memory and for passing the data from the first memory for the remaining data positions to produce a new array of data.
1 Assignment
0 Petitions
Accused Products
Abstract
The specification discloses an apparatus and method for processing an image as part of a fast Fourier transform (FFT) operation. An image processor includes a first and second memory, each for storing the data representing an image as an array of numbers in a format having rows and columns of data positions. A controller is provided for scrolling the data in each row of the second memory with respect to the first memory by at least one data position and for outputting the data of both memories to a data processor. The data processor combines every other group of at least one number of each row of the scrolled data with a corresponding every other group of at least one number of each row of the data from the first memory and passes to its output the data from the first memory for the remaining data positions, whereby a new array of data is produced that is useful as part of a fast Fourier transform operation.
30 Citations
23 Claims
-
1. An image processor for processing data representing an image, comprising:
-
a first memory for storing the data as an array of numbers in a format having rows and columns of data positions; a second memory for storing the data as an array of numbers in a format having rows and columns of data positions; means for scrolling the data in each row of the second memory with respect to the first memory by at least one data position; a data processor; means for outputting the scrolled data of the second memory and the data of the first memory to the data processor; and said data processor being operable to combine every other group of at least one number of each row of the scrolled data with a corresponding every other group of at least one number of each row of the data from the first memory and for passing the data from the first memory for the remaining data positions to produce a new array of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An image processor for performing a Fourier transform operation on data representing an image comprising:
-
a first memory for storing the data as an array of numbers in a format having x rows and y columns; a second memory for storing the data as an array of numbers in a format having x rows and y columns; means for scrolling the data in each row of the second memory in a selected direction, forwardly or rearwardly, with respect to the first memory by a selected scroll number, n, of data positions; control means for generating control signals and for selecting the direction of scrolling and the number n of data positions by which the data is scrolled; a data processor; means for outputting the data of the first memory and the scrolled data of the second memory to the data processor; said data processor being operable in response to the control signals to define a data group as n numbers, to combine odd groups of n numbers in each row of data from the first memory with corresponding odd groups of n numbers in each row of the scrolled data from the second memory and to pass even groups of n numbers in each row of data from the first memory when the data in said second memory is scrolled forwardly by n data positions and being operable to combine even groups of n numbers in each row of data from the first memory with corresponding even groups of n numbers of scrolled data from the second memory and to pass odd groups of n numbers in each row of data from the first memory when said data is scrolled rearwardly by n data positions; and said control means being operable to cause the circulation of the data from said first and second memories to the data processor and back to the first and second memories for a series of circulation sets, where a circulation set is defined as a sufficient number of passes of the data through the data processor to combine the odd groups and pass the even groups to produce an intermediate array, store the intermediate array in a first memory and, then, to combine the even groups and pass the odd groups to produce a result array and store the result array in the first and second memories. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for processing data representing an image using first and second memories and a data processor, comprising:
-
storing the image in each memory by storing the data in the first and second memories as an array of numbers in a format having rows and columns of data positions; scrolling the data in each row of the second memory with respect to the first memory by at least one data position to produce scrolled data; outputting the data of the first memory and the scrolled data of the second memory to the data processor; grouping each row of data into groups of at least one number; and combining every other group (defined as the odd groups) of each row of the data from the first memory with a corresponding group of each row of the scrolled data and passing the data from the first memory for the remaining data positions (the even groups) to produce a new array of data. - View Dependent Claims (18, 19)
-
-
20. A method for processing an array of data having x rows and y columns representing an image as part of a fast Fourier transform process using first and second memories and a data processor, comprising:
-
reordering the data in accordance with a predetermined reordering sequence to produce reordered data; storing the reordered data in first and second memories as an array of numbers in a format having x rows and y columns where x and y are both powers of two, each of said first and second memories containing all of the reordered data corresponding to the image; circulating the data from the memories to the data processor and back to the memories for a first series of circulation sets where the number of circulation sets in the first series equals c1 and two raised to the c1 power equals y to produce a one dimensional FFT array; transposing the one dimensional FFT array by rows and columns so that the rows become columns and the columns become rows; reordering the data again in accordance with a predetermined reordering sequence to produce second reordered data and storing the second reordered data in the first and second memories; circulating the second reordered data again from the memories to the data processor and back to the memories for a second series of circulation sets where the number of circulation sets in the second series equals c2 and two raised to the c2 power equals x, whereby the fast fourier transform of the image is produced; each circulation set of the first and second series comprising; scrolling the data in each row of the second memory with respect to the first memory by s data positions where s equals 2 raised to the power of the number of the circulation set in a series of circulation sets, so that s equals one on a first circulation set, s equals two on a second circulation set, s equals four on a third circulation set and, on the last circulation set, s equals two raised to the power of one less than the number of a last circulation set; outputting the data of the first memory and the scrolled data of the second memory to the data processor; grouping each row of the data of the first memory and the scrolled data of the second memory into alternating groups with s numbers in each group; combining every other group (defined as the odd groups) of each row of the data from the first memory with a corresponding group of each row of the scrolled data and passing the data from the first memory for the remaining data positions (the even groups) to produce an intermediate array of data; storing the intermediate array of data in the first memory; oppositely scrolling the data in each row of the second memory with respect to the first memory by s data positions and in an opposite direction from the previous scrolling to produce oppositely scrolled data; outputting the intermediate array of data from the first memory and the oppositely scrolled data from the second memory to the data processor; grouping in the data processor each row of the data from the first and second memories into alternating groups with s numbers in each group; combining the remaining every other group (the even groups) of each row of the intermediate data array, which is the data that was passed in the other combining and passing step, with a corresponding group of each row of the oppositely scrolled data and passing the data of the odd groups to produce a resulting array of data. - View Dependent Claims (21, 22, 23)
-
Specification