mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
move some stuff out of an inner loop. 12% faster svq1 encoding.
Originally committed as revision 8560 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
5900637219
commit
e62b3dd210
@ -992,17 +992,16 @@ static int encode_block(SVQ1Context *s, uint8_t *src, uint8_t *ref, uint8_t *dec
|
|||||||
|
|
||||||
for(i=0; i<16; i++){
|
for(i=0; i<16; i++){
|
||||||
int sum= codebook_sum[stage*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;
|
vector = codebook + stage*size*16 + i*size;
|
||||||
sqr = s->dsp.ssd_int8_vs_int16(vector, block[stage], size);
|
sqr = s->dsp.ssd_int8_vs_int16(vector, block[stage], size);
|
||||||
diff= block_sum[stage] - sum;
|
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
|
score= sqr - ((diff*(int64_t)diff)>>(level+3)); //FIXME 64bit slooow
|
||||||
if(score < best_vector_score){
|
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_score= score;
|
||||||
best_vector[stage]= i;
|
best_vector[stage]= i;
|
||||||
best_vector_sum= sum;
|
best_vector_sum= sum;
|
||||||
|
Loading…
Reference in New Issue
Block a user