CA2137926C - Transmission system comprising at least a coder - Google Patents
Transmission system comprising at least a coder Download PDFInfo
- Publication number
- CA2137926C CA2137926C CA002137926A CA2137926A CA2137926C CA 2137926 C CA2137926 C CA 2137926C CA 002137926 A CA002137926 A CA 002137926A CA 2137926 A CA2137926 A CA 2137926A CA 2137926 C CA2137926 C CA 2137926C
- Authority
- CA
- Canada
- Prior art keywords
- prediction
- bits
- reflection coefficient
- coefficients
- floating point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/06—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/90—Pitch determination of speech signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H21/00—Adaptive networks
- H03H21/0012—Digital adaptive filters
- H03H21/0043—Adaptive algorithms
Abstract
A transmission system is proposed comprising at least a coder (101) for coding a signal (10a). The system furthermore comprises at least a transmitter (102), at least a receiver (103) and at least a decoder (104). At least for a coder (101) is at least provided an adaptive prediction filter (10A, 10B) by means of which speech or audio signals are coded while their bit rates are reduced. The filter coefficients for an adaptive prediction filter (10A, 10B) are recursively determined according to the Levinson-Durbin Recursion in fixed point arithmetic.
Description
Wn 94/25961 213 7 9 2 ~ PCT/IB94/00087 Transmission system comprising at least a coder.
The invention relates to a transmission system comprising at least a coder for coding a signal, at least a transmitter for transmitting the coded signal to at least a receiver, at least a decoder for decoding the coded signal and at least an adaptive prediction filter.
The invention likewise relates to a terminal unit, a coder, a decoder and an adaptive prediction filter.
Such a transmission system can be obtained, for example, without difficulty from the document "Draft of 6.728 Fixed Point Specification" Doc.
AH. 93-D.3, CCITT Study Group XV, London, March 29-30-1993, and from CCITT
Recommendation 6.728, "Coding of speech signals at 16 kbit/s using low-delay code excited linear prediction". The two documents will henceforth be referenced [I] and [II].
Such transmission systems can always be used when multiple use is to be made of a given transmission capacity. The reduction of the bit rate of a signal during coding makes it possible, for example, to hold four telephone conversations simultaneously over one 64 kbit/s transmission channel.
The multiple use of a given transmission capacity has very much importance in radio channels, as will be readily understood if one thinks of the rising number of subscribers of mobile radio systems. Also the storage capacity of a memory with an arbitrary storage medium can be used to considerably more advantage when bit rate reducing coders and appropriate decoders are used, because less storage space is necessary for storing an information signal.
It is known to utilize linear prediction for bit rate reduction. In [I] and [II]
prediction coefficients are computed by an adaptive prediction filter. The computation is performed segment by segment with the sample values of an auxiliary signal.
The auxiliary signal may be an (electric) audio signal or a speech signal, for example, coming from a person. Alternatively, it is possible for the auxiliary signal to be a synthetic audio or speech signal as produced in a coder which operates according to the principle of "analysis by synthesis" . A linear correlation between a predicted sampling WO 94/25961 213' 9 ~ G PCTIIB94100087 value (prediction value) of the auxiliary signal and previous sampling values of this signal is realised with the prediction coefficients. The prediction coefficients are determined so that the sum of the squares of all the errors computed for a segment of sampling values assumes a minimum value. An error is here meant to be understood as the difference between a sampling value and its predicted value. More accurate descriptions will be given hereinbelow.
In [I] and [II] an excited signal is converted into a synthetic audio signal by a synthesis filter. This synthetic audio signal is subtracted from an audio signal to be coded and the difference is used for optimizing the selection of the excited signal.
The computation of the prediction coefficients calls for correlation coefficients which are derived from the sampling values of the synthetic audio signal.
The computation of the prediction coefficients on the basis of the correlation coefficients calls for much circuitry and cost. To reduce this circuitry and cost the prediction coefficients are computed recursively. To begin with, a first reflection coefficient is computed from the two first correlation coefficients. From the first reflection coefficient the first prediction coefficient is derived. Furthermore, also a prediction error is computed, which is an indication of the quality of the prediction. Then, a second reflection coefficient is determined with the next correlation coefficient, the previously computed prediction coefficient and with the current prediction error. With the second reflection coefficient and the previously computed prediction coefficients (at this point only the first prediction coefficient is concerned) the previously computed prediction coefficients are recomputed. Then, a second prediction coefficient and a new prediction error are computed. The recomputation of the previously computed prediction coefficients and the computation of a further prediction coefficient is repeated so many times that all the necessary prediction coefficients are known.
In [II] an implementation in floating point arithmetic is proposed for obtaining sufficient accuracy. The drawback of an implementation in floating point arithmetic is the large circuitry. For this purpose, in [I] there is proposed to implement 16-bit fixed point arithmetic in which results and intermediate results of the computation are retained in the so-called block floating point format. This is meant to be understood as the representation of a block of numbers in floating point format, with the restriction, however, that all the numbers of the block have the same exponent (with base 2). The common exponent is selected such that all the mantissas are situated within prescribed limits. In [T] there is provided that all the mantissas are situated between -1 and +1. In the block floating point format, for example, the prediction coefficients are shown which, from previous experience, assume values that may be on the order of 10. If, for example, overflow occurs when the prediction coefficients are recomputed i.e. a recomputed prediction coefficient will be 1 or exceed 1, the mantissas of all the previously computed prediction coefficients will be divided by 2 and the common exponent (with base 2) will be increased by 1. Then the recomputation is started anew.
The change of the block floating point format due to overflow will here be called an adaptation of the block floating point format. For the repeated recomputation only the mantissas of the previously computed prediction coefficients are used, and only with 16-bit resolution. The reduction of the resolution from at least 17 bits to 16 bits which is sometimes necessary for the computation can be effected in different manners. The manner of reduction according to [I] will be outlined with the aid of an example. If, for example, the third reflection coefficient has just been computed with a resolution of 17 bits -between the third reflection coefficient and the third prediction coefficient to be derived therefrom there is only a difference in the numerical representation - it is shortened by a rounding to 16 bits, so that the two first prediction coefficients can be recomputed therewith in 16-bit fixed point arithmetic. If there is an overflow during this recomputation, also the rounded third reflection coefficient is, for example, divided by two when recomputation has ended, and the result which has a resolution of 16 bits is stored as a mantissa of the third prediction coefficient. The division is broken off after 16 bits (including the sign bit). Due to the binary system this operation corresponds to a shift of the decimal point 3a by one position while the least-significant bit is lost.
This procedure causes the inaccuracies - especially with a large number of prediction coefficients - to become unacceptably large.
It is an object of the invention to enhance the computational accuracy during coding in a transmission system of the type defined in the opening paragraph, without increasing then the computation effort. A transmission system having this property comprises - at least a coder for coding a signal, - at least a receiver - at least a transmitter for transmitting the coded signal to the receiver, - at least a decoder for decoding the coded signal and - at least an adaptive prediction filter provided at least for a coder, the adaptive WO 94/25961 ,~ ., j.,y~'~ ~ ~ PCT/IB94/00087 prediction filter including:
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means for computing the k~' reflection coefficient with a minimum resolution of N+ 1 bits, b) means for buffering the k~' reflection coefficient with a minimum resolution of N+ 1 bits, c) means for determining the k~' reflection coefficient with a resolution of N
bits, d) means for recomputing the k-1 previously computed prediction coefficients while utilizing the k~' reflection coefficient obtained under c), e) means for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means for converting the k~' reflection coefficient buffered under b) to a number in the floating point format, whose exponent is represented by the exponent determined under e) of the block floating point format and whose mantissa has a resolution of at least N+ 1 bits, g) means for rounding to N bits the mantissa of the k~ reflection coefficient obtained under f) and h) means for storing the k~' reflection coefficient obtained under g) as the k~' prediction coefficient.
The transmission system according to the invention is distinguished from a transmission system described in [I] in that the k~' reflection coefficient after its first computation is buffered with a minimum accuracy of N+1 bits. For the recomputation of the k-1 previously computed prediction coefficients a value is used which distinguishes itself from the buffered value by a limitation to N bits. If overflow occurs during the recomputation of the k-1 previously computed prediction coefficients, the W~ 94/25961 ' , .' ~ ~..,~~~,.~:~ ~ ~ PCTIIB94/00087 buffered value is divided, for example, by 2 after the recomputation has finished, and then rounded to N bits. This way of incorporating the lc~ prediction coefficient in the (adapted) block floating point format produces an error which is at most as large as the corresponding error in [I]. However, equally important is it to find that the sign of the 5 error according to the invention appears to turn out as often positive as negative, which is different from [I].
These assertions will now be confirmed with the aid of two simple examples.
Let us assume that three (N = 3) bits are available for representing the results and at least four bits for intermediate results. Furthermore, let us assume that the adaptation due to overflow requires a division by 4. Numerical examples for ku' reflection coefficients having a 4-bits resolution in fixed point representation are started from.
In a first example a k~' reflection coefficient has a value of +S/8. In the binary system this reflection coefficient is represented as 0.101, the first zero denoting the sign. According to [I] the procedure is as follows:
a) 0.101 (k~' reflection coefficient: +S/8 with 4-bits resolution) b) 0.11 (value of b) rounded to 3 positions for the recomputation of the k-1 previously computed prediction coefficients) c) 0.00 (value of b) divided by 4, also with 3-bits resolution. This value is the mantissa of the ku' reflection coefficient in the block floating point format with the exponent 2 and with base 2) For making an assertion about the error if the approximation c) is used in lieu of a), c) is first to be multiplied again by 4. The difference between the value resulting therefrom and the output value is the error F. In the present case (representation as a fraction) F = ( - 5/8) _ -5/8.
In contrast, according to the invention there is provided:
a) 0.101 (k~' reflection coefficient: +5/8 with 4-bits resolution), b) 0.001 (value of a) divided by 4, also with 4-bits resolution), c) 0.01 (value of b) rounded to 3 bits).
Analogous with the preceding observations we now have as an error: F = (1 -5/8) _ 3/8.
If 0.011 (+3/8) is selected as the output value, there is a value of F = (0 -3/8) _ -3/8 W0 94125961 ~~'~ ~.~~~.,~ ~ PCTIIB94/00087 for the error according to the same scheme of [I]. According to the invention, we now have: F = (0 - 3/8) _ -3/8.
The order of the means indicated above and also to be indicated below is not to be understood in such a way that they are also to be activated in this order in time.
A further embodiment of the invention comprises - means for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which the overflow has occurred.
If overflow occurs during the recomputation of the prediction coefficients, according to [I) only the floating point format of the previously computed prediction coefficients is adapted and then the recomputation is started again from the beginning. In contrast, the embodiment according to the invention avoids a not inconsiderable part of the computation circuitry, especially in the event of a large number of coefficients.
The invention with its embodiments will be explained with reference to the drawing Figures, in which:
Fig. 1 shows a specific transmission system in which the invention can be used, Fig. 2 shows the basic circuit diagram of an adaptive prediction filter, Fig. 3 shows the basic circuit diagram of a speech coder and Fig. 4 shows diagrams for clarifying a difference between the invention and the state of the art.
Fig. 1 gives a diagrammatic representation of a transmission system comprising a coder 101 and a transmitter 102 on a transmitting side and a receiver 103 and a decoder 104 on a receiving side. The combination of the coder 101 with the transmitter 102 and/or the combination of the receiver 103 with the decoder 104 forms a terminal unit LE.
The coder 101 codes a speech signal l0a by means of an adaptive prediction filter 10A. This filter has characteristic features according to the invention, which will become apparent in the following. The speech signal l0a has a bit rate of 64 kbit/s. The coder 101 reduces this bit rate to the bit rate of the coded signal lOb. The bit rate of the coded signal lOb is 16 kbit/s. The signal lOb consists of parameters of the speech signal l0a which parameters are determined segment by segment.
~~'n 94/25961 PCTIIB94100087 2~°~7.~ ~ 6 _ .Y ~'t ~t ~ b;
The transmitter 102 transmits the coded signal lOb - transcoded into a transmission code, as required - via a transmission channel shown in the drawing to the receiver 103 which transcodes the transmitted signal into a signal lOc and which signal corresponds to the signal lOb except for coding and transmission errors.
The decoder 104 decodes the signal lOc also with the aid of an adaptive prediction filter IOB. The result is a signal lOd. Except for coding, decoding and transmission errors the signal lOd corresponds to the speech signal 10a. The adaptive prediction filters l0A and lOB determine signal-dependent filter coefficients (prediction coefficients) according to the Levinson-Durbin Recursion. The Levinson-Durbin Recursion is an algorithm for determining in a step-by-step fashion the solutions of a linear set of equations of which the coefficient matrix is a Toplitz matrix, thus a symmetrical matrix having the same elements along a given diagonal.
The NCOF prediction coefficients (NCOF stands for the number of these coefficients) for an adaptive prediction filter are unequivocally a consequence of the requirement that the sum of the prediction error squares be minimized on average over a signal section of a given length.
For example, if sampling values s(k) are applied to the input of the filter, the following linear combination will be the output value of the filter at the instant n:
NCOF
y (n) - ~ a (i) * s (n - i) (1) ~_~
The value y(n) is considered the predicted sampling value s(n). If the sum of the error squares is formed i. e.
C Y (n + i) + s (n + i) l 2 (2) i=o of a segment comprising LSEG sampling values, if (1) is put in in (2) while the coefficients a(i) are minimized in (2), above set of equations with the Toplitz matrix WO 94/25961 ; ~~ ;, >- ~ PCTIIB94/00087 .~ -. .
will arise if the sampling values outside this segment are set to zero. The elements of the Toplitz matrix are in this case the values of the autocorrelation function of the input signal at the sampling instants of the input signal, which function will be referenced autocorrelation coefficient r(minc) hereinafter. A detailed representation of the Levinson-Durbin Recursion is found in: L.R. Rabiner/R.W. Schafer, "Digital Pocessing of Speech Signals", Prentice-Hall, 1978.
In the following the algorithm of the Levinson-Durbin Recursion expressed in Rabiner/Schafer by the equations (8.67) to (8.72), is represented as a pseudo code because this code permits a better detection of the program steps an arithmetic unit is to carry out for the computation of the prediction coefficients.
LEVINSON-DURBIN Recursion (Pseudo code):
Input values: NCOF = Predictor Coefficient r(0) ... r(NCOF) = Autocorrelation coefficients Output values:a(0) ... a(NCOF) = Prediction coefficients a(0) = 1.0 O1 a( 1 ) - - r( 1 ) / r(0) 02 alpha = r(0) + r( 1 ) * a( 1 ) 03 For minc=2,3,4,...,NCOF 04 { sum = 0 05 for ip=0,1,2,3,...,minc-1 06 sum = sum + r(minc-ip) * a(ip) 07 rc - - sum / alpha 09 alpha = alpha + sum * rc O10 if(alpha < = 0.0) break 012 For ip=1,2,3,...,minc/2 014 { R1 = a( ip) + rc * a(minc-ip)) 015 R2 = a(minc-ip) + rc * a( ip)) 016 WO 94/25961 ~ ~ PCT/IB94/00087 .~i ,ta ..- -,-a(ip ) = R 1 O 17 a(minc-ip) = R2 018 } 019 a(minc) = rc 020 S } 021 To render the program steps given in the pseudo code even more transparent, several rows of the algorithm shown above will be further explained.
The predictor coefficient carrying the name of NCOF and the NCOF+ 1 autocorrelation coefficients are required as input data. The predictor coefficient NCOF
is identical with the number of filter coefficients a(i) in equation (1). The autocorrelation coefficients r(0), r(1) and so on, up to r(NCOF) are determined by other functional units not disclosed here, which, however, are known to a person skilled in the art.
The prediction coefficients a(0), a(1) and so on, up to a(NCOF) are output data.
Rows O1 and 02 comprise assignments to the two first prediction coefficients. In row 03 there is an assignment to an auxiliary variable alpha (prediction error for NCOF=1) whose augend is the zero' autocorrelation coefficient and whose addend is the product of the first correlation coefficient and the first prediction coefficient.
If the predictor coefficient NCOF is equal to 1, the computation is over, otherwise a loop having a running variable minc is passed through, which variable assumes all integers from 2 to NCOF. In the loop for the running variable minc all the previously computed prediction coefficients a(1), a(2) and so on, up to a(minc-1) are changed (recomputed), as is shown in rows 017 and 018. At the end of all the instructions which are to be carried out for the current value k of the running variable minc, a value is assigned to the prediction coefficient having the index minc, as is shown in row 020. This prediction coefficient is to be referenced the k~
prediction coefficient; the variables sum and rc (reflection coefficient) which are computed for the first time for the current value k of the running variable minc are to obtain the same addition.
In the loop having the running variable minc two further loops are passed to through which are not interleaved and have the running variable ip, the upper value of which variable depends on the current value of the running variable minc, as is shown in rows 06 and 014.
Auxiliary variables are those carrying the names of alpha, sum, rc, R1 and R2. The auxiliary variable alpha is the sum of the error squares according to equation (2), and also has a descriptive meaning; alpha is the energy content of the error signal (prediction error). This content is always to be positive. The computation is therefore broken off if there is a value for alpha smaller than or equal to zero, as is shown in row 012. Also the variable rc has a descriptive meaning; it is the so-termed reflection coefficient which plays a part in the so-called tube model of the vocal tract. A
reflection coefficient which occurs as a quotient of the auxiliary variables sum and alpha, as is shown in row 09, belongs to each prediction coefficient.
Most real-time implementations of speech coding methods according to which also coefficients for adaptive filters are to be computed, are based on 16-bit fixed-point arithmetic units, while intermediate results are available partly with enhanced accuracy (for example, 32 bits). The accuracy of the result of the Levinson Recursion decisively depends on the computational accuracy in the recursion.
As regards computational accuracy the most sensitive positions in the pseudo code are found where intermediate results of multiplication or division are available with higher resolution and are then to be reduced to the simple resolution. They are especially the rows 02, 03, 07, 09, 010, 015, 016 and 020.
A module for realising the Levinson-Durbin Recursion in 16-bit fixed-point arithmetic, will be described with reference to the following pseudo code. Several definitions are to be introduced first:
> > Right shift operation;
< < Left shift operation;
round (reg) Rounding operation performed on a 32-bit-wide register "reg". Let us assume that the bits in "reg" are numbered 0, 1, 2, ..., 31, while the sign bit is bit 31 and the significance of the individual bits decreases from bit 30 towards bit 0. Rounding with an accuracy of 16 bits then means that WO 94/25961 ~ . . ; ~, ~ ~ s PCT/IB94/00087 .~ , ~
bit 15 is added to bit 16 after which the bits 16 to 31 are used as the result.
*2* Fixed-point multiplication;
/ Fixed-point division;
Since the division is very costly to carry out, the result of the division is computed accurate to only as many positions as are absolutely necessary.
Results of the divisions are flush right in the register containing the results.
xh means the 16 most significant bits of a 32-bits word x.
x~ means the 16 least significant bits of a 32-bits word x.
16-Bits fixed-point Ixvinson Recursion (Pseudo code):
EXPa = 0; X 1 den = r[0]; X2 num = r[1]; X3 if (num < 0) num = -num; X4 a2 = num / den; XS
a2 = a2 < < 15; X6 al = round(a2); X7 if (r[1] > 0) al = -al; X8 rcl = alh; X9 a[1] = alh; X10 a01 = 0; X 11 a0h = r[0]; X12 a0 = a0 + rcl *2* r[1]; X13 a0 = round(a0); X14 alpha = a0h; X15 ' 30 for (minc=2; minc< =NCOF; minc+ +) X16 { a0 = 0; X17 for (ip=1; ip < minc; ip++) X18 a0 = a0 + r[minc-ip] *2* a[ip] X19 ',213'~:g 2 G _ a0 = a0 < < EXPa; X21 a 11 = 0; X22 al = r[minc]; X23 a0 = a0 + a 1; X24 a0 = round(a0); X25 sign = a0h; X26 num = a0h; X27 if (num < 0) num = -num; X28 if (num > = alpha) X29 goto LEDUMO failed; X30 a2 = num / alpha; X31 a2 = a2 < < 15; X32 al = round(a2); X33 if (a0 > 0) al = -al; X34 rc = alh; X35 all = 0; X37 alh = alpha; X38 al = al + rc *2* a0h; X39 al = round(al); X40 if (alpha < = 0) X41 goto LEDUMO failed; X42 alpha = a 1 h; X43 a0 = 0; X45 al = 0; X46 for (ip=1; ip < _ (minc> > 1); ip++) X47 { a0h = a[ip]; X48 a0 = a0 + rc *2* a[minc-ip]; X49 a0 = round(a0); XSO
If (overflow in a0) X51 { EXPa = EXPa + 1; X52 _ ~~
;a ~~v~~~
. . ~;
for (Ip=1; lp < minc; lp++) X53 a[lp] = a[lp] > > 1; X54 a0h = a[ip]; X55 a0 = a0 + rc *2* a[minc-ip]; X56 a0 = round(a0); X57 } X58 alh = a[minc-ip]; X59 al = al + rc *2* a[ip]; X60 al = round(al); X61 If (overflow in al) X62 { EXPa = EXPa + 1; X63 for (lp=1; lp < minc; Ip+ +) X64 a[Ip] = a[lp] > > 1; X65 a0h = a[ip]; X66 a0 = a0 + rc *2* a[minc-ip]; X67 a0 = round(a0); X68 alh = a[minc-ip]; X69 al = al + rc *2* a[ip]; X70 al = round(al); X71 } X72 a[ip ] = a0h; X73 a[minc-ip] = alh; X74 } X75 a2 = a2 > > EXPa; X76 a2 = round(a2); X77 if (sign > 0) a2 = -a2; X78 a[minc] = a2h; X79 } X80 a[0] = EXPa; X81 ' 30 return; X82 LEDUMO failed: X84 a[0] _ -1; X85 '. (.~ ø ' return; X86 Explanations of the pseudo code:
In fixed-point representation the prediction coefficients a[i] can only assume values between -1.0 and +1Ø Since, however, the coefficients a[i] can exceed 1.0 (rows X47 ... X75) during the recursion, all the coefficients are represented in the block floating-point format. This is to say, all the coefficients are normalized to a common basis 2E~a, so that the mantissa of all the normalized prediction coefficients lies again between -1.0 and + 1Ø At the start of the Ixvinson Recursion no coefficients have been computed yet, therefore the exponent EXPa is set to 0 (row X1).
Row O1 is not carried out here, because a(0) = 1.0 need not additionally be computed.
Rows 02 and 03 are converted similarly in the loop having the running variable minc. Therefore, an explanation of the fixed-point resolution will be given hereinbelow.
First there will be a description of the fixed-point implementation of rows OS
to 07:
In rows X17, X19 a0 denotes a 32-bit-wide accumulation register. A
multiplication input register is loaded with the autocorrelation coefficient r[minc-ip]. A
further multiplication input register is loaded with the mantissa of the previously computed normalized predictor coefficient a[ip]; the associated exponent EXPa is the same for all the coefficients. It should especially be emphasized that the coefficient a[0]
is not included in the normalization, because a multiplication by a[0] = 1 need not additionally be carried out.
The final result of the accumulation, first without the component a[0)*2*r[minc], is reduced in row X21 from the floating-point representation to the fixed-point representation by a left shift arrangement for denormalizing the 32-bit result in accumulator a0.
In rows X22 to X24 the component a[0]*2*r[minc] is added up while a further 32-bit-wide register al is used. There should be noted that the lower part of the register al is to be erased, because, owing to its use, the auxiliary register al could still contain previous values at other locations.
In rows X25 to X28 the counter term for the division is prepared to compute the current (k't') reflection coefficient rc. The division demands positive input ,~ ~. 3*7~~~ ~' data having a 16 bits data width which is achieved in row X25 by a rounding operation of the 32-bit-wide result in a0.
Registers at the input of a divider unit are directly loaded to carry out the division for the computation of the current (ku') reflection coefficient rc;
an exponent is 5 not necessary. There should be stated here that in [I) the division by floating-point values of alpha and num, recovered from a0 of row X24, is carried out. This corresponds to a considerable increase of the necessary computing speed.
The result of the division in row X31 is computed with an accuracy of 17 bits, the 17~' bit being necessary for the rounding operation. This rounding is performed 10 in row X33 to compute the current (k~') reflection coefficient and in row X77 to compute the current (k~') prediction coefficient. In row X32 the result of the division, of which the 17 bits are stored right justified in the 32-bit-wide register a2, is appropriately adapted to the fixedly set decimal point before the rounding operation.
After the correct sign has been used in row X34, finally the current reflection 15 coefficient rc is derived from the upper part of the 32-bit-wide register al by reading the upper 16-bit-wide word alh.
In rows X37 to X40 the new value of alpha is computed in the manner known henceforth, while all the input and output variables are represented in the 16-bit fixed-point format. Here too special mention is made of the fact that at this position in [I]
computations are made with floating-point representation for alpha and a0h (a0h corresponds to sum in row 09), which corresponds to a considerable increase of the required computing speed.
In rows X45 to X74 the previously computed predictor coefficients are adapted (recomputation and adaptation of the block floating-point format). This corresponds to the operations from rows O15 to 018. The special thing about this is that in the case of an overflow during the recomputation of the prediction coefficients a[ip] and a[minc-ip]
respectively, all the (i.e. the coefficients already recomputed and not yet recomputed, thus those previously computed) coefficients a[1], a[2], ... a[minc-1] are reduced by the factor of 1/2 (= right shift by 1 bit in row X54, X65, respectively). No overflow can then take place any longer when there is a recomputation in rows X55, X56, X57 and X66 to X71, respectively.
After the adjustment of the old coefficients (computed previously) has been terminated, the new (ku') prediction coefficient a[minc] is computed from rc (see row 020). In the 2~3792~ __ fixed-point format there should be noted that also the new (ku') coefficient is to be stored in the block floating-point format. Therefore, the reflection coefficient rc computed above, which is available in the non-normalized fixed-point format, is stored in a[minc] after a right shift by EXPa bits. With the solution given here, first the reflection coefficient, which is still stored in register a2 and has a 17-bit resolution, is shifted to the right by EXPa bits and subsequently rounded with an accuracy of 16 bits.
This is the decisive difference from the solution published in [I] in which the reflection coefficient already rounded directly after the division is shifted to the right by EXPa bits and the new prediction coefficient is derived by clipping to 16 bits.
This very difference at this position leads to the 16-bit fixed-point implementation of the Levinson Recursion described here which produces better results with attendant considerably less cost of computation than the solution shown in [I].
Fig. 2 shows an adaptive prediction filter. Such prediction filters comprise a filter in a narrower sense 2 and a control unit 1. The filter in the narrower sense 2 produces output values y(n) according to equation (1) and sends them over a line a2.
Input values s(n) are applied both to the filter in the narrower sense 2 and to the control unit 1 over a line bl.
The control unit 1 may again coarsely be subdivided into two functional units lA and 1B. The functional unit lA computes correlation coefficients from a section of the input signal, conveys these values to the functional unit 1B
which determines therefrom, by reducing the expression (2), new prediction coefficients with the means described above. The control unit 1 then substitutes over a line b 1 the whole block of coefficients computed by unit 1B for the prediction coefficients used so far.
The described filter comprising the functional unit 1B can be used several times in modern speech codecs.
Fig. 3 shows a predictive speech coder by which the coded speech signal is also decoded to improve the coding. Therefore, a special description of a decoder is omitted.
The speech signal to be coded is applied in the form of sampling values to the coder via a line 6a. A subtracter 6 subtracts therefrom the appropriate values of the speech signal again decoded by the coder, which speech signal is applied to the subtracter 6 over a line 4a. Over a line 6b the difference is sent to a unit 9 which makes a spectral weighting of the difference signal (for an extensive representation compare, for example, CHEN, J.H.: HIGH-QUALITY 16 KB/s SPEECH CODING WITH A
ONE-WAY DELAY LESS THAN 2MS. 1990, IEEE S9.1, pp. 453 to 456), after which for a speech signal segment the sum of the error squares is formed and stored.
For a segment of the speech signal on line 6a, 128 different coding options are tested and, finally, the option bringing about the fewest errors is sent to the receiver as a code signal.
These 128 options arise from the fact that a code book referenced 1 stores 128 so-called vectors. Each vector is a sequence of sampling values, which sequence contains a simulation of the signal, by which the vocal tract of a human being can be excited, for example, for resonance. The vectors are read consecutively from code book 1 and scaled by a controllable staler 2 (this corresponds to the volume control when human speech is generated). The staler 2 is controlled via a unit 3.
Subsequently, the scaled vectors are fed to a predictor 4, 5 and 8 having backward prediction.
The predictor forms a copy of the operation of the human vocal tract. It comprises a filter 5, 8 as shown in Fig. 2. Such filters are furthermore included in the units 3 and 9. Via a line la is transmitted, for example, the number of the vector that has led to the fewest errors in the current speech signal segment.
The diagrams of Fig. 4 graphically show what has been demonstrated hereinbefore with respect to two examples, that is to say, that with the conversion of prediction coefficients in a block floating point format with mantissas to 3 bits, the invention on average produces better results than according to the state of the art (I).
Output data are all the positive binary numbers with 4-bits resolution. To facilitate the verification of the two lower diagrams, the upper diagram shows an assignment of the output data in binary representation (the sign bit is omitted) as against their representation in fractions.
The middle diagram shows the error F which is made if the output data are first rounded according to [IJ and then the mantissas are computed with 3-bits resolution.
The lower diagram shows the error F which is made if the mantissas are first computed with 4-bits resolution and then rounded to 3 bits. The scale for the error F
is the same in either case and corresponds to that of the upper diagram.
The invention relates to a transmission system comprising at least a coder for coding a signal, at least a transmitter for transmitting the coded signal to at least a receiver, at least a decoder for decoding the coded signal and at least an adaptive prediction filter.
The invention likewise relates to a terminal unit, a coder, a decoder and an adaptive prediction filter.
Such a transmission system can be obtained, for example, without difficulty from the document "Draft of 6.728 Fixed Point Specification" Doc.
AH. 93-D.3, CCITT Study Group XV, London, March 29-30-1993, and from CCITT
Recommendation 6.728, "Coding of speech signals at 16 kbit/s using low-delay code excited linear prediction". The two documents will henceforth be referenced [I] and [II].
Such transmission systems can always be used when multiple use is to be made of a given transmission capacity. The reduction of the bit rate of a signal during coding makes it possible, for example, to hold four telephone conversations simultaneously over one 64 kbit/s transmission channel.
The multiple use of a given transmission capacity has very much importance in radio channels, as will be readily understood if one thinks of the rising number of subscribers of mobile radio systems. Also the storage capacity of a memory with an arbitrary storage medium can be used to considerably more advantage when bit rate reducing coders and appropriate decoders are used, because less storage space is necessary for storing an information signal.
It is known to utilize linear prediction for bit rate reduction. In [I] and [II]
prediction coefficients are computed by an adaptive prediction filter. The computation is performed segment by segment with the sample values of an auxiliary signal.
The auxiliary signal may be an (electric) audio signal or a speech signal, for example, coming from a person. Alternatively, it is possible for the auxiliary signal to be a synthetic audio or speech signal as produced in a coder which operates according to the principle of "analysis by synthesis" . A linear correlation between a predicted sampling WO 94/25961 213' 9 ~ G PCTIIB94100087 value (prediction value) of the auxiliary signal and previous sampling values of this signal is realised with the prediction coefficients. The prediction coefficients are determined so that the sum of the squares of all the errors computed for a segment of sampling values assumes a minimum value. An error is here meant to be understood as the difference between a sampling value and its predicted value. More accurate descriptions will be given hereinbelow.
In [I] and [II] an excited signal is converted into a synthetic audio signal by a synthesis filter. This synthetic audio signal is subtracted from an audio signal to be coded and the difference is used for optimizing the selection of the excited signal.
The computation of the prediction coefficients calls for correlation coefficients which are derived from the sampling values of the synthetic audio signal.
The computation of the prediction coefficients on the basis of the correlation coefficients calls for much circuitry and cost. To reduce this circuitry and cost the prediction coefficients are computed recursively. To begin with, a first reflection coefficient is computed from the two first correlation coefficients. From the first reflection coefficient the first prediction coefficient is derived. Furthermore, also a prediction error is computed, which is an indication of the quality of the prediction. Then, a second reflection coefficient is determined with the next correlation coefficient, the previously computed prediction coefficient and with the current prediction error. With the second reflection coefficient and the previously computed prediction coefficients (at this point only the first prediction coefficient is concerned) the previously computed prediction coefficients are recomputed. Then, a second prediction coefficient and a new prediction error are computed. The recomputation of the previously computed prediction coefficients and the computation of a further prediction coefficient is repeated so many times that all the necessary prediction coefficients are known.
In [II] an implementation in floating point arithmetic is proposed for obtaining sufficient accuracy. The drawback of an implementation in floating point arithmetic is the large circuitry. For this purpose, in [I] there is proposed to implement 16-bit fixed point arithmetic in which results and intermediate results of the computation are retained in the so-called block floating point format. This is meant to be understood as the representation of a block of numbers in floating point format, with the restriction, however, that all the numbers of the block have the same exponent (with base 2). The common exponent is selected such that all the mantissas are situated within prescribed limits. In [T] there is provided that all the mantissas are situated between -1 and +1. In the block floating point format, for example, the prediction coefficients are shown which, from previous experience, assume values that may be on the order of 10. If, for example, overflow occurs when the prediction coefficients are recomputed i.e. a recomputed prediction coefficient will be 1 or exceed 1, the mantissas of all the previously computed prediction coefficients will be divided by 2 and the common exponent (with base 2) will be increased by 1. Then the recomputation is started anew.
The change of the block floating point format due to overflow will here be called an adaptation of the block floating point format. For the repeated recomputation only the mantissas of the previously computed prediction coefficients are used, and only with 16-bit resolution. The reduction of the resolution from at least 17 bits to 16 bits which is sometimes necessary for the computation can be effected in different manners. The manner of reduction according to [I] will be outlined with the aid of an example. If, for example, the third reflection coefficient has just been computed with a resolution of 17 bits -between the third reflection coefficient and the third prediction coefficient to be derived therefrom there is only a difference in the numerical representation - it is shortened by a rounding to 16 bits, so that the two first prediction coefficients can be recomputed therewith in 16-bit fixed point arithmetic. If there is an overflow during this recomputation, also the rounded third reflection coefficient is, for example, divided by two when recomputation has ended, and the result which has a resolution of 16 bits is stored as a mantissa of the third prediction coefficient. The division is broken off after 16 bits (including the sign bit). Due to the binary system this operation corresponds to a shift of the decimal point 3a by one position while the least-significant bit is lost.
This procedure causes the inaccuracies - especially with a large number of prediction coefficients - to become unacceptably large.
It is an object of the invention to enhance the computational accuracy during coding in a transmission system of the type defined in the opening paragraph, without increasing then the computation effort. A transmission system having this property comprises - at least a coder for coding a signal, - at least a receiver - at least a transmitter for transmitting the coded signal to the receiver, - at least a decoder for decoding the coded signal and - at least an adaptive prediction filter provided at least for a coder, the adaptive WO 94/25961 ,~ ., j.,y~'~ ~ ~ PCT/IB94/00087 prediction filter including:
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means for computing the k~' reflection coefficient with a minimum resolution of N+ 1 bits, b) means for buffering the k~' reflection coefficient with a minimum resolution of N+ 1 bits, c) means for determining the k~' reflection coefficient with a resolution of N
bits, d) means for recomputing the k-1 previously computed prediction coefficients while utilizing the k~' reflection coefficient obtained under c), e) means for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means for converting the k~' reflection coefficient buffered under b) to a number in the floating point format, whose exponent is represented by the exponent determined under e) of the block floating point format and whose mantissa has a resolution of at least N+ 1 bits, g) means for rounding to N bits the mantissa of the k~ reflection coefficient obtained under f) and h) means for storing the k~' reflection coefficient obtained under g) as the k~' prediction coefficient.
The transmission system according to the invention is distinguished from a transmission system described in [I] in that the k~' reflection coefficient after its first computation is buffered with a minimum accuracy of N+1 bits. For the recomputation of the k-1 previously computed prediction coefficients a value is used which distinguishes itself from the buffered value by a limitation to N bits. If overflow occurs during the recomputation of the k-1 previously computed prediction coefficients, the W~ 94/25961 ' , .' ~ ~..,~~~,.~:~ ~ ~ PCTIIB94/00087 buffered value is divided, for example, by 2 after the recomputation has finished, and then rounded to N bits. This way of incorporating the lc~ prediction coefficient in the (adapted) block floating point format produces an error which is at most as large as the corresponding error in [I]. However, equally important is it to find that the sign of the 5 error according to the invention appears to turn out as often positive as negative, which is different from [I].
These assertions will now be confirmed with the aid of two simple examples.
Let us assume that three (N = 3) bits are available for representing the results and at least four bits for intermediate results. Furthermore, let us assume that the adaptation due to overflow requires a division by 4. Numerical examples for ku' reflection coefficients having a 4-bits resolution in fixed point representation are started from.
In a first example a k~' reflection coefficient has a value of +S/8. In the binary system this reflection coefficient is represented as 0.101, the first zero denoting the sign. According to [I] the procedure is as follows:
a) 0.101 (k~' reflection coefficient: +S/8 with 4-bits resolution) b) 0.11 (value of b) rounded to 3 positions for the recomputation of the k-1 previously computed prediction coefficients) c) 0.00 (value of b) divided by 4, also with 3-bits resolution. This value is the mantissa of the ku' reflection coefficient in the block floating point format with the exponent 2 and with base 2) For making an assertion about the error if the approximation c) is used in lieu of a), c) is first to be multiplied again by 4. The difference between the value resulting therefrom and the output value is the error F. In the present case (representation as a fraction) F = ( - 5/8) _ -5/8.
In contrast, according to the invention there is provided:
a) 0.101 (k~' reflection coefficient: +5/8 with 4-bits resolution), b) 0.001 (value of a) divided by 4, also with 4-bits resolution), c) 0.01 (value of b) rounded to 3 bits).
Analogous with the preceding observations we now have as an error: F = (1 -5/8) _ 3/8.
If 0.011 (+3/8) is selected as the output value, there is a value of F = (0 -3/8) _ -3/8 W0 94125961 ~~'~ ~.~~~.,~ ~ PCTIIB94/00087 for the error according to the same scheme of [I]. According to the invention, we now have: F = (0 - 3/8) _ -3/8.
The order of the means indicated above and also to be indicated below is not to be understood in such a way that they are also to be activated in this order in time.
A further embodiment of the invention comprises - means for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which the overflow has occurred.
If overflow occurs during the recomputation of the prediction coefficients, according to [I) only the floating point format of the previously computed prediction coefficients is adapted and then the recomputation is started again from the beginning. In contrast, the embodiment according to the invention avoids a not inconsiderable part of the computation circuitry, especially in the event of a large number of coefficients.
The invention with its embodiments will be explained with reference to the drawing Figures, in which:
Fig. 1 shows a specific transmission system in which the invention can be used, Fig. 2 shows the basic circuit diagram of an adaptive prediction filter, Fig. 3 shows the basic circuit diagram of a speech coder and Fig. 4 shows diagrams for clarifying a difference between the invention and the state of the art.
Fig. 1 gives a diagrammatic representation of a transmission system comprising a coder 101 and a transmitter 102 on a transmitting side and a receiver 103 and a decoder 104 on a receiving side. The combination of the coder 101 with the transmitter 102 and/or the combination of the receiver 103 with the decoder 104 forms a terminal unit LE.
The coder 101 codes a speech signal l0a by means of an adaptive prediction filter 10A. This filter has characteristic features according to the invention, which will become apparent in the following. The speech signal l0a has a bit rate of 64 kbit/s. The coder 101 reduces this bit rate to the bit rate of the coded signal lOb. The bit rate of the coded signal lOb is 16 kbit/s. The signal lOb consists of parameters of the speech signal l0a which parameters are determined segment by segment.
~~'n 94/25961 PCTIIB94100087 2~°~7.~ ~ 6 _ .Y ~'t ~t ~ b;
The transmitter 102 transmits the coded signal lOb - transcoded into a transmission code, as required - via a transmission channel shown in the drawing to the receiver 103 which transcodes the transmitted signal into a signal lOc and which signal corresponds to the signal lOb except for coding and transmission errors.
The decoder 104 decodes the signal lOc also with the aid of an adaptive prediction filter IOB. The result is a signal lOd. Except for coding, decoding and transmission errors the signal lOd corresponds to the speech signal 10a. The adaptive prediction filters l0A and lOB determine signal-dependent filter coefficients (prediction coefficients) according to the Levinson-Durbin Recursion. The Levinson-Durbin Recursion is an algorithm for determining in a step-by-step fashion the solutions of a linear set of equations of which the coefficient matrix is a Toplitz matrix, thus a symmetrical matrix having the same elements along a given diagonal.
The NCOF prediction coefficients (NCOF stands for the number of these coefficients) for an adaptive prediction filter are unequivocally a consequence of the requirement that the sum of the prediction error squares be minimized on average over a signal section of a given length.
For example, if sampling values s(k) are applied to the input of the filter, the following linear combination will be the output value of the filter at the instant n:
NCOF
y (n) - ~ a (i) * s (n - i) (1) ~_~
The value y(n) is considered the predicted sampling value s(n). If the sum of the error squares is formed i. e.
C Y (n + i) + s (n + i) l 2 (2) i=o of a segment comprising LSEG sampling values, if (1) is put in in (2) while the coefficients a(i) are minimized in (2), above set of equations with the Toplitz matrix WO 94/25961 ; ~~ ;, >- ~ PCTIIB94/00087 .~ -. .
will arise if the sampling values outside this segment are set to zero. The elements of the Toplitz matrix are in this case the values of the autocorrelation function of the input signal at the sampling instants of the input signal, which function will be referenced autocorrelation coefficient r(minc) hereinafter. A detailed representation of the Levinson-Durbin Recursion is found in: L.R. Rabiner/R.W. Schafer, "Digital Pocessing of Speech Signals", Prentice-Hall, 1978.
In the following the algorithm of the Levinson-Durbin Recursion expressed in Rabiner/Schafer by the equations (8.67) to (8.72), is represented as a pseudo code because this code permits a better detection of the program steps an arithmetic unit is to carry out for the computation of the prediction coefficients.
LEVINSON-DURBIN Recursion (Pseudo code):
Input values: NCOF = Predictor Coefficient r(0) ... r(NCOF) = Autocorrelation coefficients Output values:a(0) ... a(NCOF) = Prediction coefficients a(0) = 1.0 O1 a( 1 ) - - r( 1 ) / r(0) 02 alpha = r(0) + r( 1 ) * a( 1 ) 03 For minc=2,3,4,...,NCOF 04 { sum = 0 05 for ip=0,1,2,3,...,minc-1 06 sum = sum + r(minc-ip) * a(ip) 07 rc - - sum / alpha 09 alpha = alpha + sum * rc O10 if(alpha < = 0.0) break 012 For ip=1,2,3,...,minc/2 014 { R1 = a( ip) + rc * a(minc-ip)) 015 R2 = a(minc-ip) + rc * a( ip)) 016 WO 94/25961 ~ ~ PCT/IB94/00087 .~i ,ta ..- -,-a(ip ) = R 1 O 17 a(minc-ip) = R2 018 } 019 a(minc) = rc 020 S } 021 To render the program steps given in the pseudo code even more transparent, several rows of the algorithm shown above will be further explained.
The predictor coefficient carrying the name of NCOF and the NCOF+ 1 autocorrelation coefficients are required as input data. The predictor coefficient NCOF
is identical with the number of filter coefficients a(i) in equation (1). The autocorrelation coefficients r(0), r(1) and so on, up to r(NCOF) are determined by other functional units not disclosed here, which, however, are known to a person skilled in the art.
The prediction coefficients a(0), a(1) and so on, up to a(NCOF) are output data.
Rows O1 and 02 comprise assignments to the two first prediction coefficients. In row 03 there is an assignment to an auxiliary variable alpha (prediction error for NCOF=1) whose augend is the zero' autocorrelation coefficient and whose addend is the product of the first correlation coefficient and the first prediction coefficient.
If the predictor coefficient NCOF is equal to 1, the computation is over, otherwise a loop having a running variable minc is passed through, which variable assumes all integers from 2 to NCOF. In the loop for the running variable minc all the previously computed prediction coefficients a(1), a(2) and so on, up to a(minc-1) are changed (recomputed), as is shown in rows 017 and 018. At the end of all the instructions which are to be carried out for the current value k of the running variable minc, a value is assigned to the prediction coefficient having the index minc, as is shown in row 020. This prediction coefficient is to be referenced the k~
prediction coefficient; the variables sum and rc (reflection coefficient) which are computed for the first time for the current value k of the running variable minc are to obtain the same addition.
In the loop having the running variable minc two further loops are passed to through which are not interleaved and have the running variable ip, the upper value of which variable depends on the current value of the running variable minc, as is shown in rows 06 and 014.
Auxiliary variables are those carrying the names of alpha, sum, rc, R1 and R2. The auxiliary variable alpha is the sum of the error squares according to equation (2), and also has a descriptive meaning; alpha is the energy content of the error signal (prediction error). This content is always to be positive. The computation is therefore broken off if there is a value for alpha smaller than or equal to zero, as is shown in row 012. Also the variable rc has a descriptive meaning; it is the so-termed reflection coefficient which plays a part in the so-called tube model of the vocal tract. A
reflection coefficient which occurs as a quotient of the auxiliary variables sum and alpha, as is shown in row 09, belongs to each prediction coefficient.
Most real-time implementations of speech coding methods according to which also coefficients for adaptive filters are to be computed, are based on 16-bit fixed-point arithmetic units, while intermediate results are available partly with enhanced accuracy (for example, 32 bits). The accuracy of the result of the Levinson Recursion decisively depends on the computational accuracy in the recursion.
As regards computational accuracy the most sensitive positions in the pseudo code are found where intermediate results of multiplication or division are available with higher resolution and are then to be reduced to the simple resolution. They are especially the rows 02, 03, 07, 09, 010, 015, 016 and 020.
A module for realising the Levinson-Durbin Recursion in 16-bit fixed-point arithmetic, will be described with reference to the following pseudo code. Several definitions are to be introduced first:
> > Right shift operation;
< < Left shift operation;
round (reg) Rounding operation performed on a 32-bit-wide register "reg". Let us assume that the bits in "reg" are numbered 0, 1, 2, ..., 31, while the sign bit is bit 31 and the significance of the individual bits decreases from bit 30 towards bit 0. Rounding with an accuracy of 16 bits then means that WO 94/25961 ~ . . ; ~, ~ ~ s PCT/IB94/00087 .~ , ~
bit 15 is added to bit 16 after which the bits 16 to 31 are used as the result.
*2* Fixed-point multiplication;
/ Fixed-point division;
Since the division is very costly to carry out, the result of the division is computed accurate to only as many positions as are absolutely necessary.
Results of the divisions are flush right in the register containing the results.
xh means the 16 most significant bits of a 32-bits word x.
x~ means the 16 least significant bits of a 32-bits word x.
16-Bits fixed-point Ixvinson Recursion (Pseudo code):
EXPa = 0; X 1 den = r[0]; X2 num = r[1]; X3 if (num < 0) num = -num; X4 a2 = num / den; XS
a2 = a2 < < 15; X6 al = round(a2); X7 if (r[1] > 0) al = -al; X8 rcl = alh; X9 a[1] = alh; X10 a01 = 0; X 11 a0h = r[0]; X12 a0 = a0 + rcl *2* r[1]; X13 a0 = round(a0); X14 alpha = a0h; X15 ' 30 for (minc=2; minc< =NCOF; minc+ +) X16 { a0 = 0; X17 for (ip=1; ip < minc; ip++) X18 a0 = a0 + r[minc-ip] *2* a[ip] X19 ',213'~:g 2 G _ a0 = a0 < < EXPa; X21 a 11 = 0; X22 al = r[minc]; X23 a0 = a0 + a 1; X24 a0 = round(a0); X25 sign = a0h; X26 num = a0h; X27 if (num < 0) num = -num; X28 if (num > = alpha) X29 goto LEDUMO failed; X30 a2 = num / alpha; X31 a2 = a2 < < 15; X32 al = round(a2); X33 if (a0 > 0) al = -al; X34 rc = alh; X35 all = 0; X37 alh = alpha; X38 al = al + rc *2* a0h; X39 al = round(al); X40 if (alpha < = 0) X41 goto LEDUMO failed; X42 alpha = a 1 h; X43 a0 = 0; X45 al = 0; X46 for (ip=1; ip < _ (minc> > 1); ip++) X47 { a0h = a[ip]; X48 a0 = a0 + rc *2* a[minc-ip]; X49 a0 = round(a0); XSO
If (overflow in a0) X51 { EXPa = EXPa + 1; X52 _ ~~
;a ~~v~~~
. . ~;
for (Ip=1; lp < minc; lp++) X53 a[lp] = a[lp] > > 1; X54 a0h = a[ip]; X55 a0 = a0 + rc *2* a[minc-ip]; X56 a0 = round(a0); X57 } X58 alh = a[minc-ip]; X59 al = al + rc *2* a[ip]; X60 al = round(al); X61 If (overflow in al) X62 { EXPa = EXPa + 1; X63 for (lp=1; lp < minc; Ip+ +) X64 a[Ip] = a[lp] > > 1; X65 a0h = a[ip]; X66 a0 = a0 + rc *2* a[minc-ip]; X67 a0 = round(a0); X68 alh = a[minc-ip]; X69 al = al + rc *2* a[ip]; X70 al = round(al); X71 } X72 a[ip ] = a0h; X73 a[minc-ip] = alh; X74 } X75 a2 = a2 > > EXPa; X76 a2 = round(a2); X77 if (sign > 0) a2 = -a2; X78 a[minc] = a2h; X79 } X80 a[0] = EXPa; X81 ' 30 return; X82 LEDUMO failed: X84 a[0] _ -1; X85 '. (.~ ø ' return; X86 Explanations of the pseudo code:
In fixed-point representation the prediction coefficients a[i] can only assume values between -1.0 and +1Ø Since, however, the coefficients a[i] can exceed 1.0 (rows X47 ... X75) during the recursion, all the coefficients are represented in the block floating-point format. This is to say, all the coefficients are normalized to a common basis 2E~a, so that the mantissa of all the normalized prediction coefficients lies again between -1.0 and + 1Ø At the start of the Ixvinson Recursion no coefficients have been computed yet, therefore the exponent EXPa is set to 0 (row X1).
Row O1 is not carried out here, because a(0) = 1.0 need not additionally be computed.
Rows 02 and 03 are converted similarly in the loop having the running variable minc. Therefore, an explanation of the fixed-point resolution will be given hereinbelow.
First there will be a description of the fixed-point implementation of rows OS
to 07:
In rows X17, X19 a0 denotes a 32-bit-wide accumulation register. A
multiplication input register is loaded with the autocorrelation coefficient r[minc-ip]. A
further multiplication input register is loaded with the mantissa of the previously computed normalized predictor coefficient a[ip]; the associated exponent EXPa is the same for all the coefficients. It should especially be emphasized that the coefficient a[0]
is not included in the normalization, because a multiplication by a[0] = 1 need not additionally be carried out.
The final result of the accumulation, first without the component a[0)*2*r[minc], is reduced in row X21 from the floating-point representation to the fixed-point representation by a left shift arrangement for denormalizing the 32-bit result in accumulator a0.
In rows X22 to X24 the component a[0]*2*r[minc] is added up while a further 32-bit-wide register al is used. There should be noted that the lower part of the register al is to be erased, because, owing to its use, the auxiliary register al could still contain previous values at other locations.
In rows X25 to X28 the counter term for the division is prepared to compute the current (k't') reflection coefficient rc. The division demands positive input ,~ ~. 3*7~~~ ~' data having a 16 bits data width which is achieved in row X25 by a rounding operation of the 32-bit-wide result in a0.
Registers at the input of a divider unit are directly loaded to carry out the division for the computation of the current (ku') reflection coefficient rc;
an exponent is 5 not necessary. There should be stated here that in [I) the division by floating-point values of alpha and num, recovered from a0 of row X24, is carried out. This corresponds to a considerable increase of the necessary computing speed.
The result of the division in row X31 is computed with an accuracy of 17 bits, the 17~' bit being necessary for the rounding operation. This rounding is performed 10 in row X33 to compute the current (k~') reflection coefficient and in row X77 to compute the current (k~') prediction coefficient. In row X32 the result of the division, of which the 17 bits are stored right justified in the 32-bit-wide register a2, is appropriately adapted to the fixedly set decimal point before the rounding operation.
After the correct sign has been used in row X34, finally the current reflection 15 coefficient rc is derived from the upper part of the 32-bit-wide register al by reading the upper 16-bit-wide word alh.
In rows X37 to X40 the new value of alpha is computed in the manner known henceforth, while all the input and output variables are represented in the 16-bit fixed-point format. Here too special mention is made of the fact that at this position in [I]
computations are made with floating-point representation for alpha and a0h (a0h corresponds to sum in row 09), which corresponds to a considerable increase of the required computing speed.
In rows X45 to X74 the previously computed predictor coefficients are adapted (recomputation and adaptation of the block floating-point format). This corresponds to the operations from rows O15 to 018. The special thing about this is that in the case of an overflow during the recomputation of the prediction coefficients a[ip] and a[minc-ip]
respectively, all the (i.e. the coefficients already recomputed and not yet recomputed, thus those previously computed) coefficients a[1], a[2], ... a[minc-1] are reduced by the factor of 1/2 (= right shift by 1 bit in row X54, X65, respectively). No overflow can then take place any longer when there is a recomputation in rows X55, X56, X57 and X66 to X71, respectively.
After the adjustment of the old coefficients (computed previously) has been terminated, the new (ku') prediction coefficient a[minc] is computed from rc (see row 020). In the 2~3792~ __ fixed-point format there should be noted that also the new (ku') coefficient is to be stored in the block floating-point format. Therefore, the reflection coefficient rc computed above, which is available in the non-normalized fixed-point format, is stored in a[minc] after a right shift by EXPa bits. With the solution given here, first the reflection coefficient, which is still stored in register a2 and has a 17-bit resolution, is shifted to the right by EXPa bits and subsequently rounded with an accuracy of 16 bits.
This is the decisive difference from the solution published in [I] in which the reflection coefficient already rounded directly after the division is shifted to the right by EXPa bits and the new prediction coefficient is derived by clipping to 16 bits.
This very difference at this position leads to the 16-bit fixed-point implementation of the Levinson Recursion described here which produces better results with attendant considerably less cost of computation than the solution shown in [I].
Fig. 2 shows an adaptive prediction filter. Such prediction filters comprise a filter in a narrower sense 2 and a control unit 1. The filter in the narrower sense 2 produces output values y(n) according to equation (1) and sends them over a line a2.
Input values s(n) are applied both to the filter in the narrower sense 2 and to the control unit 1 over a line bl.
The control unit 1 may again coarsely be subdivided into two functional units lA and 1B. The functional unit lA computes correlation coefficients from a section of the input signal, conveys these values to the functional unit 1B
which determines therefrom, by reducing the expression (2), new prediction coefficients with the means described above. The control unit 1 then substitutes over a line b 1 the whole block of coefficients computed by unit 1B for the prediction coefficients used so far.
The described filter comprising the functional unit 1B can be used several times in modern speech codecs.
Fig. 3 shows a predictive speech coder by which the coded speech signal is also decoded to improve the coding. Therefore, a special description of a decoder is omitted.
The speech signal to be coded is applied in the form of sampling values to the coder via a line 6a. A subtracter 6 subtracts therefrom the appropriate values of the speech signal again decoded by the coder, which speech signal is applied to the subtracter 6 over a line 4a. Over a line 6b the difference is sent to a unit 9 which makes a spectral weighting of the difference signal (for an extensive representation compare, for example, CHEN, J.H.: HIGH-QUALITY 16 KB/s SPEECH CODING WITH A
ONE-WAY DELAY LESS THAN 2MS. 1990, IEEE S9.1, pp. 453 to 456), after which for a speech signal segment the sum of the error squares is formed and stored.
For a segment of the speech signal on line 6a, 128 different coding options are tested and, finally, the option bringing about the fewest errors is sent to the receiver as a code signal.
These 128 options arise from the fact that a code book referenced 1 stores 128 so-called vectors. Each vector is a sequence of sampling values, which sequence contains a simulation of the signal, by which the vocal tract of a human being can be excited, for example, for resonance. The vectors are read consecutively from code book 1 and scaled by a controllable staler 2 (this corresponds to the volume control when human speech is generated). The staler 2 is controlled via a unit 3.
Subsequently, the scaled vectors are fed to a predictor 4, 5 and 8 having backward prediction.
The predictor forms a copy of the operation of the human vocal tract. It comprises a filter 5, 8 as shown in Fig. 2. Such filters are furthermore included in the units 3 and 9. Via a line la is transmitted, for example, the number of the vector that has led to the fewest errors in the current speech signal segment.
The diagrams of Fig. 4 graphically show what has been demonstrated hereinbefore with respect to two examples, that is to say, that with the conversion of prediction coefficients in a block floating point format with mantissas to 3 bits, the invention on average produces better results than according to the state of the art (I).
Output data are all the positive binary numbers with 4-bits resolution. To facilitate the verification of the two lower diagrams, the upper diagram shows an assignment of the output data in binary representation (the sign bit is omitted) as against their representation in fractions.
The middle diagram shows the error F which is made if the output data are first rounded according to [IJ and then the mantissas are computed with 3-bits resolution.
The lower diagram shows the error F which is made if the mantissas are first computed with 4-bits resolution and then rounded to 3 bits. The scale for the error F
is the same in either case and corresponds to that of the upper diagram.
Claims (10)
1. Transmission system comprising - at least a coder (101) for coding a signal (10a), - at least a receiver (103), - at least a transmitter (102) for transmitting the coded signal (10b) to the receiver (103), - at least a decoder (104) for decoding the coded signal, and - at least an adaptive prediction filter (10A, 10B) provided at least for a coder, the adaptive prediction filter including:
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N + 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N + 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
2. Transmission system as claimed in Claim 1, characterized by means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and by means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 1, feature e)).
3. Terminal unit (LE) comprising - at least a coder (101), a transmitter (102) or at least a receiver (103) and a decoder (104), and - at least an adaptive prediction filter (10A, 10B), the adaptive prediction filter including:
19a - means for computing correlation coefficients from segments of sampling values of a signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction. coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
19a - means for computing correlation coefficients from segments of sampling values of a signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction. coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
4. Terminal unit as claimed in Claim 3, characterized by - means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 3, feature e)).
5. Coder (101) for coding a signal (10a), - comprising at least an adaptive prediction filter (10A, 10B), the adaptive prediction filter including:
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N+ 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N+ 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N+ 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N+ 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
6. Coder (101) as claimed in Claim 5, characterized by - means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 5, feature e)).
7. Decoder (104) for decoding a signal (10c), - comprising at least an adaptive prediction filter (10B), the adaptive prediction filter including:
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
- means for computing correlation coefficients from segments of sampling values of an auxiliary signal that depends on the signal or on the decoded signal, as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N + 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N + 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
8. Decoder (104) as claimed in Claim 7, characterized by:
- means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 7, feature e)).
- means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and - means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 7, feature e)).
9. Adaptive prediction filter (Fig. 2), comprising - means for computing correlation coefficients from segments of sampling values of a signal as well as - means for determining reflection and prediction coefficients from the correlation coefficients in N-bit fixed point arithmetic, and in that the following means are provided for recursively determining the prediction coefficients to be represented in the block floating point format:
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N+ 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N+ 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
a) means (X31) for computing the k th reflection coefficient with a minimum resolution of N+ 1 bits, b) means (a2) for buffering the k th reflection coefficient with a minimum resolution of N+ 1 bits, c) means (X33) for determining the k th reflection coefficient with a resolution of N
bits, d) means (X74, X75) for recomputing the k-1 previously computed prediction coefficients while utilizing the k th reflection coefficient obtained under c), e) means (X51-X58; X62-X72) for adapting the block floating point format of the k-1 prediction coefficients if during the recomputation of the k-1 previously computed prediction coefficients overflow occurs, so that N bits are no longer sufficient to represent a recomputed prediction coefficient, f) means (X76) for converting the k th reflection coefficient buffered under b) to a floating point format number whose exponent is represented by the exponent of the block floating point format determined under e) and whose mantissa has a resolution of at least N+ 1 bits, g) means (X77) for rounding to N bits the mantissa of the k th reflection coefficient obtained under f) and h) means (X79) for storing the k th reflection coefficient obtained under g) as the k th prediction coefficient.
10. Adaptive prediction filter (Fig. 2) as claimed in Claim 9, characterized by:
- means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and by means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 9, feature e)).
- means (X51-X58) for adapting the block floating point format of the k-1 prediction coefficients already recomputed and not yet recomputed, and by means (X62-X72) for continuing the recomputation of the k-1 prediction coefficients for the prediction coefficient at which overflow has occurred (Claim 9, feature e)).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4314921 | 1993-05-05 | ||
DEP4314921.9 | 1993-05-05 | ||
PCT/IB1994/000087 WO1994025961A1 (en) | 1993-05-05 | 1994-05-02 | Transmission system comprising at least a coder |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2137926A1 CA2137926A1 (en) | 1994-11-10 |
CA2137926C true CA2137926C (en) | 2005-06-28 |
Family
ID=6487280
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002137926A Expired - Fee Related CA2137926C (en) | 1993-05-05 | 1994-05-02 | Transmission system comprising at least a coder |
CA002137925A Expired - Fee Related CA2137925C (en) | 1993-05-05 | 1994-05-02 | Transmission system comprising at least a coder |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002137925A Expired - Fee Related CA2137925C (en) | 1993-05-05 | 1994-05-02 | Transmission system comprising at least a coder |
Country Status (13)
Country | Link |
---|---|
US (2) | US5751902A (en) |
EP (2) | EP0649558B1 (en) |
JP (2) | JP3509862B2 (en) |
KR (2) | KR100346963B1 (en) |
CN (3) | CN1113332C (en) |
CA (2) | CA2137926C (en) |
DE (2) | DE69420220T2 (en) |
ES (2) | ES2138076T3 (en) |
HK (2) | HK1012750A1 (en) |
RU (2) | RU2138030C1 (en) |
SG (1) | SG55188A1 (en) |
UA (2) | UA41892C2 (en) |
WO (2) | WO1994025961A1 (en) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3522012B2 (en) * | 1995-08-23 | 2004-04-26 | 沖電気工業株式会社 | Code Excited Linear Prediction Encoder |
US6088445A (en) * | 1997-08-01 | 2000-07-11 | Crystal Semiconductor Corp. | Adaptive filter system having mixed fixed point or floating point and block scale floating point operators |
US5905659A (en) * | 1997-10-07 | 1999-05-18 | Rose; Ralph E. | Training a recursive filter by use of derivative function |
US5974434A (en) * | 1997-10-07 | 1999-10-26 | Ralph E. Rose | Method and apparatus for automatically tuning the parameters of a feedback control system |
US6012025A (en) * | 1998-01-28 | 2000-01-04 | Nokia Mobile Phones Limited | Audio coding method and apparatus using backward adaptive prediction |
US6014093A (en) * | 1998-02-27 | 2000-01-11 | Hayes; Adam T. | Pulse coding system |
DE19824104B4 (en) * | 1998-04-27 | 2009-12-24 | Abb Research Ltd. | Non-linear resistor with varistor behavior |
DE19845888A1 (en) * | 1998-10-06 | 2000-05-11 | Bosch Gmbh Robert | Method for coding or decoding speech signal samples as well as encoders or decoders |
CN1227812C (en) * | 2000-01-07 | 2005-11-16 | 皇家菲利浦电子有限公司 | Generating coefficients for prediction filter in encoder |
JP3748261B2 (en) * | 2003-06-17 | 2006-02-22 | 沖電気工業株式会社 | ADPCM decoder |
US7209056B2 (en) * | 2003-09-02 | 2007-04-24 | Nippon Telegraph And Telephone Corporation | Floating point signal reversible encoding method, decoding method, device thereof, program, and recording medium thereof |
DE102004007185B3 (en) * | 2004-02-13 | 2005-06-30 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Predictive coding method for information signals using adaptive prediction algorithm with switching between higher adaption rate and lower prediction accuracy and lower adaption rate and higher prediction accuracy |
US7392195B2 (en) * | 2004-03-25 | 2008-06-24 | Dts, Inc. | Lossless multi-channel audio codec |
US7961890B2 (en) * | 2005-04-15 | 2011-06-14 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Multi-channel hierarchical audio coding with compact side information |
US7734466B2 (en) * | 2005-06-20 | 2010-06-08 | Motorola, Inc. | Reduced complexity recursive least square lattice structure adaptive filter by means of limited recursion of the backward and forward error prediction squares |
DE102005039621A1 (en) * | 2005-08-19 | 2007-03-01 | Micronas Gmbh | Method and apparatus for the adaptive reduction of noise and background signals in a speech processing system |
US8195462B2 (en) * | 2006-02-16 | 2012-06-05 | At&T Intellectual Property Ii, L.P. | System and method for providing large vocabulary speech processing based on fixed-point arithmetic |
EP1999999B1 (en) * | 2006-03-24 | 2011-11-02 | Dolby Sweden AB | Generation of spatial downmixes from parametric representations of multi channel signals |
US9048784B2 (en) * | 2007-04-03 | 2015-06-02 | General Motors Llc | Method for data communication via a voice channel of a wireless communication network using continuous signal modulation |
CN101578655B (en) * | 2007-10-16 | 2013-06-05 | 松下电器产业株式会社 | Stream generating device, decoding device, and method |
US8704186B2 (en) * | 2009-11-17 | 2014-04-22 | Lawrence Livermore National Security, Llc | Active noise canceling system for mechanically cooled germanium radiation detectors |
US20110188571A1 (en) * | 2010-02-04 | 2011-08-04 | Sony Corporation | Recursive adaptive interpolation filters (raif) |
KR101956284B1 (en) * | 2011-06-30 | 2019-03-08 | 엘지전자 주식회사 | Interpolation Method And Prediction method thereof |
EP3751566B1 (en) * | 2014-04-17 | 2024-02-28 | VoiceAge EVS LLC | Methods, encoder and decoder for linear predictive encoding and decoding of sound signals upon transition between frames having different sampling rates |
EP3040852A1 (en) * | 2014-12-31 | 2016-07-06 | Nxp B.V. | Scaling for block floating-point data |
US20200210839A1 (en) * | 2018-12-31 | 2020-07-02 | Microsoft Technology Licensing, Llc | Neural network activation compression with outlier block floating-point |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3619586A (en) * | 1968-11-25 | 1971-11-09 | Research Corp | Universal digital filter for linear discrete systems |
US3842250A (en) * | 1973-08-29 | 1974-10-15 | Sperry Rand Corp | Circuit for implementing rounding in add/subtract logic networks |
US4509150A (en) * | 1980-12-31 | 1985-04-02 | Mobil Oil Corporation | Linear prediction coding for compressing of seismic data |
FR2515901A1 (en) * | 1981-11-04 | 1983-05-06 | Trt Telecom Radio Electr | MIC-DIFFERENTIAL TRANSMISSION SYSTEM WITH ADAPTIVE PREDICTION |
NL8304214A (en) * | 1983-12-07 | 1985-07-01 | Philips Nv | METHOD FOR CORRECTING ERROR VALUES FROM SAMPLES OF AN EQUIDISTANT SAMPLED SIGNAL AND APPARATUS FOR CARRYING OUT THE METHOD |
US4831636A (en) * | 1985-06-28 | 1989-05-16 | Fujitsu Limited | Coding transmission equipment for carrying out coding with adaptive quantization |
US4872132A (en) * | 1987-03-13 | 1989-10-03 | Zoran Corporation | Method and means for block floating point arithmetic |
US5142656A (en) * | 1989-01-27 | 1992-08-25 | Dolby Laboratories Licensing Corporation | Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio |
US5218621A (en) * | 1991-04-04 | 1993-06-08 | Motorola, Inc. | Adaptive digital equalization filter |
-
1994
- 1994-05-02 ES ES94912661T patent/ES2138076T3/en not_active Expired - Lifetime
- 1994-05-02 ES ES94912662T patent/ES2138077T3/en not_active Expired - Lifetime
- 1994-05-02 CN CN94190265A patent/CN1113332C/en not_active Expired - Lifetime
- 1994-05-02 WO PCT/IB1994/000087 patent/WO1994025961A1/en active IP Right Grant
- 1994-05-02 CN CN94190264A patent/CN1131508C/en not_active Expired - Fee Related
- 1994-05-02 UA UA95018012A patent/UA41892C2/en unknown
- 1994-05-02 KR KR1019950700051A patent/KR100346963B1/en not_active IP Right Cessation
- 1994-05-02 JP JP52407994A patent/JP3509862B2/en not_active Expired - Fee Related
- 1994-05-02 JP JP52407894A patent/JP3509861B2/en not_active Expired - Lifetime
- 1994-05-02 SG SG1996009273A patent/SG55188A1/en unknown
- 1994-05-02 US US08/362,514 patent/US5751902A/en not_active Expired - Lifetime
- 1994-05-02 CN CNB031487696A patent/CN1251176C/en not_active Expired - Fee Related
- 1994-05-02 DE DE69420220T patent/DE69420220T2/en not_active Expired - Lifetime
- 1994-05-02 UA UA95018013A patent/UA41893C2/en unknown
- 1994-05-02 KR KR1019950700050A patent/KR100332850B1/en not_active IP Right Cessation
- 1994-05-02 RU RU95105532A patent/RU2138030C1/en not_active IP Right Cessation
- 1994-05-02 DE DE69420221T patent/DE69420221T2/en not_active Expired - Lifetime
- 1994-05-02 EP EP94912662A patent/EP0649558B1/en not_active Expired - Lifetime
- 1994-05-02 EP EP94912661A patent/EP0649557B1/en not_active Expired - Lifetime
- 1994-05-02 WO PCT/IB1994/000086 patent/WO1994025960A1/en active IP Right Grant
- 1994-05-02 RU RU95105531A patent/RU2123728C1/en active
- 1994-05-02 CA CA002137926A patent/CA2137926C/en not_active Expired - Fee Related
- 1994-05-02 US US08/362,513 patent/US5657350A/en not_active Expired - Lifetime
- 1994-05-02 CA CA002137925A patent/CA2137925C/en not_active Expired - Fee Related
-
1998
- 1998-12-17 HK HK98113802A patent/HK1012750A1/en not_active IP Right Cessation
- 1998-12-21 HK HK98114110A patent/HK1019284A1/en not_active IP Right Cessation
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2137926C (en) | Transmission system comprising at least a coder | |
RU2183034C2 (en) | Vocoder integrated circuit of applied orientation | |
US7711556B1 (en) | Pseudo-cepstral adaptive short-term post-filters for speech coders | |
ES2225321T3 (en) | APPARATUS AND PROCEDURE FOR THE MASK OF ERRORS IN DATA FRAMES. | |
ES2205891T3 (en) | A METHOD AND A DEVICE FOR AN ADAPTIVE SEARCH FOR BAND WIDTH TONE WHEN CODING WIDE BAND SIGNALS. | |
KR100389179B1 (en) | Pitch delay modification during frame erasures | |
KR100389178B1 (en) | Voice/unvoiced classification of speech for use in speech decoding during frame erasures | |
US20100198899A1 (en) | Method and device for low delay processing | |
AU666751B2 (en) | Time variable spectral analysis based on interpolation for speech coding | |
JPH07507885A (en) | Vector quantizer method and apparatus | |
EP0416036A1 (en) | Improved adaptive transform coding | |
EP0186763B1 (en) | Method of and device for speech signal coding and decoding by vector quantization techniques | |
KR20010006091A (en) | Method for decoding an audio signal with transmission error correction | |
RU2223555C2 (en) | Adaptive speech coding criterion | |
JP2003504669A (en) | Coding domain noise control | |
JP3089967B2 (en) | Audio coding device | |
JPH08202398A (en) | Voice coding device | |
WO1993006592A1 (en) | A linear prediction speech coding device | |
KR20000013870A (en) | Error frame handling method of a voice encoder using pitch prediction and voice encoding method using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20140502 |