📄 datastruct.hpp
字号:
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);
// computePSNR.cpp
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);
/* 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);
//begin added by SL@Sarnoff (03/03/99)
//ShapeBaseCommon.cpp
Int GetContext ( Char a, Char b, Char c, Char d, Char e, Char f, Char g, Char h );
Char GetShapeVL ( Char a, Char b, Char c, Char d, Char e, Char f,
Char g, Char h, Char i, Char j, Char k, Char l, Int t );
Void UpSampling_Still ( Int x,
Int y,
Int blkn,
Int cr,
Int blkx,
UChar **buff,
UChar **data,
UChar **shape);
Void AdaptiveUpSampling_Still ( UChar **BABdown,
UChar **BABresult,
Int sub_size );
Void DownSampling_Still ( UChar **buff,
UChar **data,
Int b_size,
Int s_size );
Void AddBorderToBAB ( Int blkx,
Int blky,
Int blksize,
Int cr_size,
Int MAX_blkx,
UChar **BABinput,
UChar **BABresult,
UChar **shape,
Int flag );
//ShapeEnhCommon.hpp
Int GetContextEnhBAB_XOR ( UChar *curr_bab_data,
Int x2,
Int y2,
Int width2,
Int pixel_type);
Int GetContextEnhBAB_FULL ( UChar *lower_bab_data,
UChar *curr_bab_data,
Int x2,
Int y2,
Int width,
Int width2 );
Void AddBorderToBABs ( UChar *LowShape,
UChar *HalfShape,
UChar *CurShape,
UChar *lower_bab,
UChar *half_bab,
UChar *curr_bab,
UChar *bordered_lower_bab,
UChar *bordered_half_bab,
UChar *bordered_curr_bab,
Int object_width,
Int object_height,
Int blkx,
Int blky,
Int mblksize,
Int max_blkx );
Int DecideScanOrder(UChar *bordered_lower_bab, Int mbsize);
//ShapeUtil.cpp
Void * mymalloc ( size_t size );
UChar ** malloc_2d_Char ( Int d1,
Int d2 );
Void free_2d_Char ( UChar **array_2d,
Int d1 );
Int ** malloc_2d_Int ( Int d1,
Int d2 );
Void free_2d_Int ( Int **array_2d,
Int d1 );
//end added by SL@Sarnoff (03/03/99)
};
class CVTCEncoder : public CVTCCommon,
public VTCIMAGEBOX,
public VTCDWT,
public VTCDWTMASK, // hjlee 0901
public VTCIDWTMASK //added by SL@Sarnoff (03/03/99)
{
public:
// Constructor and Deconstructor
~CVTCEncoder ();
CVTCEncoder ();
// input/output
Char *m_cImagePath;
Char *m_cOutBitsFile;
Char *m_cSegImagePath;
Int used_bits; // added by Sharp (99/2/16)
//added by SL@Sarnoff (03/03/99)
BSS *ShapeBitstream;
Int ShapeBitstreamLength;
//end: added by SL@Sarnoff (03/03/99)
Void init(
UInt uiVerID, // added by Sharp (99/11/18)
Char* cImagePath,
UInt uiAlphaChannel,
Char* cSegImagePath,
UInt uiAlphaTh,
UInt uiChangeCRDisable,
// FPDAM begin: deleted by Sharp
// UInt uiShapeScalable, //added by SL@Sarnoff (03/02/99)
// FPDAM end: deleted by Sharp
UInt uiSTOConstAlpha, //added by SL@Sarnoff (03/03/99)
UInt uiSTOConstAlphaValue, //added by SL@Sarnoff (03/02/99)
Char* cOutBitsFile,
UInt uiColors,
UInt uiFrmWidth,
UInt uiFrmHeight,
// begin: added by Sharp (99/2/16)
UInt uiTilingEnable,
UInt uiTilingJump,
UInt uiTileWidth,
UInt uiTileHeight,
// end: added by Sharp (99/2/16)
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 uiTargetShapeLev, //added by SL@Sarnoff (03/02/99)
UInt uiFullSizeOut, //added by SL@Sarnoff (03/02/99)
// begin: added by Sharp (99/2/16)
UInt uiTargetTileFrom,
UInt uiTargetTileTo,
// end: added by Sharp (99/2/16)
UInt uiQdcY,
UInt uiQdcUV,
UInt uiSpatialLev ,
UInt defaultSpatialScale, // hjlee 0901
Int lastWvtDecompInSpaLayer[MAXDECOMPLEV], // hjlee 0901
SNR_PARAM* Qinfo[],
//Added by Sarnoff for error resilience, 3/5/99
Int uiErrResiDisable,
Int uiPacketThresh,
Int uiSegmentThresh
//Added by Sarnoff for error resilience, 3/5/99
);
// 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();
// begin: added by Sharp (99/2/16)
Int emit_bits_local( UShort data, Int size, FILE *fp );
Void tile_header_Enc(FILTER **filter, Int tile_id);
Void get_orgval(DATA **Dst, Int TileID);
Void perform_DWT_Tile(FILTER **wvtfilter, PICTURE *SrcImg, Int TileID);
Void init_tile(Int tile_width, Int tile_height);
long current_fp();
Int current_put_bits();
// end: added by Sharp (99/2/16)
// FPDAM begin: modified by Sharp
Void cut_tile_image(PICTURE *DstImage, PICTURE *SrcImage, Int iTile, Int colors, Int tile_width, Int tile_height, FILTER *filter);
// added by Sharp (99/5/10)
// FPDAM end: modified by Sharp
protected:
// vtcenc.cpp
Void flush_buffer_file();
Void close_buffer_file(FILE *fp);
Void header_Enc_V1(FILTER **wvtfilter); // hjlee 0901
Void texture_packet_header_Enc(FILTER **wvtfilter); // added by Sharp (99/4/7)
long header_Enc(FILTER **wvtfilter); // hjlee 0901, modified by Sharp (99/2/16)
Void header_Enc_Common(FILTER **wvtfilter, Int SkipShape = 0); // added by Sharp (99/2/16) // @@@@@@
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(FILE *bitfile); // hjlee 0901, Modified by Sharp (99/2/16)
Void TextureObjectLayer_enc_V1(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); //modified by SL 03/03/99
// FPDAM begin: added by Sharp
Void get_real_image(PICTURE *MyImage, Int wvtDecompLev,
Int usemask, Int colors, Int alphaTH,
FILTER *Filter);
// FPDAM end: added by Sharp
Void get_virtual_image_V1(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);
//Added by Sarnoff for error resilience, 3/5/99
Void init_arith_encoder_model(Int color);
Void close_arith_encoder_model(Int color, Int mode);
Void check_end_of_packet(Int color);
Void force_end_of_packet();
Void check_end_of_DC_packet(Int numBP);
Void check_segment_size(Int col);
Void encodeSQBlocks_ErrResi(Int y, Int x, Int n, Int c);
//End added by Sarnoff for error resilience, 3/5/99
// 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);
Void emit_bits_checksc(UInt code, Int size);
Void emit_bits_checksc_init();
Void write_to_bitstream(UChar *bitbuffer,Int total_bits);
//Added by Sarnoff for error resilience, 3/5/99
Void write_packet_header_to_file();
//End Added by Sarnoff for error resilience, 3/5/99
/* 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);
// begin: added by SL@Sarnoff (03/03/99)
// ShapeEncoding.cpp
Int ShapeEnCoding(UChar *inmask, Int width, Int height,
Int levels,
Int constAlpha,
UChar constAlphaValue,
Int change_CR_disable,
Int shapeScalable,
Int startCodeEnable,
FILTER **filter);
Int EncodeShapeHeader( Int constAlpha, UChar constAlphaValue, Int change_CR_disable /*, Int shapeScalable*/ ); // FPDAM : deleted by Sharp
Int EncodeShapeBaseLayer(UChar *outmask,
Int change_CR_disable,
Int coded_width, Int coded_height,
Int levels);
Int EncodeShapeEnhancedLayer(UChar *outmask,
Int coded_width, Int coded_height,
Int k, FILTER * filter, Int startCodeEnable);
Int QuantizeShape(UChar *inmask, Int object_width, Int object_height, Int alphaTH);
Int ByteAlignmentEnc_Still();
Void PutBitstoStream_Still(Int bits,UInt code);
/* ShapeBaseEncoding.c */
Int ShapeBaseEnCoding (UChar *InShape,
Int object_width, Int object_height,
Int alphaTH, Int change_CR_disable
);
Void MergeShapeBaseBitstream();
Int
ShapeBaseContentEncode(Int i,Int j,Int bsize,UChar **BAB,SBI *infor);
Int
CheckBABstatus(Int blkn,UChar **BAB1,UChar **BAB2,Int alphaTH);
Int
ShapeBaseHeaderEncode(Int i,Int j,Int blkx,SBI *infor);
Int
decide_CR(Int x,Int y,Int blkn,Int blkx, UChar **BAB_org,UChar **BAB_dwn,Int change_CR_disable,Int alphaTH,UChar **shape);
/* ShapeEnhEncode.cpp */
Int ShapeEnhEnCoding(UChar *LowShape, UChar *HalfShape, UChar *CurShape,
Int object_width, Int object_height, FILTER *filter);
// Int DecideBABtype(UChar *bordered_lower_bab, UChar *bordered_half_bab,
// UChar *bordered_curr_bab,
// Int mbsize);
Int DecideBABtype(UChar *bordered_lower_bab, UChar *bordered_half_bab,
UChar *bordered_curr_bab,
Int mbsize,
Int scan_order // SAIT_PDAM : added by Samsung AIT
);
/*Int ShapeEnhHeaderEncode(UChar *bab_mode,
Int blky,
Int blkx,
FILTER *filter,
BSS *bitstream,
ArCoder *ar_coder);
*/
// Int ShapeEnhContentEncode(UChar *bordered_lower_bab,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -