IP Library Granted Patent US 7,277,101
Granted Patent B2
US 7,277,101 · App. 10/673,693 · Granted Oct 2, 2007

Method and system for scaling images

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,277,101
App. No.
10/673,693
Granted
Oct 2, 2007
Kind
B2
Abstract

A system of scaling is disclosed. A data structure is provided including a control word indicative of a number of input pixels associated with a scaling cycle, a number of output pixels associated with a scaling cycle, a number of available phases and a shift variable. Scaling is performed by incrementing a current phase to obtain a adjusted value, decrementing the adjusted value to obtain a second adjusted value, and determining an index value to access a coefficient by right-shifting the second adjusted value.

Claims (44)

1. A method comprising:

incrementing a current phase location within a scaling cycle by a first value to obtain a first adjusted value, the first value equal to a number of input pixels in the scaling cycle, wherein the scaling cycle represents a scaling operation that is repeated, such that each scaling cycle accesses a common set of filter phases to scale the number of input pixels to obtain a number of output pixels, where the number of input pixels in the scaling cycle is equal to an input resolution divided by a GCD and the number of output pixels in the scaling cycle is equal to an output resolution divided by the GCD, where the GCD is the greatest common divisor of the input resolution and output resolution;

decrementing, in response to the first adjusted value being greater than a second value, the first adjusted value by the second value one or more times to obtain a second adjusted value less than the second value, the second value equal to the number of output pixels in the scaling;

determining an index value to access a coefficient set of a filter phase of the common set of filter phases by right shifting a binary representation of the second adjusted value a predetermined amount;

accessing, at a data processor, the coefficient set based on the index value;

filtering based upon the coefficient set to determine a scaled pixel value; and

outputting the scaled pixel value from the data processor.

2. The method of claim 1 further comprising:

in response to the index value being within a first range, accessing the coefficient set from a mirror location of the common set of filter phases; and

in response to the index value being within a second range, accessing the coefficient set from a direct location.

3. The method of claim 2 wherein determining the scaled pixel value further comprises reversing the coefficients in response to the coefficient set being accessed from the mirror location.

4. The method of claim 1 further comprising:

receiving the predetermined amount from a control word.

5. The method of claim 1 further comprising:

determining the predetermined amount from a control word.

6. A video scaler comprising:

a means for incrementing a current phase location within a scaling cycle by a first value to obtain a first adjusted value, the first value equal to a number of input pixels in the scaling cycle, wherein the scaling cycle represents a scaling operation that is repeated, such that each scaling cycle accesses a common set of filter phases to scale the number of input pixels to obtain a number of output pixels, where the number of input pixels in the scaling cycle is equal to an input resolution divided by a GCD and the number of output pixels in the scaling cycle is equal to an output resolution divided by the GCD, where the GCD is the greatest common divisor of the input resolution and output resolution;

a means for decrementing, in response to the first adjusted value being greater than a second value, the first adjusted value by the second value one or more times, to obtain a second adjusted value less than the second value, the second value equal to the number of output pixels in the scaling cycle;

a means for determining an index value to access a coefficient set of a filter phase of the common set of filter phases by right shifting a binary representation of the second adjusted value a predetermined amount;

a means for accessing the coefficient set based on the index value;

a means for filtering based upon the coefficient set to determine a scaled pixel value; and

a means for outputting the scaled pixel value.

7. A system comprising:

a data processor for executing instructions; and

a memory for storing the instructions, the instructions to:

increment a current phase location within a scaling cycle by a first value to obtain a first adjusted value, the first value equal to a number of input pixels in the scaling cycle, wherein the scaling cycle represents a scaling operation that is repeated, such that each scaling cycle accesses a common set of filter phases to scale the number of input pixels to obtain a number of output pixels, where the number of input pixels in the scaling cycle is equal to an input resolution divided by a GCD and the number of output pixels in the scaling cycle is equal to an output resolution divided by the GCD, where the GCD is the greatest common divisor of the input resolution and output resolution;

decrement, in response to the first adjusted value being greater than a second value, the first adjusted value by the second value one or more times to obtain a second adjusted value less than the second value, the second value equal to the number of output pixels in the scaling cycle;

determine an index value to access a coefficient set of a filter phase of the common set of filter phases by right shifting a binary representation of the second adjusted value a predetermined amount;

filter based upon the coefficient set to determine a scaled pixel value; and

output the scaled pixel value.

8. A computer readable storage medium encoded with computer executable instructions causing a computer to perform the operations that:

increment a current phase location within a scaling cycle by a first value to obtain a first adjusted value, the first value equal to a number of input pixels in the scaling cycle, wherein the scaling cycle represents a scaling operation that is repeated, such that each scaling cycle accesses a common set of filter phases to scale the number of input pixels to obtain a number of output pixels, where the number of input pixels in the scaling cycle is equal to an input resolution divided by a GCD and the number of output pixels in the scaling cycle is equal to an output resolution divided by the GCD, where the GCD is the greatest common divisor of the input resolution and output resolution;

decrement, in response to the first adjusted value being greater than a second value, the first adjusted value by the second value one or more times to obtain a second adjusted value less than the second value, the second value equal to the number of output pixels in the scaling cycle;

determine an index value to access a coefficient set of a filter phase of the common set of filter phases by right shifting a binary representation of the second adjusted value a predetermined amount;

filter based upon the coefficient set to determine a scaled pixel value; and

output the scaled pixel value.

9. A method comprising:

storing X sets of coefficients representing 2*(X−1)+1 available filter phases, where X is a positive integer; and

determining, based on a number of output pixels per scaling cycle and the 2*(X−1)+1 available filter phases, a set of N filter phases used during a scaling cycle, where N is a positive integer, and the scaling cycle represents a scaling operation that is repeated, such that each scaling cycle accesses the set of N filter phases to scale a number of input pixels to obtain a number of output pixels, where the number of input pixels in the scaling cycle is equal to an input resolution divided by a GCD, the number of output pixels in the scaling cycle is equal to an output resolution divided by the GCD, where the GCD is the greatest common divisor of the input resolution and output resolution, and N is less than 2*(X−1)+1;

scaling each input pixel of the number of input pixels based on the set of N filter phases to obtain each output pixel of the number of output pixels; and

outputting each output pixel of the number of output pixels from a data processor.

10. The method of claim 9 wherein the number N is equal to L>>S, where L is the output resolution divided by the GCD, and S is an integer indicating the number of times L needs to be right-shifted (>>)to have a value less than 2*(X−1)+1.

11. The method of claim 9 , wherein scaling the number of input pixels further comprises obtaining a first output pixel and a second output pixel of the number of output pixels based upon a first set of coefficients of the X sets of coefficients that represents a first filter phase and a second filter phase.

12. The method of claim 11 , wherein the first output pixel is obtained by accessing the set of coefficients in a first order, and the second output pixel is obtained by accessing the set of coefficients in a second order that is a reverse of the first order.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Aug 18, 2017
From: COMERICA BANK
To: VIXS SYSTEMS, INC.
Reel/Frame 043601/0817 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 017206 FRAME: 0666. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 6, 2016
From: AGILENT TECHNOLOGIES, INC.
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 038632/0662 →
SECURITY AGREEMENT Recorded Feb 11, 2009
From: VIXS SYSTEMS INC.
To: COMERICA BANK
Reel/Frame 022240/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2003
From: ZENG, STEVE ZHIHUA
To: VIXS SYSTEMS INC.
Reel/Frame 014572/0756 →