EP0574523B1 - Sprachkodierer mit veränderlicher bitrate - Google Patents

Sprachkodierer mit veränderlicher bitrate Download PDF

Info

Publication number
EP0574523B1
EP0574523B1 EP92908518A EP92908518A EP0574523B1 EP 0574523 B1 EP0574523 B1 EP 0574523B1 EP 92908518 A EP92908518 A EP 92908518A EP 92908518 A EP92908518 A EP 92908518A EP 0574523 B1 EP0574523 B1 EP 0574523B1
Authority
EP
European Patent Office
Prior art keywords
sample
samples
signal
distortion value
estimate
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.)
Expired - Lifetime
Application number
EP92908518A
Other languages
English (en)
French (fr)
Other versions
EP0574523A4 (de
EP0574523A1 (de
Inventor
Antony L. Crossman
Edmund S. Thompson
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.)
Polycom Inc
Original Assignee
Picturetel Corp
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 Picturetel Corp filed Critical Picturetel Corp
Publication of EP0574523A1 publication Critical patent/EP0574523A1/de
Publication of EP0574523A4 publication Critical patent/EP0574523A4/de
Application granted granted Critical
Publication of EP0574523B1 publication Critical patent/EP0574523B1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding

Definitions

  • the invention relates generally to communicating voice and video information over a channel having a fixed capacity, such as a telephone communication channel.
  • Video conferencing systems typically transmit both voice and video information over the same channel. A portion of the channel's bandwidth is typically dedicated to voice information and the remaining bandwidth is allocated to video information.
  • the amount of video and voice information varies with time. For example, at certain moments in time, a person at one end of the system may be silent. Thus, if the system includes a variable capacity voice encoder, little information needs to be transmitted during such moments of silence.
  • the video signal may have little or no change between frames as, for example, when all objects within the field of view are still. If the system includes a variable capacity video encoder, little information needs to be transmitted during such moments of inactivity. At the other extreme, during times of great activity, the amount of video information may exceed the channel capacity allocated to video information. Accordingly, the system transmits as much video information as possible, discarding the remainder.
  • the video encoder accords priority to the most noticeable features of the video signal.
  • high priority information is transmitted first and the less noticeable low priority information is temporarily discarded if the channel lacks sufficient capacity. Accordingly, it is desirable to have available as much video bandwidth as possible.
  • US-A-4949383 discloses a bit allocation method in which bits are allocated to channels of a sub-band coder or to the coefficients of a transformer coder using a fixed number of bits. Only the selection of the channels to which the available bits are assigned is varied. Thus, different frequency bands can be encoded separately and differently.
  • US-A-4965830 (Burham et al) discloses a bit allocation method attempting to maintain a predetermined average quantization distortion level.
  • EP-A-309974 discloses a method for communicating a digital signal, in which data compression is obtained by encoding the sufficiently large samples of the signal, and then encoding a residual signal.
  • the invention relates to a method and apparatus for allocating transmission bits for use in transmitting samples of a digital signal.
  • An aggregate allowable quantization distortion value is selected representing an allowable quantization distortion error for a frame of samples of the digital signal.
  • a set of samples are selected from the frame of samples such that a plurality of the selected samples are greater than a noise threshold.
  • a sample quantization distortion value is computed which represents an allowable quantization distortion error for the sample. The sum of all sample quantization distortion values is approximately equal to the aggregate allowable quantization distortion value.
  • a quantization step size is selected which yields a quantization distortion error approximately equal to the sample's corresponding quantization distortion value. Each sample is then quantized using its quantization step size.
  • the digital signal includes a noise component and a signal component.
  • a signal index is prepared representing, for at least one sample of the frame, the magnitude of the signal component relative to the magnitude of the noise component.
  • the aggregate allowable quantization distortion is selected based on the signal index.
  • the sample quantization distortion value is computed by dividing the aggregate allowable quantization distortion value by a number of samples in the frame of samples to form a first sample distortion value.
  • a tentative set of samples of the digital signal is selected wherein each sample of the tentative set is greater than a noise threshold determined at least in part by the value of the first sample distortion value.
  • the first sample distortion value is then adjusted by an amount determined by the difference between the first sample distortion value and at least one sample excluded from the tentative set (i.e, a "noisy sample").
  • the process is repeated to identify any noisy samples of the tentative set; remove the noisy samples, if any, from the tentative set; and again adjust the first sample distortion value by an amount determined by the difference between the first sample distortion value and a noisy sample.
  • the process is repeated until an adjusted first sample distortion value is reached for which no additional noisy samples of the tentative set are found or until the process has been repeated a maximum number of times.
  • the number of bits required to transmit all samples of the tentative set is estimated.
  • the estimated bit number is compared to a maximum bit number. If the estimated bit number is less than or equal to the maximum bit number, a final noise threshold is selected based on the adjusted first sample distortion value.
  • a second sample distortion value is prepared.
  • a second tentative set of samples of the digital signal is then selected wherein each of a plurality of samples of the second tentative set have a magnitude above the second sample distortion value.
  • the number of bits required to transmit all samples of the second tentative set is then estimated.
  • the estimated bit number is compared to the maximum bit number. If it is greater than the maximum bit number, the second sample distortion value is increased and the second tentative set of samples is re-selected based on the adjusted second sample distribution value.
  • the number of bits required to transmit the second tentative set is again estimated. This process is repeated until a second sample distortion value is reached for which the estimated bit number is less than or equal to the maximum bit number.
  • the sample distortion value is then calculated from the adjusted first sample distortion value and the second sample distortion value.
  • a final set of samples of the digital signal is selected wherein each of a plurality of samples of the final set have a magnitude above a final threshold determined by the sample's corresponding sample distortion value.
  • the invention in another aspect, relates to a method and apparatus for communicating a digital signal which includes a noise component and a signal component.
  • An estimation signal is prepared which is representative of the digital signal but has fewer samples than the digital signal.
  • a signal index is prepared which represents, for at least one sample of the estimation signal, the magnitude of the signal component relative to the magnitude of the noise component. Based on the signal index, samples of the digital signal are selected which have a sufficiently large signal component. The selected samples of the digital signal and the samples of the digital estimation signal are both transmitted to a remote device. The remote device reconstructs the digital signal from the transmitted selected samples and estimation samples.
  • the digital signal is a frequency domain speech signal representative of voice information to be communicated
  • each sample of the estimation signal is a spectral estimate of the frequency domain signal in a corresponding band of frequencies.
  • a random number is generated for each nonselected sample of the frequency domain speech signal.
  • a noise estimate of the magnitude of a noise component of the nonselected sample is prepared from at least one spectral estimate.
  • a scaling factor is generated. The random number is then scaled according to the scaling factor to produce a reconstructed sample representative of the nonselected sample.
  • the estimation signal and the frequency domain speech signal each include a series of frames. Each frame represents the voice information over a specified window of time.
  • an initial noise estimate is first prepared for a prior frame of the estimation signal.
  • the initial noise estimate is prepared from at least one spectral estimate representative of a band of frequencies of the prior frame.
  • a rise time constant t r and a fall time constant t f are then selected.
  • the selected rise time constant is added to the initial noise estimate to form an upper threshold, and the selected fall time constant is subtracted from the initial noise estimate to form a lower threshold.
  • a current spectral estimate of the current frame, representative of the same band of frequencies, is then compared to the upper and lower thresholds. If the current spectral estimate is between the thresholds, the current noise estimate is set equal to the current spectral estimate. If it is below the lower threshold, the current noise estimate is set equal to the lower threshold. If the current spectral estimate is above the upper threshold, the current noise estimate is set equal to the upper threshold.
  • a noise coefficient and a voice coefficient are first selected based on the value of the signal index.
  • the current noise estimate is then multiplied by the noise index.
  • the current spectral estimate is multiplied by the signal index.
  • the products of the multiplication are added together and the scaling factor is then formed from the sum.
  • the methods and apparatus described in this specification have as an objective, a reduction in the amount of channel bandwidth allocated to audio information whenever there is little audio information required to be sent. The remaining portion of bandwidth is allocated to video information. Thus, average, a lower bit rate is provided for audio information and a higher bit rate is provided for video information.
  • Fig. 1(a) is a block diagram of the near end of a video conferencing system.
  • Fig. 1(b) is a block diagram of a far end of a video conferencing system.
  • Figs. 2(a-c) are diagrams of a set of frequency coefficients and two types of estimates of the frequency coefficients.
  • Figs. 3(a) and 3(b) are a flow chart of a process for computing spectral estimates.
  • Fig. 4 is a diagram of a set of spectral estimates arranged in broad bands.
  • Fig. 5 is a block diagram of a speech detector.
  • Fig. 6 is a flow chart of a process for estimating the amount of voice in a frame of the microphone signal.
  • Fig. 7 is a block diagram of a bit rate estimator.
  • Figs. 8(a) and 8(b) are a flow chart of a process for computing a first estimate of the allowable distortion per spectral estimate.
  • Fig. 9 is a flow chart of a process for computing a second estimate of the allowable distortion per spectral estimate.
  • Fig. 10 is a flow chart of a process for computing quantization steps sizes.
  • Fig. 11 is a diagram illustrating the interpolation between band quantization step sizes to form coefficient quantization step sizes.
  • Fig. 12 is a block diagram of a coefficient fill-in module.
  • a video conferencing system includes a near end microphone 12 which receives the voice of a person speaking at the near end and generates an electronic microphone signal m(t) representative of the voice, where t is a variable representing time. Similarly, a camera 14 is focused on the person speaking to generate video signal v(t) representative of the image of the person.
  • the microphone signal is applied to an audio encoder 16 which digitizes and encodes the microphone signal m(t).
  • the encoder 16 generates a set of digitally encoded signals F h (k), S h (j), g i (F) and A i (F) which collectively represent the microphone signal, where, as explained more fully below, k and j are integers representing values of frequency, and F is an integer identifying a "frame" of the microphone signal.
  • the video signal v(t) is applied to a video encoder 18 which digitizes and encodes the video signal.
  • the encoded video signal V e and the encoded set of microphone signals are applied to a bit stream controller 20 which merges the signals into a serial bit stream for transmission over a communication channel 22.
  • a bit stream controller 24 at the far end receives the bit stream from communication channel 22 and separates it into the video and audio components.
  • the received video signal V e is decoded by a video decoder 26 and applied to a display device 27 to recreate a representation of the near end camera image.
  • an audio decoder 28 decodes the set of received microphone signals to generate a loudspeaker signal L(t) representative of the near end microphone signal m(t).
  • a loudspeaker 29 reproduces the near end voice.
  • encoder 16 includes an input signal conditioner 30 for digitizing and filtering the microphone signal m(t) to produce a digitized microphone signal m(n), where n is an integer representing a moment in time.
  • the digitized microphone signal, m(n) is provided to a windowing module 32 which separates m(n) into groups m F (n), in the illustrated embodiment, of 512 consecutive samples referred to as a frame.
  • the frames are selected to overlap. More specifically, each frame includes the last 16 samples from the previous group and 496 new samples.
  • the normalizing gain g is used at the near end to scale the microphone samples in each frame.
  • the normalizing gain is used to restore the decoded microphone samples to their original scale. Accordingly, the same gain used to scale the samples at the near end must be transmitted to the far end for use in rescaling the microphone signal. Since the normalization gain g calculated by module 34 has a relatively large number of bits, normalization module 34 supplies the gain g to a quantizer 35 which generates a gain quantization index g i which represents the gain using fewer bits than the number of bits specifying gain g. The gain quantization index g i is then provided to bit steam controller 20 for transmission to the far end.
  • the far end audio decoder 28 reconstructs the gain from the transmitted gain quantization index g i and uses the reconstructed gain g q to restore the microphone signal to its original scale. Since the reconstructed gain g q typically differs slightly from the original gain g, audio encoder 16 at the near end normalizes the microphone signal using the same gain g q as used at the far end. More specifically, an inverse quantizer 37 reconstructs the gain g q from the gain quantization index g i in the same manner as the far end audio decoder 28.
  • the quantized gain g q and the frame of microphone signals m F (n) are forwarded to a discrete cosine transform module (DCT) 36 which divides each microphone sample m F (n) by the gain g q to yield a normalized sample m'(n). It then converts the group of normalized microphone signals m'(n) to the frequency domain using the well known discrete cosine transform algorithm.
  • DCT 36 thus generates 512 frequency coefficients F(k) representing samples of the frame's frequency spectrum, where k is an integer representing a discrete frequency in the frame's spectrum.
  • the frequency coefficients F(k) are encoded (using an entropy adaptive transfer coder described below) and transmitted to the far end. To reduce the number of bits necessary to transmit these coefficients, the encoder 16 estimates the relative amounts of signal (e.g., voice) and noise in various regions of the frequency spectrum, and chooses not to transmit coefficients for frequency bands having a relatively large amount of noise. Further, for each coefficient selected for transmission, encoder 16 selects the number of bits required to represent the coefficient based on the amount of noise present in the frequency band which includes the coefficient's frequency. More specifically, it is known that humans can tolerate more corrupting noise in regions of the audio spectrum having relatively large amounts of audio signal, because the audio signal tends to mask the noise.
  • signal e.g., voice
  • encoder 16 selects the number of bits required to represent the coefficient based on the amount of noise present in the frequency band which includes the coefficient's frequency. More specifically, it is known that humans can tolerate more corrupting noise in regions of the audio spectrum having relatively large amounts of audio signal, because the audio signal tend
  • encoder 16 coarsely quantizes coefficients having relatively large amounts of audio signal since the audio signal masks the quantization distortion introduced through the coarse quantization.
  • the encoder minimizes the number of bits needed to represent each coefficient by selecting a quantization step size tailored to the amount of audio signal represented by the coefficient.
  • the frequency coefficients F(k) are first supplied to a spectrum estimation module 38.
  • estimation module 38 reduces the frequency coefficients F(k) to a smaller set of spectral estimates S(j) which represent the frequency spectrum of the frame with less detail, wherein j an integer representing a band of frequencies in the spectrum.
  • a speech detection module 40 processes the spectral estimates of each frame to estimate the energy component of the microphone signal due to noise in the near end room. It then provides a signal index A i (F) for each frame F which approximates the percentage of the microphone signal in the frame which is attributable to voice information.
  • the signal index A i (F) and the spectral estimates S(j) are both used in quantizing and encoding the frequency coefficients F(k) for transmission to the far end. Accordingly, they are both needed at the far end for use in reconstructing the frequency coefficients.
  • the signal index A i (F) has only three bits and accordingly is applied directly to the bit stream controller 20 for transmission.
  • the spectral estimates S(j) however are converted to logarithmic spectral estimates Log 2 S 2 (j) and are encoded using a well known differential pulse code modulation encoder (herein "DPCM") 39 to reduce the number of bits to be transmitted.
  • DPCM differential pulse code modulation encoder
  • the DPCM is preferably a first order DPCM with a unity gain predictor coefficient.
  • the encoded logarithmic spectral estimates S e (j) are further encoded using a Huffman encoder 49 to further reduce the number of bits to be transmitted.
  • the resultant Huffman codes S h (j) are provided to bit stream controller 20 for transmission.
  • Far end audio decoder 28 reconstructs the logarithmic spectral estimates Log 2 S 2 (j) from the Huffman codes S h (j). However, due to the operation of the DPCM encoder 39, the reconstructed spectral estimates Log 2 S q 2 (j) are not identical to the original estimates Log 2 S 2 (j). Accordingly, a decoder 41 in near end encoder 16 decodes the encoded estimates S e (j) in the same manner as performed at the far end, and uses the thus decoded estimates Log 2 S q 2 (j) in quantizing and encoding the frequency coefficients F(k).
  • the audio encoder 16 encodes the frequency coefficients using the identical estimates Log 2 S q 2 (j) as used by the far end audio decoder 28 in reconstructing the signal Log 2 S q 2 (j) at the far end.
  • bit rate estimator 42 Based on the values of the decoded spectral estimates Log 2 S q 2 (j) and the signal index A i (F), a bit rate estimator 42 selects groups of frequency coefficients F(k) which collectively have a sufficient amount of voice information to merit being transmitted to the far end. Next, the bit rate estimator selects for each coefficient to be transmitted, a quantization step size which determines the number of bits to be used in quantizing the coefficients for transmission. For each selected group of frequency coefficients, bit rate estimator 42 first computes a group quantization step size Q(j) and a "class" C(j) (to be described below) for each frequency band j.
  • the group quantization step sizes are then interpolated to yield a coefficient quantization step size Q(k) for each frequency coefficient F(k).
  • Q(k) is then applied to a coefficient quantizer 44 which, based on the assigned step size, quantizes each frequency coefficient in the band to provide a corresponding quantization index I(k).
  • a limit controller 45 In response to each quantization index I(k), a limit controller 45 generates a Huffman index I h (k).
  • the Huffman indices I h (k) provided by the limit controller are further encoded by Huffman encoder 47 to yield Huffman codes F h (k).
  • the Huffman codes are applied to bit stream controller 20 for transmission over communication channel 22.
  • Module 38 first separates the frequency coefficients F(k) into bands of L adjacent coefficients, where L is preferably equal to 10. (Step 110). For each band, j, the module prepares a first approximation sample, representative of the entire band, by computing the energy of the spectrum in the band. More specifically, module 38 squares each frequency coefficient F(k) in the band and sums the squares of all coefficients in the band. (Steps 112, 114) (See also Figs. 2(b), 2(c))
  • This approximation may provide a poor representation of the spectrum if the spectrum includes a high energy tone at the border between adjacent bands.
  • the spectrum shown Fig. 2(b) includes a tone 50 at the border between band 52 and band 54.
  • Interpolating between approximation sample 58 (representing the sum of the squares of all coefficients in band 54) and approximation sample 56 (representing the sum of the square of all coefficients in band 52) yields a value 59 which does not accurately reflect the presence of tone 50.
  • module 38 also employs a second approximation technique wherein the spectral estimates for both bands 52 and 54 will reflect the presence of a tone 50 near the border between the bands.
  • module 38 derives a second approximation for each band using the ten samples in the band and five neighboring samples from each adjacent band.
  • Module 38 performs the logical inclusive "OR” operation on the binary values of all twenty samples.
  • the second approximation in band 52 yields a relatively large approximation value 60 for band 52 since the approximation includes tone 50 from band 54.
  • the second approximation 60 more accurately reflects the presence of tone 50 than the first approximation 56.
  • module 38 compares the second approximation to the first approximation (Step 118) and selects the larger of the two as the squared spectral estimate S 2 (j). (Steps 120-122). Finally, module 38 computes the logarithm of the squared spectral estimate Log 2 S 2 (j)). (Step 224).
  • speech detector 40 computes a signal index A i (F) representative of the relative amount of voice energy in the frame. Toward this end, detector 40 groups the samples of spectral estimates into broad bands of frequencies.
  • the broad bands have varying widths, nonuniformly distributed across the spectrum. For example, the first broad band may be larger than the second broad band which is smaller than the third.
  • the speech detector estimates the amount of background noise S n in each broad band.
  • speech detector 40 forms an aggregate estimate S a (F) as follows: where F is an integer identifying the current frame, and Y and X are numbers representing the upper and lower frequencies respectively of the broad band.
  • F is an integer identifying the current frame
  • Y and X are numbers representing the upper and lower frequencies respectively of the broad band.
  • the speech detector compares the aggregate estimate of the current frame against a pair of noise thresholds (derived from prior band aggregate estimates from prior frames) to determine the amount of the noise in the band.
  • a frame having a relatively low aggregate estimate likely includes little voice energy in the broad band. Accordingly, the aggregate estimate in such a frame provides a reasonable estimate of the background noise in the broad band.
  • the speech detector To compare aggregate estimates against the noise thresholds, the speech detector must first unnormalize each aggregate estimate. Otherwise, the estimates from the present frame will be on different scales than those of the prior frames and the comparison will not be meaningful. Accordingly, the speech detector unnormalizes the aggregate estimate by first computing Log 2 (g q 2 ) to place the normalization gain in the same logarithmic scale as the aggregate estimates. It then adds the scaled normalization gain Log 2 (g q 2 ) to the aggregate estimate to unnormalize the estimate. (Step 212).
  • This unnormalized estimate is then compared to an upper threshold S r (F) and a lower threshold S f (F) where F identifies the current frame. (Step 214).
  • This technique adaptively adjusts the noise estimates over time such that the noise estimate in a given broad band of a current frame approximately equals the most recent minimum aggregate estimate for the broad band. For example, if a series of frames arrive having no voice component in a broad band, the aggregate estimates will be relatively small since they reflect only the presence of background noise. Thus, if these aggregate values are below the lower threshold, S f , the above technique will quickly reduce the noise estimate in relatively large increments, f, until the noise estimate equals a value of the relatively low aggregate estimate.
  • the noise estimate remains relatively low, stepping upward in relatively small increments r.
  • the speech detector is able to detect increases in the background noise.
  • the noise estimate tends to remain near the most recent minimum aggregate estimate. This prevents the speech detector from mistaking transient voice energy for background noise.
  • the speech detector After calculating the noise estimates for a frame, the speech detector subtracts the noise estimate S n (F) from the frame's aggregate estimate S a (F) to obtain an estimate of the voice signal in the broad band. (Step 224). It also subtracts a threshold constant S T from the aggregate estimate to generate a signal S out representative of the extent to which the voice signal exceeds the specified threshold S T . (Step 224). Finally, the speech detector computes the index A i (F) for the entire frame from the collection of S out signals and the normalization gain g q . (Step 226).
  • the speech detector first selects the largest S out from all broad bands. (Step 246). If the selected value, S max , is less than or equal to zero, all broad bands likely have no voice component. (Step 248). Accordingly, the speech detector sets the index A i (F) to zero indicating that the broad bands contain only noise. (Step 250).
  • the speech detector If g o is greater than S' max , the speech detector assumes that S max is less than the voice energy in the frame. Accordingly, it selects g o as the index A i (F). (Step 256). Otherwise, it selects S' max as the index A i (F). (Step 256). Finally, the speech detector compares the selected index to a maximum index i max . (Step 258). If the selected index exceeds the maximum index, the speech detector sets the index A i (F) equal to its maximum value, i max . (Step 262). Otherwise, the selected value is used as the index. (Step 260).
  • the bit rate estimator 42 receives the index A i (F) and the quantized log spectral estimates Log 2 S q 2 (j). In response, it computes a step size Q(k) for each frequency coefficient and a class indicator c(j) for each band j of frequency coefficients.
  • the quantization step size Q(k) is used by quantizer 44 to quantize the frequency coefficients.
  • the class indicator c(j) is used by Huffman encoder 47 to select the appropriate coding tables.
  • the bit estimator includes a first table 70 which contains a predetermined aggregate allowable distortion value D T for each value of the signal index A i (F). Each value D T represents an aggregate quantization distortion error for the entire frame.
  • a second table 72 contains, for each value of index A i (F), a predetermined maximum number of bits r max initially allocated to the frame. (As explained below, more bits may be allocated to the frame if necessary.)
  • the stored bit rates r max increase with A i (F). To the contrary, the stored distortion values D T decrease with each increase in A i (F).
  • the tables For example, for A i (F) equals zero, (i.e., 100% noise) the tables provide a small bit rate and a high allowable distortion. For A i (F) equal seven, (i.e., 100% audio) the tables provide a high bit rate and a low allowable distortion.
  • the first and second tables select an aggregate allowable quantization distortion D T and an allowable maximum number of bits r max . This allowable distortion D T is provided to a first distortion approximation module 74. Module 74 then computes a first allowable sample distortion value d l representative of the allowable distortion per estimate. The sample distortion value d l is then used in deriving c(j) and a block quantization step size Q(k).
  • module 74 first computes an initial value of the sample distortion value d 1 by dividing the allowable aggregate distortion D T by the number of spectral estimates P. (Step 310). As will be explained more fully below, only frequency coefficients from a band whose squared spectral estimate is sufficiently greater than a final quantization distortion value d w will be coded for transmission. Thus, the allowable quantization value operates as a noise threshold for determining which coefficients will be transmitted. Accordingly, module 74 performs an inverse logarithm operation on the log spectral estimates Log 2 S q 2 (j) to form the square of the quantized spectral estimates S q 2 (j).
  • Module 74 tentatively assumes that if the squared spectral estimate S q 2 (j) is less than or equal to d 1 , the spectral estimate's constituent frequency coefficients (referred to herein as "noisy samples") will not be coded. (Step 312). Module 74 accordingly increases the sample distortion value d 1 to reflect the fact that such constituent coefficients will not be coded.
  • module 74 compares each squared spectral estimate to the new d 1 to determine if any other coefficients will not be coded. (Step 320). If so, the estimator repeats the process to compute an adjusted sample distortion value d 1 . (Steps 322, 324). The search terminates when no additional squared spectral coefficients are less than or equal to an adjusted sample distortion value d 1 (Step 320). It also terminates after a maximum number of allowable iterations. (Steps 322). The resultant sample distortion value d 1 is then provided to a bit rate comparator 76 (Fig. 7). (Step 326).
  • comparator 76 It then compares the estimated number of bits to the maximum allowable number of bits per frame, r max . If r is less than the maximum, r max , comparator 76 signals module 78 to compute step sizes for the frequency coefficients based on the first sample distortion value d 1 . However, if r exceeds the maximum r max , comparator 76 assumes that more distortion per estimate must be tolerated to keep the number of bits below r max . Accordingly, it signals a second distortion approximation module 80 to begin an iterative search for a new distortion value d 2 which will yield a bit rate below r max .
  • the distortion increment value D i is an estimate of a necessary increment in the first sample distortion value to reduce the bit rate below the maximum R max .
  • module 80 provides d 2 to module 78 and notifies it to calculate the quantization step sizes Q(j) based on both d 2 and d 1 . (Step 422). If not, module 80 performs another iteration of the process in an attempt to find a distortion d 2 which will yield a sufficiently low bit rate r. (Steps 418, 420-428). However, if a maximum number of iterations have been tried without finding such a distortion estimate, the search is terminated and the most recent value of d 2 is supplied to module 78. (Steps 420, 422).
  • the class parameter c'(j) is then rounded upward to the nearest integer value in the range of zero to eight to form a class integer c(j). (Step 520).
  • a class value of zero indicates that all coefficients in the class should not be coded. Accordingly, the class value c(j) for each spectral estimate is provided to the quantizer to indicate which coefficients should be coded.
  • Class values greater than or equal to one are used to select huffman tables used in encoding the quantized coefficients. Accordingly, the class value c(j) for each spectral estimate is provided to the huffman encoder 47.
  • each band step size Q(j) for each band j is then interpolated to derive a step size Q(k) for each frequency coefficient k within the band j.
  • each band step size is scaled downward.
  • the spectral estimate S(j) for each band j was computed as the greater of 1) the sum of all squared coefficients in the band and 2) twice the logical OR of all coefficients in the block and of the ten neighboring samples. (See Fig. 2(a)-2(c)). Accordingly, the selected spectral estimate roughly approximates the aggregate energy of the entire band.
  • the quantization step size for each coefficient should be chosen based on the average energy per coefficient within each band.
  • the band step size Q(j) is scaled downward by dividing it by the number of coefficients used in computing the spectral estimate for the band. (i.e., by either ten or twenty depending on the technique chosen to calculate S(j)).
  • bit rate estimator 42 linearly interpolates between the log band step sizes Log 2 Q(j) to compute the logarithm of coefficient step sizes log 2 Q(k). (See Fig. 11).
  • the reciprocal of the coefficient step size is derived as follows: (19) 1/Q(k) - (log 2 Q(j)) -1
  • Coefficient quantizer 44 is a mid-tread quantizer which quantizes each frequency coefficient F(k) using its associated inverse step size l/Q(k) to produce an index I(k).
  • the indices I(k) are encoded for transmission by the combined operation of a limit controller 45 and a Huffman encoder 47.
  • Huffman encoder 47 includes, for each class c(j), a Huffman table containing a plurality of Huffman codes.
  • the class integers c(j) are provided to Huffman encoder 47 to select the appropriate Huffman table for the identified class.
  • limit controller 45 In response to an index I(k), limit controller 45 generates a corresponding Huffman index I h (k) which identifies an entry in the selected Huffman table. Huffman encoder 47 then provides the selected Huffman code F h (k) to bit stream controller 20 for transmission to the far end.
  • limit controller 45 simply forwards the index I(k) for use as the Huffman index I h (k).
  • the range of possible indices I(k) may exceed the input range of the corresponding Huffman table.
  • limit controller 45 includes an index maximum and minimum. The limit controller compares each index I(k) with the index maximum and minimum. If I(k) exceeds either the index maximum or minimum, limit controller 45 clips I(k) to equal the respective maximum or minimum and provides the clipped index to encoder 47 as the corresponding Huffman index.
  • limit controller 45 For each frame, limit controller 45 also maintains a running tally of the number of bits required to transmit the Huffman codes. More specifically, the limit controller includes, for each Huffman table within Huffman encoder 47, a corresponding bit number table. Each entry in the bit number table indicates the number of bits of a corresponding Huffman code stored in the Huffman table of encoder 47. Thus, for each Huffman index I h (k) generated by limit controller 45, the limit controller internally supplies the Huffman index to the bit number table to determine the number of bits required to transmit the corresponding Huffman code F h (k) identified by the Huffman index I h (k). The number of bits are then added to the running tally.
  • limit controller 45 If the running tally exceeds a maximum allowable number of bits, limit controller 45 ignores the remaining indices I(k). Limit controller 45 then prepares a unique Huffman index which identifies a unique Huffman code for notifying the far end receiver that the allowable number of bits for the frame has been reached and that the remaining coefficients will not be coded for transmission.
  • the limit controller To transmit the unique Huffman code, the limit controller must allocate bits for transmission of the unique code. Accordingly, it first discards the most recent Huffman code and recomputes the running tally to determine if enough bits are available to transmit the unique Huffman code. If not, the limit controller repeatedly discards the most recent Huffman code until enough bits are allocated for the transmission of the unique Huffman code.
  • far end audio decoder 28 reconstructs the microphone signal from the set of encoded signals. More specifically, a Huffman decoder 25 decodes the Huffman codes S h (j) to reconstruct the encoded log spectral estimates S e (j). Decoder 27 (identical to decoder 41 of the audio encoder 16 (Fig. 1(a)) further decodes the encoded log spectral estimates to reconstruct the quantized spectral estimates Log 2 S q 2 (j).
  • the log spectral estimates Log 2 S q 2 (j) and the received signal index A i (F) are applied to a bit rate estimator 46 which duplicates the derivation of classes c(j) and step sizes Q(k) performed by bit rate estimator 42 at the near end.
  • the derived class information c(j) is provided to a Huffman decoder 47 to decode the Huffman codes F h (k).
  • the output of the Huffman decoder 47 is applied to a coefficient reconstruction module 48, which, based on the derived quantization step sizes Q(k), reconstructs the original coefficients F q (k).
  • the bit rate estimator 46 further supplies class information c(j) to a coefficient fill-in module 50 to notify it of which coefficients were not coded for transmission. Module 50 then estimates the missing coefficients using the reconstructed log spectral estimates Log 2 S q 2 (j).
  • the decoded coefficients F q (k) and the estimated coefficients F e (k) are supplied to a signal composer 52 which converts the coefficients back to the time domain and unnormalizes the time domain signal using the reconstructed normalization gain g q .
  • an inverse DCT module 51 merges the decoded and estimated coefficients F q (k), F e (k) and transforms the resultant frequency coefficient values to a time domain signal m'(n).
  • An inverse normalization module 53 scales the time domain signal m'(n) back to the original scale.
  • the resultant microphone signal m(n) is applied to an overlap decoder 55 which removes the redundant samples introduced by windowing module 32 of the audio encoder 16. (Fig. 1(a)).
  • a signal conditioner 57 filters the resultant microphone signal and converts it to an analog signal L(t) for driving loudspeaker 29.
  • bit rate estimator 42 (Fig. 1) adjusts the quantization step size to finely quantize coefficients having a low energy level and coarsely quantize coefficients having a large energy level. In apparent contradiction to this approach, the bit rate estimator simply discards coefficients having a very low energy level.
  • a coefficient fill-in module 50 prepares a coefficient estimate of each discarded coefficient from the spectral estimates. It then inserts the coefficient estimate in place of the missing coefficient to prevent such audio artifacts. In doing so, the coefficient module considers the level of the signal index A i for the frame in which the uncoded coefficient resides. If, for example, the signal index is low, (indicating that the frame largely consists of background noise), the fill-in module assumes the missing coefficient represents background noise. Accordingly, it prepares the coefficient estimate largely from a measure of the background noise in the frame.
  • the noise fill-in module assumes that the missing coefficient represents a voice signal. Accordingly, it prepares the coefficient estimate largely from the value of the spectral estimate corresponding to the band of frequencies which includes the frequency of the missing coefficient.
  • coefficient fill-in module 50 includes a coefficient estimator module 82 for each band.
  • Each estimator module 82 includes a noise floor module 84 for approximating, for each Frame F, the amount of background noise in the band of frequencies j.
  • the noise estimate S n (j,F) is derived from a comparison of the log spectral estimate Log 2 S q 2 (j) of the current frame with a noise estimate derived from spectral estimates of previous frames.
  • An adder 91 adds the log spectral estimate to the log gain, log 2 g q 2 , to unnormalize the log spectral estimate.
  • S u (j, F) is less than the previous noise estimate, S n (j, F - 1)
  • Table 102 like table 100, provides a unique constant t f for each value of the index A i (F).
  • Adder 93 normalizes the resultant noise estimate S n (j, F) by subtracting the log gain, log 2 g 2 q .
  • S nn (j, F) Log -1 (Log 2 S 2 n (j,F) - Log 2 g 2 q )
  • Weighting function 86 For each frame, the normalized band noise estimates, Snn(j, F), and the spectral estimate S q (j, F) are applied to a weighting function 86 which prepares weighted sum of the two values.
  • Weighting function 86 includes a first table 88 which contains, for each value of signal index A i (F), a noise weighting coefficient C n (F).
  • a second table 90 includes for each index A i (F), a voice weighting index C a (F).
  • table 88 In response to the current value of the audio index A i (F), table 88 provides a corresponding noise weighting coefficient C n (F) to multiplier 92.
  • Multiplier 92 computes the product of C n (F) and S nn (j, F) to produce a weighted noise value S nw (j, F).
  • This weighted estimate is then supplied to signal composer 52 for use in computing the estimated frequency coefficient F e (k) for each of the ten uncoded frequency coefficients corresponding to the spectral estimate.
  • the weighted estimate, W is used to control the level of "fill-in" for each missing frequency coefficient (i.e. those with a class of zero).
  • the fill-in consists of scaling the output from a random number generator (with a uniform distribution) and inserting the result, F e in place of the missing frequency coefficients.
  • the following equation is used to generate the fill-in for each missing frequency coefficient.
  • F e e x w x noise x noise n 2
  • "noise" is the output from the random number generator at given instant (or coef/sample), the range of the random number generator being twice the value n; and wherein e is a constant, e.g., 3. Note that a new value of noise is generated for each of the missing frequency coefficients.

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Claims (32)

  1. Verfahren zum Zuteilen von Übertragungsbits zur Verwendung bei der Übertragung von Abtastwerten eines digitalen Signales, welches Verfahren die Schritte aufweist:
    Wählen eines summierten, zulässigen Quantisierungsverzerrungswertes, der einen kollektiven, zulässigen Quantisierungsverzerrungsfehler für einen Block von Abtastwerten des genannten digitalen Signales darstellt,
    Auswählen einer Gruppe von Abtastwerten aus dem genannten Block von Abtastwerten, wobei jeder Abtastwert aus einer Mehrzahl von Abtastwerten der genannten Gruppe größer ist als eine Geräuschschwelle,
    für jeden Abtastwert der genannten Gruppe Berechnen eines Abastwert-Quantisierungsverzerrungswertes, welcher einen zulässigen Quantisierungsverzerrungsfehler für den genannten Abtastwert darstellt, wobei die Summe sämtlicher Abtastwert-Quantisierungsverzerrungswerte für sämtliche Abtastwerte der genannten Gruppe etwa gleich dem genannten summierten, zulässigen Quantisierungsverzerrungswert ist,
    für jeden Abtastwert der genannten Gruppe Wählen einer Quantisierungsschrittgröße, die zu einem Quantisierungsverzerrungsfehler führt, der etwa gleich dem entsprechenden Quantisierungsverzerrungswert des genannten Abtastwertes ist, und
    Quantisieren des genannten Abtastwertes unter Verwendung der genannten Quantisierungsschrittgröße.
  2. Verfahren nach Anspruch 1, bei dem das Wählen einer Quantisierungsschrittgröße den Schritt des Berechnens einer Quantisierungsschrittgröße für jeden zu übertragenden Abtastwert beinhaltet, basierend zumindest teilweise auf der Differenz zwischen dem genannten Abtastwert und dem entsprechenden Quantisierungsverzerrungswert des genannten Abtastwertes.
  3. Verfahren nach Anspruch 1, bei dem das genannte digitale Signal eine Geräuschkomponente und eine Signalkomponente beinhaltet und bei dem die genannte Wahl einer summierten, zulässigen Quantisierungsverzerrung die Schritte beinhaltet:
    Bereiten eines Signalindexes, der für zumindest einen Abtastwert des genannten Blockes eine Signalgröße der genannten Signalkomponente relativ zu einer Rauschgröße der genannten Geräuschkomponente darstellt, und
    Wählen der genannten summierten, zulässigen Quantisierungsverzerrung auf Grundlage des genannten Signal indexes.
  4. Verfahren nach Anspruch 1, bei dem das Berechnen des genannten Abtastwert-Quantisierungsverzerrungswertes den Schritt der Division des genannten summierten, zulässigen Quantisierungsverzerrungswertes durch eine Anzahl von Abtastwerten in dem genannten Block von Abtastwerten beinhaltet, um einen ersten Abtastwert-Verzerrungswert zu bilden.
  5. Verfahren nach Anspruch 4, bei dem das Auswählen einer Gruppe von Abtastwerten den Schritt beinhaltet:
    Auswählen einer provisorischen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert der genannten provisorischen Gruppe größer ist als eine Geräuschschwelle, die zumindest teilweise durch den Wert des genannten ersten Abtastwert-Verzerrungswertes bestimmt ist, und wobei das Berechnen des genannten Abtastwert-Quantisierungsverzerrungswertes den Schritt aufweist:
    Verstellen des genannten ersten Abtastwert-Verzerrungswertes um einen Betrag, der durch die Differenz zwischen dem genannten ersten Abtastwert-Verzerrungswert und zumindest einem Abtastwert bestimmt ist, der aus der genannten provisorischen Gruppe ausgeschlossen ist.
  6. Verfahren nach Anspruch 5, bei dem das Auswählen der genannten provisorischen Gruppe von Abtastwerten und das Verstellen des genannten ersten Abtastwert-Verzerrungswertes die Schritte beinhaltet:
    a) Identifizieren jedweder rauschigen Abtastwerte der genannten provisorischen Gruppe, wobei jeder genannte rauschige Abtastwert eine geringere Größe als ein laufender Wert des genannten ersten Abtastwert-Verzerrungswertes besitzt,
    b) Entfernen der genannten rauschigen Abtastwerte, falls vorhanden, aus der genannten provisorischen Gruppe,
    c) Vergrößern, wenn irgendwelche rauschigen Abtastwerte entfernt werden, des genannten ersten Abtastwert-Verzerrungswertes um einen Betrag, der durch die Differenz zwischen dem genannten ersten Abtastwert-Verzerrungswert und zumindest einem genannten rauschigen Abtastwert bestimmt ist, und
       Wiederholen der Schritte a, b und c bis ein eingestellter erster Abtastwert-Verzerrungswert erreicht ist, für den der Schritt a keine zusätzlichen rauschigen Abtastwerte der genannten provisorischen Gruppe identifiziert, welche größer sind als die genannte eingestellte erste Abtastwertverzerrung.
  7. Verfahren nach Anspruch 6, das ferner den Schritt des Abbrechens der genannten Verstellung beinhaltet, wenn die Schritte a, b und c in einer Höchstanzahl von Wiederholungen durchgeführt sind.
  8. Verfahren nach Anspruch 7, außerdem die Schritte beinhaltend:
    Abschätzen, nachdem die genannte Verstellung abgebrochen ist, einer Bitanzahl für eine Menge von Bits, die erforderlich sind, um sämtliche Abtastwerte der genannten provisorischen Gruppe zu übertragen,
    Vergleichen der genannten abgeschätzten Bitanzahl mit einer maximalen Bitanzahl und
    Wählen, wenn die genannte abgeschätzte Bitanzahl kleiner oder gleich der genannten maximalen Bitanzahl ist, einer endgültigen Geräuschschwelle auf Grundlage des genannten eingestellten ersten Abtastwert-Verzerru ngswertes.
  9. Verfahren nach Anspruch 8, bei dem, wenn die genannte abgeschätzte Bitanzahl die genannte maximale Bitanzahl übersteigt, das Verfahren außerdem die Schritte beinhaltet:
       Bereiten eines zweiten Abtastwert-Verzerrungswertes,
    a) Auswählen einer zweiten provisorischen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert einer Mehrzahl der genannten Abtastwerte der genannten zweiten provisorischen Gruppe eine Größe besitzt, die oberhalb des genannten zweiten Abtastwert-Verzerrungswertes liegt,
    b) Abschätzen der Anzahl von Bits, die erforderlich sind, um sämtliche Abtastwerte der genannten zweiten provisorischen Gruppe zu übertragen,
    c) Vergleichen der genannten abgeschätzten Bitanzahl mit der genannten maximalen Bitanzahl und
    d) Vergrößern, wenn die genannte abgeschätzte Bitanzahl größer ist als die genannte maximale Bitanzahl, des genannten zweiten Abtastwert-Verzerrungswertes um einen Betrag, der durch die genannte Auswahl bestimmt ist.
  10. Verfahren nach Anspruch 9, das ferner den Schritt des Wiederholens der Schritte d - g beinhaltet, bis ein zweiter Abtastwert-Verzerrungswert erreicht ist, für den der Schritt g ermittelt, daß die genannte abgeschätzte Bitanzahl kleiner oder gleich der genannten maximalen Bitanzahl ist.
  11. Verfahren nach Anspruch 10, das außerdem die Schritte aufweist:
    Berechnen des genannten Abtastwert-Verzerrungswertes aus dem genannten eingestellten, ersten Abtastwert-Verzerrungswert und dem genannten zweiten Abtastwert-Verzerrungswert und
    Auswählen einer endgültigen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert einer Mehrzahl der genannten Abtastwerte der genannten endgültigen Gruppe eine Größe besitzt, die oberhalb einer endgültigen Schwelle liegt, die durch den entsprechenden Abtastwert-Verzerrungswert des Abtastwertes bestimmt ist.
  12. Verfahren zur Übertragung eines digitalen Signales, das eine Geräuschkomponente und eine Signalkomponente beinhaltet, wobei das Verfahren die Schritte beinhaltet:
    Bereiten eines abgeschätzten Signales, das für das genannte digitale Signal repräsentativ ist, jedoch weniger Abtastwerte aufweist als das genannte digitale Signal,
    Bereiten eines Signalindexes, der, für zumindest einen Abtastwert des genannten abgeschätzten Signales, eine Signalgröße der genannten Signalkomponente relativ zu einer Rauschgröße der genannten Geräuschkomponente darstellt,
    Auswählen, basierend auf dem genannten Signalindex, von Abtastwerten des genannten digitalen Signales, die eine ausreichend große Signalkomponente besitzen,
    Übertragen der genannten ausgewählten Abtastwerte des genannten digitalen Signales,
    Übertragen der genannten Abtastwerte des genannten digitalen, abgeschätzten Signales und
    Rekonstruieren des genannten digitalen Signales aus den genannten übertragenen ausgewählten Abtastwerten und den abgeschätzten Abtastwerten.
  13. Verfahren nach Anspruch 12, bei dem das genannte digitale Signal ein Frequenzbereich-Sprachsignal ist, das eine zu übertragende Toninformation darstellt, und jeder Abtastwert des genannten abgeschätzten Signales ein spektraler Schätzwert des Frequenzbereichsignales in einem entsprechenden Frequenzband ist und bei dem die Rekonstruktion des genannten Frequenzbereich-Sprachsignales die Schritte beinhaltet:
    Generieren einer Zufallszahl für jeden nicht ausgewählten Abtastwert des genannten Frequenzbereich-Sprachsignales,
    Bereiten, aus zumindest einem genannten spektralen Schätzwert, einen Geräuschschätzwert für die Größe einer Geräuschkomponente des nicht gewählten Abtastwertes,
    Erzeugen, auf Grundlage des genannten Geräuschschätzwertes, eines Skalierungsfaktors und
    Skalieren der genannten Zufallszahl gemäß dem genannten Skalierungsfaktor, um einen rekonstruierten Abtastwert zu erzeugen, der für den genannten nicht ausgewählten Abtastwert repräsentativ ist.
  14. Verfahren nach Anspruch 13, bei dem das genannte abgeschätzte Signal und das genannte Frequenzbereich-Sprachsignal je eine Reihe von Blöcken aufweisen, von denen jeder Block die genannte Toninformation über ein spezifiziertes Zeitfenster darstellt, und bei dem das Bereiten eines ersten Geräuschschätzwertes für einen laufenden Block die Schritte beinhaltet:
    Bereiten, für einen voraufgehenden Block des genannten abgeschätzten Signales, einen anfänglichen Geräuschschätzwert aus zumindest einem spektralen Schätzwert, der für ein Frequenzband des genannten voraufgehenden Blockes repräsentativ ist,
    Wählen, basierend auf der Größe des genannten Signalindexes, eine Anstiegszeitkonstante t, und eine Abfallzeitkonstante tf,
    Addieren der genannten Anstiegszeitkonstante zu dem genannten anfänglichen Geräuschschätzwert, um eine obere Schwelle zu bilden,
    Subtrahieren der genannten Abfallzeitkonstante von dem genannten anfänglichen Geräuschschätzwert, um eine untere Schwelle zu bilden,
    Vergleichen eines laufenden spektralen Schätzwertes des genannten laufenden Blockes, der für das genannte Frequenzband repräsentativ ist, mit der genannten oberen und der genannten unteren Schwelle,
    Setzen, wenn der genannte laufende spektrale Schätzwert sich zwischen den genannten Schwellen befindet, des genannten laufenden Schätzwertes gleich dem genannten laufenden spektralen Schätzwert,
    Dekrementieren, wenn der genannte spektrale Schätzwert unterhalb der genannten unteren Schwelle liegt, des genannten anfänglichen Geräuschschätzwertes mit der genannten Abfallzeitkonstante, um den genannten laufenden Geräuschschätzwert zu bilden, und
    Inkrementieren, wenn der genannte laufende spektrale Schätzwert oberhalb der genannten oberen Schwelle liegt, des genannten anfänglichen Geräuschschätzwertes mit der Anstiegszeitkonstante, um den genannten laufenden Geräuschschätzwert zu bilden.
  15. Verfahren nach Anspruch 14, bei dem das Erzeugen eines Skalierungsfaktors den Schritt des Erzeugens einer gewichteten Summe aus dem genannten laufenden Geräuschschätzwert und dem genannten laufenden spektralen Schätzwert beinhaltet.
  16. Verfahren nach Anspruch 15, bei dem das Erzeugen der genannten gewichteten Summe die Schritte beinhaltet:
    Wählen eines Geräuschkoeffizienten auf der Basis des Werte des genannten Signalindexes,
    Wählen eines Tonkoeffizienten auf Grundlage des Wertes des genannten Signalindexes,
    Multiplizieren des genannten laufenden Geräuschschätzwertes mit dem genannten Geräuschkoeffizienten,
    Multiplizieren des genannten laufenden spektralen Schätzwertes mit dem genannten Tonkoeffizienten,
    Addieren der Produkte der genannten Multiplikationsschritte und
    Bilden des genannten Skalierungsfaktors aus dem Ergebnis des genannten Additionsschrittes.
  17. Encoder zum Zuteilen von Übertragungsbits zur Verwendung bei der Übertragung von Abtastwerten eines digitalen Signales, wobei der Encoder aufweist:
    ein Mittel zum Wählen eines summierten, zulässigen Quantisierungsverzerrungswertes, der einen kollektiven, zulässigen Quantisierungsverzerrungsfehler für einen Block von Abtastwerten des genannten digitalen Signales darstellt,
    ein Mittel zum Auswählen einer Gruppe von Abtastwerten aus dem genannten Block von Abtastwerten, wobei jeder Abtastwert aus einer Mehrzahl von Abtastwerten der genannten Gruppe größer ist als eine Geräuschschwelle,
    ein Mittel, um für jeden Abtastwert der genannten Gruppe einen Abtastwert-Quantisierungsverzerrungswert zu berechnen, der einen zulässigen Quantisierungsverzerrungsfehler für den genannten Abtastwert darstellt, wobei die Summe sämtlicher Abtastwert-Quantisierungsverzerrungswerte für sämtliche Abtastwerte der genannten Gruppe etwa gleich dem genannten summierten, zulässigen Quantisierungsverzerrungswert ist,
    ein Mittel, um für jeden Abtastwert der genannten Gruppe eine Quantisierungsschrittgröße zu wählen, die zu einem Quantisierungsverzerrungsfehler führt, der etwa gleich dem entsprechenden Quantisierungsverzerrungswert des genannten Abtastwertes ist, und
    ein Mittel zum Quantisieren des genannten Abtastwertes unter Verwendung der genannten Quantisierungsschrittgröße.
  18. Encoder nach Anspruch 17, bei dem das genannte Mittel zum Wählen einer Quantisierungsschrittgröße ein Mittel zum Berechnen einer Quantisierungsschrittgröße für jeden zu übertragenden Abtastwert beinhaltet, basierend zumindest teilweise auf der Differenz zwischen dem genannten Abtastwert und dem entsprechenden Quantisierungswert des genannten Abtastwertes.
  19. Encoder nach Anspruch 17, bei dem das genannte digitale Signal eine Geräuschkomponente und eine Signalkomponente beinhaltet,
    und bei dem das genannte Mittel zum Wählen einer summierten, zulässigen Quantisierungsverzerrung beinhaltet:
    ein Mittel zum Bereiten eines Signalindexes, der für zumindest einen Abtastwert des genannten Blockes eine Signalgröße der genannten Signalkomponente relativ zu einer Rauschgröße der genannten Geräuschkomponente darstellt, und
    ein Mittel zum Wählen der genannten summierten, zulässigen Quantisierungsverzerrung auf Grundlage des genannten Singalindexes.
  20. Encoder nach Anspruch 17, bei dem das genannte Mittel zum Berechnen des genannten Abtastwert-Quantisierungsverzerrungswertes ein Mittel zum Dividieren des genannten summierten, zulässigen Quantisierungsverzerrungswertes durch eine Anzahl von Abtastwerten in dem genannten Block von Abtastwerten beinhaltet, um eine ersten Abtastwert-Verzerrungswert zu bilden.
  21. Encoder nach Anspruch 20, bei dem das genannte Mittel zum Auswählen einer Gruppe von Abtastwerten aufweist:
    ein Mittel zum Auswählen einer provisorischen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert der genannten provisorischen Gruppe größer ist als eine Geräuschschwelle, die zumindest teilweise durch den Wert des genannten ersten Abtastwert-Verzerrungswertes bestimmt ist, und wobei das genannte Mittel zum Berechnen des genannten Abtastwert-Quantisierungsverzerrungswertes aufweist:
    ein Mittel zum Verstellen des genannten ersten Abtastwert-Verzerrungswertes um einen Betrag, der durch die Differenz zwischen dem genannten ersten Abtastwert-Verzerrungswert und zumindest einem Abtastwert bestimmt ist, der aus der genannten provisorischen Gruppe ausgeschlossen ist.
  22. Encoder nach Anspruch 21, bei dem das genannte Mittel zum Auswählen der genannten provisorischen Gruppe von Abtastwerten und das genannte Mittel zum Verstellen des genannten erten Abtastwert-Verzerrungswertes aufweisen:
    ein Mittel zum Identifizieren jedweder rauschiger Abtastwerte der genannten provisorischen Gruppe, wobei jeder genannte rauschige Abtastwert eine geringere Größe als ein laufender Wert des genannten ersten Abtastwert-Verzerrungswertes besitzt,
    ein Mittel zum Entfernen der genannten rauschigen Abtastwerte, falls vorhanden, aus der genannten provisorischen Gruppe,
    ein Mittel zum Vergrößern des genanten ersten Abtastwert-Verzerrungswertes um einen Betrag, der durch die Differenz zwischen dem genannten ersten Abtastwert-Verzerrungswert und zumindest einem genannten rauschigen Abtastwert bestimmt ist, wenn irgendwelche rauschigen Abtastwerte entfernt werden, und
    ein Mittel zum wiederholten Entfernen rauschiger Abtastwerte und Verstellen des genannten ersten Abtastwert-Verzerrungswertes, bis ein eingestellter erster Abtastwert-Verzerrungswert erreicht ist, bei dem keine zusätzlichen rauschigen Abtastwerte der genannten provisorischen Gruppe größer sind als die genannte, eingestellte erste Abtastwert-Verzerrung.
  23. Encoder nach Anspruch 22, außerdem ein Mittel beinhaltend, um die genannte Verstellung abzubrechen, wenn der genannte erste Abtastwert-Verzerrungswert eine Größtanzahl von Malen verstellt ist.
  24. Encoder nach Anspruch 23, außerdem aufweisend:
    ein Mittel, um, nachdem die genannte Verstellung abgebrochen ist, eine Bitanzahl für eine Menge von Bits abzuschätzen, die erforderlich sind, um sämtliche Abtastwerte der genannten provisorischen Gruppe zu übertragen,
    ein Mittel zum Vergleichen der genannten abgeschätzten Bitanzahl mit einer maximalen Bitanzahl und
    ein Mittel, um eine endgültige Geräuschschwelle auf Grundlage des genannten eingestellten ersten Abtastwert-Verzerrungswertes zu wählen, wenn die genannte abgeschätzte Bitanzahl kleiner oder gleich der genannten maximalen Bitanzahl ist.
  25. Encoder nach Anspruch 24, bei dem der Encoder außerdem aufweist:
    ein Mittel zum Bereiten eines zweiten Abtastwert-Verzerrungswertes, wenn die genannte abgeschätzte Bitanzahl die genannte maximale Bitanzahl übersteigt,
    ein Mittel zum Auswählen einer zweiten provisorischen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert einer Mehrzahl der genannten Abtastwerte der genannten zweiten provisorischen Gruppe eine Größe besitzt, die oberhalb des genannten zweiten Abtastwert-Verzerrungswertes liegt,
    ein Mittel zum Abschätzen der Anzahl von Bits, die erforderlich sind, um sämtliche Abtastwerte der genannten zweiten provisorischen Gruppe zu übertragen,
    ein Mittel zum Vergleichen der genannten abgeschätzten Bitanzahl mit der genannten maximalen Bitanzahl und
    ein Mittel, um den genannten zweiten Abtastwert-Verzerrungswert um einen Betrag zu vergrößern, der durch die genannte Auswahl bestimmt ist, wenn die genannte abgeschätzte Bitanzahl größer ist als die genannte maximale Bitanzahl.
  26. Encoder nach Anspruch 25, außerdem ein Mittel aufweisend, um den genannten zweiten Abtastwert-Verzerrungswert wiederholt zu verstellen, die genannte zweite provisorische Gruppe von Abtastwerten neu auszuwählen und die Anzahl von Bits abzuschätzen, die erforderlich sind, um sämtliche Abtastwerte der genanten zweiten provisorischen Gruppe zu übertragen, bis ein zweiter Abtastwert-Verzerrungswert erreicht ist, bei dem die genannte abgeschätzte Bitanzahl kleiner oder gleich der genannten maximalen Bitanzahl ist.
  27. Encoder nach Anspruch 26, außerdem aufweisend:
    ein Mittel zum Berechnen des genannten Abtastwert-Verzerrungswertes aus dem genannten eingestellten, ersten Abtastwert-Verzerrungswert und dem genannten zweiten Abtastwert-Verzerrungswert und
    ein Mittel zum Auswählen einer endgültigen Gruppe von Abtastwerten des genannten digitalen Signales, wobei jeder Abtastwert einer Mehrzahl der genannten Abtastwerte der genannten endgültigen Gruppe eine Größe besitzt, die oberhalb einer endgültigen Schwelle liegt, die durch den entsprechenden Abtastwert-Verzerrungswert des Abtastwertes bestimmt ist.
  28. Encoder zur Übertragung eines digitalen Signales, das eine Geräuschkomponente und eine Signalkomponente beinhaltet, wobei der Encoder aufweist:
    ein Mittel zum Bereiten eines abgeschätzten Signales, das für das genannte digitale Signal repräsentativ ist, jedoch weniger Abtastwerte aufweist als das genannte digitale Signal,
    ein Mittel zum Bereiten eines Signalindexes, der für zumindest einen Abtastwert des genannten abgeschätzten Signales die Größe der genannten Signalkomponente relativ zu der Größe der genannten Geräuschkomponente darstellt,
    ein Mittel, um, basierend auf dem genannten Signalindex, Abtastwerte des genannten digitalen Signales auszuwählen, die eine ausreichend große Signalkomponente besitzen,
    ein Mittel zum Übertragen der genannten ausgewählten Abtastwerte des genannten digitalen Signales,
    ein Mittel zum Übertragen der genannten Abtastwerte des genannten digitalen, abgeschätzten Signales und
    ein Mittel zum Rekonstruieren des genannten digitalen Signales aus den genannten übertragenen ausgewählten Abtastwerten und den abgeschätzten Abtastwerten.
  29. Encoder nach Anspruch 28, bei dem das genannte digitale Signal ein Frequenzbereich-Sprachsignal ist, das eine zu übertragende Toninformation darstellt, und jeder Abtastwert des genannten abgeschätzten Signales ein spektraler Schätzwert des Frequenzbereichsignales in einem entsprechenden Frequenzband ist und bei dem das genannte Mittel zur Rekonstruktion des genannten Frequenzbereich-Sprachsignales aufweist:
    ein Mittel zum Generieren einer Zufallszahl für jeden nicht ausgewählten Abtastwert des genannten Frequenzbereich-Sprachsignales,
    ein Mittel, um aus zumindest einem genannten spektralen Schätzwert einen Geräuschschätzwert für die Größe einer Geräuschkomponente des nicht ausgewählten Abtastwertes zu bereiten,
    ein Mittel, um auf der Grundlage des genannten Geräuschschätzwertes einen Skalierungsfaktor zu erzeugen, und
    ein Mittel zum Skalieren der genannten Zufallszahl gemäß dem genannten Skalierungsfaktor, um einen rekonstruierten Abtastwert zu erzeugen, der für den genannten nicht ausgewählten Abtastwert repräsentativ ist.
  30. Encoder nach Anspruch 29, bei dem das genannte abgeschätzte Signal und das genannte Frequenzbereich-Sprachsignal je eine Reihe von Blöcken beinhalten, von denen jeder Block die genannte Toninformation über ein spezifiziertes Zeitfenster darstellt, und bei der das genannte Mittel zum Bereiten eines ersten Geräuschschätzwertes für einen laufenden Block aufweist:
    ein Mittel, um für einen voraufgehenden Block des genannten abgeschätzten Signales einen anfänglichen Geräuschschätzwert aus zumindest einem spektralen Schätzwert zu bereiten, der für ein Frequenzband des genannten voraufgehenden Blockes repräsentativ ist,
    ein Mittel, um auf Grundlage der Größe des genannten Signalindexes eine Anstiegszeitkonstante tr und eine Abfallzeitkonstante tf zu wählen,
    ein Mittel, um die genannte Anstiegszeitkonstante mit dem genannten anfänglichen Geräuschschätzwert zu addieren, um eine obere Schwelle zu bilden,
    ein Mittel, um die genannte Abfallzeitkonstante von dem genannten anfänglichen Geräuschschätzwert zu subtrahieren, um eine untere Schwelle zu bilden,
    ein Mittel zum Vergleichen eines laufenden spektralen Schätzwertes, der für das Frequenzband in dem genannten laufenden Block repräsentativ ist, mit der genannten oberen und genannten unteren Schwelle,
    ein Mittel, um den genannten laufenden Geräuschschätzwert gleich dem genannten laufenden spektralen Schätzwert zu setzen, wenn der genannte laufende spektrale Schätzwert zwischen den genannten Schwellen liegt,
    ein Mittel, um den genannten anfänglichen Geräuschschätzwert mit der genannten Abfallzeitkonstante zu dekrementieren, um den genannten laufenden Geräuschschätzwert zu bilden, wenn der genannte laufende spektrale Schätzwert unterhalb der genannten unteren Schwelle liegt, und
    ein Mittel, um den genannten anfänglichen Geräuschschätzwert mit der genannten Anstiegszeitkonstante zu inkrementieren, um den genannten laufenden Geräuschschätzwert zu bilden, wenn der genannte laufende spektrale Schätzwert oberhalb der genannten oberen Schwelle liegt.
  31. Encoder nach Anspruch 30, bei dem das genannte Mittel zum Erzeugen eines Skalierungsfaktors ein Mittel aufweist, um eine gewichtete Summe des genannten laufenden Geräuschschätzwertes und des genannten laufenden spektralen Schätzwertes zu erzeugen.
  32. Encoder nach Anspruch 31, bei dem das genannte Mittel zum Erzeugen der genannten gewichteten Summe aufweist:
    ein Mittel, um einen Geräuschkoeffizienten auf Grundlage des Wertes des genannten Signalindexes zu wählen,
    ein Mittel, um einen Tonkoeffizienten auf Grundlage des Wertes des genannten Signalindexes zu wählen,
    ein Mittel, um den genannten laufenden Geräuschschätzwert mit dem genannten Geräuschkoeffizienten zu multiplizieren,
    ein Mittel, um den genannten laufenden spektralen Schätzwert mit dem genannten Tonkoeffizienten zu multiplizieren,
    ein Mittel, um die Produkte der genannten Multiplikationen zu addieren, und
    ein Mittel, um den genannten Skalierungsfaktor aus dem Ergebnis der genannten Addition zu bilden.
EP92908518A 1991-03-05 1992-03-04 Sprachkodierer mit veränderlicher bitrate Expired - Lifetime EP0574523B1 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US665948 1984-10-29
US66457991A 1991-03-05 1991-03-05
US664579 1991-03-05
US66594891A 1991-03-06 1991-03-06
PCT/US1992/001844 WO1992015986A1 (en) 1991-03-05 1992-03-04 Variable bit rate speech encoder

Publications (3)

Publication Number Publication Date
EP0574523A1 EP0574523A1 (de) 1993-12-22
EP0574523A4 EP0574523A4 (de) 1995-03-01
EP0574523B1 true EP0574523B1 (de) 1999-07-21

Family

ID=27099005

Family Applications (1)

Application Number Title Priority Date Filing Date
EP92908518A Expired - Lifetime EP0574523B1 (de) 1991-03-05 1992-03-04 Sprachkodierer mit veränderlicher bitrate

Country Status (5)

Country Link
EP (1) EP0574523B1 (de)
JP (1) JP3130934B2 (de)
CA (1) CA2105387A1 (de)
DE (1) DE69229627T2 (de)
WO (1) WO1992015986A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450130A (en) * 1994-03-30 1995-09-12 Radius Inc. Method and system for cell based image data compression
US6707827B1 (en) * 1999-11-12 2004-03-16 Siemens Information & Communication Networks, Inc. Method and apparatus for optimizing audio response in telephony-over-LAN systems
DE10052626A1 (de) * 2000-10-24 2002-05-02 Alcatel Sa Adaptiver Geräuschpegelschätzer
EP2226794B1 (de) * 2009-03-06 2017-11-08 Harman Becker Automotive Systems GmbH Hintergrundgeräuschschätzung

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4696040A (en) * 1983-10-13 1987-09-22 Texas Instruments Incorporated Speech analysis/synthesis system with energy normalization and silence suppression
GB8421498D0 (en) * 1984-08-24 1984-09-26 British Telecomm Frequency domain speech coding
ATE73591T1 (de) * 1987-09-30 1992-03-15 Thomson Brandt Gmbh Verfahren zur uebertragung eines audio-signals.
US4991213A (en) * 1988-05-26 1991-02-05 Pacific Communication Sciences, Inc. Speech specific adaptive transform coder
US4964166A (en) * 1988-05-26 1990-10-16 Pacific Communication Science, Inc. Adaptive transform coder having minimal bit allocation processing
US4965830A (en) * 1989-01-17 1990-10-23 Unisys Corp. Apparatus for estimating distortion resulting from compressing digital data
US5042069A (en) * 1989-04-18 1991-08-20 Pacific Communications Sciences, Inc. Methods and apparatus for reconstructing non-quantized adaptively transformed voice signals
US5040217A (en) * 1989-10-18 1991-08-13 At&T Bell Laboratories Perceptual coding of audio signals

