|
|
|
@@ -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++){ |
|
|
|
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; |
|
|
|
|