huffman.h
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* huffman.h
  2. Adapted from the ISO MPEG Audio Subgroup Software Simulation
  3.    Group's public c source for its MPEG audio decoder. Miscellaneous
  4.    changes by Jeff Tsay (ctsay@pasteur.eecs.berkeley.edu).
  5.    Last modified : 04/19/97 */
  6. /**********************************************************************
  7. Copyright (c) 1991 MPEG/audio software simulation group, All Rights Reserved
  8. huffman.h
  9. **********************************************************************/
  10. /**********************************************************************
  11.  * MPEG/audio coding/decoding software, work in progress              *
  12.  *   NOT for public distribution until verified and approved by the   *
  13.  *   MPEG/audio committee.  For further information, please contact   *
  14.  *   Davis Pan, 508-493-2241, e-mail: pan@3d.enet.dec.com             *
  15.  *                                                                    *
  16.  * VERSION 4.1                                                        *
  17.  *   changes made since last update:                                  *
  18.  *   date   programmers                comment                        *
  19.  *  27.2.92 F.O.Witte (ITT Intermetall)                    *
  20.  *  8/24/93 M. Iwadare          Changed for 1 pass decoding.          *
  21.  *  7/14/94 J. Koller useless 'typedef' before huffcodetab    *
  22.  * removed         *
  23.  *********************************************************************/
  24. #ifndef HUFFMAN_H
  25. #define HUFFMAN_H
  26. #include "all.h"
  27. #include "bit_res.h"
  28. #define HUFFBITS uint32
  29. #define HTN 34
  30. #define MXOFF 250
  31. struct huffcodetab {
  32.   char tablename[3]; /* string, containing table_description   */
  33.   uint32 xlen;  /* max. x-index+                 */
  34.   uint32 ylen;             /* max. y-index+                */
  35.   uint32 linbits;  /* number of linbits                */
  36.   uint32 linmax; /* max number to be stored in linbits    */
  37.   int32 ref; /* a positive value indicates a reference */
  38.   HUFFBITS *table; /* pointer to array[xlen][ylen]       */
  39.   unsigned char *hlen; /* pointer to array[xlen][ylen]       */
  40.   unsigned char(*val)[2]; /* decoder tree                */
  41.   uint32 treelen; /* length of decoder tree             */
  42. };
  43. extern struct huffcodetab ht[HTN];
  44. int32 huffman_decoder(struct huffcodetab *h, int32 *x, int32 *y, int32 *v,
  45.                       int32 *w, Bit_Reserve *br);
  46. #endif