• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  ** Copyright 2003-2010, VisualOn, Inc.
3  **
4  ** Licensed under the Apache License, Version 2.0 (the "License");
5  ** you may not use this file except in compliance with the License.
6  ** You may obtain a copy of the License at
7  **
8  **     http://www.apache.org/licenses/LICENSE-2.0
9  **
10  ** Unless required by applicable law or agreed to in writing, software
11  ** distributed under the License is distributed on an "AS IS" BASIS,
12  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  ** See the License for the specific language governing permissions and
14  ** limitations under the License.
15  */
16 /*******************************************************************************
17 	File:		bit_cnt.h
18 
19 	Content:	Huffman Bitcounter & coder structure and functions
20 
21 *******************************************************************************/
22 
23 #ifndef __BITCOUNT_H
24 #define __BITCOUNT_H
25 
26 #include "bitbuffer.h"
27 #include "basic_op.h"
28 #define INVALID_BITCOUNT (MAX_16/4)
29 
30 /*
31   code book number table
32 */
33 
34 enum codeBookNo{
35   CODE_BOOK_ZERO_NO=               0,
36   CODE_BOOK_1_NO=                  1,
37   CODE_BOOK_2_NO=                  2,
38   CODE_BOOK_3_NO=                  3,
39   CODE_BOOK_4_NO=                  4,
40   CODE_BOOK_5_NO=                  5,
41   CODE_BOOK_6_NO=                  6,
42   CODE_BOOK_7_NO=                  7,
43   CODE_BOOK_8_NO=                  8,
44   CODE_BOOK_9_NO=                  9,
45   CODE_BOOK_10_NO=                10,
46   CODE_BOOK_ESC_NO=               11,
47   CODE_BOOK_RES_NO=               12,
48   CODE_BOOK_PNS_NO=               13
49 };
50 
51 /*
52   code book index table
53 */
54 
55 enum codeBookNdx{
56   CODE_BOOK_ZERO_NDX=0,
57   CODE_BOOK_1_NDX,
58   CODE_BOOK_2_NDX,
59   CODE_BOOK_3_NDX,
60   CODE_BOOK_4_NDX,
61   CODE_BOOK_5_NDX,
62   CODE_BOOK_6_NDX,
63   CODE_BOOK_7_NDX,
64   CODE_BOOK_8_NDX,
65   CODE_BOOK_9_NDX,
66   CODE_BOOK_10_NDX,
67   CODE_BOOK_ESC_NDX,
68   CODE_BOOK_RES_NDX,
69   CODE_BOOK_PNS_NDX,
70   NUMBER_OF_CODE_BOOKS
71 };
72 
73 /*
74   code book lav table
75 */
76 
77 enum codeBookLav{
78   CODE_BOOK_ZERO_LAV=0,
79   CODE_BOOK_1_LAV=1,
80   CODE_BOOK_2_LAV=1,
81   CODE_BOOK_3_LAV=2,
82   CODE_BOOK_4_LAV=2,
83   CODE_BOOK_5_LAV=4,
84   CODE_BOOK_6_LAV=4,
85   CODE_BOOK_7_LAV=7,
86   CODE_BOOK_8_LAV=7,
87   CODE_BOOK_9_LAV=12,
88   CODE_BOOK_10_LAV=12,
89   CODE_BOOK_ESC_LAV=16,
90   CODE_BOOK_SCF_LAV=60,
91   CODE_BOOK_PNS_LAV=60
92 };
93 
94 Word16 bitCount(const Word16 *aQuantSpectrum,
95                 const Word16  noOfSpecLines,
96                 Word16        maxVal,
97                 Word16       *bitCountLut);
98 
99 Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF hBitstream);
100 
101 Word16 bitCountScalefactorDelta(Word16 delta);
102 Word16 codeScalefactorDelta(Word16 scalefactor, HANDLE_BIT_BUF hBitstream);
103 
104 
105 
106 #endif
107