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