globals.hpp
资源名称:NETVIDEO.rar [点击查看]
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:9k
源码类别:
流媒体/Mpeg4/MP4
开发平台:
Visual C++
- /* $Id: globals.hpp,v 1.4 2001/04/30 20:46:24 dmackie Exp $ */
- /****************************************************************************/
- /* MPEG4 Visual Texture Coding (VTC) Mode Software */
- /* */
- /* This software was jointly developed by the following participants: */
- /* */
- /* Single-quant, multi-quant and flow control */
- /* are provided by Sarnoff Corporation */
- /* Iraj Sodagar (iraj@sarnoff.com) */
- /* Hung-Ju Lee (hjlee@sarnoff.com) */
- /* Paul Hatrack (hatrack@sarnoff.com) */
- /* Shipeng Li (shipeng@sarnoff.com) */
- /* Bing-Bing Chai (bchai@sarnoff.com) */
- /* B.S. Srinivas (bsrinivas@sarnoff.com) */
- /* */
- /* Bi-level is provided by Texas Instruments */
- /* Jie Liang (liang@ti.com) */
- /* */
- /* Shape Coding is provided by OKI Electric Industry Co., Ltd. */
- /* Zhixiong Wu (sgo@hlabs.oki.co.jp) */
- /* Yoshihiro Ueda (yueda@hlabs.oki.co.jp) */
- /* Toshifumi Kanamaru (kanamaru@hlabs.oki.co.jp) */
- /* */
- /* OKI, Sharp, Sarnoff, TI and Microsoft contributed to bitstream */
- /* exchange and bug fixing. */
- /* */
- /* */
- /* In the course of development of the MPEG-4 standard, this software */
- /* module is an implementation of a part of one or more MPEG-4 tools as */
- /* specified by the MPEG-4 standard. */
- /* */
- /* The copyright of this software belongs to ISO/IEC. ISO/IEC gives use */
- /* of the MPEG-4 standard free license to use this software module or */
- /* modifications thereof for hardware or software products claiming */
- /* conformance to the MPEG-4 standard. */
- /* */
- /* Those intending to use this software module in hardware or software */
- /* products are advised that use may infringe existing patents. The */
- /* original developers of this software module and their companies, the */
- /* subsequent editors and their companies, and ISO/IEC have no liability */
- /* and ISO/IEC have no liability for use of this software module or */
- /* modification thereof in an implementation. */
- /* */
- /* Permission is granted to MPEG members to use, copy, modify, */
- /* and distribute the software modules ( or portions thereof ) */
- /* for standardization activity within ISO/IEC JTC1/SC29/WG11. */
- /* */
- /* Copyright 1995, 1996, 1997, 1998 ISO/IEC */
- /****************************************************************************/
- /************************************************************/
- /* Sarnoff Very Low Bit Rate Still Image Coder */
- /* Copyright 1995, 1996, 1997, 1998 Sarnoff Corporation */
- /************************************************************/
- #ifndef GLOBALS_H
- #define GLOBALS_H
- #include "basic.hpp"
- #ifdef DEFINE_GLOBALS
- #define EXTERN
- #else
- #define EXTERN extern
- #endif
- #ifndef DATA_STRUCT_H
- #include "dataStruct.hpp"
- #endif /* DATA_STRUCT_H */
- #ifndef MSG_H
- #include "msg.hpp"
- #endif /* MSG_H */
- /* main data structure */
- EXTERN WVT_CODEC mzte_codec;
- /* for displaying state information */
- EXTERN Char *mapStateToText[]
- #ifdef DEFINE_GLOBALS
- = {"S_DC", "S_INIT", "S_ZTR", "S_ZTR_D", "S_IZ", "S_VZTR", "S_VAL", "S_LINIT",
- "S_LZTR", "S_LZTR_D", "S_LVZTR"}
- #endif
- ;
- /* for displaying Type information */
- EXTERN Char *mapTypeToText[]
- #ifdef DEFINE_GLOBALS
- = {"IZ", "VAL", "ZTR", "VZTR", "ZTR_D", "VLEAF", "ZLEAF",
- "UNTYPED"}
- #endif
- ;
- /* for displaying arithmetic probability model information */
- EXTERN Char *mapArithModelToText[]
- #ifdef DEFINE_GLOBALS
- = {"ACM_NONE", "ACM_SKIP", "ACM_ROOT", "ACM_VALZ", "ACM_VALNZ", "ACM_RESID",
- "ACM_DC"}
- #endif
- ;
- /* Maps the state to the arithmetic codeing probability model. */
- EXTERN Int stateToProbModel[]
- #ifdef DEFINE_GLOBALS
- = {ACM_ROOT, ACM_VALNZ, ACM_VALZ, ACM_RESID, ACM_RESID, ACM_RESID, ACM_DC}
- #endif
- ;
- /* The filename (sans suffix) where the coefficient info. during
- the encoding phase is written. */
- EXTERN Char *mapFileEnc
- #ifdef DEFINE_GLOBALS
- ="mapEnc"
- #endif
- ;
- /* The filename (sans suffix) where the coefficient info. during
- the decoding phase is written. */
- EXTERN Char *mapFileDec
- #ifdef DEFINE_GLOBALS
- ="mapDec"
- #endif
- ;
- /* Variables to keep track of quantization values. Used when calaculating
- number of residual levels */
- EXTERN Int *prevQList[3];
- EXTERN Int *prevQList2[3];
- EXTERN Int *scaleLev[3];
- /* Probability model orders for arithmetic coder */
- #define AC_MODEL_ZEROTH 0
- #define AC_MODEL_FIRST 1
- #define AC_MODEL_MIXED 99
- /* Some arithmetic functions - be careful about using expressions
- in these as they may be calculated twice.
- */
- #ifndef ABS
- #define ABS(x) (((x)<0) ? -(x) : (x))
- #endif
- #ifndef MIN
- #define MIN(a,b) (((a) < (b)) ? (a) : (b))
- #endif
- #ifndef MAX
- #define MAX(a,b) (((a) > (b)) ? (a) : (b))
- #endif
- /*----- Shorthand for accessing global information -----*/
- #define USER_Q(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.quant)
- #define ROOT_MAX(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.root_max)
- #define VALZ_MAX(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.valz_max)
- #define VALNZ_MAX(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.valnz_max)
- #define RESID_MAX(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.residual_max)
- // hjlee 0901
- #define WVTDECOMP_MAX(c,l)
- (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.wvtDecompMax[l])
- #define RESID_MAX(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.residual_max)
- #define WVTDECOMP_NUMBITPLANES(c,l)
- (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.wvtDecompNumBitPlanes[l])
- #define WVTDECOMP_RES_NUMBITPLANES(c)
- (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.wvtDecompResNumBitPlanes)
- #define ALL_ZERO(c) (mzte_codec.m_SPlayer[c].SNRlayer.snr_image.allzero)
- #define COEFF_VAL(x,y,c)
- (mzte_codec.m_SPlayer[c].coeffinfo[y][x].quantized_value)
- #define COEFF_ORGVAL(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].wvt_coeff)
- #define COEFF_RECVAL(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].rec_coeff)
- #define COEFF_QSTATE(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].qState)
- #define COEFF_STATE(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].state)
- #define COEFF_TYPE(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].type)
- #define COEFF_SKIP(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].skip)
- #define COEFF_MASK(x,y,c) (mzte_codec.m_SPlayer[c].coeffinfo[y][x].mask)
- #define snrStartCode (mzte_codec.m_bStartCodeEnable)
- #define IS_RESID(x,y,c) (COEFF_STATE(x,y,c)==S_VZTR ||
- COEFF_STATE(x,y,c)==S_VAL ||
- COEFF_STATE(x,y,c)==S_LVZTR)
- #define IS_LEAF(x,y,c) (COEFF_STATE(x,y,c)==S_LINIT ||
- COEFF_STATE(x,y,c)==S_LZTR ||
- COEFF_STATE(x,y,c)==S_LZTR_D ||
- COEFF_STATE(x,y,c)==S_LVZTR)
- #define IS_STATE_LEAF(state) ((state)==S_LINIT ||
- (state)==S_LZTR ||
- (state)==S_LZTR_D ||
- (state)==S_LVZTR)
- /* Do Y, not U or V condition. */
- #define NCOL ((mzte_codec.m_iCurSpatialLev==0
- && (mzte_codec.m_lastWvtDecompInSpaLayer[0][1]<0
- || mzte_codec.m_lastWvtDecompInSpaLayer[0][2]<0))
- ? 1 : mzte_codec.m_iColors)
- #define FIRST_SPA_LEV(numSpa, wvtDecomp, col)
- ((mzte_codec.m_lastWvtDecompInSpaLayer[0][col]<0) ? 1 : 0)
- #endif /* GLOBALS_H */