Also Published As

Publication number Publication date
EP0574523A4 (de) 1995-03-01
EP0574523A1 (de) 1993-12-22
JPH06506330A (ja) 1994-07-14
DE69229627D1 (de) 1999-08-26
JP3130934B2 (ja) 2001-01-31
WO1992015986A1 (en) 1992-09-17
CA2105387A1 (en) 1992-09-06
DE69229627T2 (de) 1999-12-02

Similar Documents

Publication Publication Date Title
US5317672A (en) Variable bit rate speech encoder
US5632003A (en) Computationally efficient adaptive bit allocation for coding method and apparatus
EP1914724B1 (de) Dual-Transformationskodierung von Audiosignalen
EP0709005B1 (de) Vom rechenaufwand her effiziente adaptive bitzuteilung für kodierverfahren und kodiereinrichtung
EP1914725B1 (de) Schnelle Gitter-Vektorquantisierung
EP0555016A2 (de) Dynamische Bitverteilung für dreidimensionale Teilbandbildkodierung
US7613603B2 (en) Audio coding device with fast algorithm for determining quantization step sizes based on psycho-acoustic model
RU2670797C9 (ru) Способ и устройство для формирования из представления hoa-сигналов в области коэффициентов смешанного представления упомянутых hoa-сигналов в пространственной области/области коэффициентов
EP0720316B1 (de) Adaptive Kodiervorrichtung für Digitaltonsignale und Bitverteilungsverfahren dafür
US4680797A (en) Secure digital speech communication
US5054075A (en) Subband decoding method and apparatus
EP0481374A2 (de) Verfahren und Einrichtung zur Transformationskodierung mit Teilbandanregung und dynamischer Bitzordnung
US20040196913A1 (en) Computationally efficient audio coder
US5649052A (en) Adaptive digital audio encoding system
EP1600946A1 (de) Verfahren und Vorrichtung zur Kodierung/Dekodierung eines digitalen Signals
JP2841765B2 (ja) 適応ビット割当て方法及び装置
EP0721257B1 (de) Bitverteilung für Mehrkanal-Audiokodierer auf Grund von wahrnehmungsgebundener Entropie
JPH05248972A (ja) 音声信号処理方法
WO2001033555A1 (en) Method of encoding an audio signal using a quality value for bit allocation
US20040225495A1 (en) Encoding apparatus, method and program
EP0574523B1 (de) Sprachkodierer mit veränderlicher bitrate
US7668715B1 (en) Methods for selecting an initial quantization step size in audio encoders and systems using the same
JP3297050B2 (ja) デコーダスペクトル歪み対応電算式適応ビット配分符号化方法及び装置
JP2003233397A (ja) オーディオ符号化装置、オーディオ符号化プログラム及びオーディオ符号化データ伝送装置
EP0708959B1 (de) Sprachkodierer/-dekodierer mit fester bitrate

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19930928

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB IT NL SE

A4 Supplementary search report drawn up and despatched

Effective date: 19950112

AK Designated contracting states

Kind code of ref document: A4

Designated state(s): DE FR GB IT NL SE

17Q First examination report despatched

Effective date: 19980120

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAG Despatch of communication of intention to grant

Free format text: ORIGINAL CODE: EPIDOS AGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB IT NL SE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: THE PATENT HAS BEEN ANNULLED BY A DECISION OF A NATIONAL AUTHORITY

Effective date: 19990721

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 19990721

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED.

Effective date: 19990721

REF Corresponds to:

Ref document number: 69229627

Country of ref document: DE

Date of ref document: 19990826

ET Fr: translation filed
NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
REG Reference to a national code

Ref country code: GB

Ref legal event code: IF02

REG Reference to a national code

Ref country code: GB

Ref legal event code: 732E

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20110304

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20110331

Year of fee payment: 20

Ref country code: GB

Payment date: 20110221

Year of fee payment: 20

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 69229627

Country of ref document: DE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 69229627

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20120303

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20120305

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20120303