GB2487717A - Image encoding method based on average pixel block colour and luminance offsets - Google Patents

Image encoding method based on average pixel block colour and luminance offsets Download PDF

Info

Publication number
GB2487717A
GB2487717A GB1101213.5A GB201101213A GB2487717A GB 2487717 A GB2487717 A GB 2487717A GB 201101213 A GB201101213 A GB 201101213A GB 2487717 A GB2487717 A GB 2487717A
Authority
GB
United Kingdom
Prior art keywords
luminance
colour
colours
encoding
pixels
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB1101213.5A
Other versions
GB2487717B (en
GB201101213D0 (en
Inventor
Anthony Neil Berent
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Priority to GB1101213.5A priority Critical patent/GB2487717B/en
Publication of GB201101213D0 publication Critical patent/GB201101213D0/en
Priority to US13/200,941 priority patent/US8831341B2/en
Priority to JP2012011759A priority patent/JP6035026B2/en
Priority to CN201210026893.8A priority patent/CN102625100B/en
Publication of GB2487717A publication Critical patent/GB2487717A/en
Application granted granted Critical
Publication of GB2487717B publication Critical patent/GB2487717B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N7/26074
    • H04N7/26148
    • H04N7/26292
    • H04N7/26303

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

An encoding method for generating an encoding of an image according to a predetermined encoding format, which encodes the image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to the base colour. The base colour is selected from a predetermined set of base colours defined in a predetermined colour space and the set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values. The predetermined set of base colours and the luminance offset values define a set of luminance lines in the predetermined colour space, the encoded pixel colours lying on at least one of the luminance lines. The method comprising the steps of: determining an average colour of colours of the block of pixels in the predetermined colour space; selecting at least one luminance line based on an offset in the colour space of the average colour from the at least one luminance line; identifying a set of candidate base colours lying on the at least one luminance line; and determining, using the set of candidate base colours and the luminance offset values, the set of encoded pixel colours, wherein the base colour and the set of luminance offsets are selected based on an encoding error indicative of a sum distance in the colour space between the set of encoded pixel colours and the colours of the block of pixels.

Description

IMAGE ENCODING METHOD
FIELD OF THE INVENTION
The present invention is relates to encoding methods for encoding an image according to a predetermined encoding format. In particular the present invention is concerned with such encoding methods when the predetermined encoding format encodes the image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to that base colour.
BACKGROUND OF THE INVENTION
Various encoding fonnats for encoding an image are known. The particular techniques embodied by these formats vary depending on the relative importance of various factors in the resulting encoded image, such as whether the encoding should be lossless, the desired data size of the resulting encoding image and the overall quality of the encoded image. A widely used and well known set of encoding formats for images are those defined by the JPEG group. However, predetermined encoding formats such as JPEG are not suitable for all applications, in particular those in which random access to areas of pixels in the encoded image is required. This may for example be the case when the encoded image provides a compressed texture to be used in graphics applications. This is because encoding formats such as JPEG rely on techniques which encode blocks of pixels within an image with respect to previous blocks within the same image. Whilst this enables a higher degree of data compression, this approach requires the image to be decoded as a whole and hence such encoding formats are not suitable for applications such as texture rendering, which require random access to subsections of a given image.
Consequently, it is known to encode images according to predetermined encoding formats which do allow such random access. Typically, in such encoding formats, the image is encoded in blocks of pixels (e.g. 4x4) representing the smallest units of the image which can be individually encoded and decoded. One known technique in such encoding formats is to represent the block of pixels by a base colour and a set of luminance offsets with respect to that base colour. In other words, for each block encoded in this manner, only one colour is defined for all of the pixels, with the luminance of each pixel being given as an offset from that base colour. This generally produces an acceptable image quality, because the human eye is less sensitive to local chrominance variation than to local luminance variation.
However, a problem associated with generating encoded images according to such encoding formats (of which the ETC format (Ericsson Texture Compression) is one example) is the processing time required to generate the compressed (encoded) images. For example, when using existing tools to create ETC compressed textures the processing time can be around 300 to 400 pixels per second, or 30 minutes to one hour for a typical texture, for the highest quality supported by those tools. This lengthy processing time results from the searching which is performed within the available encoding space to find the best combination of base colour and luminance offsets for each block of pixels. To produce the highest quality compressed textures the search is multi-dimensional and extensive, resulting in these long processing times.
IS Such long processing times however are unacceptable when developing and testing graphics applications, since applications may include dozens or hundreds of textures, and developers need to be able to assess the quality of the compressed textures during development.
Figure IA schematically illustrates a block of 4x4 pixels 10. Typically, when such a block of pixels is encoded according to encoding formats such as ETC, each block is in fact encoded in terms of two half-blocks adjacent to one another. As illustrated in Figure IA the block of pixels 10 may be divided by a vertical split into the two half-blocks. Equally, the same block of pixels may be divided into two half-blocks by means of a horizontal split.
The ETC encoding format defines eight tables of luminance offsets as illustrated in Figure lB. Hence, a base colour is defined for each half-block, and the eight pixels in that half-block are encoded by means of one three bit table number and eight two bit table entry numbers.
Two varieties of encoding axe defined according to the ETC standard, namely absolute encoding and differential encoding, as illustrated in Figure lC. Each results in the block of pixels being encoded as a single 64 bit value. In absolute encoding, each half-block is independently encoded. The base colour for each half-block is encoded as a 12 bit (444) ROB value, and the encoding of the whole block is represented by 24 bits giving the R, 0 and B components of the base colours for the first and second half-blocks making up this block. This is followed by two three bit values giving the luminance offset table used for each half-block. The "diff" bit indicates whether this block has been encoded using absolute or differential encoding.
The "flip" bit indicates whether the block has been split horizontally or vertically into half-blocks. Finally, the 16 individual pixels of the two half-blocks are each represented by two bits giving their corresponding entry in the selected table. The encoding format groups these as 16 MSBs and 16 LSBs.
The differential encoding is similarly defined, except that here the base colour of the second half-block is defined as an offset with respect to the first half-block.
Hence, the first half-block base colour is given as a 15 bit (555) ROB value and the R, O and B offsets for the second half-block are each given as three bit offsets. This enables greater precision in defining the base colours, but only if the base colours of the half-blocks are close enough to one another to be represented by these three bit offsets. Otherwise the absolute encoding is used.
The 24 bits used to encode the base colours for the half-blocks correspond to a predetermined set of base colours which may be defined in the! encoding. This predetermined set of base colours is schematically illustrated in Figure 2A. Note that for clarity of illustration only a two dimensional representation is shown in which only the R and 0 components are shown (the B component in the third dimension being omitted). The base colour selected for the encoding of a given half-block is typically selected with reference to the average colour of the pixels in the half-block. Since the encoded pixels are encoded as luminance offsets with respect to a selected base colour, the diagonal lines (luminance lines) in Figure 2A constrain where encoded pixels may lie in this colour space.
As illustrated in Figure 2A, there is more than one way to choose the base colour from the predetermined set of base colours available for a given calculated average colour. Base colour 30 is the nearest base colour on the nearest luminance line, whilst base colour 40 is the geometrically nearest base colour.
Figure 2B graphically illustrates the encoding of a given pixel value by means of a luminance offset from a base colour. The luminance offset (selected from a predefined table of luminance offsets) gives the position in this colour space of the compressed pixel colour relative to the base colour. The distance between the compressed pixel colour and the original pixel colour gives the encoding error for this pixel.
Figure 3 shows the search range performed by an existing ETC compression algorithm for the base colour of each half-block of pixels. Having selected an initial base point (i.e. base colour) in dependence on the average colour of the pixels of the half-block, a search is performed in a volume of base points around that starting base point to see if an improved encoding can be found. In the high quality version of the compression, a 7x7x7 search volume is explored (represented as a 7x7 search area in the 2D representation shown). Amongst these the encoding which minimises the overall encoding error for the half-block is selected. It is the iterative process of calculating the best encoding for all eight possible tables for each of these 7x7x7 (i.e. 343) candidate base points which results in the lengthy processing procedure for existing compression tools.
Descriptions of some existing approaches to such image encoding / compression can be found in: -the presentation "iPACKMAN -High-Quality, Low Complexity Texture Compression for Mobile Phones" by Jacob Strom and Tomas Akenine-Moller (retrieved from gppt) which describes the ETC compression format; -in the full Khronos standard for the ETC format (available at texture. txt); -in the paper "Real Time DXI Compression", J. .M.P. van Waveren, May -in a description of NVIDIA texture tools (retrieved on 12 November 2010 from: http.;//cQdoogle.com/pJnvidia-texture-toois/wilciLAiDocprnenktion).
However, the above described lengthy processing times are prevalent in the prior art approaches and accordingly, it would be desirable to provide an improved technique for generating high quality encodings, which require less processing time.
SUMMARY OF THE INVENTION
Viewed from a first aspect, the present invention provides an encoding method of generating an encoding of an image according to a predetermined encoding format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said method comprising the steps, performed for each block of pixels, of: determining an average colour of colours of said block of pixels in said predetermined colour space; selecting at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; identil5'ing a set of candidate base colours lying on said at least one luminance line; and determining, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colours, wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
When encoding an image according to a predetermined encoding format in which the image is encoded in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to that base colour, the inventor of the present invention realised that an improved method could be provided by selecting the base colour for each block of pixels from a candidate set of base colours lying on at least one luminance line running through the predetermined colour space in which the encoding operates. Luminance lines in the predetermined colour space are defined by the predetermined set of base colours available for the encoding. Accordingly, according to the techniques of the present invention, for each block of pixels to be encoded, firstly the average colour of the pixels of that block of pixels is determined and then at least one luminance line is selected in dependence on an offset in the predetermined colour space of the average colour from the at least one luminance line. This at least one luminance line then provides a set of candidate base colours which are then used to determine the final encoding.
It has been found that rather than identifying a set of candidate base colours using, say, a set of base colours forming a cube approximately centred on the average colour of the block of pixels to be encoded (e.g. the 7x7x7 search volume illustrated in Figure 3), an improved encoding method is provided, if the candidate base colours are selected with reference to luminance lines running through the predetermined colour space.
This is due to the fact that an encoding format which encodes blocks of pixels as a base colour arid set of luminance offsets with respect to that base colour provides far greater flexibility in setting luminance values than in setting chrominanee values.
Furthermore, since the encoded pixel colours are constrained to lie on one of the luminance lines running through the predetermined colour space (because each encoded pixel colour is represented as an offset along one of these luminance lines from a base colour which lies somewhere on the luminance line), identifying the best base colour to use for the encoding of a particular block of pixels is improved by performing this selection with reference to luminance lines rather than by using a spatial search around the average pixel colour of the block of pixels. This technique may be of particular benefit, for example, when the colours of the block of pixels are widely distributed in the predetermined colour space, meaning that the position of the average colour of the block of pixels is not particularly representative of the individual pixel colours. In such a situation, a luminance line may be is better suited to providing the candidate base colours than a predetermined search space around the average colour.
A further factor which makes the luminance line based approach more advantageous is that the luminance lines, which define lines of increasing luminance in the predetermined colour space, are not necessarily lines of constant chrominance, since the luminance can be increased or decreased beyond a point at which a component of the colour saturates. Seen graphically this represents the situation in which a luminance line meets the edge of the predetermined colour space. Hence, the luminance lines do not necessarily take a single straight path though the predetermined colour space. Consequently there may exist a luminance line which better matches a given set of pixel colours, whilst the average colour of those pixels on the other hand lies nearer to base colours which would only allow a poor encoding of the pixel colours. This may particularly be the case when the base colours which are closest to the average pixel colour in the predetermined colour space are significantly different from the individual pixel colours in terms of chrominance, since the predetermined encoding format only allows individual pixels to vary in terms of a luminance offset from the base colour and hence this chrominance difference may result in a large encoding error (between the encoded pixel colours and the original pixel colours).
It will be appreciated that there are various ways in which the offset can be defined, but in one embodiment said offset in said colour space is a distance of closest approach between said average colour and said at least one luminance line.
It will also be appreciated that there are various ways in which the encoding error can be defined, but in one embodiment said encoding error is calculated as a sum of squared distances between said set of encoded pixel colours and said colours of said block of pixels.
In one embodiment, said step of selecting said at least one luminance line comprises selecting thee luminance lines with smallest values of said offset. The selection of three luminance lines is particularly appropriate in the context of a three dimensional predetermined colour space (e.g. ROB), since a given average colour position will be surrounded by three luminance lines. Which of these three luminance lines will prove to be most suitable for providing the base colour for the encoding will depend on the position of the colours of the pixels of the block of pixels with respect to each line.
In one embodiment, said step of selecting at least one luminance line comprises an iterative luminance line selection procedure, said iterative luminance line selection procedure comprising the steps of: examining a neighbouring luminance line of an already-selected luminance line; and if a total offset of said colours of said block of pixels from said neighbouring luminance line is not greater than a total offset of said colours of said block of pixels from said already-selected luminance line, selecting said neighbouring luminance line.
Accordingly, more than one luminance line may be selected by means of this iterative luminance line selection procedure. The proposal of this iterative luminance line selection procedure is based in the recognition that an initial luminance line selected in dependence on its offset in the predetermined colour space from the average colour of the block of pixels may not in fact provide the base colour which is the best encoding for the block of pixels. For example, because of the paths that the luminance lines take through predetermined colour space, a luminance line which most closely approaches the individual pixel colours may not be the same as the luminance line which most closely approaches the average colour of those pixels. Hence, the iterative luminance line selection procedure examines a neighbouring luminance line and compares the total offset of the colours of the block of pixels from that neighbouring luminance line with a total offset of the colours of the blocks of pixels from an already-selected luminance line, and if the neighbouring luminance line is shown to more closely approach the colours of the blocks of pixels (in terms of the total offset) then this neighbouring luminance line is also selected.
lit will be recognised that there are various ways in which the total offsets could be calculated, but in one embodiment said total offsets are calculated as a sum of squared distances between said colours of said block of pixels and respective nearest points of each luminance line.
In one embodiment, said neighbouring luminance line is only examined if said neighbouring luminance line represents an increase in colour saturation from said already-selected luminance line, In considering the luminance lines in the predetermined colour space, it has been realised that the luminance line that lies closest to the colours of a block of pixels (for example in terms of a root mean squared (RMS) distance) is either the line closest to the average colour of the pixels or a line with a more saturated colour than this line. Hence when selecting further luminance lines as part of the iterative luminance line selection procedure it is advantageous to only consider selecting a neighbouring luminance line if its represents an increase in colour saturation from an already-selected luminance line.
In one embodiment, said neighbouring luminance line is only examined if said already-selected luminance line has a non-zero value of said total offset. It has been realised that some particular configurations of pixel colours may result in a zero value of the total offset between those pixel colours and a given luminance line. For example this may be the case if the pixel colours lie directly on one or more luminance lines, this for example being possible if the pixel colours lie on the fully colour saturated edge of the predetermined colour space. In this situation it is not necessary to examine neighbouring luminance lines.
In one embodiment, when a plurality of luminance lines is selected, said plurality of luminance lines is sorted by said total offset for each luminance line.
Given that the encoding error for any given set of' encoding pixel colours must be at least the total offset for the corresponding luminance line, it is advantageous when there is a plurality of luminance lines to sort those luminance lines in terms of their total offsets. On average, th.c luminance line with the smallest total offset is most likely to yield the lowest encoding error. However, it should be recognised that the line with the smallest total offset will not necessarily yield the lowest encoding error, since this will depend on the particular positions of the pixel colours with respect to the available base colours on that luminance line, For example, this may happen if the pixel colours happen to fall a relatively long way from the available base colours, then another luminance line may provide a smaller encoding error for this block of pixels.
In one embodiment, said step of determining said set of encoded pixel colours comprises an iterative luminance line consideration procedure, wherein said step of identiing a set of candidate base colours lying on said at least one luminance line and said step of determining said set of encoded pixel colours are performed for said plurality of luminance lines in order of increasing total offset. Having selected a plurality of luminance lines, the most procedurally efficient way of examining them is in order of increasing total offset.
In one embodiment, said step of determining said set of encoded pixel colours comprises an iterative encoding determination procedure comprising the steps, for each candidate base colour of said set of candidate base colours, of: determining a candidate set of encoded pixel colours using said luminance offset values applied to said candidate base colour; determining a candidate encoding error for said candidate set of encoded pixel colours indicative of a sum distance in said colour space between said colours of said block of pixels and said candidate set of encoded pixel colours; if said candidate encoding error is lower than any previous candidate encoding errors determined for said block of pixels, setting said candidate encoding error as a best encoding error; selecting as said base colour and said set of luminance offsets the candidate base colour and those luminance offset values which when applied to said candidate base colour give said best encoding error.
Accordingly, having detennined a set of candidate base colours, each may be taken in turn to determine a candidate set of encoded pixel colours using the luminance offset values applied to that candidate base colour. On this basis a candidate encoding error may be determined indicative of a sum distance in the colour space between the colours of the block of pixels and the candidate set of encoded pixel colours. For each candidate encoding error thus determined, if it is found to be lower than any previous candidate encoding en-or it is set as the best encoding error. Thus as each candidate base colour is considered, track is kept of the best encoding error thus far found, and at the end of the process the base colour and set of luminance offsets which gave this best encoding error can be used as the chosen base colour and set of luminance offsets for this block of pixels.
In one embodiment, said at least one predetermined table of luminance offset values comprises a plurality of predetermined tables of luminance offset values, and said step of determining said candidate set of encoded pixel colours using said luminance offset values applied to said candidate base colour comprises iteratively determining said candidate set of encoded pixel colours using each table of said plurality of predetermined tables of luminance offset values Thus, when a plurality of predetermined tables of luminance offset values is provided, the step of determining the candidate set of encoded pixel colours using the luminance offset values applied to the candidate base colour may try each table of luminance offset values in turn to seek to find the best encoding error.
In one embodimcnt, said encoding error is determined cumulatively as a cumulative encoding error and, if said cumulative encoding error for a current table of luminance offset values under consideration exceeds said best encoding error, said determining said candidate set of encoded pixel colours using said current table of luminance offset values is terminated. Hence as each table of luminance offset values is considered, the encoding error can be determined cumulatively, and if this cumulative error exceeds a best encoding error previously found it is known that the final encoding error using this table can only exceed the best encoding error found so far, and processing time can be saved by terminating the calculation for this table of luminance offset values. This cumulative encoding error can be evaluated on a pixel-by-pixel basis and in one embodiment said cumulative encoding error is compared with said best encoding error on a pixel-by-pixel basis for said colours of said block of pixels. Hence, as soon as the calculation for a given pixel pushes the cwnulative error beyond the best encoding error thus far found, consideration of this table of luminance offset values (as applied to the current base colour under consideration) can be terminated.
In one embodiment, before considering a next luminance line, if said total offset for said next luminance line exceeds said best encoding error said iterative luminance line consideration procedure is terminated and neither said next luminance line nor any further luminance lines in said plurality of luminance lines are considered.
This is due to the fact that, as mentioned above, the encoding error using a base colour on a given luminance line must be at least as large as the total offset for that luminance line. Hence, during the iterative luminance line consideration procedure if it is found that the total offset for a next luminance line exceeds the best encoding error found so far, it can immediately be concluded that this next luminance line cannot improve on the best encoding error, nor can any further luminance lines, since these are sorted by total offset. As such, the best encoding error found so far cannot be improved on and the iterative luminance line consideration procedure can be immediately terminated.
In one embodiment, said blocks each comprise a set of 2 pixels by 4 pixels.
In one embodiment, at least one pair of adjacent blocks of said blocks of pixels is encoded in an interdependent fashion, a second block of said adjacent pair of blocks being encoded with reference to a first block of said adjacent pair of blocks. It may be found to be advantageous, in terms of encoding efficiency, for an adjacent pair of blocks to be encoded in an interdependent fashion. For example, if the base colours for two adjacent blocks of pixels are to be encoded using 24 bits, whilst each base colour could be encoded using 12 bits, greater precision for defining the base colours may be achieved by encoding one base colour using 15 bits (e.g. RGB 555), whilst the other base colour is defined as a set of 3-bit offsets with respect thereto. This is of course only possible if the difference between the base colours of the two blocks is sufficiently small to be represented in this set of 3-bit offsets.
In one embodiment, said pair of blocks are horizontally adjacent, whilst in another embodiment, said pair of blocks are vertically adjacent.
In one embodiment, the method further comprises determining for each block of pixels if said encoding error is lower when that block of pixels in encoded in said interdependent fashion or when that block of pixels in encoded in an independent fashion without reference to another block of pixels. The encoding fashion which gives the lowest encoding error for that block of pixels may then be selected.
In one embodiment, the method further comprises iteratively determining for each block of pixels said encoding error for all encoding fashions and selecting the encoding fashion which gives an overall lowest value of said encoding error. Hence, on a block-by-block basis! each permutation of independent / interdependent encoding and horizontal I vertical splitting may be tested to determine which permutation gives the best encoding. It may also be determined, for each variety of the interdependent encoding, whether a lower encoding error is produced if (giving the pair of blocks the arbitrary labels first and second) the first block is dependent on the second block, or vice versa.
In one embodiment calculations of distances in said colour space are perception-weighted according to human sensitivity to each colour component of said colour space. Because of the differences in sensitivity of the human eye to different colour components, a perceived improvement in the quality of the encoding can be gained by factoring this phenomenon in to the distance calculations.
In one embodiment said encoding error is calculated as a peak signal to noise ratio. This may also be judged to give an improved quality of encoding.
S In one embodiment said image is a texture image. Texture images need to be randomly accessed by graphics applications and hence a block-wise encoding is particularly suitable.
In one embodiment said predetermined encoding format is an ETC format.
Viewed from a second aspect, the present invention provides a computer program product storing in a non-transient fashion a computer program configured cause a computer to carry out the encoding method of the first aspect.
Viewed from a third aspect, the present invention provides an encoding apparatus configured to generate an encoding of an image according to a predetermined encoding format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said apparatus, configured to act on each block of pixels, comprising: an average colour determination unit configured to determine an average colour of said block of pixels in said predetermined colour space; a luminance line selection unit configured to select at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; a candidate base colour identifier configured to identify a set of candidate base colours lying on said at least one luminance line; and a determination unit configured to determine, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colours, wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
Viewed from a fourth aspect the present invention provides encoding apparatus means for generating an encoding of an image according to a predetermined encoding format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said apparatus means, configured to act on each block of pixels, comprising: average colour determination means for determining an average colour of said block of pixels in said predetermined colour space; luminance line selection means for selecting at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; candidate base colour identification means for identifying a set of candidate base colours lying on said at least one luminance line; and determination means for determining, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colours, wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described further, by way of example only, with reference to embodiments thereof as illustrated in the accompanying drawings, in which: S Figure IA schematically illustrates a block of pixels to be encoded, which is divided vertically into two half-blocks; Figure lB shows the set of eight predetermined luminance offset tables defined by the ETC format; Figure IC shows the breakdown of the 64 bit encoding of each block of pixels according to the ETC format, both for absolute encoding and for differential encoding; Figure 2A shows a set of pixel colours, the average colour of those pixels, and the predetermined set of possible base colours in a predetermined colour space; Figure 211 illustrates the encoding of a compressed pixel colour by a base colour and a luminance offset compared with an original pixel colour; Figure 3 shows a search area (volume) within which candidate base points are considered according to a prior art encoding method; Figure 4A illustrates the nearest luminance line to an average pixel colour and the best luminance line with respect to the original pixel colours; Figure 411 illustrates a set of luminance lines indicating the direction of increasing colour saturation; Figure SA schematically illustrates a series of steps taken in one embodiment to determine the best encodin.g for a given block of pixels; Figure SB illustrates the steps involved in the differential calculation used in the process shown in Figure SA; Figure 6 schematically illustrates a series of steps taken in one embodiment when determining a candidate set of luminance lines; Figure 7 schematically illustrates a series of steps taken in one embodiment when performing an iterative luminance line consideration procedure; Figure 8 schematically illustrates a series of steps taken in one embodiment in an iterative encoding determination procedure when considering a set of candidate base colours on a luminance line; and Figure 9 schematically illustrates a general purpose computing device which may be used to implement various embodiments.
DESCRIPTION OF EMBODIMENTS
Figure 4A illustrates a set of eight pixel colours from a block of pixels (specifically from a half-block of 2x4 pixels), which illustrates why the vicinity of the average pixel colour may not contain the best base colour for encoding these pixel colours. Due to the fact that the original pixel colours are spread across two groups, one relatively close to the origin and one at high R / low 0, the average pixel colour falls somewhere between these two groups at a middle R / low 0 value. NB it should be appreciated that whilst Figures 4A and 4B arc shown for a two dimensional colour space (KG) this is only for clarity of illustration and the predetermined colour space will more commonly be three dimensional (ROB). It can be seen from Figure 4A that the nearest base colour (on the "nearest luminance line") to the average pixel colour can only be expected to provide a set of encoded pixel colours with a relatively large encoding error. Whilst the group of pixels on the left do not deviate greatly from the luminance line on which this base colour lies, and hence could be encoded reasonably well with a relatively large negative luminance offset, the group of pixel colours on the right remain at a significant distance from this luminance line and hence can only be encoded with a relatively large encoding error. By contrast, it can be seen that the best base colour lies on a luminance line ("best luminance line") which runs closer to both the left hand group of pixels and the right hand group of pixels.
It has in particular been recognised by the inventor of the present invention, that an improvement in the encoding error that can be achieved for a given group of pixel colours by selecting a luminance line which is not the closest luminance line to the average pixel colour of those pixels can only occur (if it will happen at all) for luminance lines which represent an increase in colour saturation with respect to the luminance line nearest to the average pixel colour. The progression of increasing colour saturation of luminance lines is shown in Figure 4B. Referring back to Figure 4A, the "best luminance line" is at higher colour saturation than the "nearest luminance line". Consequently, embodiments of the present invention propose an iterative luminance line selection procedure, wherein luminance lines of increasing colour saturation are iteratively considered (as will be described in more detail below).
The overall encoding procedure of one embodiment of the present invention is schematically set out in Figure 5A. Bach block of 4x4 pixels is treated according to the steps set out in Figure 5A. Firstly, in steps 100-13 5, a number of differential encoding calculations are performed. These comprise dividing the 4x4 block into two 2x4 half-blocks and determining an encoding of one half-block with respect to the other. The division of the block into two half-blocks can be either horizontal or vertical and each half-block can be treated as the first" half-block with respect to which the "second" half-block is differentially encoded. Firstly, at step 100 the block is divided vertically and the left half-block is set as the "first block" and the right half-block is set as the "second block". Then at step 105 the differential calculation is performed to determine the encoding error for this permutation. The differential calculation at step 105 is carried out as illustrated in the Figure SB. Here, at step 160 firstly the best unrestricted differential encoding is calculated for the first half-block.
Then at step 165 the best differential encoding of the second half-block relative to the first half-block is determined. Finally, at step 170 the overall encoding error for the block is determined based on the difference (in the colour space) between the original and the compressed pixel values.
Returning to Figure 5A, the process carried out in steps 100 and 105 is then repeated in steps 110 and 115, except that now the right hand half-block is set as the "first block" and the left hand half-block is set as the "second block". Similarly, in steps 120, 125, 130 and 135, the same procedure is carried out, but now splitting the block horizontally into an upper half-block and a lower half-block, and the differential calculation is carried out for the upper half-block with respect to the lower half-block and then reversed, i.e. for the lower half-block with respect to the upper half-block.
The differential encoding permutations have thus all been considered, and at step 140 the best absolute encoding is determined with respect to a horizontal split into two half-blocks, whilst at step 145 the best absolute encoding with respect to a vertical split into two half-blocks is calculated. Finally at step 150 the best overall encoding giving the lowest encoding error for the block as a whole is selected as the chosen encoding for this block. The detail of how the best encoding for each half-block is determined will now be described with reference to Figures 6, 7 and 8.
Each encoding procedure begins with the process illustrated in Figure 6 of selecting a set of candidate luminance lines to be used for the encoding. Firstly, at step 200, the average pixel colour of the half-block is determined. Then, at step 205 the three encodable luminance lines closest to the average pixel colour are selected. These three luminance lines surround the average pixel colour in the three dimensional ROB space used for the encoding. Then at step 210, for each of these luminance lines the sum of squares distance of the colours of the pixels to the nearest point on that luminance line (the "total offset") is calculated and each luminance line is added to a candidate set of luminance lines. Within this candidate set of luminance lines each of the three initially selected luminance lines are flagged as "parent" lines and the set is sorted with respect to the sum of squares distance calculated for each. Next, an iterative luminance line selection procedure is carried out beginning at step 215.
At step 215 a luminance line which is flagged as a "parent" line in the candidate list is selected. Then, at step 220 it is determined if this "parent" line has any neighbouring "daughter" lines which are at higher colour saturation than the parent. Note that in 3D colour space there are generally two neighbouring daughter luminance lines with higher saturation for each parent. Note also that a neighbouring daughter line which has already been examined (via a different parent) will generally not be re-considered. If such neighbouring daughter luminance lines exist, then at step 225, a daughter luminance line is selected and the sum of squares distance from the colours of the pixels of the half-block to this daughter luminance line is calculated.
Then at step 230 it is determined if this sum of squares distance is not greater than the sum of squares distance for the parent luminance line of this daughter. If this is true, then at step 235 this daughter line is added to the candidate set of lines sorted by the sum of squares distance. Finally at step 240 it is determined if the sum of squares is non-zero and if it is, then this daughter is also flagged as a parent in the candidate list.
Having added this daughter to the candidate set of lines, at step 250 it is determined if there is another daughter line of the current parent under consideration, and if there is the flow returns to step 225 to process that daughter line. If however there is not another daughter line of the current parent, or if at step 220 (described above) it is determined that the current parent under consideration does not have any neighbouring daughter luminance lines with higher saturation, then the flow proceeds to step 255 where it is determined if there is another luminance line in the candidate set of lines which is flagged as a parent and has not yet been processed. If there is, then the flow returns to step 215 to begin processing that parent line. If there are no other unprocessed parent lines in the candidate set then the flow proceeds to step 260 at which point the candidate line generation process is completed.
With a candidate set of luminance lines selected according to the procedure described in Figure 6, the set of candidate luminance lines can then be considered to determine which gives the base colour which results in the best encoding for this half-block. This procedure is carried out in one embodiment according to the steps schematically illustrated in Figure 7. Firstly, from the candidate set of luminance lines sorted according to their total offset (i.e. the sum of squares distance of the colours of the pixels of the half-block to the nearest point on that luminance line), the line with the lowest offset is selected at step 300. Then, at step 305 the best encoding available for this line (i.e. using the set of base colours and luminance offsets which define this line) is determined, More detail of this will be described below with reference to Figure 8. Having determined the best encoding for this line, at step 310 the encoding error for this line is determined as the sum of squares distance between the colours of the original pixels of this half-block and the set of encoded pixel colours according to this encoding. If this encoding error is the best (i.e. lowest) encoding error that has been thus far determined, then it is set as the current best error. Then the flow proceeds to step 315 where it is determined if there is another candidate luminance line in the sorted list. If there is, then the flow proceeds to step 320 where the next closest luminance line (in terms of the calculated total offset) is selected. Then at step 325 it is checked if the sum of squares distance to this line (i.e. the total offset for this line) -according to which the line was sorted in the candidate list -is greater than the best error determined so far (see step 310). If it is, then it is not possible for this line or any further lines to improve on that best error and the flow proceeds to the concluding step at step 330 wherein the half-block is encoded using the line which gave that best error, and in particular using the base colour on that line which gave that best error. If however at step 325 it is found that the total offset for this next line in the candidate list does not exceed the best error calculated so far then the flow returns to step 305 to determine the best encoding for this next line, and at step 310 to see if the encoding error for this next line improves on the best error so far. If at any iteration it is determined at step 315 that there is no further candidate line list then the flow proceeds to step 330.
The procedure by which the best encoding for a given luminance line (step 305 in Figure 7) is determined is now described with reference to the steps shown in Figure 8. First, at step 400 the first base point (candidate base colour) on this luminance line is selected. Then at step 405 the first table of luminance offset values is selected.
Then, from this table of luminance offset values, at step 410 the best table entry (i.e. luminance offset value) for the first pixel of the half-block is determined. "Best" here means the entry which. results in the lowest encoding error for this pixel. The encoding error for this pixel, i.e. the distance in colour space between the encoded pixel colour and the original pixel colour, is added to a cumulative encoding error for this half-block. At step 415 it is checked if this cumulative encoding error exceeds a target error for this half-block, Note that on the very first iteration of the process described in Figure 8 for the first base point, first table and first pixel, there is naturally no pre-existing target error and hence on this very first iteration the result at step 415 will always be to follow the "no" path. Then at step 420 it is determined if there is another pixel within the half-block and if there is then at step 425 then best table entry (for the current table under consideration) is determined for this next pixel. The encoding error associated with this next pixel is also calculated and added to the cumulative error for this table. If the loop of steps 415, 420 and 425 is completed for all pixels of the half-block (i.e. without failing the total error test at step 415) then at step 430 the total error calculated for the half-block for the current table is set as the new target error.
From either failing the total error test 415 or selling a new target error at step 430, the flow proceeds to step 435, at which it is determined if there is another table which can be considered for encoding this half-block. If there is then at step 440 that next table is selected and the flow returns to step 410 to try encoding the half-block of pixels using that table. If however another table is not available at step 435 then the flow proceeds to step 445 where it is determined if there is another base point (i.e. candidate base colour) on the luminance line currently under consideration. If there is, then the flow returns to step 405, where the iterative detennination process with respect to the available tables is carried out again using that new base colour. Once all base points on this line have been considered then the flow concludes at step 450 where the best encoding for this line is determined to be given by the base colour and luminance offsets which gave the target error.
It should be noted that the above described distances calculated in the predetermined colour space are in some embodiments calculated as perception-weighted distances, taking into account the sensitivity of the human eye to the difference colour components. Also the encoding error, in some embodiments may be calculated in terms of a peak signal to noise ratio. Such techniques are familiar to the skilled person and are not described in detail herein.
Figure 9 schematically illustrates a general purpose computing device 500 of the type that may be used to implement the above described techniques. The general purpose computing device 500 includes a central processing unit 502, a random access memory 504 and a read only memory 506, connected together via bus 522. It also ffirther comprises a network interface card 508, a hard disk drive 510, a display driver 512 and monitor 514 and a user input/output circuit 516 with a keyboard 518 and mouse 520 all connected via the common bus 522. In operation, when performing the necessary calculations to determine the encoding of each block of pixels, the central processing unit 502 will execute computer program instructions that may for example be stored in the random access memory 504 and/or the read only memory 506.
Program instructions could be additionally be retrieved from the hard disk drive 510 or dynamically downloaded via the network interface card 508. The results of the processing performed may be displayed to a user via a connected display driver 512 and monitor 514. User inputs for controlling the operation of the general purpose computing device 500 may be received via a connected user input output circuit 516 from the keyboard 518 or the mouse 520. It will be appreciated that the computer program could be written in a variety of different computer languages. The computer program may be stored locally on a recording medium or dynamically downloaded to the general purpose computing device 500. When operating under control of an appropriate computer program, the general purpose computing device 500 can perform the above described techniques and can be considered to form an apparatus for performing the above described technique. The architecture of the general purpose computing device 500 could vary considerably and Figure 9 is only one example.
The techniques described herein enable the encoding of an image to be performed much faster than the techniques know in the prior art. For example, creating ETC compressed textures using existing tools is very slow (300 to 400 pixels per second, or 30 minutes to 11 hour for a typical texture, for the highest quality supported by the existing tools). The teelmiques described herein speed up the compression process by anything up to 125 times (in the example cases tested) giving compression speeds of up to 40,000 pixels per second. Furthermore, in many eases, this was done whilst also producing a higher quality result than the existing algorithm.
This is of particular benefit in the context of developing and testing graphics applications, since applications may include dozens or hundreds of textures, and the techniques described herein allow developers to assess more quickly the quality of the compressed textures during development.
Although a particular embodiment has been described herein, it will be appreciated that the invention is not limited thereto and that many modifications and additions thereto may be made within the scope of the invention. For example, various combinations of the features of the following dependent claims could be made with the features of the independent claims without departing from the scope of the present invention.

Claims (30)

  1. CLAIMS1. An encoding method of generating an encoding of an image according to a predetermined encoding format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said method comprising the steps, performed for each block of pixels, of: determining art average colour of colours of said block of pixels in said predetermined colour space; selecting at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; identifying a set of candidate base colours lying on said at least one luminance line; and determining, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colours, wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
  2. I The encoding method as claimed in claim I, wherein said offset in said colour space is a distance of closest approach between said average colour and said at least one luminance line.
  3. 3. The encoding method as claimed in claim 1 or claim 2, wherein said encoding error is calculated as a sum of squared distances between said set of encoded pixel colours and said colours of said block of pixels.
  4. 4. The encoding method as claimed in any preceding claim, wherein said step of selecting said at least one luminance line comprises selecting three luminance lines with smallest values of said offset.
  5. 5. The encoding method as claimed in any preceding claim, wherein said step of selecting at least one luminance line comprises an iterative luminance line selection procedure, said iterative luminance line selection procedure comprising the steps of: examining a neighbouring luminance line of an already-selected luminance line; and if a total offset of said colours of said block of pixels from said neighbouring luminance line is not greater than a total offset of said colours of said block of pixels from said already-selected luminance line, selecting said neighbouring luminance line.
  6. 6. The encoding method as claimed in claim 5, wherein said total offsets are calculated as a sum of squared distances between said colours of said block of pixels and respective nearest points of each luminance line.
  7. 7. The encoding method as claimed in claim 5 or claim 6, wherein said neighbouring luminance line is only examined if said neighbouring luminance line represents an increase in colour saturation from said already-selected luminance line.
  8. 8. The encoding method as claimed in any of claims 5-7, wherein said neighbouring luminance line is only examined if said already-selected luminance line has a non-zero value of said total offset.
  9. 9. The encoding method as claimed in any of claims 5-8, wherein when a plurality of lmninance lines is selected, said plurality of luminance lines is sorted by said total offset for each luminance line.
  10. 10. The encoding method as claimed in claim 9, wherein said step of determining said set of encoded pixel colours comprises an iterative luminance line consideration procedure, wherein said step of identifying a set of candidate base colours lying on said at least one luminance line and said step of determining said set of encoded pixel colours are performed for said plurality of luminance lines in order of increasing total offset.
  11. 11. The encoding method as claimed in any preceding claim, wherein said step of determining said set of encoded pixel colours comprises an iterative encoding determination procedure comprising the steps, for each candidate base colour of said set of candidate base colours, of: determining a candidate set of encoded pixel colours using said luminance offset values applied to said candidate base colour; determining a candidate encoding error for said candidate set of encoded pixel colours indicative of a sum distance in said colour space between said colours of said block of pixels and said candidate set of encoded pixel colours; if said candidate encoding error is lower than any previous candidate encoding errors determined for said block of pixels, setting said candidate encoding error as a best encoding error; selecting as said base colour and said set of luminance offsets the candidate base colour and those luminance offset values which when applied to said* candidate base colour give said best encoding error.
  12. 12. The encoding method as claimed in claim 11, wherein said at least one predetermined table of luminance offset values comprises a plurality of predetennined tables of luminance offset values, and said step of determining said candidate set of encoded pixei colours using said luminance offset values applied to said candidate base colour comprises iteratively determining said candidate set of encoded pixel colours using each table of said plurality of predetermined tables of luminance offset values.
  13. 13. The encoding method as claimed in claim 12, wherein said encoding error is determined cumulatively as a cumulative encoding error and, if said cumulative encoding error for a current table of luminance offset values under consideration exceeds said best encoding error, said determining said candidate set of encoded pixel colours using said current table of luminance offset values is terminated.
  14. 14. The encoding method as claimed in claim 13, wherein said cumulative encoding error is compared with said best encoding error on a pixel-by-pixel basis for said colours of said block of pixels.
  15. 15. The encoding method as claimed in claim 11, when dependent on claim 10, wherein, before considering a next luminance line, if said total offset for said next luminance line exceeds said best encoding error said iterative luminance line consideration procedure is terminated and neither said next luminance line nor any further luminance lines in said plurality of luminance lines are considered.
  16. 16. The encoding method as claimed in any preceding claim, wherein said blocks each comprise a set of 2 pixels by 4 pixels.
  17. 17. The encoding method as claimed in any preceding claim, wherein at least one pair of adjacent blocks of said blocks of pixels is encoded in an interdependent fashion, a second block of said adjacent pair of blocks being encoded with reference to a first block of said adjacent pair of blocks.
  18. 18. The encoding method as claimed in claim 17, wherein said pair of blocks are horizontally adjacent.
  19. 19. The encoding method as claimed in claim 18, wherein said pair of blocks are vertically adjacent.
  20. 20. The encoding method as claimed in any of claims 17-19, further comprising determining for each block of pixels if said encoding error is lower when that block of pixels in encoded in said interdependent fashion or when that block of pixels in encoded in an independent fashion without reference to another block of pixels.
  21. 21. The encoding method as claimed in claim 20, thither comprising iteratively S detennining for each block of pixels said encoding error for all encoding fashions and selecting the encoding fashion which gives an overall lowest value of said encoding error,
  22. 22. The encoding method as claimed in any preceding claim, wherein calculations of distances in said colour space are perception-weighted according to human sensitivity to each colour component of said colour space.
  23. 23. The encoding method as claimed in any preceding claim, wherein said encoding error is calculated as a peak signal to noise ratio.
  24. 24. The encoding method as claimed in any preceding claim, wherein said image is a texture image.
  25. 25. The encoding method as claimed in any preceding claim, wherein said predetermined encoding format is an ETC format.
  26. 26. A computer program product storing in a non-transient fashion a computer program configured cause a computer to carry out the encoding method of any preceding claim.
  27. 27. An encoding apparatus configured to generate an cncoding of an image according to a predetermined encoding format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said apparatus, configured to act on each block of pixels, comprising: an average colour determination unit configured to determine an average colour of said block of pixels in said predetermined colour space; a luminance line selection unit configured to select at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; a candidate base colour identifier configured to identi& a set of candidate base colours lying on said at least one luminance line; and a determination unit configured to determine, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colows wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
  28. 28. Encoding apparatus means for generating an encoding of an image according to a predetennined encoding* format, wherein said predetermined encoding format encodes said image in blocks of pixels, each block of pixels being encoded as a set of encoded pixel colours comprising a base colour and a set of luminance offsets with respect to said base colour, wherein said base colour is selected from a predetermined set of base colours defined in a predetermined colour space, wherein said set of luminance offsets is encoded as a set of references to at least one predetermined table of luminance offset values, and wherein said predetermined set of base colours and said luminance offset values define a set of luminance lines in said predetermined colour space, said encoded pixel colours lying on at least one of said luminance lines, said apparatus means, configured to act on each block of pixels, comprising: average colour determination means for determining an average colour of said block of pixels in said predetermined colour space; luminance line selection means for selecting at least one luminance line in dependence on an offset in said colour space of said average colour from said at least one luminance line; candidate base colour identification means for identif4ng a set of candidate base colours lying on said at least one luminance line; and determination means for determining, using said set of candidate base colours and said luminance offset values, said set of encoded pixel colours, wherein said base colour and said set of luminance offsets are selected in dependence on an encoding error indicative of a sum distance in said colour space between said set of encoded pixel colours and said colours of said block of pixels.
  29. 29. An encoding method substantially as herein described, with reference to the accompanying figures 4A to 9.
  30. 30. An encoding apparatus substantially as herein described, with reference to the accompanying figures 4A to 9.
GB1101213.5A 2011-01-25 2011-01-25 Image encoding method Active GB2487717B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
GB1101213.5A GB2487717B (en) 2011-01-25 2011-01-25 Image encoding method
US13/200,941 US8831341B2 (en) 2011-01-25 2011-10-05 Image encoding using base colors on luminance line
JP2012011759A JP6035026B2 (en) 2011-01-25 2012-01-24 Image coding method
CN201210026893.8A CN102625100B (en) 2011-01-25 2012-01-29 Method for encoding images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1101213.5A GB2487717B (en) 2011-01-25 2011-01-25 Image encoding method

Publications (3)

Publication Number Publication Date
GB201101213D0 GB201101213D0 (en) 2011-03-09
GB2487717A true GB2487717A (en) 2012-08-08
GB2487717B GB2487717B (en) 2017-06-21

Family

ID=43769542

Family Applications (1)

Application Number Title Priority Date Filing Date
GB1101213.5A Active GB2487717B (en) 2011-01-25 2011-01-25 Image encoding method

Country Status (4)

Country Link
US (1) US8831341B2 (en)
JP (1) JP6035026B2 (en)
CN (1) CN102625100B (en)
GB (1) GB2487717B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8891894B2 (en) * 2011-09-30 2014-11-18 Apple Inc. Psychovisual image compression
US8582876B2 (en) * 2011-11-15 2013-11-12 Microsoft Corporation Hybrid codec for compound image compression
BR112017006461A2 (en) 2014-10-03 2017-12-19 Nec Corp video code converter device, video decoding device, video code conversion method, video decoding method and program
US10575001B2 (en) * 2015-05-21 2020-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Pixel pre-processing and encoding
KR102453803B1 (en) * 2015-09-10 2022-10-12 삼성전자주식회사 Method and apparatus for processing image
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
CN108965873B (en) * 2018-07-24 2020-02-14 北京大学 Adaptive partitioning method for pulse array coding
US10523420B1 (en) * 2019-04-18 2019-12-31 Capital One Services, Llc Transmitting encoded data along transmission mediums based on colorspace schemes
CN115063327B (en) * 2022-08-19 2022-11-08 摩尔线程智能科技(北京)有限责任公司 Image processing method and device, and video processing method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006126949A1 (en) * 2005-05-27 2006-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Weight based image processing

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046119A (en) * 1990-03-16 1991-09-03 Apple Computer, Inc. Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode
US5377018A (en) * 1992-06-22 1994-12-27 Media Vision Video compression and decompression using block selection and subdivision
US5534915A (en) * 1992-09-30 1996-07-09 American Film Technologies, Inc. Method of color enhancing a monochrome image using multiple base colors for selected regions of the monochrome image
US6031937A (en) * 1994-05-19 2000-02-29 Next Software, Inc. Method and apparatus for video compression using block and wavelet techniques
JPH118770A (en) * 1997-06-19 1999-01-12 Matsushita Electric Ind Co Ltd Image compression device
US6356588B1 (en) * 1998-04-17 2002-03-12 Ayao Wada Method for digital compression of color images
US6788811B1 (en) * 1999-05-10 2004-09-07 Ricoh Company, Ltd. Coding apparatus, decoding apparatus, coding method, decoding method, amd computer-readable recording medium for executing the methods
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US6961462B2 (en) * 2001-01-22 2005-11-01 Matsushita Electric Industrial Co., Ltd. Image processing method and image processor
FI113930B (en) * 2002-05-31 2004-06-30 Oplayo Oy Procedure and arrangement for compression of digital images
US7082217B2 (en) * 2002-10-28 2006-07-25 Web Technology Corp. Method and apparatus for image compression in block units
SE526226C2 (en) * 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Image Processing
CA2572967C (en) * 2004-07-08 2012-10-16 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode image processing
GB0504570D0 (en) * 2005-03-04 2005-04-13 Falanx Microsystems As Method of and apparatus for encoding data
DK1886277T3 (en) * 2005-05-27 2016-05-17 Ericsson Telefon Ab L M WEIGHT BASED IMAGE PROCESSING
JP4772049B2 (en) * 2005-07-12 2011-09-14 シャープ株式会社 Image data generation apparatus, image data generation method, program, and storage medium
WO2007021227A1 (en) * 2005-08-19 2007-02-22 Telefonaktiebolaget Lm Ericsson (Publ) Texture compression based on two hues with modified brightness
JP4593437B2 (en) * 2005-10-21 2010-12-08 パナソニック株式会社 Video encoding device
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
JP2007312126A (en) * 2006-05-18 2007-11-29 Toshiba Corp Image processing circuit
JP4835865B2 (en) * 2006-08-08 2011-12-14 富士ゼロックス株式会社 Image processing apparatus and image processing program
US8594441B1 (en) * 2006-09-12 2013-11-26 Nvidia Corporation Compressing image-based data using luminance
US8237865B2 (en) * 2006-12-18 2012-08-07 Emanuele Salvucci Multi-compatible low and high dynamic range and high bit-depth texture and video encoding system
US20090322777A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Unified texture compression framework
CN101742285B (en) * 2008-11-11 2013-04-24 北京中星微电子有限公司 Video encoding system and method, and control method and device for regulating code bit width
WO2010147529A1 (en) * 2009-06-16 2010-12-23 Telefonaktiebolaget L M Ericsson (Publ) Methods and arrangements for image processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006126949A1 (en) * 2005-05-27 2006-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Weight based image processing

Also Published As

Publication number Publication date
GB2487717B (en) 2017-06-21
GB201101213D0 (en) 2011-03-09
CN102625100B (en) 2016-09-07
JP2012157002A (en) 2012-08-16
JP6035026B2 (en) 2016-11-30
US20120189199A1 (en) 2012-07-26
CN102625100A (en) 2012-08-01
US8831341B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
US8831341B2 (en) Image encoding using base colors on luminance line
CN101233542B (en) Weight based image processing
CN101258526B (en) Texture compression based on two hues with modified brightness
KR100819597B1 (en) Multi-mode alpha image processing
JP5306317B2 (en) Image processing using vectors
JP6955417B2 (en) Texture compression method and its device, and texture decompression method and its device
CN108280480B (en) Latent image carrier security evaluation method based on residual error co-occurrence probability
US8437563B2 (en) Vector-based image processing
US11704840B2 (en) Attribute information prediction method, encoder, decoder and storage medium
CN105898279B (en) A kind of objective evaluation method for quality of stereo images
US20130009977A1 (en) Multi-Mode Processing of Texture Blocks
CN111062432A (en) Semantically multi-modal image generation method
Akhyar et al. A beneficial dual transformation approach for deep learning networks used in steel surface defect detection
CN115631192B (en) Control method, device, equipment and medium for valve pressure tester
Krajcevski et al. SegTC: Fast Texture Compression using Image Segmentation.
GB2537439B (en) Image synthesis
US9924176B2 (en) Hybrid block based compression
US6993077B2 (en) Experimental design for motion estimation
CN113096199A (en) Point cloud attribute prediction method, device and medium based on Morton code
CN113470124A (en) Training method and device of special effect model and special effect generation method and device
Chen et al. Perceptual quality assessment of stereoscopic images based on local and global visual characteristics
US7593011B2 (en) Light map compression
ABDUL HASIB ANALYSIS AND DEVELOPMENT OF REVERSIBLE DATA HIDING SCHEME BASED ON PIXEL VALUE ORDERING
Xu et al. No-Reference Stereoscopic Image Quality Assessment Based on Binocular Statistical Features and Machine Learning
Yao et al. Bivariate statistics and binocular energy induced stereo-pair quality evaluator