A method of encoding an ordered series of quantized coefficients of a transformed block of image data, the quantized coefficients each having an amplitude from a finite set of amplitudes including the most likely-to-occur amplitude, comprising 0, and at least one other amplitude, the at least one other amplitude including a next most likely-to-occur amplitude to the most likely-to-occur amplitude, the next most likely to occur amplitude comprising 1, the encoding to reduce the amount of data used to represent the quantized coefficients and to form codewords using variable length coding, the method comprising: for a first contiguous region in the series: identifying position events that each include a cluster of at least one consecutive coefficient having any amplitude other than 0, such that the position events define the relative positions and runlengths of the clusters and of intervening runs of consecutive coefficients having the 0 amplitude between consecutive clusters of non-zero valued coefficients; encoding the position events; and concatenating a plurality of the consecutive clusters; encoding the amplitudes of the consecutive coefficients in the concatenated plurality of consecutive clusters to form at least one codeword for each concatenation, the encoding of amplitudes including using a first amplitude coding method, wherein, for at least some of the concatenations, the more likely a series of consecutive coefficient amplitudes, the shorter the codeword used to represent the coefficient amplitudes; characterised in that the first amplitude coding method comprises a multi-table amplitude coding method wherein a different two-dimensional code table is used for each cluster length n, and the amplitudes are encoded using the first amplitude coding method for those concatenations of clusters of non-zero coefficients in the series that have a total number of non-zero coefficients, "concatenation length", more than a pre-selected length threshold; and for each concatenation that has a concatenation length less than or equal to the pre-selected length threshold, jointly encoding the non-zero amplitudes of the concatenation by a multi-dimensional coding function of the amplitudes to produce a codeword such that for at least some runs of non-zero amplitudes, the more likely an amplitude run, the shorter the codeword used to represent the amplitude run. identifying position events that each include a cluster of at least one consecutive coefficient having any amplitude other than 0, such that the position events define the relative positions and runlengths of the clusters and of intervening runs of consecutive coefficients having the 0 amplitude between consecutive clusters of non-zero valued coefficients; encoding the position events; and concatenating a plurality of the consecutive clusters; encoding the amplitudes of the consecutive coefficients in the concatenated plurality of consecutive clusters to form at least one codeword for each concatenation, the encoding of amplitudes including using a first amplitude coding method, wherein, for at least some of the concatenations, the more likely a series of consecutive coefficient amplitudes, the shorter the codeword used to represent the coefficient amplitudes; characterised in that the first amplitude coding method comprises a multi-table amplitude coding method wherein a different two-dimensional code table is used for each cluster length n, and the amplitudes are encoded using the first amplitude coding method for those concatenations of clusters of non-zero coefficients in the series that have a total number of non-zero coefficients, "concatenation length", more than a pre-selected length threshold; and for each concatenation that has a concatenation length less than or equal to the pre-selected length threshold, jointly encoding the non-zero amplitudes of the concatenation by a multi-dimensional coding function of the amplitudes to produce a codeword such that for at least some runs of non-zero amplitudes, the more likely an amplitude run, the shorter the codeword used to represent the amplitude run.