A method of encoding image data comprising: receiving, at an input, a first image and a second image , wherein the second image is twice the width and height of the first image, wherein the first and second images are textures whose pixels are referred to as texels; generating, in a prediction generator, a prediction image from the first image using adaptive interpolation ; generating, in a difference texture generator, a difference image from the prediction image and the second image ; encoding, in an encoder unit, the difference image , wherein encoding the difference image comprises subdividing a block of the difference image into a plurality of sub-blocks, each sub-block comprising 4x4 texels, and using a block-based vector quantization scheme to encode each sub-block by splitting the sub-block in half, each half comprising 4x2 texels, and indexing a vector from a vector lookup table for each half, wherein an encoded block of data from the difference image either comprises a prediction mode bit which identifies the vector lookup table from which the vector is selected or does not comprise a prediction mode bit in which case a default value of a prediction mode bit is used and a default vector lookup table is used, wherein the prediction mode bit also identifies the adaptive interpolation used to generate the prediction image, wherein the encoded sub-block further comprises additional bits, the additional bits comprising a flip bit for each vector and rotation bits, wherein a flip bit determines whether a vector is flipped along its long axis and rotation bits determine whether the sub-block is rotated into one of four orientations; encoding the first image ; and interleaving blocks of data from the encoded version of the first image and blocks of data from the encoded difference image to generate compressed image data . receiving, at an input, a first image and a second image , wherein the second image is twice the width and height of the first image, wherein the first and second images are textures whose pixels are referred to as texels; generating, in a prediction generator, a prediction image from the first image using adaptive interpolation ; generating, in a difference texture generator, a difference image from the prediction image and the second image ; encoding, in an encoder unit, the difference image , wherein encoding the difference image comprises subdividing a block of the difference image into a plurality of sub-blocks, each sub-block comprising 4x4 texels, and using a block-based vector quantization scheme to encode each sub-block by splitting the sub-block in half, each half comprising 4x2 texels, and indexing a vector from a vector lookup table for each half, wherein an encoded block of data from the difference image either comprises a prediction mode bit which identifies the vector lookup table from which the vector is selected or does not comprise a prediction mode bit in which case a default value of a prediction mode bit is used and a default vector lookup table is used, wherein the prediction mode bit also identifies the adaptive interpolation used to generate the prediction image, wherein the encoded sub-block further comprises additional bits, the additional bits comprising a flip bit for each vector and rotation bits, wherein a flip bit determines whether a vector is flipped along its long axis and rotation bits determine whether the sub-block is rotated into one of four orientations; encoding the first image ; and interleaving blocks of data from the encoded version of the first image and blocks of data from the encoded difference image to generate compressed image data . <EOS>