Mercurial > libavcodec.hg
comparison h264.c @ 4530:e47cc0486771 libavcodec
factorize mv_cache and mvd_cache init
author | michael |
---|---|
date | Fri, 16 Feb 2007 21:27:59 +0000 |
parents | a8082e1ed672 |
children | 8a5a3dd25390 |
comparison
equal
deleted
inserted
replaced
4529:a8082e1ed672 | 4530:e47cc0486771 |
---|---|
5297 mx += get_se_golomb(&s->gb); | 5297 mx += get_se_golomb(&s->gb); |
5298 my += get_se_golomb(&s->gb); | 5298 my += get_se_golomb(&s->gb); |
5299 tprintf("final mv:%d %d\n", mx, my); | 5299 tprintf("final mv:%d %d\n", mx, my); |
5300 | 5300 |
5301 if(IS_SUB_8X8(sub_mb_type)){ | 5301 if(IS_SUB_8X8(sub_mb_type)){ |
5302 mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= | 5302 mv_cache[ 1 ][0]= |
5303 mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; | 5303 mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; |
5304 mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= | 5304 mv_cache[ 1 ][1]= |
5305 mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; | 5305 mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; |
5306 }else if(IS_SUB_8X4(sub_mb_type)){ | 5306 }else if(IS_SUB_8X4(sub_mb_type)){ |
5307 mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= mx; | 5307 mv_cache[ 1 ][0]= mx; |
5308 mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= my; | 5308 mv_cache[ 1 ][1]= my; |
5309 }else if(IS_SUB_4X8(sub_mb_type)){ | 5309 }else if(IS_SUB_4X8(sub_mb_type)){ |
5310 mv_cache[ 0 ][0]= mv_cache[ 8 ][0]= mx; | 5310 mv_cache[ 8 ][0]= mx; |
5311 mv_cache[ 0 ][1]= mv_cache[ 8 ][1]= my; | 5311 mv_cache[ 8 ][1]= my; |
5312 }else{ | |
5313 assert(IS_SUB_4X4(sub_mb_type)); | |
5314 mv_cache[ 0 ][0]= mx; | |
5315 mv_cache[ 0 ][1]= my; | |
5316 } | 5312 } |
5313 mv_cache[ 0 ][0]= mx; | |
5314 mv_cache[ 0 ][1]= my; | |
5317 } | 5315 } |
5318 }else{ | 5316 }else{ |
5319 uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; | 5317 uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; |
5320 p[0] = p[1]= | 5318 p[0] = p[1]= |
5321 p[8] = p[9]= 0; | 5319 p[8] = p[9]= 0; |
6432 mx = mpx + decode_cabac_mb_mvd( h, list, index, 0 ); | 6430 mx = mpx + decode_cabac_mb_mvd( h, list, index, 0 ); |
6433 my = mpy + decode_cabac_mb_mvd( h, list, index, 1 ); | 6431 my = mpy + decode_cabac_mb_mvd( h, list, index, 1 ); |
6434 tprintf("final mv:%d %d\n", mx, my); | 6432 tprintf("final mv:%d %d\n", mx, my); |
6435 | 6433 |
6436 if(IS_SUB_8X8(sub_mb_type)){ | 6434 if(IS_SUB_8X8(sub_mb_type)){ |
6437 mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= | 6435 mv_cache[ 1 ][0]= |
6438 mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; | 6436 mv_cache[ 8 ][0]= mv_cache[ 9 ][0]= mx; |
6439 mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= | 6437 mv_cache[ 1 ][1]= |
6440 mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; | 6438 mv_cache[ 8 ][1]= mv_cache[ 9 ][1]= my; |
6441 | 6439 |
6442 mvd_cache[ 0 ][0]= mvd_cache[ 1 ][0]= | 6440 mvd_cache[ 1 ][0]= |
6443 mvd_cache[ 8 ][0]= mvd_cache[ 9 ][0]= mx - mpx; | 6441 mvd_cache[ 8 ][0]= mvd_cache[ 9 ][0]= mx - mpx; |
6444 mvd_cache[ 0 ][1]= mvd_cache[ 1 ][1]= | 6442 mvd_cache[ 1 ][1]= |
6445 mvd_cache[ 8 ][1]= mvd_cache[ 9 ][1]= my - mpy; | 6443 mvd_cache[ 8 ][1]= mvd_cache[ 9 ][1]= my - mpy; |
6446 }else if(IS_SUB_8X4(sub_mb_type)){ | 6444 }else if(IS_SUB_8X4(sub_mb_type)){ |
6447 mv_cache[ 0 ][0]= mv_cache[ 1 ][0]= mx; | 6445 mv_cache[ 1 ][0]= mx; |
6448 mv_cache[ 0 ][1]= mv_cache[ 1 ][1]= my; | 6446 mv_cache[ 1 ][1]= my; |
6449 | 6447 |
6450 mvd_cache[ 0 ][0]= mvd_cache[ 1 ][0]= mx- mpx; | 6448 mvd_cache[ 1 ][0]= mx - mpx; |
6451 mvd_cache[ 0 ][1]= mvd_cache[ 1 ][1]= my - mpy; | 6449 mvd_cache[ 1 ][1]= my - mpy; |
6452 }else if(IS_SUB_4X8(sub_mb_type)){ | 6450 }else if(IS_SUB_4X8(sub_mb_type)){ |
6453 mv_cache[ 0 ][0]= mv_cache[ 8 ][0]= mx; | 6451 mv_cache[ 8 ][0]= mx; |
6454 mv_cache[ 0 ][1]= mv_cache[ 8 ][1]= my; | 6452 mv_cache[ 8 ][1]= my; |
6455 | 6453 |
6456 mvd_cache[ 0 ][0]= mvd_cache[ 8 ][0]= mx - mpx; | 6454 mvd_cache[ 8 ][0]= mx - mpx; |
6457 mvd_cache[ 0 ][1]= mvd_cache[ 8 ][1]= my - mpy; | 6455 mvd_cache[ 8 ][1]= my - mpy; |
6458 }else{ | |
6459 assert(IS_SUB_4X4(sub_mb_type)); | |
6460 mv_cache[ 0 ][0]= mx; | |
6461 mv_cache[ 0 ][1]= my; | |
6462 | |
6463 mvd_cache[ 0 ][0]= mx - mpx; | |
6464 mvd_cache[ 0 ][1]= my - mpy; | |
6465 } | 6456 } |
6457 mv_cache[ 0 ][0]= mx; | |
6458 mv_cache[ 0 ][1]= my; | |
6459 | |
6460 mvd_cache[ 0 ][0]= mx - mpx; | |
6461 mvd_cache[ 0 ][1]= my - mpy; | |
6466 } | 6462 } |
6467 }else{ | 6463 }else{ |
6468 uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; | 6464 uint32_t *p= (uint32_t *)&h->mv_cache[list][ scan8[4*i] ][0]; |
6469 uint32_t *pd= (uint32_t *)&h->mvd_cache[list][ scan8[4*i] ][0]; | 6465 uint32_t *pd= (uint32_t *)&h->mvd_cache[list][ scan8[4*i] ][0]; |
6470 p[0] = p[1] = p[8] = p[9] = 0; | 6466 p[0] = p[1] = p[8] = p[9] = 0; |