Abstract: A first image is received and enlarged to create a second image. The second image includes a plurality of unknown pixel values, wherein each unknown pixel value has a plurality of neighboring known pixel values. The unknown pixel values are interpolated from the known pixel values in view of pixel interpolation weights. Interpolation of the unknown pixel values involves determining the needed interpolation weights by: classifying an area of the image into one of a plurality of types based on known pixel values, and obtaining at least one certain interpolation weight based on the classification type of the image area for use in interpolating at least one unknown pixel value.