IMPROVED VECTOR QUANTIZATION OF IMAGES

Abstract: A method of compressing an image is described in which digital data signals in a 2-dimensional image are formed into an image data pyramid with a number of layers and each layer is processed to give a compressed encoding in an ordered list. The encoding with the largest quality gain factor is selected first and added to a compressed representation of the data array. This is repeated for the next largest gain factor and so on until a predetermined maximum is reached. Each layer of the image data pyramid corresponds to different frequency bands, the vector quantizations of these layers will only minimally interfere with one another. This allows a simple ordering of all possible gain contributions made by the compressed encodings, to the compressed representation. This in turn allows a straightforward selection of the compressed encodings having the largest quality gain factors, for compiling the compressed representation of the image.

Description: IMPROVED VECTOR QUANTIZATION OF IMAGES The present invention relates to image compression, and m particular to image compression techniques utilising vector quantization of image data A two-dimensional image, which may for example be an individual image or may be a frame of a video sequence, can conveniently be represented m a computer system as a two-dimensional array of numbers where the numbers encode the brightness of a particular pixel to be displayed on a CRT or other display device For data compression purposes it is often convenient to represent the array of image data m a more coarsely quantized form After compression the data is stored in less memory space, but this occurs at the cost of a loss of accuracy Vector quantization is a well-known enhancement which can be applied to image compression so as to obtain significant reductions m the number of bits required to represent a given image m a computer system In vector quantization of a two-dimensional image a codebook of reference patches (e g relatively small portions of an image taken from one or more "library" images) is constructed An image to be compressed is partitioned into a number of image patches and a matching d e similar) reference patch is selected for each patch of the original image, from the codebook The codebook index for each chosen reference patch m the codebook is stored, together with addressing information (giving the positions of the image patches m the original image) to provide a compressed representation of the image The chosen codebook index for a patch is often referred to as the "compressed encoding" of the patch Providing that a copy of the codebook is available, an approximation of the original image can be constructed by using the stored codebook indices to recover the required set of reference patches and inserting these into an image frame using the respective stored image patch position vectors W097/16026 describes an improved vector quantization SUBSTΓTUTE SHEET (RULE 26) technique which increases the compression ratio which can be achieved n the compressed image This technique effectively decides what subdivision will be carried out for individual patches of the original image, when selecting matching reference patches 1 e the size and position of he reference patches from the codebook which will be used to replicate a given patch of the original image This involves selecting from a plurality of compressed encodings that one of the compressed encodings whicn, when uncompressed and added to a reference data array, gives the biggest improvement therein relative to tne original image data array The method progressively adds to the reference data array the compressed encodings providing the greatest improvements to the reference array, until a predetermined maximum number of bits are present m the compressed representation, or a desired quality level is achieved m the reference image data array One disadvantage of the technique described in W097/16026 is that there can be interaction between the improvements or "gains" of different patches at different scales, with the result that the image compressor has to repeatedly re-evaluate the gains to be had from different patches A combinatorial explosion of calculation times would be required to try to calculate the best possible combinations of patches and this is not practical to implement m the compression apparatus The technique can therefore result in non-optimal selections of patches Moreover, the compressed image often has a "blocky" appearance due to discontinuities at the edges of adjacent patches It is an object of the present invention to avoid or minimise one of more of the foregoing disadvantages According to one aspect of the present invention we provide a method of compressing an array of data entries m the form of digital electrical signals, the array representing a two-dimensional image, the method comprismg the steps of (a) forming an image data pyramid from the array of data entries, said pyramid having a plurality of layers, a first and lowermost said layer comprising said array of data entries, and each subsequent higher layer comprising a data array representing the image using less data, ana having smaller dimensions, than the previous layer, (b) processing each layer of the image data pyramid so as to obtain a set of compressed encodings for each layer, wherein each said compressed encoding can be uncompressed to provide an approximation of a block of image data αeπved from a respective layer of the image data pyramid, and a respective quality gain factor associated with each said compressed encoding, (c) creating an ordered list of the compressed encodings, ordered sequentially according to the quality gam factors associated therewith, (d) selecting the compressed encoding associated with the largest quality gain factor and adding this compressed encoding to a compressed representation of the data array, (e) selecting the compressed encoding associated with the next largest quality gain factor and adding this compressed encoding to the compressed representation of the original image data array, and (f) recursively repeating step (e) for the remaining compressed encodings until the number of bits m the compressed representation reaches a predetermined maximum The compressed representation to which the compressed encoding with the largest quality gain is added the first time step (d) is carried out is an empty data file As more and more compressed encodings are added to this (initially empty) data file, the number of bits m the data file (and thus m the compressed representation) increases, until finally the predetermined maximum number of bits is reached (this SUBSTITUTE SHEET fRULE 26) may, for example, be when an area of memory allocated for Preferably, step (a) comprises forming a non-differential image data pyramid, having layers 0 to n, from the original image data array, and step (b) comprises 1) define a "current layer number" l and set ι=n-l, where n is the topmost (i e smallest) layer of the non-differential pyramid, 2) divide layer n of the non-differential pyramid into a grid of blocks which are, preferably, uniformly sized, determine a compressed encoding for each said block layer n of the non-differential pyramid, wherein the compressed encoding can be uncompressed to provide an approximation of the block, and determine a quality gam factor associated with each said block m layer n of the non-differential pyramid and its respective compressed encoding, 4) replace each block layer n of the non-differential pyramid with its respective compressed encoding, uncompressed form, so as to form a current decompressed image at layer n, 5) form an expanded version of the current decompressed image at layer i+l such that the expanded version has the same dimensions as the pyramid layer l, and subtract this expanded version from the pyramid layer I so as to form a differential pyramid layer i, 6) divide the differential pyramid layer i nto a grid of, preferably uniformly sized, blocks, determine a compressed encoding for each said block m the differential pyramid layer I, wherein the compressed encoding can p e uncompressed to provide an approximation of the block, and determine a quality gam factor associated with each said block m the differential pyramid layer i and its respective compressed encoding, 7) replace each block m the differential pyramid layer I with its compressed encoding, so as to form a decompressed differential pyramid layer 1, 8) add the decompressed differential pyramid layer 1 to the expanded version of the current decompressed image at layer 1+1, to form a current decompressed image at layer l, 9) subtract one from I (i e set l to l-l) , 10) recursively repeat steps (5) to (9) until the quality- gam factors for the lowermost layer (layer 0) of the differential pyramid have been determined Alternatively, though not so preferred, step (a) may comprise forming a non-differential image data pyramid from the original image data array, and step (b) may comprise 1) forming a differential image data pyramid from the non-differential image data pyramid, 2 ) dividing each layer of the differential image data pyramid into a grid of blocks which are, preferably, uniformly sized, said blocks preferably being the same size on each level of the pyramid, 3) determining a compressed encoding for each block on each layer of the differential pyramid, wherein the compressed encoding can be uncompressed to provide an approximation of the block, and 4) determining a quality gam factor associated with each block on each layer of the differential pyramid and its respective compressed encoding The compressed encoding for each said block preferably comprises a codebook index of an entry from a vector quantization codebook, which entry most closely matches the said block The compressed encoding may additionally include addressing information for the said block specifying the layer of tne image data pyramid which the block is located, and the position vectors defining the position within the layer at whicn the blocκ is located Alternatively , and preferably, the compressed encodings are listed m a predetermined order m the compressed representation, such that the position m the original data array (1 e the address) corresponding to a given encoding determines the position of that encoding m this list The address for any given encoding can thereby be determined by its position m the list of compressed encodings which makes up the compressed representation One advantage of the invention is that because the information at each layer of the image data pyramid corresponds to different frequency bands, the vector quantizations of these layers will only minimally interfere with one another This allows a simple ordering of all possible ga contributions made by the compressed encodings, to the compressed representation This m turn allows a straightforward selection of the compressed encodings having the largest quality gain factors, for compiling the compressed representation of the image A further advantage of the invention will be appreciated from the following In some prior art vector quantization techniques for image compression, each block of the original image data array is represented m the computer system as two components a brightness shift and a codebook entry (I e compressed encoding) The brightness shift is added to the codebook entry when reconstructing the image The advantage of th s is that the codebook can be made smaller if it does not nave to include the same pattern at a whole range of brightnesses This speeds up encoding and reduces the memory requirements of the decoder (I e decompressor) The disadvantage is that additional information (brightness shift) has to be sent to update each block of the image In the method of the present invention, at all pyramid levels with the exception of the topmost and thus smallest layer, each block will inherit a background brightness level from the layer above it in the pyramid The amount of information which must be used to represent each block is thus smaller than the latter described prior art methods This, turn, allows higher compression ratios to be achieved with the present invention, as compared with such prior art methods. A further benefit of the above-described first and preferred embodiment m which step (b) comprises the above-described steps (1) to (10), is that m that embodiment each lower layer (i) of the pyramid is effectively used to partially compensate for any artifacts introduced by mismatches between the codebook entries and the original blocks of data from the layer above d+1) There are inevitably artifacts in any codebook based compression scheme where the range of possible variety of the entries m the codebook is less than the range cf possible variety of the original data One artifact that will occur when comparing an enlarged version of a decompressed image as compared to what one would get with simply shrinking and then re-expandmg an image is that there will be errors in mean brightness over groups of pixels Suppose that each layer is half the linear dimensions of the layer below, then a pixel m layer corresponds to 4 pixels layer l-l Now f we simply shrunk an image and re-expanded it, this v/ould be equivalent, if we used a naive expansion algorithm, with simply replacing each block of 4 pixels with their average If the layer above has been vector quantized or otherwise compressed, then the pixel that is expanded to 4 pixels may no longer correspond exactly with the average of the 4 original pixels Instead, it will have a 'quantization' error Sucn quantization errors are artifacts that, subject to availability of bits m the compressed data channel, can be corrected in the vector quantized layer below Preferably, the invention also provides a method of decompressing the compressed representation of the image data array obtained m the method according to the above first aspect of the invention, so as to obtain a reconstructed image data array, the decompression method comprising the steps of (a) forming a reference image data pyramid, having the same number of layers, 0 to n, and each layer having the same dimensions, as the image data pyramid formed m step (a) of the above-described method, m whicn reference pyramid each data entry is preferably set to mid-grey, (b) using the information in the compressed representation to replace at least some portions of each layer of the reference data pyramid, (c) defining the topmost (smallest) layer n of the reference data pyramid to be the "current" layer (d) expanding the current layer of the reference data pyramid to match ( dimensions) the layer immediately below the current layer the reference data pyramid, so as to form an expanded version of said current layer, and adding said expanded version of the current layer to said immediately below layer to form an updated version of said immediately below layer, (e) defining the updated version of said immediately below layer to be the current layer, (f) recursively repeating steps (d) and (e) until the updated version of the lowermost layer the reference data pyramid has been obtained, which updated version of the lowermost layer is the reconstructed image An additional advantage of the invention, which will e particularly apparent from the above description relating to the decompression process, is that in the decompressed version of the compressed representation the block boundary artifacts d e blocky appearance) that are often visible when using prior art compression/ decompression techniques ased solely on block encoding schemes (I e without using the image data pyramids according to the present invention) can be avoided as long as suitable interpolation, such as for example linear interpolation, s used during the expansion of the pyramid layers According to another aspect of the invention we provide apparatus for compressing an array of data entries the form of digital electrical signals, the apparatus comprising digital data processing apparatus, conveniently tne form of a computer system set up to run a program embodying the method according to the above-described first aspect of the invention According to a third aspect of the invention we provide a computer program product comprising a computer usable medium having computer readable code means embodied m said medium for compressing an array of data entries in the form of digital electrical signals, said computer program product having computer readable code means for carrying out the described steps of the method according to the first aspect of the invention Preferred embodiments of the invention will now be described, by way of example only and with reference to the accompanying drawings n which Fig 1 illustrates the process of forming a differential image pyramid from a non-differential image pyramid, Fig 2 illustrates a linear interpolation technique, Fig 3 illustrates a differential image divided into a grid of square blocks, Fig 4 illustrates an ordered list stored a memory, Fig 5 illustrates schematically two ad acent layers of an image pyramid, and F g 6 is a schematic diagram illustrating an image compression system according to one embodiment of the invention It will be understood that the images shown Fig 1 are digital images which are each represented, m digital image processing, by a two-dimensional array of data entries, each data entry representing the digital electrical signal at one pixel a two-dimensional pixel array whicn displays the image It will further be generally understood that m the below-described image processing methods it is the arrays of data entries representing each image which are operated on as des cπbed Uppermost m Fig 1 is a non-differential image pyramid having three layers 1,2,3 The lowermost layer 1 is an original image obtained, for example, as a still frame from a video camera This original image is used to form the two smaller image layers 2,3, by first effectively shrinking the original image to form a half-scale image at the next layer 2 up m the pyramid, which next layer up is then itself shrunk to produce an image at the uppermost (topmost) layer 3 of the pyramid The topmost layer of the pyramid is quarter- scale m size, relative to the original image (the lowermost layer 1) The larger images the pyramid contain information that is not present the smaller ones The formation of such image pyramids is well known in the arts of computer vision and image processing, and one technique is described, for example, "Structured Computer Vision, S Tanimoto & A Klmger, Academic Press 1980 Various techniques are nevertheless known for forming a non-differential image pyramid and any of these may be used to form the pyramid of Fig 1 Lowermost m Fig 1 are three image layers 6,7,8 a differential image pyramid formed from the non- differential image pyramid layers 1,2,3 The full and half scale images the differential pyramid are formed bv subtracting enlarged versions 4 5 of the half and quarter scale images (i e the two uppermost layers 2,3 are enlarged to full and half scale size respectively) from the full and half scale images (the two lowermost layers 1,2) respectively m the non-differential image pyramid, as illustrated m Fig 1 When enlarging the image from one layer to another, some appropriate smoothing interpolation is performed, for example a bi-l ear or bi-cubic interpolation Bi-lmear interpolation, where interstitial pixels are formed as the average of the pixels which surround them, is illustrated m Fig 2 m which the large circles with labelled co-ordinates represent pixels m an image of size N and the small circles represent the pixels an image of size (2N) -1 that are derived from them by bilinear interpolation when the image m layer of size N is expanded to twice its size Thus small circle a is the average of pixels (0,0) and (1,0), b is the average of pixels (1,0) and (1,1) whilst e is the average of all of the larger pixels The topmost layer 8 the differential pyramid is the same image as the topmost layer of the non-differential pyramid Again the processes for forming differential pyramids are well known the computer vision arts, and are described for example m the above-mentioned reference "Structured Computer Vision" It should be noted that the difference images d e the two lowermost layers 6,7) m the differential pyramid contain information up to a certain frequency This is the same frequency for the two difference images and will general be m the range between the Nyquist limit to ust above half the Nyquist limit for the scale at which they are represented. Since each image is half the size of the previous one, this means that each contains information corresponding to roughly half the frequency of the previous one (The information will not be at exactly half the frequency since the process of expanding the smaller image before subtracting it from a larger one may introduce artifacts m frequency space ) First Embodiment of the Compression Method We now propose an improved process for the vector quantization of video data using the above-described pyramids The method steps are as follows 1 Form a non-differential image pyramid from an original video image (as described above) , 2 Convert this to a differential image pyramid (as described above) , 3 Divide each layer of the differential pyramid into a grid of uniform sized rectangular "patches" as shown n Fig 3 The patches are the same size on each layer of the pyramid In the embodiment illustrated m Fig 3, a differential pyramid image layer _-s shown divided into a grid of 7x7 square patches 4 For each patch each layer determine the codebook entry, from a vector quantization codebook, that best matches it, 5 For each patch and its corresponding vector quantization codebook entry determine the quality gam G as follows n n n n G " 1 Σ= 0 j Σ= 0 <-">' 1 Σ= 0 j Σ= 0 ^ Where Pij stands for the pixels m the patch and Cij the corresponding pixels m the codebook entry This can also be represented as G=S-R where n π ι = 0 j = o represents the total energy of the image within the patch, and n n 1=0 j=0 represents the energy of the residual error within the patch after it has been subjected to the compression and decompression process Thus, the total gam G is G=S-R l e gam G is the source energy S minus residual error It will be appreciated that this gam measure G is based upon the squared error values since we are assuming that pixels are represented as signed real numbers with 0 representing mid gray The codebook indices for each patch and the associated ga s G are stored in memory locations reserved therefore m a single general purpose memory bank used for all the data which needs to be stored permanently or temporarily 6 Form an ordered list of the patches based upon their associated gams, as illustrated Fig 4, the list being ordered such that the patches are sequentially ordered according to ever decreasing ga , with the patch having nighest ga G being first m the list Techniques for forming such lists are well known See, for example, "Fundamental Algorithms" D Knuth, Addison Wesley publishing 1975 7 Add the codebook index for the patch having the highest ga G, along with appropriate addressing information of the patch, into an empty data file, thereby forming an initial compressed representation of the original image The addressing information specifies tne layer of the pyramid and the co-ordinates (I e position co-ordinates) within the layer at which the patch occurs We refer to the chosen codebook index for the patch as the "compressed encoding" of the patch, 8 Continue to add the compressed encodings for the patches successively lower m the ordered list (I e according to decreasing gams G) to the compressed representation data file until the number of bits m the compressed representation reacnes some pre-deter ined limit set by the compression ratio Methods for creating codebooks and searching them are well known tne art The technique used the present invention m this regard are the same as those used and described in W09" 7 / 16026 The Decompression Method To decode the compressed representation we proceed as follows 1 Form an image pyramid of the appropriate size d e same number of layers and size of layers as used m the compression method) all of whose pixels on all of whose layers are set to mid grey (0 m the present emoodiment) 2 Using the information in the compressed representation replace each patch the pyramid for which there is a compressed encoding the compressed representation with the corresponding code book entry. 3 Take the topmost layer of the pyramid, expand the image in size until it is the same size as the layer below 4 Arithmetically add each pixel m the newly expanded topmost layer to the corresponding pixel m the second from top layer, placing the result of the addition m the corresponding pixel the second from top layer 5 Delete the topmost layer of the pyramid, so that the formerly second from top layer becomes the top layer. fa Repeat steps 3 to 5 until there is only a single layer left the pyramid This is then the reconstructed image Second and Preferred Embodiment of Compression Method In a second and preferred embodiment of the invention, the method for compressing an original video image has the following steps 1. Form a non-differential image pyramid with layers 0 to n, where n is the topmost, and therefore smallest, layer of the pyramid 2 Allocate a buffer to hold the current representation of the decompressed image, call this buffer B. 3 Allocate a buffer to hold the current differential pyramid layer, uncompressed form d e not ever compressed and then decompressed) , and call this buffer 4 Allocate a buffer to hold the current decompressed "differential" pyramid layer, call this buffer D. 5 Allocate a register to hold the current layer number, l, call this register I, and initialise this to ι=n-l 6 Copy into C layer n of the pyramid 7 Divide layer n m C into a grid of uniformly sized rectangular "patches" and for each patch in C find the best matching codebook entry and calculate the gam G associated therewith, using the same formula for the gam G as m step (5) of the first compression method, described above Then place the co-ordinates of this patch, the codebook index for the best matching codebook entry, and the associated gam G calculated therefor, m an empty data file the contents of which will become an ordered list as in step (6) of the first compression method as described above 8 Place into buffer D a decompressed image formed by replacing each patch C with the corresponding code book entry d e the est matching codebook entry found therefor m step 7) 9 Copy contents of buffer D into buffer B 10 If the current layer number register l is less than zero go to step 17 11 Expand the image B until it is the same size as the image m layer d), using an appropriate interpolation technique as before, and placing the expanded result back buffer B 12 Subtract image B from layer d) and store the result in buffer C 13 Divide the image buffer C into a grid of uniformly sized rectangular patches of the same size as step 7 above, for each patch in C find the best matching codebook entry, and calculate the gam G associated therewith using the same formula as before, and place the coordinates of this patch the codebook index of the best matching codebook entry therefor, and the associated ga G therefor, m the ordered list started m step 7 above 14 Place into buffer D an image formed by replacing each patch m C with the corresponding codebook entry 15 Add buffer D to buffer B 16 Subtract 1 from register l and go to step 10 17 Traverse the ordered list of codebook indices (ordered according to decreasing gam G) , placing the codebook indices having the highest ga s G into an empty data file, sequentially in order of decreasing gam G (thereby creating a compressed representation of the original image, of increasing bit size) until the data file (and hence the compressed representation) is of a predetermmed size ( .e. number of bits) . In either of the above-described compression methods, the codebook indices for the selected patches of high gain G are placed the compressed representation data file m a predetermined order according to the respective addressing co-ordinates associated therewith. In this manner it is not necessary to also store the addressing co-ordinates the compressed representation itself- the order of the codebook indices (these are the "compressed encodings" for the related patches) gives the required addressing information for each compressed encoding The compressed representation of the original image is thus made up of a series of "codewords", each codeword consisting of a compressed encoding of a patch This predetermined order which the compressed encodings are listed can be chosen from a number of possible orders. For example, the compressed encodings can be stored m "layers" i.e all the encodings for one layer, followed by all the encodings for the next layer etc. Alternatively, the encodings may be stored recursively, as follows : Assume that we are considering a local region x on layer l of the image pyramid such that region x can be compressed with a single vector quantization codeword We denote the vector quantization codeword for x as Codeword (x) Suppose further that for all ι>l on layer (i-l), that s to say, the layer immediately below layer i on the image pyramid, the region of the image that corresponds to the region x on layer I, is composed of a rectangle of subregions A,B,C,D as shown m Fig 5. The codeword sequence generated for region x and all regions below it m the pyramid we denote by CodeSeq(x) We define it as follows. if x is on the lowest layer of the pyramid then codeSeq (x) = Codeword (x) , otherwise CodeSeq (x) = Codeword (x^ CodeSeq (A) CodeSeq (B) CodeSeq (C) Codeseq (D) A recursive order of this type is likely to be preferred where runiength encoding is to be employed m the data handling. However, other suitable orders could alternatively be used, with or without runiength encoding methods . To decompress the compressed representation in order to obtain the reconstructed image, the same decompression method (steps 1 to 6) is used as already described above. It will be appreciated that the advantage of the second and preferred compression method is that each lower layer of the pyramid is able to partially compensate for artifacts (i.e. errors) introduced by mismatches between the chosen codebook entries and the associated original rectangles (patches) in the layer above, by performing the encode/decode process at the layer above and taking the result into account when obtaining the compressed encodings for the layer below When the bandwidth for the compressed representation is restricted, then vector quantization data for only a subset of all the possible patches m the pyramid will be stored in the compressed representation e.g. a subset consisting of the chosen encodings having highest gam, as described above In this case it is still possible to use the position of a codeword m the compressed representation to provide implicit addressing information for that codeword However, m this case the above-described method for recursively storing the compressed encoding is modified so that CodeSeq (x) is now defined as . if the compressed representation contains no codebook index for position x and there are no codebook indices for positions below x n the pyramid then output bit 0, if the compressed representation contains no codebook index for position x but it does contain information for one or more of the positions m the pyramid below position x then output bits 10 followed by CodeSeq (A) CodeSeq (B) Codeseq(C) CodeSeq (D) , if the compressed representation contains a codebook index for position x m the pyramid then output bits 11 followed by Codeword (x) CodeSeq (A) CodeSeq (B) Codeseq(C) CodeSeq (D) Apparatus for carrying out the above-described first embodiment of the compression method is illustrated schematically Fig 6 which shows the original image I stored a first buffer RAM 10 A microprocessor 20 programmed to carry out all the image data processing operations has read access to the first buffer RAM 10 and has read and write access to a series of image buffer RAMS 12a, 12b, 12c, 12d for storing the differential image pyramid layers respectively (Fig 6 illustrates the case where there are four layers the differential image pyramid, the top-most layer consisting of the original image I) The microprocessor 20 also has write access to an output buffer 30 into which the compressed representation of the original image is stored In the second and preferred embodiment of the compression method described above, the image buffer RAMs 12a, 12b, 12c, 12d are used for storing the layers of the non-dif erential image pyramid and the microprocessor 20 also has read and write access to three temporary working buffers B,C,D (shown broken line) which are the buffers allocated to hold the current representation of the decompressed image, the current differential pyramid layer, and the current decompressed differential pyramid layer, respectively (see steps 2,3 and 4 of the second and preferred method) It will be appreciated that various modifications to the above-described embodiments are possible without departing from the scope of the invention For example, pyramids having more than three layers could be used In practice we envisage that approximately ten pyramid layers will be provided It will also be appreciated that the feature of storing the compressed encodings m the compressed representation a predetermined order which is used to indicate the addressing information for each encoding is best suited for compression applications where full image frames are continually being compressed, sent, received and decompressed e m high bandwidth video However, where only a portion of a full frame is changing/being updated (e g low bandwidth video) it is likely to be preferable to send particular addressing information for the compressed encodings relating to the changing/updated image portion In this case, therefore, the compressed representation may also contain the addressing co-ordinates for some or all of the compressed encodings therein Furthermore, while m general the use of patches of uniform size and shape throughout the image pyramids is preferred m order to keep the size d e no of entries) of the codebook to a minimum, patches of different size and/or shape could be used at different layers, or even within a layer, of the pyramid (th s would necessarily require a larger codebook) Moreover, it may be desirable to choose the shape of the patches to match the shape of the original image e g rectangular patches for a rectangular image However, one could alternatively first change the shape of tne original image (e g from rectangular to square) and then use a desired shape of patches (e g square) Where the images are colour images it will be preferable to send all the colour data (e g red, green and blue components) adjacently (I e m immediate succession) for each pixel, rather than sending e.g all red components for all pixels, all green components for all pixels, all blue components for all pixels Thus, for colour images we assume that each image layer within the pyramid is made up of three planes holding the three respective colour components of the image These can be either red, green, blue or some other suitable tristimulus encoding of colour data. We define Codeword (X) to be given by the sequence Codeword (Xr) Codeword (Xg) Codeword (Xb) Where Xc with c ranging over the set {r,g,b} stands for one of the different colour planes that corresponds to region X of the layer.

