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

📄 datacompression.h

📁 自适应算术编码的实现
💻 H
字号:
//  DataCompression.h : Define virtual class for Coder and Decoder 
// 
//  Author:    Shen Hongwei
//  Date:      Sep.28, 2005
//  Location:  Beijing, China
// 

#ifndef _DataCommpression_H_
#define _DataCommpression_H_

#include "stdafx.h"

#include "BitIO.h"

virtual class Coder
{
public:
	inline Coder() {};
	inline ~Coder() {};
	virtual inline void Init(BitIO * in, BitIO * out) { this->bit_reader = in; this->bit_writer = out; } ; // Start new mission
	virtual inline void Init(BitIO * in, BitIO * out, unsigned long i_leng) { this->bit_reader = in; this->bit_writer = out; this->in_leng = i_leng;} ; // Start new mission
	virtual int  Run(void) = 0;
	virtual bool GenNextCode() = 0;  // if false, the process ends.
	// virtual GenCode(const char & in, int li, char & out, int out_buf_size, int & lo);  // tranform data,   
	// virtual GenCode(const char & in, int li, char ** out, int & lo);  // tranform data,   
	inline unsigned long GetWriterBitsNum(void) { return(bit_writer->GetBitsNum());}; 
	virtual void SetDebugMode(int mode) = 0;
protected:
	unsigned long in_leng;
	BitIO * bit_reader;
	BitIO * bit_writer;
};

class CompressionHeader
{
public:
	CompressionHeader(void);
	~CompressionHeader(void);
	void Init(fstream * p_fs);
	bool ReadHeader(void);
	bool WriteHeader(void);
	unsigned long length;      // the length of data by bits
	unsigned long origin_len;  // the length of data before compressed, by bits.
protected:
	fstream * fs;
};


#endif

⌨️ 快捷键说明

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