📄 datastruct.hpp
字号:
// ztscanUtil.cpp
Void clear_ZTR_D(COEFFINFO **coeffinfo, Int width,
Int height);
Void probModelInitSQ(Int col); // hjlee 0901
Void probModelFreeSQ(Int col); // hjlee 0901
Void setProbModelsSQ(Int col); // hjlee 0901
Void probModelInitMQ(Int col); // hjlee 0901
Void probModelFreeMQ(Int col); // hjlee 0901
Void setProbModelsMQ(Int col); // hjlee 0901
Void init_acm_maxf_enc(); // hjlee 0901
Void init_acm_maxf_dec(); // hjlee 0901
//ac.cpp
Void mzte_update_model(ac_model *acm,Int sym); // hjlee 0901
Void mzte_ac_model_init(ac_model *acm,Int nsym,
UShort *ifreq,Int adapt,Int inc);
Void mzte_ac_model_done(ac_model *acm);
/* other */
char *check_startcode (unsigned char *stream, long len);
void one_bit_to_buffer (char bit, char *outbuffer);
void undo_startcode_check (unsigned char *data, long len);
/* for bilevel mode: added by Jie Liang */
/* from PEZW_utils.c */
PEZW_SPATIAL_LAYER *Init_PEZWdata (int color, int levels, int w, int h);
void restore_PEZWdata (PEZW_SPATIAL_LAYER **SPlayer);
int lshift_by_NBit (unsigned char *data, int len, int N);
//computePSNR.cpp, added by U. Benzler 981117
Void ComputePSNR(UChar *orgY, UChar *recY,
UChar *maskY,
UChar *orgU, UChar *recU,
UChar *maskU,
UChar *orgV, UChar *recV,
UChar *maskV,
Int width, Int height, Int stat);
};
Class CVTCEncoder : public CVTCCommon,
public VTCIMAGEBOX,
public VTCDWT,
public VTCDWTMASK // hjlee 0901
{
public:
// Constructor and Deconstructor
~CVTCEncoder ();
CVTCEncoder ();
// input/output
Char *m_cImagePath;
Char *m_cOutBitsFile;
Char *m_cSegImagePath;
Void init(
Char* cImagePath,
UInt uiAlphaChannel,
Char* cSegImagePath,
UInt uiAlphaTh,
UInt uiChangeCRDisable,
Char* cOutBitsFile,
UInt uiColors,
UInt uiFrmWidth,
UInt uiFrmHeight,
UInt uiWvtType,
UInt uiWvtDownload, // hjlee 0901
UInt uiWvtDecmpLev,
UInt uiWvtUniform, // hjlee 0901
Int* iWvtFilters, // hjlee 0901
UInt uiQuantType,
UInt uiScanDirection,
Bool bStartCodeEnable,
UInt uiTargetSpatialLev,
UInt uiTargetSNRLev,
UInt uiQdcY,
UInt uiQdcUV,
UInt uiSpatialLev ,
UInt defaultSpatialScale, // hjlee 0901
Int *lastWvtDecompInSpaLayer, // hjlee 0901
SNR_PARAM** Qinfo);
// attribute
Int GetcurSpatialLev() {
return mzte_codec.m_iCurSpatialLev; }
Int GetDCHeight() {
return mzte_codec.m_iHeight>>mzte_codec.m_iWvtDecmpLev; }
Int GetDCWidth() {
return mzte_codec.m_iWidth>>mzte_codec.m_iWvtDecmpLev; }
// operation
Void encode();
protected:
// vtcenc.cpp
Void flush_buffer_file();
Void close_buffer_file(FILE *fp);
Void header_Enc(FILTER **wvtfilter); // hjlee 0901
Void Put_Quant_and_Max(SNR_IMAGE *snr_image, Int spaLayer, Int color); // hjlee0901
Void Put_Quant_and_Max_SQBB(SNR_IMAGE *snr_image, Int spaLayer,Int color); // hjlee0901
Void textureLayerDC_Enc();
Void TextureSpatialLayerSQNSC_enc(Int spa_lev);
Void TextureSpatialLayerSQ_enc(Int spa_lev, FILE *bitfile);
Void textureLayerSQ_Enc(FILE *bitfile);
Void TextureObjectLayer_enc(FILTER **wvtfilter); // hjlee 0901
Void textureLayerMQ_Enc(FILE *bitfile);
Void TextureSNRLayerMQ_encode(Int spa_lev, Int snr_lev, FILE *fp);
// read_image.cpp
Void read_image(Char *img_path,
Int img_width,
Int img_height,
Int img_colors,
Int img_bit_depth,
PICTURE *img);
Int read_segimage(Char *seg_path, Int seg_width, Int seg_height,
Int img_colors,
PICTURE *MyImage);
Void get_virtual_image(PICTURE *MyImage, Int wvtDecompLev,
Int usemask, Int colors, Int alphaTH,
Int change_CR_disable, FILTER *Filter);
// wavelet.cpp
Void perform_DWT(FILTER **wvtfilter); // hjlee 0901
// ac.cpp
Void mzte_output_bit(ac_encoder *ace,Int bit);
Void mzte_bit_plus_follow(ac_encoder *ace,Int bit);
Void mzte_ac_encoder_init(ac_encoder *ace);
Int mzte_ac_encoder_done(ac_encoder *ace);
Int mzte_ac_encode_symbol(ac_encoder *ace, ac_model *acm, Int sym); // hjlee 0901
// ztscan_enc.cpp
SInt DC_pred_pix(Int i, Int j);
Void DC_predict(Int color);
Void wavelet_dc_encode(Int c);
Void cacll_encode();
Void wavelet_higher_bands_encode_SQ_band(Int col);
Void cachb_encode_SQ_band(SNR_IMAGE *snr_image);
// Void encode_pixel_SQ_band(Int h,Int w);
Void wavelet_higher_bands_encode_SQ_tree();
Void cachb_encode_SQ_tree(); // hjlee 0928
// Void encode_pixel_SQ_tree(Int h,Int w); // hjlee 0928
Void encode_pixel_SQ(Int h,Int w); // 1124
Void mag_sign_encode_SQ(Int h,Int w);
Void wavelet_higher_bands_encode_MQ(Int scanDirection);
Void mark_ZTR_D(Int h,Int w);
Void cachb_encode_MQ_band();
// Void encode_pixel_MQ_band(Int h,Int w);
Void cachb_encode_MQ_tree(); // hjlee 0928
// Void encode_pixel_MQ_tree(Int h,Int w); // hjlee 0928
Void encode_pixel_MQ(Int h,Int w); // 1124
Void mag_sign_encode_MQ(Int h,Int w);
Void bitplane_encode(Int val,Int l,Int max_bplane); // hjlee 0901
Void bitplane_res_encode(Int val,Int l,Int max_bplane); // hjlee 0901
// Void encodeBlocks(Int y, Int x, Int n); // 1124
Void encodeSQBlocks(Int y, Int x, Int n);
Void encodeMQBlocks(Int y, Int x, Int n);
// encQM.cpp
Void quantizeCoeff(Int x, Int y, Int c);
Int quantizeAndMarkCoeffs(Int x, Int y, Int c);
Int encQuantizeDC(Int c);
Int encQuantizeAndMarkAC(Int c);
Int encUpdateStateAC(Int c);
// quant.cpp
Int quantSingleStage(Int Q, quantState *state,
Int *statePrevQ,Int updatePrevQ);
// bitpack.cpp
Int get_total_bit_rate();
Int get_total_bit_rate_dec();
Int get_total_bit_rate_junk();
Void flush_bytes();
Void flush_bits1 ();
Void flush_bits ();
Void flush_bits_zeros ();
Int put_param(Int value, Int nbits);
UInt LookBitsFromStream (Int n);
Void emit_bits_checksc(UInt code, Int size);
Void emit_bits_checksc_init();
Void write_to_bitstream(UChar *bitbuffer,Int total_bits);
/* for bilevel mode: added by Jie Liang */
/* from PEZW_textureBQ.c */
void textureLayerBQ_Enc(FILE *bitfile);
/* from PEZW_utils.c */
void PEZW_bitpack (PEZW_SPATIAL_LAYER **SPlayer);
void PEZW_freeEnc (PEZW_SPATIAL_LAYER **SPlayer);
};
Class CVTCDecoder : public CVTCCommon,
public VTCIMAGEBOX,
public VTCIDWT,
public VTCDWTMASK
{
public:
// Constructor and Deconstructor
~CVTCDecoder ();
CVTCDecoder ();
Char *m_cInBitsFile;
Char *m_cRecImageFile;
// vtcdec.cpp
Void header_Dec(FILTER ***wvtfilter, PICTURE **Image); // hjlee 0901
Void Get_Quant_and_Max(SNR_IMAGE *snr_image, Int spaLayer,
Int color); // hjlee 0901
Void Get_Quant_and_Max_SQBB(SNR_IMAGE *snr_image, Int spaLayer,
Int color); // hjlee 0901
Void textureLayerDC_Dec();
Void TextureSpatialLayerSQNSC_dec(Int spa_lev);
Void TextureSpatialLayerSQ_dec(Int spa_lev, FILE *bitfile);
Void textureLayerSQ_Dec(FILE *bitfile);
Void TextureSNRLayerMQ_decode(Int spa_lev, Int snr_lev,FILE *fp);
// hjlee 0901
Void textureLayerMQ_Dec(FILE *bitfile,
Int target_spatial_levels,
Int target_snr_levels,
FILTER **wvtfilter); // hjlee 0901
// hjlee 0901
Void TextureObjectLayer_dec(Int target_spatial_levels,
Int target_snr_levels, FILTER ***pwvtfilter); // hjlee 0901
Void decode(Char *InBitsFile, Char *RecImageFile,
Int TargetSpaLev, Int TargetSNRLev);
// seg.cpp
// hjlee 0901
Void get_virtual_mask(PICTURE *MyImage, Int wvtDecompLev,
Int w, Int h, Int usemask, Int colors, FILTER **filters) ;
// decQM.c
Void iQuantizeCoeff(Int x, Int y, Int c);
Void iQuantizeCoeffs(Int x, Int y, Int c);
Int decIQuantizeDC(Int c);
Int decIQuantizeAC(Int c);
Int decIQuantizeAC_spa(Int spa_lev,Int c);
Int decUpdateStateAC(Int c);
Int markCoeffs(Int x, Int y, Int c);
Int decMarkAC(Int c);
Int decUpdateStateAC_spa(Int c); // hjlee 0901
// ac.cpp
Int mzte_input_bit(ac_decoder *acd);
Void mzte_ac_decoder_done(ac_decoder *acd);
Void mzte_ac_decoder_init(ac_decoder *acd);
Int mzte_ac_decode_symbol(ac_decoder *acd,ac_model *acm); // hjlee 0901
//ztscan_dec.cpp
Short iDC_pred_pix(Int i, Int j);
Void iDC_predict(Int color);
Void wavelet_dc_decode(Int c);
Void callc_decode();
Void wavelet_higher_bands_decode_SQ_band(Int col);
Void cachb_decode_SQ_band(SNR_IMAGE *snr_image);
// Void decode_pixel_SQ_band(Int h,Int w); // 1124
Void wavelet_higher_bands_decode_SQ_tree();
Void cachb_decode_SQ_tree(); // hjlee 0901
// Void decode_pixel_SQ_tree(Int h0,Int w0); // hjlee 0901
Void decode_pixel_SQ(Int h,Int w); // 1124
Void mag_sign_decode_SQ(Int h,Int w);
Void wavelet_higher_bands_decode_MQ(Int scanDirection);
Void cachb_decode_MQ_band();
// Void decode_pixel_MQ_band(Int h,Int w);
Void decode_pixel_MQ(Int h,Int w);
Void cachb_decode_MQ_tree();
// Void decode_pixel_MQ_tree(Int h,Int w);
Void mark_ZTR_D(Int h,Int w);
Void mag_sign_decode_MQ(Int h,Int w);
Int bitplane_decode(Int l,Int max_bplane); // hjlee 0901
Int bitplane_res_decode(Int l,Int max_bplane); // hjlee 0901
// Void decodeBlocks(Int y, Int x, Int n); //1124
Void decodeSQBlocks(Int y, Int x, Int n);
Void decodeMQBlocks(Int y, Int x, Int n);
// bitpack.cpp
Int align_byte ();
Int get_param(Int nbits);
Void restore_arithmetic_offset(Int bits_to_go);
// wavelet.cpp
Void perform_IDWT(FILTER **wvtfilter,
Char *recImgFile); // hjlee 0901
// write_image.cpp
Void write_image(Char *recImgFile, Int colors,
Int width, Int height,
Int real_width, Int real_height,
Int rorigin_x, Int rorigin_y,
UChar *outimage[3], UChar *outmask[3],
Int usemask, Int fullsize, Int MinLevel);
/* for bilevel mode: added by Jie Liang */
/* from PEZW_textureBQ.c */
void textureLayerBQ_Dec(FILE *bitfile);
void PEZW_decode_ratecontrol (PEZW_SPATIAL_LAYER **SPlayer, int bytes_decoded);
/* from PEZW_utils.c */
void PEZW_bit_unpack (PEZW_SPATIAL_LAYER **SPlayer);
void PEZW_freeDec (PEZW_SPATIAL_LAYER **SPlayer);
/* bitpack.cpp */
Int get_allbits (Char *buffer);
Int Is_startcode (long startcode);
int align_byte1 ();
Int get_X_bits_checksc(Int nbits);
Void get_X_bits_checksc_init();
int get_allbits_checksc (unsigned char *buffer);
Int align_byte_checksc ();
int decoded_bytes_from_bitstream ();
};
#endif /* __VTCENC_HPP_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -