A method of compressing a plurality of pixels in a block, each pixel in the block having an original color value and a luminance value, the method comprising: generating representative color values for each of a plurality of luminance levels to produce at least a high color value and a low color value, the pixels having been grouped according to their respective luminance values; grouping each of the original color values for the pixels in the block amongst the representative color values and, in response, selecting a grouping of color values such that the selected representative color values correspond with a minimum color error with respect to the color values in the block; in response, associating each of the pixels in the block with one of the plurality of generated representative color values, and producing a block color offset value and a quantization value wherein the block color offset value is generated based on the high color value and low color value, and the quantization value is generated based on the high color value and the color offset value (78;76); generating a pixel color error value for each of the pixels in the block, based on the original color values corresponding with each pixel in the block, the block color offset value and the quantization value, to produce a mode zero color error value; generating at least three representative color values each corresponding to each of at least three luminance levels, to produce a mode one color error value, and in response to generating the at least three representative color values, associating each of the pixels in the block with one of the at least three generated representative color values to produce corresponding bitmap values; and generating block color mode zero data when the mode zero color error value is less than the mode one color error value, otherwise generating block color mode one data wherein the block color mode zero data and the block color mode one data indicate different encoding modes. generating representative color values for each of a plurality of luminance levels to produce at least a high color value and a low color value, the pixels having been grouped according to their respective luminance values; grouping each of the original color values for the pixels in the block amongst the representative color values and, in response, selecting a grouping of color values such that the selected representative color values correspond with a minimum color error with respect to the color values in the block; in response, associating each of the pixels in the block with one of the plurality of generated representative color values, and producing a block color offset value and a quantization value wherein the block color offset value is generated based on the high color value and low color value, and the quantization value is generated based on the high color value and the color offset value (78;76); generating a pixel color error value for each of the pixels in the block, based on the original color values corresponding with each pixel in the block, the block color offset value and the quantization value, to produce a mode zero color error value; generating at least three representative color values each corresponding to each of at least three luminance levels, to produce a mode one color error value, and in response to generating the at least three representative color values, associating each of the pixels in the block with one of the at least three generated representative color values to produce corresponding bitmap values; and generating block color mode zero data when the mode zero color error value is less than the mode one color error value, otherwise generating block color mode one data wherein the block color mode zero data and the block color mode one data indicate different encoding modes.