comparison vc1.c @ 3451:45724ba8d666 libavcodec

Fix mquant selection for ALL_MBS mode
author kostya
date Sun, 09 Jul 2006 02:51:13 +0000
parents 906c58dcb6ea
children f024ca7c768b
comparison
equal deleted inserted replaced
3450:906c58dcb6ea 3451:45724ba8d666
702 break; 702 break;
703 case DQPROFILE_ALL_MBS: 703 case DQPROFILE_ALL_MBS:
704 v->dqbilevel = get_bits(gb, 1); 704 v->dqbilevel = get_bits(gb, 1);
705 default: break; //Forbidden ? 705 default: break; //Forbidden ?
706 } 706 }
707 if (!v->dqbilevel || v->dqprofile != DQPROFILE_ALL_MBS) 707 if (v->dqbilevel || v->dqprofile != DQPROFILE_ALL_MBS)
708 { 708 {
709 pqdiff = get_bits(gb, 3); 709 pqdiff = get_bits(gb, 3);
710 if (pqdiff == 7) v->altpq = get_bits(gb, 5); 710 if (pqdiff == 7) v->altpq = get_bits(gb, 5);
711 else v->altpq = v->pq + pqdiff + 1; 711 else v->altpq = v->pq + pqdiff + 1;
712 } 712 }
1447 int edges = 0; \ 1447 int edges = 0; \
1448 if (v->dqprofile == DQPROFILE_ALL_MBS) \ 1448 if (v->dqprofile == DQPROFILE_ALL_MBS) \
1449 { \ 1449 { \
1450 if (v->dqbilevel) \ 1450 if (v->dqbilevel) \
1451 { \ 1451 { \
1452 mquant = (get_bits(gb, 1)) ? v->pq : v->altpq; \ 1452 mquant = (get_bits(gb, 1)) ? v->altpq : v->pq; \
1453 } \ 1453 } \
1454 else \ 1454 else \
1455 { \ 1455 { \
1456 mqdiff = get_bits(gb, 3); \ 1456 mqdiff = get_bits(gb, 3); \
1457 if (mqdiff != 7) mquant = v->pq + mqdiff; \ 1457 if (mqdiff != 7) mquant = v->pq + mqdiff; \
1462 edges = 1 << v->dqsbedge; \ 1462 edges = 1 << v->dqsbedge; \
1463 else if(v->dqprofile == DQPROFILE_DOUBLE_EDGES) \ 1463 else if(v->dqprofile == DQPROFILE_DOUBLE_EDGES) \
1464 edges = (3 << v->dqsbedge) % 15; \ 1464 edges = (3 << v->dqsbedge) % 15; \
1465 else if(v->dqprofile == DQPROFILE_FOUR_EDGES) \ 1465 else if(v->dqprofile == DQPROFILE_FOUR_EDGES) \
1466 edges = 15; \ 1466 edges = 15; \
1467 mquant = v->pq; \
1468 if((edges&1) && !s->mb_x) \ 1467 if((edges&1) && !s->mb_x) \
1469 mquant = v->altpq; \ 1468 mquant = v->altpq; \
1470 if((edges&2) && !s->mb_y) \ 1469 if((edges&2) && s->first_slice_line) \
1471 mquant = v->altpq; \ 1470 mquant = v->altpq; \
1472 if((edges&4) && s->mb_x == (s->mb_width - 1)) \ 1471 if((edges&4) && s->mb_x == (s->mb_width - 1)) \
1473 mquant = v->altpq; \ 1472 mquant = v->altpq; \
1474 if((edges&8) && s->mb_y == (s->mb_height - 1)) \ 1473 if((edges&8) && s->mb_y == (s->mb_height - 1)) \
1475 mquant = v->altpq; \ 1474 mquant = v->altpq; \