1. A method of compressing an input image, said method comprising: (a) extracting image gradient data from said input image, said image gradient data representing pixel differences along contours of said input image; (b) forming an edge based image from said image gradient data and a low resolution image derived from said input image; (c) computing a residual image representing a difference between said edge based image and said input image; and (d) compressing said input image by encoding said image gradient data, said low resolution image, and said residual image.