A recursive scheme is employed to compress image data, wherein areas of a pixel grid corresponding to the image data are divided into increasingly smaller triangles based on the level of detail contained within each triangle. Data is stored defining each of the triangles and actual/predicted component values corresponding to pixels within each triangle. For each triangle, a set of predicted component values are determined, based on actual component values at the vertices of the triangle or actual component values on or proximate to the edges of the triangle. The predicted component values for the pixels are compared with the corresponding actual component values to see if a similarity threshold is met. If met, the processing of a current triangle is complete and the processing of a next triangle begins. If not, the current triangle is divided, and the foregoing process is then repeated. Texture mapping may also be applied.