A method of encoding image data comprising: receiving, at an input, a first image and a second image (202, 206), 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 (202, 206), 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.