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;