123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /****************************************************************************
- *
- * Module Title : boolhuff.H
- *
- * Description : Video CODEC
- *
- * AUTHOR : James Bankoski
- *
- *****************************************************************************
- * Revision History
- *
- * 1.00 JBB 01JUN01 Configuration baseline
- *
- *****************************************************************************
- */
- /****************************************************************************
- * Header Files
- *****************************************************************************
- */
- #ifndef boolhuff_h
- #define boolhuff_h
- #ifdef NOTNORMALIZED
- typedef struct _boolcoder
- {
- unsigned char *buffer;
- unsigned int pos;
- union
- {
- unsigned int value;
- unsigned char v[4];
- };
- unsigned int range;
- } BOOL_CODER;
- #else
- typedef struct
- {
- unsigned int bits;
- unsigned int bitpos;
- unsigned int *source;
- unsigned int pos;
- } bitpump;
- typedef struct
- {
- unsigned int lowvalue;
- unsigned int range;
- unsigned int value;
- int count;
- unsigned int pos;
- unsigned char *buffer;
- // Variables used to track bit costs without outputing to the bitstream
- unsigned int MeasureCost;
- unsigned long BitCounter;
- } BOOL_CODER;
- #endif
- extern void StartDecode(BOOL_CODER *bc, unsigned char *buffer);
- extern int DecodeBool(BOOL_CODER *bc, int context);
- extern int DecodeBool128(BOOL_CODER *bc);
- extern void StopDecode(BOOL_CODER *bc);
- extern void StartEncode(BOOL_CODER *bc, unsigned char *buffer);
- extern void EncodeBool(BOOL_CODER *bc, int x, int context);
- extern void EncodeBool2(BOOL_CODER *bc, int x, int context);
- extern void StopEncode(BOOL_CODER *bc);
- extern double shannonCost0[256];
- extern double shannonCost1[256];
- extern unsigned int shannon64Cost0[256];
- extern unsigned int shannon64Cost1[256];
- #endif
|