home *** CD-ROM | disk | FTP | other *** search
/ MPEG Toolkit / MPEG Toolkit.iso / dos / ampeg43 / source / decodsrc / huffman.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-01  |  2.4 KB  |  60 lines

  1. /**********************************************************************
  2. Copyright (c) 1991 MPEG/audio software simulation group, All Rights Reserved
  3. huffman.h
  4. **********************************************************************/
  5. /**********************************************************************
  6.  * MPEG/audio coding/decoding software, work in progress              *
  7.  *   NOT for public distribution until verified and approved by the   *
  8.  *   MPEG/audio committee.  For further information, please contact   *
  9.  *   Davis Pan, 708-538-5671, e-mail: pan@ukraine.corp.mot.com        *
  10.  *                                                                    *
  11.  * VERSION 4.3                                                        *
  12.  *   changes made since last update:                                  *
  13.  *   date   programmers                comment                        *
  14.  *  27.2.92 F.O.Witte (ITT Intermetall)                      *
  15.  *  8/24/93 M. Iwadare          Changed for 1 pass decoding.          *
  16.  *  7/14/94 J. Koller        useless 'typedef' before huffcodetab  *
  17.  *                removed                      *
  18.  *********************************************************************/    
  19.  
  20. #define HUFFBITS unsigned long int
  21. #define HTN    34
  22. #define MXOFF    250
  23.  
  24. struct huffcodetab {
  25.   char tablename[3];    /*string, containing table_description    */
  26.   unsigned int xlen;     /*max. x-index+                      */ 
  27.   unsigned int ylen;    /*max. y-index+                */
  28.   unsigned int linbits; /*number of linbits            */
  29.   unsigned int linmax;    /*max number to be stored in linbits    */
  30.   int ref;        /*a positive value indicates a reference*/
  31.   HUFFBITS *table;    /*pointer to array[xlen][ylen]        */
  32.   unsigned char *hlen;    /*pointer to array[xlen][ylen]        */
  33.   unsigned char(*val)[2];/*decoder tree                */ 
  34.   unsigned int treelen;    /*length of decoder tree        */
  35. };
  36.  
  37. extern struct huffcodetab ht[HTN];/* global memory block        */
  38.                 /* array of all huffcodtable headers    */
  39.                 /* 0..31 Huffman code table 0..31    */
  40.                 /* 32,33 count1-tables            */
  41. #ifdef PROTO_ARGS
  42.  
  43. extern int read_huffcodetab(FILE *); 
  44. extern int read_decoder_table(FILE *);
  45.  
  46. extern void huffman_coder(unsigned int, unsigned int,
  47.               struct huffcodetab *, Bit_stream_struc *);
  48.               
  49. extern int huffman_decoder(struct huffcodetab *,
  50.                /* unsigned */ int *, /* unsigned */ int*, int*, int*);
  51.  
  52. #else
  53.  
  54. extern int read_huffcodetab(); 
  55. extern int read_decoder_table(); 
  56. extern void huffman_coder();
  57. extern int huffman_decoder();
  58.  
  59. #endif
  60.