7 int main(int argc, char **argv)
9 char *inFile, *outFile, *bitsFile;
10 FILE *fin, *fout, *fbits=NULL;
12 float input[FRAME_SIZE], bak[FRAME_SIZE], bak2[FRAME_SIZE];
20 for (i=0;i<FRAME_SIZE;i++)
22 encoder_init(&st, &mp_nb_mode);
23 decoder_init(&dec, &mp_nb_mode);
24 if (argc != 4 && argc != 3)
26 fprintf (stderr, "Usage: encode [in file] [out file] [bits file]\nargc = %d", argc);
30 fin = fopen(inFile, "r");
32 fout = fopen(outFile, "w");
36 fbits = fopen(bitsFile, "w");
38 frame_bits_init(&bits);
41 fread(in, sizeof(short), FRAME_SIZE, fin);
42 for (i=0;i<FRAME_SIZE;i++)
43 bak[i]=input[i]=in[i];
44 frame_bits_reset(&bits);
45 encode(&st, input, &bits);
46 nbBits = frame_bits_write(&bits, cbits, 200);
47 printf ("Encoding frame in %d bits\n", nbBits*8);
49 fwrite(cbits, 1, nbBits, fbits);
51 float enoise=0, esig=0, snr;
52 for (i=0;i<FRAME_SIZE;i++)
54 enoise+=(bak2[i]-input[i])*(bak2[i]-input[i]);
55 esig += bak2[i]*bak2[i];
57 snr = 10*log10((esig+1)/(enoise+1));
58 printf ("real SNR = %f\n", snr);
60 frame_bits_rewind(&bits);
62 /*decode(&dec, &bits, input);*/
64 /* Save the bits here */
65 frame_bits_reset(&bits);
66 for (i=0;i<FRAME_SIZE;i++)
68 for (i=0;i<FRAME_SIZE;i++)
70 fwrite(in, sizeof(short), FRAME_SIZE, fout);
74 decoder_destroy(&dec);