WO1991019272A1 - Improved image compression system - Google Patents

Improved image compression system Download PDF

Info

Publication number
WO1991019272A1
WO1991019272A1 PCT/US1991/003802 US9103802W WO9119272A1 WO 1991019272 A1 WO1991019272 A1 WO 1991019272A1 US 9103802 W US9103802 W US 9103802W WO 9119272 A1 WO9119272 A1 WO 9119272A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
component
component images
generating
pixel
Prior art date
Application number
PCT/US1991/003802
Other languages
French (fr)
Inventor
Howard Leonard Resnikoff
David Pollen
David C. Plummer Linden
Original Assignee
Aware, 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
Priority claimed from US07/531,468 external-priority patent/US5101446A/en
Application filed by Aware, Inc. filed Critical Aware, Inc.
Publication of WO1991019272A1 publication Critical patent/WO1991019272A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present invention relates to methods and apparatuses for transforming images and, more specifically, to a method and apparatus for reducing the amount of data needed to store an image.
  • Images are conventionally represented by a two-dimensional array of values in which each value represents a property of the image at a corresponding point on the image.
  • each value represents a property of the image at a corresponding point on the image.
  • gray-scale images a single number representing the gradations of intensity from white to black, referred to as the gray scale, is stored.
  • each "value" is a vector whose components represent the gradations in intensity of the various primary colors, or some alternative color code, at the corresponding point in the image.
  • This representation of an image corresponds to the output of a typical image-sensing device such as a television camera. Such a representation is convenient in that it is easily regenerated on a display device such as a CRT tube.
  • a display device such as a CRT tube.
  • it has at least two short-comings. First, the number of bits needed to represent the data is prohibitively large for many applications. Second, if the image is to be processed to extract features that are arranged in the same order of importance as that perceived by a person viewing the image, the amount of processing needed can be prohibitively large.
  • the number of bits needed to store a typical image is sufficiently large to limit the use of images in data processing and communication systems.
  • a single 512x512 gray-scale image with 256 gray levels requires in excess of 256,000 bytes.
  • a small-scale computer user is limited to disk storage systems having a capacity of typically 300 Mbytes. Hence, less than 1200 images can be stored without utilizing some form of image compression.
  • the transmission of images over conventional telephone circuitry is limited by the high number of bits needed to represent the image. If an 8x11 inch image were digitized to 256 gray levels at 200 dots per inch (the resolution utilized in typical FAX transmissions) in excess of 28 million bits would be required. Normal consumer-quality analog telephone lines are limited to a digital communication rate of 9600 bits per second. Hence, the transmission of the image would require in excess of 45 minutes in the absence of some form of image compression.
  • image compression methods can be conveniently divided into two classes, invertible and non-invertible methods.
  • the invertible methods reduce redundancy but do not destroy any of the information present in the image.
  • These methods transform the two-dimensional array representing the image into a form requiring fewer bits to store.
  • the original two-dimensional array is generated by the inverse transformation prior to display.
  • the regenerated image is identical to the original image.
  • the image consists of a two-dimensional array of bits.
  • a one-dimensional list of bits can be generated from the two-dimensional array by copying, in order, each row of the two- dimensional array into the one-dimensional array. It has been observed that the resultant one-dimensional array has long runs of ones or zeros.
  • a run of 100 ones One hundred bits are required to represent the run in the one- dimensional array.
  • the same 100 bits could be represented by a 7-bit counter value specifying the length of the run and the value "one" specifying the repeated gray level.
  • the 100 bits can be reduced to 8-bits. This is the basis of an invertible transformation of the one-dimensional array in which the transformed image consisting of a sequence of paired values, each pair consisting of a count and a bit value.
  • the success of any image compression scheme may be viewed in terms of the compression ratio obtained with the method in question.
  • the compression ratio is the ratio of the number of bits in the original two-dimensional array to the number of bits needed to store the transformed image.
  • compression ratios of the order of 5 to 10 can be obtained utilizing these methods.
  • the gains obtained decrease rapidly as the number of gray levels is increased.
  • the probability of finding repeated runs of the same gray level decreases.
  • Each time the gray level changes a new pair of values must be entered into the file. As a result, compression ratios exceeding 3 are seldom obtained utilizing invertible compression methods for gray-level images.
  • quantization replaces each pixel by an integer having a finite precision.
  • Each of the pixel values is to be replaced by an integer having a predetermined number of bits. The number of bits will be denoted by P.
  • the integers in question are then transmitted in place of the individual pixel values.
  • the inverse of the mapping used to assign the integer values to the pixel values is used to produce numbers that are used in place of the original pixel values.
  • the overall error in approximating an image will depend on the statistical distribution of the intensity values in the image and the degree of image compression needed.
  • an image compression ratio is set, the total number of bits available for all of the pixels of the quantized image is determined.
  • the optimum assignment of the available bits is determined from the statistical properties of the image. It has been found experimentally that the statistical distributions of a large class of images are approximated by Laplacian distributions. Hence, the optimum allocation of the bits may be made from a knowledge of the variance of the pixel values in the image.
  • a quantization scheme will be defined to be "optimum" if it provides the lowest distortion in the reconstructed image for a given compression ratio.
  • the distortion is measured in terms of mean-squared-error between the image prior to compression and image obtained after compressing and decompressing the original image. It will be apparent to those skilled in the art that other statistical measures of distortion between the original and reconstructed images may be used.
  • the transformation is chosen such that the variance of the first component image is approximately the same as that of the original image while the variance of the second component image is significantly less than that of the original image. Since there are one half the number of pixels in the first image, the first image can be quantized with one half the number of bits needed to quantize the original image to the same precision. However, since the second component image has a smaller variance then the original image, the number of bits needed to quantize the second component image will be less than one half the number needed to quantize the original image. Thus, a net reduction in the number of bits needed to represent the image in the quantized form is achieved.
  • transformations having the desired property can be constructed. It is known that the information in images tends to be concentrated in the lower spatial frequencies. Hence, transformations that divide the image into component images having different spatial frequency content provide the desired property. Such transformations can be implemented utilizing perfect reconstruction filter banks. By appropriate application of such filter banks to the image, a number of component images are generated. In general, a low-frequency image having a small fraction of the original image size is generated together with a number of high-frequency images. The low- frequency image has a pixel intensity variance of the same order as the original image and is quantized accordingly. The high-frequency component images have much smaller variances, and hence, are quantized with fewer bits per pixel.
  • I(x,y) ⁇ p k F k (x,y) + ⁇ q f cG (x,y) (1) k
  • the set of functions ⁇ F k (x,y) ⁇ and ⁇ G (x,y) ⁇ are the basis functions for the transformation.
  • the coefficients sets ⁇ p k ⁇ and ⁇ qj are determined by fitting the observed image values using the basis functions. These coefficient sets are the "pixels" of the component images referred to above.
  • the basis functions ⁇ F k ⁇ and ⁇ G ⁇ are chosen such that the most "important" information contained in the image is represented by the p's and the least important information is represented by the q's.
  • the basis functions must be chosen such that ⁇ F k ⁇ will extract the low spatial frequency information in the image, and ⁇ G k ⁇ will extract the high spatial frequency information. This condition guarantees that the transformation will lead to component images that differ in spatial frequency content.
  • a second problem occurs with basis functions having large support. Images tend to contain structures whose spatial extent is small compared to the size of the image. To represent such a structure with basis functions that have support which much larger than the structure in question often requires the superposition of many such basis functions. Hence, the number of coefficients which contain useful information is likely to be larger if basis functions having support which is much larger than the objects found in the image are used.
  • a third problem with transformations that utilize basis functions whose support is large is the computation cost.
  • the computational workload inherent in fitting the image to the expansion discussed above is related to the support of the basis functions. If the support is large, the computational workload becomes correspondingly large.
  • one prior art image compression system utilizes a two-dimensional Fourier transform.
  • the Fourier basis functions have the same support as the size of the image.
  • the transformation in question requires that one compute the two-dimensional Fourier transform of the entire image.
  • the computational workload is of the order of N ⁇ tlogCN) 2 ] operations. This workload is too great to allow a practical image compression apparatus to be constructed that operates on an entire image.
  • the image is typically broken into sub-images that are individually compressed. The decompressed sub-images are then recombined to form the decompressed image. At large compression ratios, the boundaries of the sub-regions appear as artifacts in the reconstructed image.
  • the human visual system is very sensitive to linear boundaries as is indicated by the ability of the visual system to detect such boundaries even when the difference in intensity is only a few percent across the boundary in question. Hence, these boundaries give rise to highly objectionable artifac ⁇ s. Individuals viewing highly compressed images from this type of compression system often report a "blocky" picture.
  • the variance of the coefficient sets ⁇ p k ⁇ and ⁇ qj, ⁇ is related to the basis functions selected.
  • the ability of the quantization scheme to compress the image is related to the variance of the coefficient sets.
  • basis functions which are orthogonal to each other give rise to coefficients sets having lower variance than the coefficient sets obtained with non-orthogonal basis functions.
  • Prior art systems with small support have not utilized transformations having orthogonal basis functions.
  • Adelson, et al. refer to their QMF method as being equivalent to expanding the image in an orthonormal basis set, this method does not provide the claimed orthonormal expansion.
  • the basis functions corresponding to a QMF are, by definition, symmetric. Using this property of the QMF basis functions, it can be shown that the QMF basis functions can not be an orthonormal set. Hence, this method does not provide the advantages of an orthonormal transformation of the image.
  • the present invention comprises an image compression/decompression system together with recordings of images made thereby.
  • An image compression apparatus according to the present invention generates a plurality of component images from an input image.
  • the pixel intensity values of the component images are approximated by integers of a predetermined precision, the precision depending on the information content of the component image in question.
  • the pixel intensity values of the component images are the coefficients of an expansion of the input image in a two-dimensional irreducible basis.
  • a decompression apparatus reverses the compression process.
  • Such a decompression apparatus regenerates an approximation to the original component images from the integer values used to replace the original pixel intensity values of the component images.
  • the reconstructed component images are then recombined to generate an approximation to the original image.
  • the decomposition of the input image into the component images is carried out in the preferred embodiment of the present invention with the aid of a special class of two-dimensional finite impulse response filters.
  • An analogous class of filters is used to reconstruct the image.
  • FIG. 1 is a block diagram of an image compression apparatus 10 according to the present invention.
  • Figure 2 is a block diagram of a decompression apparatus according to the present invention.
  • Figure 3 is a block diagram of one embodiment of a two-dimensional FIR according to the present invention together with frame and component buffers.
  • Figure 4 is a block diagram of an analyzer according to the present invention.
  • Figure 6 is a block diagram of an injector operating on a component image stored in a buffer to generate an expanded image.
  • Figure 7 is a block diagram of a synthesizer according to the present invention.
  • Figure 8 illustrates the shape of the support area for one set of basis functions according to the present invention.
  • Figure 9 illustrates the shape of the support area for a second set of basis functions according to the present invention.
  • Figure 10 illustrates the shape of the support area for third set of basis functions according to the present invention.
  • Figure 11 is a table of possible values for some the parameters defining some of the low multiplier bases according to the present invention.
  • Figure 12 is a block diagram for a pipelined implementation of an analyzer system according to the present invention.
  • Figure 12 is a block diagram for an image reconstruction and display system according to the present invention.
  • FIG. 1 is a block diagram of an image compression apparatus 10 according to the present invention.
  • the image to be compressed is stored initially in a frame buffer 12.
  • a filter bank 14 is used to transform the image in frame buffer 12 into a plurality of component images comprising at least one component image representing the low spatial frequency information and one component image representing the high spatial frequency information in the image.
  • the component images are stored in a buffer 16.
  • the filter bank may be iteratively applied to the component images stored in buffer 16 to produce additional component images.
  • buffer 16 may include all of frame buffer 12.
  • the component images stored in buffer 16 are then quantized by quantizer 18 to generate the compressed image 20.
  • quantizer 18 replaces each pixel in a component image by integer having some predetermined precision. In general, the precision in question will vary with the component image being quantized and will depend on the statistical distribution, or an approximation thereto, of the pixels in the component image.
  • Compressed image 20 comprises the quantized pixel values and information specifying the quantization applied to each component image.
  • some of the component images will not be quantized.
  • the pixels of these images will be replaced by zeros.
  • the information in question includes the identity of the component images that were quantized and information specifying an inverse mapping which allows an approximation to each of the quantized component images to be generated by a decompression apparatus.
  • FIG. 2 A block diagram of a decompression apparatus according to the present invention is shown in Figure 2 at 22.
  • the compressed image is received by an inverse quantizer 24 which generates the relevant component images which are stored in buffer 25.
  • Inverse quantizer 24 utilizes the inverse mapping information and the quantized component image values to generate approximations to the original component images. Those component images that were quantized to zero intensity pixels are replaced by component images of the same size having pixel values of zero.
  • the component images are then input to an inverse filter bank 26 which combines the component images to generate an approximation to the original image which is stored in a frame buffer 27.
  • component image buffer 25 may include frame buffer 27.
  • the filter bank and inverse filter bank described above are two- dimensional analogs of the one-dimensional perfect reconstruction filter banks utilized in a number of signal processing applications.
  • the filter bank that decomposes the image into the component images will be referred to as an analyzer, and the filter bank the reconstructs an image from its component images will be referred to as a synthesizer in the following discussion.
  • each filter bank includes a plurality of two-dimensional finite impulse response filters (FIRs). The number of FIRs in each filter bank will be denoted by M.
  • a block diagram of one embodiment of a two-dimensional FIR according to the present invention is shown at 30 in Figure 3 together with a frame buffer 32 and a component buffer 34.
  • the image to be processed comprises a two- dimensional array of pixel values which are stored in frame buffer 32.
  • the pixels of the component image are stored in component buffer 34.
  • the number of pixels in the component image will be approximately 1/M times the number of pixels in the image.
  • FIR 30 includes a controller 37 whose operations are synchronized by clock 38.
  • Clock 38 defines two time cycles, a major cycle and a minor cycle. During each major cycle, one pixel of the component image is generated. A typical pixel is shown at 35.
  • Each pixel of the component image is generated by performing a two- dimensional convolution operation on the pixels in a window 40 whose location is determined by the location of the pixel in question in the component image.
  • vector notation will be used.
  • vectors and matrices will be written in bold print.
  • a location in either of buffers 32 and 34 is identified by two integer index values.
  • a location is addressed by inserting the index values into an address register.
  • the address register for buffer 34 is shown at 33, and the address register for buffer 32 is shown at 31.
  • the index values will be denoted by an ordered integer pair (k x ,k y ).
  • a pixel of the component image stored at a location (p x ,p y ) in buffer 34 will be denoted by C p , where the vector p denotes the location (p x ,p y ) in component buffer 34.
  • the location of window 40 in buffer 32 will be denoted by w.
  • the coordinates specified by w will be assumed to be those of the lower left-hand corner; however, other labeling schemes will also function adequately as will be apparent to those skilled in the art.
  • the intensity value of a pixel of the image stored in buffer 32 will be denoted by I k , where the vector k denotes the location (k x ,k y ) in component buffer 32.
  • the weights used in the convolution operation are stored in memory 39.
  • the weights may be regarded as a two-dimensional array g k , where k denotes the location (k x ,k y ) in memory 39.
  • FIR 30 For each pixel C p in the component image, FIR 30 performs the following calculation:
  • the summation is carried out at for those k values corresponding to locations in window 40 for which the corresponding weights are non-zero.
  • window 40 and memory 39 have corresponding locations which may be specified by a two-dimensional pointer k.
  • controller 37 causes multiply and add circuit 36 to compute the weighted sum of all pixels in window 40.
  • One product is calculated each minor clock cycle in the preferred embodiment of the present invention.
  • the sum is carried out by selecting the weight corresponding to the pixel in question and multiplying it by the pixel value.
  • the products may be accumulated in multiply and add circuit 36 or stored in component buffer 34.
  • the location of window 40 depends on the specific pixel in the component image that is being calculated and other parameters relating to the specific transformation that is being implemented by the FIR. For the moment, it is sufficient to note that the location of the window is a function of p as shown in Eq. (2).
  • Two or more FIR filters may be combined to form an analyzer.
  • a block diagram of an analyzer 50 according to the present invention is shown in Figure 4.
  • M FIR filters in an analyzer. The significance of this number will be discussed in detail below.
  • an analyzer having a complete set of FIR filters has M such filters which will be labeled from 0 to (M-l).
  • Representative filters are shown at 59-61 in Figure 4.
  • Each FIR filter has an associated set of weights. The weight sets are preferably stored in separate buffers, one such buffer being associated with each FIR. Representative buffers are shown at 62-64.
  • the FIR filters are under the control of controller 56 which includes a clock 58 for synchronizing the various operations.
  • controller 56 also includes a master weight library from which the various weight sets are loaded into their respective buffers prior to processing an image.
  • the image to be processed is preferably stored in a buffer 52.
  • Image buffer 52 is shared by the various FIR filters.
  • Controller 56 uses clock 58 to divide the image processing into a number of time cycles. During each time cycle, one pixel is calculated in each of the component images. Controller 56 specifies the pixel to be calculated by appropriate signals to registers in the various component image buffers. Controller 56 also specifies the location of the window in image buffer 52.
  • all of the FIR filters are synchronized such that all of the FIR filters process the same point in image buffer 52.
  • the m 111 FIR calculates the pixels of the m 1 * 1 component image according to the formula
  • controller ⁇ g k ⁇ denotes the m 4 set of weights. The summation is carried out over all k values for which any m g k is non-zero.
  • component image In the preferred embodiment of the present invention, component image
  • °C p represents the low spatial frequency information in the image and the remaining component images represent higher spatial frequency information.
  • the number of pixels in each of the component images will be approximately N2 M where the image being analyzed is assumed to be NxN pixels in size.
  • An analyzer may be recursively applied to an image to further resolve the image into different component images. Any of the component images may be used as an input image to the same analyzer or another analyzer that utilizes the same, or different, filter weights. In image compression applications, this type of processing is usually limited to the low-frequency component image.
  • Each application of the analyzer generates two component images, a low-frequency component image and one high-frequency component image.
  • the application of the analyzer to image 70 yields two component images 71 and 72.
  • the analyzer has been set to operate on a periodic image; hence, the number of pixels in each of the component images is one half that in image 70.
  • Low-frequency image 71 is then analyzed as if it were an image having one half the number of pixels of the original image.
  • the output of the analyzer for this image is a low-frequency component image 73 and a high-frequency component image 74.
  • Component images 73 and 74 will each have one quarter the number of pixels of image 70.
  • Low-frequency image 73 may again be analyzed to generate a still smaller low- frequency image 75 and a high-frequency image 76, each of these component images being one eighth the size of the original image.
  • high-Frequency component image 72 will represent generally higher spatial frequency information than high-Frequency component image 74, which in turn, will represent generally higher frequency information than high-Frequency component image 76.
  • the total number of pixels in the aggregated component images will be the same as that in the original image if the original image is assumed to be periodic.
  • the component images generated by each decomposition may be stored back in the image buffer in the analyzer.
  • the operation of the analyzer is restricted to the portion of the image buffer that is used to store the current low-frequency component image.
  • the statistical distributions of the pixel values in the component images are calculated by a quantizing circuit
  • the number of bits to be allocated to the pixels of each component image is determined by the overall compression ratio selected for the image and the calculated statistical distributions of pixel intensities for the component images.
  • methods for performing such bit allocations are known to the art.
  • the number of bits allocated to the various component images may differ somewhat from the statistical optimum. These differences reflect computational efficiency and the manner in which the subjective image quality differs from quantitative measures of image distortion.
  • the computation of the statistical distributions of all the component images for each image that is to be compressed may exceed the available processing time in applications in which the image is being compressed in real time.
  • the form of the statistical distribution is usually assumed. For example, it has been found experimentally that large classes of images generate component images with Laplacian statistical distributions. Hence, it is assumed that the various component images have Laplacian statistical distributions. This reduces the bit allocation problem to determining the variances of the pixel distributions in the various component images.
  • the above example considered the unusual case of a decomposition into a single low-Frequency component image and a single high-Frequency component image of the same size and variance.
  • an improvement in image quality, or image compression for a given subjective image quality can be obtained by increasing the number of bits per pixel used to quantize the low- Frequency component image at the expense of the high-Frequency component images.
  • the cost of increasing the number of bits allocated the low-Frequency component image is relatively small in most cases, since the low-Frequency component image has a small fraction of the total pixels in the component images.
  • the highest frequency component images on the other hand, have a significant fraction of the total number of pixels in the component images.
  • component images may be quantized with reduced precision relative to the statistical optimum thereby generating a significant saving in the total number of bits needed to quantize the component images.
  • the highest frequency component images may be discarded in many cases. That is, zero bits are allocated per pixel.
  • the corresponding FIR filters in the analyzer may be omitted, thereby reducing the hardware cost of an analyzer.
  • an analyzer While the above described embodiments of an analyzer according to the present invention utilized multiple FIR filters, it will be apparent to those skilled in the art that the decompositions could be carried out in a serial fashion with a single FIR filter. That is, the pixels of each component image would be calculated before going on to calculate the pixels of the next component image. In such an embodiment, the coefficients used in the convolution operation would be changed between the component image calculations. Further, it will be apparent to those skilled in the art that the functions carried out by an analyzer may be simulated on a general purpose computer.
  • the component images generated by an analyzer may be recombined to recover the original image.
  • An apparatus for recombining the M component images generated by an analyzer will be referred to as a synthesizer.
  • a synthesizer is preferably constructed from M FIR filters that will be referred to as injectors in the following discussion.
  • injectors operate on one component image to generate an expanded image having the spatial frequency information represented by the component image in question.
  • the expanded image has the same number of pixels as the original image from which the component images were generated.
  • the reconstructed image is obtained by summing corresponding pixels in each the expanded images.
  • FIG. 6 A block diagram of an injector 80 operating on a component image stored in a buffer 84 to generate an expanded image stored in a buffer 82 is shown in Figure 6.
  • the component image is approximately 1 M the size of the expanded image.
  • Injector 80 includes a controller 87 whose operations are synchronized by clock 88.
  • Clock 88 defines two time cycles, a major cycle and a minor cycle. During each major cycle, one pixel of the expanded image is generated. A typical pixel is shown at 79. The minor timing cycles are used to synchronize the individual arithmetic operations used in the generation each pixel.
  • Each pixel of the expanded image is generated by performing a two- dimensional convolution operation on the pixels in a window 85 whose location is determined by the location of the pixel in question in the component image.
  • vector notation will be used.
  • a pixel of the reconstructed image stored at a location (p x ,p y ) in buffer 82 will be denoted by I' p , where the vector p denotes the location (p x ,p y ) in frame buffer 82.
  • the location of window 85 in buffer 84 will be denoted by w.
  • the coordinates specified by w will be assumed to be those of the lower left-hand corner.
  • a pixel of the image stored in buffer 84 will be denoted by C k , where the vector k denotes the location buffer 84.
  • the weights used in the convolution operation are stored in memory 89.
  • the weights are a two-dimensional array g' k , where k denotes the location in memory 89.
  • the weights g' k used in an injector are related to the weights g k used by the FIR that generated the component image in question.
  • injector 80 For each pixel in the expanded image, injector 80 performs the following calculation:
  • window 85 and memory 89 have corresponding locations which may be specified by a two-dimensional pointer k.
  • controller 87 causes multiply and add circuit 86 to compute the weighted sum of all pixels in window 85.
  • the sum is carried out by selecting the weight corresponding to the pixel in question and multiplying it by the pixel value.
  • the products may be accumulated in multiply and add circuit 86 or stored in frame buffer 82.
  • the location of window 85 depends on the specific pixel in the component image that is being calculated and other parameters relating to the specific transformation that is being implemented by the injector. For the moment, it is sufficient to note that the location of the window is a function of p as shown in Eq. (4).
  • FIG. 7 A block diagram of a synthesizer 100 according to the present invention is shown in Figure 7.
  • M injectors there will be M injectors in a synthesizer.
  • Each injector corresponds to a FIR filter in the analyzer used to decompose the original image into the component images.
  • a synthesizer having a complete set of injectors has M injectors which will be labeled from 0 to (M-l).
  • Representative injectors are shown at 93, 96, and 99 in Figure 7.
  • Each injector has an associated set of weights which will be referred to as coefficient sets in the following discussion.
  • the weight sets are preferably stored in separate buffers, one such buffer being associated with each injector.
  • Representative buffers are shown at 91, 94, and 97.
  • Each weight set is the same as that used by the corresponding FIR filter in the decomposition of the original image into component images.
  • controller 104 which includes a clock 105 for synchronizing the various operations.
  • controller 104 also includes a master weight library from which the various weight sets are loaded into their respective buffers prior to processing the component images.
  • the reconstructed image is preferably stored in a buffer 102 which is shared by the various injectors.
  • Controller 104 uses clock 102 to divide the image processing into a number of time cycles. During each time cycle, one pixel in the reconstructed image is generated by combining M pixels generated by the injectors. The M pixels in question are combined by adder 100 and stored at the relevant location in the reconstructed image. Controller 104 specifies the pixel to be calculated by appropriate signals to registers in the various component image buffers.
  • Controller 104 also specifies the location of the window in the various component image buffers.
  • all of the injectors are synchronized such that all of the injector windows are located at the location for the reconstructed image pixel currently being processed. That is, all of the injectors use the same value for w.
  • each injector computes the pixel of its expanded image corresponding to the pixel in question in the reconstructed image.
  • Adder 100 then adds the results from the various injectors and controller 104 causes the sum to be stored at the correct location in the reconstructed image.
  • the m ⁇ injector calculates the pixels of the m 4 expanded image according to the formula
  • the corresponding synthesizer may be used to reconstruct the image by iteratively applying the synthesizer.
  • the synthesizer is applied to the component images in the reverse of the order used by the analyzer. Referring again it Figure 5.
  • Component images 75 and 76 would first be recombined to regenerate component image 73.
  • Component images 73 and 74 would then be recombined to regenerate component image 71.
  • component images 71 and 72 would be recombined to regenerate the original image 70.
  • the convolution operations described above with reference to the injectors and synthesizers are equivalent to computing the correlation of the portion of the image, or component image, defined by the window with a second "image" whose pixels are corresponding weight set. While these operations are preferably carried out in a digital manner, it will be apparent to those skilled in the art that analog circuitry for generating the correlation values may be used. For example, a series of masks, light sources, and light detectors may be used with a transparency of the image to be decomposed to generate the component images. Similarly, the convolution operations described with reference to the analyzers and filters comprising the same are equivalent to computing the correlation of the portion of the image defined by the widow with a second "image" whose pixels wre the corresponding weight set.
  • each function m F k [Q(x,y) in the present invention is non-zero over a small region of the original image.
  • the region in question will, of course, differ for different functions. If all of the support areas of all basis functions at a given level in the decomposition are combined, the combined area must include the entire area covered by the image. If this is not the case, there will be some images which can not be represented in this manner.
  • the basis functions m F k fl](x,y) inherent in the present invention are translates of one another for fixed m and I. That is, there exists a vector p such that m F k [Q(x,y) is identical to m F k > +p [Q(x,y) for k different from k'. This condition guarantees that there is no preferred region in the image. This condition is reflected in the hardware of the present invention in that the size of the window and weight sets do not change when the pixel being calculated changes.
  • One set of basis functions which satisfies both of these constraints would be a set of functions whose supports are a set of areas which exactly tile the xy-plane.
  • the size of the support for the basis functions increases with the level of the decomposition in a multi-level decomposition. That is m F k [Q(x,y) has a support which is M times larger than m F k [.-l](x,y). If the same weight sets are used at each level of the decomposition, the support area of m F k [Q(x,y) will be the same as the sum of the support areas of M of the basis functions in the (l-l) ⁇ 1 level.
  • the errors in the reconstructed image are a function of the basis functions used in the decomposition of the image and reflect both the shape and support of the basis functions.
  • the support area at each higher level in the decomposition includes M of the support areas in the next lowest level.
  • the boundary of the support area at the higher level coincides with a portion of the boundary of each of the support areas at the lower level contained therein.
  • the various quantization errors may thus add or subtract along these common boundaries either enhancing the artifact or reducing the same.
  • the effect of the enhancements is more noticeable than the improvements obtained when two errors cancel.
  • the human eye is very adept at following even a broken line.
  • the length of the maximum edge that can be generated is the size of the largest support area, i.e., the support areas of the basis functions at Level L. Hence, the linear artifacts can be quite large.
  • reducible basis functions have other linear artifacts. If one were to view a reducible basis function as a "mountain range", the ridges would be aligned with the x-axis, or the y-axis.
  • quantization errors introduce an error over the basis function support area that has the appearance of a texture artifact.
  • the texture is related to the ridges and valleys of the basis function.
  • the resulting texture artifacts will generally be composed of lines
  • the present invention utilizes filters in which the underlying functional expansion is in terms of an irreducible basis. That is, the basis functions can not be written as a product of two one-dimensional functions.
  • the linearly aligned ridges described above can be avoided in an irreducible basis.
  • the present invention also avoids the texture artifacts inherent in a system based on a reducible basis.
  • the ability of the quantizer to compress the component image depends on the form of the underlying basis functions used by the analyzer.
  • the analyzer concentrates all of the "power" in the image into the low-frequency component image at the highest level and a few of the high- frequency component images at the levels just below the highest level.
  • the variances of the high-Frequency component images at the lower levels will be very small and these high-Frequency component images will require very few bits to adequately preserve their portion of the image information.
  • the number of pixels in lower frequency component images is much smaller than the number in the high-frequency component images at the lower levels.
  • the quantizer will need to allocate bits needed by the upper levels to these lower levels, thereby increasing the quantization errors.
  • the ability of the analyzer to concentrate information in the low- frequency component image depends on the ability of the basis functions ⁇ °F k [L](x,y) ⁇ and ⁇ m F k [Q(x,y) ⁇ for ( close to L to represent the structures normally found in images. Suppose that these functions alone could represent all of the structures in an image. Than the pixels of all of the component images for the smaller values of I would be zero and could, therefore, be discarded. That is, there would be no information in the highest frequency component images that would be needed in the image reconstruction. In essence, the highest frequency component images represent the inability of the analyzer to concentrate information in the lower frequency component images.
  • Frequency component images depends on the ability of the analyzer to set the ratio of the sizes of the component images at the various levels. As noted above, the size of the component images changes by a factor of M from one level to the next i general, there will be some optimum value for M which depends on the objects in the image being compressed. In principle, the image compression can be optimized for particular images in terms of the specific coefficient sets. As will be explained in more detail below, M is dependent on coefficient sets. Such an optimization would examine the distortion in the reconstructed image as a function of the available weight sets and chose the weight set providing the minimum distortion. The ability to optimize in this manner depends on being able to vary M. Prior art analyzer do not provide the ability to use M values other than 4.
  • the present invention provides the ability to chose any integer value for M which is greater than 1.
  • the manner in which the weight sets utilized in the present invention are calculated will now be discussed in detail.
  • the simplest weight sets according to the present invention correspond to basis functions having the following properties. All of the basis functions at any given level . for . >0 have the same shape, up to a dilation. Each of the support areas forms a tile. The set of tiles completely covers the portion of the xy-plane over which the image to be compressed is defined.
  • the support area of a basis function at level .+1 is M times the area of the support of a basis function at level t and includes M of the support areas of the basis functions at level ..
  • the shape of the support area at level (+1 is the same as that at level I; however, the support area will, in general, be rotated relative to the support areas at level .. Since the support areas at any given level are congruent and tile the plane, a grid is defined in the plane by selecting one specific point on each of the support areas such that the selected points occupy congruent positions in the different support areas. The location of the corresponding point on the support areas at the next highest level will also be on one of the grid points. Since the support at the next highest level is larger than that at the lower level, not all grid points defined with reference to the support regions at level I will have a support region for a level l+l basis function located thereon. The location of the grid point k' at level l+l corresponding to a grid point k at level I is given by the transformation
  • the simplest support shape is a rectangle having sides in the ratio of j il. Two such support areas placed side by side have the same shape as a single support area rotated by 90 degrees.
  • FIG. 8 illustrates a number of rectangular support having sides in the ratio of ⁇ 2:1. These dimensions are shown explicitly on support area 111. Each support area can be identified by an index associated with its lower left-hand corner. Support area 112 is associated with grid point (0,0); support area 113 is associated with grid point (0,1), and so on.
  • Support area 116 obtained by combining support areas 113 and 115. This support has one side with length yj ⁇ and one with length 2. Hence, the sides are in the ratio y ⁇ :l. If the short side is defined to be the base, support area 106 can be viewed as being a support area of twice the area which has been rotated by 90 degrees relative to its two constituent support areas. Its lower left hand corner is located at grid point (0,2); hence it satisfies the condition that it also lies on a grid point.
  • Figure 9 illustrates a surface 200 which is tiled with twin ⁇ dragon shaped support areas of which support areas 201 and 202 are typical. It will be seen that the larger support area 203 obtained by combining support areas 201 and 202 is itself a twindragon shaped support area located at the same grid point as support area 201. The combined support area is rotated by an angle of 45° relative to the single support areas.
  • Figure 10 illustrates a surface 300 which is tiled with novon shaped support areas of which support areas 301 and 302 are typical.
  • the larger support area 303 obtained by combining support areas 301 and 302 is itself a novon shaped support area located at the same grid point as support area 301.
  • the combined support area is rotated by an angle of arctangent(7) which is approximately equal to 69.295° relative to the single support areas.
  • novon and twindragon support areas have boundaries that do not contain any linear segments. Hence, quantization errors in the corresponding component image pixels do not give rise to linear artifacts in the reconstructed images.
  • a quantization error in a system utilizing basis functions defined on these support areas gives rise to an error over an irregularly shaped area which does not tend to reinforce quantization errors on the support areas at the next highest level since the support areas at each higher level are rotated with respect to the those at the lower levels.
  • may have the values 0, ⁇ 1, and ⁇ 2 which correspond to the rec ⁇ tangle, novon, and twindragon cases discussed above.
  • the associated support area is the same as support area 110 shown in Figure 8.
  • the more general case in which the transformation has M greater than or equal to two will now be discussed.
  • the parameter M will be referred to as the multiplier of the transformation.
  • the multiplier of the trans ⁇ formation can be any integer which is greater than one.
  • the number of possible values of ⁇ in Eq. (9) depends on M. It can be shown that ⁇ can take on those integer values for which
  • ⁇ and M determine the shape of the support area and the grid on which the support areas are located.
  • a grid is shown in Figure 11 at 800 together with a table of the permissible ⁇ values for M less than 6.
  • the grid is a parallelogram as shown at 801.
  • the grid points are labeled with integer indices.
  • the grid has been drawn with x-axis as one of the grid directions.
  • the other grid direction is specified by the values of dx and dy.
  • the angle of rotation between the support areas of successive levels is given by the arctangent (dy/dx).
  • sets of coefficients ⁇ m a k ⁇ are chosen.
  • the weight sets m g k and m g' k are related to these coefficient sets.
  • the coefficient values are complex numbers.
  • the minimum number of coefficients in the low-frequency filter coefficient set ⁇ °a ⁇ which can be non-zero is M.
  • the coefficients sets for which there are M values of k for which °a k is different from zero and for which those M values are all equal to one, correspond to the case in which the support areas do not overlap.
  • the remaining cases correspond to the cases in which the support areas overlap.
  • q is any vector connecting two grid points
  • (*) denotes complex conjugation
  • the component images may be generated from the coefficient sets by the following formula
  • the relationship between the coefficients m a k and the weight sets m g k can be ascertained by comparing Eqs. (3) and (14). Assume that m a and m g k are defined on the same grid, i.e., the two-dimensional coordinates in the relevant weight buffer. As will be discussed in more detail below, not all of the points in this grid will have a corresponding m a k .
  • the weight sets can be divided into two groups, those that are zero and those that have values related to the m a k as follows.
  • the size of the window is specified by the extreme value of Sp+k.
  • the convolution can be carried out directly utilizing the coefficient sets ⁇ "&____ ⁇ .
  • the coefficient sets would be stored in the memory arrays used to store the weights.
  • the controller would then select the points to be convolved with the coefficients by performing the above described matrix multiplication and vector additions. This is equivalent to defining a window the image or component image buffers and convolving selected pixels in that window with the coefficients.
  • the present invention differs from prior art coding schemes such as that taught by Adelson, et al. in the above-mentioned United States Patent in the type of basis functions and the multipliers of the corresponding transformations.
  • prior art image coding schemes only transformations having multipliers of 4 and two-dimensional basis functions which could be written as the product of two one-dimensional basis functions are utilized. Such functions are usually referred to as "reducible".
  • the multiplier of the corresponding one-dimensional transformation is 2.
  • the relationship between the weighting coefficients used in the filters and injectors and the coefficient sets m a k the manner in which the coefficients are calculated will now be explained in more detail.
  • the low-frequency coefficients °a k completely determine the remaining high-frequency coefficients 1 a k up to a common factor that can be selected to be either +1 or -1.
  • the relationship between the low and high-frequency coefficients may be more easily written without vector notation. The relationship is as follows;
  • the high-Frequency coefficients are not completely determined by the low-Frequency coefficients.
  • a computer search utilizing the constraint equations described above may be used to find coefficient sets.
  • additional constraints may be imposed on the m a k to provide additional advantageous properties to the transformation.
  • the analyzer and synthesizer store several sets. The analyzer can then test several sets against a given image to determine which provides the lowest distortion for a given compression ratio.
  • One method for calculating a two-dimensional low-frequency set of coefficients °a k utilizes a one-dimensional set of low-Frequency coefficients.
  • a set of one-dimensional orthonormal coefficients ⁇ bj ⁇ , j running from 0 to N c -1, has multiplier M if
  • the two-dimensional coefficient sets are obtained by deploying a one- dimensional set of coefficients in two-dimensions. There are an infinite number of two-dimensional deployments of the b j which satisfy the equations in question.
  • the preferred method of deploying a one-dimensional set of coefficients utilizes a 2x2 integer- valued matrix G having a determinant with absolute value equal to 1.
  • r (1,0).
  • the general two-dimensional deployment of b j is given by
  • one advantageous feature of the present invention lies in the variety of basis of functions provided thereby.
  • Each transformation provides different basis functions.
  • the transformation in which the corresponding basis functions most closely represents the image features may be selected.
  • the number of possible permutations of multipliers and ⁇ m a k ⁇ is too large to exhaustively search.
  • Basis functions which have this property may be selected by utilizing the sets of coefficients, ⁇ m a ⁇ , in which the corresponding coefficients
  • the undesirable subjective effects resulting from quantization errors can be further reduced by using different transformations at each level of the decomposition.
  • different transformations correspond to different basis functions. If the same weight sets are used at each level of the transformation, the basis functions corresponding to a given level will have a portion of the support area of their boundary which is coincident with portions of the boundaries of the basis functions at the next lowest level. Hence, quantization errors in pixels at the two levels can add, thereby enhancing the edge of the support area and generating an artifact.
  • This situation can be avoided by utilizing weight sets corresponding to transformations having different shaped support areas at the different levels of the transformation. In this case, the basis functions at any given level will not have support areas which are coincident with the boundary of a support area at another level.
  • An image recording according to the present invention comprises a low-frequency component image and one or more high-frequency component images.
  • the pixels of the component images are approximations to the coefficients of an orthonormal expansion of the image in an irreducible basis in which the basis functions have compact support. That is, each basis function is non-zero over a small region of the image.
  • the recorded image also includes sufficient information specifying the basis functions in question to allow an approximation to the image to be constructed. In general, this information includes information specifying the coefficients sets used to generate the component images and the identity of any component images that were discarded.
  • weight sets that may be utilized in compressing an image in the manner taught in the present invention. Different sets may be better suited to specific classes of images. Hence, provided computation time is not limiting in the compression step of making a recording, it is advantageous to compress an image with a number of different weight sets and then measure the distortion in the decompressed image.
  • the component images generated by the compression giving the minimum distortion can then be used to generate the recorded image.
  • the component images can then be recorded on a suitable recording medium such as optical or magnetic disks or tapes.
  • This approach is particularly relevant in applications in which images are distributed in libraries to end users.
  • the number of images that can be stored on a given medium is dependent on the degree of compression that can be obtained at an acceptable image quality. Since the cost of optimizing the compression can be spread over a number of different end users, more computational time can be devoted to compressing the images.
  • Image compression and de-compression systems may be implemented in a pipelined fashion in those applications in which real time compression and decompression are needed. For example, in FAX transmission, both the compression and de-compression systems must operate in real time. Furthermore, it will generally be advantageous to provide both a compression apparatus and a decompression apparatus in the same instrument In contrast image display systems operating from libraries of compressed images may require only a decompression system that must operate at real-time speeds.
  • Analyzer 500 includes L stages, one said stage corresponding to each level of the multi ⁇ level decomposition c " the -images input to analyzer 500.
  • the first, second, and Ifi 1 stages are shown i - Figure 12.
  • Each stage includes an analyzer such as that described above with reference to Figure 4 and two output buffers.
  • One of the output buffers is used to store the low-Frequency component image generated by the analyzer and one is used for to store the high-Frequency component images generated by the analyzer.
  • the first stage comprises analyzer 502 and buffers 503-504.
  • the second stage comprises analyzer 506 and buffers 507-508, and the I * stage comprises analyzer 510 and buffers 512 and 514.
  • the first stage also includes an image buffer 501 which receives the incoming images to be analyzed.
  • Analyzer system 500 is under the controller of a controller 520 which includes a clock 522 for defining a series of time periods. During each time period, one image is input to analyzer system 500, and the component images corresponding to the image input L cycles time periods earlier are output by controller 520.
  • each of the analyzers operates on the low-Frequency component image stored in the low-Frequency buffer in the stage ahead of it.
  • the component images generated by each analyzer are stored in the buffers associated with that analyzer.
  • each analyzer includes internal buffers used by that analyzer during the generation of the component images.
  • controller 520 collects the high-Frequency component images generated by the various stages and the low-Frequency component image generated by the last stage. Controller 520 includes sufficient memory to store the various high-Frequency component images generated in L time cycles.
  • the time savings provided by a pipelined analyzer implementation will depend on the multiplier M of the transformation being implemented.
  • the computational workload of each of the successive stages decrease by a factor of M.
  • the time needed to analyze an image can be reduced by approximately a factor of two.
  • the number of levels in the decomposition will be less than those in systems with smaller M.
  • the computational workload per level is greater in systems with larger M, the parallel processing provided by the M FIR filters in each stage provides the necessary computational speed.
  • Image synthesis systems employing a similar pipelined architecture will be apparent to those skilled in the art from the foregoing discussion. However, one class of image synthesis system merits additional comment.
  • the present invention is particularly useful in displaying images that have been compressed and stored in their compressed form.
  • One problem inherent in high resolution graphics system is the bottleneck presented by the communication bus that connects the image storage device and the graphics interface.
  • the image storage device is a magnetic disk or the like. The time needed to transfer this amount of data is sufficiently large that a human operator who is browsing through the images in a library finds the delay annoying if not unacceptable.
  • the browsing operation can be carried out more efficiently for two reasons.
  • the amount of data that must be read from the disk and transferred to the graphics interface is reduced by the compression ratio. This significantly reduces the transfer time.
  • a low-Frequency approximation to the image can be displayed prior to receiving all of the component images. It is known from studies of the human visual system, that an observer can not appreciate the high resolution detail in a motion picture in those parts of the picture that are changing rapidly in time. Hence, when a new image is placed on a display screen, it takes some time for the viewer to see the high resolution detail in the image. This observation may be use to provide an image display system in which the viewer perceives that he or she is seeing the image at high resolution without the delays inherent in transferring all of the component images. In such a system, the component images are transferred in the order of their frequency content.
  • a screen image is generated based on the data received as of that time, the missing component images being initially replaced by component images having zeros for all of their pixels.
  • the image sharpens over time Provided the sharpening occurs in a time consistent with the viewer's ability to appreciate the finer detail, the viewer will have the perception of viewing a high resolution image that was generated in a time much smaller that actually used by the system.
  • a display device 600 according to this aspect of the present invention is shown in Figure 13 at 600.
  • Display device 600 has L stages for reconstructing an image that has been compressed to at most L levels. Each stage includes a synthesizer and two buffers.
  • the first, second and Lfi stages are shown in Figure 13.
  • the first stage comprises synthesizer 604 and buffers 602-603.
  • the second stage comprises synthesizer 608 and buffers 605-606, and the Lth stage comprises synthesizer 614 and buffers 610-611. If the image to be reconstructed was decomposed to less than L levels, controller 630 causes the low-Frequency component image to be stored in the intermediate buffer in the L ⁇ stage. In the following discussion, it will be assumed that L stages are used.
  • the component images are input on a bus 601.
  • the information specifying the transformation actually used on the image to be reconstructed is received first by controller 630 which loads the appropriate weight sets into the various synthesizers.
  • the component images for each level of the decomposition are received.
  • one set of component images is received.
  • the low- Frequency component image and the high-Frequency component images corresponding to the highest level of the decomposition are stored in buffer 602 and 603 respectively.
  • controller 630 causes synthesizer 604 to reconstruct a low-Frequency image corresponding to level (L-1) and store that image in intermediate buffer 605.
  • controller 630 causes synthesizer 608 to generate a low-Frequency component image corresponding to level (L-1) from the component image stored in intermediate buffer 605.
  • This low-Frequency component image is stored in the intermediate buffer in the next stage, and so on.
  • synthesizer 614 constructs the final reconstructed image which is stored in video RAM 620 for display on screen 622.
  • This first approximation to reconstructed image is based only on component images from the highest level of the decomposition. Since it lacks the information in the lower levels of the decomposition, i.e., high-Frequency information, this approximation will be similar to a low-pass filtered image. Since the lower frequency component images require only a small fraction of the component image data, these component images can be transmitted in a time which is short compared to that needed to transmit the entire compressed image.
  • the high-Frequency component images of the next level of the decomposition are received on bus 601 and stored in buffer 606. It should be noted that each buffer is only used for a portion of the cycle; hence, component images may be stored in the buffers while the first approximation is being calculated.
  • controller After the first approximation is calculated, controller causes the next approximation to be calculated in a similar manner. However, this time, additional high-Frequency component images will have been stored in the relevant buffers. Hence, the new approximation will have greater detail than the first approximation. This process is repeated until the reconstructed image includes the information in all of the component images.

Abstract

An image compression system in which the image to be compressed is expanded in terms of an irreducible two-dimensional basis is disclosed. The input image (52) is converted to a plurality of component images (65, 67...) having different spatial frequency content. The pixels of the component images are the coefficients of an expansion of the input image in an irreducible two-dimensional basis. The preferred basis functions have compact support regions that are small compared to the input image and which have boundaries that lack straight line segments. The choice of basis significantly reduces artifacts in reconstructed images generated from highly compressed input images.

Description

IMPROVED IMAGE COMPRESSION SYSTEM
Background of the Invention
The present invention relates to methods and apparatuses for transforming images and, more specifically, to a method and apparatus for reducing the amount of data needed to store an image.
Images are conventionally represented by a two-dimensional array of values in which each value represents a property of the image at a corresponding point on the image. In the case of gray-scale images, a single number representing the gradations of intensity from white to black, referred to as the gray scale, is stored. In the case of color images, each "value" is a vector whose components represent the gradations in intensity of the various primary colors, or some alternative color code, at the corresponding point in the image.
This representation of an image corresponds to the output of a typical image-sensing device such as a television camera. Such a representation is convenient in that it is easily regenerated on a display device such as a CRT tube. However, it has at least two short-comings. First, the number of bits needed to represent the data is prohibitively large for many applications. Second, if the image is to be processed to extract features that are arranged in the same order of importance as that perceived by a person viewing the image, the amount of processing needed can be prohibitively large.
The number of bits needed to store a typical image is sufficiently large to limit the use of images in data processing and communication systems. A single 512x512 gray-scale image with 256 gray levels requires in excess of 256,000 bytes. A small-scale computer user is limited to disk storage systems having a capacity of typically 300 Mbytes. Hence, less than 1200 images can be stored without utilizing some form of image compression.
Similarly, the transmission of images over conventional telephone circuitry is limited by the high number of bits needed to represent the image. If an 8x11 inch image were digitized to 256 gray levels at 200 dots per inch (the resolution utilized in typical FAX transmissions) in excess of 28 million bits would be required. Normal consumer-quality analog telephone lines are limited to a digital communication rate of 9600 bits per second. Hence, the transmission of the image would require in excess of 45 minutes in the absence of some form of image compression. The need to reduce the data required to represent an image has led to numerous image compression methods. These methods can be conveniently divided into two classes, invertible and non-invertible methods. The invertible methods reduce redundancy but do not destroy any of the information present in the image. These methods transform the two-dimensional array representing the image into a form requiring fewer bits to store. The original two-dimensional array is generated by the inverse transformation prior to display. The regenerated image is identical to the original image.
Consider a gray-scale image which has been digitized to two gray levels, black and white. Such an image is often referred to as a binary image, since the gray level of each pixel is either a one or zero. Hence, the image consists of a two-dimensional array of bits. A one-dimensional list of bits can be generated from the two-dimensional array by copying, in order, each row of the two- dimensional array into the one-dimensional array. It has been observed that the resultant one-dimensional array has long runs of ones or zeros. Consider a run of 100 ones. One hundred bits are required to represent the run in the one- dimensional array. However, the same 100 bits could be represented by a 7-bit counter value specifying the length of the run and the value "one" specifying the repeated gray level. Hence, the 100 bits can be reduced to 8-bits. This is the basis of an invertible transformation of the one-dimensional array in which the transformed image consisting of a sequence of paired values, each pair consisting of a count and a bit value.
The success of any image compression scheme may be viewed in terms of the compression ratio obtained with the method in question. The compression ratio is the ratio of the number of bits in the original two-dimensional array to the number of bits needed to store the transformed image. For typical binary images, compression ratios of the order of 5 to 10 can be obtained utilizing these methods. However, the gains obtained decrease rapidly as the number of gray levels is increased. At higher numbers of gray levels, the probability of finding repeated runs of the same gray level decreases. Each time the gray level changes, a new pair of values must be entered into the file. As a result, compression ratios exceeding 3 are seldom obtained utilizing invertible compression methods for gray-level images.
Higher compression ratios can be obtained if non-invertible compression methods are utilized. In such methods, the image regenerated by the inverse transformation is not identical to the original image. The simplest form of non- invertible image compression will be referred to as quantization. A quantization scheme replaces each pixel by an integer having a finite precision. Each of the pixel values is to be replaced by an integer having a predetermined number of bits. The number of bits will be denoted by P. The integers in question are then transmitted in place of the individual pixel values. At the receiver, the inverse of the mapping used to assign the integer values to the pixel values is used to produce numbers that are used in place of the original pixel values. There are at most 2P distinct values that can be represented; hence, if there are more than 2P different pixel values in the original image, at least some of the pixel values will not be exactly recovered. The goal of the quantization algorithm is to minimize the overall error rate with respect to a suitable measure of error. Given the statistical distribution of the pixel values, and the number of bits to be allocated to each pixel, the optimum mapping of the pixel values to the integer values in question may be calculated. Since such optimization calculations are well known in the art, they will not be discussed in detail here. For more details of the procedures in question, the reader is referred to William K. Pratt, Digital Image Processing, pp. 141-46, John Wiley & Sons, Inc., New York, 1978, which is hereby incorporated by reference.
The overall error in approximating an image will depend on the statistical distribution of the intensity values in the image and the degree of image compression needed. Once an image compression ratio is set, the total number of bits available for all of the pixels of the quantized image is determined. The optimum assignment of the available bits is determined from the statistical properties of the image. It has been found experimentally that the statistical distributions of a large class of images are approximated by Laplacian distributions. Hence, the optimum allocation of the bits may be made from a knowledge of the variance of the pixel values in the image. For the purposes of this discussion, a quantization scheme will be defined to be "optimum" if it provides the lowest distortion in the reconstructed image for a given compression ratio. For the purposes of this definition, the distortion is measured in terms of mean-squared-error between the image prior to compression and image obtained after compressing and decompressing the original image. It will be apparent to those skilled in the art that other statistical measures of distortion between the original and reconstructed images may be used.
Li general, for any given distortion, the degree of compression which is obtainable through quantization will be inversely related to the variance of the distribution of intensity values in the image. Hence, images with lower variances can be compressed to a greater degree than images with a greater variance. This observation forms the basis of a number of more complex image compression systems in which the image is first transformed into a plurality of component images. The various component images are then quantized. Consider a transformation of an original NxN pixel image which generates two component images each having approximately one half the original number of pixels. It will be assumed that the transformation in question is reversible. That is, the two component images may be recombined using the inverse transformation to generate the original image.
Consider the case in which the transformation is chosen such that the variance of the first component image is approximately the same as that of the original image while the variance of the second component image is significantly less than that of the original image. Since there are one half the number of pixels in the first image, the first image can be quantized with one half the number of bits needed to quantize the original image to the same precision. However, since the second component image has a smaller variance then the original image, the number of bits needed to quantize the second component image will be less than one half the number needed to quantize the original image. Thus, a net reduction in the number of bits needed to represent the image in the quantized form is achieved.
The above example assumes that a transformation having the desired property can be constructed. It is known that the information in images tends to be concentrated in the lower spatial frequencies. Hence, transformations that divide the image into component images having different spatial frequency content provide the desired property. Such transformations can be implemented utilizing perfect reconstruction filter banks. By appropriate application of such filter banks to the image, a number of component images are generated. In general, a low-frequency image having a small fraction of the original image size is generated together with a number of high-frequency images. The low- frequency image has a pixel intensity variance of the same order as the original image and is quantized accordingly. The high-frequency component images have much smaller variances, and hence, are quantized with fewer bits per pixel.
While the transformation method described above improves the degree of compression obtainable for a given distortion, the prior art methods utilizing this technique all suffer from undesirable artifacts. To appreciate the cause of these artifacts, one must examine the details of the transformations utilized. Consider a continuous image represented by an intensity distribution I(x,y). The transformation in question approximates I(x,y) by a series of the form:
I(x,y) = pkFk(x,y) + ∑qfcG (x,y) (1) k
where the set of functions {Fk(x,y) } and { G (x,y) } are the basis functions for the transformation. The coefficients sets {pk} and {qj are determined by fitting the observed image values using the basis functions. These coefficient sets are the "pixels" of the component images referred to above. As will be explained in more detail below, the basis functions {Fk}and {G } are chosen such that the most "important" information contained in the image is represented by the p's and the least important information is represented by the q's. The transformation in question is invertible in the sense that given an NxN set of pixel intensities, I(Xi.yp, one can determine a total of N2 coefficients pk and q^ that will exactly reproduce the N2 values I(Xi,y .
These pixels of the component images are quantized in the course of compressing the image. As a result, the image must be reconstructed from approximations {p' } and {q'k} to the original pixel intensities. In this case, reconstruction will not be exact even for the original I(xi,yj) values. In general, the errors introduced in the reconstructed image will depend on the choice of basis functions.
The basis functions must be chosen such that {Fk} will extract the low spatial frequency information in the image, and {Gk} will extract the high spatial frequency information. This condition guarantees that the transformation will lead to component images that differ in spatial frequency content.
It is useful to distinguish the various classes of basis functions by the fraction of the image over which each of the basis functions is non-zero. This will be referred to as the support of the basis function. If the basis functions have support which is of the same order of size as the image itself, then a quantization error in one coefficient will affect every point in the reconstructed image. This leads to large errors distributed throughout the reconstructed image. Such errors are subjectively very objectionable. For example, a quantization error in a single coefficient could lead to "stripes" extending across the entire reconstructed image.
A second problem occurs with basis functions having large support. Images tend to contain structures whose spatial extent is small compared to the size of the image. To represent such a structure with basis functions that have support which much larger than the structure in question often requires the superposition of many such basis functions. Hence, the number of coefficients which contain useful information is likely to be larger if basis functions having support which is much larger than the objects found in the image are used.
A third problem with transformations that utilize basis functions whose support is large is the computation cost. The computational workload inherent in fitting the image to the expansion discussed above is related to the support of the basis functions. If the support is large, the computational workload becomes correspondingly large. For example, one prior art image compression system utilizes a two-dimensional Fourier transform. The Fourier basis functions have the same support as the size of the image. The transformation in question requires that one compute the two-dimensional Fourier transform of the entire image. Even with fast Fourier transform techniques, the computational workload is of the order of N^tlogCN)2] operations. This workload is too great to allow a practical image compression apparatus to be constructed that operates on an entire image. To reduce the computational workload, the image is typically broken into sub-images that are individually compressed. The decompressed sub-images are then recombined to form the decompressed image. At large compression ratios, the boundaries of the sub-regions appear as artifacts in the reconstructed image.
If, on the other hand, the basis functions have support which is small, then a quantization error will only affect a small area of the reconstructed image. This leads to errors which are more like random noise. Random noise errors are much less objectionable than systematic artifacts such as stripes; hence, this type of error can be incurred without producing a subjectively objectionable image, even in cases in which the equivalent distortion in a non-random noise error situation would result in an unacceptable image.
In addition, the computational workload inherent in a transform using basis functions having small support is significantly less. The transformation can be carried out using perfect reconstruction filter banks with a relatively small number of taps. Hence, systems based on realistic hardware can be constructed.
While image compression systems based on transformations having small support have a number of desirable properties, the prior art systems of this type still have a number of problems. The prior art systems in question utilize transforms in which the support region for each basis function is rectangular. As the level of compression is increased, the quantization errors also increase. Consider the increase resulting from an error in one coefficient, pk. As the quantization increases, the error p' -p increases. This error results in a change in image intensity over the entire region of the support of Fk. In prior art systems, the support region in question is a rectangle. If this were the only quantization error, the reconstructed image would display the four linear boundaries of the support region of Fk. The difference in intensity across the boundaries in question will be related to the error in quantization. The human visual system is very sensitive to linear boundaries as is indicated by the ability of the visual system to detect such boundaries even when the difference in intensity is only a few percent across the boundary in question. Hence, these boundaries give rise to highly objectionable artifacϊs. Individuals viewing highly compressed images from this type of compression system often report a "blocky" picture.
A another problem with prior art image compression systems results from the choice of basis functions. The ability of the transformation to concentrate the image information in as few terms in Eq. (1) as possible is determined by the choice of basis function. Systems of basis functions which reflect or approximate the structures found in typical images are more likely to require fewer terms to represent an image with a given degree of fidelity. It is known that images tend to include structures having limited spatial extent which vary in intensity smoothly over the structure. Hence, sets of basis functions in which the Fk can approximate compact objects having intensities which may be approxiamted by low order polynomials, i.e., constants, linear, and quadratically varying surfaces, would be advantageous. If the basis functions are orthonormal, this is equivalent to requiring that at least the low order moments of each of the basis functions Gk vanish. Prior art image compression systems do not provide this property.
In addition, the variance of the coefficient sets {pk} and {qj,} is related to the basis functions selected. As noted above, the ability of the quantization scheme to compress the image is related to the variance of the coefficient sets. In general, basis functions which are orthogonal to each other give rise to coefficients sets having lower variance than the coefficient sets obtained with non-orthogonal basis functions. Prior art systems with small support have not utilized transformations having orthogonal basis functions.
A typical prior art solution to the image transformation problem is taught in U.S. Patent 4,817,182 by Adelson, et al. In the method taught by Adelson, et al., the image is processed by a quadrature mirror filter bank (QMF) to produce four filtered images which are, in reality, four sets of coefficients. Three of the sets of coefficients are analogous to the qjjdiscussed above in that they represent high spatial frequency information. The fourth set of coefficients is analogous to the pk in that these coefficients represent low-frequency informa¬ tion. The number of coefficients in each set is the same. Adelson, et al. teach treating the low-frequency components as an image of one quarter the size and then reprocessing the low-frequency coefficients using the same QMF. This iterative procedure leads to a pyramid of coefficient sets with a low-frequency set at the top and three sets of high-frequency coefficients at each level below the top. Each level represents information having higher frequency than the level above it.
It may be shown that this method is equivalent to the transformation dis¬ cussed above with the qj- being further divided into different subsets. Although
Adelson, et al. refer to their QMF method as being equivalent to expanding the image in an orthonormal basis set, this method does not provide the claimed orthonormal expansion. The basis functions corresponding to a QMF are, by definition, symmetric. Using this property of the QMF basis functions, it can be shown that the QMF basis functions can not be an orthonormal set. Hence, this method does not provide the advantages of an orthonormal transformation of the image.
Another problem with the method taught by Adelson, et al. is that no means for selecting the QMF filter in terms of the image properties is taught. As a result, the basis functions taught therein do not optimally represent smoothly varying image features. For example, these basis functions cannot exactly represent quadratic surfaces.
Broadly, it is an object of the present invention to provide an improved apparatus and method for coding an image such that the coded image can be represented in fewer bits than the original image.
It is a further object of the present invention to provide an apparatus and method which utilize an orthonormal transformation of the image.
It is yet another object of the present invention to provide an apparatus and method in which the transformation utilizes basis functions having support which is small compared to the size of the image.
It is yet another object of the present invention to provide an apparatus and method in which the transformation utilizes basis functions that can adequately represent smoothly varying images such as low order polynomials. It is a still further object of the present invention to provide an apparatus and method in which the transformation does not generate linear artifacts in the reconstructed image.
These and other objects of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.
Summary of the Invention
The present invention comprises an image compression/decompression system together with recordings of images made thereby. An image compression apparatus according to the present invention generates a plurality of component images from an input image. The pixel intensity values of the component images are approximated by integers of a predetermined precision, the precision depending on the information content of the component image in question. The pixel intensity values of the component images are the coefficients of an expansion of the input image in a two-dimensional irreducible basis.
A decompression apparatus according to the present invention reverses the compression process. Such a decompression apparatus regenerates an approximation to the original component images from the integer values used to replace the original pixel intensity values of the component images. The reconstructed component images are then recombined to generate an approximation to the original image.
The decomposition of the input image into the component images is carried out in the preferred embodiment of the present invention with the aid of a special class of two-dimensional finite impulse response filters. An analogous class of filters is used to reconstruct the image.
Brief Description of the Drawings
Figure 1 is a block diagram of an image compression apparatus 10 according to the present invention.
Figure 2 is a block diagram of a decompression apparatus according to the present invention. Figure 3 is a block diagram of one embodiment of a two-dimensional FIR according to the present invention together with frame and component buffers.
Figure 4 is a block diagram of an analyzer according to the present invention.
Figure 5 illustrates the recursive application of an analyzer having M=2 to an image.
Figure 6 is a block diagram of an injector operating on a component image stored in a buffer to generate an expanded image.
Figure 7 is a block diagram of a synthesizer according to the present invention.
Figure 8 illustrates the shape of the support area for one set of basis functions according to the present invention.
Figure 9 illustrates the shape of the support area for a second set of basis functions according to the present invention.
Figure 10 illustrates the shape of the support area for third set of basis functions according to the present invention.
Figure 11 is a table of possible values for some the parameters defining some of the low multiplier bases according to the present invention.
Figure 12 is a block diagram for a pipelined implementation of an analyzer system according to the present invention.
Figure 12 is a block diagram for an image reconstruction and display system according to the present invention.
Detailed Description of the Invention
Figure 1 is a block diagram of an image compression apparatus 10 according to the present invention. The image to be compressed is stored initially in a frame buffer 12. A filter bank 14 is used to transform the image in frame buffer 12 into a plurality of component images comprising at least one component image representing the low spatial frequency information and one component image representing the high spatial frequency information in the image. The component images are stored in a buffer 16. As will be explained in more detail below, the filter bank may be iteratively applied to the component images stored in buffer 16 to produce additional component images. As will also be explained in more detail below, buffer 16 may include all of frame buffer 12. The component images stored in buffer 16 are then quantized by quantizer 18 to generate the compressed image 20.
Quantization methods are well known to those skilled in the image compression arts; hence, these methods will not be discussed in detail here. For the purposes of the present discussion, it is sufficient to note that quantizer 18 replaces each pixel in a component image by integer having some predetermined precision. In general, the precision in question will vary with the component image being quantized and will depend on the statistical distribution, or an approximation thereto, of the pixels in the component image.
Compressed image 20 comprises the quantized pixel values and information specifying the quantization applied to each component image. In general, some of the component images will not be quantized. The pixels of these images will be replaced by zeros. Hence, the information in question includes the identity of the component images that were quantized and information specifying an inverse mapping which allows an approximation to each of the quantized component images to be generated by a decompression apparatus.
An image which has been co ^pressed by compression apparatus 10 may be decompressed with the aid of a decompression apparatus. A block diagram of a decompression apparatus according to the present invention is shown in Figure 2 at 22. The compressed image is received by an inverse quantizer 24 which generates the relevant component images which are stored in buffer 25. Inverse quantizer 24 utilizes the inverse mapping information and the quantized component image values to generate approximations to the original component images. Those component images that were quantized to zero intensity pixels are replaced by component images of the same size having pixel values of zero. The component images are then input to an inverse filter bank 26 which combines the component images to generate an approximation to the original image which is stored in a frame buffer 27. As will be explained in more detail below component image buffer 25 may include frame buffer 27. The filter bank and inverse filter bank described above are two- dimensional analogs of the one-dimensional perfect reconstruction filter banks utilized in a number of signal processing applications. The filter bank that decomposes the image into the component images will be referred to as an analyzer, and the filter bank the reconstructs an image from its component images will be referred to as a synthesizer in the following discussion. In general, each filter bank includes a plurality of two-dimensional finite impulse response filters (FIRs). The number of FIRs in each filter bank will be denoted by M.
A block diagram of one embodiment of a two-dimensional FIR according to the present invention is shown at 30 in Figure 3 together with a frame buffer 32 and a component buffer 34. The image to be processed comprises a two- dimensional array of pixel values which are stored in frame buffer 32. The pixels of the component image are stored in component buffer 34. In general, the number of pixels in the component image will be approximately 1/M times the number of pixels in the image. FIR 30 includes a controller 37 whose operations are synchronized by clock 38. Clock 38 defines two time cycles, a major cycle and a minor cycle. During each major cycle, one pixel of the component image is generated. A typical pixel is shown at 35.
Each pixel of the component image is generated by performing a two- dimensional convolution operation on the pixels in a window 40 whose location is determined by the location of the pixel in question in the component image. To simplify the following discussion, vector notation will be used. In general, vectors and matrices will be written in bold print. In general, a location in either of buffers 32 and 34 is identified by two integer index values. A location is addressed by inserting the index values into an address register. The address register for buffer 34 is shown at 33, and the address register for buffer 32 is shown at 31. To differentiate these integer values from a general location (x,y), the index values will be denoted by an ordered integer pair (kx,ky). A pixel of the component image stored at a location (px,py) in buffer 34 will be denoted by Cp, where the vector p denotes the location (px,py) in component buffer 34. Similarly, the location of window 40 in buffer 32 will be denoted by w. The coordinates specified by w will be assumed to be those of the lower left-hand corner; however, other labeling schemes will also function adequately as will be apparent to those skilled in the art. Finally, the intensity value of a pixel of the image stored in buffer 32 will be denoted by Ik, where the vector k denotes the location (kx,ky) in component buffer 32. The weights used in the convolution operation are stored in memory 39. As will be explained in more detail below, the weights may be regarded as a two-dimensional array gk, where k denotes the location (kx,ky) in memory 39.
For each pixel Cp in the component image, FIR 30 performs the following calculation:
Cp =∑ gk !w(p)+k (2)
The summation is carried out at for those k values corresponding to locations in window 40 for which the corresponding weights are non-zero. In general, window 40 and memory 39 have corresponding locations which may be specified by a two-dimensional pointer k. For any given location of window 40, controller 37 causes multiply and add circuit 36 to compute the weighted sum of all pixels in window 40. One product is calculated each minor clock cycle in the preferred embodiment of the present invention. The sum is carried out by selecting the weight corresponding to the pixel in question and multiplying it by the pixel value. The products may be accumulated in multiply and add circuit 36 or stored in component buffer 34. As will be explained in detail below, the location of window 40 depends on the specific pixel in the component image that is being calculated and other parameters relating to the specific transformation that is being implemented by the FIR. For the moment, it is sufficient to note that the location of the window is a function of p as shown in Eq. (2).
Two or more FIR filters may be combined to form an analyzer. A block diagram of an analyzer 50 according to the present invention is shown in Figure 4. In general, there will be M FIR filters in an analyzer. The significance of this number will be discussed in detail below. For the present discussion, it is sufficient to note that an analyzer having a complete set of FIR filters has M such filters which will be labeled from 0 to (M-l). Representative filters are shown at 59-61 in Figure 4. Each FIR filter has an associated set of weights. The weight sets are preferably stored in separate buffers, one such buffer being associated with each FIR. Representative buffers are shown at 62-64.
The FIR filters are under the control of controller 56 which includes a clock 58 for synchronizing the various operations. In the preferred embodiment of the present invention, controller 56 also includes a master weight library from which the various weight sets are loaded into their respective buffers prior to processing an image. The image to be processed is preferably stored in a buffer 52. Image buffer 52 is shared by the various FIR filters. Controller 56 uses clock 58 to divide the image processing into a number of time cycles. During each time cycle, one pixel is calculated in each of the component images. Controller 56 specifies the pixel to be calculated by appropriate signals to registers in the various component image buffers. Controller 56 also specifies the location of the window in image buffer 52. In the preferred embodiment of the present invention, all of the FIR filters are synchronized such that all of the FIR filters process the same point in image buffer 52. The m111 FIR calculates the pixels of the m1*1 component image according to the formula
mCp = mgkIw(p)+k (3) k
where { gk} denotes the m4 set of weights. The summation is carried out over all k values for which any mgk is non-zero. During the k111 time cycle, controller
56 causes the m^ FIR to compute the product (mgk Iw(p)+k) and to add the product to the contents of an internal register. Hence, at any given time, all of the FK. filters are processing the same pixel of the image in buffer 52. This prevents access contention problems at buffer 52. However, it will be apparent to those skilled in the art that computation of the component images may be carried out by other procedures so long as the component images generated satisfy Eq. (3).
In the preferred embodiment of the present invention, component image
°Cp represents the low spatial frequency information in the image and the remaining component images represent higher spatial frequency information. In general, the number of pixels in each of the component images will be approximately N2 M where the image being analyzed is assumed to be NxN pixels in size. The exact number of pixels in the component images will depend on the assumptions made about the values of the pixels of the image Iq outside the bounds of the original image. As will be explained in more detail below, there are some values of p near the edges of the component images for which q=w(p)+k will be greater than N. If Iq is assumed to be 0 for these values, the number of pixels in each component image will be slightly greater than IS^/M. If the image is assumed to be periodic, and if the number of pixels N2 is divisible by M, the number of pixels in the component image will be N2/M.
An analyzer may be recursively applied to an image to further resolve the image into different component images. Any of the component images may be used as an input image to the same analyzer or another analyzer that utilizes the same, or different, filter weights. In image compression applications, this type of processing is usually limited to the low-frequency component image. The manner in which this recursive application is carried out may be more easily understood with reference to Figure 5 which illustrates the recursive application of analyzer having M=2 to an image 70. Each application of the analyzer generates two component images, a low-frequency component image and one high-frequency component image. Thus the application of the analyzer to image 70 yields two component images 71 and 72. It will be assumed that the analyzer has been set to operate on a periodic image; hence, the number of pixels in each of the component images is one half that in image 70. Low-frequency image 71 is then analyzed as if it were an image having one half the number of pixels of the original image. The output of the analyzer for this image is a low-frequency component image 73 and a high-frequency component image 74. Component images 73 and 74 will each have one quarter the number of pixels of image 70. Low-frequency image 73 may again be analyzed to generate a still smaller low- frequency image 75 and a high-frequency image 76, each of these component images being one eighth the size of the original image.
After the three analysis passes described above, the original image will have been decomposed into one low spatial frequency component image having a size which is one eighth that of the original image and three high-frequency component images having sizes of one eighth, one quarter, and one half the original image size. Assuming the same coefficients sets were used at each level of the decomposition, high-Frequency component image 72 will represent generally higher spatial frequency information than high-Frequency component image 74, which in turn, will represent generally higher frequency information than high-Frequency component image 76.
As noted above, the total number of pixels in the aggregated component images will be the same as that in the original image if the original image is assumed to be periodic. In this case, the component images generated by each decomposition may be stored back in the image buffer in the analyzer. On each iteration of the decomposition, the operation of the analyzer is restricted to the portion of the image buffer that is used to store the current low-frequency component image.
After the various component images have been generated, the statistical distributions of the pixel values in the component images are calculated by a quantizing circuit The number of bits to be allocated to the pixels of each component image is determined by the overall compression ratio selected for the image and the calculated statistical distributions of pixel intensities for the component images. As noted above, methods for performing such bit allocations are known to the art. In the preferred embodiment of the present invention, the number of bits allocated to the various component images may differ somewhat from the statistical optimum. These differences reflect computational efficiency and the manner in which the subjective image quality differs from quantitative measures of image distortion. First, the computation of the statistical distributions of all the component images for each image that is to be compressed may exceed the available processing time in applications in which the image is being compressed in real time. In these cases, the form of the statistical distribution is usually assumed. For example, it has been found experimentally that large classes of images generate component images with Laplacian statistical distributions. Hence, it is assumed that the various component images have Laplacian statistical distributions. This reduces the bit allocation problem to determining the variances of the pixel distributions in the various component images.
Second, as pointed out above, human observers place more importance on low spatial frequency information than on high spatial frequency information. Consider an image that has been decomposed into a single low-frequency component image and one high-Frequency component image in which both component images have the same number of pixels and variance. Quantization optimization theory would assign the same number of bits per pixel to the pixels of the low-Frequency component image as to the pixels of the high-Frequency component image. However, it is found experimentally that the subjective image quality is improved if the number of bits per pixel in the low-Frequency component image is greater than the number used to quantize the high-Frequency image. That is, improved quality is obtained by transferring some of the bits that would have been used to quantize the high-Frequency component image to the low-Frequency component image.
The above example considered the unusual case of a decomposition into a single low-Frequency component image and a single high-Frequency component image of the same size and variance. In general, an improvement in image quality, or image compression for a given subjective image quality, can be obtained by increasing the number of bits per pixel used to quantize the low- Frequency component image at the expense of the high-Frequency component images. The cost of increasing the number of bits allocated the low-Frequency component image is relatively small in most cases, since the low-Frequency component image has a small fraction of the total pixels in the component images. The highest frequency component images, on the other hand, have a significant fraction of the total number of pixels in the component images. These component images may be quantized with reduced precision relative to the statistical optimum thereby generating a significant saving in the total number of bits needed to quantize the component images. In fact, it is found experimentally that the highest frequency component images may be discarded in many cases. That is, zero bits are allocated per pixel.
In image compression systems in which it is known in advance that one or more of the high-frequency component images will be discarded, the corresponding FIR filters in the analyzer may be omitted, thereby reducing the hardware cost of an analyzer.
While the above described embodiments of an analyzer according to the present invention utilized multiple FIR filters, it will be apparent to those skilled in the art that the decompositions could be carried out in a serial fashion with a single FIR filter. That is, the pixels of each component image would be calculated before going on to calculate the pixels of the next component image. In such an embodiment, the coefficients used in the convolution operation would be changed between the component image calculations. Further, it will be apparent to those skilled in the art that the functions carried out by an analyzer may be simulated on a general purpose computer.
The component images generated by an analyzer may be recombined to recover the original image. An apparatus for recombining the M component images generated by an analyzer will be referred to as a synthesizer. A synthesizer is preferably constructed from M FIR filters that will be referred to as injectors in the following discussion. Each injector operates on one component image to generate an expanded image having the spatial frequency information represented by the component image in question. The expanded image has the same number of pixels as the original image from which the component images were generated. The reconstructed image is obtained by summing corresponding pixels in each the expanded images.
A block diagram of an injector 80 operating on a component image stored in a buffer 84 to generate an expanded image stored in a buffer 82 is shown in Figure 6. In general, the component image is approximately 1 M the size of the expanded image. Injector 80 includes a controller 87 whose operations are synchronized by clock 88. Clock 88 defines two time cycles, a major cycle and a minor cycle. During each major cycle, one pixel of the expanded image is generated. A typical pixel is shown at 79. The minor timing cycles are used to synchronize the individual arithmetic operations used in the generation each pixel.
Each pixel of the expanded image is generated by performing a two- dimensional convolution operation on the pixels in a window 85 whose location is determined by the location of the pixel in question in the component image. To simplify the following discussion, vector notation will be used. A pixel of the reconstructed image stored at a location (px,py) in buffer 82 will be denoted by I'p, where the vector p denotes the location (px,py) in frame buffer 82. Similarly, the location of window 85 in buffer 84 will be denoted by w. The coordinates specified by w will be assumed to be those of the lower left-hand corner. Finally, a pixel of the image stored in buffer 84 will be denoted by Ck, where the vector k denotes the location buffer 84. The weights used in the convolution operation are stored in memory 89. The weights are a two-dimensional array g'k, where k denotes the location in memory 89. As will be explained in more detail below the weights g'k used in an injector are related to the weights gk used by the FIR that generated the component image in question.
For each pixel in the expanded image, injector 80 performs the following calculation:
rp = Σ S'k ^(pHk (4)
The summation is carried out at for those k values corresponding to locations in window 85 for which the corresponding weights are non-zero. In general, window 85 and memory 89 have corresponding locations which may be specified by a two-dimensional pointer k. For any given location of window 85, controller 87 causes multiply and add circuit 86 to compute the weighted sum of all pixels in window 85. The sum is carried out by selecting the weight corresponding to the pixel in question and multiplying it by the pixel value. The products may be accumulated in multiply and add circuit 86 or stored in frame buffer 82. As will be explained in detail below, the location of window 85 depends on the specific pixel in the component image that is being calculated and other parameters relating to the specific transformation that is being implemented by the injector. For the moment, it is sufficient to note that the location of the window is a function of p as shown in Eq. (4).
Two or more injectors may be combined to form a synthesizer. A block diagram of a synthesizer 100 according to the present invention is shown in Figure 7. In general, there will be M injectors in a synthesizer. Each injector corresponds to a FIR filter in the analyzer used to decompose the original image into the component images. Hence, a synthesizer having a complete set of injectors has M injectors which will be labeled from 0 to (M-l). Representative injectors are shown at 93, 96, and 99 in Figure 7. Each injector has an associated set of weights which will be referred to as coefficient sets in the following discussion. The weight sets are preferably stored in separate buffers, one such buffer being associated with each injector. Representative buffers are shown at 91, 94, and 97. Each weight set is the same as that used by the corresponding FIR filter in the decomposition of the original image into component images.
The injectors are under the control of controller 104 which includes a clock 105 for synchronizing the various operations. In the preferred embodiment of the present invention, controller 104 also includes a master weight library from which the various weight sets are loaded into their respective buffers prior to processing the component images. The reconstructed image is preferably stored in a buffer 102 which is shared by the various injectors. Controller 104 uses clock 102 to divide the image processing into a number of time cycles. During each time cycle, one pixel in the reconstructed image is generated by combining M pixels generated by the injectors. The M pixels in question are combined by adder 100 and stored at the relevant location in the reconstructed image. Controller 104 specifies the pixel to be calculated by appropriate signals to registers in the various component image buffers. Controller 104 also specifies the location of the window in the various component image buffers. In the preferred embodiment of the present invention, all of the injectors are synchronized such that all of the injector windows are located at the location for the reconstructed image pixel currently being processed. That is, all of the injectors use the same value for w. Hence, on each time cycle, each injector computes the pixel of its expanded image corresponding to the pixel in question in the reconstructed image. Adder 100 then adds the results from the various injectors and controller 104 causes the sum to be stored at the correct location in the reconstructed image. The m^ injector calculates the pixels of the m4 expanded image according to the formula
∑ ^'k ∞CwφHk (5) k
where {mg'k} denotes the m* set of coefficients, and mCw(p)+k denotes the pixel in the window of the m* component image corresponding to g' . While the preferred embodiment of the present invention utilizes parallel computations to generate the pixels of the reconstructed image, it will be apparent to those skilled in the art that computation of the expanded images may be carried out by other procedures so long as the expanded images generated satisfy Eq. (5).
If an image has been decomposed by iteratively passing the low-frequency component image through an analyzer as discussed above with reference to Figure 5, the corresponding synthesizer may be used to reconstruct the image by iteratively applying the synthesizer. The synthesizer is applied to the component images in the reverse of the order used by the analyzer. Referring again it Figure 5. Component images 75 and 76 would first be recombined to regenerate component image 73. Component images 73 and 74 would then be recombined to regenerate component image 71. Finally, component images 71 and 72 would be recombined to regenerate the original image 70.
The convolution operations described above with reference to the injectors and synthesizers are equivalent to computing the correlation of the portion of the image, or component image, defined by the window with a second "image" whose pixels are corresponding weight set. While these operations are preferably carried out in a digital manner, it will be apparent to those skilled in the art that analog circuitry for generating the correlation values may be used. For example, a series of masks, light sources, and light detectors may be used with a transparency of the image to be decomposed to generate the component images. Similarly, the convolution operations described with reference to the analyzers and filters comprising the same are equivalent to computing the correlation of the portion of the image defined by the widow with a second "image" whose pixels wre the corresponding weight set.
Methods for decomposing an image into component images having different spatial frequency content are known to those skilled in the art for the case in which M=4. For example, the above described patent of Adelson, et al. describes such a system. The present invention differs from prior art image compression and reconstruction schemes for M=4 in the manner in which the weight arrays are determined. The weight arrays of the present invention provide a number of advantages over those used in the prior art methods. The manner in which the present invention differs from prior art image compression methods can be more easily understood with reference to the underlying functional expansion inherent in image compression systems utilizing perfect reconstruction filter banks. As noted above, the image decomposition step is equivalent to generating the coefficients of a functional expansion of the image with respect to a set of two-dimensional basis functions. Consider a single application of an analyzer to an image to generate the pixels of the M components {mCk}. The original image I(x,y) is related to the component images by
M-l I(x,y) = ∑ . ∑ *Ck*Fk(x,y) (6) m=0 k
where the set of functions {mFk(x,y)} is a basis for the xy-plane.
If the image is iteratively decomposed by applying the analyzer L times as described with reference to Figure 5, the expansion of I(x,y) can be written in the form
I(x,y) = 0Ck[L] mFk[L](x,y) + ^ ^kPFk[-](x)y) (7) k {=1 m=l k
where the set of values {mCk(0} are the pixels of m1^ component image generated in the fi application of the analyzer and {mFk[£](x,y) } are the basis functions corresponding to the ^ application of the analyzer. The basis functions are determined by the weight arrays used in the analyzer and synthesizer.
As noted above, it is advantageous to utilize basis functions which have a support area which is a small fraction of the area covered by the image. That is, each function mFk[Q(x,y) in the present invention is non-zero over a small region of the original image. The region in question will, of course, differ for different functions. If all of the support areas of all basis functions at a given level in the decomposition are combined, the combined area must include the entire area covered by the image. If this is not the case, there will be some images which can not be represented in this manner.
In addition, the basis functions mFkfl](x,y) inherent in the present invention are translates of one another for fixed m and I. That is, there exists a vector p such that mFk[Q(x,y) is identical to mFk>+p[Q(x,y) for k different from k'. This condition guarantees that there is no preferred region in the image. This condition is reflected in the hardware of the present invention in that the size of the window and weight sets do not change when the pixel being calculated changes. One set of basis functions which satisfies both of these constraints would be a set of functions whose supports are a set of areas which exactly tile the xy-plane. It should be noted that the size of the support for the basis functions increases with the level of the decomposition in a multi-level decomposition. That is mFk[Q(x,y) has a support which is M times larger than mFk[.-l](x,y). If the same weight sets are used at each level of the decomposition, the support area of mFk[Q(x,y) will be the same as the sum of the support areas of M of the basis functions in the (l-l)^1 level.
If the pixels of the filtered images were quantized to sufficient accuracy, the form and support of the underlying basis functions would be of little importance. In this case, an image represented by an array Iq could be decomposed into its component images using many different sets of basis functions and the original image recovered without error. However, such a system would not provide image compression, i.e., the component images would require at least as many bits as the original image array.
The differences in choice of basis functions becomes important at high compression ratios where quantization errors become significant. The errors in the reconstructed image are a function of the basis functions used in the decomposition of the image and reflect both the shape and support of the basis functions. Consider the case in which a single pixel mCk[d suffers a quantization error E. An error in the reconstructed image of E mFk[Q(x,y) will be introduced into the image over the support area of mF p](x,y). The intensity of the reconstructed image in this area will either be increased or decreased depending on whether the error resulted in an increase or decrease in the pixel value. Hence, an edge will be introduced at the boundary of the support area of the basis function in question. As noted above such edges are particularly objectionable in the case in which the support area is rectangular, since the human eye is very sensitive to lines. The reconstructed images from such systems appear "blocky".
In general, errors are introduced into more than one pixel. As noted above, the support area at each higher level in the decomposition includes M of the support areas in the next lowest level. As a result, the boundary of the support area at the higher level coincides with a portion of the boundary of each of the support areas at the lower level contained therein. The various quantization errors may thus add or subtract along these common boundaries either enhancing the artifact or reducing the same. However, in the case of linear edges, the effect of the enhancements is more noticeable than the improvements obtained when two errors cancel. The human eye is very adept at following even a broken line. Furthermore, the length of the maximum edge that can be generated is the size of the largest support area, i.e., the support areas of the basis functions at Level L. Hence, the linear artifacts can be quite large.
Prior art image compression systems based on perfect reconstruction filter banks all suffer from this type of distortion at high image compression ratios.
Prior art systems utilize transformations in which each of the basis functions may be written as the product of two functions which depend on only x or y, i.e., mFk[q(x,y) = TkH(x) mSk[ ](y). Such bases are referred to as reducible.
Reducible basis functions can be shown to have rectangular support. Hence, all of the prior art systems suffer from the "blocky" artifact at high compression ratios. As will be explained in more detail below, the present invention provides basis functions having support areas which do not include any linear segments.
In addition, reducible basis functions have other linear artifacts. If one were to view a reducible basis function as a "mountain range", the ridges would be aligned with the x-axis, or the y-axis. In addition to introducing artifacts at the edge of the support area of the corresponding basis function, quantization errors introduce an error over the basis function support area that has the appearance of a texture artifact. The texture is related to the ridges and valleys of the basis function. The resulting texture artifacts will generally be composed of lines
(parallel to the x-axis or y-axis) which as noted above are highly objectionable to human viewers. In addition, consider two adjacent support areas in which the corresponding pixels have suffered quantization errors of the same sign, e.g., each of the pixel values has been increased. The basis functions in these areas will be identical, hence, the linear ridges in one area will be aligned with the ridges in the other area which enhances the linear artifacts.
The present invention utilizes filters in which the underlying functional expansion is in terms of an irreducible basis. That is, the basis functions can not be written as a product of two one-dimensional functions. The linearly aligned ridges described above can be avoided in an irreducible basis. Hence, the present invention also avoids the texture artifacts inherent in a system based on a reducible basis.
The ability of the quantizer to compress the component image depends on the form of the underlying basis functions used by the analyzer. Consider the case in which the analyzer concentrates all of the "power" in the image into the low-frequency component image at the highest level and a few of the high- frequency component images at the levels just below the highest level. In this case, the variances of the high-Frequency component images at the lower levels will be very small and these high-Frequency component images will require very few bits to adequately preserve their portion of the image information. The number of pixels in lower frequency component images is much smaller than the number in the high-frequency component images at the lower levels. Hence, for any given compression ratio, there are more bits per pixel available to the quantizer to represent the information in these component images, i.e., the quantization errors will be reduced. If on the other hand, the analyzer generates component images having a significant amount of the information in the high- Frequency component images at the lower levels, the quantizer will need to allocate bits needed by the upper levels to these lower levels, thereby increasing the quantization errors.
The ability of the analyzer to concentrate information in the low- frequency component image depends on the ability of the basis functions {°Fk[L](x,y)} and {mFk[Q(x,y)} for ( close to L to represent the structures normally found in images. Suppose that these functions alone could represent all of the structures in an image. Than the pixels of all of the component images for the smaller values of I would be zero and could, therefore, be discarded. That is, there would be no information in the highest frequency component images that would be needed in the image reconstruction. In essence, the highest frequency component images represent the inability of the analyzer to concentrate information in the lower frequency component images.
The ability of the analyzer to concentrate information in the low-
Frequency component images depends on the ability of the analyzer to set the ratio of the sizes of the component images at the various levels. As noted above, the size of the component images changes by a factor of M from one level to the next i general, there will be some optimum value for M which depends on the objects in the image being compressed. In principle, the image compression can be optimized for particular images in terms of the specific coefficient sets. As will be explained in more detail below, M is dependent on coefficient sets. Such an optimization would examine the distortion in the reconstructed image as a function of the available weight sets and chose the weight set providing the minimum distortion. The ability to optimize in this manner depends on being able to vary M. Prior art analyzer do not provide the ability to use M values other than 4. As will be explained in more detail below, the present invention provides the ability to chose any integer value for M which is greater than 1. The manner in which the weight sets utilized in the present invention are calculated will now be discussed in detail. The simplest weight sets according to the present invention correspond to basis functions having the following properties. All of the basis functions at any given level . for . >0 have the same shape, up to a dilation. Each of the support areas forms a tile. The set of tiles completely covers the portion of the xy-plane over which the image to be compressed is defined. The support area of a basis function at level .+1 is M times the area of the support of a basis function at level t and includes M of the support areas of the basis functions at level .. The shape of the support area at level (+1 is the same as that at level I; however, the support area will, in general, be rotated relative to the support areas at level .. Since the support areas at any given level are congruent and tile the plane, a grid is defined in the plane by selecting one specific point on each of the support areas such that the selected points occupy congruent positions in the different support areas. The location of the corresponding point on the support areas at the next highest level will also be on one of the grid points. Since the support at the next highest level is larger than that at the lower level, not all grid points defined with reference to the support regions at level I will have a support region for a level l+l basis function located thereon. The location of the grid point k' at level l+l corresponding to a grid point k at level I is given by the transformation
k' = Sk (8)
where the matrix S has a determinant with absolute value equal to M.
There are three possible support area shapes which satisfy these conditions for M=2. The simplest support shape is a rectangle having sides in the ratio of j il. Two such support areas placed side by side have the same shape as a single support area rotated by 90 degrees.
This first support shape is illustrated in Figure 8 at 111. Figure 8 illustrates a number of rectangular support having sides in the ratio of ^2:1. These dimensions are shown explicitly on support area 111. Each support area can be identified by an index associated with its lower left-hand corner. Support area 112 is associated with grid point (0,0); support area 113 is associated with grid point (0,1), and so on. Consider the consider the support area 116 obtained by combining support areas 113 and 115. This support has one side with length yjϊ and one with length 2. Hence, the sides are in the ratio yβ:l. If the short side is defined to be the base, support area 106 can be viewed as being a support area of twice the area which has been rotated by 90 degrees relative to its two constituent support areas. Its lower left hand corner is located at grid point (0,2); hence it satisfies the condition that it also lies on a grid point.
The two other possible shapes for M=2 are fractals which will be referred to as "twindragon" and "novon", respectively. These shapes are shown in Figures 9 and 10, respectively. Figure 9 illustrates a surface 200 which is tiled with twin¬ dragon shaped support areas of which support areas 201 and 202 are typical. It will be seen that the larger support area 203 obtained by combining support areas 201 and 202 is itself a twindragon shaped support area located at the same grid point as support area 201. The combined support area is rotated by an angle of 45° relative to the single support areas. Similarly, Figure 10 illustrates a surface 300 which is tiled with novon shaped support areas of which support areas 301 and 302 are typical. The larger support area 303 obtained by combining support areas 301 and 302 is itself a novon shaped support area located at the same grid point as support area 301. In this case, the combined support area is rotated by an angle of arctangent(7) which is approximately equal to 69.295° relative to the single support areas.
It should be noted that the novon and twindragon support areas have boundaries that do not contain any linear segments. Hence, quantization errors in the corresponding component image pixels do not give rise to linear artifacts in the reconstructed images. A quantization error in a system utilizing basis functions defined on these support areas gives rise to an error over an irregularly shaped area which does not tend to reinforce quantization errors on the support areas at the next highest level since the support areas at each higher level are rotated with respect to the those at the lower levels.
Even the rectangular support area described above is better than that used in prior art systems. This improvement arises from the rotation of the basis functions by 90 degrees as one proceeds from level to level. In the prior art systems, there is no rotation; hence quantization errors give rise to artifacts that reinforce each other at each level. The rotation from level to level in effect turns the artifact on its side; errors at successive levels are not in phase. As a result, the eye has more difficulty detecting the repeated artifacts.
It can be shown that the elements of S must be integers. For the case in which two support areas are combined, M=2 and the possible matrices can be made to have the following form in a convenient coordinate system: 0 - 2 s = 1 σ (9)
Here, σ may have the values 0, ± 1, and ± 2 which correspond to the rec¬ tangle, novon, and twindragon cases discussed above. In addition, the matrix
0 2
S =
1 0 (10)
also satisfies the above stated conditions. This matrix will hereinafter be referred to as the "negarectangle" case. The associated support area is the same as support area 110 shown in Figure 8.
The more general case in which the transformation has M greater than or equal to two will now be discussed. The parameter M will be referred to as the multiplier of the transformation. In the general case, the multiplier of the trans¬ formation can be any integer which is greater than one. The number of possible values of σ in Eq. (9) depends on M. It can be shown that σ can take on those integer values for which
-2yJM < σ < 2>/M if det S>0 and
2-M < σ < M-2 if det S<0 (11)
In general, σ and M determine the shape of the support area and the grid on which the support areas are located. Such a grid is shown in Figure 11 at 800 together with a table of the permissible σ values for M less than 6. The grid is a parallelogram as shown at 801. The grid points are labeled with integer indices. To simplify Figure 11, the grid has been drawn with x-axis as one of the grid directions. The other grid direction is specified by the values of dx and dy. The angle of rotation between the support areas of successive levels is given by the arctangent (dy/dx).
Not all of the transformations implemented by the present invention correspond to basis functions which have support areas that exactly tile the plane. In general, the support areas of some of the basis functions at any given level overlap. As pointed out above, the sum of all of the support areas must cover the relevant portion of the xy-plane; however, there is no requirement that the support areas must be distinct from one another. In fact, it is advantageous to utilize bases in which the support areas overlap adjacent support areas. In this case, the reconstructed image at points near the boundary of two support areas will be the sum of the contributions of two or more basis functions at the level in question. If one or more of the pixels corresponding to these basis functions have suffered quantization errors, the boundary area will at most suffer an error having a magnitude which is determined by the average of the quantization errors. This provides a smoother transition from one support area to the next in the reconstructed image, thereby further obscuring artifacts resulting from quantization errors.
Once the values for σ and M are chosen, sets of coefficients {mak} are chosen. As will be explained in detail below, the weight sets mgk and mg'k are related to these coefficient sets. In the general case, the coefficient values are complex numbers. The minimum number of coefficients in the low-frequency filter coefficient set {°a } which can be non-zero is M. The coefficients sets for which there are M values of k for which °ak is different from zero and for which those M values are all equal to one, correspond to the case in which the support areas do not overlap. The remaining cases correspond to the cases in which the support areas overlap.
For the analyzer to decompose the image into low and high-frequency component images,
°ak = M k and (12)
mak = 0 for m=l to M-l k
If the underlying basis functions are to form an orthonormal basis, the coefficient sets must further satisfy the following condition
ia* Jak+Sq = Mδi)jδ 0,q (13) k
Here, q is any vector connecting two grid points, (*) denotes complex conjugation, δx y is the conventional delta function which is 1 if x=y and zero otherwise, and the summation is carried out over all k values for which the ia*k and Jak+sq are both non-zero.
It can be shown that the component images may be generated from the coefficient sets by the following formula
mCp = ( ∞a* k ISp+k)/M (14)
The relationship between the coefficients mak and the weight sets mgk can be ascertained by comparing Eqs. (3) and (14). Assume that ma and mgk are defined on the same grid, i.e., the two-dimensional coordinates in the relevant weight buffer. As will be discussed in more detail below, not all of the points in this grid will have a corresponding mak. The weight sets can be divided into two groups, those that are zero and those that have values related to the mak as follows. The matrix S operating on vector p defines the location of the window, i.e., Sp=w(p). The size of the window is specified by the extreme value of Sp+k. Within this window some of the grid points will have mak defined and others will not. The mgk corresponding to the points on which an mak is defined are set equal to ∞a' M. The remaining weights are set to zero.
Similarly, it can be shown that a component image can be expanded to obtain the corresponding expanded image described above by the following formula
P =ma(P-Sk) mCk (15) k
This equation may be re-written, after a change of variables, in the form shown in Eq. (5) above where w(p) = S-1p amd m 'k=mask °r tnose values °f k f°r which aSk is defined and mg'k=0 otherwise. Here, the window is the smallest rectangle containing the values -S-1k where k runs over the values for which the mak are non-zero.
While the above described embodiments of the present invention utilized a convolution with the weight sets having values defined throughout some window, it will be apparent to those skilled in the art that the convolution can be carried out directly utilizing the coefficient sets {"&____}. In this case, the coefficient sets would be stored in the memory arrays used to store the weights. The controller would then select the points to be convolved with the coefficients by performing the above described matrix multiplication and vector additions. This is equivalent to defining a window the image or component image buffers and convolving selected pixels in that window with the coefficients.
The present invention differs from prior art coding schemes such as that taught by Adelson, et al. in the above-mentioned United States Patent in the type of basis functions and the multipliers of the corresponding transformations. In prior art image coding schemes, only transformations having multipliers of 4 and two-dimensional basis functions which could be written as the product of two one-dimensional basis functions are utilized. Such functions are usually referred to as "reducible". Reducible basis functions correspond to sets of two- dimensional coefficients that can be written as a product of the form a( )= d^ where the sequences {dj} and {e;} are sets of one-dimensional coefficients. In the case taught by Adelson, et al. the multiplier of the corresponding one-dimensional transformation is 2.
Having explained the relationship between the weighting coefficients used in the filters and injectors and the coefficient sets mak, the manner in which the coefficients are calculated will now be explained in more detail. In the case of an orthonormal transformation with M=2, the low-frequency coefficients °ak completely determine the remaining high-frequency coefficients 1ak up to a common factor that can be selected to be either +1 or -1. The relationship between the low and high-frequency coefficients may be more easily written without vector notation. The relationship is as follows;
) = (-l)d-J) a* ( _k) (16a)
Here, the components (i,j) of the vector k have been shown explicitly to clarify the relationship. If, for example, the coefficients mak are distributed along the x- axis at points with coordinates (0,0), (1,0),..., (N-1,0), then
Figure imgf000032_0001
In the more general case in which M>2, the high-Frequency coefficients are not completely determined by the low-Frequency coefficients. In this case, a computer search utilizing the constraint equations described above may be used to find coefficient sets. As will be explained in more detail below, additional constraints may be imposed on the mak to provide additional advantageous properties to the transformation. However, even with additional constraints, there are often infinite numbers of sets of coefficients. i the preferred embodiment of the present invention, the analyzer and synthesizer store several sets. The analyzer can then test several sets against a given image to determine which provides the lowest distortion for a given compression ratio.
One method for calculating a two-dimensional low-frequency set of coefficients °ak utilizes a one-dimensional set of low-Frequency coefficients. A set of one-dimensional orthonormal coefficients {bj}, j running from 0 to Nc-1, has multiplier M if
∑ bj = M (17)
and
Σ *j bj+Mq = 0,q (18) j
where q is any integer, and j runs from 0 to Nc-1. The simplest case of a one- dimensional set of coefficients is that for which bj = 1 for j from 1 to M and 0 for all other values. Other examples of one-dimensional orthonormal coefficient sets are known to those skilled in the art of wavelet mathematics. The coefficients sets in question are often referred to as scaling coefficients. These coefficients are also weight values used in conjugate mirror filter banks.
The two-dimensional coefficient sets are obtained by deploying a one- dimensional set of coefficients in two-dimensions. There are an infinite number of two-dimensional deployments of the bj which satisfy the equations in question.
The simplest deployment is to set °a^β = bj and °aj S = 0 for s 0. This particular deployment will be referred to as the x-axis deployment of bj into a two- dimensional array.
The preferred method of deploying a one-dimensional set of coefficients utilizes a 2x2 integer- valued matrix G having a determinant with absolut value equal to 1. Let d denote the x-axis deployment of bj. That is dj o = bj and all other values of dy = 0. Here, the individual components of the vector k have been shown explicitly. Define r = (1,0). Then the general two-dimensional deployment of bj is given by
aSp = dSGp and (19)
Sp+r = dSGp+r
Having described the methods and apparatuses for decomposing an image into low and high-frequency component image and the methods and apparatuses for reversing the decompositions, some additional features of the present invention will now be discussed. As noted above, it is advantageous to select low-frequency basis functions which more closely represent the features found in the image being processed. If this can accomplished, then more of the image information will appear in the low-frequency array. If, on the other hand, the low-frequency basis functions do not represent the features found in the image, then additional information will need to be provided to adequately reconstruct the image. This additional information must appear in the high-frequency component images. Hence, the degree to which the image may be compressed is reduced if the low-frequency basis functions do not reflect the structures found in the image.
As noted above, one advantageous feature of the present invention lies in the variety of basis of functions provided thereby. Each transformation provides different basis functions. By examining different transformations according to the present invention, the transformation in which the corresponding basis functions most closely represents the image features may be selected. Unfortunately, the number of possible permutations of multipliers and {mak} is too large to exhaustively search. Hence, it would be advantageous to be able to limit these parameters to those values which are likely to provide superior performance on broad classes of images.
For example, it is known that most images contain structures that have smooth variations within the structure. Hence, basis functions which approximate polynomials in two-dimensions would be expected to more closely represent these structures. Basis functions which have this property may be selected by utilizing the sets of coefficients, {ma }, in which the corresponding coefficients
{iaj for i>0 have low order moments that vanish. For the basis functions to approximate polynomials of degree d, the following condition must be satisfied
k0e k1f ak = 0 (20) k
Eq. (20) must be satisfied for all integer valued vectors k =
Figure imgf000034_0001
and integer exponents e and f such that 0 <e < d and 0 <f< (d-e). Here (Sk+p)0 e denotes the x-component of the bracketed vector- valued quantity raised to the e01 power.
In the above described embodiments of the present invention in which the image was decomposed by iteratively analyzing the low-Frequency component image, it was assumed that the same basis, i.e., the same weight sets, were used at each level of the decomposition. It should be noted, however, that the decomposition may be performed utilizing different weight sets at each level of the decomposition. The use of different weight sets provides two advantages.
First, the undesirable subjective effects resulting from quantization errors can be further reduced by using different transformations at each level of the decomposition. In general, different transformations correspond to different basis functions. If the same weight sets are used at each level of the transformation, the basis functions corresponding to a given level will have a portion of the support area of their boundary which is coincident with portions of the boundaries of the basis functions at the next lowest level. Hence, quantization errors in pixels at the two levels can add, thereby enhancing the edge of the support area and generating an artifact. This situation can be avoided by utilizing weight sets corresponding to transformations having different shaped support areas at the different levels of the transformation. In this case, the basis functions at any given level will not have support areas which are coincident with the boundary of a support area at another level.
Second, a higher degree of flexibility is provided in dividing the image into the relevant component images. If the same weight sets are used at each level of the decomposition, the image will be divided into component images in which the number of pixels in the final low-Frequency component image will be smaller than that in the original image by a factor of ML, where L is the number of iterations of the analyzer. This factor will be referred to as the simple compression ratio, since this would be the compression ratio if all of the high- frequency component images were discarded. However, if weight sets corresponding to different M values are used at each level, any simple compression ratio which may be written as the product of two integers may be obtained. It should be noted that prior art systems such as that taught by Adelson, et al. only allow simple compression ratios of 4L.
As a result of the advantages conferred by the present invention, images according to the present invention require less storage space, since an image that has been compressed according to the present invention requires fewer bits to represent the image to a predetermined image quality. An image recording according to the present invention comprises a low-frequency component image and one or more high-frequency component images. The pixels of the component images are approximations to the coefficients of an orthonormal expansion of the image in an irreducible basis in which the basis functions have compact support. That is, each basis function is non-zero over a small region of the image. The recorded image also includes sufficient information specifying the basis functions in question to allow an approximation to the image to be constructed. In general, this information includes information specifying the coefficients sets used to generate the component images and the identity of any component images that were discarded.
As noted above, there are numerous different weight sets that may be utilized in compressing an image in the manner taught in the present invention. Different sets may be better suited to specific classes of images. Hence, provided computation time is not limiting in the compression step of making a recording, it is advantageous to compress an image with a number of different weight sets and then measure the distortion in the decompressed image. The component images generated by the compression giving the minimum distortion can then be used to generate the recorded image. The component images can then be recorded on a suitable recording medium such as optical or magnetic disks or tapes.
This approach is particularly relevant in applications in which images are distributed in libraries to end users. The number of images that can be stored on a given medium is dependent on the degree of compression that can be obtained at an acceptable image quality. Since the cost of optimizing the compression can be spread over a number of different end users, more computational time can be devoted to compressing the images.
Image compression and de-compression systems according to the present invention may be implemented in a pipelined fashion in those applications in which real time compression and decompression are needed. For example, in FAX transmission, both the compression and de-compression systems must operate in real time. Furthermore, it will generally be advantageous to provide both a compression apparatus and a decompression apparatus in the same instrument In contrast image display systems operating from libraries of compressed images may require only a decompression system that must operate at real-time speeds.
A block diagram of a pipelined implementation of an image analyzer system according to the present invention is shown in Figure 12 at 500. Analyzer 500 includes L stages, one said stage corresponding to each level of the multi¬ level decomposition c" the -images input to analyzer 500. The first, second, and Ifi1 stages are shown i - Figure 12. Each stage includes an analyzer such as that described above with reference to Figure 4 and two output buffers. One of the output buffers is used to store the low-Frequency component image generated by the analyzer and one is used for to store the high-Frequency component images generated by the analyzer. The first stage comprises analyzer 502 and buffers 503-504. The second stage comprises analyzer 506 and buffers 507-508, and the I * stage comprises analyzer 510 and buffers 512 and 514. The first stage also includes an image buffer 501 which receives the incoming images to be analyzed. Analyzer system 500 is under the controller of a controller 520 which includes a clock 522 for defining a series of time periods. During each time period, one image is input to analyzer system 500, and the component images corresponding to the image input L cycles time periods earlier are output by controller 520. During each time period, each of the analyzers operates on the low-Frequency component image stored in the low-Frequency buffer in the stage ahead of it. The component images generated by each analyzer are stored in the buffers associated with that analyzer. In addition, each analyzer includes internal buffers used by that analyzer during the generation of the component images.
During each time period, controller 520 collects the high-Frequency component images generated by the various stages and the low-Frequency component image generated by the last stage. Controller 520 includes sufficient memory to store the various high-Frequency component images generated in L time cycles.
In general, the time savings provided by a pipelined analyzer implementation will depend on the multiplier M of the transformation being implemented. The computational workload of each of the successive stages decrease by a factor of M. Hence, the greatest savings relative to a single stage implementation such as that discussed with reference to Figure 4 will be achieved in the case M=2. In this case, the time needed to analyze an image can be reduced by approximately a factor of two. In cases with larger M, the number of levels in the decomposition will be less than those in systems with smaller M. While the computational workload per level is greater in systems with larger M, the parallel processing provided by the M FIR filters in each stage provides the necessary computational speed.
Image synthesis systems employing a similar pipelined architecture will be apparent to those skilled in the art from the foregoing discussion. However, one class of image synthesis system merits additional comment. The present invention is particularly useful in displaying images that have been compressed and stored in their compressed form. One problem inherent in high resolution graphics system is the bottleneck presented by the communication bus that connects the image storage device and the graphics interface. Consider a
1000x1000 pixel image which was originally digitized to 8 bits. A million bytes of data must be transferred from the image storage device to the graphics interface before the image can be displayed if the decompressed image is stored. In general, the image storage device is a magnetic disk or the like. The time needed to transfer this amount of data is sufficiently large that a human operator who is browsing through the images in a library finds the delay annoying if not unacceptable.
If, however, the image is stored in a compressed format according to the present invention, the browsing operation can be carried out more efficiently for two reasons. First, the amount of data that must be read from the disk and transferred to the graphics interface is reduced by the compression ratio. This significantly reduces the transfer time.
Second, a low-Frequency approximation to the image can be displayed prior to receiving all of the component images. It is known from studies of the human visual system, that an observer can not appreciate the high resolution detail in a motion picture in those parts of the picture that are changing rapidly in time. Hence, when a new image is placed on a display screen, it takes some time for the viewer to see the high resolution detail in the image. This observation may be use to provide an image display system in which the viewer perceives that he or she is seeing the image at high resolution without the delays inherent in transferring all of the component images. In such a system, the component images are transferred in the order of their frequency content. As each component image arrives, a screen image is generated based on the data received as of that time, the missing component images being initially replaced by component images having zeros for all of their pixels. Hence, the image sharpens over time. Provided the sharpening occurs in a time consistent with the viewer's ability to appreciate the finer detail, the viewer will have the perception of viewing a high resolution image that was generated in a time much smaller that actually used by the system.
A display device 600 according to this aspect of the present invention is shown in Figure 13 at 600. Display device 600 has L stages for reconstructing an image that has been compressed to at most L levels. Each stage includes a synthesizer and two buffers. The first, second and Lfi stages are shown in Figure 13. The first stage comprises synthesizer 604 and buffers 602-603. The second stage comprises synthesizer 608 and buffers 605-606, and the Lth stage comprises synthesizer 614 and buffers 610-611. If the image to be reconstructed was decomposed to less than L levels, controller 630 causes the low-Frequency component image to be stored in the intermediate buffer in the Lώ stage. In the following discussion, it will be assumed that L stages are used.
The component images are input on a bus 601. The information specifying the transformation actually used on the image to be reconstructed is received first by controller 630 which loads the appropriate weight sets into the various synthesizers. The contents of the various buffers used to store the component images are then set to zero. If only Q of the L stages are to be used, controller 630 disables the first L-Q stages. Again, it will be assumed that Q=L in the following discussion.
Next, the component images for each level of the decomposition are received. In the following discussion, it will be assumed that in each cycle defined by clock 632, one set of component images is received. During the clock cycle, one approximation to the reconstructed image is generated. The low- Frequency component image and the high-Frequency component images corresponding to the highest level of the decomposition are stored in buffer 602 and 603 respectively. As soon as the component images are stored, controller 630 causes synthesizer 604 to reconstruct a low-Frequency image corresponding to level (L-1) and store that image in intermediate buffer 605. Next, controller 630 causes synthesizer 608 to generate a low-Frequency component image corresponding to level (L-1) from the component image stored in intermediate buffer 605. This low-Frequency component image is stored in the intermediate buffer in the next stage, and so on. Finally, synthesizer 614 constructs the final reconstructed image which is stored in video RAM 620 for display on screen 622. This first approximation to reconstructed image is based only on component images from the highest level of the decomposition. Since it lacks the information in the lower levels of the decomposition, i.e., high-Frequency information, this approximation will be similar to a low-pass filtered image. Since the lower frequency component images require only a small fraction of the component image data, these component images can be transmitted in a time which is short compared to that needed to transmit the entire compressed image.
During the construction of the first approximation to the reconstructed image, the high-Frequency component images of the next level of the decomposition are received on bus 601 and stored in buffer 606. It should be noted that each buffer is only used for a portion of the cycle; hence, component images may be stored in the buffers while the first approximation is being calculated.
After the first approximation is calculated, controller causes the next approximation to be calculated in a similar manner. However, this time, additional high-Frequency component images will have been stored in the relevant buffers. Hence, the new approximation will have greater detail than the first approximation. This process is repeated until the reconstructed image includes the information in all of the component images.
There has been described herein a apparatus and method for coding a two-dimensional data array. Various modifications to the present invention will become apparent to those skilled in the art from the foregoing description and accompanying drawings. Accordingly, the present invention is to be limited solely by the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. An analyzer for generating a plurality of component images from an input image comprising an input array of pixels, said analyzer comprising: means for storing said input array including means for defining a window within said array comprising a plurality of pixels; means for selecting the location of said window in response to the identification of a pixel location in one of said component images; means for selecting one of said component images; means for generating the weight sum of the intensity values of said pixels in said window; clock means for defining a time period during which a pixel intensity value in said selected component image is to be generated; means for identifying a pixel location in one of said component images and for communicating said selected pixel location to said means for selecting the location of said window; and component image generating means connected to said means for storing said input array and responsive to said clock means for generating the pixel intensity value corresponding to said identified pixel location, said component image generating means comprising means for generating a weighted sum of the intensity values of said pixels in said window, the weight factors of said weighted sum being chosen in response to the identity of said selected component image such that said weighted sum is a coefficient of an expansion of said image in a two-dimensional irreducible basis.
2. The analyzer of Claim 1 wherein said two-dimensional basis is also an orthogonal basis.
3. The analyzer of Claim 1 wherein one of said component images comprises the low spatial frequency information in said input image.
4. The analyzer of Claim 1 wherein said component generating means comprises a plurality of filter means, one said filter means corresponding to each said component image, each said filter means generating the pixel of said corresponding component image at the location specified by said selected pixel location.
5. The analyzer of Claim 1 wherein the support areas of the basis functions of said irreducible basis do not have boundaries comprising straight lines.
6. An image compression system for generating a compressed image from an input image, said image compression system comprising: analyzing means for generating a plurality of component images from said input image, the intensity values of the pixels of said component images being the coefficients of an expansion of said input image in a two-dimensional irreducible basis; and quantization means for approximating said intensity values of said pixels of said component images by digital values having a predetermined number of states, the number of said states being related to the component image being approximated.
7. The image compression of claim 6 wherein the number of states used corresponding to each component image is related to the statistical distribution of said intensity values of said pixels in said component image.
8. The image compression system of claim 6 wherein said analyzer means comprises: input image storage means for storing said input image as a plurality of pixel intensity values; filter means for generating an intensity value corresponding to a pixel of one of said component images from the pixel intensity values stored in a predetermined area of said input image storage means, said area being determined by said pixel of said component image; and control means for causing said filter means to be repetitively applied to different predetermined areas of said input image storage means thereby generating intensity values corresponding to different pixels of said one of said component images until all of said one component image has been generated, said control means further comprising clock means for defining a time cycle, one said pixel of said one of said component images being generated during each said time cycle.
9. The image compression system of claim 8 wherein said filter means comprises a plurality of filters, each said filter generating intensity values for pixels of a different component image, said filters operating in parallel so as to generate corresponding pixel intensity values in said different component images, each said filter generating one said pixel intensity value in each of said time cycles.
10. An image synthesizer for regenerating an image from a plurality of component images, each said component image comprising a plurality of pixel intensity values, said synthesizer comprising: means for expanding each said component image and means for combining corresponding intensity values of the pixels of said expanded component images, wherein said expanding means comprises: means for storing said pixel intensity values of one of said component images in a memory array, including means for defining a window in said memory array comprising a plurality of memory array locations, the location of said window being responsive to the identification of a location in one of said expanded component images; means for generating the weight sum of said intensity values to said pixels in said window; clock means for defining a time period during which a pixel intensity value in said expanded component image is to be generated; means for identifying a pixel location in one of said expanded component images and for communicating said identified pixel location to said storing means; and expanded component image generating means connected to said storing means and responsive to said clock means for generating the pixel intensity value corresponding to said identified pixel location, said expanded component image generating means comprising means for generating a weighted sum of the pixel intensity values of said pixels in said window, the weight factors of said weighted sum being chosen in response to the identity of said one of said component images, said weight factors comprising an irreducible two- dimensional array, one said weight factor corresponding to each said location in said window.
11. The synthesizer of Claim 10 wherein said expanded component generating means comprises a plurality of filter means, each said filter means corresponding to one of said component images, each said filter means generating the pixel intensity value of said corresponding expanded component image at the location specified by said identified pixel location.
12. An image decompression system for generating a decompressed image from a plurality of quantized input component images, said image decompression system comprising:
dequantization means for generating a component image from each of said quantized input component images; and image generation means for combining said input component images to generate said decompressed image, said image generating means comprising means for convolving selected regions of said component images with a two-dimensional irreducible array of weighting coefficients.
13. The image compression system of claim 6 wherein said image generation means comprises: component image storage means for storing said generated component images, each said component image comprising a two- dimensional array of pixel intensity values; filter means for generating an intensity value of a pixel of an expanded component image, one said expanded component image corresponding to each said generated component images, said filter means comprising means for generating the weighted sum of the pixel intensity values in a predetermined region of said component image corresponding to said expanded component image, said predetermined region being determined by said pixel intensity value being generated; and control means for causing said filter means to be repetitively applied to different predetermined areas of said component image storage means thereby generating different pixels of said expanded component images until all of said expanded component image has been generated, said control means further comprising clock means for defining a time cycle, one said pixel intensity value of said expanded component image being generated during each said time cycle.
14. The image compression system of claim 13 wherein said filter means comprises a plurality of filters, each said filter generating pixels of a different said expanded component image, said filters operating in parallel so as to generate corresponding said pixels in said different expanded component images, each said filter generating one said pixel in each of said time cycles.
15. An apparatus for storing an image comprising a recording medium, said recording medium being divided into a plurality of regions, each said region storing information specifying one component image of a plurality of component images representing said image, each said component image comprising a plurality of intensity values, said intensity values being approximations to the coefficients of an expansion of said image in a two-dimensional irreducible basis.
16. The apparatus of Claim 15 wherein said two-dimensional irreducible basis comprises basis functions having support regions which are less than the spatial extent of said image and having boundaries that do not include straight line segments.
17. In an image compression system, a method for generating a plurality of component images from an input image comprising an input array of pixels, said method comprising the steps of: storing said input array in a buffer including means for defining a window within said buffer, said window comprising a plurality of pixels; selecting the location of said window in response to the identification of a pixel location in one of said component images; selecting one of said component images; generating the weight sum of the intensity values of said pixels in said window; defining a time period during which a pixel intensity value in said selected component image is to be generated; identifying a pixel location in one of said component images and communicating said selected pixel location to said means for selecting the location of said window; and generating a weighted sum of the intensity values of said pixels in said window, the weight factors of said weighted sum being chosen in response to the identity of said selected component image such that said weighted sum is a coefficient of an expansion of said image in a two-dimensional irreducible basis.
18. The method of Claim 17 wherein said two-dimensional basis is also an orthogonal basis.
19. The method of Claim 17 wherein one of said component images comprises the low spatial frequency information in said input image.
20. The method of Claim 17 wherein the support areas of the basis functions of said irreducible basis do not have boundaries comprising straight lines.
21. In an image compression system, a method for generating a compressed image from an input image, said method comprising the steps of: generating a plurality of component images from said input image, the intensity values of the pixels of said component images being the coefficients of an expansion of said input image in a two-dimensional irreducible basis; and approximating said intensity values of said pixels of said component images by digital values having a predetermined number of states, the number of said states being related to the component image being approximated.
22. In an image compression system, a method for regenerating an image from a plurality of component images, each said component image comprising a plurality of pixel intensity values, said method comprising the steps of:
expanding each said component image and combining corresponding intensity values of the pixels of said expanded component images, wherein said expanding step comprises: storing said pixel intensity values of one of said component images in a memory array, including means for defining a window in said memory array comprising a plurality of memory array locations, the location of said window being responsive to the identification of a location in one of said expanded component images; generating the weight sum of said intensity values of said pixels in said window; defining a time period during which a pixel intensity value in said expanded component image is to be generated; identifying a pixel location in one of said expanded component images and communicating said identified pixel location to said storing means; and generating a weighted sum of the pixel intensity values of said pixels in said window, the weight factors of said weighted sum being chosen in response to the identity of said one of said component images, said weight factors comprising an irreducible two- dimensional array, one said weight factor corresponding to each said location in said window.
23. In an image compression system, a method for generating a decompressed image from a plurality of quantized input component images, said method comprising the steps of: generating a component image from each of said quantized input component images; and combining said input component images to generate said decompressed image, said combining steps convolving selected regions of said component images with a two-dimensional irreducible array of weighting coefficients.
PCT/US1991/003802 1990-05-31 1991-05-29 Improved image compression system WO1991019272A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US531,468 1990-05-31
US07/531,468 US5101446A (en) 1990-05-31 1990-05-31 Method and apparatus for coding an image
US70604291A 1991-05-28 1991-05-28
US706,042 1991-05-28

Publications (1)

Publication Number Publication Date
WO1991019272A1 true WO1991019272A1 (en) 1991-12-12

Family

ID=27063553

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1991/003802 WO1991019272A1 (en) 1990-05-31 1991-05-29 Improved image compression system

Country Status (2)

Country Link
AU (1) AU8091491A (en)
WO (1) WO1991019272A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481275A (en) * 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US6330362B1 (en) 1996-11-12 2001-12-11 Texas Instruments Incorporated Compression for multi-level screened images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802110A (en) * 1985-12-17 1989-01-31 Sony Corporation Two-dimensional finite impulse response filter arrangements
US4805129A (en) * 1986-11-17 1989-02-14 Sony Corporation Two-dimensional finite impulse response filter arrangements
US4817182A (en) * 1987-05-04 1989-03-28 General Electric Company Truncated subband coding of images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802110A (en) * 1985-12-17 1989-01-31 Sony Corporation Two-dimensional finite impulse response filter arrangements
US4805129A (en) * 1986-11-17 1989-02-14 Sony Corporation Two-dimensional finite impulse response filter arrangements
US4817182A (en) * 1987-05-04 1989-03-28 General Electric Company Truncated subband coding of images

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STEPHEN J. LEON, "Linear Algebra with Applications", Third Edition, pp. 71-74 & 85-87, published 1980, 1986, 1990, MACMILLAN PUBLISHING CO. N.Y., N.Y. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481275A (en) * 1992-11-02 1996-01-02 The 3Do Company Resolution enhancement for video display using multi-line interpolation
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5596693A (en) * 1992-11-02 1997-01-21 The 3Do Company Method for controlling a spryte rendering processor
US5838389A (en) * 1992-11-02 1998-11-17 The 3Do Company Apparatus and method for updating a CLUT during horizontal blanking
US6191772B1 (en) 1992-11-02 2001-02-20 Cagent Technologies, Inc. Resolution enhancement for video display using multi-line interpolation
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
US6330362B1 (en) 1996-11-12 2001-12-11 Texas Instruments Incorporated Compression for multi-level screened images

Also Published As

Publication number Publication date
AU8091491A (en) 1991-12-31

Similar Documents

Publication Publication Date Title
US5101446A (en) Method and apparatus for coding an image
US5583952A (en) Method and apparatus for representing an image by iteratively synthesizing high and low frequency components
US5148498A (en) Image coding apparatus and method utilizing separable transformations
US5546477A (en) Data compression and decompression
US5453844A (en) Image data coding and compression system utilizing controlled blurring
AU637020B2 (en) Improved image compression method and apparatus
Watson Image compression using the discrete cosine transform
Anderson et al. Image restoration based on a subjective criterion
US5572236A (en) Digital image processor for color image compression
JP4465112B2 (en) Upsampling algorithm based on DWT suitable for image display on LCD panel
US5841473A (en) Image sequence compression and decompression
US6002809A (en) Digital image processor for image scaling
US5293434A (en) Technique for use in a transform coder for imparting robustness to compressed image data through use of global block transformations
JPH0591331A (en) Image processing method and halftone image printing system
WO1997037324A1 (en) Apparatus for assessing the visibility of differences between two image sequences
US5995990A (en) Integrated circuit discrete integral transform implementation
WO1991019272A1 (en) Improved image compression system
US6934420B1 (en) Wave image compression
Press Wavelet-based compression software for FITS images
US6633679B1 (en) Visually lossless still image compression for CMYK, CMY and Postscript formats
Kumar et al. An image compression algorithm for gray scale image
Kumar et al. Aggrandize Bit Plane Coding using Gray Code Method
Tretter et al. A model-based approach to multispectral image coding
Noll A visual perception threshold matching algorithm for real-time video compression
Parvin A Four-Dimensional Discrete Cosine Transform Using Large Block Wise Image Compression

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR JP KR SU

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE