The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

audio_g723 (3)
  • >> audio_g723 (3) ( Solaris man: Библиотечные вызовы )
  • 
    NAME
         g723_encode g723_decode g723_init_state  CCITT  G.723  audio
         compression and decompression.
    
    SYNOPSIS
         #include <multimedia/libaudio.h>
    
         int g723_encode(in_buf, size, header, out_buf, out_size,
         void *in_buf;
         int size;
         Audio_hdr *header;
         char *out_buf;
         int *out_size;
         struct audio_g72x_state *state_ptr;
    
         int g723_decode(in_buf, size, header, out_buf, out_size,
         char *in_buf;
         int size;
         Audio_hdr *header;
         void *out_buf;
         int *out_size;
         struct audio_g72x_state *state_ptr;
    
         void g723_init_state(state_ptr)
         struct audio_g72x_state *state_ptr;
    
    DESCRIPTION
         These routines implement the CCITT G.723 standard for encod-
         ing  16-bit  linear  PCM or 8-bit u-law or A-law coded audio
         data as 3-bit Adaptive Differential  Pulse  Coded  Modulated
         (ADPCM)  data.   It  provides  24 Kbps coding for 8KHz audio
         data with little degradation in sound quality.  The encoding
         and  decoding  routines  use a audio_g72x_state structure to
         store state information between calls.  An  audio_g72x_state
         structure  must be initialized by calling g723_init_state().
         This routine should also be used whenever there is a discon-
         tinuity  in the compressed data stream (for instance, if one
         input/output file  is  closed  and  another  is  opened  for
         decoding/encoding).
    
         The g723_encode() function  encodes  size  bytes  of  16-bit
         linear  PCM  or  8-bit  u-law  or A-law data from the buffer
         pointed to by in_buf.  The compressed ADPCM data is returned
         in out_buf, whose length (in bytes) is returned in out_size.
         The data type of the decoded data is specified in the header
         structure.   state_ptr points to the audio_g72x_state struc-
         ture for preserving encoding state.  The first 3-bit code is
         returned  in the least significant bits of the first byte in
         the output buffer, while the succeeding code is packed  into
         the  high  order  bits.  Output codes are packed into 3-byte
         sample units.  In the event that the input buffer  does  not
         contain  an  even  multiple  of  3 samples, the extra output
         codes are saved in the state structure until the next  invo-
         cation  of  g723_encode().   The  output buffer specified by
         out_buf must contain at least (in_size + 8 ) * 3 /  8  bytes
         for  u-law  and  A-law  input  and ((in_size + 16 ) * 3 / 16
         bytes for 16-bit linear input data to accomodate the encoded
         data.
    
         After the entire input signal is  processed,  the  remaining
         state  structure  should be flushed by calling g723_encode()
         one more time with a  in_size  argument  of  zero.   out_buf
         should  refer  to a valid output buffer to which up to three
         bytes of data may be written.  The final  output  codes  are
         packed with zeroes, which are harmless when decoded.
    
         The g723_decode() function expands  3-bit  ADPCM  data  into
         16-bit  linear  PCM  or 8-bit u-law or A-law format.  in_buf
         specifies the address of a buffer containing  in_size  bytes
         of  3-bit  ADPCM data.  Decoded data is stored in the buffer
         whose address is given by out_buf.  The  data  type  of  the
         decoded  data  is specified in the header structure.  In the
         event that the total number of bits in in_buf is not a  mul-
         tiple  of  3-bit  code, the last bits are saved in the state
         structure until the next invocation  of  g723_decode().  The
         output  buffer  must  contain  enough  room  to  store  (8 *
         (in_size + 3) / 3) bytes for u-law and A-law data or  (16  *
         (in_size  +  3)  /  3)  bytes  for  16-bit  linear PCM data.
         state_ptr  points  to  the  audio_g72x_state  structure  for
         preserving decoding state.  The number of stored output sam-
         ples (not bytes!) is returned in out_size.
    
    RETURN VALUE
         g723_encode() and g723_decode() return audio error codes  or
         AUDIO_SUCCESS.
    
    SEE ALSO
         audio_711(3), audio_g721(3).
    
    NOTES
         These routines comprise  an  implementation  of  the  24Kbps
         CCITT  G.723  ADPCM  encoding  algorithm.  The 40 Kbps G.723
         ADPCM, 5 bits per sample,  has  not  been  implemented  yet.
         This implementation has passed the test vectors furnished by
         CCITT (Dec. 20, 1988) for u-law and A-law data.
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру