72 |
PMV_EARLYSTOP16, // Q 1 |
PMV_EARLYSTOP16, // Q 1 |
73 |
PMV_EARLYSTOP16, // Q 2 |
PMV_EARLYSTOP16, // Q 2 |
74 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16, // Q 3 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16, // Q 3 |
75 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8, // Q 4 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16, // Q 4 |
76 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8 // Q 5 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8 // Q 5 |
77 |
| PMV_HALFPELREFINE8, |
| PMV_HALFPELREFINE8, |
78 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EXTSEARCH16 // Q 6 |
PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EXTSEARCH16 // Q 6 |
81 |
|
|
82 |
int general_presets[7] = { |
int general_presets[7] = { |
83 |
XVID_H263QUANT, /* or use XVID_MPEGQUANT */ // Q 0 |
XVID_H263QUANT, /* or use XVID_MPEGQUANT */ // Q 0 |
84 |
XVID_H263QUANT, // Q 1 |
XVID_MPEGQUANT, // Q 1 |
85 |
XVID_H263QUANT, // Q 2 |
XVID_H263QUANT, // Q 2 |
86 |
XVID_H263QUANT | XVID_HALFPEL, // Q 3 |
XVID_H263QUANT | XVID_HALFPEL, // Q 3 |
87 |
XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, // Q 4 |
XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, // Q 4 |
91 |
|
|
92 |
/* my default values for encoding */ |
/* my default values for encoding */ |
93 |
|
|
94 |
|
#define ABS_MAXFRAMENR 9999 // max number of frames |
95 |
|
|
96 |
int ARG_BITRATE=900; |
int ARG_BITRATE=900; |
97 |
int ARG_QUANTI=0; |
int ARG_QUANTI=0; |
98 |
|
|
101 |
int ARG_MAXQUANT=31; |
int ARG_MAXQUANT=31; |
102 |
float ARG_FRAMERATE=25.00; |
float ARG_FRAMERATE=25.00; |
103 |
|
|
104 |
|
int ARG_MAXFRAMENR=ABS_MAXFRAMENR; |
105 |
|
|
106 |
|
|
107 |
#define MAX(A,B) ( ((A)>(B)) ? (A) : (B) ) |
#define MAX(A,B) ( ((A)>(B)) ? (A) : (B) ) |
108 |
#define SMALL_EPS 1e-10 |
#define SMALL_EPS 1e-10 |
121 |
int pgmflag = 0; // a flag, if input is in PGM format, overwritten in init-phase |
int pgmflag = 0; // a flag, if input is in PGM format, overwritten in init-phase |
122 |
char filepath[256] = "./"; // the path where to save output |
char filepath[256] = "./"; // the path where to save output |
123 |
|
|
|
#define MAXFILENR 9999 // max number of frames (this should be made into an option!) |
|
|
|
|
124 |
void *enc_handle = NULL; // internal structures (handles) for encoding |
void *enc_handle = NULL; // internal structures (handles) for encoding |
125 |
void *dec_handle = NULL; // and decoding |
void *dec_handle = NULL; // and decoding |
126 |
|
|
284 |
xparam.fincr = FRAMERATE_INCR; |
xparam.fincr = FRAMERATE_INCR; |
285 |
xparam.fbase = (int)(FRAMERATE_INCR * ARG_FRAMERATE); |
xparam.fbase = (int)(FRAMERATE_INCR * ARG_FRAMERATE); |
286 |
} |
} |
287 |
xparam.bitrate = ARG_BITRATE*1000; |
xparam.rc_reaction_delay_factor = 16; |
288 |
|
xparam.rc_averaging_period = 100; |
289 |
|
xparam.rc_buffer = 10; |
290 |
|
xparam.rc_bitrate = ARG_BITRATE*1000; |
291 |
xparam.min_quantizer = 1; |
xparam.min_quantizer = 1; |
292 |
xparam.max_quantizer = 31; |
xparam.max_quantizer = 31; |
293 |
xparam.max_key_interval = (int)ARG_FRAMERATE*10; |
xparam.max_key_interval = (int)ARG_FRAMERATE*10; |
294 |
xparam.rc_buffersize = 2; |
|
295 |
/* I use a small value here, since will not encode whole movies, but short clips */ |
/* I use a small value here, since will not encode whole movies, but short clips */ |
296 |
|
|
297 |
xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xparam, NULL); |
xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xparam, NULL); |
412 |
int status; |
int status; |
413 |
|
|
414 |
int m4v_size; |
int m4v_size; |
415 |
int frame_type[MAXFILENR]; |
int frame_type[ABS_MAXFRAMENR]; |
416 |
int Iframes=0, Pframes=0, Bframes=0; |
int Iframes=0, Pframes=0, Bframes=0; |
417 |
double framepsnr[MAXFILENR]; |
double framepsnr[ABS_MAXFRAMENR]; |
418 |
|
|
419 |
double Ipsnr=0.,Imaxpsnr=0.,Iminpsnr=999.,Ivarpsnr=0.; |
double Ipsnr=0.,Imaxpsnr=0.,Iminpsnr=999.,Ivarpsnr=0.; |
420 |
double Ppsnr=0.,Pmaxpsnr=0.,Pminpsnr=999.,Pvarpsnr=0.; |
double Ppsnr=0.,Pmaxpsnr=0.,Pminpsnr=999.,Pvarpsnr=0.; |
476 |
printf("Framerate %6.3f fps\n",ARG_FRAMERATE); |
printf("Framerate %6.3f fps\n",ARG_FRAMERATE); |
477 |
} |
} |
478 |
|
|
479 |
|
if (argc>=7) |
480 |
|
{ ARG_MAXFRAMENR = atoi(argv[6]); |
481 |
|
if ( (ARG_MAXFRAMENR <= 0) ) |
482 |
|
{ fprintf(stderr,"Wrong number of frames\n"); return -1; } |
483 |
|
printf("max. Framenr. %d\n",ARG_MAXFRAMENR); |
484 |
|
} |
485 |
|
|
486 |
/* now we know the sizes, so allocate memory */ |
/* now we know the sizes, so allocate memory */ |
487 |
|
|
488 |
in_buffer = (unsigned char *) malloc(XDIM*YDIM); |
in_buffer = (unsigned char *) malloc(XDIM*YDIM); |
600 |
|
|
601 |
filenr++; |
filenr++; |
602 |
|
|
603 |
} while ( (!status) && (filenr<MAXFILENR) ); |
} while ( (!status) && (filenr<ARG_MAXFRAMENR) ); |
604 |
|
|
605 |
|
|
606 |
|
|