BACKGROUND

The technology described herein relates to methods of and apparatus for determining data values for use by a data processing system from data that has been encoded, e.g. in a compressed format, and in particular to methods of and apparatus for determining data values for use in graphics processing from encoded image data.

Data processing systems often store generated image data within a frame buffer. The frame buffer typically contains a complete set of data for a frame (image), e.g. that is to be displayed, including, for example, colour values for each of the (e.g.) pixels within that frame. A suitable display controller is then able to read the contents of the frame buffer and use the image data stored therein to drive a display to display the desired frame (image).

However, the storage and access of the image data in the frame buffer (the ‘frame buffer data’) can place relatively high demands on the, e.g., storage and/or bandwidth resource of the data processing system (or conversely lead to a reduced performance when such demands are not met).

To reduce the burden imposed on the data processing system, it is therefore desirable to be able to store such frame buffer data in a “compressed” format. This is particularly desirable in data processing apparatus, e.g. of portable devices such as digital cameras, or mobile devices including such cameras (for example, smartphones, tablets, HMD (Head Mounted Displays, etc.), where processing resources and power may be relatively limited.

Similar considerations apply to various other instances where it is desired to reduce the amount of data needed for the storage and/or transmission of a certain piece of information.

Another example, also in the context of graphics processing, would be when storing texture data, e.g. in the form of an array of texture elements (or ‘texels’) each representing given texture data (such as colour, luminance, etc. values) that can then be mapped onto respective sampling positions (pixels) of a render output being generated. Again, the storage and access of this texture data can place relatively high storage and/or bandwidth requirements on the data processing system.

Accordingly, it is common to encode arrays of data elements, such as arrays of image data values, so as to compress the data in order to reduce bandwidth and memory consumption. When the data processing system subsequently requires such data that has been stored in such a compressed form, the compressed data must then be decoded before it can be used, e.g. in order to determine a representation of the original (i.e. uncompressed) data values in a format that can then be used by the data processing system.

To this end various data compression schemes have been developed. Some data compression schemes encode the data in a lossless manner such that the original array of data elements can be perfectly reconstructed from the encoded data. This may be desired for applications where it is particularly important to maintain data fidelity.

However, for other applications it may be acceptable to lose some data fidelity and it may be more desirable to be able to (e.g.) guarantee a given bandwidth (bit rate). Thus, other data compression schemes may encode to fixed-size data packets.

In that case, the compression into the fixed size data packets is inherently ‘lossy’ since once a fixed size data packet is full any remaining bits are not then included into the data packet and those bits are therefore effectively discarded at this point such that the information associated with the discarded bits is lost. This means that the original data values cannot (in general) be perfectly constructed from the encoded data.

However, the Applicants have recognised that there may still be problems when decoding data that has been encoded using such lossy compression schemes, and that there remains scope therefore for improved arrangements for determining data values for a data element of an array of data elements from an encoded representation of the array of data elements, i.e. for decoding data, especially data that has been encoded using lossy compression schemes.

