Claims
- 1. An image data processing method for receiving input image data from a burst memory buffer and providing output image data to a vertical filter for filtering, said method comprising the steps of:
(a) determining whether a new frame of input image data has been received, said frame of data having a plurality of blocks, each block having a plurality of rows and columns; (b) providing a vertical input buffer having a plurality of rows and columns and having:
(i) a read pointer with each column for marking where input image data has been processed to, said read pointer moving down the column as input image data is processed; (ii) an oldest unused data point for marking the highest vertical location in the block where data remains to be read, and (iii) a write pointer for marking the next position in the block in which the next row of data can be written; (c) reading and storing data into said vertical input buffer by:
(v) determining the minimum offset for the block; (vi) reading a row of input image data from the burst memory buffer and skipping the row depending on the minimum offset until minimum offset reached; (vii) storing the row of input image data in said vertical input buffer for processing by the vertical filter; (viii) determining if the buffer is full and if not then repeating steps (vi) to (vii); (d) determining if the entire frame has been processed and if so resetting said read pointer, said oldest unused data pointer and said write pointer; (e) determining if an entire column in the output image has been processed and if so, flushing the data of a column by adjusting the read pointer to point to the end of the column within the buffer and updating the oldest unused data pointer; (f) determining if the entire block has been processed and if so repeating steps (c) to (f); (g) determining whether the buffer is still full and if so repeating steps (d) to (g); and (h) determining whether the buffer is still full and it not, repeating steps (c) to (h).
- 2. The method of claim 1, wherein the dimension of said blocks is chosen according to the data that is to be processed.
- 3. The method of claim 1, wherein the vertical filter processes the output image data by processing vertical columns of blocks within the image.
- 4. The method of claim 1, further comprising the step of using a context memory to store data from previously processed blocks.
- 5. The method of claim 4, further comprising the step of determining whether a context switch is necessary and if so then using said context memory to allow vertical filter to switch to the next column.
- 6. An image data processing system for receiving input image data from a burst memory buffer and providing output image data to a vertical filter for filtering, said method comprising:
(a) a processor for determining whether a new frame of input image data has been received, said frame of data having a plurality of blocks, each block having a plurality of rows and columns; (b) a vertical input buffer coupled to the processor, said vertical input buffer having a plurality of rows and columns and comprising:
(i) a read pointer with each column for marking where input image data has been processed to, said read pointer moving down the column as input image data is processed; (ii) an oldest unused data pointer for marking the highest vertical location in the block where data remains to be read, and (iii) a write pointer for marking the next position in the block in which the next row of data can be written; (c) a processor for reading and storing data into said vertical input buffer by:
(v) determining the minimum offset for the block; (vi) reading a row of input image data from the burst memory buffer and skipping the row depending on the minimum offset until minimum offset reached; (vii) storing the row of input image data in said vertical input buffer for processing by the vertical filter; (viii) determining if the buffer is full and if not then repeating steps (vi) to (vii); (d) a processor for determining if the entire frame has been processed and if so resetting said read pointer, said oldest unused data pointer and said write pointer; (e) a processor for determining if an entire column in the output image has been processed and if so, flushing the data of a column by adjusting the read pointer to pointer to the end of the column within the buffer and updating the oldest unused data pointer; (f) a processor for determining if the entire block has been processed and if so repeating steps (c) to (f); (g) a processor for determining whether the buffer is still full and if so repeating steps (d) to (g); and (h) a processor for determining whether the buffer is still full and it not, repeating steps (c) to (h).
- 7. The system of claim 1, wherein the dimension of said blocks is chosen according to the data that is to be processed.
- 8. The system of claim 1, wherein the vertical filter processes the output image data by processing vertical columns of blocks within the image.
- 9. The system of claim 1, further comprising a context memory to store data from previously processed blocks.
- 10. The system of claim 9, wherein the processor determines whether a context switch is necessary and if so said context memory is used to allow vertical filter to switch to the next column.
- 11. An image data processing method for receiving input image data from a burst memory buffer and providing output image data to a vertical filter for filtering, said method comprising the steps of:
(a) determining whether a new frame of input image data has been received, said frame of data having a plurality of blocks, each block having a plurality of rows and columns and wherein the vertical filter processes the output image data by processing strips comprising horizontal rows of blocks across the image; (b) providing a vertical input buffer having a plurality of rows and columns and having:
(i) a read pointer with each column for marking where input image data has been processed to, said read pointer moving down the column as input image data is processed; (ii) an oldest unused data pointer for marking the highest vertical location in the block where data remains to be read, and (iii) a write pointer for marking the next position in the block in which the next row of data can be written; (c) reading and storing data into said vertical input buffer by:
(v) determining the minimum and maximum offset for the block; (vi) reading a row of input image data depending on the minimum offset until minimum offset reached; (vii) storing the row of input image data in said vertical input buffer for processing by the vertical filter; (viii) determining if the maximum offset has been reached and if the buffer is full, if not then repeating steps (vi) to (vii); (e) determining if the entire block has been processed and if not repeating steps (c) to (e) for the next horizontal block; (f) determining if the entire strip in the output image has been processed and if not, repeating steps (c) to (e) for the next horizontal block; and (g) determining if the entire frame has been processed and if not repeating steps (c) to (e) for the next block in the next strip and if so resetting said read pointer, said oldest unused data pointer and said write pointer.
- 12. The method of claim 11, wherein each block is sub-divided into sub-blocks such that each input image data is processed in sub-blocks.
- 13. An image data processing system for receiving input image data from a burst memory buffer and providing output image data to a vertical filter for filtering, said method comprising the steps of:
(a) a processor for determining whether a new frame of input image data has been received, said frame of data having a plurality of blocks, each block having a plurality of rows and columns and wherein the vertical filter processes the output image data by processing strips comprising horizontal rows of blocks across the image; (b) a vertical input buffer having a plurality of rows and columns and having:
(i) a read pointer with each column for marking where input image data has been processed to, said read pointer moving down the column as input image data is processed; (ii) an oldest unused data pointer for marking the highest vertical location in the block where data remains to be read, and (iii) a write pointer for marking the next position in the block in which the next row of data can be written; (c) a processor for reading and storing data into said vertical input buffer by:
(v) determining the minimum and maximum offset for the block; (vi) reading a row of input image data depending on the minimum offset until minimum offset reached; (vii) storing the row of input image data in said vertical input buffer for processing by the vertical filter; (viii) determining if the maximum offset has been reached and if the buffer is full, if not then repeating steps (vi) to (vii); (e) a processor for determining if the entire block has been processed and if not repeating steps (c) to (e) for the next horizontal block; (f) a processor for determining if the entire strip in the output image has been processed and if not, repeating steps (c) to (e) for the next horizontal block; and (g) a processor for determining if the entire frame has been processed and if not repeating steps (c) to (e) for the next block in the next strip and if so resetting said read pointer, said oldest unused data pointer and said write pointer.
- 14. The system of claim 13, wherein each block is sub-divided into sub-blocks such that each input image data is processed in sub-blocks.
Parent Case Info
[0001] This application claims priority from U.S. Provisional Patent Application No. 60/296,750 filed Jun. 11, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60296750 |
Jun 2001 |
US |