1. A method for progressively encoding a digitized color image with M distinct colors allocated to a set of pixels using a data processing system, the digitized color image being provided by assigning each of the M distinct colors to at least one pixel in the set of pixels, the method comprising: (a) initializing a tree structure by providing at least one starting leaf node comprising a subset of pixels from the set of pixels; (b) determining at least one representative color for each starting leaf node; and (c) growing the tree structure by (i) selecting a leaf node n to become a non-leaf node n linked to two new leaf nodes based on an associated achievable cost, wherein the associated achievable cost is determined by determining an associated change in distortion resulting from turning the leaf node into the non-leaf node linked to the two new leaf nodes; determining an associated increase in entropy rate resulting from turning the leaf node into the non-leaf node linked to the two new leaf nodes; and, determining the associated achievable cost based on the associated change in distortion and the associated increase in entropy rate; (ii) creating the two new leaf nodes by allocating each pixel in leaf node n to one of the two new leaf nodes; (iii) determining a representative color for each of the two new leaf nodes, wherein determining a representative color for a leaf node comprises determining all of the colors of all pixels in the leaf node; for each determined color, determining a number of pixels in the leaf node having that color in the digitized color image; and, determining a centroid of all of the determined colors associated with the leaf node based on the number of pixels in the leaf node having each of the determined colors associated with the leaf node; and, (iv) encoding the index information associated with the leaf node n, the representative colors of the two new leaf nodes, and color updating information regarding each pixel in leaf node n.