Abstract:
A digital sub-band coder for audio signals provides for adaptive allocation of bits to (e.g.) two sub-bands. Estimation of the relative energy content of the bands is determined by reference only to those bits which are always transmitted, so that decoding can take place without the need for transmission of side information. Accompanying data may be transmitted in a fixed bit position, or may be by insertion of the data into the lower energy band. In the latter case, the data may optionally be duplicated in both bands when their energy contents are random. The invention can be applied to embedded ADPCM coders.

Description:
FIELD OF THE INVENTION 
     This invention relates to transmission using sub-band coding, and particularly, though not exclusively, to multiplexing data and digitally coded audio for transmission. 
     Sub-band coding (SBC) is a coding technique in which a parent frequency band, usually speech, is divided into two or more sub-bands, the frequency range within each of which is separately encoded and transmitted. The main advantages of sub-band coding, for example, over pulse code modulation (PCM) or adaptive differential pulse code modulation (ADPCM) are generally considered to be that: 
     (a) the quantization noise generated within each sub-band remains confined to that frequency range and on decoding does not mask low level speech sounds in other bands; and 
     (b) each sub-band signal may be coded according to the perceptual contribution that sub-band makes to the overall subjective quality. 
     SUMMARY OF THE INVENTION 
     According to one aspect of the present invention, there is provided a method of coding a digital sub-band coded signal, in which the number of bits allocated to the respective sub-bands is adaptively determined as a function of those bits which are always transmitted, whereby the coded signal may be decoded by reference only to the transmitted bits. 
     In another aspect we provide a digital sub-band coder comprising filter means for dividing the input signal into two or more frequency sub-bands, and adaptive bit allocation means for adaptively determining the number of bits to be used for encoding each sub-band in dependence on the relative energy content of the sub-bands, characterised in that the bit allocation means is responsive only to those bits of each sub-band which are always transmitted. 
     A further aspect of the invention provides a method of transmitting a digital data signal together with a digital sub-band coded signal which comprises comparing the energy contents in different sub-bands and adaptively inserting data bits into a sub-band with a low energy content. 
     In yet another aspect, we provide apparatus to transmit digital sub-band encoded signals and digital data signals, comprising means to divide an incoming frequency band into a plurality of sub-bands and means for encoding each sub-band separately, characterized in that the apparatus further comprises means to measure and compare the energy contents of the sub-bands and selectively insert data bits into a sub-band having a low energy envelope. 
     Conveniently the comparison is made between two adjoining sub-bands. The sub-bands may themselves be sub-bands of lower order sub-bands, or may be the only sub-bands into which the parent frequency band has been divided. 
     The comparison may be made, for example, by subtracting the respective sub-band stepsizes, but is preferably made by determining their ratio. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will now be explained further by way of example and with reference to the accompanying drawings of which: 
     FIGS. 1, 3 and 5 are schematic diagrams of SBC encoders incorporating the present invention; 
     FIGS. 2, 4 and 6 are schematic diagrams of SBC decoders incorporating the present invention; and 
     FIG. 7 is a schematic diagram of an embedded ADPCM coder and decoder. 
    
    
     DETAILED DESCRIPTION 
     Referring to FIG. 1, a sub-band coder for speech signals receives at an input 1, a speech signal which is assumed to be PCM coded at a sampling rate of 16 kHz. The input frequency spectrum is divided into upper and lower sub-bands by high-pass and low-pass filters 2, 3, the two bands then being down-sampled to 8 kHz in &#34;decimators&#34; 4,5. For the purposes of illustration, the signals at this point are assumed to be quantized to four-bit accuracy, in both bands, although in practice more bits would be used, not necessarily the same number in each band. 
     An output multiplexer 6 is provided to assemble the output bits into suitable form for onward transmission from its output; it could be part of a t.d.m. system, or simply a parallel-to-serial converter. It has, by way of example, an 8-bit input. One bit of these eight is permanently assigned to transmission of an auxiliary data signal D; note however that this is incidental to the principle being illustrated in FIG. 1. 
     An adaptive allocation of the remaining seven available bits to the two channels is effected on the basis that one channel will be transmitted with 3-bit accuracy, the other 4-bit. Thus the 3 most significant bits h 3  -h 1 , l 3  -l 1  of the two channels are permanently assigned to respective bit inputs of the multiplexer 6, while the eighth input of the multiplexer receives, via a selector 8, the least significant bit h 0  or l 0  of a selected one of the two channels. 
     The corresponding decoder (FIG. 2) is essentially a mirror image of the transmitter, a demultiplexer 16 feeding the three most significant inputs of up-samplers 14, 15 which in turn supply interpolation filters 12,13 the outputs of which are added at 10 to form the decoded output 11. 
     Returning to the coder of FIG. 1, the selector 8 is controlled by a decision circuit 9 which determines which of the two least significant bits h 0  or l 0  is to be transmitted. This decision is made as a function of the relative signal or energy content of the two channels, and the corresponding deselection (by a one-bit demultiplexer 18) at the decoder is controlled by a functionally identical decision circuit 19. 
     So that the decoder decision circuit can accurately &#34;track&#34; operation of that in the coder, the decision circuits are in each case responsive only to the three most significant bits h 3  -h 1 , l 3  -l 1  of the two channels. The decoder decision circuit does not, of course, have access to both h 0  and l 0  ; nor does it &#34;know&#34; prior to making its decision, which of them it does have access to. 
     The decision circuits 9, 19 serve to assess which channel has the higher energy content, so that the dropping of the least significant bit will occur in a channel where it makes the lesser noise contribution. Although it would be possible to do this on a sample-by-sample basis (where a simple comparator would suffice), for a practical system it would compare and average energy estimates formed over a period; this will be discussed further below. 
     FIG. 3 shows a modified version of the coder of FIG. 1, where, of the eight available bits, four are allocated to each of the two channels, the auxiliary data D being adaptively inserted in the least significant bit position h 0  or l 0  of one of the two channels. As shown, however, the decision circuit 9&#39; has two outputs x, y which are active when the ratio of the energy in the upper channel to that in the lower respectively exceeds a lower threshold or falls below a higher one, so that when it falls between the two thresholds, the data is inserted into both channels. In the receiver (FIG. 4), a single decision threshold is used, as before. In this way, corruption of the data by errors in the decision, due to finite computational accuracy, or transmission errors, are reduced. 
     A more practical version of the coder and decoder of FIGS. 3 and 4 will now be described; note however that much of what follows could also be applied to the coder and decoder of FIGS. 1 and 2. 
     The coder, suitable for receiving a wide band speech input signal of 7 kHz bandwidth sampled at 16 kHz and transmitting it at 64 kbit/s is shown in FIG. 5 and uses ADPCM (adaptive differential pulse code modulation). Differential coders normally suffer from an excessive signal-to-noise penalty if bits are deleted and to rectify this, an embedded ADPCM coding is used. Embedded coders are described in &#34;Embedded DPCM for variable bit rate transmission&#34;, David J. Goodman, IEEE Trans. Comm. Vol COM-28, No. 7, July 1980, pp 1040 to 1046. The encoder described there is not an adaptive coder (nor is it used for sub-band coding). Essentially, an embedded DPCM coder solves the problem (with a small SNR penalty due to less accurate prediction and hence a higher quantizer step size and thus quantization noise) in that any bits liable to be omitted on transmission are excluded from the predictor loop at both coder and decoder. 
     Referring again to FIG. 5, the sub-band coder comprises a digital filter 22 consisting of a high pass filter 22a and a low pass filter 22b which divides the digitally (e.g. PCM) encoded input signal at terminal 23 into two sub-bands, which are down sampled in respective down sampling circuits 24a and 24b of a &#34;decimator&#34; 24 from where they are supplied to ADPCM encoder 25 connected to the output of down sampler 24a, and ADPCM encoder 26 connected to the output of down sampler 24b. The ADPCM encoders 25 and 26 have code word outputs 27 and 28 respectively. The ADPCM encoders 25 and 26 also have outputs and providing a signal indicative of the stepsize to a decision circuit 31. The output of the decision circuit 31 is connected to data insertion circuits 32 and 33, and controls their operation in the manner explained below. The outputs of data insertion circuits 32 and 33 form the inputs of an 8 bit multiplexer 34 whose output is the signal to be transmitted. 
     The digital filter 22 comprises quadrature mirror filters (QMFs) which are used to split the input spectrum into two overlapping bands (0-4 kHz, and 4-8 kHz). Suitable filter constants are listed in Table 1. The signals contained in each of the two sub-bands are then applied to the respective down sampler 24a (4-8 kHz) and 24b (0-4 kHz) where they are down sampled to 8 kilo samples per second and applied to the two independent ADPCM coders 25 and 26 respectively. ADPCM coders per se are known, and for the present purposes it will be sufficient to note that the encoding of the two sub-bands in ADPCM encoders 25 and 26 is not symmetric, in that the lower sub-band is encoded using ADPCM with a 5 bit robust Jayant quantizer (AQJ) and a fixed fourth order predictor optimized for 4 kHz bandwidth speech. The higher sub-band (4-8 kHz) is encoded by a 3 bit robust AQJ with a fixed first order predictor. 
     In the receiver of FIG. 6 the lower and upper sub-bands are demultiplexed in demultiplexer 55 and are then processed in essentially the inverse order of that performed on encoding, with the components 42 to 53 being essentially the mirror images of the corresponding components 22 to 33 of the encoder. 
     The 64 Kbit/s signal is demultiplexed, decoded, interpolated and processed by the receiver QMF bank to recover the 7 kHz bandwidth signal, the two channels being combined in an adder 43. 
     The SBC encoder and decoder additionally include data insertion and data recovery circuits 32, 33 and 52, 53 respectively, as well as the data insertion and data recovery decision circuits 31 and 51. 
     The 3 bit and 5 bit outputs of the ADPCM encoders 25 and 26 respectively are applied to the data insertion circuits 32 and 33 where a single data bit is inserted into, and thus replaces the existing bit in, the fifth encoded (least significant) bit position for the lower channel output, or into the third encoded bit position for the upper channel, or into both, in accordance with the data insertion strategy described below. 
     Thus the output from the SBC coder is configured either as 5+(2+D) or (4+D)+3, or (4+D)+(2+D), where D is the data bit. 
     In this embodiment, the decision circuits 31,51 are comparators which compare the adaptor stepsize (scaling factor) generated in the stepsize adapting circuits 64 and 74 of FIG. 7, which is a block diagram of the ADPCM coder 25 or 26 and decoder 45 or 46. The data insertion decision strategy and the corresponding data recovery strategy operate on the following principles. 
     It is clearly desirable that the decision as to which channel receives the data bit should not require any transmission of side information to the receiver to provide correct demultiplexing. For this reason a backward adaptive data multiplexing strategy is employed where the multiplexing and demultiplexing data channel selection decision is derived from the transmit quantizer output code words and receiver input code words respectively. 
     The data channel selection strategy is determined as follows. A spectral envelope estimate, that is essentially a measure for the energy content, is obtained for each sub-band signal and the estimates for the two channels are then compared to give a three way decision voiced (such as vowels), unvoiced (such as the syllables) and intermediate. 
     When it is clear that voiced sounds are present the upper channel (4-8 kHz) is selected for the data bit, and 5 bits are then available for accurate representation of the predominantly lower channel signal. 
     When unvoiced sounds are present, or alternatively, when it is not clear whether the speech is voiced or unvoiced, the lower channel (0-4 kHz) is arranged to carry the data bit thus leaving 4 bits available for coding the speech signal in the lower band. The full 3 bits are then available in the upper channel for accurately coding the higher frequencies of the speech signal. 
     To avoid the need to transmit any side information the short term spectral envelope information for the data insertion decision is derived from the quantizer stepsize parameters for the two channels. This information is derived in a backward adaptive mode, using the robust Jayant algorithm, i.e. the stepsize parameter for the lower and upper channel quantizers respectively is given by 
     
         Δl(n+1)=Δl(n).sup.γ ·Ml(Il(n))  (1) 
    
     and 
     
         Δu(n+1)=Δu(n).sup.γ ·Mu(Iu(n))  (2) 
    
     where Il(n) is the nth output codeword for the lower channel quantiser and Iu(n) is the output codeword from the upper channel quantiser. Ml(.) and Mu(.) are multiplier functions shown in table 1b for quantisers with various numbers of bits. γ is a &#34;leakage factor&#34; which is required in order to dissipate the effect of transmission errors. Typically, γ is chosen to be 0.984. 
     In practice it is more convenient in the coder implementation to re-express equations 1 and 2 in logarithmic form to eliminate the complex exponentiation operations: 
     
         dl(n+1)=γ·dl(n)+ml(Il(n))                   (3) 
    
     and 
     
         du(n+1)=γ·du(n)+mu(Iu(n))                   (4) 
    
     where, dl(.), du(.), ml(.) and mu(.) are respectively the logarithmic values of Δl(.), Δu(.), Ml(.) and Mu(.). 
     It is easy to show that the above recursive algorithm produces a measure of the short-term envelope of the bandlimited speech within each sub-band. 
     The decision as to which sub-band is to receive the data bit is determined as follows. First the scaled ratio of the lower and upper quantiser step-sizes is obtained as: ##EQU1## where μ is a constant and V(n) is the time varying signal applied to the subsequent data bit assignment strategy. 
     To simplify the digital processing, equation 5 is expressed in a logarithmic form: ##EQU2## 
     By experiment the value of μ in equation 7 was set to 2. 
     It is apparent that a voiced/unvoiced decision could be made if the decision threshold is set to v(n)=0. Unfortunately the use of such a hard decision process creates the possibility of systematic data channel selection errors occurring when the value of v(n) lies close to the decision level. This may happen due to the effects of finite precision limitations or as a result of the residual effect of channel errors and would cause the v(n) calculated from the decoded signals in the receiver not being perfectly in synchronism with the function v(n) determined at the transmitter. 
     For this reason the transmitter implies (soft) decision thresholds, which cause the insertion of the data bit simultaneously into both sub-bands when v(n) falls between an upper and a lower threshold, τu and τl. The decoder forms the comparison with a hard middle threshold, τ. Although the use of both channels momentarily reduces the performance on the speech channel, it makes the data channel more robust to transmission errors and eliminates systematic errors due to misalignment of the stepsize parameters derived in the encoder and the decoder respectively. 
     In a pilot experiment, the adaptive data insertion technique of the present invention was simulated in floating point Fortran on a mini computer and compared with a fixed data bit assignment technique, that is the technique where the data are multiplexed at all times into either the upper or the lower sub-band code words. The finite precision limitations of an NEC μPD 7720 microprocessor such as is commonly used in speech coding transmitters and receivers, were simulated and facilities were also provided to inject random errors into the serialised output (the channel) of the sub-band coder. 
     The afore-described is a simple yet potentially powerful technique for insertion, for example, 8 Kbit/s of data into a 56 Kbit/s SBC coded wideband speech channel. The technique described may be combined with for example adaptive prediction in the lower band, to increase the data carrying capacity beyond this. 
     The main advantages of the technique are: 
     1. The scheme is relatively simple to implement and uses processing capacity available in the coder DSP (digital signal processing) micro computer. 
     2. There is no need for transmitting side information to control the data demultiplexing function. 
     3. In the example described above the scheme offers a constant data carrying capacity of 8 Kbit/s. 
     4. The technique may be combined with other techniques to increase the data carrying capacity, in the example 2 16 Kbit/s or more. 
     Compared to a fixed data multiplexing strategy, where the data bit is assigned constantly to e.g. the lower channel, the present technique results in a noticeable reduction in the perceivable distortion. 
     
                       TABLE 1______________________________________Coder Coefficients______________________________________a. Filter Coefficientsh.sub.l (0) = h.sub.l (31) = 0.002245139h.sub.l (1) = h.sub.l (30) = -0.003971152h.sub.l (2) = h.sub.l (29) = -0.001969672h.sub.l (3) = h.sub.l (28) = 0.008181941h.sub.l (4) = h.sub.l (27) = 0.000842638h.sub.l (5) = h.sub.l (26) = -0.014228990h.sub.l (6) = h.sub.l (25) = 0.002069470h.sub.l (7) = h.sub.l (24) = 0.022704150h.sub.l (8) = h.sub.l (23) = -0.007961731h.sub.l (9) = h.sub.l (22) = -0.034964400h.sub.l (10) = h.sub.l (21) = 0.019472180h.sub.l (11) = h.sub.l (20) = 0.054812130h.sub.l (12) = h.sub.l (19) = -0.044524230h.sub.l (13) = h.sub.l (18) = - 0.099338590h.sub.l (14) = h.sub.l (17) = 0.132972500h.sub.l (15) = h.sub.l (16) = 0.463674100h.sub.u (n) = (-1) · h.sub.l (n) where n = 0, 1, 2, . . . (N -______________________________________1)b. Multiplier CoefficientsNo of Coder Bits  Step Multipliers______________________________________2                 0.8, 1.63                 0.9, 0.9, 1.25, 1.754                 0.9, 0.9, 0.9, 0.9,             1.2, 1.6, 2.0, 2.45                 0.9, 0.9, 0.9, 0.9,             0.95, 0.95, 0.95, 0.95,             1.2, 1.5, 1.8, 2.1, 2.4,             2.7, 3.0, 3.3______________________________________