dmG728Encode(3dm) dmG728Encode(3dm)
dmG728Encode - implements the ITU (International Telecommunication Union)
Recommendation G.728 compression (LD-CELP).
#include <dmedia/dm_audioutil.h>
DMstatus dmG728Encode(DMG728encoder handle,
short *ibuf, unsigned char *obuf, int nsamples)
handle DMG728encoder structure, created by dmG728EncoderCreate(3dm),
specifies the signal processing parameters.
ibuf pointer to input sample data buffer. 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. The data format is unsigned
char (8-bit). This bitstrem buffer must consist of a multiple
of 10 bytes.
nsamples number of samples in the input buffer to be processed. the
value of nsamples passed to the G.728 encode/decode routines
must always be a multiple of 40.
Returns DM_FAILURE or DM_SUCCESS.
dmG728Encode(3dm) implements the ITU Recommendation G.728 compression.
The uncompressed data sampling rate is 8000 Hz. And the compressed
bitrate is 16000 bits/s.
ITU Recommendation G.728 compression also 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 dmG728Decode(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
dmG728Encode(3dm) dmG728Encode(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. We recommend
2 second "preroll".
G.728 algorithm was developed for sampling rate of 8 kHz.
dmG728EncoderCreate(3dm), dmG728EncoderDestroy(3dm), dmG728Decode(3dm),
ITU Recommendation G.728.
PPPPaaaaggggeeee 2222 [ Back ]
|