⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datastruct.hpp

📁 《Visual C++小波变换技术与工程实践》靳济芳编著的光盘程序。
💻 HPP
📖 第 1 页 / 共 3 页
字号:
//				UChar *bordered_half_bab,
//				UChar *bordered_curr_bab,
//				Int bab_type,
//				Int mbsize,
//					FILTER *filter,
//				BSS *bitstream,
//				ArCoder *ar_coder);

	Int ShapeEnhContentEncode(UChar *bordered_lower_bab,
				UChar *bordered_half_bab,
				UChar *bordered_curr_bab,
				Int bab_type,
				Int scan_order, // SAIT_PDAM: added by Samsung AIT 
				Int mbsize,
					FILTER *filter,
				BSS *bitstream,
				ArCoder *ar_coder);

	
//	Void ExclusiveORencoding (UChar *bordered_lower_bab,
//				UChar *bordered_half_bab,
//				UChar *bordered_curr_bab,
//				Int mbsize,
//				BSS *bitstream,
//				ArCoder *ar_coder);
	Void ExclusiveORencoding (UChar *bordered_lower_bab,
				UChar *bordered_half_bab,
				UChar *bordered_curr_bab,
				Int mbsize,
				Int scan_order, // SAIT_PDAM: added by Samsung AIT
				BSS *bitstream,
				ArCoder *ar_coder);

	Void FullEncoding (UChar *bordered_lower_bab,
			UChar *bordered_half_bab,
			UChar *bordered_curr_bab,
			Int mbsize,
		   FILTER *filter,
			BSS *bitstream,
			ArCoder *ar_coder);

	Void MergeEnhShapeBitstream();

	//BinArCodec.cpp
	Void  	StartArCoder_Still (	ArCoder *coder);
	Void  	StopArCoder_Still (	ArCoder *coder,
			BSS *bitstream);
	Void  	ArCodeSymbol_Still (	ArCoder *coder,
			BSS *bitstream,
			UChar bit,
			UInt c0);
	Void  	EncRenormalize (	ArCoder *coder,
			BSS *bitstream);
	Void  	BitByItself_Still (	Int bit,
			ArCoder *coder,
			BSS *bitstream);
	Void  	BitPlusFollow_Still (	Int bit,
			ArCoder *coder,
			BSS *bitstream);
	Void  	BitstreamPutBit_Still (	Int bit,
			BSS *bitstream);
	Void  	InitBitstream (	Int flag,
			BSS *bitstream);
	Int  	ByteAlignmentEnc (void);
	Void  	PutBitstoStream (	Int bits,
			UInt code,
			BSS *bitstream);
	Void  	PutBitstoStreamMerge (	Int bits,
			UInt code);
	Void  	BitstreamFlushBitsCopy (	Int i,
			BSS *bitstream);
	Int  	BitstreamLookBitCopy (	Int pos,
			BSS *bitstream);
	UInt  	LookBitsFromStreamCopy (	Int bits,
			BSS *bitstream);
	UInt  	GetBitsFromStreamCopy (	Int bits,
			BSS *bitstream	);
	Void  	BitStreamCopy (	Int cnt,
			BSS *bitstream1,
			BSS *bitstream2	);
	Void  	BitStreamMerge (	Int cnt,
			BSS *bitstream	);
	//end: added by SL@Sarnoff (03/03/99)
};

class CVTCDecoder : public CVTCCommon, 
					public VTCIMAGEBOX,
					public VTCIDWT,
					public VTCDWTMASK,
					public VTCIDWTMASK //added by SL@Sarnoff (03/03/99)
{
public:
	// Constructor and Deconstructor
	~CVTCDecoder ();
	CVTCDecoder ();

	Char *m_cInBitsFile;
	Char *m_cRecImageFile;
	
	// vtcdec.cpp
	Void texture_packet_header_Dec(FILTER ***wvtfilter, PICTURE **Image, Int *header_size); // Added by Sharp (99/4/7)
	Void header_Dec_V1(FILTER ***wvtfilter, PICTURE **Image); // hjlee 0901
	Void header_Dec(FILTER ***wvtfilter, PICTURE **Image, Int *header_size); // hjlee 0901 , Modified by Sharp (99/2/16)
	Void header_Dec_Common(FILTER ***wvtfilter, PICTURE **Image, Int *header_size, Int SkipShape=0); // Added by Sharp (99/2/16) // @@@@@@@
	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,
           Int iTile, Int count,FILE *bitfile, Int **table, PICTURE *Image); // hjlee 0901 // modified by Sharp (99/2/16)
	Void TextureObjectLayer_dec_V1(Int  target_spatial_levels,
				   Int  target_snr_levels, FILTER ***pwvtfilter); // hjlee 0901


	Void decode(Char *InBitsFile, Char *RecImageFile,
				Int DisplayWidth, Int DisplayHeight,
				Int TargetSpaLev, Int TargetSNRLev, 
				Int TargetShapeLev, Int FullSizeOut, // added by SL@Sarnoff (03/02/99)
				Int TargetTileFrom, Int TargetTileto);  // modified by Sharp (99/2/16)

	// seg.cpp