Claims: CLAIMS 1. A method of compressing an array of data entries in the form of digital electrical signals, the array representing a two-dimensional image, the method comprising the steps of : (a) forming an image data pyramid from the array of data entries, said pyramid having a plurality of layers, a first and lowermost said layer comprising said array of data entries, and each subsequent higher layer comprising a data array representing the image using less data, and having smaller dimensions, than the previous layer; (b) processing each layer of the image data pyramid so as to obtain: a set of compressed encodings for each layer, wherein each said compressed encoding can be uncompressed to provide an approximation of a block of image data derived from a respective layer of the image data pyramid; and a respective quality ga factor associated with each said compressed encoding,- (c) creating an ordered list of the compressed encodings, ordered sequentially according to the quality gain factors associated therewith; (d) selecting the compressed encoding associated with the largest quality gam factor and adding this compressed encoding to a compressed representation of the data array, (e) selecting the compressed encoding associated with the next largest quality gam factor and adding this compressed encoding to the compressed representation of the original image data array; and (f) recursively repeating step (e) for the remaining compressed encodings until the number of bits m the compressed representation reaches a predetermined maximum . 2. A method as claimed in claim 1 wherein the compressed representation to which the compressed encoding with the largest quality' gam is added the first step (d) is carried out is an empty date file. 3 A method as claimed m claim 1 or 2 wherein step (a) comprises forming a non-differential image data pyramid, having layers 0 to n, from the original image data array, and step (b) comprises 1) define a "current layer number" I and set ι=n-l, where n is the topmost d e smallest) layer of the non-differential pyramid, 2) divide layer n of the non-differential pyramid into a grid of blocks which are, preferably, uniformly sized, determine a compressed encoding for each said block n layer n of the non-differential pyramid, wherein the compressed encoding can be uncompressed to provide an approximation of the block, and determine a quality gam factor associated with each said block m layer n of the non-differential pyramid and its respective compressed encoding, 4) replace each block layer n of the non-differential pyramid with its respective compressed encoding, m uncompressed form, so as to form a current decompressed image at layer n, 5) form an expanded version of the current decompressed image at layer 14-1 such that the expanded version has the same dimensions as the pyramid layer 1, and subtract this expanded version from the pyramid layer 1 so as to form a differential pyramid layer 1, 6) divide the differential pyramid layer 1 into a grid of, preferably uniformly sized, blocks, determine a compressed encoding for each said block m the differential pyramid layer 1, wherein the compressed encoding can be uncompressed to provide an approximation of the block, and determine a quality gam factor associated with each said block m the differential pyramid layer 1 and its respective compressed encoding, 7) replace each block the differential pyramid layer 1 with its compressed encoding, so as to form a decompressed differential pyramid layer 1, 8) add the decompressed differential pyramid layer 1 to the expanded version of the current decompressed image at layer 1+1, to form a current decompressed image at layer i, 9) subtract one from (i.e set i to l-l) , 10) recursively repeat steps (5) to (9) until the quality ga factors for the lowermost layer (layer 0) of the differential pyramid have been determined. 4 A method as claimed m claim 1 or 2 wherein step (a) comprises forming a non-differential image data pyramid from the original image data array, and step (b) comprises 1) forming a differential image data pyramid from the non-differential image data pyramid, 2) dividing each layer of the differential image data pyramid into a grid of blocks which are, preferably, uniformly sized, said blocks preferably being the same size on each level of the pyramid, 3) determining a compressed encoding for each block on each layer of the differential pyramid, wherein the compressed encoding can be uncompressed to provide an approximation of the block, and 4) determining a quality gam factor associated with each block on each layer of the differential pyramid and its respective compressed encoding 5 A method as claimed any preceding claim wherein the compressed encoding for each said block comprises a codebook index of an entry from a vector quantization codebook, which entry most closely matches the said block 6 A method as claimed any preceding claim wherein the compressed encoding additionally includes addressing information for the said block specifying the layer of the image data pyramid m which the block is located, and the position vectors defining the position withm the layer at which the block is located. 7 A method as claimed any one of claims 1 to 6 wherein the compressed encodings are listed a predetermmed order the compressed representation, such that the position m the original data array corresponding to a given encoding determines the position of that encoding this list. 8 A method of decompressing the compressed representation of the image data array obtained m the method according to the above first aspect of the invention, so as to obtain a reconstructed image data array, the decompression method comprising the steps of (a) forming a reference image data pyramid, having the same number of layers, 0 to n, and each layer having the same dimensions, as the image data pyramid formed m step (a) of the above-described method, m which reference pyramid each data entry is preferably set to mid-grey; ιb) using the information in the compressed representation to replace at least some portions of each layer of the reference data pyramid, (c) defining the topmost (smallest) layer n of the reference data pyramid to be the "current" layer (d) expanding the current layer of the reference data pyramid to match (in dimensions) the layer immediately below the current layer m the reference data pyramid, so as to form an expanded version of said current layer, and adding said expanded version of the current layer to said immediately below layer to form an updated version of said immediately below layer, (e) defining the updated version of said immediately below layer to be the current layer, (f) recursively repeating steps (d) and (e) until the updated version of the lowermost layer m the reference data pyramid has been obtained, which updated version of the lowermost layer is the reconstructed image 9 Apparatus for compressing an array of data entries m the form of digital electrical signals, the apparatus comprising digital data processing apparatus, conveniently m the form of a computer system set up to run a program embodying the method according to claim 1 10 A computer program product comprising a computer usable medium having computer readable code means embodied m said medium for compressing an array of data entries the form of digital electrical signals, said computer program product having computer readable code means for carrying out the described steps of the method according to claim 1

Inventors: COCKSHOTT WILLIAM PAUL, COCKSHOTT, WILLIAM, PAUL
Applicants: COCKSHOTT WILLIAM PAUL, UNIV GLASGOW, COCKSHOTT, WILLIAM, PAUL, THE UNIVERSITY COURT OF THE UNIVERSITY OF GLASGOW
Application year: 2001
Main classification: H04N7
IPC codes: G06T9, H04N7