1. A method of compressing an array of data entries in the form of digital electrical signals, the method comprising the steps of: (a) providing a reference data array as a first approximation to the original data array to be compressed; (b) dividing the original data array into a plurality of blocks of one or more sizes; (c) for each data block determining according to a predetermined encoding process a compressed encoding of the data contained therein, where the compressed encoding can be uncompressed to provide an approximation to the data block; (d) selecting from the plurality of compressed encodings that one of the compressed encodings which, when uncompressed and added to the reference data array, gives the biggest improvement in the reference data array relative to the original data array; (e) adding the selected compressed encoding in uncompressed form to the reference data array to thereby provide a second approximation to the original data array, and storing the selected compressed encoding in compressed form to establish a compressed representation of the original data array; and (f) recursively repeating steps (d) and (e) for the remaining compressed encodings successively to select further compressed encodings to provide reference data arrays which are successive approximations to the original data array and to add to the compressed representations of the original data array, until either a desired quality level of the reference data array is achieved or a maximum data size of the compressed representation is achieved.