// hjlee 0901
	Void get_virtual_mask_V1(PICTURE *MyImage,  Int wvtDecompLev,
		      Int w, Int h, Int usemask, Int colors, FILTER **filters) ;
	Void get_virtual_mask(PICTURE *MyImage,  Int wvtDecompLev,
		      Int w, Int h, Int usemask, Int colors, 
			  Int *target_shape_layer, Int StartCodeEnable,
			  FILTER **filters) ;
// begin: added by Sharp (99/5/10)
// FPDAM begin: modified by Sharp
//	Void perform_IDWT_Tile(FILTER **wvtfilter, UChar **frm, Int iTile, Int TileW);
	Void perform_IDWT_Tile(FILTER **wvtfilter, UChar **frm, UChar **frm_mask, Int iTile, Int TileW);
// FPDAM begin: modified by Sharp

// FPDAM begin
//	Void get_virtual_tile_mask(Int iTile, Int TileX, Int TileY, PICTURE *Image);
	Void get_virtual_tile_mask(PICTURE *MyImage,  Int wvtDecompLev,
				Int object_width, Int object_height, 
				Int tile_width, Int tile_height,
				Int iTile, Int TileX, Int TileY,
				Int usemask, Int tile_type, Int colors, 
			  Int *target_shape_layer, 
				Int StartCodeEnable,
			  FILTER **filters);
