set_segment_id(cm, bsize, mi_row, mi_col, segment_id);
return segment_id;
}
-
+#if CONFIG_MISC_ENTROPY
static int read_skip(VP9_COMMON *cm, const MACROBLOCKD *xd,
- int segment_id, vp9_reader *r) {
+ int segment_id, int is_inter, vp9_reader *r) {
+#else
+ static int read_skip(VP9_COMMON *cm, const MACROBLOCKD *xd,
+ int segment_id, vp9_reader *r) {
+#endif
if (vp9_segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP)) {
return 1;
+#if CONFIG_MISC_ENTROPY
+ } else if (!is_inter) {
+ return 0;
+#endif
} else {
const int ctx = vp9_get_skip_context(xd);
const int skip = vp9_read(r, cm->fc.skip_probs[ctx]);
#endif // CONFIG_INTRABC
mbmi->segment_id = read_intra_segment_id(cm, xd, mi_row, mi_col, r);
+#if CONFIG_MISC_ENTROPY
+ mbmi->skip = 0;
+#else
mbmi->skip = read_skip(cm, xd, mbmi->segment_id, r);
+#endif
#if CONFIG_PALETTE
if (bsize >= BLOCK_8X8 && cm->allow_palette_mode) {
int palette_ctx = 0;
#if CONFIG_SUPERTX
if (!supertx_enabled) {
#endif
+#if !CONFIG_MISC_ENTROPY
mbmi->skip = read_skip(cm, xd, mbmi->segment_id, r);
+#endif
#if CONFIG_COPY_MODE
if (mbmi->copy_mode == NOREF)
#endif
inter_block = read_is_inter_block(cm, xd, mbmi->segment_id, r);
+#if CONFIG_MISC_ENTROPY
+ mbmi->skip = read_skip(cm, xd, mbmi->segment_id, inter_block, r);
+#endif
#if CONFIG_PALETTE
mbmi->palette_enabled[0] = 0;
}
}
}
-
+#if CONFIG_MISC_ENTROPY
static int write_skip(const VP9_COMMON *cm, const MACROBLOCKD *xd,
- int segment_id, const MODE_INFO *mi, vp9_writer *w) {
+ int segment_id, const MODE_INFO *mi, int is_inter,
+ vp9_writer *w) {
+#else
+ static int write_skip(const VP9_COMMON *cm, const MACROBLOCKD *xd,
+ int segment_id, const MODE_INFO *mi, vp9_writer *w) {
+#endif
if (vp9_segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP)) {
return 1;
+#if CONFIG_MISC_ENTROPY
+ } else if (!is_inter && cm->frame_type == INTER_FRAME) {
+ return 0;
+#endif
} else {
const int skip = mi->mbmi.skip;
vp9_write(w, skip, vp9_get_skip_prob(cm, xd));
write_segment_id(w, seg, segment_id);
}
}
-
#if CONFIG_SUPERTX
if (supertx_enabled)
skip = mbmi->skip;
else
skip = write_skip(cm, xd, segment_id, mi, w);
#else
+#if !CONFIG_MISC_ENTROPY
skip = write_skip(cm, xd, segment_id, mi, w);
+#endif
+
#endif // CONFIG_SUPERTX
#if CONFIG_SUPERTX
}
#endif
+#if CONFIG_MISC_ENTROPY
+ skip = write_skip(cm, xd, segment_id, mi, is_inter, w);
+#endif
+
#if CONFIG_PALETTE
if (!is_inter && bsize >= BLOCK_8X8 && cm->allow_palette_mode) {
int n, i, j, k, rows, cols, palette_ctx, color_ctx;
if (seg->update_map)
write_segment_id(w, seg, mbmi->segment_id);
-
+#if !CONFIG_MISC_ENTROPY
write_skip(cm, xd, mbmi->segment_id, mi, w);
-
+#endif
#if CONFIG_PALETTE
if (bsize >= BLOCK_8X8 && cm->allow_palette_mode) {
int n, m1, m2, i, j, k, rows, cols, palette_ctx, color_ctx;
struct tokenize_b_args arg = {cpi, xd, t};
if (mbmi->skip) {
if (!dry_run)
+#if CONFIG_MISC_ENTROPY
+ if (is_inter_block(mbmi))
+#endif
cm->counts.skip[ctx][1] += skip_inc;
reset_skip_context(xd, bsize);
if (dry_run)
}
if (!dry_run) {
+#if CONFIG_MISC_ENTROPY
+ if (is_inter_block(mbmi))
+#endif
cm->counts.skip[ctx][0] += skip_inc;
#if CONFIG_TX_SKIP
if (mbmi->tx_skip[0] && FOR_SCREEN_CONTENT)