GB2263834A - Image data compression by sub-band coding and subsequent run-length coding - Google Patents

Image data compression by sub-band coding and subsequent run-length coding Download PDF

Info

Publication number
GB2263834A
GB2263834A GB9200899A GB9200899A GB2263834A GB 2263834 A GB2263834 A GB 2263834A GB 9200899 A GB9200899 A GB 9200899A GB 9200899 A GB9200899 A GB 9200899A GB 2263834 A GB2263834 A GB 2263834A
Authority
GB
United Kingdom
Prior art keywords
values
runs
zero
image data
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB9200899A
Other versions
GB9200899D0 (en
GB2263834B (en
Inventor
James Hedley Wilkinson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Broadcast and Communications Ltd
Sony Europe BV United Kingdom Branch
Original Assignee
Sony Broadcast and Communications Ltd
Sony United Kingdom Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Broadcast and Communications Ltd, Sony United Kingdom Ltd filed Critical Sony Broadcast and Communications Ltd
Priority to GB9200899A priority Critical patent/GB2263834B/en
Publication of GB9200899D0 publication Critical patent/GB9200899D0/en
Publication of GB2263834A publication Critical patent/GB2263834A/en
Application granted granted Critical
Publication of GB2263834B publication Critical patent/GB2263834B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Input image data is coded into sets of two-dimensional sub band image data are run-length coded by a run-length coder 60. The run-length coder 60 assigns codes to runs of zero values terminated by a non-zero value, runs of constant non-zero values and particular individual data values. The output from the run-length cod or 60 is fed to a Huffman coder 62 where it is Huffman coded. The Huffman coding table 64 applied by the Huffman coder 62 and the type of run-length coding applied by the run-length coder 60 varies. Implementations need only use a sub-set of possible runs of zero values terminated by a non-zero value and runs of constant non-zero values without an undue loss in compression efficiency. <IMAGE>

Description

IMAGE DATA COMPRESSION This invention relates to image data compression. More particularly, this invention relates to the compressing of image data that has been frequency separated into sets of frequency component data representing different two-dimensional spatial frequencies.
It has been proposed to provide a system in which image data is decorrelated into sub band components, quantised, thereby effecting a degree of data compression with some loss of information content, and then entropy encoded, thereby effecting a further degree of data compression with no loss of information content.
One known entropy encoding technique is so called run-length coding. A typical run-length coder looks for sequences of successive zeros within a data stream and assigns a code word to substitute for that sequence of zeros within the data stream. When the data stream is subsequently read, the run-length codes can be expanded to recreate the original data stream.
A variation on this arrangement is the type of run-length coding proposed in the standard being devised by the Joint Photographic Experts Group (JPEG) and currently under review by the International Standards Organisation. The JPEG standard proposes a run-length coding technique in which a sequence of successive zero values terminated by a non-zero value is treated as an "event" and assigned a two-word runlength code. The syntax of these two-word codes is: [RUNLENGTH, SIZE], [AMPLITUDE] The RUNLENGTH variable specifies the number of zero values preceding the non-zero value. The SIZE variable specifies the number of bits that will be required to represent the amplitude of the nonzero value that terminates the sequence of successive zero values. The AMPLITUDE variable specifies the amplitude of the non-zero value.
Once the image data has been subjected to this run-length coding, it is then subjected to Huffman coding. Huffman coding is a technique whereby events are mapped to a set of codes having the property that no valid code is a prefix of a longer code. The most common events are mapped to the shortest Huffman codes.
It is a constant aim in the field of data compression to increase the degree of compression achieved without adversely affecting the fidelity of the data subsequently regenerated.
Viewed from one aspect the present invention provides apparatus for compressing image data, said apparatus comprising: a decorrelator for frequency separating image data into sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, and a run-length coder for receiving in turn each of said sets of frequency component data as a stream of data values and generating codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values.
This combination of possible run-length codes has been found to be surprisingly effective in compressing sets of frequency separated image data. Such data has a high probability of including runs of zero values terminated by a single non-zero value. This type of event can be efficiently coded by one of the codes representing a run of one or more zero values terminated by a non-zero value. The occurrence of events comprising a plurality of constant non-zero values is also sufficiently high that a gain in the degree of compression can be made by providing codes representing runs of a plurality of constant nonzero values. In this way, the types of run-length codes provided are matched to the particular nature of the data within the sets of frequency separated component data.
In preferred embodiments of the invention said run-length coder generates codes representing: (i) a sub-set of possible runs of one or more zero values terminated by a non-zero value, (ii) a sub-set of possible runs of a plurality of constant values, and (iii) individual values not represented by any other code.
This feature recognises that there is an overall performance advantage to be gained from restricting the number of possible events that can be recognised and coded by the run-length coder. Whilst the degree of compression achieved by the run-length coder itself may be decreased by restricting the number of events recognised, the overall performance of the system is increased and implementation is made easier. The most common events are included within the sub-sets of runs recognised by the run-length coder and the individual values not representable by one of the codes in the sub-sets are individually coded. The total number of possible codes for the two-sets and the individual value codes is less than the total possible number of codes if runs of all lengths terminated by any non-zero value or runs of a plurality of any constant non-zero value are supported.
The choice as to which events should be represented within the sub-sets is significant in determining the overall performance of the system. In particularly preferred embodiments said sub-set of possible runs of one or more zero values terminated by a non-zero value is chosen from a list in order of preference comprising: one to fifteen zero values terminated by a t1 value, one to eleven zero values terminated by a +2 value, one to seven zero values terminated by a +3 value, one to four zero values terminated by a +4 value, one to two zero values terminated by a +5 value, one zero value terminated by a +6 value, and one zero value terminated by a +7 value.
The above events are given in preference order. In practice, if it is decided that a further reduced number of events should be coded then it is most effective to stop coding those events at the bottom of this list and work upwards. Thus, codes representing runs of zero values terminated by a +7 would be discarded before the codes representing runs of zeros terminated by +6.
Similarly, it has been found advantageous that said sub-set of possible runs of a plurality of constant values is chosen from a list in order of preference comprising: two to six +1 values, two to four t2 values, two to three +3 values, and two +4 values.
Whilst it would be possible to provide codes to represent any number of zero values terminated by non-zero value, this has been found to be inefficient. It has also previously been proposed to provide so called "end of block" codes to indicate that all the values from the current position to the end of a predefined block of data are zero values. Whilst this feature enables efficient coding, it is difficult to implement. An advantageous compromise is that said run-length coder generates codes representing runs of two to sixteen, thirty two, forty eight and sixty four zero values.
Whilst the run-length coding itself does provide a degree of compression, it has been found advantageous to additionally provide a Huffman coder for Huffman coding codes produced by said run-length coder.
The characteristics of the data in each set of frequency separated component data vary considerably between the extremes of the frequency range. Accordingly, the probability of the occurrence of different types of events varies between different sets of data. In order to exploit this characteristic, preferred embodiments of the invention are such that in dependence upon which set of frequency component data is being compressed, said Huffman coder applies differing coding tables and said run-length coder generates codes representing differing sub-sets of possible runs of one or more zero values terminated by a non-zero value and differing sub-sets of possible runs of a plurality of constant values.
This preferred feature provides different sub-sets and different Huffman coding tables for each of the sets of frequency component data in order to better match the characteristics of the sets of data to the coding applied.
This invention could be carried out with various different sorts of frequency separating decorrelation, e.g. discrete cosine transformation or sub band coding. This invention has been found to be particularly suitable when said decorrelator frequency separates said image data into sets of sub band data.
The problem of providing efficient image data compression is a general one. However, the need for efficient image data compression is particularly acute for real time video image data. Accordingly, this invention is of particular utility in compressing real time video image data.
Viewed from another aspect this invention provides a method for compressing image data, said method comprising the steps of: frequency separating image data into sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, and run-length coding in turn each of said sets of frequency component data as a stream of data values and generating codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values.
Viewed from a complementary aspect this invention provides apparatus for decompressing image data, said apparatus comprising: a run-length decoder for generating sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, from a stream of codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values, and an interpolator for frequency combining said sets of frequency component data to form image data.
Viewed from a further complementary aspect this invention provides a method for decompressing image data, said method comprising the steps of: generating sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, from a stream of codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values, and frequency combining said sets of frequency component data to form image data.
An embodiment of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a schematic illustration of a data compression system; Figure 2 is a schematic illustration of a simple sub band coding system; Figure 3 is a schematic illustration of a higher order sub band coding system; Figure 4 illustrates a two-dimensional sub band decorrelator; Figure 5 illustrates a frequency separated video signal; Figure 6 illustrates the human psychovisual response to images of differing spatial frequency; Figure 7 is a quantisation matrix; Figure 8 illustrates an entropy encoder using a combination of run-length coding and Huffman coding; Figure 9 illustrates the operation of the entropy encoder of Figure 8 in more detail; Figure 10 illustrates a complementary entropy decoder; and Figure 11 illustrates the grouping of the various sub bands, each grouping having a matched form of run-length and Huffman coding performed upon it.
Figure 1 shows an apparatus for effecting intra-image frequency separation and compression of a video signal in the two-dimensional spatial frequency domain. A video signal, which is in digital form and comprises successive multi-bit (for example 8-bit) samples or words each representing a respective pixel of a scanned image or picture, is applied via an input 10 to a decorrelator 12. A frequency separated video signal is output by the decorrelator 12 to a quantiser 14 and then via a data sequencer 18 to an entropy encoder 20, which together compress the frequency separated video signal outputted by the decorrelator 12 to produce a compressed signal on an output 19. The compressed signal can then be transmitted or stored.After transmission or storage, the compressed signal can be restored substantially to its original form by expansion by way of entropy decoding, resequencing, dequantising and correlation operations which employ parameters converse to those used for decorrelation, sequencing, quantisation and entropy encoding, respectively, upon compression.
The operation of decorrelation performed in the decorrelator 12 relies upon the fact that neighbouring pixels of an image are highly correlated, whereby processing an image (for example, a field or frame of a video signal) to form frequency separated signal portions representing different components of the image in the two-dimensional spatial frequency domain enables a reduction in the amount of information needed to represent the image. Specifically, the frequency separated signal portions represent different spatial frequency components of the image.
The sequencing operation will be described in more detail below.
The quantisation operation, which is a lossy operation, in that it involves deliberate discarding of some frequency data considered to be redundant or of little importance to adequate perception of the image by the human psychovisual system, in itself enables some signal compression to be achieved. The quantiser 14 enables compression to be achieved in two ways: it reduces the number of levels to which the data input to it can be assigned, and it increases the probability of runs of zero and constant value samples on the data it outputs. The ability to achieve enhanced signal compression provided by the operation of the quantiser is carried into effect in the entropy encoder 16 in that the reduction in information content achieved in the quantiser 14 enables a consequential bit (data) rate reduction to be achieved in the entropy encoder.
Further (non-lossy) compression, and bit (data) rate reduction, is provided in the entropy encoder 16 in which, in known manner, using for example variable length coding, the data produced by the quantiser 14 is encoded in such a manner that more probable (more frequently occurring) items of data produce shorter output bit sequences than less probable (less frequently occurring) ones. In this regard, the decorrelation operation has the effect of changing the probability distribution of the occurrence of any particular signal level, which is substantially the same as between the different possible levels before decorrelation, into a form in which in which it is much more probable that certain levels will occur than others.
The compression/coding system or apparatus as shown in Figure 1 can be embodied in a variety of ways, using different forms of decorrelation. An increasingly popular form of implementation makes use of so-called transform coding, and in particular the form of transform known as the discrete cosine transform. The use of discrete cosine transformation for decorrelation is in fact prescribed in a version of the compression system of Figure 1 described in a proposed standard prepared by the Joint Photographic Experts Group and currently under review by the International Standards Organisation. According to the transform technique of decorrelation, the signal is subjected to a linear transform (decorrelation) operation prior to quantisation and encoding.A disadvantage of the transform technique is that, although the whole image (for example, a whole field) should be transformed, this is impractical in view of the amount of data involved. The image (field) thus has to be divided into blocks (for example, of 8 x 8 samples representing respective pixels), each of which is transformed.
That is, transform coding is complex and can be used on a block-by-block basis only.
A recently proposed approach to compression/coding in the frequency domain is that of sub-band coding. In this approach, the decorrelator 12 in the system of Figure 1 would comprise a spatial (two-dimensional) sub-band filtering arrangement which divides the input video signal into a plurality of uncorrelated sub-bands each containing the spatial frequency content of the image in a respective one of a plurality of areas of a two-dimensional frequency plane of the image, the sub-bands then being selectively quantised by the quantiser 14 in accordance with their positions in the sensitivity spectrum of the human psychovisual system. That is, decorrelation is achieved in this case by putting the energy of the overall image into different sub bands of the two-dimensional spatial frequency domain. Sub band filtering is believed to provide better decorrelation than the transform approach.Also, unlike the transform technique, there is no restriction to operation on a block-by-block basis: the sub-band filtering can be applied directly to the video signal.
Figure 2 illustrates a sub band coding system in which the input video signal is passed through a low-pass decimation filter 22 and a high-pass decimation filter 24. The resulting two output signals represent different portions of the frequency spectrum of the input signal. The two signals are then quantised, sequenced and entropy encoded as discussed in relation to Figure 1. The sub band components of the input signal can now be transmitted or stored for later reproduction. The storage or transmission of the sub band components is illustrated by the dashed line 26 in Figure 2.
When the sub band components are recovered from the recording medium they are passed through corresponding matching filters to regenerate the original frequency components. These matching filters are a low-pass interpolation filter 30 and a high-pass interpolation filter 28. The outputs of the interpolation filters 28, 30 are added by a summation circuit 32 to yield the original video input signal.
Figure 2 illustrates the decomposition of the input video signal into two sub bands. In practice, the input video signal would be decomposed into many more sub band components. Figure 3 illustrates the decomposition of an input signal into eight sub band components and its subsequent recombination into an output video signal.
The filters of the sub band coding system comprise finite impulse response filters with appropriate delays and weighting coefficients to perform both horizontal and vertical frequency decomposition.
Different forms of filter for performing sub band frequency separation are known, e.g. some possible filters are described in the article entitled 'Exact Reconstruction Techniques for Tree Structured Sub band Coders', in IEEE Transactions on Acoustics, Speech and Signal Processing, Volume ASSP-34 at pages 434 to 441, June 1986.
Figure 4 illustrates the decorrelator 12 of Figure 2 in more detail. The decorrelator comprises a horizontal filter arrangement 46, an intermediate field store 48, a transpose sequencer (address generator) 50, a vertical filter arrangement 52, an output field store 54 and an output sequencer (address generator) 56. Sub-band filtering is effected on a separable basis. Thus, in Figure 4, filtering in the two orthogonal image directions, namely the horizontal direction (the direction of image scanning in the case of conventional video) and the vertical direction, is effected entirely independently and separately of one another by respective one-dimensional filtering operations performed in the horizontal and vertical filter arrangements 46 and 52, respectively.
The horizontal filter arrangement 46 and vertical filter arrangement 52 can be of substantially the same construction as one another. Thus, the construction of the horizontal filter arrangement 46 only will be described in detail. The filtering is to achieve 8 sub-bands in each of the horizontal and vertical directions, that is to say that a square array of 64 (8 x 8) sub-bands is to be produced. The 64 sub-bands are to be of equal extent to one another.
The horizontal filter arrangement 46 is preferably of a tree or hierarchical structure as shown in Figure 3, comprising three successive filter stages. The first stage comprises a low pass filter (LF) and a high pass filter (HF), each of which is followed by a respective decimator (not shown). The LF filter, HF filter and the decimators together make up a quadrature mirror filter (QMF). Each of the filters can be a finite impulse response filter of conventional form. In use, a line of a field of the input digital video signal is applied, sample-by-sample, to the first stage, to be low pass filtered and high pass filtered by the LF and HF, respectively.Thus, the LF and HF produce outputs comprising low pass filtered and high pass filtered versions of the input line, respectively, the outputs representing the spatial frequency content of the line in the upper and lower halves of the horizontal spatial frequency range. That is, the first stage divides the input line into two sub-bands in the horizontal direction. The decimators decimate (sub-sample) the respective outputs by a factor of two, whereby the total number of samples output by the decimators (together) is the same as the total number of samples in the line.
The second stage is of similar construction to the first stage, except that there are two QMFs each as in the first stage and the output from each of the decimators of the first stage is passed as an input to a respective one of the two QMFs. Thus, the second stage produces four outputs representing the spatial frequency content of the line in four equal quarters of the horizontal spatial frequency range.
That is, the second stage further divides the two sub-bands, into which the input line was divided in the first stage, into four sub-bands in the horizontal direction. The four decimators of the second stage decimate (sub-sample) the respective outputs by a factor of two, whereby the total number of samples outputted by the decimators of the second stage (together) is the same as the total number of samples in the line.
The third stage is of similar construction to the first stage, except that there are four QMFs each as in the first stage and the output from each of the four decimators of the second stage is passed as an input to a respective one of the four QMFs. Thus, the third stage produces eight outputs representing the spatial frequency content of the line in eight equal one-eighths of the horizontal spatial frequency range. That is, the third stage divides the four sub-bands into which the input line was previously divided into the required eight sub-bands in the horizontal direction. The eight decimators of the third stage decimate (sub-sample) the respective outputs by a factor of two, whereby the total number of samples outputted by the decimators of the third stage (together) is the same as the total number of samples in the line.
The eight outputs of the third stage, that is of the horizontal filter arrangement 46, are passed to the intermediate field store 48 and stored at positions corresponding to respective one-eighths of a first line thereof. The above process of horizontal filtering is then repeated for all the other lines of the field of the input digital video signal. This results in the intermediate field store 48 containing a version of the field of the input digital video signal that has been filtered into eight sub-bands in the horizontal direction (only). Each line of the field stored in the intermediate field store 48 is divided into eight portions each containing the horizontal spatial frequency information in a respective one of eight sub-bands of the horizontal spatial frequency range of the image that the original field represented.Thus, the horizontally filtered field stored in the intermediate field store 48 can be considered to be divided into eight columns.
The horizontally filtered field stored in the intermediate field store 48 is then fed (under the control of the transpose sequencer 50) into the vertical filter arrangement 52, in which it is filtered into eight sub-bands in the vertical direction in similar manner to that in which filtering into eight sub-bands in the horizontal direction was achieved in the horizontal filter arrangement 46. The horizontally and vertically filtered field is fed on a line-by-line basis into the output field store 54 to be passed from there to the quantiser 14. The store 54 can be considered to have been partitioned into an array of 64 (8 x 8) storage regions, in each of which a respective one of the 64 sub bands is stored. Thus, successive fields of the input digital video signal are sub band filtered and passed, duly filtered, to the quantiser 14 after a delay of two field intervals.
The transpose sequencer 50 produces read addresses for the intermediate field store 48, to control reading of the contents thereof into the vertical filter arrangement 52, as follows. As will be recalled, the signal as stored in the intermediate field store 48 comprises the lines of the original field, each divided horizontally into eight sub bands. That is, the signal as stored in the intermediate field store 48 can, as mentioned above, be considered to comprise eight columns. To enable the signal stored in the intermediate field store 48 to be vertically filtered by hardware of the same construction (the vertical filter arrangement 52) used to horizontally filter it, the horizontal and vertical addresses must be transposed, as in matrix transposition, as it is read to the vertical filter arrangement 52, so that it comprises eight rows (as opposed to columns).The transpose sequencer 50 addresses the intermediate field store 48 in such a manner as to accomplish this.
The nature of the filtering produced by the combination of the horizontal filter arrangement 46 and the vertical filter arrangement 52 is such that data stored in the output field store 54 is somewhat scrambled and reordered by the output sequencer 56 before being passed to the rest of the apparatus for processing.
Figure 5 illustrates the various sub band components produced if the input video signal is decomposed both horizontally and vertically into eight frequency components (this can be considered to be the data stored in the output field store 54 after it has had the reordering of the output sequencer 56 applied to it). Each of these sub bands or sub-pictures is represented by one of the blocks in Figure 5. The upper left hand block represents the dc sub band. This is the band of lowest horizontal and vertical frequency although in practice it doesn't necessarily represent only the constant portions of the signal with strictly zero frequency. This dc sub band will contain the majority of the dc luminance information of the original input video signal. The relative importance of the remaining sub bands to the eventual perception of the picture by a viewer varies.Generally speaking, the higher frequency sub bands are less important to the eventual perception of a viewer. In relation to Figure 5, the frequency which a particular sub band component represents increases in moving downward and/or rightward in the array of blocks.
Figure 6 illustrates the human psychovisual response to image components of differing spatial frequency. As can be seen, the level of human perception first rises and then steadily diminishes with increasing spatial frequency. This characteristic can be exploited in a data compression system with the realisation that components of higher spatial frequency can be subjected to higher degrees of quantisation with subsequent loss in information, without significantly degrading the perceived image that can be reconstructed.
Figure 7 shows a quantisation matrix that can be applied to the differing sub bands of Figure 5 by the quantiser 14 of Figure 1. The way in which the quantiser operates is that a value from the quantisation matrix is divided by an overall quantisation scale factor to determine an applied quantisation value for the sub band corresponding to that matrix value. Each sample value within that sub band block is then divided by the corresponding applied quantisation value and the result is rounded to the nearest integer value. Thus, assuming an overall quantisation scale factor of 1, if a sample value of 35 was read from the dc luminance sub band in the top left hand corner, this would be divided by the corresponding applied quantisation value of 65 (a binary decimal number) and the rounded integer sample value taken giving a quantised result of 1.Similarly, if a sample value of 537 were read from the dc luminance sub band and divided by 65, the resulting rounded integer value would be 8.
It will be seen that the lowest quantisation matrix values occur in the bands immediately below and immediately to the right of the dc luminance sub band. This is because the human visual system is most responsive to these sub bands. The values for the quantisation matrix can be determined by a process of trial and error with subjective viewing tests to see which values gives the best perceived image.
Alternatively, values can be derived by extending the curve of Figure 6 into three dimensional form to produce a curved surface. The surface is the locus of the curve of Figure 6 rotated through 900 about the sensitivity axis. The sub band frequency blocks lie in different regions of the spatial frequency plane beneath this surface, and by integrating under the surface to find the volume between each frequency block and the surface then a relative quantisation value can be determined.
The different quantisation values from the matrix of Figure 7 serve to impose a decreasing information content upon the higher sub band frequency components. This results from the fact that the higher sub band frequency components have correspondingly higher quantisation matrix values and so when an image data value is read from one of these higher bands it will be divided by a correspondingly larger applied quantisation value before having its rounded integer value taken.
Thus, even if one were to assume that each of the sub bands contained the same amount of information prior to quantisation, then the data from the higher frequency sub bands would result in a reduced span of quantised data values due to the higher quantisation matrix numbers.
In practice, the information content of the higher sub band frequency components is typically lower than the lower sub band frequency components even prior to quantisation.
Figure 8 illustrates the entropy encoder 20 of Figure 1 in more detail. The output from the data sequencer 18 of Figure 1 forms the input data to the run-length coder 60. The input data to the runlength coder 60 is sequenced such that the data from a first sub band is all sent to the run-length coder 60 before any data from the next sub band.
The run-length coder 60 produces run-length codes to represent runs of zeros terminated by a non-zero value (e.g ..., 0.0,0,2,...
and run-length codes representing runs of constant non-zero values (e.g. ...2, 2, 2, 2... ). In the interests of efficiency the runlength coder 60 does not attempt to run-length code all possible runs.
It is found advantageous to only run-length code a sub-set of runs.
Table 1 illustrates the runs which the run-length coder will code.
TABLE 1
RUN-LENGTH DESCRIPTION LENGTH VALUES NUMBER OF CODES runs of zeros 2 to 16, 32, 48 and 64 18 runs of +1 2 to 6 10 runs of *2 2 to 4 6 runs of t3 2 to 3 4 runs of s4 2 2 zeros terminated by s1 2 to 16 30
zeros terminated by +2 2 to 12 22 zeros terminated by #3 2 to 8 14 zeros terminated by #4 2 to 5 8 zeros terminated by +5 2 to 3 4 zeros terminated by +6 2 2 zeros terminated by +7 2 2 individual symbol values -2048 to 2047 4096 To illustrate an example from Table 1 consider runs of zeros terminated by # 4. The range of length values coded for this type of run is 2 to 5. More specifically, the runs that can be coded are: 0,4 0,0,4 0,0,0,4 0,0,0,0,4 0,-4 0,0,-4 0,0,0,-4 0,0,0,0,-4 Thus, the total number of run-length codes for this type of run is 8.
Another example is that of runs of # 1. Runs of this type having a length of between 2 and 6 values are coded. More specifically, the runs that are coded are: 1,1 1,1,1 1,1,1,1 1,1,1,1,1 1,1,1,1,1,1 -1,-i -1,-1 -1 -1,-1,-1,-1,-1 Thus, a total of ten codes for this type of run are possible.
Runs of zero values are common and are treated slightly differently. As shown in Table 1, there are codes to represent 2 to 16, 32, 48 and 64 successive zero values. This equates to 18 codes for this type of run. No end of block code is used to signify that all the values from a current position to a predetermined end of block position are zero values. The reason is that whilst end of block codes allow good compression, they are troublesome to implement with real time serial data.
The codes for runs of zeros given in Table 1 represent an advantageous compromise which produces good compression and yet requires no more than fifteen previous values to be buffered at any one time. In contrast, for an end of block code with real time serial data potentially all the data values within a data block may need to be buffered so that if, when the last data value within the block has been received, it transpires that it has a non-zero value so that an end of block code could not be validly issued, then backtracking can be carried out through the buffered data to issue the appropriate codes.
The remaining codes in Table 1 are individual symbol value codes to represent individual data values within the range of possible values.
Table 1 represents the sub-set of possible runs that are coded.
With some sub bands it is not worthwhile to support all of these runs since their probability of occurrence is too small. In this case the runs involving the higher amplitude data values are discarded first.
Returning to Figure 8, when a run or individual symbol from Table 1 has been identified by the run-length coder 60, this is allocated an intermediate code. This intermediate code is passed to a Huffman coder 62. The Huffman coder 62 maps the intermediate code to a corresponding Huffman code. The coding tables within the Huffman coder 62 are PROMs whose memory locations are addressed by the intermediate code values and store the corresponding Huffman codes. The Huffman codes output from the Huffman coder 62 represent an entropy encoded version of the input data.
In an analogous manner to the way the run-length coding is varied between sub bands, the particular coding table applied by the Huffman coder 62 is also varied between sub bands. This variation in coding table allows the Huffman coding to be more accurately matched to the nature of the data within each particular sub band.
Control over what types of runs are to be coded by the run-length coder 60 and what coding table is to be used by the Huffman coder 62 is made under control of a sub band number input to each of these respective units.
Figure 9 illustrates the operation of the system of Figure 8 in more detail. A stream of sub band image data values are input to the run-length coder 60. By way of example, a particular run of data values 0,0,0,0,0, -2 is recognised by the run-length coder 60 and assigned an intermediate code (IC). The output from the run-length coder 60 is a stream of such intermediate codes.
The Huffman coder 62 has a particular coding table 64 currently activated. The coding table 64 maps IC values to Huffman codes. The IC value references the memory location with that address where the Huffman code 011011 is stored. The Huffman coder 62 then outputs this Huffman code. The code 011011 represents the sequence of image data values 0,0,0,0,0,-2.
A description of how Huffman codes can be allocated to appropriate events is given in the book entitled "Coding and Information Theory" by R W Hamming in Chapter 4, pages 64 to 68 (ISBN 0-13-139139-9). An example of an allocation of Huffman codes for this particular application is given in Table 2.
TABLE 2
ITEM COURT COUNT LENGTH SYMBOL | HUFFMAN CODE 0 4288 1 7FF,O 00000 1 4288 1 801,0 00001 2 3201 1 7FE,O 01100 3 3065 1 802,0 01110 4 2529 1 7FD,o 10111 5 2522 1 803,0 11000 6 2022 1 7FC,O 000101
7 2001 1 804,0 000111 8 1932 1 7FB,0 001010 9 1882 1 805,0 001101 10 1781 1 7FA,0 010000 11 1620 1 806,0 010101 12 1523 1 807,0 011011 13 1503 1 7F8,0 011111 14 1499 1 7F9,0 100000 15 1417 1 808,0 100100 16 1415 1 800,0 100101 17 1325 1 809,0 101001 18 1291 1 7F7,0 101011 19 1246 1 7F6,0 110011 20 1212 1 80A,0 110101 21 1118 1 80B,0 111011 22 1089 1 7F5,0 111101 23 1000 1 7F4,0 0001101 24 979 1 80c,0 0010001 25 957 2 800,-1 0010111 26 951 2 800,1 0011000 27 941 1 80D,0 0011100 28 9 3 1 7F3,0 0011111 29 875 1 7F2,0 0100100 30 862 1 80ego 0100101 31 794 1 7Fl,O 0101110 Table 2 represents the first part of the coding table for the sub band marked with a "*" in Figure 5. The full coding table length would have over 1500 entries. The most probable events are the ones that have been found to have the highest COUNT of event occurrences in an analysis of typical image data. These events are at the top of the table and are given the shortest Huffman codes. The SYMBOL column has two-word entries.The SYMBOL column should be interpreted as follows: a) if the symbol length is 1, then read only the first symbol (which is in hexadecimal centred on 800) to indicate the individual symbol value being represented, b) if the length is greater than sign 1 the first word is 800 and the second word is non-zero (e.g. 800, 4) then the meaning is a run of zeros terminated by a data value corresponding to the second word, c) if the symbol length is greater than sign 1, the first symbol is not 800 and the second symbol is non-zero (e.g.
804, 4), then the meaning is a run of non-zero value with the data value of the first word and a length of the second word (this combination does not occur in the small part of the full coding file given in Table 2).
As will be seen from Table 2, the most probable events with the shortest Huffman codes are at the top of the coding table. In the case of this sub band the most probable events are single symbol events.
Items 25 and 26 are the first non-single symbol events in the coding table. Item 25 corresponds to the run 0,-1 and item 26 corresponds to the run 0, 1. It is interesting to note that a single symbol value for a data value of O is item number 16 and correspondingly is only the sixteenth most likely event to occur. The most probable events are -1 and 1 followed by the positive and negative values of increasingly high amplitude single symbol data values. This trend would not of course be maintained throughout the table as some high value data values would be rather improbable and occur later in the table than some of the runs.
Figure 10 illustrates a complementary entropy decoder to that shown in Figure 9. The Huffman code 011011 is input to a Huffman decoder 66. The coding table 68 currently activated maps the Huffman code 011011 to the intermediate code value IC. A stream of intermediate code values are output from the Huffman decoder 66 to the run-length decoder 70. The run-length decoder 70 transforms the intermediate code values into their corresponding runs and individual symbol values. As previously, the particular decoding table and type of run-length decoding applied is controlled by a current sub band number being input to the Huffman decoder 66 and run-length decoder 70 respectively.
As previously mentioned, groups of sub bands can be collected together and have the same run-length coding and Huffman coding applied to them without an undue loss of coding efficiency. This is particular true for the higher frequency sub bands where the nature of the type of data content remains roughly the same. Figure 11 illustrates how the numbered sub bands are collected together into groups to have the same run-length coding and Huffman coding applied to them.

Claims (16)

1. Apparatus for compressing image data, said apparatus comprising: a decorrelator for frequency separating image data into sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, and a run-length coder for receiving in turn each of said sets of frequency component data as a stream of data values and generating codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values.
2. Apparatus according to claim 1, wherein said run-length coder generates codes representing: (i) a sub-set of possible runs of one or more zero values terminated by a non-zero value, (ii) a sub-set of possible runs of a plurality of constant values, and (iii) individual values not represented by any other code.
3. Apparatus according to claim 2, wherein said sub-set of possible runs of one or more zero values terminated by a non-zero value is chosen from a list in order of preference comprising: one to fifteen zero values terminated by a +1 value, one to eleven zero values terminated by a +2 value, one to seven zero values terminated by a +3 value, one to four zero values terminated by a t4 value, one to two zero values terminated by a +5 value, one zero value terminated by a s6 value, and one zero value terminated by a +7 value.
4. Apparatus according to any one of claims 2 and 3, wherein said sub-set of possible runs of a plurality of constant values is chosen from a list in order of preference comprising: two to six t1 values, two to four +2 values, two to three t3 values, and two t4 values.
5. Apparatus as claimed in any one of the preceding claims, wherein said run-length coder generates codes representing runs of two to sixteen, thirty two, forty eight and sixty four zero values.
6. Apparatus according to any one of the preceding claims, including a Huffman coder for Huffman coding codes produced by said run-length coder.
7. Apparatus according to claim 6 and any one of claims 2, 3, 4 and 5 wherein, in dependence upon which set of frequency component data is being compressed, said Huffman coder applies differing coding tables and said run-length coder generates codes representing differing subsets of possible runs of one or more zero values terminated by a nonzero value and differing sub-sets of possible runs of a plurality of constant values.
8. Apparatus according to any one of the preceding claims, wherein said decorrelator frequency separates said image data into sets of sub band data.
9. Apparatus according to any one of the preceding claims, wherein said image data is real time video image data.
10. A method for compressing image data, said method comprising the steps of: frequency separating image data into sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, and run-length coding in turn each of said sets of frequency component data as a stream of data values and generating codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values.
11. Apparatus for decompressing image data, said apparatus comprising: a run-length decoder for generating sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, from a stream of codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values, and an interpolator for frequency combining said sets of frequency component data to form image data.
12. A method for decompressing image data, said method comprising the steps of: generating sets of frequency component data, each of said sets of frequency component data representing a different two-dimensional spatial frequency, from a stream of codes representing: (i) runs of one or more zero values terminated by a non-zero value, and (ii) runs of a plurality of constant non-zero values, and frequency combining said sets of frequency component data to form image data.
13. Apparatus for compressing image data substantially as hereinbefore described with reference to the accompanying drawings.
14. A method for compressing image data substantially as hereinbefore described with reference to the accompanying drawings.
15. Apparatus for decompressing image data substantially as hereinbefore described with reference to the accompanying drawings.
16. A method for decompressing image data substantially as hereinbefore described with reference to the accompanying drawings.
GB9200899A 1992-01-16 1992-01-16 Image data compression Expired - Fee Related GB2263834B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9200899A GB2263834B (en) 1992-01-16 1992-01-16 Image data compression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9200899A GB2263834B (en) 1992-01-16 1992-01-16 Image data compression

Publications (3)

Publication Number Publication Date
GB9200899D0 GB9200899D0 (en) 1992-03-11
GB2263834A true GB2263834A (en) 1993-08-04
GB2263834B GB2263834B (en) 1995-08-16

Family

ID=10708698

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9200899A Expired - Fee Related GB2263834B (en) 1992-01-16 1992-01-16 Image data compression

Country Status (1)

Country Link
GB (1) GB2263834B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2319440A (en) * 1996-11-05 1998-05-20 Samsung Electronics Co Ltd Digital signal processing with reduced power consumption

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2168871A (en) * 1984-12-21 1986-06-25 British Broadcasting Corp Image run length coding and decoding
EP0199065A2 (en) * 1985-04-22 1986-10-29 International Business Machines Corporation Method and apparatus for message compression in a facsimile communication system
EP0205944A2 (en) * 1985-06-20 1986-12-30 International Business Machines Corporation Method of spatially thresholding a discrete color image
US4918524A (en) * 1989-03-14 1990-04-17 Bell Communications Research, Inc. HDTV Sub-band coding using IIR filter bank

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2168871A (en) * 1984-12-21 1986-06-25 British Broadcasting Corp Image run length coding and decoding
EP0199065A2 (en) * 1985-04-22 1986-10-29 International Business Machines Corporation Method and apparatus for message compression in a facsimile communication system
EP0205944A2 (en) * 1985-06-20 1986-12-30 International Business Machines Corporation Method of spatially thresholding a discrete color image
US4918524A (en) * 1989-03-14 1990-04-17 Bell Communications Research, Inc. HDTV Sub-band coding using IIR filter bank

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2319440A (en) * 1996-11-05 1998-05-20 Samsung Electronics Co Ltd Digital signal processing with reduced power consumption
US6141761A (en) * 1996-11-05 2000-10-31 Samsung Electronics Co., Ltd. Low power consuming operating device for digital signal processing using a probability distribution of input digital signals and predetermined output signals
GB2319440B (en) * 1996-11-05 2001-06-06 Samsung Electronics Co Ltd Low power consuming operating device for digital signal processing

