comparison vp8.c @ 12254:17c151e1280a libavcodec

VP8: Use vp56_rac_get_prob_branchy when the bit is only used by an if()
author conrad
date Fri, 23 Jul 2010 21:46:20 +0000
parents 112b3a0db187
children 7db147ea02c4
comparison
equal deleted inserted replaced
12253:112b3a0db187 12254:17c151e1280a
492 492
493 for (i = 0; i < 4; i++) 493 for (i = 0; i < 4; i++)
494 for (j = 0; j < 8; j++) 494 for (j = 0; j < 8; j++)
495 for (k = 0; k < 3; k++) 495 for (k = 0; k < 3; k++)
496 for (l = 0; l < NUM_DCT_TOKENS-1; l++) 496 for (l = 0; l < NUM_DCT_TOKENS-1; l++)
497 if (vp56_rac_get_prob(c, vp8_token_update_probs[i][j][k][l])) 497 if (vp56_rac_get_prob_branchy(c, vp8_token_update_probs[i][j][k][l]))
498 s->prob->token[i][j][k][l] = vp8_rac_get_uint(c, 8); 498 s->prob->token[i][j][k][l] = vp8_rac_get_uint(c, 8);
499 499
500 if ((s->mbskip_enabled = vp8_rac_get(c))) 500 if ((s->mbskip_enabled = vp8_rac_get(c)))
501 s->prob->mbskip = vp8_rac_get_uint(c, 8); 501 s->prob->mbskip = vp8_rac_get_uint(c, 8);
502 502
513 s->prob->pred8x8c[i] = vp8_rac_get_uint(c, 8); 513 s->prob->pred8x8c[i] = vp8_rac_get_uint(c, 8);
514 514
515 // 17.2 MV probability update 515 // 17.2 MV probability update
516 for (i = 0; i < 2; i++) 516 for (i = 0; i < 2; i++)
517 for (j = 0; j < 19; j++) 517 for (j = 0; j < 19; j++)
518 if (vp56_rac_get_prob(c, vp8_mv_update_prob[i][j])) 518 if (vp56_rac_get_prob_branchy(c, vp8_mv_update_prob[i][j]))
519 s->prob->mvc[i][j] = vp8_rac_get_nn(c); 519 s->prob->mvc[i][j] = vp8_rac_get_nn(c);
520 } 520 }
521 521
522 return 0; 522 return 0;
523 } 523 }
599 */ 599 */
600 static int read_mv_component(VP56RangeCoder *c, const uint8_t *p) 600 static int read_mv_component(VP56RangeCoder *c, const uint8_t *p)
601 { 601 {
602 int x = 0; 602 int x = 0;
603 603
604 if (vp56_rac_get_prob(c, p[0])) { 604 if (vp56_rac_get_prob_branchy(c, p[0])) {
605 int i; 605 int i;
606 606
607 for (i = 0; i < 3; i++) 607 for (i = 0; i < 3; i++)
608 x += vp56_rac_get_prob(c, p[9 + i]) << i; 608 x += vp56_rac_get_prob(c, p[9 + i]) << i;
609 for (i = 9; i > 3; i--) 609 for (i = 9; i > 3; i--)
725 } else 725 } else
726 fill_rectangle(intra4x4, 4, 4, s->b4_stride, vp8_pred4x4_mode[mb->mode], 1); 726 fill_rectangle(intra4x4, 4, 4, s->b4_stride, vp8_pred4x4_mode[mb->mode], 1);
727 727
728 s->chroma_pred_mode = vp8_rac_get_tree(c, vp8_pred8x8c_tree, vp8_pred8x8c_prob_intra); 728 s->chroma_pred_mode = vp8_rac_get_tree(c, vp8_pred8x8c_tree, vp8_pred8x8c_prob_intra);
729 mb->ref_frame = VP56_FRAME_CURRENT; 729 mb->ref_frame = VP56_FRAME_CURRENT;
730 } else if (vp56_rac_get_prob(c, s->prob->intra)) { 730 } else if (vp56_rac_get_prob_branchy(c, s->prob->intra)) {
731 VP56mv near[2], best; 731 VP56mv near[2], best;
732 uint8_t cnt[4] = { 0 }; 732 uint8_t cnt[4] = { 0 };
733 uint8_t p[4]; 733 uint8_t p[4];
734 734
735 // inter MB, 16.2 735 // inter MB, 16.2
736 if (vp56_rac_get_prob(c, s->prob->last)) 736 if (vp56_rac_get_prob_branchy(c, s->prob->last))
737 mb->ref_frame = vp56_rac_get_prob(c, s->prob->golden) ? 737 mb->ref_frame = vp56_rac_get_prob(c, s->prob->golden) ?
738 VP56_FRAME_GOLDEN2 /* altref */ : VP56_FRAME_GOLDEN; 738 VP56_FRAME_GOLDEN2 /* altref */ : VP56_FRAME_GOLDEN;
739 else 739 else
740 mb->ref_frame = VP56_FRAME_PREVIOUS; 740 mb->ref_frame = VP56_FRAME_PREVIOUS;
741 s->ref_count[mb->ref_frame-1]++; 741 s->ref_count[mb->ref_frame-1]++;