| Index: source/libvpx/vp9/encoder/vp9_bitstream.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_bitstream.c (revision 293588)
|
| +++ source/libvpx/vp9/encoder/vp9_bitstream.c (working copy)
|
| @@ -34,18 +34,16 @@
|
| #include "vp9/encoder/vp9_tokenize.h"
|
| #include "vp9/encoder/vp9_write_bit_buffer.h"
|
|
|
| -static struct vp9_token intra_mode_encodings[INTRA_MODES];
|
| -static struct vp9_token switchable_interp_encodings[SWITCHABLE_FILTERS];
|
| -static struct vp9_token partition_encodings[PARTITION_TYPES];
|
| -static struct vp9_token inter_mode_encodings[INTER_MODES];
|
| +static const struct vp9_token intra_mode_encodings[INTRA_MODES] = {
|
| + {0, 1}, {6, 3}, {28, 5}, {30, 5}, {58, 6}, {59, 6}, {126, 7}, {127, 7},
|
| + {62, 6}, {2, 2}};
|
| +static const struct vp9_token switchable_interp_encodings[SWITCHABLE_FILTERS] =
|
| + {{0, 1}, {2, 2}, {3, 2}};
|
| +static const struct vp9_token partition_encodings[PARTITION_TYPES] =
|
| + {{0, 1}, {2, 2}, {6, 3}, {7, 3}};
|
| +static const struct vp9_token inter_mode_encodings[INTER_MODES] =
|
| + {{2, 2}, {6, 3}, {0, 1}, {7, 3}};
|
|
|
| -void vp9_entropy_mode_init() {
|
| - vp9_tokens_from_tree(intra_mode_encodings, vp9_intra_mode_tree);
|
| - vp9_tokens_from_tree(switchable_interp_encodings, vp9_switchable_interp_tree);
|
| - vp9_tokens_from_tree(partition_encodings, vp9_partition_tree);
|
| - vp9_tokens_from_tree(inter_mode_encodings, vp9_inter_mode_tree);
|
| -}
|
| -
|
| static void write_intra_mode(vp9_writer *w, PREDICTION_MODE mode,
|
| const vp9_prob *probs) {
|
| vp9_write_token(w, vp9_intra_mode_tree, probs, &intra_mode_encodings[mode]);
|
| @@ -299,7 +297,6 @@
|
| if (!vp9_segfeature_active(seg, segment_id, SEG_LVL_SKIP)) {
|
| if (bsize >= BLOCK_8X8) {
|
| write_inter_mode(w, mode, inter_probs);
|
| - ++cpi->td.counts->inter_mode[mode_ctx][INTER_OFFSET(mode)];
|
| }
|
| }
|
|
|
| @@ -322,7 +319,6 @@
|
| const int j = idy * 2 + idx;
|
| const PREDICTION_MODE b_mode = mi->bmi[j].as_mode;
|
| write_inter_mode(w, b_mode, inter_probs);
|
| - ++cpi->td.counts->inter_mode[mode_ctx][INTER_OFFSET(b_mode)];
|
| if (b_mode == NEWMV) {
|
| for (ref = 0; ref < 1 + is_compound; ++ref)
|
| vp9_encode_mv(cpi, w, &mi->bmi[j].as_mv[ref].as_mv,
|
| @@ -346,9 +342,8 @@
|
| MODE_INFO *mi_8x8, vp9_writer *w) {
|
| const struct segmentation *const seg = &cm->seg;
|
| const MODE_INFO *const mi = mi_8x8;
|
| - const MODE_INFO *const above_mi = mi_8x8[-xd->mi_stride].src_mi;
|
| - const MODE_INFO *const left_mi =
|
| - xd->left_available ? mi_8x8[-1].src_mi : NULL;
|
| + const MODE_INFO *const above_mi = xd->above_mi;
|
| + const MODE_INFO *const left_mi = xd->left_mi;
|
| const MB_MODE_INFO *const mbmi = &mi->mbmi;
|
| const BLOCK_SIZE bsize = mbmi->sb_type;
|
|
|
| @@ -1175,8 +1170,6 @@
|
| prob_diff_update(vp9_inter_mode_tree, cm->fc->inter_mode_probs[i],
|
| counts->inter_mode[i], INTER_MODES, &header_bc);
|
|
|
| - vp9_zero(counts->inter_mode);
|
| -
|
| if (cm->interp_filter == SWITCHABLE)
|
| update_switchable_interp_probs(cm, &header_bc, counts);
|
|
|
| @@ -1184,7 +1177,7 @@
|
| vp9_cond_prob_diff_update(&header_bc, &fc->intra_inter_prob[i],
|
| counts->intra_inter[i]);
|
|
|
| - if (cm->allow_comp_inter_inter) {
|
| + if (cpi->allow_comp_inter_inter) {
|
| const int use_compound_pred = cm->reference_mode != SINGLE_REFERENCE;
|
| const int use_hybrid_pred = cm->reference_mode == REFERENCE_MODE_SELECT;
|
|
|
|
|