GB2353452A - Apparatus and method for compression of bit-mapped data - Google Patents

Apparatus and method for compression of bit-mapped data Download PDF

Info

Publication number
GB2353452A
GB2353452A GB0004848A GB0004848A GB2353452A GB 2353452 A GB2353452 A GB 2353452A GB 0004848 A GB0004848 A GB 0004848A GB 0004848 A GB0004848 A GB 0004848A GB 2353452 A GB2353452 A GB 2353452A
Authority
GB
United Kingdom
Prior art keywords
data
accordance
bit map
sampled
chrominance
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.)
Withdrawn
Application number
GB0004848A
Other versions
GB0004848D0 (en
Inventor
Simon David Meldrum
Robert Keith John Withey
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of GB0004848D0 publication Critical patent/GB0004848D0/en
Publication of GB2353452A publication Critical patent/GB2353452A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

A bit map data compression apparatus comprises means for converting RGB data into YUV data across the bit map. The chrominance (UV) data is then sampled to half its resolution in X and Y directions in the bit map. This halves the amount of data required to describe the bit map. The sampled data is then quantised and the quantised data is coded in accordance with a Huffman code.

Description

2353452 APPARATUS AND METHOD FOR COMPRESSION'OF DATA The present invention
is concerned with apparatus and a method for the compression of data, particularly, but not exclusively, for use in the manipulation of data pertaining to computer graphics.
In the field of computer graphics, it is common to model a scene to be represented graphically on a VDU by means of series of polygons. These polygons are defined in a virtual space which is then rendered into a rasterised image for viewing on a VDU. In order to enhance an image, surface details should be added to the polygons to deliver realistic images to a viewer. In one method of incorporating further surface detail into a scene, further polygons can be added to the model to show features (such as doors, windows and lettering) on a base polygon previously defined. However, the incorporation of further polygons into the scene can add to the computational complexity of rendering the scene into a rasterised image.
Therefore, an alternative method has been identified which maps a predetermined image, known as a texture map, onto a base polygon. This method is known as texture 2 mapping, and is described in further detaiP in "Computer Graphics Principles and Practices" by Foley, Van Dam, Feiner and Hughes, (2nd Edition, Addison-Wesley Publishing Company, ISBU 0-201-12110-7), pp 741-744.
A texture map consists of a digitised or synthesised image, which may include information concerning colour.
Therefore, a texture map can'consist of a large amount of data. Typically, a computer design package might provide a library of textures, comprising a plurality of texture maps.
In the development of a computer software package making use of computer graphics to be displayed to the eventual user of the package, many textures of the type described above could be used. These textures may not all be in use at any given time, but they must be retrievable from storage, such as an optical disk, without substantial expenditure of time. Moreover, present storage media can be of a relatively limited capacity; a large number of textures can impose a significant burden on such a storage medium.
Computer software packages are also delivered as a signal to a host computer, such as via the Internet. In that 3 case, in addition to the above consideratiorls relating to storage space, if a computer program to be delivered over the Internet contained a large number of textures, the size of the program could cause problems in the transmission thereof as a signal.
The present invention provides apparatus and a method of compressing a bit map so as to sample most selectively data on which least reliance is placed when viewing an image.
Further and specific advantages of the invention will be appreciated from the following description of a specific embodiment thereof, with reference to the accompanying drawings in which:
Figure 1 is a schematic diagram of apparatus to illustrate the development of a computer program in accordance with the present invention; Figure 2 is a schematic diagram of the configuration of a development computer as illustrated in Figure 1; Figure 3 is a perspective view of an object on to which texture maps have been superimposed; 4 Figure 4 shows the object illustrated in Fi4ure 3 during superimposition of the texture maps; Figure 5 is a schematic diagram showing the structure of a texture map; Figure 6 is a diagram showing conversion of data of a texel of the texture map of Figure 5; Figure 7 is a schematic diagram similar to that of Figure 5 of the texture map during a f urther stage of data conversion; Figure 8 is a schematic diagram showing data compression 15 in accordance with the specific embodiment of the invention; Figure 9 is a graph showing data conversion of a stage of the method of the specific embodiment of the invention; 20 Figures 10a, 10b and 10c are schematic diagrams showing the data structure after the data conversion stage of Figure 9; 25 Figure 11 is a schematic block diagram showing the structure of a packet of compressed data in accordance with the specific embodiment; Figure 12 is a flow diagram illustrating a method of compressing data in the arrangement illustrated in Figure 2; Figure 13 is a flow diagram illustrating the placing of 10 sample data in logarithm buckets; Figure 14 is a schematic diagram of a computer games apparatus conf igured by the computer program developed by the arrangement illustrated in Figures 1 and 2; and Figure 15 Is a flow diagram illustrating a method of decompressing data in the arrangement illustrated in Figure 14.
Figure 1 shows an arrangement 10 by which a computer games product is developed, manufactured and supplied to a user for execution. The arrangement 10 comprises a software development apparatus 100 capable of generating a computer program product, for delivery on a storage 25 medium, in this illustrated example an optical disk, or conveyed on a signal, for instance over the Internet. The computer program product is delivered to a computer games apparatus 200 for execution.
6 The software development apparatus 100 tcomprises a personal computer 110 with a display 112, a mass storage device 114, an optical disk reader/writer 116 and a modem 118. This apparatus further has connected thereto a keyboard 120 and a mouse 122 for input of software development instructions.
The personal computer 110 is configured by development software, namely a graphics development tool 130 and an artwork development tool 140, each of which are used in the production of a final software product. Source code 152 of the software product is developed in a text editor on the personal computer. The source code 152 makes calls to the graphics development tool and to artwork 142 developed on the artwork development tool 140. A compiler is provided on the personal computer 110 which, in use, converts the source code 152 into computer executable machine coded instructions. During compilation, the compiler 160 refers to the graphics development tool 130 and artwork 142 called by the source code 152. These computer executable instructions are written onto an optical disk 190 by means of the optical disk reader/writer 116, or are modulated onto a signal 192 for transmission over the Internet, by means of the modem 118.
7 The personal computer 110 is illustrated in further detail in Figure 2.
The computer program product is delivered to the computer games apparatus 200, which comprises a computer games console 210, having an optical disk reader 212 and a modem 214, and connected to a display 216. The console 210 has an input handset 218 connected thereto which can 10 be operated by a user to provide user input signals to the console 210. During execution of the computer program product on the computer games console 210, a texture decompressor, supplied embedded in the machine code file of the computer program product, is initiated 15 each time a texture is required by the product during execution thereof. This texture decompressor acts on the data of a compressed texture, reexpanding the data into a texture map for application to computer graphics for display. 20 The graphics development tool 130 comprises a series of functions 132, which can be called by the content software 152. These functions 132 consist of fragments of machine code which, in use, will interface with the 25 hardware for which the graphics development tool 130 is 8 provided, to cause the display on that hLrdware of a particular graphical output.
Amongst those functions 132 is a texture compressor 134, which is used in the case that a texture 144 is called by the content software. As illustrated in Figure 2, the artwork 142 crated by the artwork development tool 140, comprises six textures 144. The compiler 160 reviews the content software 152 for references to other packages such as the graphics development tool 130 and, when a call is made to a function 132 of the graphics development tool 130, the compiler retrieves the relevant machine code of that function 132. In preparation for compilation, the developer using the apparatus applies the texture compressor 134 to the textures 144 to produce compressed textures which can then be incorporated into the compiled output file 162. Then, the compiler 160 embeds a texture decompressor 136, supplied with the texture compressor 134, to be used when the compressed texture is to be called during execution of the machine code.
A texture map is generally represented by a square or rectangular array, the corners of which can be mapped to particular points on an object to which the texture map 9 is to be mapped. In that way, accurate superposition can be achieved. For example, in Figure 3, a six sided dice 300 is illustrated, whose basic shape can be described as a cube, by means of its eight vertices (of which vertices 302 to 314 are visible).
If the dice 300 were to be described entirely in terms of triangles, each triangle being assigned a single colour, a large number of triangles would be required in order to describe the "spots" of the dice 300. The triangles constructing the spots would be required to be of a different colour in order to contrast with the main body of the dice 100, and would need to be small enough to define circles to sufficient accuracy as to be acceptable to the viewer.
Instead of constructing the entire object by means of polygons, Figure 4 illustrates a manner of representing the dice 300 by means of a cube on to which the three visible surfaces illustrated in Figure 4 have texture maps 144 associated therewith. Each side has a texture map 144 associated therewith, the corners of the texture map being mapped to the vertices of the side of the dice 300.
The illustrated texture maps 144 represent one-spot, four-spot and five-spot sides of the dice 300. These texture maps 144 are generated on the artwork generation tool 140, either as drawn pictures or digitised from photographic images of real dice. In that way, they can be given real features such as scratches, dirt and imperfections to add to the realism of the final image of the dice 300.
Each of the texture maps 144 comprises a square array of data having 128 x 128 entries. Each entry of the array, known as a texel, includes information concerning the colour of the texel. This colour information is presented in RGB format.
The application of the texture compressor 134 to a simplified example now follows, with reference to Figures to 11 of the drawings, with reference to Figure 12 which sets out a flow diagram describing the process of comprising a texture.
Figure 5 illustrates a simplified texture map 400, in that it consists of a 16 x 16 array of texels 410. A 16 x 16 array is used by way of example only; the reader will appreciate that the same method can be applied to the 128 x 128 textures 144 described ebove. The structure of a particular texel 410, namely that located at the top left hand corner of the texture map 400, is illustrated in Figure 6. The texel 410 is designated as Tc)O. The colour information associated with the texel Too is in RGB format, and is illustrated separated into component ROO, G.. and Boo.
In step S10 of the diagram, two rows of texels of the texture map 400 are selected for compression. The data of the texels is converted in step S12 from RGB format to YUV format.
The apparatus of the present invention requires that the colour information be converted into a different format, namely YUV format. This ensures that chromatic values can be separated from non-chromatic values, the former being compressed further than the latter. This step is illustrated in Figure 6, and the resultant converted texel data structure is designated Too'. The conversion from RGB format to YUV format is relatively straightforward, involving a 3 x 3 matrix multiplier, such as:
12 1 Y1 0.299 0.587 0: 11 U -0.146 -0.288 0 43:
v G 0.617 -0. 517 -0.100 1 Step S14 identifies the U and V values for the two rows of texels. As shown in Figure 7, the texelsare considered in groups of four, each group constituting a 2 x 2 block 212 of texels. In each block, step S14 assumes the same value of U and V across all four texels.
These assumed values of U and V are weighted averages of the U and V values of the original four texels within the block. As illustrated in Figure 8, the U and V components (which define the chromatic part of the data defining the texel), are extracted from the four texels Too 1, TO, 1, TjO ' and T11 1. The U and V components of those four texels are averaged, i.e.
UO UO + U, + U, VG + VO Vo + Vn (2) 4 Therefore, in the present example, the Y component of the texel data is retained over the entire texture map, whereas U and V are sampled to the extent that only a quarter of the original data is retained. Accordingly, out of twelve pieces of data supplied for the described four texels (Y, U, V for each texel), six pieces of data 13 are discarded. only half of the original data is retained. By sampling the chroina (U, V) component of the YUV representation, and retaining full detail in the luminance (Y) component of the representation. the eye is deceived into viewing the sampled texture map as of acceptable quality. Sampling the chroma component has little discernible effect on the quality of the image which can be produced.
The function (2) combining the four U, V values corresponding to the four original texels within a block could be replaced by a function other than a weighted average, as desired.
The result of step S14 is a single stream of U values and a single stream of V values for the two rows of texels under consideration.
The data is now translated into an array and a delta sample is formed over that array, row by row. In step S16, a start value S is saved at the beginning of each row to ensure that drift is corrected and that the expected jump in value between the end of one row and the beginning of the next causes no problem with the delta sampling. Af ter the start value S, each entry of the 14 array is calculated in step S18. Each entry comprises a value which is the difference between the Y-value of the texel corresponding to the array entry in question and the preceding texel in the row.
An advantage of taking a delta sample is that it takes advantage of any uniformities in the texture map data, which produce a sequence of low values in such a sample technique. Consequently, the number of different values present in a stream of data can be reduced by delta sampling. This reduces the "entropy", or level of disorder, of the data.
In order to increase the possibility of compression of is the data, the delta sample values are constrained into a logarithmic bucket structure. That is, the delta sample data is constrained so that it can only assume values which are members of the set {-8, -4, -2, -1, 0, +1, +2, +4, +81. By assigning only nine possible values for the delta samples, some errors and ringing may be introduced into the data, but this has no major impact on the quality of the image.
Figure 9 demonstrates this delta sampling in more detail, with reference to Figure 13 which sets out a process of placing the sample data in logarithm buckets. Figure 9 is a graph of a nominal plot of Y (luminance) as consideration passes row by row through a texture map.
A dotted line 500 represents a boundary between the end of one row and the beginning of another. Beneath the graph, delta values AY are shown being read off the graph as samples are taken. A stream of AY data is designated 502. That stream' of AY data 502 is further processed, commencing in step S30 of Figure 13, to ensure that all values fall inside the logarithmic bucket structure. If, from previous processing of the stream, a carry is detected in step S32 as being stored, it is added in step S34 to the value from the stream of AY values under consideration. Then, in step S36, a check is made as to whether the AY value falls within the set of permitted values. In the event that a AY value does not appear in that logarithmic bucket structure, then the nearest available value from within the logarithmic bucket structure is selected in step S38 and corrections are applied at later samples by saving the difference between the actual ZY value and the constrained value as a carry value, in step S40. Otherwi-se, if no adjustment is necessary, then, in step S42, the actual AY value is passed for later coding. For example, the sixth sample 505 of AY returns a value of +3. The nearest member of A 16 the set of available values is +4. This is entered in the AY data stream 504 as a +4 value with a carry value of -1 being noted for the next sample. The next actual sample is +1. This is added to the carry value of -1, which produces another acceptable value, namely 0. This is entered in the next sample space in the data stream 504. The same technique is shown at the end of the illustrated portion of the data sample, where another AY value of +3 is encountered. Step S44 is illustrated, showing that at the end of the row of AY values, the process ends until called in respect of the next row of texels.
The delta sampling procedure is also applied to the set is of values of U over the texture map and the set of values of V over the texture map, in step S20. Firstly, initial values of U and V for these two streams are stored in memory. Clearly, because of the earlier sampling step to remove 75% of U and V data, less data is collected in this step. As shown in Figure 10a, the AY' values are collected on a row by row basis with associated starting values Sy and these are entered in an array 506.
correspondingly in Figures 10b and 10c, 15W and AV' values are obtained and stored in arrays 508, 510 on a row by row basis.
Thereafter, S22 considers all of the constraint delta values LY', LU' produced in steps S16 and S20, and constructs a Huffman code book in accordance with the frequency with which certain delta values are encountered. The construction of a Huffman code book is described in detail in "An Introduction to Digital Video" by John Watkinson, Focal Press, 1994, pp 145-146.
Each row of each array 506, 508, 510 is then encoded, in step S24, according to the Huffman code constructed in step S22. Huffman coding is widely used in data communication techniques in order to compress data to an extent where it is efficient to transmit. Huffman coding is a variable length coding system, which makes use of the fact that some of the A values will be less frequent than others, and so the more frequent A values will be assigned shorter codes then the less frequent A values.
The data which has been compressed by a Huffman code is then arranged in the f orm of a data structure as illustrated in Figure 11. The data structure represents two rows of the original texture map 400. The data structure 520 comprises a Huffman code book 522, an initial value for a first row of Y data 524, a Huffman data string 526 representative of that first row of Y 18 data converted into ZY' values, an initial Value of Y for a second row of Y data 5 2 8, a further Huf fman data string 530 for the AY' values for that second row, an initial value 532 of U for the row of U values corresponding with the two rows of Y values previously identified, a Huffman data string 534 encoding the AU' values for that row, an initial value 536 of V for that row and a Huffman data string 538, encoding the AUI values.
The structure can then be saved to the mass storage device 114, prior to inclusion in the complied output file 162 to be issued as a computer software product.
Each packet in the form illustrated in Fywell represents two rows of the original texture map. Accordingly, the texture map 400 cannot be decompressed on a texel by texel basis, but two rows of texels can be decompressed in isolation from other parts of the texture map.
The set of nine values used for log sampling as described above is merely one example of a number of different sets capable of being used in accordance with the invention.
Larger sets, with consequently larger available steps, allow a greater capability to follow hard edges in the texture bit map being compressed, and give a generally higher resolution image reproduction. However, smaller 19 sets are useful because they provide an accptably small set of symbols for Huffman data compression.
In step S26, a check is made as to whether any more rows remain to be considered in the texture map. If further rows require encoding, then they are dealt with in the same manner from step S10 onwards. When no more rows remain to be considered, the procedure ends.
The end result of the procedure illustrated in Figure 12 is a series of packets of data in the f orm illustrated in Figure 11. These can all be placed in the mass storage device 114 for later retrieval.
Figure 14 illustrates components of the computer games apparatus 2 00, configured by the computer program product supplied on the optical disk 190. The computer program product 164 is composed of a game program 152' which is a compiled version of the source code 152 developed on the developer apparatus 100. The game program 152, configures the game console 210 to be operative to react to signals input from the handset 218 to cause output of display data to the display 216.
In the development of display data, compresed textures 144' are referred to by the game program 152'. On reference of the game program 1521 to a compressed texture 1441, the decompressor 136 is executed to decompress the called compressed texture 144'. The decompressed texture 144 is then delivered to the game program 1521 for incorporation into display data for output to the display 216. During operation of the game program 152', compressed textures 1441 can be held either in memory of the game console 210, or retained on the optical disk 190. The advantage of the former is that the compressed texture 1441 will be quickly retrievable for decompression and use; the advantage of the latter is that possibly limited memory capacity is not used in is storing compressed textures 144'. The choice of one or other storage method is at the discretion of the developer having regard to the particular hardware in use, and the nature of the content software.
When a texture map is to be used by the game program 152 the packets of data of which a compressed texture is composed are processed in the decompressor 136 in accordance with the procedure illustrated in Figure 15.
This procedure decodes the packets of data and reassembles a texture map. The procedure commences with 21 a f irst packet of data which is read in to nemory in step S50. In step S52, the encoded parts of the packet of data 526, 530, 534, 538 are decoded in accordance with the Huffman code book 522. In step S54, these decoded strings of data are integrated with reference to the initial values 524, 528, 532, 536 stored therewith, to obtain actual values of Y for the two rows, and actual values of U and V for the two rows in combination.
In step S56, the two rows of Y values are loaded into corresponding two rows of the texture map being reconstructed. The single rows of U and V values are loaded in step S58 into the blocks of four texels, as represented in Figure 7, over the two rows of the texture map being reconstructed.
As a result of the compression and decompression of the data, there will be a reduction in resolution in the U and V parts of the data. However, as previously noted, this does not cause significant deterioration in the quality of the texture map.
In step S60, the YUV data for the texels is converted into RGB format by multiplication with the inverse of the matrix previously described. In step S62, an enquiry is 22 made as to whether any more packets of dataremain to be considered. If more packets remain to be considered, then the next packet is read in step S50 and the procedure follows as before. otherwise, the procedure ends.
The apparatus and procedures described above are advantageous in that they allow a library of texture maps to be constructed, either in a mass storage device 114 such as illustrated in Figure 1, or on removable storage media such as an optical disk 190. Moreover, texture maps designed professionally can be supplied in compressed form on an optical disk, such as a CD ROM for use by designers and/or artists. A texture map used by a designer will be retrieved and decompressed by the method illustrated in Figure 15.
23

Claims (1)

  1. CLAIMS:
    1. Bit map data compression apparatus comprising:
    data generating means for generating luminance and chroininance data for a bit map; sampling means for sampling chrominance data across said bit map; and compression means for compressing said luminance and sampled chrominance data, said compression means comprising means for generating difference signals in respect of said luminance and sampled chrominance data.
    2. Apparatus in accordance with claim 1, wherein the sampling means is operable to generate sampled chrominance data for a predetermined sub-set of said chrominance data, as a function of the chrominance values for said predetermined sub-set.
    3. Apparatus in accordance with claim 2, wherein said sampling means is operable to generate sampled chrominance data which is an average of the chrominance data for the sub-set.
    24 4. Apparatus in accordance with any prededing claim, wherein said compression means includes means for quantising said difference signals.
    5. Apparatus in accordance with claim 4, wherein said means for quantising is operable to quantise each of said difference signals in accordance with a predetermined set of possible output values. 10 6. Apparatus in accordance with claim 5, wherein said possible output values are distributed non-linearly within said set. 7. Apparatus in accordance with claim 6, wherein said 15 possible output values are distributed substantially exponentially. 8. Apparatus in accordance with any one of claims 4 to 7, wherein said compression means includes coding means 20 operable on quantised data to generate compressed codes.
    9. Apparatus in accordance with claim 8, wherein said coding means is operable to apply a variable length coding scheme to said data.
    10. Apparatus in accordance with claim 8; or claim 9, wherein said coding means is operable on said quantised data to generate a code of said data, said code comprising an assignment of coded outputs to possible inputs, said coded outputs being assigned such that shorter outputs are assigned to more frequently encountered possible outputs.
    11. Apparatus in accordance with any of claims 8 to 10, wherein said coding means is operable in accordance with the Huffman code.
    12. Storage means storing instructions for causing a programmable processing apparatus to become configured as an apparatus as set out in at least one of claims 1 to 11.
    13. A method of compressing a bit map comprising the steps of:
    generating luminance and chrominance data for said bit map; sampling said chrominance data across said bit map; and compressing said luminance and sampled chrominance data, said compressing step comprising generating 26 difference signals in respect of said luminance and sampled chrominance data.
    14. A method in accordance with claim 13, wherein said step of sampling includes generating sampled chrominance data for a predetermined sub-set of said chrominance data, as a function of the chrominance values for said predetermined sub-sets.
    15. A method in accordance with claim 14, wherein said generating step includes generating sampled chrominance data which is an average of the chrominance data for the sub-sets.
    16. A method in accordance with any one of claims 13 to 15, wherein said compressing step includes quantising said difference signals.
    17. A method in accordance with claim 16, wherein said quantising step includes quantising each of said difference signals in accordance with a predetermined set of possible output values.
    27 18. A method in accordance with claim 17,'wherein said predetermined set of possible output values are distributed non-linearly.
    19. A method in accordance with claim 18, wherein said predetermined set of possible output values are distributed substantially exponentially. 20. A method in accordance with any one of claims 16 to 10 19, wherein said compressing step includes coding said quantised data to generate compressed codes. 21. A method in accordance with claim 20, wherein said coding step includes generating a code comprising an 15 assignment of coded outputs to inputs, said coded outputs being assigned such that shorter coded outputs are assigned to more frequently encountered possible inputs. 22. A method in accordance with claim 20 or claim 21, 20 wherein said coding step includes applying a variable length coding scheme to said quantised data. 23. A method in accordance with any of claims 20 to 22, wherein said step of coding includes coding in accordance 25 with a Huffman code.
    28 24. A method in accordance with any of clams 13 to 23, further comprising the step of generating a signal conveying the compressed data.
    25.A method in accordance with any of claims 13 to 24, further comprising the step of recording the compressed data either directly or indirectly to produce a recording thereof.
    26. A method of decompressing a bit map compressed by the method of any one of claims 13 to 25, comprising the steps of:
    integrating said difference signals to obtain luminance and sampled chromatic data; assigning luminance data across a bit map; and assigning sampled chromatic data across said bit map including repeating elements of said sampled data with reference to sample frequency.
    27. Storage means storing instructions for causing a programmable processing apparatus to become operable to perform a method as set out in at least one of claims 13 to 26.
    29 28. A signal conveying instructions for causing a programmable processing apparatus to become conf igured as an apparatus as set out in at least one of claims 1 to 29. A signal conveying instructions for causing a programmable processing apparatus to become operable to perform a method as set out in at least one of claims 13 to 26.
    30. Apparatus for compressing bit map data substantially as described herein with reference to, or as shown in, the accompanying drawings.
    is 31. A method of compressing bit map data substantially as described herein with reference to, or as shown in, the accompanying drawings.
GB0004848A 1999-03-02 2000-02-29 Apparatus and method for compression of bit-mapped data Withdrawn GB2353452A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9904770A GB9904770D0 (en) 1999-03-02 1999-03-02 Apparatus and method for compression of data

Publications (2)

Publication Number Publication Date
GB0004848D0 GB0004848D0 (en) 2000-04-19
GB2353452A true GB2353452A (en) 2001-02-21

Family

ID=10848796

Family Applications (2)

Application Number Title Priority Date Filing Date
GB9904770A Ceased GB9904770D0 (en) 1999-03-02 1999-03-02 Apparatus and method for compression of data
GB0004848A Withdrawn GB2353452A (en) 1999-03-02 2000-02-29 Apparatus and method for compression of bit-mapped data

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB9904770A Ceased GB9904770D0 (en) 1999-03-02 1999-03-02 Apparatus and method for compression of data

Country Status (1)

Country Link
GB (2) GB9904770D0 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2445008A (en) * 2006-12-20 2008-06-25 Sony Comp Entertainment Europe Mipmap compression/decompression using difference data
EP1989682A1 (en) * 2006-02-23 2008-11-12 Microsoft Corporation Pre-processing of image data for enhanced compression
US9106936B2 (en) 2012-01-25 2015-08-11 Altera Corporation Raw format image data processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993014600A1 (en) * 1992-01-21 1993-07-22 Supermac Technology Method and apparatus for compression and decompression of color image data
US5293228A (en) * 1991-05-17 1994-03-08 France Telecom Method for the coding of color images at high compression rate without filtering, corresponding decoding method, coder, decoder and applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293228A (en) * 1991-05-17 1994-03-08 France Telecom Method for the coding of color images at high compression rate without filtering, corresponding decoding method, coder, decoder and applications
WO1993014600A1 (en) * 1992-01-21 1993-07-22 Supermac Technology Method and apparatus for compression and decompression of color image data

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1989682A1 (en) * 2006-02-23 2008-11-12 Microsoft Corporation Pre-processing of image data for enhanced compression
EP1989682A4 (en) * 2006-02-23 2011-11-30 Microsoft Corp Pre-processing of image data for enhanced compression
US8243340B2 (en) 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US8837006B2 (en) 2006-02-23 2014-09-16 Microsoft Corporation Pre-processing of image data for enhanced compression
GB2445008A (en) * 2006-12-20 2008-06-25 Sony Comp Entertainment Europe Mipmap compression/decompression using difference data
GB2445008B (en) * 2006-12-20 2008-12-31 Sony Comp Entertainment Europe Image compression and/or decompression
US9106936B2 (en) 2012-01-25 2015-08-11 Altera Corporation Raw format image data processing

Also Published As

Publication number Publication date
GB9904770D0 (en) 1999-04-28
GB0004848D0 (en) 2000-04-19

Similar Documents

Publication Publication Date Title
Beers et al. Rendering from compressed textures
EP1285399B1 (en) Enhanced compression of gray-level images
US9466125B2 (en) Weight based image processing
US6285790B1 (en) Data compression for indexed color image data
JP3886184B2 (en) Image data processing method and image processing apparatus
JP2968582B2 (en) Method and apparatus for processing digital data
US5838823A (en) Video image compression and decompression
US7415154B2 (en) Compression of palettized color images with variable length color codes
US20070076971A1 (en) Compression of images for computer graphics
US20090202159A1 (en) Image Processing
GB2539241A (en) Video processing system
KR20210094054A (en) Bit-plane encoding of data arrays
US5907635A (en) Picture data decompression apparatus
US20010012397A1 (en) Image processing apparatus and method
JP4189443B2 (en) Graphics image compression and decompression method
US20180097527A1 (en) 32-bit hdr pixel format with optimum precision
US20210256734A1 (en) Texture Compression
KR101100829B1 (en) System and method for lossless compression and decompression of image data
US7088858B2 (en) Digital signal coding with division into tiles
US5638464A (en) Image processing apparatus
GB2353452A (en) Apparatus and method for compression of bit-mapped data
US6912305B1 (en) Computer animation
US7903741B2 (en) Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
CN111739112A (en) Picture processing method and device, computer equipment and storage medium
US8918440B2 (en) Data decompression with extra precision

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)