dmGSMEncode(3dm) dmGSMEncode(3dm)
dmGSMEncode - implements the European GSM 06.10 provisional standard for
full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP
(regular pulse excitation/long term prediction) coding at 13 kbit/s.
#include <dmedia/dm_audioutil.h>
DMstatus dmGSMEncode(DMGSMencoder handle,
short *ibuf, unsigned char *obuf, int numSamples)
handle DMGSMencoder structure, created by dmGSMEncoderCreate(3dm),
specifies the signal processing parameters.
ibuf pointer to input sample data buffer, an array of size of a
multiple of 160. The data format is short (16-bit). The
samples are assumed to be two's complement. The sampling rate
must be 8 kHz.
obuf pointer to output data buffer, an array of a multiple of 33
bytes. The data format is unsigned char (8-bit).
numSamples
number of sample in the input buffer to be processed. the
value of numSamples passed to the GSM decode/decode routines
must always be a multiple of 160. The compressed bitstrem
buffer consists of a multiple of 33 bytes.
Returns DM_FAILURE or DM_SUCCESS.
dmGSMEncode(3dm) implements GSM 06.10 compression.
GSM compression uses a linear prediction scheme. This means that the
compressed bits, which carrying compressed information, are interrelated
or interdependent. If a application calls afSeekFrame(3dm) to an offset
into the compressed bit stream file and then starts reading bits in the
middle of the bit stream and decompress them with dmGSMDecode(3dm), the
interdependency of the bits at the cutting point is lost. The
application will initially get back data with a lower amplitude than if
he had read the same data back during a complete pass over the file from
the beginning.
Page 1
dmGSMEncode(3dm) dmGSMEncode(3dm)
There is no way to exactly recreate the decoded data in the middle of the
bit stream file without going all the way back to the beginning.
However, with a "preroll" value to read ahead a portion of the compressed
file, application can compensate for the amplitude problem.
The compressed bitrate now is 13200 bits/s. This is not the same as
standard specification of 13000 bits/s because the first 4 bits of each
33 byte are not useful information bits. This bits arrangement was
adopted using the original scheme by Jutta Degener ([email protected]-
berlin.de) and Carsten Bormann ([email protected]), Communications and
Operating Systems Research Group, TU Berlin for compatibility with
typical UNIX applications. And may be modify later.
GSM algorithm was developed for sampling rate of 8 kHz.
dmGSMEncoderCreate(3dm), dmGSMEncoderDestroy(3dm), dmGSMDecode(3dm), ETSI
GSM 06.10 standard.
PPPPaaaaggggeeee 2222 [ Back ]
|