IP Library Granted Patent US 7,692,670
Granted Patent B2
US 7,692,670 · App. 11/141,103 · Granted Apr 6, 2010

Methods and systems for scaling and rotating an image in a single operation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,692,670
App. No.
11/141,103
Granted
Apr 6, 2010
Kind
B2
Abstract

A method of scaling and rotating an image includes generating a scaled and rotated pixel grid from a transformation operation applied to an input pixel grid. The input pixel grid comprises a plurality of pixels representing an original image, and the transformation may implement the simultaneous scaling and rotation of the input pixel grid. The respective values of a plurality of output pixels in the scaled and rotated pixel grid are then determined by interpolation.

Claims (227)

1. A method of scaling and rotating an image, comprising:

identifying an input pixel grid for the image;

determining a center point of the input pixel grid,

determining a first output point for an output pixel grid for the image, wherein determining the first output point is based at least in part on scaling and rotating the input pixel grid simultaneously by a transformation operation, wherein determining the first output point comprises determining the first output point relative to the center point of the input pixel grid;

determining a plurality of remaining output points for the output pixel grid based at least in part on the determined first output point, wherein determining each remaining output point is based upon a position of an already-determined, neighboring output point, wherein determining remaining output points (S x , S y ) on an output grid line uses the equations

S

X

=

S

X

-

1

+

Δcos

(

θ

)

ScaleFactor

and

S

Y

=

S

Y

-

1

-

Δsin

(

θ

)

Scalefactor

and determining remaining output point (S x , S y ) at a beginning of a new grid line uses the equations

S

X

=

S

PrevLine

+

Δsin

(

θ

)

ScaleFactor

and

S

Y

=

S

PrevLine

+

Δcos

(

θ

)

Scalefactor

where Δ is a distance between input grid points, θ is a rotation angle for the output image, ScaleFactor is an amount of scaling of the input image, and S PrevLine is an output grid point at a beginning of an adjacent line; and

determining a plurality of output pixel values for an output image based at least in part on the determined output points, wherein determining the first output point, the remaining output points and the plurality of output pixel values are performed by a processor.

2. The method of claim 1 , wherein the transformation operation comprises a calculation based, at least in part, on both a scaling factor and an angle of rotation, and wherein the scaled and rotated version of the image is scaled by an amount identified by the scaling factor and rotated by an amount identified by the angle of rotation.

3. The method of claim 2 , wherein the transformation operation is an upscale or a downscale.

4. The method of claim 3 wherein the transformation operation comprises a rotation.

5. The method of claim 1 , wherein determining a plurality of output pixel values comprises determining a plurality of output pixel values utilizing an interpolation operation.

6. The method of claim 5 , wherein the interpolation operation comprises bilinear or bicubic interpolation.

7. The method of claim 5 , wherein the interpolation operation is implemented by an Application Specific Integrated Circuit (ASIC).

8. The method of claim 1 , further comprising storing at least one table, and wherein the at least one table is used, in part, to generate the scaled and rotated output image.

9. The method of claim 1 , wherein determining a plurality of remaining output points for the output pixel grid comprises:

(a) determining one or more output points that are located in a same line of the output pixel grid as the first output Point;

(b) determining an output point located in an adjacent line of the output pixel grid; and

(c) repeating steps (a) or (b) until the output pixel grid is formed.

10. A method of scaling and rotating a pixel grid, comprising:

generating a first output point for an output pixel grid from an input pixel grid by at least one calculation implementing the simultaneous scaling and rotation of the input pixel grid and based on a center point of the input pixel grid;

completing the output pixel grid by generating one or more remaining output points based at least in part on the generated first output point, wherein generating each remaining output point is based upon a position of an already generated, neighboring output point, wherein generating remaining output points (S x , S y ) on an output grid line uses the equations

S

X

=

S

X

-

1

+

Δcos

(

θ

)

ScaleFactor

and

S

Y

=

S

Y

-

1

-

Δsin

(

θ

)

Scalefactor

and generating remaining output point (S x , S y ) at a beginning of a new grid line uses the equations

S

X

=

S

PrevLine

