EP3455854B1 - Adaptive audio codec method and apparatus - Google Patents
Adaptive audio codec method and apparatus Download PDFInfo
- Publication number
- EP3455854B1 EP3455854B1 EP17724255.9A EP17724255A EP3455854B1 EP 3455854 B1 EP3455854 B1 EP 3455854B1 EP 17724255 A EP17724255 A EP 17724255A EP 3455854 B1 EP3455854 B1 EP 3455854B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- signal
- quantized
- quantizer
- step size
- filter
- 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.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title claims description 70
- 238000000034 method Methods 0.000 title claims description 67
- 230000005236 sound signal Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 21
- 238000001914 filtration Methods 0.000 claims description 6
- 238000007493 shaping process Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 12
- 230000015654 memory Effects 0.000 description 8
- 238000005070 sampling Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/26—Pre-filtering or post-filtering
- G10L19/265—Pre-filtering, e.g. high frequency emphasis prior to encoding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/035—Scalar quantisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/26—Pre-filtering or post-filtering
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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
- G10L2019/0001—Codebooks
Definitions
- the description relates to systems, methods and articles to encode and decode audio signals.
- Differential pulse code modulation may be used to reduce the noise level or the bit rate of an audio signal.
- a difference between an input audio signal and a predictive signal may be quantized to produce an output encoded data stream of a reduced energy.
- the predictive signal of an encoder may be generated using a decoder including an inverse quantizer and a prediction circuit.
- Adaptive differential pulse code modulation varies a size of a quantization step of the quantizer (and inverse quantizer) to increase the efficiency in view of a varying dynamic range of an input signal.
- United States patent publication no. US 5974380 A describes a subband audio coder which employs perfect/non-perfect reconstruction filters, predictive/non-predictive subband encoding, transient analysis, and psycho-acoustic/minimum mean-square-error bit allocation over time, frequency and the multiple audio channels to encode/decode a data stream to generate high fidelity reconstructed audio.
- the audio coder windows the multi-channel audio signal such that the frame size, i.e. number of bytes, is constrained to lie in a desired range, and formats the encoded data so that the individual subframes can be played back as they are received thereby reducing latency.
- United States patent publication no. US 6493664 B1 describes encoding of prototype waveform components applicable to telecommunication systems which provides improved voice quality enabling a dual-channel mode of operation which permits more users to communicate over the same physical channel.
- a prototype word (PW) gain is vector quantized using a vector quantizer (VQ) that explicitly populates a codebook by representative steady state and transient vectors of PW gain for tracking the abrupt variations in speech levels during onsets and other non-stationary events, while maintaining the accuracy of the speech level during stationary conditions.
- VQ vector quantizer
- Embodiments comprise apparatus comprising: a decoder configured to generate decoded audio signals based on quantized signals, the decoder including:
- Embodiments comprise a method comprising: decoding an encoded audio signal based on a quantized signal using a feedback loop to generate a decoded audio signal, the decoding including:
- FIG. 1 is a functional block diagram of an embodiment of audio signal encoder 100 which may employ adaptive differential pulse-code modulation (ADPCM). As illustrated in Figure 1 , the encoder 100 has an adder circuit 110, an adaptive quantizer circuit 120, a decoder circuit 130 including an inverse quantizer circuit 134 and a predictor circuit 138, a quantizer step size control circuit 140, and an optional coder circuit 150.
- ADPCM adaptive differential pulse-code modulation
- an analog input audio signal to be encoded is received at a positive input 112 of the adder 110 of the encoder 100.
- a negative input 114 of the adder 110 receives a prediction signal generated by the decoder 130 as a feedback signal.
- the adder 110 generates a difference signal which is provided to the adaptive quantizer circuit 120.
- the adaptive quantizer circuit 120 may be an analog to digital converter which samples the received difference signal and generates an output signal representing the difference signal as a series of quantized signals representing different signal levels. For example, 8-bit words may be used to represent 256 different signal levels (e.g., 256 different steps having a uniform step size); 4 bits words may be used to represent 16 different signal levels; etc.
- coding such as Huffman coding and/or arithmetic coding
- coding circuit 150 may be employed on the quantized signal in an embodiment, by coding circuit 150, generating a coded signal output.
- the quantized signal output by the adaptive quantizer circuit 120 (or of the optional coder 150 when a coder is employed) is the output quantized signal or code words of the encoder 100.
- the quantizer step size control circuit 140 generates control signals to control a size of the quantization steps employed by the quantizer 120 (and the inverse quantizer 134), which may be varied to facilitate efficient transmission, storage, etc., in view of an input audio signal having a varying dynamic range.
- the inverse quantizer 134 of the decoder 130 generates a signal, such as an analog signal, based on the quantized signal output by the adaptive 25 quantizer and the current step size control signal set by the quantizer step size control circuit 140.
- the predictor circuit 138 may generate the prediction signal based on the output signal of the inverse quantizer 134 and historical data, such as recent quantized signal values and recent prediction signal values.
- One or more filters and one or more feedback loops may be employed by the predictor circuit 138.
- the encoder 100 of Figure 1 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the encoder 100.
- an embodiment of the encoder 100 generates quantized and, optionally, coded data from an input analog audio signal.
- a digital audio signal to be encoded e.g., to a reduced bitstream, may be received at the positive input 112 instead of an analog signal (e.g. , an 8-bit digital audio signal may be encoded as a 4-bit digital audio signal).
- the various components may be combined (e.g ., the quantizer step size control circuit 140 may be integrated into the adaptive quantizer 120 in some embodiments) or split into additional components (e.g ., the predictor circuit 138 may be split into multiple predictor circuits, may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof.
- FIG. 2 is a functional block diagram of an embodiment of an audio signal decoder 200 which may employ adaptive differential pulse-code modulation (ADPCM).
- the decoder 200 may be employed, for example, as the decoder 130 of Figure 1 , as a separate decoder to decode a received encoded signal, etc.
- the decoder 200 has optional decoding circuitry 250, an inverse quantizer circuit 234, a predictor circuit 238, an inverse quantizer step size control circuit 240 and an adder 270.
- a coded signal is received by the decoding circuitry 250, which converts the coded signal into a quantized signal.
- the quantized signal to be decoded is provided to the inverse quantizer 234 and to the inverse quantizer step size control circuit 240.
- the decoding circuitry 250 may typically be omitted and the same step size control circuit may be used to provide a step size control signal to the quantizer and to the inverse quantizer (see, Figure 1 ).
- the inverse quantizer 234 generates a signal, such as an analog signal, based on the quantized signal output by the decoding circuitry 250 (or received from a quantizer (see quantizer 120 of Figure 1 )) and the current step size set by the inverse quantizer step size control circuit 240.
- the output of the inverse quantizer 234 is provided to a first positive input of the adder 270.
- the output of the adder is provided to the predictor 238, which as illustrated comprises a Finite Impulse Response (FIR) filter.
- An output of the FIR filter is provided to a second positive input of the adder 270.
- FIR Finite Impulse Response
- the output of the decoder 200 is the output of the adder 270.
- the output of the predictor circuit 238 provides the prediction signal to the encoder (see the prediction signal provided to the negative input 114 of the adder 110 of Figure 1 ).
- the inverse quantizer 234, the inverse quantizer step size control circuit 240 and the predictor circuit 238 may typically operate in a similar manner to the corresponding components of an encoder, such as the encoder 100 of Figure 1 .
- an encoder such as the encoder 100 of Figure 1 .
- having the corresponding components operate in a similar manner in the encoder 100 and the decoder 200 facilitates using the quantized signal to generate the prediction signal and to control the step size in both the encoder 100 and the decoder 200, without needing to exchange additional control signals between the encoder 100 and the decoder 200.
- the decoder 200 of Figure 2 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the decoder 200.
- the components of the decoder 200 of Figure 2 are illustrated as separate components, the various components may be combined (e.g ., the inverse quantizer step size control circuit 240 may be integrated into the inverse quantizer 234 in some embodiments) or split into additional components (e.g ., the predictor circuit 238 may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof.
- FIG 3 is a functional block diagram of an embodiment of a quantizer step size control circuit 340, which may be employed, for example, in the embodiment of the encoder 100 of Figure 1 as the quantizer step size control circuit 140, or in the embodiment of the decoder 200 of Figure 2 as the inverse quantizer step size control circuit 240.
- the quantizer step size control circuit 340 comprises a log multiplier selector 342 which selects a log multiplier based on a current quantized signal word, as illustrated a word output by an adaptive quantizer 320.
- the current quantized signal word may be included in a bit stream being decoded by a decoder (see Figure 2 ).
- the log multiplier selector 342 may select a log multiplier based on historical data, such as previous quantized signal words, and may comprise a look-up table LUT, which may be updatable, for example, based on historical data, in a update download, etc.
- the log multiplier selector 342 may select a log multiplier based on statistical probabilities based on current and previous quantized signal words.
- the quantizer step size control circuit 340 comprises an adder 344 which receives at a first positive input the selected log multiplier, and provides an output to a delay circuit 346. The output of the delay circuit 346 is provided to a multiplier 348 and to an exponential circuit 350.
- the multiplier 348 multiplies the output of the delay circuit 346 by a scaling or leakage factor ⁇ , which may typically be close to and less than 1, and provides the result to a second positive input of the adder 344.
- the leakage factor may typically be a constant, but may be variable in some embodiments, for example, based on the previous step size control signal or other historical data.
- the selection of a scaling factor ⁇ as close to and less than 1 facilitates reducing the impact of selection of an incorrect step size, for example due to a transmission error, as the introduced error will decay away.
- the exponential circuit 350 in operation, generates a step-size control signal based on the output of the delay circuit 346.
- the step-size control signal is provided to the adaptive quantizer 320 and to an inverse quantizer 334.
- the quantizer step size control circuit 340 operates in a logarithmic manner, which may simplify the calculations. Some embodiments may operate in a linear manner, and may, for example, employ a multiplier instead of the adder 244, and an exponential circuit instead of the multiplier 246.
- the quantizer step-size control circuit 340 as illustrated operates in a logarithmic manner, and the step sizes selected based on the step size control signal vary in an exponential manner.
- Figure 3 comprises one or more processors P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the quantizer step size control circuit 340.
- FIG 4 is a functional block diagram of an audio signal encoder 400 which may employ adaptive differential pulse-code modulation (ADPCM).
- the audio signal encoder 400 of an embodiment provides added bandwidth control, facilitates avoiding quantizer overload, and includes adaptive noise shaping.
- the encoder 400 has a low pass filter 475, an adaptive noise shaping filter 480, an adder circuit 410, a variable-rate adaptive quantizer circuit 420, a decoder circuit 430 including an inverse quantizer circuit 434 and a predictor circuit 438, a quantizer step size and average bit rate control circuit 440, a coder 450 and bit stream assembler 485.
- ADPCM adaptive differential pulse-code modulation
- an analog input audio signal to be encoded is received at an input of an input filter, as illustrated the low pass filter 475.
- the low pass filter 475 facilitates improving the signal to noise ratio.
- the low pass filter 475 may, for example, be a FIR filter having a 25 kHz edge and a 30 kHz stop band, which has been found to provide excellent results for data sampled at 88.2 or 96 kHz.
- Figure 5 illustrates an example frequency response of an embodiment of the low pass filter 475 applied to a sampling rate of 96 kHz.
- Using a low-pass filter and a corresponding fixed predictor filter employing control parameters based on the control parameters of the input filter facilitates obtaining a substantial prediction gain for an input signal when a sufficiently high sampling rate is employed, which in turn facilitates obtaining a desired minimum signal to noise ratio.
- sampling rates below 48 kHz e.g., 44.1 and 48 kHz
- the output of the low pass filter 475 is provided to the adaptive noise shaping filter 480.
- the low pass filter 475 may be omitted, and the signal to be encoded may be input to the adaptive noise shaping filter 480 instead of to the low pass filter 475.
- the adaptive noise shaping filter 480 may be omitted or selectively bypassed.
- the adaptive noise shaping filter 480 may be omitted or bypassed when high bit rate signal encoding is employed.
- a band pass filter may be employed instead of a low pass filter, with correspond adjustments to the predictor filter.
- an input filter e.g., a band pass filter having fixed control parameters and configured to limit a bandwidth of an input signal to less than seventy-five percent of the available bandwidth based on the sampling frequency
- the corresponding decoder may include a predictor circuit having fixed control parameters based on a frequency response of the filter. Limiting the bandwidth of the input signal using the input filter and setting the control parameters of the predictor circuit based on a frequency response of the input filter facilitates obtaining a substantial prediction gain for an input signal when a sufficiently high sampling rate is employed, which in turn facilitates obtaining a desired minimum signal to noise ratio.
- the adaptive noise shaping filter 480 may be, for example, a low-order all-zero linear prediction filter. Real (not complex) coefficients may be employed.
- the adaptive noise shaping filter 480 is an all zero adaptive noise shaping filter which flattens the spectrum of the signal received from the low pass filter 475, while maintaining the overall spectral slope and sufficient masking to maintain a transparent codec (e.g., the compression artifacts are generally imperceptible).
- a transparent codec e.g., the compression artifacts are generally imperceptible
- an all-pole filter using the same coefficients may be used to restore the original spectral shape.
- the adaptive noise shaping filter 480 preserves the whiteness criteria for the predictor circuit 438.
- the low-order noise shaping filter 480 may be adjusted to not flatten signals over an edge frequency of a low-pass filter (e.g . 25 kHz, which may not exist in a signal filtered by a low pass filter 475). As noted above, the missing energy at high frequencies facilitates a higher prediction gain. Filters other than linear prediction filters may be employed as the noise shaping filters.
- the adaptive noise shaping filter 480 provides a filtered output signal to a positive input 412 of the adder 410.
- the adaptive noise shaping filter 480 also provides a signal including adaptive noise filter setting information and/or synchronization information, which may be used to communicate adaptive noise filter setting and synchronization information to a decoder, such as the decoder 700 of Figure 7 , which includes a corresponding inverse noise shaping filter 780.
- the setting and synchronization information may be transmitted periodically, such as once for every 512 sample block.
- the adaptive noise shaping filter control information may be implicit in the code words of the bit stream. For example, when the code words of the bit stream indicate an average bit rate above a threshold average bit rate is being employed, this may also indicate that adaptive noise shaping is being bypassed.
- a negative input 414 of the adder 410 receives a prediction signal generated by the decoder 430 as a feedback signal.
- the adder 410 generates a difference signal which is provided to the variable rate adaptive quantizer circuit 420.
- the variable rate adaptive quantizer circuit 420 generates an output signal representing the difference signal as a series of quantization signals or words.
- the size of the quantization signals is not fixed, and the average length may be adjusted using the output of a multiplier table of a step size and average bit rate controller 440, as discussed in more detail below.
- the output of the variable rate adaptive quantizer circuit 420 is provided to the step size and average bit rate controller 440, the inverse quantizer 434 and the coder 450.
- the quantizer step and average bit rate control circuit 440 generates one or more control signals to control a size of the quantization steps. This implicitly determines an average length of the quantization signal employed by the quantizer 420 (and the inverse quantizer 434), which may be varied by adjustment of the multiplier table to facilitate efficient coding in view of an input audio signal having a varying dynamic range.
- Figure 6 illustrates an embodiment of a method 600 of generating code words and controlling changes in step sizes and average bit rate that may be employed, for example, by the encoder 400 of Figure 4 .
- the method starts at 602 and proceeds to 604.
- the loading factor L factor may be selected so as to maintain a desired average bit rate.
- the load factor may typically be between 0.5 and 16. In some embodiments, a maximum step size may be employed.
- Changing the log multiplier m(c n /L factor ) changes the bit rate and step size, and the values stored in the look-up-table of the log multiplier selector (see Figure 8 ) may be selected so as to cause the adaptive quantizer 420 and inverse quantizer 434 to implement the desired changes in the step size and bit rate. For example, higher log multipliers may indicate an increased step size and lower bit rate to the quantizer 420 and inverse quantizer 434.
- the look-up table may be indexed based on the result of the current quantization value c n divided by the loading factor L factor .
- values in a look-up-table may be selected such that the log multiplier monotonically increases as the current quantization value c n increases, and the table of multipliers may go from a negative value for small c n to a positive value for large c n .
- the method 600 proceeds from 606 to 608.
- the encoder 400 determines whether to continue encoding of a received signal. When it is determined at 608 to continue encoding of a received signal, the method returns to 604 to process the next quantized signal word. When it is not determined at 608 to continue encoding of a received signal, the method proceeds to 610, where other processing may occur, such as generating an escape code to indicate the received signal has terminated, etc. The method proceeds from 610 to 612, where the method 600 terminates.
- an encoder 400 may perform other acts not shown in Figure 6 , may not perform all of the acts shown in Figure 6 , or may perform the acts of Figure 6 in a different order.
- the inverse quantizer 434 of the decoder 430 generates a signal, such as an analog signal, based on the quantized signal output c n by the variable rate adaptive quantizer 420 and the current step size d n .
- the predictor circuit 438 may generate the prediction signal based on the output signal of the inverse quantizer 434 and historical data, such as recent coded data and recent prediction values, as discussed in more detail below with reference to Figure 7 .
- the predictor circuit 438 may employ a FIR filter with coefficients selected based on the frequency response of the low-pass filter 475, as discussed in more detail below with reference to Figure 7 . These coefficients may be fixed, and may be selected so as to facilitate maintaining a sufficient signal to noise ratio for anticipated input signal characteristics.
- adaptive quantizer 120 of Figure 1 which may be an eight-bit quantizer, a four-bit quantizer, etc.
- adaptive quantizer 120 of Figure 1 may be an eight-bit quantizer, a four-bit quantizer, etc.
- the quantized signal output by the variable rate adaptive quantizer circuit 420 (or of the optional coder 450 when a coder is employed) is the output quantized signal of the encoder 400.
- coding such as Huffman coding and/or arithmetic coding, may be employed on the quantized signal in an embodiment, by coding circuit 450, generating a coded signal output of the encoder 400.
- the coder 450 converts quantized signal words into code words, for example, using one or more look-up tables. Quantized signal words which are used less frequently may be assigned to larger code words, and quantized signal words which are used more frequently may be assigned to smaller code words to increase the efficiency of the coder 400.
- the coder 450 optionally provides escape coding in an embodiment.
- escape code may be sent instead of a code word from the code book, with the escape coding indicating how the quantized signal value or information will be transmitted (e.g ., that the actual quantized signal is being transmitted, that the next code word is the quantized signal value instead of a code word, that a difference between a maximum/minimum level is being transmitted, etc.).
- an escape code may indicate that a channel of an encoded signal is being discontinued or is not present ( e.g ., only one channel of a stereo signal is being encoded).
- an escape code may indicate an end of an encoded signal.
- the bit stream assembler 485 receives the code words output by the coder 450 and the adaptive noise shaping filter control/synchronization information output by the adaptive noise shaping filter 480 and assembles a bit stream for transmission to a decoder and/or storage.
- data packets may be assembled by the bit stream assembler 485, such as packets including a 512 sample block and adaptive noise shaping filter control/synchronization information for the sample block.
- FIG. 7 is a functional block diagram of an embodiment of an audio signal decoder 700 which may employ adaptive differential pulse-code modulation (ADPCM).
- the decoder 700 may be employed, for example, as the decoder 430 of Figure 4 , as a separate decoder to decode a received encoded signal, etc.
- the decoder 700 has a bit stream disassembler 785, optional code word decoding circuitry 750, an inverse quantizer circuit 734, a predictor circuit 738, an inverse quantizer step size and average bit rate control circuit 740, an adder 770, an inverse adaptive noise shaping filter 780 and a low pass filter 775.
- ADPCM adaptive differential pulse-code modulation
- an assembled signal is received by the bit stream disassembler 785 and split into a coded signal component and an adaptive noise shaping filter control and synchronization signal component.
- the coded signal component is provided to the decoding circuitry 750, which converts the coded signal into a quantized signal c n . Escape coding may be used in an embodiment, as discussed above with reference to the coder 450 of Figure 4 .
- the quantized signal to be decoded is provided to the inverse quantizer 734 and to the inverse quantizer step size and average bit rate control circuit 740.
- the decoding circuitry 750 may typically be omitted and the same step size and average bit rate control circuit may be used to provide a step size control signal to the quantizer and to the inverse quantizer (see, Figure 4 ).
- the inverse quantizer 734 generates a signal, such as an analog signal, based on the quantized signal output by the decoding circuitry 750 (or received from a quantizer (see quantizer 420 of Figure 4 )) and the current step size set by the inverse quantizer step size and average bit rate control circuit 740.
- the output of the inverse quantizer 734 is provided to a first positive input of the adder 770.
- the output of the adder 770 is provided to the predictor 738, which as illustrated comprises a Finite Impulse Response (FIR) filter. An output of the FIR filter is provided to a second positive input of the adder 770.
- FIR Finite Impulse Response
- the output of the decoder 700 is provided to an inverse filter, as illustrated an inverse adaptive noise shaping filter 780.
- the inverse adaptive noise shaping filter 780 may be, for example, a low-order all pole linear prediction filter.
- the inverse adaptive noise shaping filter 780 is an all-pole adaptive noise shaping filter which restores the spectrum of the signal using the using the same coefficients used by a corresponding adaptive noise shaping filter of a corresponding encoder ( e.g ., the adaptive noise shaping filter 480 of Figure 4 ) as the coefficients of the all-pole filter.
- This information may be conveyed in the bitstream and provided to the inverse adaptive noise shaping filter 780 by the disassembler 785.
- the setting and synchronization information may be provided periodically, such as once for every 512 sample block.
- the inverse adaptive noise shaping filter control information may be implicit in the code words of the bit stream, for example, as discussed above with reference to Figure 4 .
- the output of the inverse adaptive noise shaping filter 780 is according to the invention filtered by a low-pass filter 775. This facilitates removing high-frequency energy restored when the original spectrum of the signal is restored by the inverse adaptive noise shaping filter 780.
- the low-pass filter 775 of the decoder 700 may employ the same coefficients used by a corresponding low-pass filter of an encoder ( e.g ., the low-pass filter 475 of Figure 4 ).
- the output of the predictor circuit 738 provides the prediction signal to the encoder (see the prediction signal provided to the negative input 414 of the adder 410 of Figure 4 ).
- the inverse quantizer 734, the inverse quantizer step and average bit rate control circuit 740 and the predictor circuit 738 may typically operate in a similar manner to the corresponding components of an encoder, such as the encoder 400 of Figure 4 .
- having the corresponding components operate in a similar manner in the encoder 400 and the decoder 700 facilitates using the quantized signal to generate the prediction signal and to control the step size and average bit rate in both the encoder 400 and the decoder 700, without needing to exchange additional control signals between the encoder 400 and the decoder 700.
- a system including an embodiment of the encoder 400 and an embodiment of the decoder 700 may operate using the same control parameters for the corresponding components ( e.g ., using the same filter coefficients).
- the decoder 700 of Figure 7 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the decoder 700.
- the components of the decoder 700 of Figure 7 are illustrated as separate components, the various components may be combined (e.g ., the inverse quantizer step and average rate control circuit 740 may be integrated into the inverse quantizer 734 in some embodiments) or split into additional components (e.g ., the predictor circuit 738 may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof.
- FIG 8 is a functional block diagram of an embodiment of a quantizer step size and average rate control circuit 840, which may be employed, for example, in the embodiment of the encoder 400 of Figure 4 as the quantizer step size and average bit rate control circuit 440, or in the embodiment of the decoder 700 of Figure 7 as the inverse quantizer step size and average bit rate control circuit 740.
- the quantizer step size and average bit rate control circuit 840 comprises a multiplier 852, which receives a current quantized signal word c n and an inverse of a loading factor L factor , and a log multiplier selector 842 which selects a log multiplier based on the current quantized signal word and the loading factor.
- the current quantized signal word is a word output by variable rate adaptive quantizer 820.
- the current quantized signal word may be included in a bit stream being decoded by a decoder (see Figure 7 ).
- the log multiplier selector 842 may select a log multiplier based on historical data, such as previous quantized signal words, and may comprise a look-up table LUT, which may be updatable, for example, based on historical data, in a update download, etc.
- the log multiplier selector 842 may select a log multiplier based on statistical probabilities based on current and previous quantized signal words.
- the quantized step size and average bit rate control circuit 840 comprises an adder 844 which receives at a first positive input the selected log multiplier, and provides an output to a delay circuit 846.
- the output of the delay circuit 846 is provided to a multiplier 848 and to an exponential circuit 850.
- the multiplier 848 multiplies the output of the delay circuit 846 by a scaling or leakage factor ⁇ , which may typically be close to and less than 1, and provides the result to a second positive input of the adder 844.
- the leakage factor may typically be a constant, but may be variable in some embodiments, for example, based on the previous step size control signal or other historical data.
- the selection of a scaling factor ⁇ as close to and less than 1 facilitates reducing the impact of selection of an incorrect step size, for example due to a transmission error, as the introduced error will decay away.
- the exponential circuit 850 in operation, generates a step-size control signal based on the output of the delay circuit 846.
- the step-size and average bit rate control signal is provided to a variable rate adaptive quantizer 820 and to an inverse quantizer 834.
- the quantizer step size and average bit rate control circuit 840 operates in a logarithmic manner, which may simplify the calculations. Some embodiments may operate in a linear manner, and may, for example, employ a multiplier instead of the adder 844, and an exponential circuit instead of the multiplier 846, etc.
- the step-size and average bit rate control circuit as illustrated operates in a logarithmic manner, and the step sizes selected based on the step size control signal vary in an exponential manner.
- the quantizer step size and average bit rate control circuit 840 may operate in accordance with equations 3 or equation 4, and select log multiplier values to populate the look-up tables as discussed above in more detail with reference to Figures 4 and 6 .
- Figure 8 comprises one or more processors P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the quantizer step size and average bit rate control circuit 840.
- the illustrated components such as adders, multiplier, etc., may be implemented in various ways, such as, using discrete circuitry, executing instructions stored in a memory, using look-up tables, etc., and various combinations thereof.
- Figure 9 illustrates an embodiment of a method 900 of generating code words from an audio signal and controlling changes in quantizer step sizes and average bit rate that may be employed, for example, by the encoder 400 of Figure 4 when escape coding is employed.
- the method starts at 902 and proceeds to 904.
- the encoder 400 collects a block of audio samples and proceeds to 906.
- the encoder 400 processes a sample of each channel. Parallel processing of the samples of the channels may be employed.
- the adaptive quantizer 420 determines whether the channel has an audio sample to be processed. If the channel has an audio sample, the method 900 proceeds from 906a to 908.
- the coder 450 determines whether a quantized sample has a corresponding symbol in a code book, as illustrated, a Huffman code book. When it is determined that the quantized sample has a corresponding symbol in the code book, the method proceeds from 908 to 910.
- the coder 450 writes the corresponding symbol into the bitstream. The method 900 proceeds from 910 to 914.
- the method 900 proceeds from 908 to 912.
- the coder writes an embed escape code and a quantized sample value into the bitstream, as illustrated an embed escape code followed by a 16 bit quantized sample value.
- Other methods of transmitting a quantized sample value without a corresponding code word in the code book may be employed, as discussed in more detail above. The method proceeds from 912 to 914.
- the step-size and average bit rate control circuit 440 updates the step size control signal for the corresponding channel, as discussed in more detail above. For example, the equations 1, 3 and 4 may be employed.
- the method 900 proceeds from 914 to 906 to process the next sample for the channel.
- the adaptive quantizer determines whether the channel had audio data, but has no more samples in the block to be processed. For example, a channel may have ended prematurely.
- the method 900 proceeds from 906b to 916.
- the coder 450 writes an end-of-channel escape code into the bitstream and processing of the channel in the current block terminates. The method 900 proceeds from 916 to 906.
- the encoder 400 determines whether all the audio data in the block for all of the channels has been processed. When it is determined at 906c that all the audio data in the block has been processed, the method 900 proceeds from 906c to 918. At 918, the encoder 400 determines whether there is more data to start a new block. When it is determined at 918 that there is more data to start a new block, the method 900 proceeds from 918 to 904, where the next block of audio samples is processed. When it is not determined at 918 that there is data to start a new block, the method proceeds to 920. At 920, the coder 450 writes an end of stream escape code into the bit stream. The method proceeds from 920 to 930, where processing of the audio signal terminates.
- an encoder 400 may perform other acts not shown in Figure 9 , may not perform all of the acts shown in Figure 9 , or may perform the acts of Figure 9 in a different order.
- Figure 10 illustrates an embodiment of a method 1000 of generating a quantized signal value from a code word that may be employed, for example, by the decoder 700 of Figure 7 when escape coding is employed.
- the method 1000 may process code words for multiple channels of a signal in parallel. For convenience, the method 1000 will be described with reference to the decoder 700 of Figure 7 .
- the method starts at 1002 and proceeds to 1004.
- the decoding circuitry 750 receives a code word (or code words when multiple channels are being processed in parallel) and proceeds to 1006.
- the decoding circuitry 750 determines whether the code word (symbol) has a corresponding quantized sample value in a code book, such as a Huffman code book. When it is determined that the code word (symbol) has a corresponding quantized sample value in a code book, the method 1000 proceeds from 1006 to 1008, where the corresponding quantized sample value is output by the decoding circuitry 750 as the current quantized signal value c n . The method 1000 proceeds from 1008 to 1004 to process the next code word of the channel (and code words of other channels of the coded signal). When it is not determined at 1006 that the code word (symbol) has a corresponding quantized sample value in a code book, the method 1000 proceeds from 1006 to 1010.
- the decoding circuitry 750 determines whether the code word is an embed escape code. When it is determined at 1010 that the code word is an embed escape code, the method 1000 proceeds from 1010 to 1012, where the next code word of the channel is output by the decoding circuitry 750 as the current quantized signal value c n . The method 1000 proceeds from 1012 to 1004 to process the next code word of the channel (and code words of other channels of the coded signal). When it is not determined at 1010 that the code word is an embed escape code, the method 1000 proceeds from 1010 to 1014.
- the decoding circuitry 750 determines whether the code word is an end of channel escape code. When it is determined at 1014 that the code word is an end of channel escape code, the method 1000 proceeds from 1014 to 1016, where processing of the signal channel is terminated. The method 1000 proceeds from 1016 to 1004 to process the next code word of the remaining channels of the signal. When it is not determined at 1014 that the code word is an end of channel escape code, the method 1000 proceeds from 1014 to 1018.
- the decoding circuitry 750 determines whether the code word is an end of signal escape code. When it is determined at 1018 that the code word is an end of signal escape code, the method 1000 proceeds from 1018 to 1020, where processing of the signal is terminated. The method 1000 proceeds from 1020 to 1022 where the method 1000 terminates. When it is not determined at 1018 that the code word is an end of signal escape code, the method 1000 proceeds from 1018 to 1004 to process the next code word (or block) of the channel (and code words of other channels of the coded signal).
- Some embodiments of a decoder 700 may perform other acts not shown in Figure 10 , may not perform all of the acts shown in Figure 10 , or may perform the acts of Figure 10 in a different order.
- a computer readable medium comprising a computer program adapted to perform one or more of the methods or functions described above.
- the medium may be a physical storage medium, such as for example a Read Only Memory (ROM) chip, or a disk such as a Digital Versatile Disk (DVD-ROM), Compact Disk (CD-ROM), a hard disk, a memory, a network, or a portable media article to be read by an appropriate drive or via an appropriate connection, including as encoded in one or more barcodes or other related codes stored on one or more such computer-readable mediums and being readable by an appropriate reader device.
- ROM Read Only Memory
- DVD-ROM Digital Versatile Disk
- CD-ROM Compact Disk
- some or all of the methods and/or functionality may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), digital signal processors, discrete circuitry, logic gates, standard integrated circuits, controllers ( e.g ., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc., as well as devices that employ RFID technology, and various combinations thereof.
- ASICs application-specific integrated circuits
- DSPs digital signal processors
- discrete circuitry e.g ., digital signal processors
- logic gates e.g., logic gates
- standard integrated circuits e.g ., controllers (e.g ., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- The description relates to systems, methods and articles to encode and decode audio signals.
- Differential pulse code modulation (DPCM) may be used to reduce the noise level or the bit rate of an audio signal. A difference between an input audio signal and a predictive signal may be quantized to produce an output encoded data stream of a reduced energy. The predictive signal of an encoder may be generated using a decoder including an inverse quantizer and a prediction circuit. Adaptive differential pulse code modulation (ADPCM) varies a size of a quantization step of the quantizer (and inverse quantizer) to increase the efficiency in view of a varying dynamic range of an input signal.
- An article by Dietrich, M, published in the Proceedings of International Zurich Seminar Digital Communication, 1 January 1984, pages 15-21, describes Performance and Implementation of a Robust ADPCM Algorithm for Wideband Speech coding with 64 kbit/s.
- United States patent publication no.
US 5974380 A describes a subband audio coder which employs perfect/non-perfect reconstruction filters, predictive/non-predictive subband encoding, transient analysis, and psycho-acoustic/minimum mean-square-error bit allocation over time, frequency and the multiple audio channels to encode/decode a data stream to generate high fidelity reconstructed audio. The audio coder windows the multi-channel audio signal such that the frame size, i.e. number of bytes, is constrained to lie in a desired range, and formats the encoded data so that the individual subframes can be played back as they are received thereby reducing latency. - An article by Crochiere, R, published in the Bell System Technical Journal, AT&T, Short Hills, NY, US, vol. 60, no. 7, 1 September 1981, pages 1633-1653, describes a Digital signal processor: Sub-band coding.
- United States patent publication no.
US 6493664 B1 describes encoding of prototype waveform components applicable to telecommunication systems which provides improved voice quality enabling a dual-channel mode of operation which permits more users to communicate over the same physical channel. A prototype word (PW) gain is vector quantized using a vector quantizer (VQ) that explicitly populates a codebook by representative steady state and transient vectors of PW gain for tracking the abrupt variations in speech levels during onsets and other non-stationary events, while maintaining the accuracy of the speech level during stationary conditions. - Embodiments comprise apparatus comprising:
- a low-pass filter having determined filter coefficients and configured to filter an input audio signal;
- an encoder configured to encode the filtered input audio signal using a feedback loop, the encoding including:
- generating a quantized signal based on a difference signal using an adaptive quantizer;
- generating, by a decoder, a feedback signal based on the quantized signal using an inverse quantizer and a predictor circuit, the predictor circuit having determined control parameters based on a frequency response of the low-pass filter; and
- generating the difference signal based on the feedback signal and filtered input audio signal.
- Embodiments comprise a method comprising:
- filtering an input audio signal, the filtering including using a low-pass filter having determined filter coefficients; and
- encoding the filtered input audio signal using a feedback loop, the encoding including:
- generating a quantized signal based on a difference signal using an adaptive quantizer;
- generating a feedback signal based on the quantized signal using an inverse quantizer and a predictor circuit having determined control parameters based on a frequency response of the low-pass filter; and
- generating the difference signal based on the feedback signal and the filtered input audio signal.
- Embodiments comprise apparatus comprising:
a decoder configured to generate decoded audio signals based on quantized signals, the decoder including: - an inverse quantizer configured to inverse quantize the quantized signals; and
- a predictor circuit configured to generate prediction signals based on the inverse quantized signals, the apparatus further comprising:
a low-pass filter having determined filter coefficients and configured to filter the decoded audio signals, wherein the predictor circuit has determined control parameters based on a frequency response of the low-pass filter. - Embodiments comprise a method comprising:
decoding an encoded audio signal based on a quantized signal using a feedback loop to generate a decoded audio signal, the decoding including: - inverse quantizing the quantized signal using an inverse quantizer; and
- generating a prediction signal based on the inverse quantized signal using a predictor circuit, the method further comprising:
filtering the decoded audio signal using a low-pass filter having determined filter coefficients, wherein the predictor circuit has determined control parameters based on a frequency response of the low-pass filter. -
-
Figure 1 is a functional block diagram of an embodiment of an ADPCM encoder. -
Figure 2 is a functional block diagram of an embodiment of an ADPCM decoder. -
Figure 3 is a functional block diagram of an embodiment of a quantizer step size control circuit. -
Figure 4 is a functional block diagram of an embodiment of an ADPCM encoder. -
Figure 5 illustrates an example frequency response of an embodiment of a low pass filter. -
Figure 6 illustrates an embodiment of a method of controlling changes in adaptive quantizer step sizes. -
Figure 7 is a functional block diagram of an embodiment of an ADPCM decoder. -
Figure 8 is a functional block diagram of an embodiment of a quantizer step size and bit rate control circuit. -
Figure 9 illustrates an embodiment of a method of generating code words and controlling changes in adaptive quantizer step sizes. -
Figure 10 illustrates an embodiment of a method of generating a quantized signal value from a code word. - In the following description, certain details are set forth in order to provide a thorough understanding of various embodiments of devices, systems, methods and articles. However, one of skill in the art will understand that other embodiments may be practiced without these details. In other instances, well known structures and methods associated with, for example, finite impulse response filters, encoders, decoders, audio and digital signal processing circuitry, etc., such as transistors, multipliers, integrated circuits, etc., have not been shown or described in detail in some figures to avoid unnecessarily obscuring descriptions of the embodiments.
- Unless the context requires otherwise, throughout the specification and claims which follow, the word "comprise" and variations thereof, such as "comprising," and "comprises," are to be construed in an open, inclusive sense, that is, as "including, but not limited to."
- Reference throughout this specification to "one embodiment," or "an embodiment" means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment," or "in an embodiment" in various places throughout this specification are not necessarily referring to the same embodiment, or to all embodiments. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments to obtain further embodiments.
- The headings are provided for convenience only, and do not interpret the scope or meaning of this disclosure.
- The sizes and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes of various elements and angles are not drawn to scale, and some of these elements are enlarged and positioned to improve drawing legibility. Further, the particular shapes of the elements as drawn are not necessarily intended to convey any information regarding the actual shape of particular elements, and have been selected solely for ease of recognition in the drawings.
-
Figure 1 is a functional block diagram of an embodiment ofaudio signal encoder 100 which may employ adaptive differential pulse-code modulation (ADPCM). As illustrated inFigure 1 , theencoder 100 has anadder circuit 110, anadaptive quantizer circuit 120, adecoder circuit 130 including aninverse quantizer circuit 134 and apredictor circuit 138, a quantizer stepsize control circuit 140, and anoptional coder circuit 150. - In operation of an embodiment, an analog input audio signal to be encoded is received at a
positive input 112 of theadder 110 of theencoder 100. Anegative input 114 of theadder 110 receives a prediction signal generated by thedecoder 130 as a feedback signal. Theadder 110 generates a difference signal which is provided to theadaptive quantizer circuit 120. Theadaptive quantizer circuit 120 may be an analog to digital converter which samples the received difference signal and generates an output signal representing the difference signal as a series of quantized signals representing different signal levels. For example, 8-bit words may be used to represent 256 different signal levels (e.g., 256 different steps having a uniform step size); 4 bits words may be used to represent 16 different signal levels; etc. Optionally, coding, such as Huffman coding and/or arithmetic coding, may be employed on the quantized signal in an embodiment, by codingcircuit 150, generating a coded signal output. The quantized signal output by the adaptive quantizer circuit 120 (or of theoptional coder 150 when a coder is employed) is the output quantized signal or code words of theencoder 100. The quantizer stepsize control circuit 140 generates control signals to control a size of the quantization steps employed by the quantizer 120 (and the inverse quantizer 134), which may be varied to facilitate efficient transmission, storage, etc., in view of an input audio signal having a varying dynamic range. - The
inverse quantizer 134 of thedecoder 130 generates a signal, such as an analog signal, based on the quantized signal output by the adaptive 25 quantizer and the current step size control signal set by the quantizer stepsize control circuit 140. Thepredictor circuit 138 may generate the prediction signal based on the output signal of theinverse quantizer 134 and historical data, such as recent quantized signal values and recent prediction signal values. One or more filters and one or more feedback loops may be employed by thepredictor circuit 138. - As illustrated, the
encoder 100 ofFigure 1 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of theencoder 100. In operation, an embodiment of theencoder 100 generates quantized and, optionally, coded data from an input analog audio signal. In operation of an embodiment, a digital audio signal to be encoded (e.g., to a reduced bitstream, may be received at thepositive input 112 instead of an analog signal (e.g., an 8-bit digital audio signal may be encoded as a 4-bit digital audio signal). - Although the components of the
encoder 100 ofFigure 1 are illustrated as separate components, the various components may be combined (e.g., the quantizer stepsize control circuit 140 may be integrated into theadaptive quantizer 120 in some embodiments) or split into additional components (e.g., thepredictor circuit 138 may be split into multiple predictor circuits, may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof. -
Figure 2 is a functional block diagram of an embodiment of anaudio signal decoder 200 which may employ adaptive differential pulse-code modulation (ADPCM). Thedecoder 200 may be employed, for example, as thedecoder 130 ofFigure 1 , as a separate decoder to decode a received encoded signal, etc. As illustrated inFigure 2 , thedecoder 200 hasoptional decoding circuitry 250, aninverse quantizer circuit 234, apredictor circuit 238, an inverse quantizer stepsize control circuit 240 and anadder 270. - In operation of an embodiment, a coded signal is received by the
decoding circuitry 250, which converts the coded signal into a quantized signal. The quantized signal to be decoded is provided to theinverse quantizer 234 and to the inverse quantizer stepsize control circuit 240. When thedecoder 200 is employed in an encoder, such as theencoder 100 ofFigure 1 , thedecoding circuitry 250 may typically be omitted and the same step size control circuit may be used to provide a step size control signal to the quantizer and to the inverse quantizer (see,Figure 1 ). Theinverse quantizer 234 generates a signal, such as an analog signal, based on the quantized signal output by the decoding circuitry 250 (or received from a quantizer (seequantizer 120 ofFigure 1 )) and the current step size set by the inverse quantizer stepsize control circuit 240. The output of theinverse quantizer 234 is provided to a first positive input of theadder 270. The output of the adder is provided to thepredictor 238, which as illustrated comprises a Finite Impulse Response (FIR) filter. An output of the FIR filter is provided to a second positive input of theadder 270. - When the
decoder 200 is employed as a decoder to provide a decoded signal as an output, the output of thedecoder 200 is the output of theadder 270. When thedecoder 200 is employed in an encoder as part of a feedback loop, such as thedecoder 130 used in theencoder 100 ofFigure 1 , the output of thepredictor circuit 238 provides the prediction signal to the encoder (see the prediction signal provided to thenegative input 114 of theadder 110 ofFigure 1 ). - The
inverse quantizer 234, the inverse quantizer stepsize control circuit 240 and thepredictor circuit 238 may typically operate in a similar manner to the corresponding components of an encoder, such as theencoder 100 ofFigure 1 . For example, with reference toFigures 1 and2 , having the corresponding components operate in a similar manner in theencoder 100 and thedecoder 200 facilitates using the quantized signal to generate the prediction signal and to control the step size in both theencoder 100 and thedecoder 200, without needing to exchange additional control signals between theencoder 100 and thedecoder 200. - As illustrated, the
decoder 200 ofFigure 2 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of thedecoder 200. Although the components of thedecoder 200 ofFigure 2 are illustrated as separate components, the various components may be combined (e.g., the inverse quantizer stepsize control circuit 240 may be integrated into theinverse quantizer 234 in some embodiments) or split into additional components (e.g., thepredictor circuit 238 may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof. -
Figure 3 is a functional block diagram of an embodiment of a quantizer stepsize control circuit 340, which may be employed, for example, in the embodiment of theencoder 100 ofFigure 1 as the quantizer stepsize control circuit 140, or in the embodiment of thedecoder 200 ofFigure 2 as the inverse quantizer stepsize control circuit 240. As illustrated, the quantizer stepsize control circuit 340 comprises alog multiplier selector 342 which selects a log multiplier based on a current quantized signal word, as illustrated a word output by anadaptive quantizer 320. In some embodiments, the current quantized signal word may be included in a bit stream being decoded by a decoder (seeFigure 2 ). Thelog multiplier selector 342 may select a log multiplier based on historical data, such as previous quantized signal words, and may comprise a look-up table LUT, which may be updatable, for example, based on historical data, in a update download, etc. Thelog multiplier selector 342 may select a log multiplier based on statistical probabilities based on current and previous quantized signal words. The quantizer stepsize control circuit 340 comprises anadder 344 which receives at a first positive input the selected log multiplier, and provides an output to adelay circuit 346. The output of thedelay circuit 346 is provided to amultiplier 348 and to anexponential circuit 350. Themultiplier 348 multiplies the output of thedelay circuit 346 by a scaling or leakage factor β, which may typically be close to and less than 1, and provides the result to a second positive input of theadder 344. The leakage factor may typically be a constant, but may be variable in some embodiments, for example, based on the previous step size control signal or other historical data. The selection of a scaling factor β as close to and less than 1 facilitates reducing the impact of selection of an incorrect step size, for example due to a transmission error, as the introduced error will decay away. - The
exponential circuit 350, in operation, generates a step-size control signal based on the output of thedelay circuit 346. As illustrated, the step-size control signal is provided to theadaptive quantizer 320 and to aninverse quantizer 334. As illustrated, the quantizer stepsize control circuit 340 operates in a logarithmic manner, which may simplify the calculations. Some embodiments may operate in a linear manner, and may, for example, employ a multiplier instead of the adder 244, and an exponential circuit instead of the multiplier 246. The quantizer step-size control circuit 340 as illustrated operates in a logarithmic manner, and the step sizes selected based on the step size control signal vary in an exponential manner. - In an embodiment, the quantizer step
size control circuit 340 may operate in accordance withequation 1, below:Figure 3 comprises one or more processors P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the quantizer stepsize control circuit 340. - Although the components of
Figure 3 are illustrated as separate components, the various components may be combined (e.g., theadder 344 and themultiplier 348 may be integrated into an arithmetic processor in some embodiments) or split into additional components, and various combinations thereof. -
Figure 4 is a functional block diagram of anaudio signal encoder 400 which may employ adaptive differential pulse-code modulation (ADPCM). Theaudio signal encoder 400 of an embodiment provides added bandwidth control, facilitates avoiding quantizer overload, and includes adaptive noise shaping. As illustrated inFigure 4 , theencoder 400 has alow pass filter 475, an adaptivenoise shaping filter 480, anadder circuit 410, a variable-rateadaptive quantizer circuit 420, adecoder circuit 430 including aninverse quantizer circuit 434 and apredictor circuit 438, a quantizer step size and average bitrate control circuit 440, acoder 450 andbit stream assembler 485. - In operation of an embodiment, an analog input audio signal to be encoded is received at an input of an input filter, as illustrated the
low pass filter 475. Thelow pass filter 475 facilitates improving the signal to noise ratio. Thelow pass filter 475 may, for example, be a FIR filter having a 25 kHz edge and a 30 kHz stop band, which has been found to provide excellent results for data sampled at 88.2 or 96 kHz.Figure 5 illustrates an example frequency response of an embodiment of thelow pass filter 475 applied to a sampling rate of 96 kHz. Using a low-pass filter and a corresponding fixed predictor filter employing control parameters based on the control parameters of the input filter (e.g., the predictor employing filter coefficients based on the frequency response of the input filter) facilitates obtaining a substantial prediction gain for an input signal when a sufficiently high sampling rate is employed, which in turn facilitates obtaining a desired minimum signal to noise ratio. In testing, sampling rates below 48 kHz (e.g., 44.1 and 48 kHz) generally do not provide a sufficient improvement in the gain. - The output of the
low pass filter 475 is provided to the adaptivenoise shaping filter 480. In examples not falling under scope of the invention, thelow pass filter 475 may be omitted, and the signal to be encoded may be input to the adaptivenoise shaping filter 480 instead of to thelow pass filter 475. In some embodiments, the adaptivenoise shaping filter 480 may be omitted or selectively bypassed. For example, the adaptivenoise shaping filter 480 may be omitted or bypassed when high bit rate signal encoding is employed. In examples not falling under scope of the invention, a band pass filter may be employed instead of a low pass filter, with correspond adjustments to the predictor filter. For example, an input filter (e.g., a band pass filter) having fixed control parameters and configured to limit a bandwidth of an input signal to less than seventy-five percent of the available bandwidth based on the sampling frequency may be employed in an embodiment, and the corresponding decoder may include a predictor circuit having fixed control parameters based on a frequency response of the filter. Limiting the bandwidth of the input signal using the input filter and setting the control parameters of the predictor circuit based on a frequency response of the input filter facilitates obtaining a substantial prediction gain for an input signal when a sufficiently high sampling rate is employed, which in turn facilitates obtaining a desired minimum signal to noise ratio. - The adaptive
noise shaping filter 480 may be, for example, a low-order all-zero linear prediction filter. Real (not complex) coefficients may be employed. In an embodiment, the adaptivenoise shaping filter 480 is an all zero adaptive noise shaping filter which flattens the spectrum of the signal received from thelow pass filter 475, while maintaining the overall spectral slope and sufficient masking to maintain a transparent codec (e.g., the compression artifacts are generally imperceptible). In a corresponding decoder (seedecoder 700 ofFigure 7 ), an all-pole filter using the same coefficients may be used to restore the original spectral shape. In an embodiment, the adaptivenoise shaping filter 480 preserves the whiteness criteria for thepredictor circuit 438. For example, the low-ordernoise shaping filter 480 may be adjusted to not flatten signals over an edge frequency of a low-pass filter (e.g. 25 kHz, which may not exist in a signal filtered by a low pass filter 475). As noted above, the missing energy at high frequencies facilitates a higher prediction gain. Filters other than linear prediction filters may be employed as the noise shaping filters. - The adaptive
noise shaping filter 480 provides a filtered output signal to apositive input 412 of theadder 410. In an embodiment, the adaptivenoise shaping filter 480 also provides a signal including adaptive noise filter setting information and/or synchronization information, which may be used to communicate adaptive noise filter setting and synchronization information to a decoder, such as thedecoder 700 ofFigure 7 , which includes a corresponding inversenoise shaping filter 780. The setting and synchronization information may be transmitted periodically, such as once for every 512 sample block. In some embodiments, the adaptive noise shaping filter control information may be implicit in the code words of the bit stream. For example, when the code words of the bit stream indicate an average bit rate above a threshold average bit rate is being employed, this may also indicate that adaptive noise shaping is being bypassed. - A
negative input 414 of theadder 410 receives a prediction signal generated by thedecoder 430 as a feedback signal. Theadder 410 generates a difference signal which is provided to the variable rateadaptive quantizer circuit 420. - The variable rate
adaptive quantizer circuit 420 generates an output signal representing the difference signal as a series of quantization signals or words. The size of the quantization signals is not fixed, and the average length may be adjusted using the output of a multiplier table of a step size and averagebit rate controller 440, as discussed in more detail below. The output of the variable rateadaptive quantizer circuit 420 is provided to the step size and averagebit rate controller 440, theinverse quantizer 434 and thecoder 450. - The quantizer step and average bit
rate control circuit 440 generates one or more control signals to control a size of the quantization steps. This implicitly determines an average length of the quantization signal employed by the quantizer 420 (and the inverse quantizer 434), which may be varied by adjustment of the multiplier table to facilitate efficient coding in view of an input audio signal having a varying dynamic range. -
Figure 6 illustrates an embodiment of amethod 600 of generating code words and controlling changes in step sizes and average bit rate that may be employed, for example, by theencoder 400 ofFigure 4 . For convenience, themethod 600 will be described with reference to theencoder 400 ofFigure 4 . The method starts at 602 and proceeds to 604. At 604, the variable rateadaptive quantizer 420 generates a current quantization signal or word based on the difference signal and the current quantization step size control signal. This may be done, for example, in accordance with equation 2, below: - The method proceeds from 604 to 606. At 606, the quantizer step size and average bit
rate control circuit 440 generates one or more control signals to set the step size for the next quantization signal word. This may be done, for example, in accordance withequation 1, above, or in accordance with equation 3 or 4, below: - The loading factor Lfactor may be selected so as to maintain a desired average bit rate. The load factor may typically be between 0.5 and 16. In some embodiments, a maximum step size may be employed. Changing the log multiplier m(cn/Lfactor) changes the bit rate and step size, and the values stored in the look-up-table of the log multiplier selector (see
Figure 8 ) may be selected so as to cause theadaptive quantizer 420 andinverse quantizer 434 to implement the desired changes in the step size and bit rate. For example, higher log multipliers may indicate an increased step size and lower bit rate to thequantizer 420 andinverse quantizer 434. The look-up table may be indexed based on the result of the current quantization value cn divided by the loading factor Lfactor. Different lookup tables may be employed instead of or in addition to different loading factors in lieu of Lfactor. In an embodiment, values in a look-up-table may be selected such that the log multiplier monotonically increases as the current quantization value cn increases, and the table of multipliers may go from a negative value for small cn to a positive value for large cn. - The
method 600 proceeds from 606 to 608. At 608 theencoder 400 determines whether to continue encoding of a received signal. When it is determined at 608 to continue encoding of a received signal, the method returns to 604 to process the next quantized signal word. When it is not determined at 608 to continue encoding of a received signal, the method proceeds to 610, where other processing may occur, such as generating an escape code to indicate the received signal has terminated, etc. The method proceeds from 610 to 612, where themethod 600 terminates. - Some embodiments of an
encoder 400 may perform other acts not shown inFigure 6 , may not perform all of the acts shown inFigure 6 , or may perform the acts ofFigure 6 in a different order. - With reference to
Figure 4 , theinverse quantizer 434 of thedecoder 430 generates a signal, such as an analog signal, based on the quantized signal output cn by the variable rateadaptive quantizer 420 and the current step size d n. Thepredictor circuit 438 may generate the prediction signal based on the output signal of theinverse quantizer 434 and historical data, such as recent coded data and recent prediction values, as discussed in more detail below with reference toFigure 7 . Thepredictor circuit 438 may employ a FIR filter with coefficients selected based on the frequency response of the low-pass filter 475, as discussed in more detail below with reference toFigure 7 . These coefficients may be fixed, and may be selected so as to facilitate maintaining a sufficient signal to noise ratio for anticipated input signal characteristics. Testing has shown using fixed coefficients for the FIR filter in thepredictor circuit 438 based on the frequency response of the low-pass filter 475 resulted in a significant improvement in the signal to noise ratio for signals at and above 64 kHz. For example, attenuating the energy above 25 kHz in the low-pass filter 475 and selecting fixed coefficients of the FIR filter based on the frequency response of the low-pass filter may result in a prediction gain of 45 dB in an embodiment. Using an eight-bit quantizer (seeadaptive quantizer 120 ofFigure 1 , which may be an eight-bit quantizer, a four-bit quantizer, etc.), may result in a signal to noise ratio comparable to encoding without using an adaptive noise shaping filter (seeFigure 1 ), but without including frequencies above 25 kHz. - In an embodiment, the quantized signal output by the variable rate adaptive quantizer circuit 420 (or of the
optional coder 450 when a coder is employed) is the output quantized signal of theencoder 400. Optionally, coding, such as Huffman coding and/or arithmetic coding, may be employed on the quantized signal in an embodiment, by codingcircuit 450, generating a coded signal output of theencoder 400. Thecoder 450 converts quantized signal words into code words, for example, using one or more look-up tables. Quantized signal words which are used less frequently may be assigned to larger code words, and quantized signal words which are used more frequently may be assigned to smaller code words to increase the efficiency of thecoder 400. - The
coder 450 optionally provides escape coding in an embodiment. For example, for a quantized value which is not included in the code book employed (e.g., a Huffman codebook), an escape code may be sent instead of a code word from the code book, with the escape coding indicating how the quantized signal value or information will be transmitted (e.g., that the actual quantized signal is being transmitted, that the next code word is the quantized signal value instead of a code word, that a difference between a maximum/minimum level is being transmitted, etc.). In another example, an escape code may indicate that a channel of an encoded signal is being discontinued or is not present (e.g., only one channel of a stereo signal is being encoded). In another example, an escape code may indicate an end of an encoded signal. - The
bit stream assembler 485 receives the code words output by thecoder 450 and the adaptive noise shaping filter control/synchronization information output by the adaptivenoise shaping filter 480 and assembles a bit stream for transmission to a decoder and/or storage. In some embodiments, data packets may be assembled by thebit stream assembler 485, such as packets including a 512 sample block and adaptive noise shaping filter control/synchronization information for the sample block. -
Figure 7 is a functional block diagram of an embodiment of anaudio signal decoder 700 which may employ adaptive differential pulse-code modulation (ADPCM). Thedecoder 700 may be employed, for example, as thedecoder 430 ofFigure 4 , as a separate decoder to decode a received encoded signal, etc. As illustrated inFigure 7 , thedecoder 700 has abit stream disassembler 785, optional codeword decoding circuitry 750, aninverse quantizer circuit 734, apredictor circuit 738, an inverse quantizer step size and average bitrate control circuit 740, anadder 770, an inverse adaptivenoise shaping filter 780 and alow pass filter 775. - In operation of an embodiment, an assembled signal is received by the
bit stream disassembler 785 and split into a coded signal component and an adaptive noise shaping filter control and synchronization signal component. The coded signal component is provided to thedecoding circuitry 750, which converts the coded signal into a quantized signal cn. Escape coding may be used in an embodiment, as discussed above with reference to thecoder 450 ofFigure 4 . The quantized signal to be decoded is provided to theinverse quantizer 734 and to the inverse quantizer step size and average bitrate control circuit 740. When thedecoder 700 is employed in an encoder, such as theencoder 400 ofFigure 4 , thedecoding circuitry 750 may typically be omitted and the same step size and average bit rate control circuit may be used to provide a step size control signal to the quantizer and to the inverse quantizer (see,Figure 4 ). - The
inverse quantizer 734 generates a signal, such as an analog signal, based on the quantized signal output by the decoding circuitry 750 (or received from a quantizer (seequantizer 420 ofFigure 4 )) and the current step size set by the inverse quantizer step size and average bitrate control circuit 740. The output of theinverse quantizer 734 is provided to a first positive input of theadder 770. The output of theadder 770 is provided to thepredictor 738, which as illustrated comprises a Finite Impulse Response (FIR) filter. An output of the FIR filter is provided to a second positive input of theadder 770. - When the
decoder 700 is employed as a decoder to provide a decoded signal as an output, the output of thedecoder 700 is provided to an inverse filter, as illustrated an inverse adaptivenoise shaping filter 780. The inverse adaptivenoise shaping filter 780 may be, for example, a low-order all pole linear prediction filter. In an embodiment, the inverse adaptivenoise shaping filter 780 is an all-pole adaptive noise shaping filter which restores the spectrum of the signal using the using the same coefficients used by a corresponding adaptive noise shaping filter of a corresponding encoder (e.g., the adaptivenoise shaping filter 480 ofFigure 4 ) as the coefficients of the all-pole filter. This information may be conveyed in the bitstream and provided to the inverse adaptivenoise shaping filter 780 by thedisassembler 785. The setting and synchronization information may be provided periodically, such as once for every 512 sample block. In some embodiments, the inverse adaptive noise shaping filter control information may be implicit in the code words of the bit stream, for example, as discussed above with reference toFigure 4 . - The output of the inverse adaptive
noise shaping filter 780 is according to the invention filtered by a low-pass filter 775. This facilitates removing high-frequency energy restored when the original spectrum of the signal is restored by the inverse adaptivenoise shaping filter 780. In an embodiment, the low-pass filter 775 of thedecoder 700 may employ the same coefficients used by a corresponding low-pass filter of an encoder (e.g., the low-pass filter 475 ofFigure 4 ). - When the
decoder 700 is employed in an encoder as part of a feedback loop, such as thedecoder 430 used in theencoder 400 ofFigure 4 , the output of thepredictor circuit 738 provides the prediction signal to the encoder (see the prediction signal provided to thenegative input 414 of theadder 410 ofFigure 4 ). - The
inverse quantizer 734, the inverse quantizer step and average bitrate control circuit 740 and thepredictor circuit 738 may typically operate in a similar manner to the corresponding components of an encoder, such as theencoder 400 ofFigure 4 . For example, with reference toFigures 4 and7 , having the corresponding components operate in a similar manner in theencoder 400 and thedecoder 700 facilitates using the quantized signal to generate the prediction signal and to control the step size and average bit rate in both theencoder 400 and thedecoder 700, without needing to exchange additional control signals between theencoder 400 and thedecoder 700. For example, a system including an embodiment of theencoder 400 and an embodiment of thedecoder 700 may operate using the same control parameters for the corresponding components (e.g., using the same filter coefficients). - As illustrated, the
decoder 700 ofFigure 7 comprises one or more processors or processor cores P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of thedecoder 700. Although the components of thedecoder 700 ofFigure 7 are illustrated as separate components, the various components may be combined (e.g., the inverse quantizer step and averagerate control circuit 740 may be integrated into theinverse quantizer 734 in some embodiments) or split into additional components (e.g., thepredictor circuit 738 may be split into separate components, such as filters, adders, buffers, look-up tables, etc.) and various combinations thereof. -
Figure 8 is a functional block diagram of an embodiment of a quantizer step size and averagerate control circuit 840, which may be employed, for example, in the embodiment of theencoder 400 ofFigure 4 as the quantizer step size and average bitrate control circuit 440, or in the embodiment of thedecoder 700 ofFigure 7 as the inverse quantizer step size and average bitrate control circuit 740. As illustrated, the quantizer step size and average bitrate control circuit 840 comprises amultiplier 852, which receives a current quantized signal word cn and an inverse of a loading factor Lfactor, and alog multiplier selector 842 which selects a log multiplier based on the current quantized signal word and the loading factor. As illustrated the current quantized signal word is a word output by variable rateadaptive quantizer 820. In some embodiments, the current quantized signal word may be included in a bit stream being decoded by a decoder (seeFigure 7 ). Thelog multiplier selector 842 may select a log multiplier based on historical data, such as previous quantized signal words, and may comprise a look-up table LUT, which may be updatable, for example, based on historical data, in a update download, etc. Thelog multiplier selector 842 may select a log multiplier based on statistical probabilities based on current and previous quantized signal words. The quantized step size and average bitrate control circuit 840 comprises anadder 844 which receives at a first positive input the selected log multiplier, and provides an output to adelay circuit 846. The output of thedelay circuit 846 is provided to amultiplier 848 and to anexponential circuit 850. Themultiplier 848 multiplies the output of thedelay circuit 846 by a scaling or leakage factor β, which may typically be close to and less than 1, and provides the result to a second positive input of theadder 844. The leakage factor may typically be a constant, but may be variable in some embodiments, for example, based on the previous step size control signal or other historical data. The selection of a scaling factor β as close to and less than 1 facilitates reducing the impact of selection of an incorrect step size, for example due to a transmission error, as the introduced error will decay away. - The
exponential circuit 850, in operation, generates a step-size control signal based on the output of thedelay circuit 846. As illustrated, the step-size and average bit rate control signal is provided to a variable rateadaptive quantizer 820 and to aninverse quantizer 834. As illustrated, the quantizer step size and average bitrate control circuit 840 operates in a logarithmic manner, which may simplify the calculations. Some embodiments may operate in a linear manner, and may, for example, employ a multiplier instead of theadder 844, and an exponential circuit instead of themultiplier 846, etc. The step-size and average bit rate control circuit as illustrated operates in a logarithmic manner, and the step sizes selected based on the step size control signal vary in an exponential manner. In an embodiment, the quantizer step size and average bitrate control circuit 840 may operate in accordance with equations 3 or equation 4, and select log multiplier values to populate the look-up tables as discussed above in more detail with reference toFigures 4 and6 . - As illustrated,
Figure 8 comprises one or more processors P, one or more memories M, and discrete circuitry DC, which may be used alone or in various combinations to implement the functionality of the quantizer step size and average bitrate control circuit 840. The illustrated components, such as adders, multiplier, etc., may be implemented in various ways, such as, using discrete circuitry, executing instructions stored in a memory, using look-up tables, etc., and various combinations thereof. -
Figure 9 illustrates an embodiment of a method 900 of generating code words from an audio signal and controlling changes in quantizer step sizes and average bit rate that may be employed, for example, by theencoder 400 ofFigure 4 when escape coding is employed. For convenience, the method 900 will be described with reference to theencoder 400 ofFigure 4 . The method starts at 902 and proceeds to 904. At 904, theencoder 400 collects a block of audio samples and proceeds to 906. At 906, theencoder 400 processes a sample of each channel. Parallel processing of the samples of the channels may be employed. - At 906a, the
adaptive quantizer 420 determines whether the channel has an audio sample to be processed. If the channel has an audio sample, the method 900 proceeds from 906a to 908. At 908 thecoder 450 determines whether a quantized sample has a corresponding symbol in a code book, as illustrated, a Huffman code book. When it is determined that the quantized sample has a corresponding symbol in the code book, the method proceeds from 908 to 910. At 910, thecoder 450 writes the corresponding symbol into the bitstream. The method 900 proceeds from 910 to 914. - When it is not determined at 908 that the quantized sample has a corresponding symbol in the code book, the method 900 proceeds from 908 to 912. At 912, the coder writes an embed escape code and a quantized sample value into the bitstream, as illustrated an embed escape code followed by a 16 bit quantized sample value. Other methods of transmitting a quantized sample value without a corresponding code word in the code book may be employed, as discussed in more detail above. The method proceeds from 912 to 914.
- At 914, the step-size and average bit
rate control circuit 440 updates the step size control signal for the corresponding channel, as discussed in more detail above. For example, theequations 1, 3 and 4 may be employed. The method 900 proceeds from 914 to 906 to process the next sample for the channel. - At 906b, the adaptive quantizer determines whether the channel had audio data, but has no more samples in the block to be processed. For example, a channel may have ended prematurely. When it is determined that the channel has no more samples in the block, the method 900 proceeds from 906b to 916. At 916, the
coder 450 writes an end-of-channel escape code into the bitstream and processing of the channel in the current block terminates. The method 900 proceeds from 916 to 906. - At 906c, the
encoder 400 determines whether all the audio data in the block for all of the channels has been processed. When it is determined at 906c that all the audio data in the block has been processed, the method 900 proceeds from 906c to 918. At 918, theencoder 400 determines whether there is more data to start a new block. When it is determined at 918 that there is more data to start a new block, the method 900 proceeds from 918 to 904, where the next block of audio samples is processed. When it is not determined at 918 that there is data to start a new block, the method proceeds to 920. At 920, thecoder 450 writes an end of stream escape code into the bit stream. The method proceeds from 920 to 930, where processing of the audio signal terminates. - Some embodiments of an
encoder 400 may perform other acts not shown inFigure 9 , may not perform all of the acts shown inFigure 9 , or may perform the acts ofFigure 9 in a different order. -
Figure 10 illustrates an embodiment of amethod 1000 of generating a quantized signal value from a code word that may be employed, for example, by thedecoder 700 ofFigure 7 when escape coding is employed. Themethod 1000 may process code words for multiple channels of a signal in parallel. For convenience, themethod 1000 will be described with reference to thedecoder 700 ofFigure 7 . The method starts at 1002 and proceeds to 1004. At 1004, thedecoding circuitry 750 receives a code word (or code words when multiple channels are being processed in parallel) and proceeds to 1006. - At 1006, the
decoding circuitry 750 determines whether the code word (symbol) has a corresponding quantized sample value in a code book, such as a Huffman code book. When it is determined that the code word (symbol) has a corresponding quantized sample value in a code book, themethod 1000 proceeds from 1006 to 1008, where the corresponding quantized sample value is output by thedecoding circuitry 750 as the current quantized signal value cn. Themethod 1000 proceeds from 1008 to 1004 to process the next code word of the channel (and code words of other channels of the coded signal). When it is not determined at 1006 that the code word (symbol) has a corresponding quantized sample value in a code book, themethod 1000 proceeds from 1006 to 1010. - At 1010, the
decoding circuitry 750 determines whether the code word is an embed escape code. When it is determined at 1010 that the code word is an embed escape code, themethod 1000 proceeds from 1010 to 1012, where the next code word of the channel is output by thedecoding circuitry 750 as the current quantized signal value cn. Themethod 1000 proceeds from 1012 to 1004 to process the next code word of the channel (and code words of other channels of the coded signal). When it is not determined at 1010 that the code word is an embed escape code, themethod 1000 proceeds from 1010 to 1014. - At 1014, the
decoding circuitry 750 determines whether the code word is an end of channel escape code. When it is determined at 1014 that the code word is an end of channel escape code, themethod 1000 proceeds from 1014 to 1016, where processing of the signal channel is terminated. Themethod 1000 proceeds from 1016 to 1004 to process the next code word of the remaining channels of the signal. When it is not determined at 1014 that the code word is an end of channel escape code, themethod 1000 proceeds from 1014 to 1018. - At 1018, the
decoding circuitry 750 determines whether the code word is an end of signal escape code. When it is determined at 1018 that the code word is an end of signal escape code, themethod 1000 proceeds from 1018 to 1020, where processing of the signal is terminated. Themethod 1000 proceeds from 1020 to 1022 where themethod 1000 terminates. When it is not determined at 1018 that the code word is an end of signal escape code, themethod 1000 proceeds from 1018 to 1004 to process the next code word (or block) of the channel (and code words of other channels of the coded signal). - Some embodiments of a
decoder 700 may perform other acts not shown inFigure 10 , may not perform all of the acts shown inFigure 10 , or may perform the acts ofFigure 10 in a different order. - Some embodiments may take the form of or comprise computer program products. For example, according to one embodiment there is provided a computer readable medium comprising a computer program adapted to perform one or more of the methods or functions described above. The medium may be a physical storage medium, such as for example a Read Only Memory (ROM) chip, or a disk such as a Digital Versatile Disk (DVD-ROM), Compact Disk (CD-ROM), a hard disk, a memory, a network, or a portable media article to be read by an appropriate drive or via an appropriate connection, including as encoded in one or more barcodes or other related codes stored on one or more such computer-readable mediums and being readable by an appropriate reader device.
- Furthermore, in some embodiments, some or all of the methods and/or functionality may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), digital signal processors, discrete circuitry, logic gates, standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc., as well as devices that employ RFID technology, and various combinations thereof.
- The various embodiments described above can be combined to provide further embodiments as long as the resulting subject-matter still falls under the scope of the invention as defined by the appended claims.
- These and other changes can be made to the embodiments in light of the above-detailed description while the invention is defined by the appended claims.
Claims (15)
- An apparatus, comprising:a low-pass filter having determined filter coefficients and configured to filter an input audio signal;an encoder configured to encode the filtered input audio signal using a feedback loop, the encoding including:generating a quantized signal based on a difference signal using an adaptive quantizer;generating, by a decoder, a feedback signal based on the quantized signal using an inverse quantizer and a predictor circuit, the predictor circuit having determined control parameters based on a frequency response of the low-pass filter; andgenerating the difference signal based on the feedback signal and filtered input audio signal.
- The apparatus of claim 1, wherein the determined filter coefficients of the low-pass filter are fixed filter coefficients of the low-pass filter, the predictor circuit comprises a finite impulse response (FIR) filter and the determined control parameters of the predictor circuit comprise fixed filter coefficients of the FIR filter.
- The apparatus of claim 1, wherein the encoder includes coding circuitry configured to generate code words based on quantized signal words generated by the adaptive quantizer.
- The apparatus of claim 3 wherein the coding circuitry is configured to generate an escape code in response to at least one of:a quantized signal word not being associated with a corresponding coding code word;an end of a signal channel of a signal to be encoded; andan end of the signal to be encoded.
- The apparatus of claim 3, wherein the coding circuitry is configured to use Huffman coding to generate the code words.
- The apparatus of claim 1, wherein the adaptive quantizer is a variable rate quantizer.
- The apparatus of claim 6, wherein a step size and bit rate of the quantized signals generated by the adaptive quantizer are variable.
- The apparatus of claim 6, wherein the adaptive quantizer is configured to control a step size according to:
- The apparatus of claim 6 wherein the adaptive quantizer is configured to control a step size according to:
- A method, comprising:filtering an input audio signal, the filtering including using a low-pass filter having determined filter coefficients; andencoding the filtered input audio signal using a feedback loop, the encoding including:generating a quantized signal based on a difference signal using an adaptive quantizer;generating a feedback signal based on the quantized signal using an inverse quantizer and a predictor circuit having determined control parameters based on a frequency response of the low-pass filter; andgenerating the difference signal based on the feedback signal and the filtered input audio signal.
- An apparatus, comprising:
a decoder configured to generate decoded audio signals based on quantized signals, the decoder including:an inverse quantizer configured to inverse quantize the quantized signals; anda predictor circuit configured to generate prediction signals based on the inverse quantized signals, the apparatus further comprising:
a low-pass filter having determined filter coefficients and configured to filter the decoded audio signals, wherein the predictor circuit has determined control parameters based on a frequency response of the low-pass filter. - The apparatus of claim 11, wherein the decoder includes decoding circuitry configured to generate quantized signal words based on code words in a bit stream received by the decoder.
- A method, comprising:
decoding an encoded audio signal based on a quantized signal using a feedback loop to generate a decoded audio signal, the decoding including:inverse quantizing the quantized signal using an inverse quantizer; andgenerating a prediction signal based on the inverse quantized signal using a predictor circuit, the method further comprising:
filtering the decoded audio signal using a low-pass filter having determined filter coefficients, wherein the predictor circuit has determined control parameters based on a frequency response of the low-pass filter. - The method of claim 13, comprising generating quantized signal words based on code words included in a bit stream of the encoded signal.
- The method of claim 14, comprising using escape coding to generate the quantized signal words based on the code words.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/151,220 US10756755B2 (en) | 2016-05-10 | 2016-05-10 | Adaptive audio codec system, method and article |
US15/151,200 US10770088B2 (en) | 2016-05-10 | 2016-05-10 | Adaptive audio decoder system, method and article |
US15/151,109 US10699725B2 (en) | 2016-05-10 | 2016-05-10 | Adaptive audio encoder system, method and article |
US15/151,211 US20170330575A1 (en) | 2016-05-10 | 2016-05-10 | Adaptive audio codec system, method and article |
PCT/US2017/031735 WO2017196833A1 (en) | 2016-05-10 | 2017-05-09 | Adaptive audio codec system, method, apparatus and medium |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3455854A1 EP3455854A1 (en) | 2019-03-20 |
EP3455854B1 true EP3455854B1 (en) | 2020-09-16 |
Family
ID=58710160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP17724255.9A Active EP3455854B1 (en) | 2016-05-10 | 2017-05-09 | Adaptive audio codec method and apparatus |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3455854B1 (en) |
JP (1) | JP7005036B2 (en) |
KR (1) | KR20190011742A (en) |
CN (1) | CN109416913B (en) |
AU (1) | AU2017262757B2 (en) |
CA (1) | CA3024167A1 (en) |
WO (1) | WO2017196833A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2020337678B2 (en) | 2019-08-26 | 2023-12-14 | Lg Electronics Inc. | Image or video coding based on palette coding |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956674A (en) * | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
CA2356869C (en) * | 1998-12-28 | 2004-11-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Method and devices for coding or decoding an audio signal or bit stream |
US6493664B1 (en) * | 1999-04-05 | 2002-12-10 | Hughes Electronics Corporation | Spectral magnitude modeling and quantization in a frequency domain interpolative speech codec system |
US6751587B2 (en) * | 2002-01-04 | 2004-06-15 | Broadcom Corporation | Efficient excitation quantization in noise feedback coding with general noise shaping |
ES2334934T3 (en) * | 2002-09-04 | 2010-03-17 | Microsoft Corporation | ENTROPY CODIFICATION BY ADAPTATION OF CODIFICATION BETWEEN LEVEL MODES AND SUCCESSION AND LEVEL LENGTH. |
JP3748261B2 (en) * | 2003-06-17 | 2006-02-22 | 沖電気工業株式会社 | ADPCM decoder |
WO2005057550A1 (en) | 2003-12-15 | 2005-06-23 | Matsushita Electric Industrial Co., Ltd. | Audio compression/decompression device |
JP5129115B2 (en) * | 2005-04-01 | 2013-01-23 | クゥアルコム・インコーポレイテッド | System, method and apparatus for suppression of high bandwidth burst |
US7342525B2 (en) * | 2005-12-23 | 2008-03-11 | Cirrus Logic, Inc. | Sample rate conversion combined with DSM |
DE102006022346B4 (en) * | 2006-05-12 | 2008-02-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Information signal coding |
EP2077550B8 (en) * | 2008-01-04 | 2012-03-14 | Dolby International AB | Audio encoder and decoder |
FR2938688A1 (en) * | 2008-11-18 | 2010-05-21 | France Telecom | ENCODING WITH NOISE FORMING IN A HIERARCHICAL ENCODER |
EP2676263B1 (en) * | 2011-02-16 | 2016-06-01 | Dolby Laboratories Licensing Corporation | Method for configuring filters |
-
2017
- 2017-05-09 WO PCT/US2017/031735 patent/WO2017196833A1/en unknown
- 2017-05-09 EP EP17724255.9A patent/EP3455854B1/en active Active
- 2017-05-09 KR KR1020187035261A patent/KR20190011742A/en not_active Application Discontinuation
- 2017-05-09 CN CN201780040686.9A patent/CN109416913B/en active Active
- 2017-05-09 AU AU2017262757A patent/AU2017262757B2/en active Active
- 2017-05-09 JP JP2019511820A patent/JP7005036B2/en active Active
- 2017-05-09 CA CA3024167A patent/CA3024167A1/en active Pending
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
WO2017196833A1 (en) | 2017-11-16 |
KR20190011742A (en) | 2019-02-07 |
JP7005036B2 (en) | 2022-01-21 |
AU2017262757B2 (en) | 2022-04-07 |
AU2017262757A1 (en) | 2019-01-03 |
CN109416913B (en) | 2024-03-15 |
CN109416913A (en) | 2019-03-01 |
EP3455854A1 (en) | 2019-03-20 |
CA3024167A1 (en) | 2017-11-16 |
JP2019521398A (en) | 2019-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102248253B1 (en) | Energy lossless-encoding method and apparatus, audio encoding method and apparatus, energy lossless-decoding method and apparatus, and audio decoding method and apparatus | |
US10770088B2 (en) | Adaptive audio decoder system, method and article | |
US10699725B2 (en) | Adaptive audio encoder system, method and article | |
US10756755B2 (en) | Adaptive audio codec system, method and article | |
CA2562916C (en) | Coding of audio signals | |
RU2585990C2 (en) | Device and method for encoding by huffman method | |
WO2002080149A1 (en) | Noise suppression | |
US11315583B2 (en) | Audio encoders, audio decoders, methods and computer programs adapting an encoding and decoding of least significant bits | |
US20170330575A1 (en) | Adaptive audio codec system, method and article | |
EP2127088B1 (en) | Audio quantization | |
JPH02168729A (en) | Voice encoding/decoding system | |
EP3455854B1 (en) | Adaptive audio codec method and apparatus | |
US10504531B2 (en) | Audio parameter quantization | |
JP4295372B2 (en) | Speech encoding device | |
Atal et al. | Split-band APC system for low bit-rate encoding of speech | |
Cheung | Application of CVSD with delayed decision to narrowband/wideband tandem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
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 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20181130 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20191030 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20200401 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602017023731 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1314862 Country of ref document: AT Kind code of ref document: T Effective date: 20201015 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FI 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: 20200916 Ref country code: GR 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: 20201217 Ref country code: NO 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: 20201216 Ref country code: BG 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: 20201216 Ref country code: SE 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: 20200916 Ref country code: HR 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: 20200916 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1314862 Country of ref document: AT Kind code of ref document: T Effective date: 20200916 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20200916 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS 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: 20200916 Ref country code: LV 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: 20200916 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: EE 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: 20200916 Ref country code: SM 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: 20200916 Ref country code: RO 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: 20200916 Ref country code: PT 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: 20210118 Ref country code: CZ 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: 20200916 Ref country code: LT 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: 20200916 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT 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: 20200916 Ref country code: AL 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: 20200916 Ref country code: ES 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: 20200916 Ref country code: IS 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: 20210116 Ref country code: PL 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: 20200916 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602017023731 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK 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: 20200916 |
|
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 |
Effective date: 20210617 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DK 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: 20200916 Ref country code: SI 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: 20200916 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
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 Effective date: 20200916 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210531 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210531 Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210509 Ref country code: MC 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: 20200916 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20210531 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210509 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20210531 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200923 Ref country code: CY 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: 20200916 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20170509 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20230510 Year of fee payment: 7 Ref country code: DE Payment date: 20230510 Year of fee payment: 7 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20230511 Year of fee payment: 7 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK 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: 20200916 |