Mercurial > libavcodec.hg
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? |