[Ffmpeg-cvslog] r8560 - trunk/libavcodec/svq1.c
lorenm
subversion
Fri Mar 30 21:16:41 CEST 2007
Author: lorenm
Date: Fri Mar 30 21:16:41 2007
New Revision: 8560
Modified:
trunk/libavcodec/svq1.c
Log:
move some stuff out of an inner loop. 12% faster svq1 encoding.
Modified: trunk/libavcodec/svq1.c
==============================================================================
--- trunk/libavcodec/svq1.c (original)
+++ trunk/libavcodec/svq1.c Fri Mar 30 21:16:41 2007
@@ -992,17 +992,16 @@ static int encode_block(SVQ1Context *s,
for(i=0; i<16; i++){
int sum= codebook_sum[stage*16 + i];
- int sqr, diff, mean, score;
+ int sqr, diff, score;
vector = codebook + stage*size*16 + i*size;
sqr = s->dsp.ssd_int8_vs_int16(vector, block[stage], size);
diff= block_sum[stage] - sum;
- mean= (diff + (size>>1)) >> (level+3);
- assert(mean >-300 && mean<300);
- if(intra) mean= av_clip(mean, 0, 255);
- else mean= av_clip(mean, -256, 255);
score= sqr - ((diff*(int64_t)diff)>>(level+3)); //FIXME 64bit slooow
if(score < best_vector_score){
+ int mean= (diff + (size>>1)) >> (level+3);
+ assert(mean >-300 && mean<300);
+ mean= av_clip(mean, intra?0:-256, 255);
best_vector_score= score;
best_vector[stage]= i;
best_vector_sum= sum;
More information about the ffmpeg-cvslog
mailing list