Method for protecting coded signal integrity

Abstract: Some signal coding techniques, involve quantizing the signal samples using a signal derived parameter to set the quantizer step. This parameter is then used in the decoding process to synthesize the original signal back to its analog form. Any error affecting the integrity of said parameter, between coding and decoding, would affect the synthesized signal. The method proposed here for protecting data integrity involves, at the encoding site, forcing the parameter to a fixed parity. Then, before synthesizing operations be performed, any parameter failing a parity control test is discarded and replaced with a parameter derived from available valid parameter(s).

Description: Field of invention This invention deals with digital encoding of signals and more particularly with a method for improving robustness to noise for digitally encoded signals. Background of invention The digital encoding techniques have proven to be well adapted to the transmission or storage of electrical signals, e.g. voice originated signals, in a noisy environment. Some of these techniques involve embedding coding parameters to be used in the subsequent decoding process, within the coded data. Needless to say that any error on the coding parameters is particularly troublesome, as it affects the whole decoding process made to reconstruct the original analog signal. Consequently, methods should be developed to ascertain the highest robustness to noise for the coding parameters. One way for achieving this goal is obtained by duplicating the parameters for storage or transmission purposes. Or by assigning additional parity checking bit(s) as mentioned in US-A-4 003 620. This is bit consuming and should be avoided when bit savings is a must, such as for instance when the encoding is operated over voice signals and the bit rate needs to be minimized. A great deal of efforts have been paid to developing techniques for lowering the coding bit rate through use of sophisticated methods involving companding operations. One of these techniques, the Block Companded PCM (BCPCM) technique, has proven to be well adapted to the transmission of voice over noisy channels. This technique involves splitting the flow of samples of the original signal into fixed length blocks, deriving from each block of samples a characteristic term "C" (e.g. the largest magnitude sample) and normalizing/quantizing each sample within the considered block with respect to C. The normalized/quantized block of samples together with a digitally encoded representation of C is all is needed to define the block. This method has been presented by A. Croisier in a lecture given at the 1974 International Seminar on Digital Communications in Zurich, Switzerland, and entitled "Progress in PCM and Delta Modulation : Block Companded Coding of Speech Signal". Obviously, any error affecting a parameter C, once used to normalize a block of samples, would affect the quality of the synthesized signal represented by the considered block. A method for protecting C has been mentioned in EP-A-64 119, which involves associating to C one or more parity bits, but this again is bit consuming and affects the number of bits remaining for signal quantizing purposes". The invention provides a method for protecting BCPCM data integrity by protecting the sensitive coding parameter represented by the C term, without imparting on the number of bits available for coding purposes. Needless to mention that the method applies to different coding schemes and different coding parameters applied to different types of signals, as well. It was successfully applied to BCPCM voice encoding. Summary of invention One object of this invention is thus to provide an efficient method for protecting a coded signal integrity. Another object is to apply such a method to BCPCM coding techniques, whereby the signal is represented by blocks of samples normalized, with respect to block representative parameter C. Each C data is forced to a predetermined fixed parity (e.g. odd parity) prior to being used for normalizing the samples. Subsequently, at the synthesis level, parity checking is operated over the C's and any invalid C is discarded and replaced by a reconstructed C derived from C's assigned to neighbouring blocks, through interpolation/extrapolation operations. The foregoing and other objects, features and advantages of the invention, will be made apparent from the following more particular description of a preferred embodiment of the invention, as illustrated in the accompanying drawings. Brief description of the drawings Figure 1 is a block diagram of a known BCPCM coder/transmitter. Figure 2 is a flow-chart for one of the blocks of Figure 1. Figure 3 is a block diagram of a BCPCM decoder/receiver Figure 4 is a block diagram of the coder of Figure 1 made to include the invention. Figure 5 is a flow-chart for implementing the invention. Figure 6 is a block diagram of the decoder of Figure 2 arranged to include the invention. Figure 7 is a flow-chart for implementing the invention Figure 1 represents the block diagram of a known BCPCM Coder. The input signal has been sampled at Nyquist frequency and coded in PCM with 12 bits per sample, to provide a flow of samples S(n), wherein n = 1, 2, 3... represents the sample rank within the flow of signal samples. S(n) is then applied to a BCPCM quantizer (2) to be quantized therein. The quantizer parameters are updated per block of N samples, N being a predetermined integer value defining a block length. For each block of N samples, a PEAK PICKING device (4) sorts the N samples of each block to determine a so-called block characteristic term "C" according to : In other words, the block characteristic is chosen to be equal to the magnitude of the largest sample in the considered block. The block characteristic term C is then usually digitally encoded with 5 bits in a CHARACT CODER 6, providing a C′ digital term. The 5-bit recoding of the 12-bit encoded block characteristic C, consists in finding the upper bound C′ among 32 quantizing levels, and can be implemented either through a straightforward or through a dichotomic search. The straightforward search algorithm is described hereafter : a logarithmic companded table CTABQL is used. The decision levels are set as follows. The 12 to 5-bit encoding is performed through the scanning of the above table, using the algorithm represented in Figure 2. In other words, the 12-bit coded magnitude of C (decimal value between 0 and 2 047) would be converted into a 5-bit coded TABLE location. For example, assume C = 8 the decimal value of the 12-bit encoded C, i.e. "000000001000". A variable parameter K is set to zero. Since zero < 31 then C′ is set to zero (C′ = 0) and tested by reading the content of first position of the TABLE. Said content is equal to one. Then, the test (8 ≦ 1 ?) fails and, K is set to 1. Is 1 > 31 ? No, then C′ = 1 and the test (8 ≦ 2 ?) is again performed and fails. And so on until C′ = 5 is reached since next TABLE address store 10 > 8. The value C′ is thus 5-bit encoded to "00101". The decoding of the block characteristic will consist in deriving a reconstructed value C″ for the block characteristic from the transmitted 5 bits C′. This can be efficiently implemented by a table look-up : C″ = CTABQL (1 + C′) (1) The coded C′ terms are applied to a multiplexer (8) to be transmitted over a transmission channel toward a receiver. In the following we will address transmission application, but storage or any other application might be considered as well. As already mentioned, the block characteristic terms C are used to normalize the samples, or, in other words, to adjust the BCPCM quantizer step. To minimize quantizing noise due to said quantizer step adjustment, the coded C′ are decoded into C″ in (10) prior to being used to adjust the BCPCM Quantizer step Q, according to : Q = C″ / 2 n′-1 (3) wherein n′ is the number of bits assigned to the quantizer for quantizing each signal sample. Each block sample S(n) is then quantized into an S′(n) digital value according to : S′(n) = < S(n) / Q > (4) where < X > denotes the truncation to the lowest integer value of X, and n = 1, 2, ..., N. It should be noted here, that the quantizing step for a current block of samples, could as well be adjusted, using the C term, derived from the previous block and delayed one block to enable starting quantizing operations on the current block of samples with no delay on quantizing operations. The S′(n) digital values are then multiplexed in the multiplexer (8) with the coded C′, and transmitted in a common flow of data over the transmission channel toward the receiver of Figure 3. The receiver includes a demultiplexer 12 where the 5-bit coded characteristics C′ and quantized samples S′(n) are separated from each other. The C′ are decoded in (14) into C″ terms used to adjust an inverse quantizer (16) step Q, according to the above expression (3). The conversion from C′ to C″ is operated by simply reading the content of address (1 + C′) in the above represented TABLE. Then, the samples S″(n) are reconstructed back, according to : S″(n) = Q × (S′(n) + 0.5) (5) for n = 1,..., N The BCPCM coding technique has proven to be well adapted to the transmission of voice over noisy digital channels, but, obviously, the item most important to protect from noise, is the C parameter, in view of it being used to adjust the quantizer step and thus susceptible of affecting precision on a whole block of samples if affected in its integrity. The following proposed method increases the BCPCM robustness without adding redundancy bits to the transmitted frames, by improving robustness of the C's parameters to noise. Represented in Figure 4 is a block diagram of a BCPCM coder, as represented in Figure 1, made to include the invention. The receiver includes an additional device, i.e. a parity encoder 7 converting the coded C′ into a C‴ term prior to it being decoded into the C″ value used to set the quantizer step Q. The conversion from C′ to C‴ is achieved by forcing C′ to a predetermined fixed parity. First, the parity of the coded characteristic C′ is computed. If said parity is not the odd parity selected as the predetermined fixed parity for this implementation, then C′ is incremented until an odd parity is obtained. What makes this invention even more attractive, is that the means for implementing it, are rather simple, thus inexpansive. The flow chart for operating device 7 of Figure 4 is represented in Figure 5. The 5 bits coded C′ parity is simply checked. If C′ is odd, then C‴ = C′, otherwise, C' = C′ + 1. The output C‴ is thus a 5-bit coded odd valued data which is fed into the characteristic decode device 10. It could also either be multiplexed as such into the multiplexer 8, or be itself protected by being assigned a 3-bit CRC into an error correction (FEC) device 11 prior to it being multiplexed. In practice, the CRC term would rather be assigned to a group of C terms. Inserting the parity encoder at the input of the characteristic decoder 10, enables minimizing the incidence of forcing the parity of the characteristic terms due to device 7, over the sample quantizing process. Represented in Figure 6 is a block diagram of the receiver to be used with the invention. It is derived from the receiver of Figure 3 and corresponding devices have been assigned same references. The received data flow is demultiplexed in device 12 to separate the samples S′(n) from the forced parity characteristics C‴. Should a CRC be assigned to C‴, then conventional Error Checking and Correction would be operated in a conventional error checking and correcting device ECC 17, prior to getting the forced parity C‴. The C‴ are parity checked in a device 18. If said parity is not ODD, the involved characteristic term is simply considered invalid and discarded. Generation of a reconstructed characteristic term is started. For that purpose, previously received valid characteristic terms have been stored in a delay line within a C reconstruct device 20 made to reconstruct a valid characteristic term. The flow-chart for the corresponding algorithm is represented in Figure 7. Assuming the BCPCM block time index be k, then : if C k ‴ is odd then C k ′ = C k ‴ if C k ‴ is even then interpolate or extrapolate. The flow-chart has been made for the simplest extrapolation (i.e. first order extrapolation), then C k ′ = C′ k-1 . In this case, the C reconstruction device 20 is made with a one block delay device. Higher order extrapolation may be achieved. For a second order extrapolation the delay line should be two-block long (i.e. C′ k-2 and C′ k-1 . In this case, the current C′ k would then be reconstructed to be : C′ k = 2 C′ k-1 - C′ k-2 (6) More complex extrapolation rules, or even interpolation, might also be considered. For interpolation one would derive C′ k = 1/2 (C′ k-1 + C′ k+1 ) (7) This implies a one block delay in the receiver (see DELAY device 15 in Figure 6). Therefore, the method of this invention takes advantage of the ability of the quantizer to compensate for a deviation in the individual characteristic terms. It could easily be extended to sub-band coding wherein the signal to be quantized is split into a predetermined number (p) of frequency sub-bands. Each sub-band being assigned a quantizer, straightforward extension of the above described invention could be made to each sub-band quantizer. In this case, the additional CRC protection would apply to the p characteristics, considered globally. It could also be applied to Pulse Excited methods wherein consecuting segments of signals are each represented by a series of regularly (RPE) or non regularly (MPE) spaced samples. It can be noted that the protection scheme, described here, can be used in addition to a more sophisticated Error Correcting Code, since the encoded data itself can be included in a code word. For example, while the proposed method is mainly valuable for detecting random errors, the additional Error Correcting Code could be capable of correcting burst errors, resulting in a high performance protection scheme. Also, although the description of the preferred embodiment was performed on a BCPCM coder, the proposed method can be applied to the protection of encoded parameters using an encoding scheme similar to the BCPCM.

