Apparatus, method, and product for downscaling an image
AssigneeMicron Technology, Inc.
InventorBurton Wright
Life of this patent
Estimating the term…
Abstract
An average filter or filters is used in line with the output of an interpolation filter to downscale an image. The interpolation filter upscales a source image or bitmap of pixels into an intermediate form and the average filter or filters downscales the intermediate form to a destination image or bitmap of pixels. This configuration incorporates a small amount of logic with a relatively low incremental cost, enabling high quality downscaling of text and computer graphics content. The invention achieves quality comparable to a filter/scalar combination with more taps or a separate decimation pass.
Claims58
A device for scaling a source image to a destination image, comprising:
- an interpolation filter, wherein the interpolation filter is to upscale the source image to an intermediate image, wherein the intermediate image has a size equal to a size of the destination image adjusted by a scale factor;
- and
- a first average filter to downscale the intermediate image to the destination image, wherein the first average filter further is to average horizontally the intermediate image on a two-by-two pixel basis.
A device for scaling a source image to a destination image, comprising:
- an interpolation filter, wherein the interpolation filter is to upscale the source image to an intermediate image, wherein the intermediate image has a size equal to a size of the destination image adjusted by a scale factor;
- and
- a first average filter to downscale the intermediate image to the destination image, wherein the first average filter further comprises a plurality of cascaded average filters, wherein the number of the plurality of cascaded average filters is based on the scale factor.
A device for scaling a source image to a destination image, comprising:
- an interpolation filter, wherein the interpolation filter is to upscale the source image to an intermediate image, wherein the intermediate image has a size equal to a size of the destination image adjusted by a scale factor;
- a first average filter to downscale the intermediate image to the destination image;
- and
- a second average filter to average vertically the intermediate image on a two-by-two pixel basis.
A method of downscaling a source plurality of pixels to a destination plurality of pixels, comprising:
- upscaling the source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of the destination plurality of pixels adjusted by a scale factor;
- downscaling the intermediate plurality of pixels to the destination plurality of pixels;
- and
- wherein the scale factor is a power of two and the size of the intermediate plurality of pixels is equal to a destination height multiplied by a destination width multiplied by the scale factor.
A graphics card, comprising:
- interpolation logic to upscale a source image to an intermediate image, wherein the intermediate image has a size equal to a size of a destination image adjusted by a scale factor;
- average logic to downscale the intermediate image to the destination image;
- a buffer comprising storage with a size of half of the destination image size plus half of a length of a preceding line in the intermediate image;
- and
- a vertical average filter communicatively coupled to the buffer, wherein the vertical average filter is to average vertically the intermediate image on a two-by-two pixel basis.
A display device, comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor;
- a first average filter communicatively coupled to an output of the interpolation filter, wherein the first average filter is to downscale the intermediate plurality of pixels to the destination plurality of pixels;
- and
- wherein the first average filter is to average the intermediate plurality of pixels by adding color components of adjacent pixels in a same row and performing a right shift operation on the result, for every two pixels in the intermediate plurality of pixels.
A display device, comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor;
- and
- a first average filter communicatively coupled to an output of the interpolation filter,
- wherein the first average filter is to downscale the intermediate plurality of pixels to the destination plurality of pixels, wherein the average filter further averages horizontally the intermediate plurality of pixels on a two-by-two pixel basis.
A computer, comprising:
- a processor;
- and
- a storage device, comprising instructions, wherein the instructions when executed by the processor comprise:
- upscaling a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, wherein the scale factor is a power of two and the size of the intermediate plurality of pixels is equal to a destination height multiplied by a destination width multiplied by the scale factor;
- and
- downscaling the intermediate plurality of pixels to the destination plurality of pixels.
A computer, comprising:
- a storage device to store a source bitmap;
- and
- a display device comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, and
- a first average filter to downscale the intermediate plurality of pixels to the destination bitmap, wherein the first average filter is to average the intermediate plurality of pixels by adding color components of adjacent pixels in a same row and performing a right shift operation on the result, for every two pixels in the intermediate plurality of pixels.
A computer, comprising:
- a storage device to store a source bitmap;
- and
- a display device comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, and
- a first average filter to downscale the intermediate plurality of pixels to the destination bitmap, wherein the first average filter further averages horizontally the intermediate plurality of pixels on a two-by-two pixel basis.
A computer readable medium comprising a signal-bearing media bearing instructions, wherein the instructions when read and executed by a processor comprise:
- upscaling a source plurality of pixels to an intermediate plurality of pixels wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor;
- and
- downscaling, using an average filter, the intermediate plurality of pixels to the destination plurality of pixels, wherein the downscaling further averages the intermediate plurality of pixels on a two-by-two pixel basis.
A graphics card, comprising:
- downscaling logic to:
- perform bilinear interpolation on a plurality of samples from a source bitmap to produce an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of a destination bitmap adjusted by a scale factor, and
- downscale the intermediate bitmap to produce the destination bitmap by averaging every two adjacent values in a row of the intermediate bitmap.
An apparatus for downscaling, comprising:
- an interpolation filter to upscale a source bitmap to an intermediate bitmap;
- and
- a first average filter to horizontally downscale the intermediate bitmap to a destination bitmap, wherein the first average filter comprises:
- storage to store a pixel,
- shifter logic to shift color components of the intermediate bitmap, and
- adder logic to add the color components of the intermediate bitmap.
An apparatus for downscaling, comprising:
- an interpolation filter to upscale a source bitmap to an intermediate bitmap;
- a first average filter to horizontally downscale the intermediate bitmap to a destination bitmap, wherein the first average filter comprises:
- storage to store a pixel,
- shifter logic to shift color components of the intermediate bitmap, and
- adder logic to add the color components of the intermediate bitmap;
- a line buffer to store output from the first average filter;
- and
- a second average filter to vertically downscale the intermediate bitmap to the destination bitmap.
An apparatus for downscaling, comprising:
- an interpolation filter to upscale a source bitmap to an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of the destination bitmap adjusted by first and second scale factors;
- and
- a plurality of first cascaded average filters to horizontally downscale the intermediate bitmap to a destination bitmap, wherein the first scale factor determines the number of the plurality of first cascaded average filters.
An apparatus for downscaling, comprising:
- an interpolation filter to upscale a source bitmap to an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of the destination bitmap adjusted by first and second scale factors;
- a plurality of first cascaded average filters to horizontally downscale the intermediate bitmap to a destination bitmap, wherein the first scale factor determines the number of the plurality of first cascaded average filters;
- and
- wherein the plurality of first average filters each comprise:
- storage for storing a pixel from the intermediate bitmap,
- shifter logic to shift color components of the intermediate bitmap, and
- adder logic to add the color components of the intermediate bitmap.
An apparatus for downscaling, comprising:
- an interpolation filter to upscale a source bitmap to an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of the destination bitmap adjusted by first and second scale factors;
- a plurality of first cascaded average filters to horizontally downscale the intermediate bitmap to a destination bitmap, wherein the first scale factor determines the number of the plurality of first cascaded average filters;
- and
- a plurality of second cascaded filters to vertically downscale the intermediate bitmap to the destination bitmap, wherein the second scale factor determines the number of the plurality of second cascaded average filters.
A computer, comprising:
- a processor;
- memory coupled to the processor, wherein the memory comprises a graphics application that is to generate a source bitmap;
- and
- a display device coupled to the processor and the memory, wherein the display device comprises:
- a bilinear filter, wherein the bilinear filter is to upscale the source bitmap to an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of a destination bitmap adjusted by a scale factor,
- a plurality of cascaded horizontal average filters to average horizontally the intermediate image on a two-by-two pixel basis,
- a line buffer to store output from the plurality of cascaded horizontal average filters,
- a plurality of cascaded vertical average filters to average vertically the intermediate image on a two-by-two pixel basis, and
- a selector to deliver an output of the plurality of cascaded horizontal average filters to both the line buffer and the plurality of cascaded vertical average filters.
A device, comprising:
- an interpolation filter, wherein the interpolation filter is to upscale a source bitmap to an intermediate bitmap, wherein the intermediate bitmap has a size equal to a size of a destination bitmap adjusted by a scale factor;
- and
- an averaging filter to downscale the intermediate bitmap to the destination bitmap, wherein the averaging filter comprises:
- storage for storing a pixel from the intermediate bitmap,
- shifter logic to shift color components of the intermediate bitmap, and
- adder logic to add the color components of the intermediate bitmap.
A computer, comprising:
- a storage device to store a source bitmap;
- and
- a graphics card comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, and
- a first average filter to downscale the intermediate plurality of pixels to the destination bitmap, wherein the first average filter is to average the intermediate plurality of pixels by adding color components of adjacent pixels in a same row and performing a right shift operation on the result, for every two pixels in the intermediate plurality of pixels.
A computer, comprising:
- a storage device to store a source bitmap;
- and
- a graphics card comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, and
- a first average filter to downscale the intermediate plurality of pixels to the destination bitmap, wherein the first average logic further averages horizontally the intermediate plurality of pixels on a two-by-two pixel basis.
An electronics card operable to compute graphics, comprising:
- interpolation logic circuit to upscale a source image to an intermediate image that has a size equal to a size of a destination image adjusted by a scale factor;
- average logic circuit operably connected to downscale the intermediate image to the destination image;
- a buffer comprising storage with a size of half of the destination image size plus half of a length of a preceding line in the intermediate image;
- and
- a vertical average filter communicatively coupled to the buffer, wherein the vertical average filter is to average vertically the intermediate image on a two-by-two pixel basis.
A computing device, comprising:
- a storage device to store a source map;
- and
- a graphics card comprising:
- an interpolation filter to upscale a source plurality of pixels to an intermediate plurality of pixels, wherein the intermediate plurality of pixels has a size equal to a size of a destination plurality of pixels adjusted by a scale factor, and
- an average filter to downscale the intermediate plurality of pixels to the destination bitmap, wherein the average filter is to average the intermediate plurality of pixels by adding color components of adjacent pixels in a same row and performing a right shift operation on the result, for every two pixels in the intermediate plurality of pixels.
Dependencies are inferred from the claim text.