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

📄 head.h

📁 经过DCT变换用 LZW进行数据压缩 再还原回来
💻 H
字号:
#include <stdio.h>
#include <string.h>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <cmath>
using namespace std;

#define PI  3.1415926536
#define Multiple 10000
const int xsize=1600;
const int ysize=420;
extern double *C;
#define index_test 1000*200
////////////////////////
#define INIT_BITS 9
#define MAX_BITS  14           /* Do not exceed 14 with this program */
#define HASHING_SHIFT MAX_BITS - 8

#if MAX_BITS == 14            /* Set the table size. Must be a prime    */
#define TABLE_SIZE 18041      /* number somewhat larger than 2^MAX_BITS.*/
#elif MAX_BITS == 13
#define TABLE_SIZE 9029
#else
#define TABLE_SIZE 5021
#endif

#define CLEAR_TABLE 256    /* Code to flush the string table */
#define TERMINATOR  257    /* To mark EOF Condition, instead of MAX_VALUE */
#define FIRST_CODE  258    /* First available code for code_value table */
#define CHECK_TIME  100    /* Check comp ratio every CHECK_TIME chars input */

#define MAXVAL(n) (( 1 <<( n )) -1)   /* max_value formula macro */

unsigned input_code();
void *malloc();

extern int *code_value;                      /* This is the code value array */
extern unsigned int *prefix_code;            /* This array holds the prefix codes */
extern unsigned char *append_character;      /* This array holds the appended chars */
extern unsigned char decode_stack[4000];     /* This array holds the decoded string */

extern int num_bits;               /* Starting with 9 bit codes */
extern unsigned long bytes_in,bytes_out; /* Used to monitor compression ratio */
extern int max_code;                         /* old MAX_CODE */
extern unsigned long checkpoint;  /* For compression ratio monitoring */
//////////////////////

void convert(FILE *input, FILE *output); //偶数组倒置

int bitrev(int bi,int deg);
void fbitrev(double *f,int deg);

double abs_double(double src);
void initDCTParam(int deg);
void dct_forward(double *f,int deg);
void dct_backward(double *f,int deg);
void fdct_1D_no_param(double *f,int deg);

void fidct_1D(double *F,int deg);
void fdct_1D(double *f,int deg);

void fidct_1D_no_param(double *F,int deg);
void idct_backward(double *F,int deg);
void idct_forward(double *F,int deg);
void initIDCTParam(int deg);

compress(FILE *input, FILE *output);
output_code(FILE *output, unsigned int code);
find_match(int hash_prefix, unsigned int hash_character);
expand(FILE *input, FILE *output);
unsigned input_code(FILE *input);
unsigned char *decode_string(unsigned char *buffer, unsigned int code);
void initIDCTParam(int deg);

⌨️ 快捷键说明

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