GB2248372A - Coding/decoding analogue signals using master and two slave codebooks - Google Patents
Coding/decoding analogue signals using master and two slave codebooks Download PDFInfo
- Publication number
- GB2248372A GB2248372A GB9021103A GB9021103A GB2248372A GB 2248372 A GB2248372 A GB 2248372A GB 9021103 A GB9021103 A GB 9021103A GB 9021103 A GB9021103 A GB 9021103A GB 2248372 A GB2248372 A GB 2248372A
- Authority
- GB
- United Kingdom
- Prior art keywords
- output
- codebook
- sequences
- fed
- codebooks
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000001914 filtration Methods 0.000 claims description 24
- 238000004458 analytical method Methods 0.000 claims description 21
- 230000007774 longterm Effects 0.000 claims description 20
- 238000005070 sampling Methods 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 238000001308 synthesis method Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 9
- 230000009467 reduction Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 36
- 238000012546 transfer Methods 0.000 description 28
- 238000003786 synthesis reaction Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001755 vocal effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/16—Vocoder architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/008—Vector quantisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/083—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/08—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
- G10L19/12—Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0004—Design or structure of the codebook
- G10L2019/0005—Multi-stage vector quantisation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0007—Codebook element generation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L2019/0001—Codebooks
- G10L2019/0013—Codebook search algorithms
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- 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/24—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 the cepstrum
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
In a CELP analogue signal coding system, sequences from master codebook 40, which is one dimensional, are filtered in unit 42 and orthogonalised in unit 68 to give codebooks (70, 72) containing even and odd frequency sequences. input analogue signals 20 are filtered in units 34, 36 and orthogonalised in unit 66 to give odd and even frequency sequences. One odd (c<i)<n)) and one even (c<i)<n)) frequency codebook sequence are amplified and compared in units 78, 80 with the filtered and orthogonalised input signals and an optimum pair of sequences and gains are selected. Since odd and even frequency components are orthogonal, sequences are selected from codebooks 70, 72 and compared in units 78, 80 with the filtered incoming analogue signals entirely independently. This effects a reduction in codebook search complexity over a one codebook system. Other means of orthogonalising the codebook, and the incoming sequences, include frequency or time domain divisions. This can be used for speech or video input. <IMAGE>
Description
DESCRIPTION
A METHOD OF, AND SYSTEM FOR, CODING ANALOGUE SIGNALS
The present invention relates to a method of, and system for, the coding of analogue signals having particular, but not exclusive, application to a low bit-rate speech coder for use in telecommunications. The present invention also relates to a corresponding method of, and system for, re-synthesising a perceptually close replica of the analogue signals originally coded.
For convenience of description the invention will be described with reference to a speech codec (coder-decoder) but the invention is also applicable to the coding and re-synthesising of other types of analogue signals, for example video. Digital techniques for the coding of speech are growing in popularity for a number of reasons, notably flexibility, cost and robustness to noise. One such technique is called Code Excited Linear Prediction (CELP) wherein the incoming speech signal is sampled, segmented into frames and encoded using a process which involves comparing it with entries taken from a known codebook. The index number of the codebook entry that provides the best match to each frame of the incoming speech is then stored or transmitted together with some gain and filter parameters.This type of coder belongs to the class of analysis by synthesis coders, so named since they synthesise a large number of possible matches for the signal to be coded and then use comparison techniques to analyse the incoming signal. The corresponding decoder or re-synthesiser will generally include a synthesis section similar to that of the coder.
"Fast CELP coding based on algebraic codes" by J-P. Adoul,
P. Mabilleau, M. Delprat and S. Morissette, read at the
International Conference on Acoustics, Speech and Signal Processing (ICASSP) 1987, pages 1957-1960 describes a simple CELP speech coding system which is now described with reference to the block schematic diagram shown in Figure 1 of the accompanying drawings.
The output of a source of original speech 20 is fed to a sampling and segmentation means 22 which quantises the speech at an appropriate sampling rate such as 8kHz and segments it into frames with a length of, for example, 5ms. The output of the means 22 comprises sampled, segmented speech s(n) which is fed to a non-inverting input of a summer 18 and to a Linear Predictive Coder (LPC) 24. The Linear Predictive Coder derives a set of filter coefficients ai relating to the short term redundancy in the incoming speech signal.
A two-dimensional codebook 10 contains K sequences of sampled white Gaussian noise, each of length N samples. The frames of sampled speech from the segmentation means 22 also have a length of
N samples. The codebook entries are referred to as ck(n), where k is the codebook index and n is the particular sample number within a given sequence number k. The selected output sequence ck(n) is fed to a gain stage 12 having a gain G. The optimum value of the gain G is derived mathematically for each block of the sampled speech and each codebook entry. The output r(n) of the gain stage 12 is filtered successively in a long term filter 14 and a short term filter 16. The long term filter 14 usually has only one tap and a relatively long delay that is usually greater than the length of the frames of sampled speech.The purpose of the filter 14 is to impose some long term order upon the codebook sequence and since the frequency of this long term order is the pitch of the speech being synthesised, this filter is also referred to as the pitch predictor. The transfer function of the long term filter 14 is 1/B(z) and the filter coefficient(s) are bi which may be derived by an adaptive loop or by analysis of the incoming speech signal. The short term, or vocal tract filter 16 has much shorter delays but a much larger number of taps (typically 10 to 20) than the long term filter. The purpose of the filter 16 is to impose some short term order upon the codebook sequence which results, in real speech, from the speaker's vocal tract and so this filter is often referred to as the vocal tract filter.The transfer function of this filter is 1/A(z) and the filter coefficients ai are supplied to the filter by the LPC 24. The output of the filter 16 is a synthetic speech signal s(n) which is fed to an inverting input of the summer 18. The output of the summer 18 is an error signal x(n) formed by the difference between the input speech segment and the filtered codebook entry currently under test. The error signal x(n) is fed to a perceptual weighting filter 26 having a transfer function of W(z). The purpose of this filter is to weight the error signal in relation to the way that a human ear perceives a speech signal, so that errors in parts of the frequency spectrum to which the human hearing process is more sensitive are de-emphasised. The output of the filter 26 is fed to a Mean Square Error (MSE) calculating means 28 to produce a MSE output signal m(n).The MSE means squares the perceptually weighted error y(n) for each sample within a frame of speech and sums the squared errors over the length of a frame. All K sequences from the codebook are filtered and compared with the frame of incoming speech and the MSE means maintains a record of the codebook sequence and the corresponding gain parameter that result in the lowest mean square error for each complete frame of incoming speech. The optimum codebook index ck(n), the gain G and the filter coefficients ai,bi represent a synthetic speech signal that can be reconstructed using a corresponding re-synthesis system. Where these parameters are to be transmitted, the short term filter coefficients ai are often encoded as Log Area Ratios (LARs) or Line Spectrum Frequencies (LSFs) to make them less sensitive to bit errors caused by noise or interference in the channel.
A corresponding decoder, or re-synthesis system, is shown in
Figure 2 of the accompanying drawings in which features in common with the coding system of Figure 1 have been identified using the same reference numerals. The optimum codebook sequence ck(n) is selected from a codebook 10 and fed to a gain stage 12 which is also fed with the gain parameter G. The output of this gain stage is fed to a long term inverse filter having a transfer function of 1/B(z) which is also fed with the coefficients bi. The output of the long term inverse filter is fed to a short term inverse filter 16 having a transfer function of 1/A(z) and which is also fed with the parameters ai. The output of this short term filter is fed to an optional post filter 30 which may be included to reduce the effects of quantisation noise.The output of the filter 30 is fed to a loudspeaker 32 or to a loudspeaker and amplifier in combination to reproduce the synthetic speech.
One disadvantage of the CELP coding system described above is that the exhaustive search of all the entries in the codebook and the double filtering of every entry prior to the error comparison is very computationally intense. A typical codebook contains 1024 sequences each of length 40 samples and so the basic CELP scheme described above is not economically feasible to implement in real time.
One proposal to reduce the computational load of a CELP coding system is disclosed in United Kingdom Patent Application 8918677.9 (PHB 33579) "Speech Coding System and a Method of Encoding Speech", the salient points of which will now be described with reference to
Figure 3 of the accompanying drawings.
The output of a source of original speech 20 is fed to a framing and quantisation means 22 which digitises the speech and segments it into 5ms frames and 20ms blocks. Each block of the digitised speech is fed to and analysed by a Linear Predictive
Coder (LPC) 24 which derives the short term filter coefficients a. These filter coefficients are stored or transmitted, depending on the application of the coding system, because they will be required to regenerate a replica of the original speech using a corresponding re-synthesiser. The sampled speech is also fed from the framing means 22 to a short term filter 34 having a transfer function of A(z) and the output of this filter is fed to a short term inverse filter 36 having a transfer function of 1/A(z/7). The output of the filter 36 is fed to a non-inverting input of a summer 38. A one dimensional codebook 40 is used to provide the stochastic sequences and the sequences selected from it will overlap by a fixed amount. With the maximum overlap between successive sequences of all but one sample, a codebook of length (K+N-1) will be required, where K is the number of sequences and N is the length of those sequences. An overlap between successive sequences of all but two samples gives better results and will require a codebook of length (2K+N-2).Smaller overlaps between successive samples are, of course, possible and will require longer codebooks. The major advantage of using a one-dimensional codebook is that it permits a reduction in the complexity of the filtering of the codebook sequences. The output of the one dimensional codebook is fed to a short term inverse filter 42 having a transfer function of 1/A(z/r) and the output of the filter 42 is fed to and stored in a filtered one-dimensional codebook 44. The selected sequence number k from this filtered codebook is then fed to a gain stage 12 having a gain G. The output of the gain stage is fed to an inverting input of a summer 52 and to a non-inverting input of another summer 46. The output of the summer 46 is fed to a tapped delay line 48 whose degree of delay is defined by a delay parameter (or pitch predictor index) d.The output of the delay line at a selected delay d is fed to a gain stage 50 having a gain (or pitch predictor gain) b. The output of the gain stage is fed to a non-inverting input of the summer 46 and to an inverting input of the summer 38. The output of the summer 38 is an error signal
E1(n) and is fed to a non-inverting input of the summer 52. The output of the summer 52 is an error signal E2(n).
In operation the coding system analyses the short term filter parameters ai once every block (20ms) and a filtered codebook 44 is derived from the one dimensional codebook 40 by the filter 42 after having had these parameters fed to it. Past coder output frames are compared with the incoming sampled speech signal in the summer 38 and the pitch predictor index d and pitch gain b are chosen so that the error El(n) is a minimum. The codebook index k and the codebook gain G are then chosen so that the error signal
E2(n) is a minimum. The parameters transmitted or stored by the coder are the filter coefficients ai, the codebook index k, the codebook gain G, the pitch predictor index d and the pitch predictor gain b.Use of a one dimensional codebook in this manner can result in a twenty-fold reduction in the computational complexity of the filtering when compared with a basic CELP coding system.
For the sake of completeness, Figure 4 of the accompanying drawings shows a corresponding re-synthesis system for use with the coding system of Figure 3. The output of a one dimensional codebook 40 is fed to a filter 42 which is also fed with the short term filter coefficients ai to produce a filtered codebook 44.
The optimum codebook sequence number k is selected from this filtered codebook and is fed to a gain stage 12 which has a gain determined by the value of G. The output of the gain stage is fed to a non-inverting input of a summer 46. The output of the summer 46 is fed to a tapped delay line 48 and to a short term weighting filter 54 having a transfer function of A(z/r). The optimum delay is selected from the tapped delay line 48 using the pitch predictor index d and the output of the tapped delay line is fed to a gain stage 50 whose gain is selected using the pitch predictor gain b.
The output of the gain stage is fed to a second non-inverting input of the summer 46. The output of the short term filter 54 is fed to a short term inverse filter 56 having a transfer function of 1/A(z). Both of the short term filters 54 and 56 are fed with the short term coefficients ai originally determined by the LPC analysis within the coding system. The output of the filter 56 is fed to an optional post filter 30 whose purpose is to reduce the perceived effects of quantisation noise on the output. The output of the filter 30 is fed to a loudspeaker 32 or to an amplifier and loudspeaker in combination in order to reproduce the synthetic speech signal.
As previously stated, using a one dimensional codebook allows a reduction in the complexity of the filtering required by a CELP analogue signal coding system. However, the number of comparisons to be made between the filtered incoming speech and the filtered codebook sequences is similar to that for a basic CELP coder so the amount of time taken by the codebook search is still considerable.
Figure 5 of the accompanying drawings shows an analogue signal coding system comprising a first synthetic speech branch A, a second synthetic speech branch B and a real speech branch. In the first synthetic speech branch A, a sequence cl(m) from a two dimensional codebook 10a containing L entries, each of length M, is fed to a gain stage 12a having a gain of Ga. The output of this gain stage is fed to a long term inverse filter 14a having a transfer function of 1/B(z) and and an input for coefficients bi. The output of the long term filter is fed to a short term inverse filter 16a having a transfer function of 1/A(z) and and an input for coefficients ai. The output of the short term filter is fed to a weighting filter 26a having a transfer function of
W(z). The output of the weighting filter 26a is fed to an inverting input of a summer 18a.The filter coefficients ai and bi are derived in the same manner as for the coding system of
Figure 1.
In the second synthetic speech branch B, a sequence cP(q) from a two dimensional codebook 10b containing P entries, each of length Q, is fed to a gain stage 12b having a gain of Gb. The output of the gain stage is fed to a long term inverse filter 14b having a transfer function of 1/B(z) and an input for coefficients bi. The output of the long term filter is fed to a short term inverse filter 16b having a transfer function of 1/A(z) and an input for coefficients ai. The output of the short term filter is fed to a weighting filter 26b having a transfer function of
W(z). The output of the weighting filter 26b is fed to an inverting input of a summer 18b.
The two codebooks lOa and 10b are arranged to have orthogonal entries after filtering which means that the sum of products of any filtered entry in the codebook 10a with any filtered entry in the codebook lOb is zero. One method of constructing these codebooks to have orthogonal entries is to make one containing odd frequency components and the other containing even frequency components over the length of a frame. For example, take a purely random sampled sequence containing N samples and construct a time reversed version. The even components of the sequence are obtained by adding the original sequence to the time reversed version and the odd components of the sequence are obtained by subtracting the time reversed version from the original sequence.The following equations assume that x(n) is a component of a sequence of length N to be orthogonalised and xe(n) and xO(n) are the even and odd sequences resulting from the orthogonalisation:
x(n) = xe(n) + xo(n), The even components of x(n) can be derived from:
xe(n) = [x(n) + x(N-n-l)], 2
The odd components of x(n) can be derived from:
xo(n) = [x(n) - x(N-n-1)j.
2
In the real speech branch of the coding system, the output of a source of original speech 20 is fed to a sampling and segmentation means 22. The incoming speech is subdivided into frames and blocks in the same manner as in the previously described coding systems. The blocks of the incoming speech are subjected to
LPC analysis 24 as in the coding systems described previously to determine the short term filter coefficients ai which are supplied to the coefficient inputs of filters 16a,16b. The sampled and segmented incoming speech is fed to a weighting filter 31 with a transfer function of W(z) and then to an orthogonalising means 60 that separates each block of the weighted incoming speech into its even and odd components.The separation into these components is performed by forming a time reversed version of each frame in the same manner as described above for the preparation of the codebook entries. The even components of the incoming speech are fed to a non-inverting input of the summer 18a and the odd components of the incoming speech are fed to a non-inverting input of the summer 18b. The output of the summer 18a is an even error signal Ea and the output of the summer 18b is an odd error signal Eb. The outputs Ea and Eb of the summers are then subjected to Mean Square
Error (MSE) analysis separately in the analysis means 28a and 28b respectively. The signals being processed in the two synthetic speech branches are made orthogonal to each other so that an alteration to a parameter in branch A will have no effect on the error signal Eb and vice versa.The codebook sequences and gains for each branch can thus be selected entirely independently of one another. In a similar manner to the analogue signal coding systems described previously, these parameters are selected so that the error signals are at a minimum.
Since L and P can each be equal to 32 and still provide an overall selection of 1024 stochastic sequences between them, a reduced codebook search which only entails making 64 comparisons as opposed to 1024 is possible. The filter coefficients ai and bi are determined by the incoming speech signal and are the same for both of the synthetic speech branches. Since the product of an even function and an odd function over the same time period is zero it is not absolutely necessary to orthogonalise the incoming speech signal prior to comparing it to the outputs of the two synthetic speech branches, since the comparison process will naturally ignore those components of the incoming speech that have no correlation with the synthetic speech.There is one main advantage of orthogonalising the incoming speech signal, however, and that is that each codebook entry will only need to be compared with the incoming speech over half of a frame length. The even and the odd frames of samples that have been divided by the orthogonalisation process described above will have symmetry about their centres and so a comparison over the whole length of the frame is not required. The even codebook entries will have reflectional symmetry and the odd codebook entries will have rotational symmetry. As a result, if the incoming speech is also so orthogonalised, the behaviour of a frame of speech or a codebook entry during the second (or first) half of its duration can be predicted from its behaviour over the first (or second) half of its duration.Hence only half of each frame of incoming speech needs to be compared with the codebook entries which halves the number of comparisons required and also halves the length of the codebook entries required so that M = Q = N/2.
Figure 6 of the accompanying drawings shows a system for re-synthesising speech signals that have been coded using the system shown in Figure 5 and elements of the system that are the same as those shown in previous Figures are denoted by the same reference numerals. In a first synthetic speech branch the output cl(m) of a codebook 10a, having L entries of length M, is fed to a gain stage 12a having a gain of Ga. The output of the gain stage is fed to a non-inverting input of a summer 64. In a second synthetic speech branch the output cP(q) of a codebook lOb, having P entries of length Q, is fed to a gain stage 12b having a gain of Gb. The output of the gain stage is fed to a non inverting input of the summer 64. The output of the summer 64 is fed to a long term inverse filter 14 having a transfer function of 1/B(z) and coefficients bi.The output of the long term filter 14 is fed to a short term inverse filter 16 having a transfer function of 1/A(z) and coefficients ai. The output of the short term filter 16 is fed to an optional post filter 30 which is included to reduce the effects of quantisation noise on the output of the synthesiser. The output of this filter is fed to a loudspeaker 32 or to an amplifier and loudspeaker in combination.
In operation the re-synthesiser is fed with the codebook sequence indices, the gains Ga,Gb and the filter coefficients bi,ai for a given segment of the speech originally coded. The first synthetic speech branch1 for example, could carry even synthetic sequences, and the second branch could carry odd synthetic sequences. The appropriate codebook entries in each branch are then amplified, summed together and filtered to produce a synthetic replica of the speech originally coded.
The orthogonality requirement for the filtered codebooks in the synthesis system of Figure 5 and the re-synthesis system of
Figure 6 incurs a heavy computational load which is expensive to realise in a practical implementation. The present invention seeks to reduce this computational load.
It is an aim of the present invention to reduce the complexity of the codebook search required for each incoming block of analogue signals in an analysis by synthesis analogue signal coding system.
It is a further aim of the present invention to reduce the amount of memory required to store the stochastic sequences required in an analysis by synthesis analogue signal coding system.
According to a first aspect of the present invention there is provided an analogue signal coding system comprising means for sampling an incoming signal, a master codebook containing a plurality of sequences, a filtering means coupled to an output of the master codebook, an orthogonalisation means coupled to the output of the filtering means for providing at least two slave codebooks each containing a plurality of sequences, at least two comparing means, each of the comparing means having a first input coupled to an output of a respective one of the at least two slave codebooks, a second input coupled to receive a sampled incoming signal from the sampling means and an output which is coupled to an input to a means for selecting sequences from the slave codebooks which provide an optimum match for the sampled incoming signal.
According to a second aspect of the present invention there is provided an analysis by synthesis method of encoding analogue signals comprising deriving at least two sets of orthogonal synthetic sequences from a single set of sequences, comparing a segment of an analogue signal to be encoded with the at least two sets of synthetic sequences and determining sequences from the synthetic sets of sequences which provide an optimum match for the segment of the incoming analogue signals.
Various means are available for providing the orthogonal codebooks required to achieve the first mentioned aim of the method of, and system for, coding analogue signals besides the even and odd frequency component method described previously. A time domain split may be effected so that if a particular sample in a first codebook is non-zero its counterpart in a second codebook would be zero and vice versa. Another possibility is a frequency domain split so that for example a first codebook may contain lower frequency components and a second codebook may contain higher frequency components.If the type of codebook split chosen contains some redundancy (for example the even/odd codebook split results in symmetry about the centre of each frame) then some further reduction in the necessary processing may be effected by splitting each frame of the incoming speech signal in the same manner as the codebook entries have been split prior to comparison. The redundancy in the case of the even/odd codebook split allows only half of each codebook entry to be compared.
The concept of the codebook split may be extended beyond a pair of codebooks and further splits may be possible. For example a first codebook split to give two codebooks may be effected using even and odd symmetry over a frame and a second split to give four codebooks may be effected using even and odd symmetry over half of the frame.
It is important to note that the codebook sequences should be orthogonal after any necessary filtering processes have been carried out. The filtering means may be coupled to a filter coefficient determining means which causes the filtering means to filter the master codebook entries in accordance with the characteristics of the incoming signal. The filter coefficient determining means may include a linear predictor.
The means for determining the filter coefficients may also include a long term predicting means which may comprise an adaptive loop including a delay.
The master codebook may be a one dimensional codebook as disclosed in the United Kingdom Patent Application 8918077.9 mentioned earlier. This will generally effect a reduction in the computational complexity of the filtering.
The outputs of the comparing means may be coupled to mean square error means to analyse the differences between the incoming signals and the outputs of the slave codebooks. The outputs of the slave codebooks may be fed separately to gain stages prior to being fed to the comparing means and these gain stages may, for example, have independently variable gains or alternatively, gains that are equal in magnitude but variable in polarity.
A reduction in the computational complexity of the system may be obtained by orthogonalising the incoming signal prior to the signal being fed to the comparing means. This is because orthogonalised signals often contain some redundancy and so fewer comparisons need to be made between the codebook signals and the incoming signals.
Incoming signals may be fed to filtering means prior to being fed to the comparing means to weight these signals in a manner that emphasises those aspects of these signals which are perceptually of greater importance upon resynthesis.
The selection of the codebook sequence from each of the slave codebooks can be made independently, in other words so that each selection has no effect on any of the others, or interdependently which can reduce the data rate of the coded signals.
According to a third aspect of the present invention there is provided an analogue signal decoding system comprising a master codebook containing a plurality of entries, a filtering means coupled to an output of the master codebook, an orthogonalisation means coupled- to the output of the filtering means for providing at least two slave codebooks each containing a plurality of entries, and means coupled to an output of each of the at least two slave codebooks for combining one entry from each of the slave codebooks to provide a synthesised replica of a previously coded analogue signal.
According to a fourth aspect of the present invention, there is provided a method of re-synthesising analogue signals comprising the formation of at least two orthogonal synthetic sequences from a single synthetic sequence and the combination of these at least two synthetic sequences, wherein the analogue signals to be re-synthesised have been coded by a method in accordance with the second aspect of the present invention.
The analogue signal coding system and method of encoding analogue signals according to the first and second aspects of the present invention are based upon an analysis by synthesis technique which involves synthesising a number of possible matches to an incoming signal and selecting one which is close. As a result, the analogue signal re-synthesising system and method of re-synthesising analogue signals in accordance with the third and fourth aspects of the present invention have much in common with their coding system and encoding method counterparts. For example a typical system to perform the re-synthesis of analogue signals will comprise synthetic signal branches similar to those of the coding system used to encode the original analogue signals followed by a post filter to reduce the perceived effects of quantisation noise.
The present invention will now be explained and described, by way of example, with reference to the accompanying drawings, wherein:
Figure 7 is a block schematic diagram of an analogue signal coding system employing a one dimensional codebook, an orthogonalising means, two orthogonal filtered codebooks and error measurement means,
Figure 8 is a block schematic diagram of an analogue signal decoding system suitable for use with the coding system shown in
Figure 7,
Figure 9 is a block schematic diagram of an analogue signal coding system employing a one dimensional codebook and four two dimensional orthogonal codebooks,
Figure 10 is a block schematic diagram of an analogue signal decoding system suitable for use with the coding system of
Figure 9, and
Figure 11 shows five equations, numbered (1) to (5), relating to the operation of the coding system shown in Figure 7 with independent codebook gains, and
Figure 12 shows a further six equations, numbered (6), (7), (7a), (7b), (8) and (9) relating to the operation of the coding system shown in Figure 7 with the codebook gains equal.
In the figures corresponding features have been identified using the same reference numerals.
Figure 7 shows a practical analogue signal coding system embodying both a one dimensional codebook and a pair of orthogonal filtered codebooks. Circuit elements 20, 22, 24, 34, and 36 are arranged as in the coding system of Figure 3 and operate upon the incoming speech to sample it, segment it, predict the appropriate short term filter parameters and to filter it.The output of a one dimensional codebook 40 is fed to one input of an inverse filter 42 having a transfer function of 1/A(z/r). A second input of the filter 42 is supplied with the short term filter coefficients ai determined by the linear predictive analysis. r is a perceptual weighting coefficient, chosen to be around 0.65, which appears in this transfer function as a consequence of moving the perceptual weighting filter from the output of the coding system as described by J-P Adoul et.al. in the previously cited reference. The output of the filter 42 is fed to an orthogonalising means 68 which splits each filtered codebook entry into odd and even sequences. This can be achieved by the method described earlier with reference to
Figure 5. The odd filtered sequences are stored in a 2-dimensional codebook 70 and the even filtered sequences are stored in another 2-dimensional codebook 72. In this example, codebooks 70 and 72 each contain 32 entries although this number of entries may be varied according to the application. The selected output sequence ci(n) from the odd codebook 70 is fed to a gain stage 74 having a gain Go and whose output is fed to an inverting input of a summer 78. The selected output sequence ci(n) from the even codebook 72 is fed to a gain stage 76 having a gain Ge and whose output is fed to an inverting input of a summer 80.
Filtered input speech is fed from the output of the filter 36 to a non-inverting input of a summer 38, the output of which summer is an error signal El(n). The error signal El(n) is also fed to an orthogonalising means 66 that separates it into even e(n) and odd o(n) component sequences. The odd output o(n) of the means 66 is fed to a non-inverting input of the summer 78. The even output e(n) of the means 66 is fed to a non-inverting input of the summer 80. The output of the summer 78 is then fed to an MSE analysis means 79 which has an output comprising an odd codebook error signal Eo. The output of the summer 80 is fed to an MSE analysis means 81 which has an output comprising an even codebook error signal Ee. The outputs Eo,Ee of the means 79,81 are fed to a selection means 83.
The outputs of the gain stages 74 and 76 are summed in a summer 82, the output of which summer is fed to a non-inverting input of a summer 46. The output of the summer 46 is fed to a tapped delay line 48 whose delay is defined by a parameter (or pitch predictor index) d. The output of the tapped delay line is fed to a gain stage 50 having a gain (or pitch predictor gain) b.
The output of the gain stage 50 is fed to a non-inverting input of the summer 46 and to an inverting input of the summer 38. Although depicted separately, the summers 46 and 82 could be replaced by a single summer with at least three non-inverting inputs.
In operation the coding system uses LPC 24 to determine the short term filter coefficients ai and the one dimensional codebook sequences are filtered by the weighted short term inverse filter 42 as previously. Two separate filtered codebooks are then produced using the orthogonalising means 68 and are shown here as two dimensional codebooks 70,72. The error signal sequences El(n) are orthogonalised by the means 66 and then compared with the odd and even synthetic sequences. Equation (1) in Figure 11 expresses the overall error comparison where E = Eo + Ee and N is the length of the codebook sequences. E1(n) is divided into o(n) and e(n) by the orthogonalisation means 66 and the odd and even sequence comparisons are made independently.The odd comparison is performed in the summer 78 and the result is subjected to mean square error analysis in a means 79. These two operations are expressed in equation (2). Note that the range of the summation performed by the MSE means has been halved. This saving in processing is due, as described previously, to the symmetry of the sequences being compared. In order to find the optimum odd sequence gain Go, the expression in equation (2) is partially differentiated to give dEo/dGo and the result of setting (6Eo/6Go) = O is shown in equation (3).
By substituting equation (3) into equation (2) the minimum value of Eo is defined in terms of the odd filtered sequence o(n) and the codebook entry and is shown in equation (4). The even comparison is performed in the summer 80 and the result is subjected to mean square error analysis in a means 81. By a similar series of steps to those applied to the odd comparison, the minimum value of Ee can be derived and is shown in equation (5). The two codebooks 70,72 are searched independently and the codebook output sequences ci(n), ci(n) and gains Go,Ge are selected by the means 83 so that Eo and Ee each have their respective minimum values.
The outputs of the two gain stages 74,76 are also summed and the resulting signal is used to provide the input to the pitch predictor, which comprises the summer 46, the tapped delay line 48, the gain stage 50, the summer 38 and a means (not shown) of selecting a tapped delay line parameter d and a pitch gain b so that the error signal E1(n) is a minimum. In this coding system, a pair of orthogonal codebooks provide a total combination of K stochastic sequences when each codebook contains only TK sequences.Thus the use of two orthogonal codebooks provides a reduction in the computational complexity of the codebook search by a factor of PK/2. For example, if the equivalent non-orthogonal codebook was 1024 sequences long, each of the orthogonal filtered codebooks would be 32 sequences long and so a search of just 64 sequences would be required.
Figure 8 shows a system for re-synthesising speech signals that have been encoded using the system shown in Figure 7 and elements of the system that are the same as those shown in previous
Figures are denoted by the same reference numerals. The output of a one dimensional codebook 40 is fed to a weighted short term inverse filter 42 having a transfer function of 1/A(z/7) and coefficients ai. The output of the filter 42 is fed to an orthogonalising means 68 which separates the filtered codebook sequences into an odd and an even sequence over the length of a codebook entry. Odd sequences are stored in a filtered codebook 70 and even sequences are stored in a filtered codebook 72. The output sequence ci(n) is selected from the codebook 70 and is fed to a gain stage 74 having a gain of Go.The output sequence ci(n) is selected from the codebook 72 and is fed to a gain stage 76 having a gain of Ge. The outputs of the gain stages 74 and 76 are both fed to non-inverting inputs of a summer 64 whose output is fed to a non-inverting input of a summer 46. The output of the summer 46 is fed to a tapped delay line 48 having a delay defined by a parameter d. The output of the delay line is fed to a gain stage 50 having a gain of b. The output of the gain stage is fed to a non-inverting input of the summer 46. In addition to being fed to the tapped delay line 48, the output of the summer 46 is fed to a weighted short term filter 36 having a transfer function of A(z/r) and coefficients ai. The output of the filter 36 is fed to a short term inverse filter 37 having a transfer function of 1/A(z) and coefficients ai. The output of the filter 37 is fed to a loudspeaker 32 or to an amplifier and loudspeaker in combination.
The re-synthesis system is fed with the codebook sequence numbers i,j, the gains Go,Ge, the short term filter coefficients ai and the pitch predictor parameters d,b from a coding system such as the one shown in Figure 7. The amplified codebook sequences from each of the gain stages are summed and then fed successively to long term and short term filters. The long term filter comprising the summer 46, the tapped delay line 48 and the gain stage 50 adds the long term or pitch redundancy and the two short term filters 36,37 add the short term redundancy that was removed from the analogue signals by the coding system. If desired a post filter can be interposed between the filter 37 and the loudspeaker 32 in order to reduce the perceived effects of quantisation noise.
The analogue signal coding system shown in Figure 7 requires two gain parameters for each frame of the incoming signal and in a situation when the bit rate for transmission or storage is critical this may be unacceptable. The number of bits required to represent the gain parameters may increase significantly with respect to a coding system having only a single codebook and gain stage. Since these two gain parameters represent related signals there will be some degree of correlation between them and so it may be possible to represent one gain relative to the other and obtain a slight saving in the number of bits required.
The system shown in Figure 7 may be used without extra bits being required to represent a second codebook gain by requiring that the two gains are equal (i.e. Go = Ge), or even better that their magnitudes are equal and their signs can be positive or negative. The latter case will incur a penalty of only one bit over a single codebook coding system. The gain values are transmitted as a sign for each selected codebook entry and a single magnitude applying to both codebook entries.
This can be achieved in at least three ways:
(1) Calculate the total mean square error (Eo + Ee) for each possible pair of codebook entries, subject to the constraints that Go = |Ge| Ge and that the MSE is minimised. This gives the optimum codebook indices (i,j), the magnitude of gain (G = 1Go1 =
Gel) and the signs of Go and Ge, sl = Go/lGol = i 1 and
II sj = GeilGel = fl. Firstly the combined error E2 is calculated as shown in Equation (6) of Figure 12. The magnitude G of the gains Ge and Go is calculated using equation (7). In equation (7) Si must be chosen so that it is of the same sign as the sum of the products of o(n) and ci(n) over a whole frame length (or half a frame length in the case of symmetrical sequences).Similarly Si must be chosen to have the same sign as the sum of the products of e(n) and ci(n) These constraints upon the values of Si and s are to prevent the values of Go and Ge being negative and are summarised in equations (7a) and (7b) respectively.
Combining equations (6) and (7) gives equation (8) and values of i and j are selected that cause the error E2 in equation (8) to be a minimum.
The two codebook entries can be combined to form a composite codebook entry c(n) using equation (9) using a value of G calculated from equation (7). This composite codebook entry is then fed to the summer 82 (Figure 7).
(2) Search each codebook separately for the entries giving minimum values of Eo and Ee respectively, without constraint on the values of Go and Ge. Then, using this pair of codebook entries, calculate the magnitude of G such that G =|Go| = 1Ge1
I I I I' together with the signs of Go and Ge, to minimise the total MSE which is equal to (Eo + Ee).
The first step is to find the codebook entry, that is the value of i which results in the minimum value of Eo in equation (2) and the codebook entry, that is the value of j which gives the minimum value of Ee in the orthogonal equivalent of equation (2).
The gain Go is given by equation (3) and the gain Ge is given by the orthogonal equivalent of equation (3). Then the signs si and si of the gains Go and Ge can be determined from equations (7a),(7b) and the magnitude G of the two gains can be determined from equation (7) as before. Finally a composite codebook entry c(n) is determined as before using equation (9). This second method gives sub-optimum values for codebook indices (i,j), the magnitude of the gains (G = 1Go1 = 1Ge1) and |Ge|) and the signs of Go and Ge
II II (si = Go/lGo and si = Ge/Ge respectively) but with much less computational complexity than the first alternative.In a practical speech coder there is virtually no perceived difference between the two approaches.
(3) The method (2) can be modified to give better results as follows. The at least two entries from each codebook which result in the lowest values of error signal are selected using equations (4),(5) giving, for example, two pairs of codebook indices, (i1,i2), (ilsj2) The total error resulting from each of the four possible combinations of these entries (i1,jl), (i2,j2), (i1,j2), (i2,j1) are then calculated by adding the values of Ee and Eo in each case and the pair of entries which results in the lowest error are chosen. The method then proceeds as above from the calculation of the gains Go and Ge.This procedure could also include quantisation of the gain value within the search without a great increase in computational complexity.
This quantisation entails setting the values of the gains Go and Ge to one of the possible output values which the coding system permits prior to the calculation of the error signals Eo and Ee and should yield better results when, for example, one of the gain values originally calculated is especially distant from one of the available quantised values. More than two entries could be selected from each codebook and more than two codebooks could be used.
These changes would have no impact on the decoder or re-synthesiser shown in Figure 8 which functions as described previously.
Figure 9 shows a coding system derived from that shown in
Figure 7 but which employs four orthogonal codebooks. A source of original speech 20, a framing and quantisation means 22, a Linear
Prediction Coefficient (LPC) generator 24, a short term filter 34 and a short term inverse filter 36 are arranged as in the coding system shown in Figure 7 and function in the same manner. The output of the filter 36 is fed to a non-inverting input of a summer 38, the output of which summer comprises an error signal E1(n).
The output of a one dimensional codebook 40 is fed to a short term inverse filter 42 having a transfer function of 1/A(z/r). This filter is fed with the short term filter coefficients ai derived by the LPC means 24. The output of the filter 42 is fed to an orthogonalisation means 68 which has four outputs which can be regarded as two pairs of two outputs and which are all fed to separate two dimensional codebooks 70a, 70b, 70c, 70d. The sequence number i from the codebook 70a is fed to a gain stage 74a whose output is fed to a non-inverting input of a summer 82 and to the inverting input of a summer 78a.The output of the summer 78a is fed to a MSE means 28a whose output is an error signal Ea. The sequence number p from the codebook 70b is fed to a gain stage 74b whose output is fed to a non-inverting input of the summer 82 and to an inverting input of a summer 78b. The output of the summer 78b is fed to a MSE means 28b whose output is an error signal Eb.
The sequence number j from the codebook 70c is fed to a gain stage 74c whose output is fed to a non-inverting input of the summer 82 and to an inverting input of a summer 78c. The output of the summer 78c is fed to a MSE means 28c whose output is an error signal Ec. The sequence number q is fed from the codebook 70d to a gain stage 74d whose output is fed to a non-inverting input of the summer 82 and to an inverting input of a summer 78d. The output of the summer 78d is fed to a MSE means 28d whose output is an error signal Ed. The output signals Ea,Eb,Ec,Ed from the four summers 28a,28b,28c,28d are fed to a selection means 83.
The output of the summer 38 is fed to a second orthogonalising means 66 which has four outputs and operates in an analogous manner to the orthogonalising means 68. The four outputs of the means 66 are each fed to a non-inverting input of the corresponding summers 78a, 78b, 78c or 78d. The output of the summer 82 is fed to a non-inverting input of a summer 46. The output of the summer 46 is fed to a tapped delay line 48 whose output, at a delay d, is fed to a gain stage 50 having a gain b. The output of the gain stage 50 is fed to an inverting input of the summer 38 and to a non-inverting input of the summer 46.
The four codebooks can be efficiently generated by a split into even and odd functions over the frame length followed by a further split into even and odd functions over each half of the original frame length. In a practical system the magnitudes of the gains of the gain stages 74a,74b,74c,74d are constrained to be equal and are shown here as all being equal to G.
Figure 10 shows a corresponding decoder or re-synthesis system for use with the coder of Figure 9. The output of a one dimensional codebook 40 is fed to a short term inverse filter 42 having a transfer function of 1/A(z/r). The output of the filter 42 is fed to an orthogonalising means 68 which has four separate outputs each of which is fed to one of four two dimensional codebooks 70a,70b,70e and 70d. The sequence number i from the codebook 70a, the sequence number p from the codebook 70b, the sequence number j from the codebook 70c and the sequence number q from the codebook 70d are all fed to separate non-inverting inputs of a summer 86. The output of the summer 86 is fed to a gain stage 12 which is also fed with a gain parameter G. The output of the gain stage 12 is fed to a non-inverting input of a summer 46.The output of the summer 46 is fed to a tapped delay line 48 which is also fed with a delay parameter d. The output of the tapped delay line 48 is fed to a gain stage 50 which is also fed with a gain parameter b. The output of the gain stage 50 is fed to a non-inverting input of a summer 46. The output of the summer 46 is also fed to a short term filter 36 having a transfer function of A(z/r). The output of the filter 36 is fed to a short term inverse filter 37 having a transfer function of 1/A(z). The output of the filter 37 is fed to a loudspeaker 32 or to an amplifier and loudspeaker in combination. The three short term filters 42, 36 and 37 are all fed with the short term filter parameters ai originally derived by the LPC means 24 (Figure 9).
In operation the decoder shown in Figure 10 is fed with the codebook indices i,p,j,q, the gain parameter G, the pitch predictor parameters d,b and the short term filter parameters ai. The four orthogonal codebook sequences are added together and after amplification and filtering, are fed to an output means, in this case a loudspeaker.
The orthogonal codebooks required to fully realise the reduction in length of the codebook search offered by the present invention can be constructed in a number of different ways provided that the equation E (cub1 x cub2) = O is satisfied, where CB1 is any sequence in the first codebook and
CB2 is any sequence in the second codebook. Possible alternatives to the odd and even function split described above are a time domain split or a frequency domain split. Using a time domain split, for example, CB1 could contain random samples for the first half of the codebook, that is the first N/2 samples in each sequence and zero samples thereafter and CB2 could contain zero samples for the first half of the codebook, that is the first N/2 samples and random samples thereafter.A frequency domain split could, for example, be achieved by using a low pass and a high pass filter to generate a low frequency codebook and a high frequency codebook.
It is also possible for an analogue signal coding system embodying the present invention to have an odd number of orthogonal codebooks. For example a first split of the codebook sequences into high and low frequency components could be followed by a further split into odd and even frequency components in the higher frequency branch.
It will be intuitively obvious that for any combination of coding and re-synthesising systems to function correctly, the codebooks in the two systems must contain the same entries.
From reading the present disclosure other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the design, manufacture and use of analogue signal coding systems and component parts thereof and which may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure of the present application also includes any novel feature or any novel combination of features disclosed herein either explicitly or implicitly or any generalisation thereof, whether or not it relates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as does the present invention. The applicants hereby give notice that new claims may be formulated to such features and/or combinations of such features during the prosecution of the present application or of any further application derived therefrom.
Claims (1)
1. An analogue signal coding system comprising means for sampling an incoming signal, a master codebook containing a plurality of sequences, a filtering means coupled to an output of the master codebook, an orthogonalisation means coupled to the output of the filtering means for providing at least two slave codebooks each containing a plurality of sequences, at least two comparing means, each of the comparing means having a first input coupled to an output of a respective one of the at least two slave codebooks, a second input coupled to receive a sampled incoming signal from the sampling means and an output which is coupled to an input to a means for selecting sequences from the slave codebooks which provide an optimum match for the sampled incoming signal.
2. A system as claimed in Claim 1, wherein the filtering means is coupled to a filter coefficient determining means and operates to filter the output of the master codebook in accordance with the characteristics of the incoming signal.
3. A system as claimed in Claim 2, wherein the means for determining the filter coefficients from the incoming signal include a linear prediction analysis means and the output of this means comprises linear prediction coefficients.
4. A system as claimed in Claim 2 or Claim 3, wherein the means for determining the filter coefficients includes a long term predicting means.
5. A system as claimed in Claim 4, wherein the long term predicting means comprises an adaptive loop including a delay.
6. A system as claimed in any one of the Claims 1 to 5, wherein the master codebook is a one dimensional codebook.
7. A system as claimed in any one of the Claims 1 to 6, further comprising mean square error means coupled between the outputs of the comparing means and their respective inputs to the selecting means, the selecting means thus being operable to select entries from the above codebooks using a mean square error criterion.
8. A system as claimed in any one of the Claims 1 to 7, further comprising at least two gain stages, each gain stage being interposed between the output of one of the at least two slave codebooks and an input to a respective one of the at least two comparing means.
9. A system as claimed in Claim 8, wherein the gains of the at least two gain stages are independently variable.
10. A system as claimed in Claim 8, wherein the gains of the at least two gain stages are equal in magnitude.
11. A system as claimed in any one of the Claims 1 to 10, wherein the orthogonalisation means is operable to provide signals which are orthogonal to one another, at least in part, by means of a split into odd and even sequences.
12. A system as claimed in any one of the Claims 1 to 11, wherein the orthogonalisation means are operable to provide signals which are orthogonal to one another, at least in part, by means of a split in the frequency domain.
13. A system as claimed in any one of the Claims 1 to 12, wherein the orthogonalisation means are operable to provide signals which are orthogonal to one another, at least in part, by means of a split in the time domain.
14. A system as claimed in any one of the Claims 1 to 13, further comprising another orthogonalisation means interposed between the output of the sampling means and the second inputs of the at least two comparing means for supplying an orthogonalised, sampled incoming signal to each comparing means.
15. A system as claimed in any one of the Claims 1 to 14, comprising further filtering means interposed between the sampling means and the comparison means.
16. A system as claimed in Claim 15, wherein the further filtering means comprises a perceptual weighting filter.
17. An analogue signal coding system constructed and arranged to operate substantially as hereinbefore described with reference to and as shown in Figures 7 and 9 of the accompanyng drawings.
18. An analysis by synthesis method of encoding analogue signals comprising deriving at least two sets of orthogonal synthetic sequences from a single set of sequences, comparing a segment of an analogue signal to be encoded with the at least two sets of synthetic sequences and determining sequences from the synthetic sets of sequences which provide an optimum match for the segment of the incoming analogue signals.
19. A method as claimed in Claim 18, wherein the analogue signals are compared with each of the synthetic sequences interdependently.
20. A method as claimed in Claim 18, wherein the analogue signals are compared with each of the synthetic sequences independently.
21. An analysis by synthesis method of encoding analogue signals substantially as hereinbefore described with reference to
Figures 7 and 9 of the accompanying drawings.
22. An analogue signal decoding system comprising a master codebook containing a plurality of entries, a filtering means coupled to an output of the master codebook, an orthogonalisation means coupled to the output of the filtering means for providing at least two slave codebooks each containing a plurality of entries, and means coupled to an output of each of the at least two slave codebooks for combining one entry from each of the slave codebooks to provide a synthesised replica of a previously coded analogue signal.
23. A system as claimed in Claim 22, wherein the filtering means are operable to filter the output of the master codebook in accordance with the characteristics of the previously coded analogue signal.
24. A system as claimed in Claim 22 or Claim 23, further comprising at least two gain stages, each gain stage being interposed between the output of one of the at least two slave codebooks and the combining means.
25. A system as claimed in Claim 22, Claim 23 or Claim 24, further comprising a post filtering means coupled to the output of the combining means.
26. An analogue signal decoding system constructed and arranged to operate substantially as hereinbefore described with reference to Figures 8 and 10 of the accompanying drawings.
27. A method of re-synthesising analogue signals comprising the formation of at least two orthogonal synthetic sequences from a single synthetic sequence and the combination of these at least two synthetic sequences, wherein the analogue signals to be re-synthesised have been coded by a method in accordance with any one of Claims 18 to 21.
29. A method of re-synthesising analogue signals substantially as hereinbefore described with reference to Figures 8 and 10 of the accompanying drawings.
Priority Applications (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9021103A GB2248372A (en) | 1990-09-28 | 1990-09-28 | Coding/decoding analogue signals using master and two slave codebooks |
DK91918459.8T DK0550657T3 (en) | 1990-09-28 | 1991-09-25 | Method and system for encoding analog signals |
EP91918459A EP0550657B1 (en) | 1990-09-28 | 1991-09-25 | A method of, and system for, coding analogue signals |
BR919106932A BR9106932A (en) | 1990-09-28 | 1991-09-25 | SYSTEM AND PROCESS FOR CODING ANALOG SIGNS, DECODING SYSTEM TO OBTAIN AN ANALOG SIGN AND PROCESS OF RE-SYNTHESIZING ANALOG SIGNS |
CA002091754A CA2091754C (en) | 1990-09-28 | 1991-09-25 | Method of, and system for, coding analogue signals |
US07/988,934 US5451951A (en) | 1990-09-28 | 1991-09-25 | Method of, and system for, coding analogue signals |
AU88567/91A AU653969B2 (en) | 1990-09-28 | 1991-09-25 | A method of, system for, coding analogue signals |
JP51776591A JP3206661B2 (en) | 1990-09-28 | 1991-09-25 | Method and apparatus for encoding analog signal |
SG1996008105A SG43974A1 (en) | 1990-09-28 | 1991-09-25 | A method of and system for coding analogue signals |
PCT/NL1991/000200 WO1992006470A1 (en) | 1990-09-28 | 1991-09-25 | A method of, and system for, coding analogue signals |
ES91918459T ES2093110T3 (en) | 1990-09-28 | 1991-09-25 | A METHOD AND A SYSTEM TO CODE ANALOG SIGNALS. |
DE69121411T DE69121411T2 (en) | 1990-09-28 | 1991-09-25 | METHOD AND DEVICE FOR CODING ANALOG SIGNALS |
CN91109393A CN1036886C (en) | 1990-09-28 | 1991-09-25 | Method of and system for coding analogue signals |
AR91320800A AR244478A1 (en) | 1990-09-28 | 1991-09-27 | A method and device for coding anagogical signals. |
KR1019930700962A KR100195575B1 (en) | 1990-09-28 | 1993-03-27 | Method and system for coding analog signals |
HK98105174A HK1006874A1 (en) | 1990-09-28 | 1998-06-11 | A method of and system for coding analogue signals |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9021103A GB2248372A (en) | 1990-09-28 | 1990-09-28 | Coding/decoding analogue signals using master and two slave codebooks |
Publications (2)
Publication Number | Publication Date |
---|---|
GB9021103D0 GB9021103D0 (en) | 1990-11-14 |
GB2248372A true GB2248372A (en) | 1992-04-01 |
Family
ID=10682882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB9021103A Withdrawn GB2248372A (en) | 1990-09-28 | 1990-09-28 | Coding/decoding analogue signals using master and two slave codebooks |
Country Status (2)
Country | Link |
---|---|
AR (1) | AR244478A1 (en) |
GB (1) | GB2248372A (en) |
-
1990
- 1990-09-28 GB GB9021103A patent/GB2248372A/en not_active Withdrawn
-
1991
- 1991-09-27 AR AR91320800A patent/AR244478A1/en active
Also Published As
Publication number | Publication date |
---|---|
GB9021103D0 (en) | 1990-11-14 |
AR244478A1 (en) | 1993-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2091754C (en) | Method of, and system for, coding analogue signals | |
KR100415356B1 (en) | Multi-channel signal encoding and decoding | |
CA2524243C (en) | Speech coding apparatus including enhancement layer performing long term prediction | |
US5261027A (en) | Code excited linear prediction speech coding system | |
US6122608A (en) | Method for switched-predictive quantization | |
US5323486A (en) | Speech coding system having codebook storing differential vectors between each two adjoining code vectors | |
US5140638A (en) | Speech coding system and a method of encoding speech | |
CA2430111C (en) | Speech parameter coding and decoding methods, coder and decoder, and programs, and speech coding and decoding methods, coder and decoder, and programs | |
CA2271410C (en) | Speech coding apparatus and speech decoding apparatus | |
US5193140A (en) | Excitation pulse positioning method in a linear predictive speech coder | |
JPH04270398A (en) | Voice encoding system | |
US5651026A (en) | Robust vector quantization of line spectral frequencies | |
US5864797A (en) | Pitch-synchronous speech coding by applying multiple analysis to select and align a plurality of types of code vectors | |
CA2335284A1 (en) | Speech and music signal coder/decoder | |
EP1326237B1 (en) | Excitation quantisation in noise feedback coding | |
EP0578436A1 (en) | Selective application of speech coding techniques | |
JP2970407B2 (en) | Speech excitation signal encoding device | |
GB2248372A (en) | Coding/decoding analogue signals using master and two slave codebooks | |
EP0729133B1 (en) | Determination of gain for pitch period in coding of speech signal | |
EP1293968A2 (en) | Efficient excitation quantization in a noise feeback coding system using correlation techniques | |
EP0405548B1 (en) | System for speech coding and apparatus for the same | |
CA2347265A1 (en) | Speech coder and speech decoder | |
US6856955B1 (en) | Voice encoding/decoding device | |
JP3088204B2 (en) | Code-excited linear prediction encoding device and decoding device | |
JP3229784B2 (en) | Audio encoding / decoding device and audio decoding device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |