comparison dsputil.c @ 2382:23e7af611c34 libavcodec

more flexible frame skip decission
author michael
date Wed, 08 Dec 2004 18:02:56 +0000
parents cd43603c46f9
children db2cf6005d19
comparison
equal deleted inserted replaced
2381:cfc9e0489859 2382:23e7af611c34
2889 cmp[i]= c->sse[i]; 2889 cmp[i]= c->sse[i];
2890 break; 2890 break;
2891 case FF_CMP_DCT: 2891 case FF_CMP_DCT:
2892 cmp[i]= c->dct_sad[i]; 2892 cmp[i]= c->dct_sad[i];
2893 break; 2893 break;
2894 case FF_CMP_DCTMAX:
2895 cmp[i]= c->dct_max[i];
2896 break;
2894 case FF_CMP_PSNR: 2897 case FF_CMP_PSNR:
2895 cmp[i]= c->quant_psnr[i]; 2898 cmp[i]= c->quant_psnr[i];
2896 break; 2899 break;
2897 case FF_CMP_BIT: 2900 case FF_CMP_BIT:
2898 cmp[i]= c->bit[i]; 2901 cmp[i]= c->bit[i];
3112 sum+= ABS(temp[i]); 3115 sum+= ABS(temp[i]);
3113 3116
3114 return sum; 3117 return sum;
3115 } 3118 }
3116 3119
3120 static int dct_max8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3121 MpegEncContext * const s= (MpegEncContext *)c;
3122 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64/8];
3123 DCTELEM * const temp= (DCTELEM*)aligned_temp;
3124 int sum=0, i;
3125
3126 assert(h==8);
3127
3128 s->dsp.diff_pixels(temp, src1, src2, stride);
3129 s->dsp.fdct(temp);
3130
3131 for(i=0; i<64; i++)
3132 sum= FFMAX(sum, ABS(temp[i]));
3133
3134 return sum;
3135 }
3136
3117 void simple_idct(DCTELEM *block); //FIXME 3137 void simple_idct(DCTELEM *block); //FIXME
3118 3138
3119 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){ 3139 static int quant_psnr8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride, int h){
3120 MpegEncContext * const s= (MpegEncContext *)c; 3140 MpegEncContext * const s= (MpegEncContext *)c;
3121 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64*2/8]; 3141 uint64_t __align8 aligned_temp[sizeof(DCTELEM)*64*2/8];
3341 } 3361 }
3342 3362
3343 WARPER8_16_SQ(hadamard8_diff8x8_c, hadamard8_diff16_c) 3363 WARPER8_16_SQ(hadamard8_diff8x8_c, hadamard8_diff16_c)
3344 WARPER8_16_SQ(hadamard8_intra8x8_c, hadamard8_intra16_c) 3364 WARPER8_16_SQ(hadamard8_intra8x8_c, hadamard8_intra16_c)
3345 WARPER8_16_SQ(dct_sad8x8_c, dct_sad16_c) 3365 WARPER8_16_SQ(dct_sad8x8_c, dct_sad16_c)
3366 WARPER8_16_SQ(dct_max8x8_c, dct_max16_c)
3346 WARPER8_16_SQ(quant_psnr8x8_c, quant_psnr16_c) 3367 WARPER8_16_SQ(quant_psnr8x8_c, quant_psnr16_c)
3347 WARPER8_16_SQ(rd8x8_c, rd16_c) 3368 WARPER8_16_SQ(rd8x8_c, rd16_c)
3348 WARPER8_16_SQ(bit8x8_c, bit16_c) 3369 WARPER8_16_SQ(bit8x8_c, bit16_c)
3349 3370
3350 /* XXX: those functions should be suppressed ASAP when all IDCTs are 3371 /* XXX: those functions should be suppressed ASAP when all IDCTs are
3597 c->name[1]= name ## 8x8_c; 3618 c->name[1]= name ## 8x8_c;
3598 3619
3599 SET_CMP_FUNC(hadamard8_diff) 3620 SET_CMP_FUNC(hadamard8_diff)
3600 c->hadamard8_diff[4]= hadamard8_intra16_c; 3621 c->hadamard8_diff[4]= hadamard8_intra16_c;
3601 SET_CMP_FUNC(dct_sad) 3622 SET_CMP_FUNC(dct_sad)
3623 SET_CMP_FUNC(dct_max)
3602 c->sad[0]= pix_abs16_c; 3624 c->sad[0]= pix_abs16_c;
3603 c->sad[1]= pix_abs8_c; 3625 c->sad[1]= pix_abs8_c;
3604 c->sse[0]= sse16_c; 3626 c->sse[0]= sse16_c;
3605 c->sse[1]= sse8_c; 3627 c->sse[1]= sse8_c;
3606 c->sse[2]= sse4_c; 3628 c->sse[2]= sse4_c;