WO2004029875A2 - Compression d'image - Google Patents

Compression d'image Download PDF

Info

Publication number
WO2004029875A2
WO2004029875A2 PCT/GB2003/004165 GB0304165W WO2004029875A2 WO 2004029875 A2 WO2004029875 A2 WO 2004029875A2 GB 0304165 W GB0304165 W GB 0304165W WO 2004029875 A2 WO2004029875 A2 WO 2004029875A2
Authority
WO
WIPO (PCT)
Prior art keywords
array
images
dimensional
image
codebook
Prior art date
Application number
PCT/GB2003/004165
Other languages
English (en)
Other versions
WO2004029875A3 (fr
Inventor
William Paul Cockshott
Gang Gao
Yegang Tao
Original Assignee
The University Court Of The University Of Glasgow
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 The University Court Of The University Of Glasgow filed Critical The University Court Of The University Of Glasgow
Priority to AU2003267645A priority Critical patent/AU2003267645A1/en
Publication of WO2004029875A2 publication Critical patent/WO2004029875A2/fr
Publication of WO2004029875A3 publication Critical patent/WO2004029875A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • H04N19/62Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
    • 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
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • 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/94Vector quantisation

Definitions

  • the present invention relates to image compression.
  • the invention relates to 3-D image compression, optionally using vector quantisation.
  • the invention also relates to a method for improving image compression ratios in vector and scalar quantisation techniques.
  • Images can conveniently be represented in a computer system as an array of numbers where the numbers encode the brightness of a particular pixel to be displayed on a CRT or other display device.
  • the numbers encode the brightness of a particular pixel to be displayed on a CRT or other display device.
  • it is often convenient to represent an array of image data in a more coarsely quantized form. After compression, the data is stored in less memory space.
  • Vector quantisation is a well-known enhancement that can be applied to image compression to obtain significant reductions in the number of bits required to represent a given image in a computer system.
  • a codebook of reference patches is constructed.
  • patches it is meant relatively small portions of an image taken from one or more "library” images.
  • An image to be compressed is partitioned into a number of image patches and a matching reference patch is selected for each patch of the original image from the codebook.
  • the codebook index for each chosen reference patch in the codebook is stored, together with address information for the positions of the image patches in the original image, thereby 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.
  • 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.
  • codebooks with different block sizes can be used, as could codebooks with different numbers of entries.
  • the codebooks are simply trained with fewer entries. A problem with this is, however, that having to re-train the codebook for every new application can be time consuming. Also, having to re-train the codebook to vary the compression ratio reduces the overall flexibility of the system.
  • Figure 1 represents a 2 pixel by 2 pixel rectangular region of an image.
  • the pixels are labelled P,Q,R,S.
  • the numbers representing these pixels can be represented as measurements along the axes of a 4 dimensional vector space.
  • any group of 4 pixels can be mapped onto a corresponding archetype point.
  • the archetype points in the 4 dimensional space can be allocated index numbers. If the number of such points is modest these index numbers can be represented in a small number of digits.
  • 2-D image is compressed and stored with information on the position of the original 2-D image in the stack.
  • the end result is a series of compressed files, each of which corresponds to one of the 2-D image files.
  • each compressed file is decompressed in turn and the original image is re-constructed using the sequence of decompressed files. Whilst this provides a reasonable degree of compression for the image data, an improved method would be beneficial .
  • An object of the invention is to provide an improved method for compressing 3-D images.
  • Another object of the invention is to provide improved compression ratios for image compression techniques that use codebook based quantisation techniques, such as vector quantisation or scalar quantisation.
  • a method for compressing images comprising reading or loading image data, for example a stack of images having 2 or more dimensions, into a multi-dimensional array of pixels having 3 or more dimensions and compressing the multidimensional array.
  • the method comprises reading or loading a stack of 2-dimensional images sequentially into a 3- dimensional array and compressing the 3-dimensional array.
  • the compressed image can be represented by a single file. Because of this, the compressed file is relatively small, which means that it takes up a reduced amount ._of memory space and requires less bandwidth when being transmitted.
  • the method may comprise reading or loading a stack of 3-dimensional images sequentially into a 4-dimensional array and compressing the 4-dimensional array.
  • the step of compressing preferably involves forming from the initial multi-dimensional array a reduced size multi-dimensional array having a reduced number of entries; expanding the reduced size multi-dimensional array to create an expanded multi-dimensional array, and differencing the initial and the expanded multi-dimensional arrays to form a differential multi-dimensional array.
  • the method may- further involve recursively repeating the steps of forming a reduced sized array; expanding that reduced size array and differencing, wherein the reduced size array for one layer or cycle of the process is set as the initial array for the next layer, so that the arrays for each layer of the process become successively smaller.
  • the method may further involve encoding the expanded and the or each differential array to form one or more encoded images.
  • Vector quantisation may be used to encode the expanded and differential images. To do this, vectors are formed for each non-overlapping neighbourhood of each array. Once the neighbourhood vectors are defined, they are compared with vectors in a codebook. The codebook vector that is most similar to the encoded image vector is then determined and its location is stored. To decompress the image, the original vectors can be identified by using the codebook location identifier to index the codebook.
  • scalar quantisation may be used. For a 3-dimensional array, this involves outputting each voxel of the 3-D array as a binary word of reduced precision. To identify the binary word, a codebook or code table is used.
  • a computer program preferably on a data carrier or computer readable medium, the computer program being configured to read or load image data, preferably a stack of images having 2 or more dimensions into a multi-dimensional array of pixels having 3 or more dimensions and compress the multidimensional array.
  • the computer program is configured to read or load a stack of 2-dimensional images that represent a 3- dimensional image into a 3-dimensional array of pixels and compress the 3-dimensional array.
  • the computer program may be configured to read or load a stack of 3-dimensional images sequentially into a 4- dimensional array and compress the 4-dimensional array.
  • the code or instructions for compressing are preferably configured to form from the initial multi-dimensional array a reduced size array having a reduced number of entries; expand the reduced size multi-dimensional array to create an expanded multi-dimensional array, and difference the initial and the expanded multi-dimensional arrays to form a differential multi-dimensional array.
  • the code or instructions may further be configured to recursively repeat the steps of forming a reduced sized array; expanding that reduced size array and differencing, wherein the reduced size array for one layer or cycle of the process is set as the initial array for the next layer, so that the arrays for each layer of the process become successively smaller.
  • the code or instructions may be further configured to encode the expanded and the differential multi-dimensional arrays to form one or more encoded images.
  • Vector quantisation may be used to encode the expanded and differential images.
  • the code or instructions may be configured to form vectors for each non- overlapping neighbourhood of each array. Once the neighbourhood vectors are defined, they are compared with' vectors in a codebook. The codebook vector that is most similar to the encoded image vector is then determined and its location is stored. To decompress the image, the original vectors can .be. identified by using the codebook location identifier to index the codebook.
  • scalar quantisation may be used.
  • an image compressor for compressing images, such as medical images, the image compressor being configured to read or load a stack of images having 2 or more dimensions into a multi-dimensional array of pixels having 3 or more dimensions and compress the multidimensional array.
  • the image compressor is preferably operable to read or load a stack of 2-dimensional images that represent a 3- dimensional image into a 3-dimensional array of pixels and compress the 3-dimensional array.
  • the image compressor may be configured to read or load a stack of 3-dimensional images sequentially into a 4- dimensional array and compress the 4-dimensional array.
  • the compressor is preferably configured to form from the initial multi-dimensional array a reduced size array having a reduced number of entries; expand the reduced size multi-dimensional array to create an expanded multidimensional array, and difference the initial and the expanded multi-dimensional arrays to form a differential multi-dimensional array.
  • the image compressor may further be configured to recursively repeat the steps of forming a reduced sized array; expanding that reduced size array and differencing, wherein the reduced size array for one layer or cycle of the process is set as the initial array for the next layer, so that the arrays for each layer of the process become successively smaller.
  • a method of presenting image data to a user comprising decompressing a compressed image file to provide a multi-dimensional array having 3 or more dimensions, which array represents an original 3-dimensional image and presenting 2-dimensional views of the image on a display.
  • the method may involve setting a viewing plane and providing on the display a slice of the multi-dimensional array taken over the viewing plane.
  • the method may further involve receiving a user selection of a viewing plane; determining the pixels in the multi-dimensional array that lie on that plane and presenting on the display a slice of the multi-dimensional array taken over that plane.
  • the method may further comprise presenting sequentially in time a series of 2-dimensional images, thereby to provide in effect a view moving through the 3-dimensional array.
  • a method for processing codebook entries the codebook being for use in a method of compressing images using quantisation techniques, such as vector or scalar quantisation, the codebook having entries that represent reference images, the method comprising thresholding the codebook entries and setting entries that are below a given threshold a set value, preferably zero.
  • thresholding is flexible, because a large threshold means a small number of entries in the codebook are used. On the contrary, a small threshold means a large number of entries are used. Hence, in theory, any number of entries up to the maximum size of the codebook can be achieved by choosing a different threshold. Where fewer entries are used in a codebook, then entropy encoding of the output stream results in a smaller file. This is advantageous .
  • the method further involves calculating an energy associated with each codebook entry and selecting an energy threshold, wherein the step of thresholding is dependent on the selected energy threshold.
  • the step of thresholding may be applied to the codebook prior to image compression or may be done dynamically as the compression progresses.
  • a computer program preferably on a data carrier or a computer readable medium, for reducing codebook entries, the codebook being for use in a method of compressing images using quantisation techniques, such as vector or scalar quantisation, the codebook having entries that represent reference images, the computer program comprising code or instructions for thresholding the codebook entries.
  • quantisation techniques such as vector or scalar quantisation
  • the computer program is configured to calculate energy associated with each codebook entry and selecting an energy threshold, wherein the step of thresholding is dependent on the selected energy threshold.
  • the thresholding may be applied to the codebook prior to processing an image or may be done dynamically as the compression progresses.
  • a method for enhancing codebook-training comprising inputting image data; thresholding the input image data according to pre-determined criteria and using the thresholded data to train the code book.
  • the step of thresholding involves determining a brightness or energy level for each portion of the image data; comparing the brightness or energy level with a pre-determined brightness or energy threshold and in the event that the brightness or energy level for that portion is below the threshold, then allocating a predetermined brightness or energy level to the portion.
  • the step of determining the brightness level for that portion may involve determining the brightness level of the brightest pixel or voxel and comparing the brightness of the brightest pixel or voxel with the brightness threshold.
  • the threshold set is an energy threshold.
  • a computer program preferably on a data carrier or a computer readable medium, the computer program having code of instructions for enhancing codebook training, the code or instructions being configured to receive image data; threshold the image data according to pre-determined criteria and use the thresholded data to train the code book.
  • the code or instructions for thresholding are configured to determine a brightness or energy level for each portion of the image data; compare the brightness or energy level with a pre-determined brightness or energy threshold and in the event that the brightne-ss or energy level for that portion is below the threshold, then allocate a pre-determined brightness or energy level to the portion.
  • the thresholded image may be allocated a brightness level associated with a transparent image.
  • Figure 2 is a block diagram of a system for compressing and decompressing images
  • Figure 3 is a schematic diagram of a file load buffer for storing 2-D images slides
  • Figure 4 is a schematic diagram that illustrates various steps in a 3-dimensional image compression method
  • FIG. 5 is another schematic diagram showing steps in the 3-dimensional image compression method of Figure 4.
  • Figure 6 is a diagrammatic representation of a neighbourhood of one of the 3-D arrays of Figure 4;
  • Figure 7 is a representation of a vector that corresponds to the neighbourhood of Figure 6;
  • Figure 8 is a view of a stack of 2-dimensional image files
  • Figure 9 is a view of the 3-dimensional array that corresponds to the stack of files of Figure 8;
  • Figure 10 is a diagrammatic representation of an image compressor that can be used in the system of Figure 2;
  • Figure 11 is a table showing values for use in scalar quantisation
  • Figure 12 is a table corresponding to that of Figure 10, but in which thresholding has been applied;
  • Figure 13 is a schematic diagram of steps taken in another image compression technique
  • Figure 14 is schematic diagram showing the steps taken by a thresholding algorithm
  • Figure 15 is a table showing the impact of thresholding .
  • Figure 16 is a plot of PSNR versus bits per pixel for various types of image compression
  • Figure 17 is a block diagram of yet another system for compressing images.
  • the 3-D compressor in which the present invention is embodied uses methodology that is based on the observation that a sequence of 2-D images, such as a sequence of slides obtained by a confocal microscope or a sequence of slices taken by a medical scanner can be advantageously treated as a 3-dimensional block of data, typically a cube, that can be compressed. By applying the compression in 3-dimensions, an additional layer of spatial redundancy can be exploited.
  • Various methods can be used to compress the image data. In one example, a pyramid of voxels or cubes is formed. Each cube in the pyramid contains information that is omitted from the cube above. This information is decomposed into frequency sub-bands by pyramid decomposition. This particular example is described in more detail with reference to Figures 2 to 10.
  • Figure 2 shows a codec 10 for implementing 3-D image compression.
  • codec it is meant hardware or software that converts video to digital code and vice versa.
  • the codec 10 of Figure 2 must be able to faithfully reproduce the original signal, but also compress input video data to the smallest number of bits possible.
  • the codec 10 uses vector quantisation to encode volumetric sub-bands of the input data.
  • a lossless entropy encoder using either Huffman or LZ encoding, follows this lossy compression phase.
  • the codec 10 of Figure 2 includes a store or memory 12 for storing uncompressed data files 14.
  • the uncompressed data 14 is typically held as a series of 2-D image files with the • filenames indicating where in the 3-D sequence or stack each file belongs.
  • a file input module 16 that is operable to input the uncompressed data files into an internal voxel module 18 that is adapted to generate 3-D representations of that data.
  • voxel is...meant a three-dimensional pixel that represents a quantity of 3-D data in the way that a pixel represents a point or cluster of points in 2-D.
  • the 3-D representation is typically a 3-D cube.
  • data representing each 2-D image is initially loaded into a file load buffer 20, as shown in Figure 3, with each 2-D image constituting a frame. If the original image were 200 pixels by 200 pixels this buffer would occupy 40000 bytes of computer memory.
  • the pixels in this file load buffer are then copied into a 3-dimensi ⁇ nal cube 22 such that for frame f the pixel at position x,y would be copied into the final data cube at a position of f * 40000 + y 200 + x x relative to the start of the memory block for the cube.
  • the image file ( f) is then loaded into the file buffer.
  • This file can be in an appropriate recognised format such as TIF, GIF or BMP.
  • the pixel at position x, y in the file buffer is then copied into the cube as described above.
  • the value of x is then incremented by 1 and if the new value of x is less than 200, y is set to 0 and the pixel at the new x,0 position is copied into the cube. This is repeated until x is equal to 200, at which stage, the value of y is incremented and if y ⁇ 200 then x is set to 0.
  • the system of Figure 2 includes a compressor and a decompressor 24 and 26 respectively.
  • the compressor 24 is configured to act on data output from the voxel structure 18 to produce a compressed file structure, in which a single file represents the entire 3-D sequence. During output, the data can be decompressed by the decompressor 26 and written as a sequence of 2-D image files.
  • the method for compressing 3-dimensional images will ow be described in more detail with reference to Figures 4 to 7.
  • the voxel module 18 is operable to read a stack of 2-dimensional images, such as microscopy images, into a 3-dimensional array P, as shown in Figure 4.
  • R is created having a size is the same as that of P and for
  • the encoding can be done using vector quantisation by forming a vector that represents the pixels for each non-overlapping 3-d neighbourhood in D and Q.
  • Figure 6 shows a 2 by 2 by 2 neighbourhood of either one of D and Q, this neighbourhood containing 8 pixels. This can be formed into the vector shown in Figure 7.
  • a neighbourhood that was 3 by 3 by 2 may be mapped onto a vector of 18 pixels.
  • the neighbourhoods may advantageously have edge lengths that are powers of 2, but this is not essential. It should be noted that the sizes of the neighbourhoods used whilst encoding D and Q need not be the same.
  • each is compared with each row vector c x (of the same length as v) in a codebook matrix C trained for this purpose.
  • the row in the codebook matrix that is most similar to v is then determined and its row number is recorded in a variable ⁇ termed a codeword.
  • the number ⁇ is then transmitted to the receiving decoder using the minimum length binary work required to uniquely identify each of the rows of C.
  • D and Q a sequence of codewords a is obtained for each of the pixel arrays D and Q, these sequences together defining the compressed representation of the original image.
  • These sequences may be transmitted to a decoder either over some communications device or by writing it to a memory from which it is later read. Provided that a deterministic sequence exists in which the non-overlapping blocks in the original arrays are visited, it is possible to determine unambiguously from where in the original arrays the codewords were derived. It should be noted that the codebook matrices used to encode D and Q need not be the same.
  • the decoder decodes the streams to form 3-dimensional arrays D' and Q' by determining the row of the codebook by indexing it with the codeword and copying the elements of the codebook vector into appropriate positions in the neighbourhood of D' or Q' that correspond to the neighbourhood of D or Q from which the codeword was originally computed.
  • the bijection from vector elements to neighbourhood positions should be the same as that used to obtain the vector v.
  • the decoder then forms a new 3-dimensional array R' by expanding Q' in the same manner as was used to form R from Q.
  • saturated arithmetic should be used.
  • the array P' is the output of the decompression process and recreates substantially the same image structure as the original image stack.
  • This is essentially a 3-D array of pixels that can be displayed as a stack of "slices" 30 through the 3-D array, as shown in Figure 8.
  • the impression of a solid object 32 can be obtained, as shown in Figure 9.
  • Each slice is drawn with certain parts shown transparent. For instance, all pixels with a brightness less than 100 can be drawn as transparent. Of course, other algorithms could be used to define what is transparent. Because the pixels are held as a 3-D array, the slices can be selected from the array in any orientation.
  • the slices correspond to x-y planes, but x-z or y-z planes could equally have been selected or any other planes, including those not orthogonal to the x-y- z axes.
  • the 3-D array could be processed to present to the original 2-D images, it could alternatively be processed to give views of the data that are more difficult to obtain from data that has been decompressed to a set of 2-D images.
  • the decompressed array is a stack of
  • the top left pixel on the first slide would be at address 0 relative to the start of the memory block, and the bottom right pixel on the last slide would be at address 3999999 relative to the start of the memory block.
  • the first 40000 pixels would be copied to a display frame buffer 200 pixels by 200 pixels in size in an appropriate graphics display card.
  • a slice through the data could equally well be displayed, by copying the data into a frame buffer of dimensions 100 horizontal by 200 vertical. This slice can reveal features that are not obvious in the original view.
  • the slice is taken at a position corresponding to a horizontal displacement of p pixels in the original slide data then the pixel to be displayed at position x,y is obtained at offset x x 4000 + y x 200 + p in the memory buffer holding the decompressed data cube .
  • each pixel in the 3-D array is drawn as a single pixel in the image. Planes furthest from the viewer are drawn first and are overwritten by the planes closer to the viewer. Each plane may be sequentially presented to the user, thereby to provide a view moving through the 3-dimensional array. Pixels that are chosen to be transparent are not drawn. The distance between planes and the angles at which the planes are drawn can be selected by the user and implemented in response to the user selection.
  • the decompressor software or other software associated with it is preferably configured to present to the user an interface that provides various user selectable options for setting how the image is to be displayed and/or data entry fields for receiving specific user inputs that are used to determine how the image is to be presented.
  • the interface may be configured to allow the user to select or set the plane of view.
  • the user interface is preferably configured to allow the user to select sections or "blobs" of the 3-D view for colouring.
  • the software is adapted to present a user selectable colour icon, which when selected causes the software to colour the section of the display that is currently selected by the user. Painting parts of the array in this way makes it easier to see the extent and shape of a feature in the 3-D image.
  • Particular blobs may be selected by positioning the computer mouse cursor over it.
  • the selected blob is defined by the pixel directly under the cursor that is closest to the viewer. This-- is then allocated the seed pixel.
  • the painting algorithm could be any suitable flood-fill algorithm, which can be modified to work in , 3-D.
  • the boundary of the flood-fill is defined so that the transparent pixels are not filled.
  • the algorithm may carry out the following: the seed-pixel co-ordinates are pushed on a stack while the stack is empty do - pop a pixel from the stack colour the pixel and mark it as coloured for each of the adjacent pixels do if the pixel is not marked as coloured and the pixel is not transparent then - the pixels are pushed on the stack
  • an adjacent pixel is defined as being one co-ordinate-index away either: on one of the x, y or z axes
  • a larger co-ordinate- index span can be used so as to bridge small gaps.
  • colouring the pixel it is meant that the colour or brightness of the pixel is changed in some way. For instance, if the original pixels are all grey, then
  • each non-transparent pixel could be drawn as a cuboid corresponding to the volume of the 3-D pixel array that it occupies.
  • a 3-D rendering algorithm such as a z-buffer could be used to draw the cuboids. If a hull is fitted over the cuboids, then shading can be used to give a better impression of the shape.
  • an entropy encoder such as an LZ, or a Huffman codec 34 may be placed downstream from the vector quantizer 36, as shown in Figure 10.
  • the vector quantized data stream is, in most cases, mapped to a shorter bitstream containing the same information content.
  • a corresponding LZ or Huffman decoder has to be used at the receiver to reconstruct the VQ data-stream as part of the image decompression. It will be recognised that the use of such entropy encoders is only advantageous when there is a non-uniform probability of use of the codes issued by the vector quantizer.
  • codebook thresholding techniques can be applied, which techniques take into account the energy of the codebook rows.
  • the energy of a codebook row is defined as the square of the row vector's euclidean length. For a pixels having a value in the range -128 to 127, this can be calculated using the following equation:
  • x is the ith vector of the codebook and m is the dimension of the vector.
  • an energy threshold di is set for each level of the pyramid I.
  • any source vector with energy less than d is mapped to the row index of vector z. The effect .of this is that low energy differential vectors taken from the array di are rendered on decoding with the zero vector.
  • this will contribute an error in signal energy ⁇ di at level' I for each vector.
  • This increases the frequency at which the row index for the z vector occurs in the output stream of the vector quantizer. This can be used by the entropy encoder 34 to reduce the number of bits required to encode the data-stream.
  • Thresholding can be incorporated into the codebook design provided that the threshold level required is known prior to the compression and decompression. To do this, all codebook rows with energy less that d are deleted from the codebook prior to vector quantisation. If the codebook is prepared so that it is sorted in decreasing energy levels, the elided rows will always be at the end of the codebook matrix. Use of codebooks in this form allows the decompression process to proceed in ignorance of the threshold level used. Apparent image quality can be improved if, when expanding an image Q to R or Q' to R' a separable blurring convolution is applied along each of the three axes of R after the expansion process described above. A suitable smoothing kernel is [0.25,0.5,0.25].
  • the image compression described above uses vector quantistion.
  • scalar quantisation could be used. This involves outputting .. each voxel in the cube as a binary word of reduced precision.
  • the range column is searched to find a range that includes the pixel value, and the appropriate binary code is output.
  • decoding the value from the decoded value column is substituted for the codeword.
  • the effect of this scalar quanitzation is to halve the number of bits used to represent a level of the pyramid. For example an 8 bit pixel could be mapped to a 4 bit code using the.
  • the code table can be sorted by energy as described above for the vector quantisation code books. When thresholding is applied, the effect is to mask off the low energy values of the table.
  • the table of Figure 12 shows the effect of setting an energy threshold of 9. If the energy threshold is 9, then all values between -3 and 3, whose square and thus whose energy is less than or equal to 9, are mapped to the code 0000. In consequence the codes 0001, 0010, and 0011 are no longer used. The frequency of use of code 0000 goes up, and by Shannons
  • any quantisation scheme introduces noise. It is possible to partly compensate for noise introduced in higher levels of the pyramid compression process by incorporating a decompressor at each level of the compression process. Then instead of using array Q in the compressor, the array Q' is used. This ensures that the array R, which is subtracted from P contains the noise introduced by the quantisation of the layer above. In consequence, the array D will be vector quantised in a way that tends to compensate for the quantisation noise in the level above.
  • each 2 by 2 voxel cube compresses to a single byte.
  • the overall compression ratio achieved depends on the degree of repetition in the serialised data stream, and thus on the effectiveness of the entropy encoder.
  • a major aim of the differential pyramid design is to ensure large areas of uniform grey in the lower layers that can be coded by a null vector. Since the null vector occurs frequently, it encodes to fewer than 8 bits when Huffman encoding is used.
  • the areas of the image containing little detail are divided into large voxels of for example 8 pixels cubed and these are vector quantised, whereas the areas containing more detail are divided into smaller voxels, for example blocks 4 pixels cubed, which are also vector quantised.
  • the areas containing more detail are divided into smaller voxels, for example blocks 4 pixels cubed, which are also vector quantised.
  • Thresholding can be applied more generally to other image compression methods, which methods may be applied to 2-dimensional or 3- dimensional images.
  • Another example of an image compression method to which thresholding can be applied is based on the well-known Laplacian pyramid, but with a vector quantisation algorithm embedded in the differential images. In this method, a
  • Gaussian pyramid g, n (0 ⁇ n ⁇ m) is created.
  • the top layer of the pyramid is defined as .
  • the top layer is upsampled by a factor of 2 on both dimensions to yield an estimated layer, initially e (m _ 2 ).
  • codebooks with different block sizes could be used, as could codebooks with different entry numbers.
  • Two methods can be employed to reduce the entry number of the codebooks .
  • the first one is simply training codebooks with different entry numbers.
  • the second one is to use the thresholding algorithm.
  • thresholding is an approximation, which uses ' a codeword with zero energy to approximate the codewords whose energy is lower than the threshold.
  • Figure 14 shows how the thresholding algorithm interacts with the codebook to dynamically vary the codebook entries by thresholding the ⁇ codebook with respect to the energy of each codebook entry. To do this, the thresholding algorithm firstly has to calculate the codeword energy 38. s before, for a pixel having a value in the range -128 to
  • each pixel of the codeword with the lowest energy is reset to 128.
  • the index of the codeword with the lowest energy is used to represent the codewords whose energy is lower than a threshold.
  • a codebook up-dated table is created to record the updated index. It is this up-dated table that is then used by the vector quantiser.
  • a weighting thresholding system can be optionally employed. For example, for the compression of each layer, the threshold could be set .to be a quarter of the previous threshold. This can be summarised Figure 15 shows a table that provides a comparison between using thresholding and using codebooks with different entries.
  • the threshold algorithm does not directly reduce output bits. It reduces the entropy of the output, which when fed through an LZ coder results in a smaller output file.
  • thresholding has several advantages. Firstly, it is flexible. A large threshold means a small number of entries are used. On the contrary, a small threshold means a large number of entries are used. Hence, in theory, any number of entries can be achieved by choosing a different threshold. Thresholding also saves storage space. This is because it is unnecessary to have a lot of codebooks with different numbers of entries in advance. Thresholding also leads to better image quality for a given output file size as compared to using longer codewords. Furthermore, the thresholding algorithm only loses the information at low energy areas.
  • Figure 17 shows an image compressor 42 that has an input for receiving a stack of input images 43, a thresholding filter 44 that is connected to a codebook trainer 46 and a pyramid based vector quantiser 48.
  • Output from the codebook trainer 46 is the codebook 5 that is to be used to compress and decompress the images.
  • this codebook 46 is used by the pyramid based vector quantiser 48 to compress the input images, thereby to provide compressed image data 50. To decompress this compressed data, it has to be sent to a decompressor 52, which decompresses the images and provides an image on an output screen. It should be noted that the decompressor
  • the codebook 46 can be prepended to the compressed image data 50 to form a compressed file with prepended codebook 54.
  • the codeook can be supplied to the decompressor 52 separately from the compressed image data. Connected to the decompressor is a screen for presenting the decompressed images on.
  • the input images 43 are firstly passed through the thresholding filter 44. This includes an algorithm for detecting portions or patches of the input images 43 that are above or below a certain brightness or energy level. Images that are below the set level are set to a pre-determined level.
  • patches in which the deviation of the pixels from zero is less than a pre-determined level, say less than 8, may be set to zero, so that they are treated by both of the codebook trainer 46 and the vector quantiser 48 as being transparent.
  • signed pixels are used in this method, that is pixels having positive or negative values.
  • a particular advantage of the system described above is that it can be used to compress data for a whole stack of microscopy slides into a single file. This contrasts with using standard frame by frame compression where each frame is compressed to a different file. The use of a single file to contain the entire 3-d stack simplifies transmission over communications media.
  • 3-d compression an additional layer of redundancy in the data is exploited and so higher compression is provided. For example, using the above- described techniques a 12 megabyte confocal microscopy .stack can be compressed to 50Kb with very good quality in the decompressed image.
  • the decompressor reads in one small file and then constructs a 3-dimensional cube of the data aids display of the final decompressed image.
  • the decompressor program can incorporate facilities to provide multiple views of the data. It can be shown along alternative axes or in perspective views.
  • Another advantage of the system in which the invention is embodied is that by first forming a pyramid of such cubes each of which contains the information omitted from those above, and vector quantising these, the vector quantiser in which the invention is able to detect higher order patterns that remain undetected by existing quantisers. This leads to higher compression ratios than are currently available.
  • a skilled person will appreciate that variations of the disclosed arrangements are possible without departing from the invention. For example, whilst some aspects of the invention have been described with reference to 3- dimensional medical images, they could equally be applied to the compression and decompression of other 3-dimensional images .
  • the image data would be read into the compressor as a stack or sequence of 3- dimensional arrays and arranged in a 4-dimensional array.

Abstract

L'invention concerne un procédé amélioré de compression d'images, en particulier d'images 3D. L'invention concerne des rapports améliorés de compression d'images dans des techniques de quantification scalaire et vectorielle.
PCT/GB2003/004165 2002-09-25 2003-09-25 Compression d'image WO2004029875A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003267645A AU2003267645A1 (en) 2002-09-25 2003-09-25 Image compression

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0222297.4A GB0222297D0 (en) 2002-09-25 2002-09-25 Image compression
GB0222297.4 2002-09-25

Publications (2)

Publication Number Publication Date
WO2004029875A2 true WO2004029875A2 (fr) 2004-04-08
WO2004029875A3 WO2004029875A3 (fr) 2004-06-24

Family

ID=9944769

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2003/004165 WO2004029875A2 (fr) 2002-09-25 2003-09-25 Compression d'image

Country Status (3)

Country Link
AU (1) AU2003267645A1 (fr)
GB (1) GB0222297D0 (fr)
WO (1) WO2004029875A2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497380B1 (en) 2013-02-15 2016-11-15 Red.Com, Inc. Dense field imaging
CN111061896A (zh) * 2019-10-21 2020-04-24 武汉神库小匠科技有限公司 基于glTF的3D图形的加载方法、装置、设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001067776A1 (fr) * 2000-03-08 2001-09-13 The University Court Of The University Of Glasgow Quantification vectorielle d'image amelioree

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001067776A1 (fr) * 2000-03-08 2001-09-13 The University Court Of The University Of Glasgow Quantification vectorielle d'image amelioree

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AIAZZI B ET AL: "Three-dimensional lossless compression based on a separable generalized recursive interpolation" PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP) LAUSANNE, SEPT. 16 - 19, 1996, NEW YORK, IEEE, US, vol. 1, 16 September 1996 (1996-09-16), pages 85-88, XP010202081 ISBN: 0-7803-3259-8 *
DOUKOGLOU T D ET AL: "Image coding and compression of confocal microscope volumetric 3D images" ENGINEERING IN MEDICINE AND BIOLOGY SOCIETY, 1996. BRIDGING DISCIPLINES FOR BIOMEDICINE., 18TH ANNUAL INTERNATIONAL CONFERENCE OF THE IEEE AMSTERDAM, NETHERLANDS 31 OCT.-3 NOV. 1996, NEW YORK, NY, USA,IEEE, US, 31 October 1996 (1996-10-31), pages 1215-1217, XP010262468 ISBN: 0-7803-3811-1 *
S.SALLENT, L. TORRES, L. GILS: "Three-dimensional adaptive laplacian pyramid image coding" SPIE PROCEEDINGS VISUAL COMMUNICATIONS AND IMAGE PROCESSING '90, vol. 1360, no. One, 1 October 1990 (1990-10-01), - 4 October 1990 (1990-10-04) pages 627-638, XP008026138 Lausanne, Switzerland *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497380B1 (en) 2013-02-15 2016-11-15 Red.Com, Inc. Dense field imaging
US9769365B1 (en) 2013-02-15 2017-09-19 Red.Com, Inc. Dense field imaging
US10277885B1 (en) 2013-02-15 2019-04-30 Red.Com, Llc Dense field imaging
US10547828B2 (en) 2013-02-15 2020-01-28 Red.Com, Llc Dense field imaging
US10939088B2 (en) 2013-02-15 2021-03-02 Red.Com, Llc Computational imaging device
CN111061896A (zh) * 2019-10-21 2020-04-24 武汉神库小匠科技有限公司 基于glTF的3D图形的加载方法、装置、设备及介质
CN111061896B (zh) * 2019-10-21 2023-04-18 武汉神库小匠科技有限公司 基于glTF的3D图形的加载方法、装置、设备及介质

Also Published As

Publication number Publication date
GB0222297D0 (en) 2002-10-30
AU2003267645A1 (en) 2004-04-19
AU2003267645A8 (en) 2004-04-19
WO2004029875A3 (fr) 2004-06-24

Similar Documents

Publication Publication Date Title
US20240048741A1 (en) Methods and apparatuses for encoding and decoding a bytestream
AU632333B2 (en) Method and apparatus for processing digital data
US7847799B2 (en) Bi-level iso-surface compression
KR100819597B1 (ko) 멀티모드 알파 이미지 처리 방법 및 장치
EP1431919B1 (fr) Procédé et appareil pour le codage et le décodage d'objets tridimensionnels au moyen d'octrees
US7263236B2 (en) Method and apparatus for encoding and decoding three-dimensional object data
Kaur et al. A review of image compression techniques
US7683910B2 (en) Strategies for lossy compression of textures
US7714873B2 (en) Strategies for compressing textures
US6862371B2 (en) Method of compressing images of arbitrarily shaped objects
JPH11168633A (ja) 再構成実行方法、再構成実行装置、記録媒体、逆変換実行方法、逆変換実行装置、好適再構成生成方法、好適再構成生成装置、符号化データ処理方法、符号化データ処理装置、データ処理方法、データ処理装置、符号化データのタイル処理方法、符号化データのタイル処理装置、データ復号化方法、データ復号化装置、再構成方法、及び、2値データモデル化方法
US7412104B2 (en) Optimized lossless data compression methods
EP2433264A2 (fr) Compression sans perte hiérarchique
US7248744B2 (en) Vector quantization of images
US6587588B1 (en) Progressive image decoder for wavelet encoded images in compressed files and method of operation
US20030081852A1 (en) Encoding method and arrangement
Son et al. Fast FPGA implementation of YUV-based fractal image compression
WO2004029875A2 (fr) Compression d'image
WO2023047119A1 (fr) Compression de trames de données en nuage de points
CN115102934A (zh) 点云数据的解码方法、编码方法、装置、设备及存储介质
US6912070B1 (en) Sub-optimal variable length coding
KR100412176B1 (ko) 문자와 이미지가 포함된 문서의 압축, 복원 시스템 및방법
Singh et al. COMPARATIVE STUDIES OF VARIOUS TECHNIQUES FOR IMAGE COMPRESSION ALGORITHM
Patel et al. An Analysis Of Image Compression And Restoration Using Different Methodology
WO2022131947A1 (fr) Dispositifs et procédés de codage évolutif pour compression de nuage de points

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP