Method to quickly warp a 2-D image using only integer math
First Claim
1. A system that warps a two-dimensional image, comprising:
- an input component that receives the two-dimensional image; and
a warp component that maps output pixel offset values in floating point format to input pixel coordinates and linearizes the output pixel offset values via converting the output pixel offset values for each pixel into an integer grid value and integer offset values for respective pixel(s), the warp component determines a floating point remainder for each of an x-offset value and a y-offset value for a given pixel, converts each floating point remainder to an integer remainder value by multiplying the floating point remainder by the width of a sub-pixel grid and truncates the product to obtain an x-offset integer value and a y-offset integer value and determines the integer grid value from the integer remainder values;
wherein the integer offset value is utilized to determine a location of a pixel and the integer grid value is utilized to identify a suitable warping algorithm for warping the two-dimensional image.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed that facilitate rapidly warping a two-dimensional image using integer math. A warping table can contain two-dimensional floating point output pixel offset values that are mapped to respective input pixel locations in a captured image. The warping table values can be pre-converted to integer offset values and integer grid values mapped to a sub-pixel grid. During warping, each output pixel can be looked up via its integer offset value, and a one-dimensional table lookup for each pixel can be performed to interpolate pixel data based at least in part on the integer grid value of the pixel. Due to the small size of the lookup tables, lookups can potentially be stored in and retrieved from a CPU cache, which stores most recent instructions to facilitate extremely rapid warping and fast table lookups.
-
Citations
24 Claims
-
1. A system that warps a two-dimensional image, comprising:
-
an input component that receives the two-dimensional image; and a warp component that maps output pixel offset values in floating point format to input pixel coordinates and linearizes the output pixel offset values via converting the output pixel offset values for each pixel into an integer grid value and integer offset values for respective pixel(s), the warp component determines a floating point remainder for each of an x-offset value and a y-offset value for a given pixel, converts each floating point remainder to an integer remainder value by multiplying the floating point remainder by the width of a sub-pixel grid and truncates the product to obtain an x-offset integer value and a y-offset integer value and determines the integer grid value from the integer remainder values; wherein the integer offset value is utilized to determine a location of a pixel and the integer grid value is utilized to identify a suitable warping algorithm for warping the two-dimensional image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 24)
-
-
11. A method for rapidly warping a two-dimensional image, comprising:
-
generating a table of warp coordinates that maps output pixel location in floating point format to input pixel location; converting floating point output pixel offset values on a per-pixel basis into integer offset values and an integer grid value that represents a region of a sub-pixel grid in which a pixel'"'"'s center is positioned; determining a floating point remainder for each of an x-offset value and a y-offset value for a given pixel; converting each floating point remainder to an integer remainder value by multiplying the floating point remainder by the width of the sub-pixel grid and truncating the product to obtain an x-offset integer value and a y-offset integer value; determining the integer grid value from the integer remainder values; encoding a structure within a one-dimensional array of structures with the integer offset values and the integer grid value; and employing the integer offset values during warping to identify an output pixel, and the integer grid value to identify surrounding pixels from which information will be interpolated. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for high-speed digital image warping, comprising:
-
generating a warp table that maps output pixel locations in floating point format to input pixel locations; pre-converting floating-point pixel location information to integer pixel information by determining a floating point remainder for each of an x-offset value and a y-offset value for a given pixel, converting each floating point remainder to an integer remainder value by multiplying the floating point remainder by the width of the sub-pixel grid and truncating the product to obtain an x-offset integer value and a y-offset integer value, and determining an integer grid value from the integer remainder value; generating an away of structures comprising integer information for each pixel in an image; and warping the image based at least in part on integer information in the structures. - View Dependent Claims (19, 20, 21)
-
-
22. A system that facilitates rapid warping of a digital image, comprising:
-
means for converting output pixel information from a two-dimensional floating-point format to a one-dimensional integer format; means for determining a floating point remainder for each of an x-offset value and a y-offset value for a each pixel; means for converting each floating point remainder to an integer remainder value by multiplying the floating point remainder by the width of the sub-pixel grid and truncating the product to obtain an x-offset integer value and a y-offset integer value; means for determining an integer grid value for each pixel from the integer remainder values for each pixel; means for generating an array of structures, wherein each structure comprises the integer grid value and an integer offset values for a single pixel; and means for interpolating pixel information from neighboring pixels to warp an image based at least in part on the integer grid values. - View Dependent Claims (23)
-
Specification