comparison h264.c @ 4000:eeab02251056 libavcodec

more prefetches, 2% faster h264
author lorenm
date Wed, 11 Oct 2006 21:34:15 +0000
parents 8b7c59b7af01
children 34fdffe98bd0
comparison
equal deleted inserted replaced
3999:6cbad3675632 4000:eeab02251056
3637 3637
3638 dest_y = s->current_picture.data[0] + (mb_y * 16* s->linesize ) + mb_x * 16; 3638 dest_y = s->current_picture.data[0] + (mb_y * 16* s->linesize ) + mb_x * 16;
3639 dest_cb = s->current_picture.data[1] + (mb_y * 8 * s->uvlinesize) + mb_x * 8; 3639 dest_cb = s->current_picture.data[1] + (mb_y * 8 * s->uvlinesize) + mb_x * 8;
3640 dest_cr = s->current_picture.data[2] + (mb_y * 8 * s->uvlinesize) + mb_x * 8; 3640 dest_cr = s->current_picture.data[2] + (mb_y * 8 * s->uvlinesize) + mb_x * 8;
3641 3641
3642 s->dsp.prefetch(dest_y + (s->mb_x&3)*4*s->linesize + 64, s->linesize, 4);
3643 s->dsp.prefetch(dest_cb + (s->mb_x&7)*s->uvlinesize + 64, dest_cr - dest_cb, 2);
3644
3642 if (MB_FIELD) { 3645 if (MB_FIELD) {
3643 linesize = h->mb_linesize = s->linesize * 2; 3646 linesize = h->mb_linesize = s->linesize * 2;
3644 uvlinesize = h->mb_uvlinesize = s->uvlinesize * 2; 3647 uvlinesize = h->mb_uvlinesize = s->uvlinesize * 2;
3645 block_offset = &h->block_offset[24]; 3648 block_offset = &h->block_offset[24];
3646 if(mb_y&1){ //FIXME move out of this func? 3649 if(mb_y&1){ //FIXME move out of this func?