optimize cumul videograb

This commit is contained in:
Tonton Th 2019-08-15 05:50:40 +02:00
parent 4ea5294009
commit d11947bd7c
3 changed files with 28 additions and 3 deletions

View File

@ -8,6 +8,8 @@ int init_device(int notused);
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
int x_add_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d);
int x_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d); int x_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d);
int x_rgb2file(unsigned char *src, int w, int h, char *fname); int x_rgb2file(unsigned char *src, int w, int h, char *fname);

View File

@ -220,7 +220,7 @@ for (i = 0; i < nbre_capt; i++) {
} }
if(verbosity > 1) { if(verbosity > 1) {
printf("%6d %5.3f\n", i, fimg_timer_get(0)); printf("%6d %9.3f\n", i, fimg_timer_get(0));
} }
@ -246,9 +246,15 @@ for (i = 0; i < nbre_capt; i++) {
#endif #endif
#if SAVE_AS_CUMUL #if SAVE_AS_CUMUL
/**
x_rgb2fimg(buffers[buf.index].start, x_rgb2fimg(buffers[buf.index].start,
fmt.fmt.pix.width, fmt.fmt.pix.height, &grab); fmt.fmt.pix.width, fmt.fmt.pix.height, &grab);
fimg_add(&grab, &cumul, &cumul); fimg_add(&grab, &cumul, &cumul);
**/
x_add_rgb2fimg(buffers[buf.index].start,
fmt.fmt.pix.width, fmt.fmt.pix.height, &cumul);
#endif #endif
#if SAVE_AS_FIMG #if SAVE_AS_FIMG

View File

@ -9,11 +9,11 @@
int x_upscaler(unsigned char *src, int w, int h, FloatImg *d) int x_upscaler(unsigned char *src, int w, int h, FloatImg *d)
{ {
int x, y, xx, yy; int x, y, xx, yy;
float *rp, *gp, *bp; // float *rp, *gp, *bp;
float r, g, b; float r, g, b;
static unsigned short modz; static unsigned short modz;
rp = d->R, gp = d->G, bp = d->B; // rp = d->R, gp = d->G, bp = d->B;
for (y=0; y<h; y++) { for (y=0; y<h; y++) {
yy = (y*2) + ! (modz & 1); yy = (y*2) + ! (modz & 1);
@ -49,6 +49,23 @@ for (iter=0; iter<size; iter++) {
return 0; return 0;
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
/* --------------------------------------------------------------------- */
int x_add_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d)
{
int iter, size;
float *rp, *gp, *bp;
size = w * h;
rp = d->R, gp = d->G, bp = d->B;
for (iter=0; iter<size; iter++) {
*rp++ += (float)*src++;
*gp++ += (float)*src++;
*bp++ += (float)*src++;
}
return 0;
}
int x_rgb2file(unsigned char *src, int w, int h, char *fname) int x_rgb2file(unsigned char *src, int w, int h, char *fname)
{ {
FloatImg buff; FloatImg buff;