comparison h264.c @ 8355:179f8e1327ce libavcodec

Factorize 3 multiplications out, code becomes 3 cpu cycles faster. (not significant as thats just per MB)
author michael
date Tue, 16 Dec 2008 21:08:16 +0000
parents 5e6f65181881
children 1ef90fd7706a
comparison
equal deleted inserted replaced
8354:5e6f65181881 8355:179f8e1327ce
2369 const int transform_bypass = !simple && (s->qscale == 0 && h->sps.transform_bypass); 2369 const int transform_bypass = !simple && (s->qscale == 0 && h->sps.transform_bypass);
2370 const int is_h264 = simple || s->codec_id == CODEC_ID_H264; 2370 const int is_h264 = simple || s->codec_id == CODEC_ID_H264;
2371 void (*idct_add)(uint8_t *dst, DCTELEM *block, int stride); 2371 void (*idct_add)(uint8_t *dst, DCTELEM *block, int stride);
2372 void (*idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride); 2372 void (*idct_dc_add)(uint8_t *dst, DCTELEM *block, int stride);
2373 2373
2374 dest_y = s->current_picture.data[0] + (mb_y * 16* s->linesize ) + mb_x * 16; 2374 dest_y = s->current_picture.data[0] + (mb_x + mb_y * s->linesize ) * 16;
2375 dest_cb = s->current_picture.data[1] + (mb_y * 8 * s->uvlinesize) + mb_x * 8; 2375 dest_cb = s->current_picture.data[1] + (mb_x + mb_y * s->uvlinesize) * 8;
2376 dest_cr = s->current_picture.data[2] + (mb_y * 8 * s->uvlinesize) + mb_x * 8; 2376 dest_cr = s->current_picture.data[2] + (mb_x + mb_y * s->uvlinesize) * 8;
2377 2377
2378 s->dsp.prefetch(dest_y + (s->mb_x&3)*4*s->linesize + 64, s->linesize, 4); 2378 s->dsp.prefetch(dest_y + (s->mb_x&3)*4*s->linesize + 64, s->linesize, 4);
2379 s->dsp.prefetch(dest_cb + (s->mb_x&7)*s->uvlinesize + 64, dest_cr - dest_cb, 2); 2379 s->dsp.prefetch(dest_cb + (s->mb_x&7)*s->uvlinesize + 64, dest_cr - dest_cb, 2);
2380 2380
2381 if (!simple && MB_FIELD) { 2381 if (!simple && MB_FIELD) {