Mercurial > libavcodec.hg
diff h263dec.c @ 266:252444e5259b libavcodec
optimization
author | michaelni |
---|---|
date | Fri, 15 Mar 2002 14:57:17 +0000 |
parents | 7d941b8c4e84 |
children | 34f40a0fc840 |
line wrap: on
line diff
--- a/h263dec.c Fri Mar 15 04:10:53 2002 +0000 +++ b/h263dec.c Fri Mar 15 14:57:17 2002 +0000 @@ -140,6 +140,12 @@ #endif /* decode each macroblock */ + s->block_wrap[0]= + s->block_wrap[1]= + s->block_wrap[2]= + s->block_wrap[3]= s->mb_width*2 + 2; + s->block_wrap[4]= + s->block_wrap[5]= s->mb_width + 2; for(s->mb_y=0; s->mb_y < s->mb_height; s->mb_y++) { /* Check for GOB headers on H.263 */ /* FIXME: In the future H.263+ will have intra prediction */ @@ -147,7 +153,19 @@ if (s->mb_y && !s->h263_pred) { s->first_gob_line = h263_decode_gob_header(s); } + s->block_index[0]= s->block_wrap[0]*(s->mb_y*2 + 1) - 1; + s->block_index[1]= s->block_wrap[0]*(s->mb_y*2 + 1); + s->block_index[2]= s->block_wrap[0]*(s->mb_y*2 + 2) - 1; + s->block_index[3]= s->block_wrap[0]*(s->mb_y*2 + 2); + s->block_index[4]= s->block_wrap[4]*(s->mb_y + 1) + s->block_wrap[0]*(s->mb_height*2 + 2); + s->block_index[5]= s->block_wrap[4]*(s->mb_y + 1 + s->mb_height + 2) + s->block_wrap[0]*(s->mb_height*2 + 2); for(s->mb_x=0; s->mb_x < s->mb_width; s->mb_x++) { + s->block_index[0]+=2; + s->block_index[1]+=2; + s->block_index[2]+=2; + s->block_index[3]+=2; + s->block_index[4]++; + s->block_index[5]++; #ifdef DEBUG printf("**mb x=%d y=%d\n", s->mb_x, s->mb_y); #endif