huffman.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * FAAC - Freeware Advanced Audio Coder
  3.  * Copyright (C) 2001 Menno Bakker
  4.  *
  5.  * This library is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU Lesser General Public
  7.  * License as published by the Free Software Foundation; either
  8.  * version 2.1 of the License, or (at your option) any later version.
  9.  *
  10.  * This library is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  * Lesser General Public License for more details.
  14.  * You should have received a copy of the GNU Lesser General Public
  15.  * License along with this library; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  * $Id: huffman.h,v 1.5 2001/06/04 23:02:24 wmay Exp $
  19.  */
  20. #ifndef HUFFMAN_H
  21. #define HUFFMAN_H
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif /* __cplusplus */
  25. #include "bitstream.h"
  26. #include "coder.h"
  27. /* Huffman tables */
  28. #define MAXINDEX 289
  29. #define NUMINTAB 2
  30. #define FIRSTINTAB 0
  31. #define LASTINTAB 1
  32. #define INTENSITY_HCB 15
  33. #define INTENSITY_HCB2 14
  34. #define ABS(A) ((A) < 0 ? (-A) : (A))
  35. #include "frame.h"
  36. void HuffmanInit(CoderInfo *coderInfo, unsigned int numChannels);
  37. void HuffmanEnd(CoderInfo *coderInfo, unsigned int numChannels);
  38. int BitSearch(CoderInfo *coderInfo,
  39.   int *quant);
  40. int NoiselessBitCount(CoderInfo *coderInfo,
  41.   int *quant,
  42.   int hop,
  43.   int min_book_choice[112][3]);
  44. static int CalculateEscSequence(int input, int *len_esc_sequence);
  45. int CalcBits(CoderInfo *coderInfo,
  46.  int book,
  47.  int *quant,
  48.  int offset,
  49.  int length);
  50. int OutputBits(CoderInfo *coderInfo,
  51.    int book,
  52.    int *quant,
  53.    int offset,
  54.    int length);
  55. int SortBookNumbers(CoderInfo *coderInfo,
  56. BitStream *bitStream,
  57. int writeFlag);
  58. int WriteScalefactors(CoderInfo *coderInfo,
  59.   BitStream *bitStream,
  60.   int writeFlag);
  61. #ifdef __cplusplus
  62. }
  63. #endif /* __cplusplus */
  64. #endif /* HUFFMAN_H */