// FPDAM end
// end: added by Sharp (99/5/10)
	 

	Void get_virtual_mask_TILE(PICTURE *MyImage,  Int wvtDecompLev,
		      Int w, Int h, Int usemask, Int colors, 
			  Int *target_shape_layer, Int StartCodeEnable,
			  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

//Added by Sarnoff for error resilience, 3/5/99
	// ztscanUtil.cpp
	Void get_TU_location(Int LTU);
	Void set_prev_good_TD_segment(Int TU, Int h, Int w);
	Void set_prev_good_BB_segment(Int TU, Int h, Int w);
//End Added by Sarnoff for error resilience, 3/5/99

	//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);
//Added by Sarnoff for error resilience, 3/5/99
	Void mark_not_decodable_TUs(Int start_TU, Int end_TU);
	Void init_arith_decoder_model(Int col);
	Void close_arith_decoder_model(Int color);
	Void check_end_of_packet();
	Void check_end_of_DC_packet(Int numBP);
	Int found_segment_error(Int col);
	Void decodeSQBlocks_ErrResi(Int y, Int x, Int n, Int c);
//End added by Sarnoff for error resilience, 3/5/99

	// bitpack.cpp
	Int align_byte ();
	Int get_param(Int nbits);
	Void restore_arithmetic_offset(Int bits_to_go);
	UInt LookBitFromStream (Int n); //added by SL@Sarnoff (03/03/99)
//Added by Sarnoff for error resilience, 3/5/99
	Void error_bits_stat(Int error_mode);
	Int get_err_resilience_header();
	Void rewind_bits(Int nbits);
	Int end_of_stream();
//End Added by Sarnoff for error resilience, 3/5/99

	// 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);
// begin: added by Sharp (99/5/10)
	Void write_image_tile(Char *recImgFile, UChar **frm);

// FPDAM begin: modified by Sharp
	Void CVTCDecoder::write_image_to_buffer(UChar **DstImage, 
		UChar *DstMask[3], // FPDAM added by Sharp
		Int DstWidth, Int DstHeight, Int iTile, Int TileW,
		/* 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);
//	Void write_image_to_buffer(UChar **DstImage, Int DstWidth, Int DstHeight, Int iTile, Int TileW,
// 		/* 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);
// FPDAM end: modified by Sharp
// end: added by Sharp (99/5/10)


	/* 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 ();
// begin: added by Sharp (99/2/16)
	Void search_tile(int tile_id);
// FPDAM begin: modified by Sharp
//  Void tile_header_Dec();
	Void tile_header_Dec(FILTER **wvtfilter, Int iTile, Int TileX, Int count, Int TileY, PICTURE **Image);
// FPDAM end: modified by Sharp
  Void tile_table_Dec(Int *table);
  Void set_decode_tile_id_and_position(Int *iNumOfTile, Int **jump_table, Int **decode_tile_id, Int *table, Int header_size);
  Void copy_coeffs(Int iTile, DATA **frm);
//  Void perform_IDWT_Tile(FILTER **wvtfilter, Char *recImgFile, DATA **frm); // deleted by Sharp (99/5/10)
  Void relative_jump(long size);
  Void clear_coeffinfo();
// end: added by Sharp (99/2/16)
	//begin: added by SL@Sarnoff (03/03/99)
	//ShapeDecoding.cpp
	Int ShapeDeCoding(UChar *mask, Int width, Int height, 
		  Int levels,  Int *targetLevel, 
		  Int *constAlpha,
		  UChar *constAlphaValue, 
		  Int startCodeEnable,
		  Int fullSizeOut,
		  FILTER **filter);

	Int DecodeShapeHeader(Int *constAlpha, UChar *constAlphaValue, 
		      Int *change_CR_disable /*, Int *shapeScalable*/ );
	Int DecodeShapeBaseLayer( UChar *outmask,  Int change_CR_disable,
			 Int coded_width, Int coded_height, Int levels);
	Int DecodeShapeEnhancedLayer( UChar *outmask, 
			      Int coded_width, Int coded_height, 
			      Int k, FILTER *filter, Int startCodeEnable);
	Int ByteAlignmentDec_Still();
	UInt GetBitsFromStream_Still(Int bits);
	Int BitstreamLookBit_Still(Int pos);
	UInt LookBitsFromStream_Still(Int bits);

	//ShapeBaseDecode.cpp
	Int  	ShapeBaseDeCoding (UChar *OutShape,
			    Int object_width, Int object_height,
			    Int change_CR_disable
			    );
	Int
	ShapeBaseContentDecode(Int i,Int j,Int bsize,UChar **BAB,SBI *infor);
	Int
	ShapeBaseHeaderDecode(Int i,Int j,Int blkx,SBI *infor);
	//ShapeEnhDecode.cpp
	Int ShapeEnhDeCoding(UChar *LowShape, UChar *HalfShape, UChar *CurShape,
			Int object_width,
			Int object_height,
			FILTER *filter);

	/*Int ShapeEnhHeaderDecode(UChar *bab_mode,
				Int blky,
				Int blkx,
			 FILTER *filter,
			 ArDecoder *ar_decoder);
     */
	Int ShapeEnhContentDecode(UChar *bordered_lower_bab,
			  UChar *bordered_half_bab, 	
			  UChar *bordered_curr_bab,
			  Int bab_type,
			  Int mbsize,
			  FILTER *filter,
			  ArDecoder *ar_decoder);

//	Void ExclusiveORdecoding (UChar *bordered_lower_bab,UChar *bordered_half_bab,
//			  UChar *bordered_curr_bab,
//			  Int mbsize,
//			  ArDecoder *ar_decoder);

	Void ExclusiveORdecoding (UChar *bordered_lower_bab,UChar *bordered_half_bab,
			  UChar *bordered_curr_bab,
			  Int mbsize,
			  Int scan_order, // SAIT_PDAM: added by Samsung AIT
			  ArDecoder *ar_decoder);

	Void FullDecoding (UChar *bordered_lower_bab, UChar *bordered_half_bab,
		   UChar *bordered_curr_bab,
		   Int mbsize,
		   FILTER *filter,
		   ArDecoder *ar_decoder);
	Void  	StartArDecoder_Still (	ArDecoder *decoder	);
	Void  	StopArDecoder_Still (	ArDecoder *decoder	);
	UChar  	ArDecodeSymbol_Still (	ArDecoder *decoder,
			UInt c0	);
	Void  	AddNextInputBit_Still (	ArDecoder *decoder);
	Void  	DecRenormalize (	ArDecoder *decoder	);
	Int  	ByteAlignmentDec (void);
	Void  	BitstreamFlushBits_Still (	Int i	);
	Int  	BitstreamLookBit (	Int pos	);
	UInt  	LookBitsFromStream (	Int bits	);
	UInt  	GetBitsFromStream (	Int bits	);
	//end: added by SL@Sarnoff (03/03/99)
};

#endif __VTCENC_HPP_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -