Methods of and apparatus for encoding and decoding data
AssigneeArm Limited
InventorSean Tristram Ellis
Life of this patent
Estimating the term…
Abstract
When encoding an array of texture data elements to be used in a graphics processing system, the array of texture data elements is divided into a plurality of non-rectangular sub-sets of texture data elements, and each non-rectangular sub-set of texture data elements that the texture has been divided into is then encoded to generate an encoded texture data block representing that non-rectangular sub-set of the texture data elements, to thereby provide a set of encoded texture data blocks representing the texture.
Claims26
A method of encoding an array of texture data elements to be used in a graphics processing system, the method comprising:
- encoding the array of texture data elements as a plurality of encoded texture data blocks, each encoded texture data block representing a sub-set of the texture data elements of the array of texture data elements to be encoded and containing data to allow decoded data values for the sub-set of the texture data elements that the block represents to be determined;
- and wherein:
- at least two of the encoded texture data blocks represent respective non-rectangular sub-sets of texture data elements from the array of texture data elements to be encoded, the non-rectangular sub-sets of texture data elements are in the form of rectangles, the edges of which have been modified so that they are not straight lines and so that they interlock with the edges of adjacent non-rectangular sub-sets of texture data elements in the array of texture data elements.
A method of determining a texture data element value for use in a graphics processing system from a set of encoded texture data blocks representing a texture to be used in the graphics processing system, the method comprising:
- using the position of a texture data element whose value is required and the block size used for the set of encoded texture data blocks representing the texture to be decoded to determine a candidate encoded texture data block in the set of encoded texture data blocks representing the texture to use to determine the value to use for the texture data element whose value is required;
- and
- using a relative position within the determined candidate encoded texture data block for the texture data element whose value is required to determine whether to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, or whether to use another encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, using the candidate encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use another encoded texture data block to determine the value to use for the texture data element whose value is required, using the another encoded texture data block to determine the value to use for the texture data element whose value is required.
An apparatus for encoding an array of texture data elements to be used in a graphics processing system, the apparatus comprising:
- processing circuitry configured to encode the array of texture data elements as a plurality of encoded texture data blocks, each encoded texture data block representing a sub-set of the texture data elements of the array of texture data elements to be encoded and containing data to allow decoded data values for the sub-set of the texture data elements that the block represents to be determined;
- and wherein:
- at least two of the encoded texture data blocks represents respective non-rectangular sub-sets of texture data elements from the array of texture data elements to be encoded, the non-rectangular sub-sets of texture data elements are in the form of rectangles, the edges of which have been modified so that they are not straight lines and so that they interlock with the edges of adjacent non-rectangular sub-sets of texture data elements in the array of texture data elements.
An apparatus for determining a texture data element value for use in a graphics processing system from a set of encoded texture data blocks representing a texture to be used in the graphics processing system, the apparatus comprising:
- processing circuitry configured to:
- use the position of a texture data element whose value is required and the block size used for the set of encoded texture data blocks representing a texture to be decoded to determine a candidate encoded texture data block in the set of encoded texture data blocks representing the texture to use to determine the value to use for the texture data element whose value is required;
- and
- use a relative position within the determined candidate encoded texture data block for the texture data element whose value is required to determine whether to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, or whether to use another encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, use the candidate encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use another encoded texture data block to determine the value to use for the texture data element whose value is required, use the another encoded texture data block to determine the value to use for the texture data element whose value is required.
A graphics processing unit comprising processing circuitry configured to, when a texture data element value from a set of encoded texture data blocks representing a texture to be used by the graphics processing unit is required:
- use the position of a texture data element whose value is required and the block size used for a set of encoded texture data blocks representing a texture to be decoded to determine a candidate encoded texture data block in the set of encoded texture data blocks representing the texture to use to determine the value to use for the texture data element whose value is required;
- and
- use a relative position within the determined candidate encoded texture data block for the texture data element whose value is required to determine whether to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, or whether to use another encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use the determined candidate encoded texture data block to determine the value to use for the texture data element whose value is required, use the candidate encoded texture data block to determine the value to use for the texture data element whose value is required;
- and
- if it is determined to use another encoded texture data block to determine the value to use for the texture data element whose value is required, use the another encoded texture data block to determine the value to use for the texture data element whose value is required.
A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of encoding an array of texture data elements to be used in a graphics processing system, the method comprising:
- encoding the array of texture data elements as a plurality of encoded texture data blocks, each encoded texture data block representing a sub-set of the texture data elements of the array of texture data elements to be encoded and containing data to allow decoded data values for the sub-set of the texture data elements that the block represents to be determined;
- and wherein:
- at least two of the encoded texture data blocks represent respective non-rectangular sub-sets of texture data elements from the array of texture data elements to be encoded, the non-rectangular sub-sets of texture data elements are in the form of rectangles, the edges of which have been modified so that they are not straight lines and so that they interlock with the edges of adjacent non-rectangular sub-sets of texture data elements in the array of texture data elements.
Dependencies are inferred from the claim text.