+

Δsin

(

θ

)

ScaleFactor

and

S

Y

=

S

PrevLine

+

Δcos

(

θ

)

Scalefactor

where Δ is a distance between input grid points, θ is a rotation angle for the output image, ScaleFactor is an amount of scaling of the input image, and S PrevLine is an output grid point at a beginning of an adjacent line; and

determining the values of a plurality of output pixels of the output pixel grid, wherein generating the one or more remaining output points and determining the values of the plurality of output pixels of the output pixel grid are performed in an integrated circuit.

11. The method of claim 10 , wherein determining the values of the plurality of output pixels comprises determining the values of the plurality of output pixels using interpolation.

12. The method of claim 11 , wherein interpolating comprises bilinear or bicubic interpolation.

13. The method of claim 10 , wherein scaling the input pixel grid comprises scaling the input pixel grid based at least in part on a scaling factor.

14. The method of claim 10 , wherein scaling the input pixel grid comprises upscaling the input pixel grid or downscaling the input pixel grid.

15. The method of claim 10 , wherein rotating the input pixel grid comprises rotating the input pixel grid based at least in part on an angle of rotation.

16. The method of claim 9 , further comprising storing at least one table, and wherein the at least one table is used, in part, to generate the output pixel grid.

17. A method for image rotation and scaling, comprising:

generating a first output point of a rotated and scaled output pixel grid from an original image pixel grid by at least one calculation implementing the simultaneous scaling and rotation of the input pixel grid and based on a center of the input pixel grid;

generating one or more remaining output points of the rotated and scaled output pixel grid based at least in part on the generated first output point and based upon a position of an already generated, neighboring output point, wherein generating remaining output points (S x , S y ) on an output grid line uses the equations

S

X

=

S

X

-

1

+

Δcos

(

θ

)

ScaleFactor

and

S

Y

=

S

Y

-

1

-

Δsin

(

θ

)

Scalefactor

and generating remaining output point (S x , S y ) at a beginning of a new grid line uses the equations

S

X

=

S

PrevLine

+

Δsin

(

θ

)

ScaleFactor

and

S

Y

=

S

PrevLine

+

Δcos

(

θ

)

Scalefactor

where Δ is a distance between input grid points, θ is a rotation angle for the output image, ScaleFactor is an amount of scaling of the input image, and S PrevLine is an output grid point at a beginning of an adjacent line; and

determining the value of at least one output pixel of the output pixel grid based at least in part on the output pixel grid and the original image pixel grid, wherein generating the one or more remaining output points and determining the value of at least one output pixel are executed by a processor.

18. The method of claim 17 , further comprising establishing a distance between one or more grid points of the original image pixel grid.

19. The method of claim 18 , further comprising using the distance to generate the rotated and scaled output pixel grid.

20. The method of claim 18 , further comprising using the distance to interpolate to determine the value of the at least one output pixel.

21. The method of claim 18 , further comprising storing at least one table, and wherein the at least one table is used, in part, to generate the rotated and scaled output pixel grid.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jan 18, 2024
From: CHINA CITIC BANK CORPORATION LIMITED, GUANGZHOU BRANCH, AS COLLATERAL AGENT
To: LEXMARK INTERNATIONAL, INC.
Reel/Frame 066345/0026 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT U.S. PATENT NUMBER PREVIOUSLY RECORDED AT REEL: 046989 FRAME: 0396. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Oct 24, 2018
From: LEXMARK INTERNATIONAL, INC.
To: CHINA CITIC BANK CORPORATION LIMITED, GUANGZHOU BRANCH, AS COLLATERAL AGENT
Reel/Frame 047760/0795 →
PATENT SECURITY AGREEMENT Recorded Aug 30, 2018
From: LEXMARK INTERNATIONAL, INC.
To: CHINA CITIC BANK CORPORATION LIMITED, GUANGZHOU BRANCH, AS COLLATERAL AGENT
Reel/Frame 046989/0396 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2005
From: CASE, CHRISTOPHER W.
To: LEXMARK INTERNATIONAL, INC.
Reel/Frame 016639/0542 →