We describe a keystone correction system and method. A vertical scalar vertically scales an input image and stores the results to a line buffer. A horizontal scalar retrieves the stored results from the line buffer and horizontally scales the stored results using the relatively small number of lines from the line buffer. The system repeats the vertically scaling, storing, and horizontal scaling until it processes all input image lines.