comparison vp8.c @ 12225:c3e11b3108d7 libavcodec

Eliminate a pointless memset for intra blocks in P-frames in VP8
author darkshikari
date Thu, 22 Jul 2010 12:15:29 +0000
parents 5b7d690b761b
children 9c63566f623f
comparison
equal deleted inserted replaced
12224:5b7d690b761b 12225:c3e11b3108d7
744 switch (mb->mode) { 744 switch (mb->mode) {
745 case VP8_MVMODE_SPLIT: 745 case VP8_MVMODE_SPLIT:
746 mb->mv = mb->bmv[decode_splitmvs(s, c, mb, &best) - 1]; 746 mb->mv = mb->bmv[decode_splitmvs(s, c, mb, &best) - 1];
747 break; 747 break;
748 case VP8_MVMODE_ZERO: 748 case VP8_MVMODE_ZERO:
749 mb->mv.x = 0; 749 AV_WN32A(&mb->mv, 0);
750 mb->mv.y = 0;
751 break; 750 break;
752 case VP8_MVMODE_NEAREST: 751 case VP8_MVMODE_NEAREST:
753 clamp_mv(s, &mb->mv, &near[0], mb_x, mb_y); 752 clamp_mv(s, &mb->mv, &near[0], mb_x, mb_y);
754 break; 753 break;
755 case VP8_MVMODE_NEAR: 754 case VP8_MVMODE_NEAR:
771 if (mb->mode == MODE_I4x4) 770 if (mb->mode == MODE_I4x4)
772 decode_intra4x4_modes(c, intra4x4, 4, 0); 771 decode_intra4x4_modes(c, intra4x4, 4, 0);
773 772
774 s->chroma_pred_mode = vp8_rac_get_tree(c, vp8_pred8x8c_tree, s->prob->pred8x8c); 773 s->chroma_pred_mode = vp8_rac_get_tree(c, vp8_pred8x8c_tree, s->prob->pred8x8c);
775 mb->ref_frame = VP56_FRAME_CURRENT; 774 mb->ref_frame = VP56_FRAME_CURRENT;
775 mb->partitioning = VP8_SPLITMVMODE_NONE;
776 AV_WN32A(&mb->bmv[0], 0);
776 } 777 }
777 } 778 }
778 779
779 /** 780 /**
780 * @param c arithmetic bitstream reader context 781 * @param c arithmetic bitstream reader context
1494 else { 1495 else {
1495 AV_ZERO128(s->non_zero_count_cache); // luma 1496 AV_ZERO128(s->non_zero_count_cache); // luma
1496 AV_ZERO64(s->non_zero_count_cache[4]); // chroma 1497 AV_ZERO64(s->non_zero_count_cache[4]); // chroma
1497 } 1498 }
1498 1499
1499 if (mb->mode <= MODE_I4x4) { 1500 if (mb->mode <= MODE_I4x4)
1500 intra_predict(s, dst, mb, intra4x4_mb, mb_x, mb_y); 1501 intra_predict(s, dst, mb, intra4x4_mb, mb_x, mb_y);
1501 memset(mb->bmv, 0, sizeof(mb->bmv)); 1502 else
1502 } else {
1503 inter_predict(s, dst, mb, mb_x, mb_y); 1503 inter_predict(s, dst, mb, mb_x, mb_y);
1504 }
1505 1504
1506 if (!mb->skip) { 1505 if (!mb->skip) {
1507 idct_mb(s, dst[0], dst[1], dst[2], mb); 1506 idct_mb(s, dst[0], dst[1], dst[2], mb);
1508 } else { 1507 } else {
1509 AV_ZERO64(s->left_nnz); 1508 AV_ZERO64(s->left_nnz);