Photo
enlargement of digital images is accomplished through a process
called interpolation: the computation of pixel color values between
the pixels that already exist. A pixel is the smallest element of an
image or picture on a computer screen - usually it is a single-colored
dot. Interpolation processes for photo enlargement take pixel color
information in as data to calculate the information that the pixels
between existing pixels would have if they existed - such as would
be the case if the image were much larger or "stretched." All
software programs that can enlarge images use the following pixel interpolation
methods to enlarge pictures:
- Nearest neighbor interpolation
- Bilinear interpolation
- Bicubic interpolation
These basic interpolation methods have existed
for years. Today, due to the advent of sophisticated object-oriented
computer programming languages like C++, new interpolation technologies
that go beyond the basic methods are beginning to emerge. All of
these methods are described below.
The image to the right was resampled to show the following photo
enlargement method differences. The marked area was enlarged
300% in the examples below.
|
 |
Nearest Neighbor Photo Enlargement Method
|
|
| The value of the new pixel is made the
same as that of the closest existing pixel. When enlarging an image
the pixels or dots of color are duplicated to create new pixels increasing
as the image grows. This is the least accurate method of enlarging
an image and obvious when you look at an image that has been enlarged
using this method. The Nearest Neighbor image enlargement method
creates obvious pixilation - edges that break up curves into steps
or jagged edges, also called "jaggies." Nearest Neighbor photo enlargement
yields the least visually desirable result. |
Bilinear Photo Enlargement Method
|
|
| Bilinear interpolation is the next step
up toward a more visually satisfying photo enhancement result. Bilinear
interpolation reduces pixilation by filtering the surrounding pixels
to smooth out jaggies giving the image edges a smoother look. Color
values from only the four surrounding pixels are sampled and filtered
to provide the color value for the new pixel added during enlargement.
Contrast between the jagged edges produced by the nearest neighbor
enlargement method is reduced because of averaging neighboring values
together. |
Bicubic Photo Enlargement Method
|
|
| Bicubic interpolation goes a step further
than the previous two methods, analyzing the 16 pixels around each
individual pixel and using that information for interpolation of
the new pixel values. The weighted average of the closest 16 pixels
(a 4x4 matrix) is calculated based on distance. This is the method
most commonly used by popular photo software packages, and by printer
driver software and even many digital cameras for enlarging images.
It produces smoother results than the above methods but enlargements
above 120% to 150%, quickly degrade in quality and visual clarity. |
This is the limit of the ability of all commercially available photo software,
even software costing several hundred dollars. There are many software
packages that have a lot of different functionality for manipulating images
in various ways and these functions or software capabilities continuously
improve (get better) over time. But the algorithms (computer program code "recipes")
that drive interpolation methods used for image enlargement surprisingly
have not been improved upon within their released versions.
For years the above three basic enlargement methods were the only ones
available. However, Kneson Software is
one company that has taken digital image enlargement technology far beyond
the methods discussed above with its Imagener product
line. Kneson Software has harnessed the power of the programming language
C++ along with ingenious algorithm developments to create the next generation
of image interpolation technologies.
|