| /* |
| ** Copyright 2003-2010, VisualOn, Inc. |
| ** |
| ** Licensed under the Apache License, Version 2.0 (the "License"); |
| ** you may not use this file except in compliance with the License. |
| ** You may obtain a copy of the License at |
| ** |
| ** http://www.apache.org/licenses/LICENSE-2.0 |
| ** |
| ** Unless required by applicable law or agreed to in writing, software |
| ** distributed under the License is distributed on an "AS IS" BASIS, |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ** See the License for the specific language governing permissions and |
| ** limitations under the License. |
| */ |
| /******************************************************************************* |
| File: bit_cnt.h |
| |
| Content: Huffman Bitcounter & coder structure and functions |
| |
| *******************************************************************************/ |
| |
| #ifndef __BITCOUNT_H |
| #define __BITCOUNT_H |
| |
| #include "bitbuffer.h" |
| #include "basic_op.h" |
| #define INVALID_BITCOUNT (MAX_16/4) |
| |
| /* |
| code book number table |
| */ |
| |
| enum codeBookNo{ |
| CODE_BOOK_ZERO_NO= 0, |
| CODE_BOOK_1_NO= 1, |
| CODE_BOOK_2_NO= 2, |
| CODE_BOOK_3_NO= 3, |
| CODE_BOOK_4_NO= 4, |
| CODE_BOOK_5_NO= 5, |
| CODE_BOOK_6_NO= 6, |
| CODE_BOOK_7_NO= 7, |
| CODE_BOOK_8_NO= 8, |
| CODE_BOOK_9_NO= 9, |
| CODE_BOOK_10_NO= 10, |
| CODE_BOOK_ESC_NO= 11, |
| CODE_BOOK_RES_NO= 12, |
| CODE_BOOK_PNS_NO= 13 |
| }; |
| |
| /* |
| code book index table |
| */ |
| |
| enum codeBookNdx{ |
| CODE_BOOK_ZERO_NDX=0, |
| CODE_BOOK_1_NDX, |
| CODE_BOOK_2_NDX, |
| CODE_BOOK_3_NDX, |
| CODE_BOOK_4_NDX, |
| CODE_BOOK_5_NDX, |
| CODE_BOOK_6_NDX, |
| CODE_BOOK_7_NDX, |
| CODE_BOOK_8_NDX, |
| CODE_BOOK_9_NDX, |
| CODE_BOOK_10_NDX, |
| CODE_BOOK_ESC_NDX, |
| CODE_BOOK_RES_NDX, |
| CODE_BOOK_PNS_NDX, |
| NUMBER_OF_CODE_BOOKS |
| }; |
| |
| /* |
| code book lav table |
| */ |
| |
| enum codeBookLav{ |
| CODE_BOOK_ZERO_LAV=0, |
| CODE_BOOK_1_LAV=1, |
| CODE_BOOK_2_LAV=1, |
| CODE_BOOK_3_LAV=2, |
| CODE_BOOK_4_LAV=2, |
| CODE_BOOK_5_LAV=4, |
| CODE_BOOK_6_LAV=4, |
| CODE_BOOK_7_LAV=7, |
| CODE_BOOK_8_LAV=7, |
| CODE_BOOK_9_LAV=12, |
| CODE_BOOK_10_LAV=12, |
| CODE_BOOK_ESC_LAV=16, |
| CODE_BOOK_SCF_LAV=60, |
| CODE_BOOK_PNS_LAV=60 |
| }; |
| |
| Word16 bitCount(const Word16 *aQuantSpectrum, |
| const Word16 noOfSpecLines, |
| Word16 maxVal, |
| Word16 *bitCountLut); |
| |
| Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF hBitstream); |
| |
| Word16 bitCountScalefactorDelta(Word16 delta); |
| Word16 codeScalefactorDelta(Word16 scalefactor, HANDLE_BIT_BUF hBitstream); |
| |
| |
| |
| #endif |