/*TITLE encoding main module */ /****keyword-flag*** "%v %f %n" */ /* "8.2 12-May-92,18:01:10 ENCODE.C" */ #include #include #include "model.h" FILE *infile; FILE *outfile; main(int argc, char *argv[]) { unsigned oldch; unsigned ch; if (argc < 3) { printf("Usage: encode original compressed.\n"); exit(1); } infile = fopen(argv[1],"rb"); outfile = fopen(argv[2],"wb"); setvbuf(infile,NULL,_IOFBF,32000); setvbuf(outfile,NULL,_IOFBF,32000); start_model(); start_outputing_bits(); start_encoding(); oldch = 0; for (;;) { ch = fgetc(infile); if (ch == (unsigned)EOF) break; encode_symbol(ch,oldch); update_model(ch,(unsigned char)oldch); oldch = ch; } encode_symbol(EOF_SYMBOL,oldch); done_encoding(); done_outputing_bits(); fclose(infile); fclose(outfile); return 0; }