comparison svq1.c @ 4749:7011f597e473 libavcodec

mmx 16-bit ssd. 2.3x faster svq1 encoding.
author lorenm
date Fri, 30 Mar 2007 19:15:31 +0000
parents a96d905dcbaa
children 14a0a003804b
comparison
equal deleted inserted replaced
4748:c6a2b573f259 4749:7011f597e473
990 const int stage= count-1; 990 const int stage= count-1;
991 const int8_t *vector; 991 const int8_t *vector;
992 992
993 for(i=0; i<16; i++){ 993 for(i=0; i<16; i++){
994 int sum= codebook_sum[stage*16 + i]; 994 int sum= codebook_sum[stage*16 + i];
995 int sqr=0; 995 int sqr, diff, mean, score;
996 int diff, mean, score;
997 996
998 vector = codebook + stage*size*16 + i*size; 997 vector = codebook + stage*size*16 + i*size;
999 998 sqr = s->dsp.ssd_int8_vs_int16(vector, block[stage], size);
1000 for(j=0; j<size; j++){
1001 int v= vector[j];
1002 sqr += (v - block[stage][j])*(v - block[stage][j]);
1003 }
1004 diff= block_sum[stage] - sum; 999 diff= block_sum[stage] - sum;
1005 mean= (diff + (size>>1)) >> (level+3); 1000 mean= (diff + (size>>1)) >> (level+3);
1006 assert(mean >-300 && mean<300); 1001 assert(mean >-300 && mean<300);
1007 if(intra) mean= av_clip(mean, 0, 255); 1002 if(intra) mean= av_clip(mean, 0, 255);
1008 else mean= av_clip(mean, -256, 255); 1003 else mean= av_clip(mean, -256, 255);