A first scanline of an input image is spatially transformed into a first pixel sequence of an output image. Holes in the first sequence are interpolated if magnifying the input image. Overlapping pixels in the first sequence are adjusted if minifying the input image. After transforming the first scanline, a second scanline of the source image is transformed into a second pixel sequence of the output image. Holes in the second sequence are interpolated if magnifying the input image. Overlapping pixels in the second sequence are adjusted if minifying the input image. Overlapping pixels across the first and second sequences are adjusted and holes between the first and second sequences are interpolated if rotating the input image.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: (a) spatially transforming a first scanline of an input image into a first pixel sequence of an output image, interpolating holes in the first sequence if magnifying the input image, and adjusting overlapping pixels in the first sequence if minifying the input image; and (b) after transforming the first scanline, transforming a second scanline of the input image into a second pixel sequence of the output image, interpolating holes in the second sequence if magnifying the input image, adjusting overlapping pixels in the second sequence if minifying the input image, and adjusting overlapping pixels across the first and second sequences and interpolating holes between the first and second sequences if rotating the input image.
2. The method of claim 1 further comprising: after transforming the second scanline, transforming a third scanline of the input image into a third pixel sequence of the output image, interpolating holes in the third sequence if magnifying the input image, adjusting overlapping pixels in the third sequence if minifying the input image, and adjusting overlapping pixels across the second and third sequences and interpolating holes between the second and third sequences if rotating the input image.
3. The method of claim 1 further comprising: after transforming the second scanline, processing the entire input image in scanline order, by repeating (b) for successive scanlines of the input image, to generate the entire output image.
4. The method of claim 1 wherein the spatially transforming includes multiplying a position vector u,v, 1 T for each pixel of the first scanline by the same 3 3 warping matrix to obtain a position vector x x /w,y y /w, 1 T for a corresponding pixel of the first sequence.
5. The method of claim 1 further comprising: (1) pushing output image coordinates and a color value of a current pixel of the second sequence into a first-in-first-out (FIFO) buffer and (2) popping output image coordinates and a color value of a barricade pixel from the FIFO buffer, if the current pixel is in a different row than a previous pixel of the second sequence, and wherein interpolating holes between the first and second sequences includes interpolating one or more holes that are (1) in the same row, and (2) between the previous pixel and the barricade pixel.
6. A system comprising: a warping engine to spatially transform a scanline of an input image represented in an input coordinate system, into a pixel sequence of an output image represented in coordinate system; and a first buffer to store coordinates and color values of the pixel sequence, wherein the warping engine further includes first hole detection logic coupled to the first buffer to detect holes in the pixel sequence, first interpolation logic coupled to the first hole detection logic, to interpolate holes detected in the sequence, first overlap detection logic coupled to the first buffer to detect overlapping pixels in the sequence, first adjusting logic coupled to the overlap detection logic, and the first buffer, to adjust overlapping pixels in the first sequence, second overlap detection logic coupled to the first buffer, to detect whether a pixel of a first sequence that is stored in the buffer overlaps a pixel of a second sequence, the second sequence to be generated after a first scanline is completely transformed into the first sequence, second adjusting logic coupled to the second overlap detection logic and the first buffer, to adjust a pixel of the first sequence that overlaps with a pixel of the second sequence, second hole detection logic coupled to the first buffer, to detect holes in the output image between the first and second sequences, and second interpolation logic coupled to the second hole detection logic to interpolate detected holes between the first and second sequences.
7. The system of claim 6 further comprising a cache memory, the first buffer being implemented in the cache memory, the cache memory being coupled to the first and second interpolation logic to store color values and coordinates of all of the detected and interpolated holes.
8. The system of claim 7 wherein the cache memory is further configured with a mask structure to indicate whether the color value of any of the pixels in the first and second sequence has or has not been determined, the second overlap detection logic is to read the mask structure to determine whether a pixel of the first sequence overlaps a pixel of the second sequence.
9. The system of claim 7 wherein the cache memory is further configured with a FIFO buffer to store a color value and coordinates of one or more barricade pixels in the first sequence, the barricade pixel being located in a different row of the output image.
10. The system of claim 9 wherein the second hole detection logic is coupled to pop the coordinates and color value of a previously stored barricade pixel from the FIFO buffer in response to the barricade pixel being computed, to identify the coordinates of holes in the same row between a previous pixel of the first sequence and the popped barricade pixel.
11. An article of manufacture comprising: a machine-readable medium having a plurality of instructions stored therein which, when executed by a processor, cause (a) a first scanline of an input image represented in an input coordinate system to be spatially transformed into a first pixel sequence of an output image represented in an output coordinate system, holes in the first sequence to be interpolated if magnifying, and overlapping pixels in the first sequence to be adjusted if minifying; and (b) after the first scanline has been transformed, a second scanline of the input image to be transformed into a second pixel sequence of the output image, holes in the second sequence to be interpolated if magnifying, overlapping pixels in the second sequence to be adjusted if minifying, and overlapping pixels across the first and second sequences to be adjusted and holes between the first and second sequences to be interpolated if rotating.
12. The article of manufacture of claim 11 wherein the medium includes further instructions which, when executed by the processor, cause after the second scanline has been transformed, a third scanline of the input image to be transformed into a third pixel sequence of the output image, holes in the third sequence to be interpolated if magnifying, overlapping pixels in the third sequence to be adjusted if minifying, and overlapping pixels across the second and third sequences to be adjusted and holes between the second and third sequences to be interpolated if rotating.
13. The article of manufacture of claim 11 wherein the medium includes further instructions which, when executed by the processor, cause after the second scanline has been transformed, the entire output image to be processed in scanline order, by repeating (b) for successive scanlines of the input image, to generate the entire output image.
14. The article of manufacture of claim 11 wherein the instructions, when executed by the processor, cause the spatial transformation to include multiplying a position vector u,v, 1 T for each pixel of the first scanline by the same 3 3 warping matrix to obtain a position vector x x /w,y y /w, 1 T for a corresponding pixel of the first sequence.
15. The article of manufacture of claim 11 wherein the medium includes further instructions which, when executed by the processor, cause (1) image coordinates and color values of a current pixel of the second sequence to be pushed into a first-in-first-out (FIFO) buffer and (2) image coordinates and color values of a barricade pixel to be popped from the FIFO buffer, if the current pixel is in a different row than a previous pixel of the second sequence, and wherein the instructions cause the interpolation of holes between the first and-second sequences to include interpolating one or more holes that are (1) in the same row, and (2) between the previous pixel and the barricade pixel.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 29, 2000
December 30, 2003
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.