Also Published As

Publication number Publication date
GB9200899D0 (en) 1992-03-11
GB2263834B (en) 1995-08-16

Similar Documents

Publication Publication Date Title
US5757973A (en) Compression of image data seperated into frequency component data in a two dimensional spatial frequency domain
US5260781A (en) Data compression apparatus and method
GB2252021A (en) Data compression
US6243496B1 (en) Data compression
JP3398483B2 (en) Video data compression device, video data decompression device, video data compression method, and video data decompression method
US5583952A (en) Method and apparatus for representing an image by iteratively synthesizing high and low frequency components
Ho et al. Classified transform coding of images using vector quantization
AU637020B2 (en) Improved image compression method and apparatus
US5748786A (en) Apparatus for compression using reversible embedded wavelets
US5909518A (en) System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
CA2121197C (en) Inverse discrete cosine transform processor
JP3868014B2 (en) Video signal encoding method and apparatus
WO1998056184A1 (en) Image compression system using block transforms and tree-type coefficient truncation
EP0905978A2 (en) An encoding method and apparatus
EP1110406A1 (en) Signal coding and decoding
EP0558183B1 (en) Apparatus for multiplexing digital luminance and chrominance data
WO1991010327A2 (en) Apparatus and method for quantizing and/or reconstructing multi-dimensional digital image signals
KR20040023606A (en) Method and apparatus for three-dimensional wavelet transform
GB2266635A (en) Image data compression
US6754433B2 (en) Image data recording and transmission
US6934420B1 (en) Wave image compression
Tran et al. An efficient pyramid image coding system
GB2263834A (en) Image data compression by sub-band coding and subsequent run-length coding
US6912070B1 (en) Sub-optimal variable length coding
Moayeri et al. Wavelet transform image coding using trellis coded vector quantization

Legal Events

Date Code Title Description
730A Proceeding under section 30 patents act 1977
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20110116