Abstract:
A data compression system can operate in a number of different configurations, and wherein the bit rate produced by a given configuration can be controlled over some finite range by a control signal from a rate controller for smoothly transitioning between the configurations so that discontinuous jumps in bit rate and distortion are minimized is provided by determining thresholds on the feedback control signals, the thresholds being used to determine when to switch in or out of each configuration; the thresholds furthermore being determined from the intersection points of the rate distortion curves for the available configurations.

Description:
This invention was made with Government support under contract number FA7056-92-C-0020 awarded by the Department of Defense. The Government has certain rights in this invention. 
    
    
     The disclosure in the appendix contains material to which a claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction of any one of the patent documents or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but reserves all other rights whatsoever. 
     FIELD OF THE INVENTION 
     The present invention relates to digital information processing and more particularly to data compression. Specifically, the invention deals with controlling to a fixed rate the output of a variable rate data compression module that is capable of operating in a number of different configurations, where the bit rate for each configuration may be controlled over some finite range by a control signal supplied by a rate controller. 
     BACKGROUND OF THE INVENTION 
     Data compression techniques are useful for reducing the number of bits that must be stored or transmitted when archiving or transmitting a digital data stream. If the number of bits per source symbol generated by the compression technique is a constant, then the technique is said to be fixed rate. Conversely, if the number of bits per source symbol generated varies throughout the compression, then the technique is said to be variable rate. Generally, variable rate techniques will employ a variable length entropy coding scheme such as Huffman coding to encode the source .symbols, resulting in lower distortion of the data when compared to a fixed rate technique at the same rate. Therefore, from an overall performance standpoint, it is generally advantageous to use a variable rate data compression scheme. However, in many applications the transmission channel is a fixed rate link, which means that a method of coupling the output of the variable rate data compression module into the fixed rate channel is required. 
     The concept of controlling the output rate of a variable rate data compression technique that operates in a single configuration is well known in the prior art, as is noted in U.S. Pat. No. 4,093,962 issued Jun. 6, 1978 to Ishiguro, et al. A configuration is defined as a single set of operating parameters under which a compression technique functions. As shown in FIG. 1, a compression module 10 receives digital data from a source 12 and outputs digital data at a variable rate. A rate buffer 14 includes a memory which is filled at a variable rate by the output data from the compression module and emptied at a fixed rate by a transmission channel 16. The transmission channel then transmits the compressed data to a receiver where it is processed by a decompression module 18. The fill conditions of the rate buffer are monitored by a rate controller 20, which feeds a control signal S on line 22 back to the compression module, modifying its output bit rate. If the average output bit rate from the compression module is greater than the channel transmission rate, then the buffer will begin to fill with the excess data. The rate controller senses this, and modifies the control signal S so that the compression module reduces the average output bit rate. If the average output bit rate from the compression module is less than the channel transmission rate, then the rate controller modifies the control signal S so that the compression module increases the average output bit rate. 
     For a given source, the overall performance of the compression technique can be characterized by a rate distortion curve 24, as shown in FIG. 2. In this figure, the output bit rate of the compression module is plotted on the horizontal axis, and the distortion introduced by the compression process is plotted on the vertical axis. The distortion may be calculated via a number of different metrics that compare the overall difference between the digital data entering the compression module 12 to the digital data after it has undergone the subsequent decompression 18. One such distortion metric is the root mean squared error (RMSE). It should be noted that the rate distortion curve shown in FIG. 2 is an average curve that best approximates the cloud of points that characterize the performance of a compression technique. For a rate controlled compression technique, the value of the control signal S is correlated with the bit rate and signal distortion that the compression technique delivers, and hence defines the point on the rate distortion curve where the compression technique will perform. Hence, the value of the control signal S parameterizes the rate distortion function for the compression technique. As the data from the source is being processed by the compression module, the performance point will change position, and slide roughly along the rate distortion curve as the statistics of the input data vary. The task of the rate controller is to smooth out the variations, and keep the performance point as close to the transmission rate R T  indicated by dashed line 26 in FIG. 2, as possible. 
     If a certain compression technique is applied to data from different sources and the sources have statistically different properties, then the compression technique will generally exhibit a different rate distortion curve for each source, as shown in FIG. 3. Rate controlling the compression technique so that the output bit rate hovers near the transmission rate R T  as shown by dashed line 28 in FIG. 3, is well known in the prior art. 
     However, more advanced compression techniques will often contain several distinct operating configurations, each of which is designed to achieve a certain average bit rate or distortion level. Thus, a given source, each configuration of a more advanced compression technique will have a different rate distortion curve, as shown in FIG. 4. Generally, the rate distortion curves for the different configurations will overlap, allowing the compression technique to operate over a wide range of bit rates by switching between the available configurations. As before, when the more advanced compression technique is applied to statistically different sources, the result is different sets of rate distortion curves as shown in FIG. 5. In FIG. 5, the set of rate distortion curves for a first source (source 1) are represented by the thick lines, and the set for the second source (source 2) are represented by thin lines. 
     The task of the rate controller in a more advanced compression technique with multiple configurations now becomes more complex, as the rate controller must determine when it is appropriate to switch between the available configurations as well as modulate the bit rate within a given configuration. Such a rate control method is described in U.S. Pat. No. 4,897,855 issued Jan. 30, 1990 to Acampora. This patent describes a rate controlled DPCM compression scheme that adaptively changes the quantizer (i.e., changes configuration), as indicated by the signal C in FIG. 1, based on the fill percent and fill rate of the rate buffer. Each quantizer can be considered to be a different configuration of the compression scheme. Thus, the compression scheme has multiple configurations, each of which will produce a different rate distortion curve, as shown in FIG. 4. Switching between these configurations based on the fill conditions of the buffer is effective at controlling the rate, but is not optimal from a rate distortion standpoint due to the fact that different sources will produce different sets of rate distortion curves, as shown in FIG. 5. For example, in FIG. 5, a correct change from configuration 0 to configuration 1 will be made for source 2 if the bit rate increases to R 0 , but the same configuration change at R 0  will be incorrect for source 1, resulting in a discontinuous jump in output signal quality and bit rate. This is disadvantageous, as discontinuous jumps in the bit rate will make the process more difficult to control, and discontinuous jumps in the reconstructed signal quality are undesirable. The optimal time to switch from configuration 0 to configuration 1 for source 1 would be when the bit rate reaches R 1 . Therefore, changing configurations based on the bit rate (buffer fill conditions) solely will not accomplish this optimal transition, because the transition points R 0  and R 1  will change location depending on the source. This problem has not been recognized or addressed in the prior art. 
     SUMMARY OF THE INVENTION 
     The above noted problem is solved according to the present invention by providing a data compression system that can operate in a number of different configurations, and wherein the bit rate produced by a given configuration can be controlled over some finite range by a control signal from a rate controller for smoothly transitioning between the configurations so that discontinuous jumps in bit rate and distortion are minimized. This is accomplished by determining thresholds on the feedback control signals, the thresholds being used to determine when to switch in or out of each configuration; the thresholds furthermore being determined from the intersection points of the rate distortion curves for the available configurations. This is an improvement over the prior art because the intersection points of the rate distortion curves for the different configurations will change location based on the statistics of the source signal, but the value of the feedback control signals that corresponds to the intersection location(s) remains relatively constant regardless of the statistics of the source signal. Thus, switching configurations based on the value of the feedback control signals assures that there are no undesirable jumps in bit rate or distortion of the reconstructed signal. 
     The major advantages of this are twofold: first, since the output bit rate of the compression technique now varies smoothly across the mode transition boundary, then the controllability of the compression technique is increased. Secondly, the distortion level also varies smoothly across the mode transition boundary, so the configuration transition is not perceived as a discontinuous jump in the quality of the reconstructed signal. This provides a significant advantage when the source is image data, as the human observer will not detect the configuration transition as a quality change in the reconstructed image. 
     Since the invention switches between configurations based on the value of the control signal and not the buffer fill conditions, then a special contingency configuration is needed to guarantee against buffer overflow. This contingency configuration is triggered directly from the buffer fill conditions, and supersedes the configuration selection of the rate controller in the event of an imminent buffer overflow or underflow. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing a variable rate compression technique, including a rate buffer and rate controller; 
     FIG. 2 is a graph showing a rate distortion curve for a compression technique that operates in a single mode; 
     FIG. 3 is a graph showing rate distortion performance curves for a typical variable rate compression technique that is applied to statistically different sources; 
     FIG. 4 is a graph showing rate distortion performance curves for a more complex compression technique that can operate in several distinct configurations; 
     FIG. 5 is a graph showing rate distortion curves for an advanced compression technique with multiple configurations that is applied to statistically different sources; 
     FIG. 6 is a block diagram showing the logic flow of a rate controller according to the present invention; 
     FIG. 7 is a block diagram showing a DPCM compression module useful with the present invention; 
     Table 1 shows a table of minimum and maximum thresholds on the control signal for each mode. These thresholds are used to determine when the compression module needs to change configurations. 
     Table 2 shows a table of multipliers that are used to keep the performance point at the same location in rate distortion space when making a configuration change. This table is populated by data that is determined from the intersection points of the rate distortion curves for the individual configurations. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring again to FIG. 1, an apparatus for controlling the rate of a variable rate compression technique according to the present invention will be described. The compression module 10 receives digital data from a source 12 and outputs digital data at a variable rate into a rate buffer 14. A channel 16 empties the rate buffer at a fixed rate for transmission. A rate controller 20 monitors the fill conditions of the rate buffer 14 and creates a control signal S, on line 22 and a configuration select signal C, on line 23 which are fed back to the compression module 10. The compression module 10 is responsive to the signals generated by the rate controller 20, to change its compression rate. The rate controller 20 controls the rate of the compression module 10 to match the channel transmission rate of channel 16. 
     The compression module 10 possesses N discrete operating configurations, each of which possesses a unique rate distortion curve, as shown in FIG. 4. The configurations are numbered from 1, which is the minimum rate/maximum distortion configuration, to N-1, which is the maximum rate/minimum distortion configuration. Configuration 0 is reserved to indicate a special danger configuration, which is selected based solely on the buffer fill fraction, and is only used when the buffer is in imminent danger of overflowing. The danger configuration is designed so that the maximum bit rate generated by the compression module will not exceed the transmission rate of channel 16, thereby preventing the rate buffer from overflowing. 
     When operating in a given configuration, the performance of the compression module is characterized by a point on the rate distortion curve for the configuration. For example, consider a compression algorithm operating in configuration 2 and compressing data with an output rate of R 0  and reconstructed signal distortion D 0 , both of which may be measured directly by the rate controller and/or compression module, or estimated from the buffer fill conditions. This performance is indicated by point 41 in FIG. 4. As the compression module processes data from the source 12, and as the statistics of the source change, the positions of the rate distortion curves shift with respect to the axes of the diagram (and the transmission rate, R T ). As the statistics of the source signal fluctuate, the positions of the individual rate distortion curves remain relatively constant with respect to each other. As noted earlier, this phenomenon is not discussed in the prior art, and none of the prior art algorithms for rate control employ knowledge of this phenomenon to control compression rate of a compression module. 
     The shifting of the rate distortion curves in turn causes the performance point 41 to fluctuate and deviate from the desired transmission rate R T . The rate controller adaptively changes the value of the control signal S in response to the rate buffer fill conditions according to a governing equation called the rate control law, which tends to pull the performance point 41 from its current position towards the desired position 42 defined by the channel transmission rate. Note that for the purpose of describing the present invention, the particular compression scheme utilized in the compression module 10 is not material--it is required only that the compression module 10 possess multiple configurations, and that the output bit rate within each configuration is controllable over some finite range by a control signal from the rate controller 20. 
     To achieve the optimal rate distortion performance, it is desirable to minimize both the output bit rate and reconstructed signal distortion. By examining FIG. 4, we can see that this is achieved by selecting the configuration that delivers the lowest distortion at the current output bit rate. To this end, it is desirable to change the operating configuration of the compression module when the rate distortion performance point reaches an intersection point 43 (or 44) of the current rate distortion curve and the rate distortion curve for the next higher (or lower) configuration. As discussed earlier, this is accomplished in the prior art by switching the configuration based on the buffer fill conditions, which is not optimal for sources with different statistical properties. As noted above, the intersection points of the rate distortion curves for the different configurations will change position in rate distortion space when compressing data from sources that have different statistical properties, but the position of the intersection points of the rate distortion curves do not change place with respect to the value of the control signal. Thus, according to the present invention, the control signal itself is used as a indicator of when to change configurations, rather than the buffer fill conditions. 
     This is accomplished by determining a minimum and a maximum value of the control signal for each configuration from the intersection points of the rate distortion curves, which may be determined experimentally or theoretically. The threshold values are then stored in a table as shown in Table 1: 
     
                       TABLE 1______________________________________Configuration       0        1         . . .                               N-1______________________________________SMIN        SMIN.sub.0                SMIN.sub.1                          . . .                               SMIN.sub.N-1SMAX        SMAX.sub.0                SMAX.sub.1                          . . .                               SMAX.sub.N-1______________________________________ 
    
     If the value of the control signal becomes less than the minimum value or greater than the maximum value, then the rate controller changes the configuration appropriately by changing the value of the configuration select signal C to correspond to the new configuration. Coincident with the configuration change, the rate controller changes the value of the control signals so that the performance point of the compression technique remains at the intersection point of the rate distortion curves of the old and new configurations after the configuration change. This is performed by multiplying the current value of the control signal by a value g(i,j), shown in Table 2: 
     
                       TABLE 2______________________________________NEW CONFIGURATION #______________________________________ 0         1         2       . . .                                  N - 10     1         g(0,1)    g(0,2)  . . .                                  g(0,N - 1)1     g(1,0)    1         g(1,2)  . . .                                  g(1,N - 1)2     g(2,0)    g(2,1)    1            g(2,N - 1).     .         .                 ..     .         .                  ..     .         .                    .N - 1 g(N - 1,0)           g(N - 1,1)                     g(N - 1,2)   1where: ##STR1##______________________________________ 
    
     This ensures that the configuration change will not create discontinuous jumps in the rate or distortion level of the reconstructed signal, which is advantageous over the methods described in the prior art. 
     A flowchart outlining the steps in the rate control process is shown in FIG. 6, which proceeds as follows: 
     (1) The compression module 10 processes the kth block of data, and outputs the compressed data into the rate buffer 14, step (46). 
     (2) The rate controller 20 measures the buffer fill fraction (P k , 0≦P k  ≦1), and stores n previous buffer fill fractions from P k-n  to P k . If k&lt;n, then P k-n  =P k-n+1  =. . . =P 0  =0.5 step (48). 
     (3) The buffer fill fraction P k  is compared to a danger configuration entrance threshold D in  (50). If P k  &gt;D in , then the rate buffer is in danger of imminent overflow. To guard against this, the new value of the configuration select signal (C k+1 ) is set to 0 (52), which instructs the compression module to enter the special danger configuration that prevents the buffer from overflowing. The control signal S k+1  is set equal to an appropriate value (S danger ) for the danger configuration (54), and the compression module processes the next block of data. 
     (4) To prevent possible oscillation of the configuration in and out of the danger configuration, a separate threshold (D out ) is used determine when to switch out of the danger configuration. Thus, if P k  &gt;D out  and the current configuration (C k ) is 0 (danger), then C k+1  is set to 0 (52), and the compression module remains in the danger configuration. If P k  &lt;D out  (54) and C=0 (54), then the control signal S k+1  is set to S k  (58) and C k+1  is set to the minimum of 1+C k  and N-1 (60)/When C k  =0, this will be equal to 1, which is the configuration closest in performance to the danger configuration. 
     (5) If C k  is not 0, then S k+1  is computed from a function of the m+1 previous control signal values, S k , S k-1 , . . . , S k-m , and the n+1 previous buffer fill fractions, P k , P k-1 , . . . , P k-n  (62). This governing equation is called the rate control law. 
     (6) The control signal S k+1  is compared to the upper control signal threshold for the current configuration, Smax(C k ) (64). If S k+1  &gt;Smax(C k ), then the configuration is incremented by 1 and clipped at the number of available configurations which is N-1 (C k+1  =MIN(C k  +1,N)) (60). Recall that the higher configurations are for higher rate/lower distortion performance than the lower configurations. 
     (7) If the control signal S k+1  is less than the lower control signal threshold for the current configuration, Smin(C k ) (66), then the configuration is decremented by 1 and clipped at configuration 1, which is the lowest available (C k+1  =MAX(C k  -1,1) (68). 
     (8) If Smin(C k )&lt;S k+1  &lt;Smax(C k ), then the configuration is not changed (70). 
     (9) Finally, S k+1  is multiplied by a configuration change scaler, g (C k+1 , C k ) (72). This has the function of modifying the value of S k+1  so that the performance point of the compression module remains relatively constant upon a configuration change. g(C k+1 , C k )=Smin(C k+1 )/Smax(C k ) if C k+1  &gt;C k , and g(C k+1 , C k )=Smax(C k+1 )/Smin(C k ) if C k+1  &lt;C k . Also, g(C k+1 , C k )=1 if C k+1  =C k . 
     A rate controller according to the present invention is useful for controlling the differential pulse code modulation (DPCM) compression technique, described in co-pending U.S. patent application Ser. No. 08/410,462, entitled &#34;A Method For Adaptively Compressing Residual Digital Image Data in a DPCM Compression System&#34; by Bhavan R. Gandhi et al. In a preferred embodiment, the rate controller is a microprocessor which has been programmed with the logic flow of FIG. 6. A first feedback signal S (control signal) and a second feedback signal C (configuration select signal) are communicated to an application specific integrated circuit (ASIC) which is programmed with the logic of the compression scheme outlined in the co-pending patent application. The output of the compression module ASIC is fed into a memory circuit which serves as a rate buffer. The fill conditions of the rate buffer memory are then monitored by the rate controller, which closes the loop. The co-pending patent application describes a DPCM compression scheme which possesses multiple configurations, each of which is defined by a set of quantizers. 
     The DPCM compression module includes a predictor 74 that receives data from the source and predicts the value of the source signal. The differences between the predicted value and the actual value, called prediction errors, are taken in a subtractor 76. 
     The prediction errors are multiplied by the control signal S from the rate controller in multiplier 78 prior to quantization in quantizer 80. 
     Quantizer 80 is responsive to the configuration select signal C to select one of the multiple quantizer configuration Q . . . Q n . The quantized prediction error signals are encoded in an encoder and sent to the rate buffer. 
     In this way, increasing the value of the control signal S will increase the value of the prediction errors, which will result in a higher bit rate due to the longer codewords that are used to encode the larger errors. Similarly, decreasing the value of the control signal will reduce the bit rate due to the shorter codewords that are used to encode smaller errors. Thus, the rate controller can control the bit rate within a given configuration by varying the value of the control signal S. The quantizer configuration is also selected by the rate controller and is changed by modifying the value of the configuration select signal C. The rate controller determines when it is necessary to change the configuration based on rate distortion data which is collected for each configuration as part of a training process. The training process involves processing data from representative sources with the compression module, measuring the position of the intersection points of the rate distortion curves for the different configurations of the compression module, and using the measured points to determine the values of the table entries for Tables 1 and 2. The value of the control signal and configuration select signal are then encoded into the bitstream as overhead, and transmitted for use in the decoder. 
     This invention has been described with reference to a preferred embodiment. However, it will be appreciated that variations and modification can be effected by a person of ordinary skill in the art without departing from the scope of the invention. 
     A program written in the C programing language for programing a microprocessor having a UNIX based operating system is attached hereto as Appendix A. ##SPC1##