Method and apparatus for changing or mapping video or digital images from one image density to another
First Claim
1. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
- a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and
a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M,wherein the convolution interpolator includes;
a plurality of delay elements for sequentially storing four pixels in the M number of pixels in the stored image;
a plurality of multiplier circuits, each multiplier circuit being coupled to one delay element;
a plurality of memory locations for storing a plurality of coefficients;
a multiplexing circuit coupled between the plurality of multiplier circuits and to the plurality of memory locations, wherein the multiplexing circuit sequentially couples each of the plurality of memory locations to one of the plurality of multiplier circuits, and wherein each of the plurality of multiplier circuits outputs a product signal; and
an adder circuit coupled to the plurality of multiplier circuits and adding the product signals therefrom.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for resizing digital or stored images initially retrieves a one-dimensional sample of the image, such as a line of pixels. A final image size D is determined so that the absolute value of the original sample size M-2N *D is a minimum, and where N is an integer greater than or equal to 0. The discrete series of pixels in the line are then converted to a continuous function under a cubic convolution interpolation technique. From the continuous function, intermediate pixel values are determined. Pyramid filtering is employed to filter the intermediate pixel values to a final series of pixel values D. The routine is performed along the opposite dimension so as to alter the size of a two-dimensional stored image.
-
Citations
19 Claims
-
1. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
-
a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M, wherein the convolution interpolator includes; a plurality of delay elements for sequentially storing four pixels in the M number of pixels in the stored image; a plurality of multiplier circuits, each multiplier circuit being coupled to one delay element; a plurality of memory locations for storing a plurality of coefficients; a multiplexing circuit coupled between the plurality of multiplier circuits and to the plurality of memory locations, wherein the multiplexing circuit sequentially couples each of the plurality of memory locations to one of the plurality of multiplier circuits, and wherein each of the plurality of multiplier circuits outputs a product signal; and an adder circuit coupled to the plurality of multiplier circuits and adding the product signals therefrom.
-
-
2. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
-
a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M, wherein the pyramid filter includes; a plurality of delay elements for storing a set of pixels selected from the intermediate pixel values, each set being separated by 2N pixels of the intermediate pixel values, wherein N is an integer; a plurality of multiplier circuits, each multiplier circuit being coupled to one delay element; a plurality of memory locations for storing a plurality of coefficients, wherein each memory location is coupled to one of the multiplier circuits and wherein each of the multiplier circuits outputs a product signal; and an adder circuit coupled to the multiplier circuits and adding the product signals output therefrom.
-
-
3. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
-
a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M, wherein the convolution interpolator circuitry is configured to interpolate the intermediate pixel values based on an equation ##EQU3## wherein wp is a pixel in the stored image and k(j-p) is defmed by;
k(z)=1-(u+3)|z*z|+(u+2)|z*z*z|, if 0<
|z|<
1;k(z)=-4+8u|z|-5u|z*z|+u|z*z*z.vertline., if 1<
|z|<
2;k(z)=0, otherwise, and wherein u is a real number.
-
-
4. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
-
a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M, wherein the pyramid filter is configured to filter the intermediate pixel values based on an equation bj=c1*a(2N j)+c2*a(2N j+1)+. . . cv*a(2N j+(v-1)) wherein a(2N j) . . . a(2N j+(v-1)) are intermediate pixel values, wherein j=0, . . . , 2N *D, wherein N and v are integers, and wherein c1 through cv are preselected coefficients that satisfy predetermined rules.
-
-
5. An apparatus for resizing a stored image, the stored image being comprised of a plurality of pixels, the apparatus comprising:
-
a convolution interpolator coupled to receive the stored image and produce a set of intermediate pixel values based on M number of pixels in the stored image; and
a pyramid filter, coupled to the cubic convolution interpolator, for altering the intermediate pixel values to D number of pixels, wherein D is an integer not equal to M,wherein the cubic convolution interpolator is configured to produce 2N *D intermediate pixel values based on the M number of pixels in the stored image, wherein N and D are whole numbers selected so that an absolute value of M-2N *D is a minimum, and wherein the pyramid filter is configured to reduce the 2N *D intermediate pixel values to D number of pixels and analyze a window of L number of pixels in the 2N *D intermediate pixel values, and wherein the window jumps 2N pixels along the 2N *D intermediate pixel values.
-
-
6. A method of reducing the size of a stored image comprising the steps of:
-
storing an image, the image being comprised of a plurality of pixels, including M number of pixels; determining a final image size D wherein an absolute value of M-2N *D is a minimum and N and D are whole numbers; cubic convolution interpolating the M number of pixels in the stored image; producing 2N *D intermediate pixel values based on the M number of pixels in the stored image; and reducing the 2N *D intermediate pixel values to D number of pixels based on pyramid filtering, wherein the pyramid filtering analyzes a window of L number of pixels in the 2N *D intermediate pixel values and jumps the window 2N pixels along the 2N *D intermediate pixel values. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A method resizing a stored image, the stored image being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filtering the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, wherein convolution interpolating includes; storing a plurality of sequential pixels in the M number of pixels in the stored image; storing a plurality of coefficients; sequentially multiplying each of the plurality of memory locations to one of the plurality of stored pixels to produce products; and adding the products.
-
-
15. A method resizing a stored image, the stored imaie being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filtering the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, wherein pyramid filtering includes; storing a set of pixels selected from the intermediate pixel values, each set being separated by 2N pixels of the intermediate pixel values, wherein N is an integer; storing a plurality of coefficients; multiplying each coefficient with one of the stored pixel values to produce products; and adding the products.
-
-
16. A method resizing a stored image, the stored image being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filtering the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, wherein convolution interpolating includes cubic convolution interpolating the intermediate pixel values based on an equation ##EQU5## wherein wp is a pixel in the stored image and k(j-p) is defined by;
k(z)=1-(u+3)|z*z|+(u+2)|z*z*z|, if 0<
|z|<
1;k(z)=-4+8u|z|-5u|z*z|+u|z*z*z.vertline., if 1<
|z|<
2;k(z)=0, otherwise, and wherein u is a real number.
-
-
17. A method resizing a stored image, the stored image being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filtering the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, p1 wherein reducing includes filtering the intermediate pixel values based on an equation bj=c1*a(2j)+c2*a(2j+1)+c3*a(2j+2)+c4*a(2j+3)+c5*a(2j+4), wherein a(2j) through a(2j+4) are intermediate pixel values, wherein j=1, . . . , 2N *D , wherein c1 through c5 are predetermined coefficients, and wherein c1+c2+c3+c4+c5=1, c1=c5, c2=c4, and c3+c1+c5=c2+c4.
-
-
18. A method resizing a stored image, the stored image being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filtering the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, wherein pyramid filtering includes altering the intermediate pixel values based on an equation bj=c1*a(2N j)+c2*a(2N j+1)+. . . cv*a (2N j+(v-1)) wherein a(2N j) . . . a(2N j+(v-1)) are intermediate pixel values, wherein j=0, . . . , 2N *D, wherein N and v are integers, and wherein c1 through cv are preselected coefficients that satisfy predetermined rules.
-
-
19. A method resizing a stored image, the stored image being comprised of a plurality of pixels, the method comprising:
-
convolution interpolating the stored image to produce a set of intermediate pixel values based on M number of pixels in the stored image; and pyramid filteringz the intermediate pixel values to produce D number of pixels, wherein D is an integer not equal to M, wherein convolution interpolating includes producing 2N *D intermediate pixel values based on M number of pixels, in the stored image, wherein N and D are whole numbers selected so that an absolute value of M-2N *D is a minimum, and wherein pyramid filtering includes analyzing a window of L number of pixels in the 2N *D intermediate pixel values, wherein the window jumps 2N pixels along the 2N *D intermediate pixel values, and reducing the 2N *D intermediate pixel values to D number of pixels.
-
Specification