Abstract:
Methods and systems are provided for noise suppression in data, particularly data comprising video and/or audio data. An input adjustment, based on a corresponding input adjustment value, may be applied to received input data that comprises video and/or audio data; and an output adjustment, based on a corresponding output adjustment value, may be applied to output data corresponding to previously processed received input data. The input adjustment value may be re-calculated based on an outcome of applying the input adjustment to the received data, and when a change occurs in the input adjustment value the change in the input adjustment value may be applied to subsequent received input data, and at the same time, and based on the change in the input adjustment value, a corresponding change may be applied at least some of data corresponding to previously processed received input data.

Description:
PRIORITY INFORMATION 
       [0001]    This application claims priority from German patent application DE 10 2004 039 345.1, filed Aug. 12, 2004. 
       BACKGROUND OF THE INVENTION 
       [0002]    The invention relates in general to audio signal processing and in particular to a method and device for noise suppression in audio signal data processing. 
         [0003]    In the processing of signals (e.g., audio signals) in a data processing device, a problem often arises involving a quantization noise in an algorithm due to a limited word width, for example, a word width of 18 or 24-bits.  FIG. 6  illustrates a prior art data processing device  10  having a data input  12  for receiving data, a storage device  14  with storage locations for saving the received data as storage data, a data output  16  for providing output data from the storage device  14 , and a data processor  18  for processing the storage data. The device  10  may also include a scaling arrangement for scaling the received data with an entry scaling value. The data processor  18  may execute an algorithm that acts on the storage data. The data processing device  10  can be a simple delay element for transferring data values of a sequence of data with a time delay. 
         [0004]    The limited word width of 18 or 24-bits commonly used with such a data processing device  10  often produces quantization noise in an algorithm acting on the storage data. 
         [0005]    To reduce the noise, a data processing device may utilize a relatively larger word width. When using floating point numbers, each word includes a fixed-point portion and an exponent portion, which may require special hardware and a corresponding word width, since both the exponent portion and the fixed-point portion are operated on and saved. 
         [0006]    The influence of quantization noise may be problematical when using noise-amplifying. algorithms (e.g., digital filters) with low input levels. A scaling of the received input data or a corresponding back-scaling of output data from the storage device for better selection of the available word width can result in signal distortion. A time discrepancy may exist between the receipt of unsealed data values or those scaled with a different scaling value and put into the storage device, on the one hand, and the output of data values previously put into the storage device without scaling or storage data changed in scale for provision as output data. This time discrepancy between the input and output scaling values may be a problem. 
         [0007]    What is needed is a method and a device for noise suppression in a data processing system that are relatively easy to implement and utilize a relatively limited word width. 
       SUMMARY OF THE INVENTION 
       [0008]    A method of noise suppression in a data processing device that includes a storage device may include the steps where input data may be entered into a storage device and saved as storage data in respective storage locations, and the storage data may be output as output data from the storage device. The input data may be scaled with an input scaling value and the output data may be scaled with an output scaling value, and when the input scaling value may be altered the storage data in the storage locations may also be altered accordingly for noise suppression. 
         [0009]    A corresponding data processing device with a data input for receiving input data may also include a storage device with storage locations for saving the input data as storage data, a data output for providing the output data from the storage device, a data processor for processing the storage data and a scaling device for scaling the input data with an input scaling value to the input data being saved. The storage device and/or the scaling device, which may be used for noise suppression, may be configured and/or actuated such that the storage data in the storage locations may be changed in accordance with a change in the input scaling value. 
         [0010]    The method may have some or all of the storage data in the storage locations changed in accordance with a change in the input scaling value. Also, upon a change in the input scaling value by a change value, the storage data in the storage locations may also be changed with the same change value as the input scaling value. Further, upon a change in the input scaling value, the output scaling value may be changed accordingly, and upon a change in the input scaling value by the change value, the output scaling value may be changed with the same change value. 
         [0011]    The output scaling value be the inverse of the input scaling value. The input scaling value may be changed if a value of the input data goes above or below a threshold value. Also, the input scaling value may be changed if a predetermined number of the input data values of the input data and/or the input data values for a predetermined duration go above or below a threshold value, for example in averaged or weighted manner. Upon going above the threshold value, the input scaling value may be set at a predetermined value, for example, one. Further, upon going above or going below the threshold value, the input scaling value may be changed by a scaling step value as the change value. 
         [0012]    A change in the storage data may, for example, be carried out at the same time as a change in the input scaling value. Further, a change in the output scaling value may, for example, be carried out at the same time as a change in the input scaling value. 
         [0013]    The input data may include audio and/or video data. Accordingly, the data processor may be an audio and/or video data processor. 
         [0014]    These and other objects, features and advantages of the present invention will become more apparent in light of the following detailed description of preferred embodiments thereof, as illustrated in the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  is a block diagram illustration of a data processing device; 
           [0016]      FIG. 2  is a flowchart illustration of a noise suppression technique that may be executed in the data processing device of  FIG. 1 ; 
           [0017]      FIG. 3  is a flowchart illustration of a first subroutine of the noise suppression technique illustration in  FIG. 2 ; 
           [0018]      FIG. 4  is a flowchart illustration of a second subroutine of the noise suppression technique illustrated in  FIG. 2 ; 
           [0019]      FIGS. 5A-5B  are time plots of two signals in the operation of the method and device of  FIGS. 1-4 ; and 
           [0020]      FIG. 6  is a block diagram illustration of a prior art data processing device. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0021]      FIG. 1  is a block diagram illustration of a data processing device  30 . The term “device” May be construed broadly such that besides a complex device according to the type of circuit arrangement with a plurality of individual components or according to the type of an integrated layout with a plurality of integrated circuit components, the term “device” may also be understood to refer to individual components. In one simple case, for example, the device  30  may be a delay element into which data are entered and then output with a time delay. A conversion may also be possible as a method, computer algorithm or control algorithm. A data processor  32  as part of such a device  30  or a corresponding method can likewise involve an independent component, an independent control program or a complex algorithm, or a relatively simple configuration such as a delay element. 
         [0022]    The data processing device  30  may include a data input  34  for receiving input data on a signal line  36 . The input data on the line  36  can be individual data values from a sequence of data, for example, but also may be a plurality of grouped data values, which may form one or more words. The input data may be data values of an audio and/or video signal. The input data on the line  36  input to a first multiplier  38 . The first multiplier  38  also receives an input scaling value on a line  40 . The first multiplier  38  multiplies the input data value with a particular input scaling value. The product of the multiplication is output on a line  42  to a storage device  44 . The output of the first multiplier  38  on the line  42  may also be input to a scaling device  46 . 
         [0023]    Depending on the configuration, the data signal lines  36 ,  40 ,  42  may be individual lines or bundles of lines, for example, a data bus. In the case of a data bus, the first multiplier  38  may be formed from a corresponding plurality of individual first multipliers. 
         [0024]    The scaling device  46  may calculate the input scaling value provided on the line  40  in accordance with the presented value of the scaled input data on the line  42  or in accordance with a sequence of individual values of the scaled input data on the line  42 . Alternative arrangements are possible in which the input data on the line  36  instead of the scaled input data on the line  42  are presented to the scaling device  46 . 
         [0025]    The scaled input data on the line  42  may be saved in the storage device  44 , depending on the particular arrangement and functionality, in a plurality of storage locations; Depending on the configuration, the storage device  44  may be connected to the data processor  32 . The data processor  32  can be configured as an integrated component of the storage device  44 , as an independent subassembly, or as an interface for software access. In the case of a delay element, the data processor  32  may perform a time-delayed output of a value of the scaled input data on the line  42  entered into the storage device  44 . 
         [0026]    The storage device  44  provides an output to a second multiplier  48 , which multiplies the output data from the storage device with an output scaling value on a signal line  50 . The output scaling value on the line  50  may correspond to an inverse value of the input scaling value on the line  40 . The output of the second multiplier  48  is provided on an output signal line  52 . 
         [0027]    The storage device  44  and/or the scaling device  46  may be configured and/or actuated such that the storage data in some or all of the storage locations may be changed in accordance with a change in the input scaling value on the line  40 . As such, the storage device  44  may receive a scaling input on a line  56  from the scaling device  46 . 
         [0028]    The scaling device  46  may provide the single change value on the line  56 , with which both the input scaling value on the line  40  and the storage data in the storage locations may be multiplied. The multiplication may occur at the same time, for example within a single system clock cycle. This way, the storage data stored at that moment in the storage device  44  may be altered with the same change value on the line  56  as the input scaling value on the line  40 . Thus, there may be a uniform scaling for the storage data located in the storage device  44  and the scaled input data on the line  42  subsequently presented to the storage device  44 . 
         [0029]    At the same time as the change in the input scaling value on the line  40 , a corresponding change in the output scaling value on the line  50  may also occur by dividing the output scaling value on the line  50  by the change value on the line  56  or by determining the inverse of the changed input scaling value on the line  40 . This way, a back-scaling of the storage data may occur after being output from the storage device  44 . 
         [0030]    In an alternative embodiment, a partial scaling of the storage data in the storage device  44  at the same time as the change in the input scaling value on the line  40  may also be possible. For example, if the storage data presented at that moment at the output of the storage device  44  are to be scaled with the original output scaling value on the line  50 , the output scaling value on the line  50  may be changed accordingly at a later time. 
         [0031]    The scaling device  46  and the data processor  32  can be configured as a single component, or as a single algorithm. 
         [0032]    Referring to the flowchart of  FIG. 2 , a noise suppression method may be implemented in the data processing device  30  of  FIG. 1 . The method may have the effect such that the input data on the line  36  may be scaled with the input scaling value on the line  40  so that the scaled input data on the line  42  have a desired selection within the storage device  44 . After the storage device  44 , the output data may be scaled back again using the output scaling value on the line  50 , for example the output data may be decreased so that output data once again have the original signal level. To avoid disturbances from the scaling of the data without a distortion of the signal or the data sequence, a simultaneous scaling of the relevant data values may be provided. That is, at the same time as a changing of the input scaling value on the line  40  or the output scaling value on the line  50 , all of the storage data in the storage device  44  may also be scaled accordingly. Since the storage data in the storage device  44  may have already been scaled, the storage data may be scaled with the change value on the line  56  which may be similar to the input scaling value on the line  40 . This procedure may be used in conjunction with linear algorithms. 
         [0033]    According to the flowchart of  FIG. 2 , various parameter values may be assigned in step  60 . For a sequence of discrete gain factors, a range of 1 to 8 may be assigned, i.e., for example, the gain factor being used may be set in a range of 1 to 8, in particular for example corresponding to the values 1, 2, 4, 8. This may correspond, for example, to a gain in the range of from 0 to 18 dB. Also, an adjustment may be made to a signal level P, which is set for example at −6 dB. This corresponds to a reserve range (headroom) of 6 dB. A hysteresis value H may be set, for example, at −2 dB. As the change value on the line  56  or, in particular, the scaling step value on the line  56 , it may be specified, for example, that the change value used from one cycle of the flowchart to another may be set at two. Besides considering individual values of the scaled input data on the line  42  each time, a procedure may be executed where a time sequence or a number of consecutive data values of the scaled input data on the line  42  are considered and weighted or averaged to institute a change in the scaling. For example, a predetermined duration or period of the cycle may be set at 80 ms. Furthermore, pre-settings of the scaling values may be used, or the input scaling value on the line  40  may be free of scaling at the start such that the input scaling value on the line  40  equals one. The output scaling value on the line  50  may be set accordingly, for example as the inverse of the input scaling value on the line  40 . 
         [0034]    In a second step  62  of the process, one or more scaled input data on the line  42  are entered in the storage device  44 . A check may be made in separate steps  64 ,  66  (described in more detail hereinafter in  FIGS. 3-4 ) whether the current value of the scaled input data on the line  42  or a sequence of values of the scaled input data on the line  42  are in a particular relation to a threshold value, for example above and/or below the threshold value. It may also be possible to use various threshold values to detect overshoot or undershoot. In particular, single value considerations are also possible for the case of an overdriving, in contrast with consideration of a plurality of values for underdriving or other deviations in the level of the scaled input data on the line  42 . A subsequent test  68  checks whether any additional scaled input data on the line  42  are present. If there are additional scaled input data, the process reverts back to the step  62  for scaled input of the additional entry data on the line  42  into the storage device  44 . Otherwise, the process may be ended in a step  70 . 
         [0035]      FIG. 3  is a flowchart for the step  64  of the flowchart of  FIG. 2 . In a first step  72 , there may be a check, for example, as to whether the value of the scaled input data on the line  42  most recently entered is greater than a threshold value, using as the threshold value the value of the signal level P of −6 dB. This step  72  may also check whether the scaled input scaling value on the line  40  is greater than one, i.e., whether an amplifying scaling of the scaled input data on the line  36  is to be performed. 
         [0036]    If both of these checks in the step  72  are negative, the step  64  may be ended. If both of these checks are positive, the input scaling value on the line  40  may be reset in a step  74  at a lower-value, for example, at one. The value of one may avoid overdriving, at the expense of subsequent underdriving in the event that the overdriving was only slight. As an alternative, various types of reduction in the size of the input scaling value on the line  40  can be used, depending on different threshold values, to achieve a gradual reduction of the input scaling value on the line  40 . Furthermore, in this step  74  the storage data at the storage locations in the storage device  44  may each be multiplied with the particular output scaling value on the line  50 , so that the scaling performed may be reversed. Also, in this step  74  the output scaling value on the line  50  may be reset, for example, as the inverse of the input scaling value on the line  40 . 
         [0037]    Alternatively, the input scaling value on the line  40  and the storage data at the storage locations in the storage device  44  may each be multiplied with the change value on the line  56 , and the output scaling value on the line  50  may again be changed to the inverse of the input scaling value on the line  40 . 
         [0038]      FIG. 4  is a flowchart of the sample step  66  of the flowchart of  FIG. 2 . In a first step  76 , the scaled input data on the line  42  may be compared with a threshold value for a period of time, for example, the signal level P of −6 dB minus the hysteresis value H of −2 dB. If all values during this period of time are less than the result of the comparison, and if the input scaling value on the line  40  is smaller than the maximum gain value of 8, then a change may be made to the scaling values in a step  78 . At the same time, the input scaling value on the line  40  and the storage data in the storage locations may be multiplied with the change value on the line  56 . Also, the output scaling value on the line  50  may be made the inverse of the updated entry scaling value on the line  40 . After this step  78 , or in the event of a negative result in the step  76 , this step  66  may be ended. 
         [0039]      FIG. 5A  illustrates a time plot of an amplitude of the input data on the line  36  as represented by the curve  80 , and of the scaled input data on the line  42  as represented by the curve  82  is a time plot of the input scaling value on the line  40  as represented by the curve  84 , and of the output scaling value on the line  50  as represented by the curve  86 . Consecutive time cycles are illustrated, each one of duration T, which may be used for example according to the step  66  in the flowcharts of  FIGS. 2 and 4  for controlling the scaling values. 
         [0040]    In a first time interval ending at  0 T, the amplitude of the curve  80  of the input data on the line  36  fluctuates above the value of the signal level P of −6 dB, so that the curve  84  of the input scaling value on the line  40  may be set equal to one, that is, no amplification is performed. Accordingly, the input data on the line  42  stored in the storage device  44  may equal the input input data on the line  36 . At a later time interval beginning at time  0 T, there may be a reduction in the amplitude of the input data on the line  36  and thus a corresponding reduction of the input data on the line  42  below the value of the level P-H of −8 dB, set as the threshold value. 
         [0041]    After the amplitudes remain for a cycle duration T (until time  1 T) lower than the threshold value of −8 dB, a change then be may made to the change value on the line  56  for the scaling. The prior input scaling value on the line  40  of one may now be doubled as illustrated by the curve  84 , since the change value used may be a scaling step value with a magnitude of two. Also, a corresponding multiplication of the current storage data with the change value on the line  56  and a resetting of the output scaling value on the line  50  to the inverse of the input scaling value on the line  40  (i.e., to 0.5 as illustrated by the curve  86 ) may occur. The amplitude of the scaled input data on the line  42  thereby increases to a higher value as illustrated by the curve  82 , although still lying beneath the threshold value of −8 dB. The threshold value may be determined for example from the sum of the value of the signal level P of −6 dB and the hysteresis value H of −2 dB. 
         [0042]    After another time period of T ending at time  2 T, a change may occur in the scaling where the input scaling value on the line  40  may be doubled to an amplification of four as illustrated by the curve  84 . The storage data in the storage device  44  at that time may be multiplied with the change value on the line  56 . The output scaling value on the line  50  may again be set to the inverse of the input scaling value on the line  40  and correspondingly becomes equal to 0.25 as illustrated by the curve  86 . This increases the amplitude of the scaled input data on the line  42  as illustrated by the curve  82 , even though the input data on the line  36  may still be at a relatively low level. 
         [0043]    For the duration of a following cycle T until time  3 T, the scaled input data on the line  42  lie above the threshold value of −8 dB due to the scaling as illustrated by the curve  82 . A reduction or cancellation of the scaling may then take place in the period of time T following time  3 T, either by an immediate resetting of both of the scaling values to one, as illustrated by the curves  84 ,  86 , or by a gradual reducing of both of the scaling values. 
         [0044]    The method of noise suppression and the corresponding device may offer benefits. For example, due to the simultaneous scaling of the scaling factors and the immediate memory contents, there may be no disturbance of the signal or the data sequence. The signal-to-noise ratio of the device may be advantageously increased by amplification, as described herein, by 18 dB. Advantageously, only one variable may be needed for an exponent. Such a method and device may be useful for audio algorithms. Fixed-point processors can also advantageously be used for implementation. The computational expense can be specified by the changing of the scaling values after a particular duration or period of time, so that the computational expense may occur once per cycle. 
         [0045]    Although the present invention has been illustrated and described with respect to several preferred embodiments thereof, various changes, omissions and additions to the form and detail thereof, may be made therein, without departing from the spirit and scope of the invention.