comparison vc1.c @ 3507:44e0a262d500 libavcodec

Set DC = 0 for skipped MB as it interferes DC prediction
author kostya
date Fri, 21 Jul 2006 04:03:56 +0000
parents e0996476198b
children 3d6e4ef3170d
comparison
equal deleted inserted replaced
3506:e0996476198b 3507:44e0a262d500
2489 } 2489 }
2490 } 2490 }
2491 else //Skipped 2491 else //Skipped
2492 { 2492 {
2493 s->mb_intra = 0; 2493 s->mb_intra = 0;
2494 for(i = 0; i < 6; i++) v->mb_type[0][s->block_index[i]] = 0; 2494 for(i = 0; i < 6; i++) {
2495 v->mb_type[0][s->block_index[i]] = 0;
2496 s->dc_val[0][s->block_index[i]] = 0;
2497 }
2495 s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP; 2498 s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP;
2496 s->current_picture.qscale_table[mb_pos] = 0; 2499 s->current_picture.qscale_table[mb_pos] = 0;
2497 vc1_pred_mv(s, 0, 0, 0, 1, v->range_x, v->range_y, v->mb_type[0]); 2500 vc1_pred_mv(s, 0, 0, 0, 1, v->range_x, v->range_y, v->mb_type[0]);
2498 vc1_mc_1mv(v); 2501 vc1_mc_1mv(v);
2499 return 0; 2502 return 0;
2588 return status; 2591 return status;
2589 } 2592 }
2590 else //Skipped MB 2593 else //Skipped MB
2591 { 2594 {
2592 s->mb_intra = 0; 2595 s->mb_intra = 0;
2593 for (i=0; i<6; i++) v->mb_type[0][s->block_index[i]] = 0; 2596 for (i=0; i<6; i++) {
2597 v->mb_type[0][s->block_index[i]] = 0;
2598 s->dc_val[0][s->block_index[i]] = 0;
2599 }
2594 for (i=0; i<4; i++) 2600 for (i=0; i<4; i++)
2595 { 2601 {
2596 vc1_pred_mv(s, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0]); 2602 vc1_pred_mv(s, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0]);
2597 vc1_mc_4mv_luma(v, i); 2603 vc1_mc_4mv_luma(v, i);
2598 } 2604 }