HUFFMAN.H
上传用户:dshsh2009
上传日期:2007-01-07
资源大小:155k
文件大小:2k
源码类别:

mpeg/mp3

开发平台:

Unix_Linux

  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. extern struct huffcodetab ht[HTN];/* global memory block */
  37. /* array of all huffcodtable headers */
  38. /* 0..31 Huffman code table 0..31 */
  39. /* 32,33 count1-tables */
  40. #ifdef PROTO_ARGS
  41. extern int read_huffcodetab(FILE *); 
  42. extern int read_decoder_table(FILE *);
  43.  
  44. extern void huffman_coder(unsigned int, unsigned int,
  45.   struct huffcodetab *, Bit_stream_struc *);
  46.   
  47. extern int huffman_decoder(struct huffcodetab *,
  48.    /* unsigned */ int *, /* unsigned */ int*, int*, int*);
  49. #else
  50. extern int read_huffcodetab(); 
  51. extern int read_decoder_table(); 
  52. extern void huffman_coder();
  53. extern int huffman_decoder();
  54. #endif