Claims: A method for protecting the integrity of digitally encoded signal samples, wherein said encoding is achieved using Block Companded PCM (BCPCM) including splitting the signal samples into consecutive blocks of samples (S(n)), deriving from each said block a socalled block dependent characteristic term (C') and quantizing each block sample using said characteristic term to adjust the quantizing step for a block of samples and keeping both the characteristic term and the quantized samples (S'(n)) as being the data representative of the BCPCM encoded block of samples, said method including: during encoding prior to the normalization of the samples: for each block of samples (S(n)) checking whether the corresponding characteristic term (C') bears a predefined parity and, if not, incrementing said block characteristic term by one unit and rechecking its parity until said predefined parity is checked, and using said parity checked term (C''') as being the characteristic term to be assigned to the corresponding block of samples; and, during decoding: for each encoded block, deriving the corresponding block characteristic term (C' k ) from the encoded data (C''',S'(n)), checking its parity relative to the predefined parity, discarding any invalid parity checked characteristic term and regenerating any discarded characteristic term using characteristic terms from neighboring blocks. A method according to claim 1, wherein said regenerating operations for a discarded characteristic term include interpolating over characteristic terms from neighbouring blocks. A method according to claim 2 wherein the protected block characteristic term used to define the quantizing step for a block of signal samples is selected to be the largest sample within said block of samples. A method according to claim 2 wherein the protected block characteristic term used to quantize a current block of samples is derived from a previous block of signal samples.

Inventors: ELIE PHILIPPE, GALAND CLAUDE, ROSSO MICHELE, ELIE, PHILIPPE, GALAND, CLAUDE, ROSSO, MICHELE, Rosso, Michèle
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1987
Main classification: H03M13
IPC codes: H03M13, H03M7