vp9_encodeframe.c 105 KB
Newer Older
Paul Wilkins's avatar
Paul Wilkins committed
    mbmi->skip_coeff = 1;
    if (output_enabled)
      cm->counts.skip[vp9_get_skip_context(xd)][1]++;
    reset_skip_context(xd, MAX(bsize, BLOCK_8X8));
  }

  if (output_enabled) {
    if (cm->tx_mode == TX_MODE_SELECT &&
        mbmi->sb_type >= BLOCK_8X8  &&
        !(is_inter_block(mbmi) &&
Paul Wilkins's avatar
Paul Wilkins committed
            (mbmi->skip_coeff ||
             vp9_segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP)))) {
      ++get_tx_counts(max_txsize_lookup[bsize], vp9_get_tx_size_context(xd),
                      &cm->counts.tx)[mbmi->tx_size];
    } else {
      int x, y;
Jim Bankoski's avatar
Jim Bankoski committed
      // The new intra coding scheme requires no change of transform size
      if (is_inter_block(&mi->mbmi)) {
        tx_size = MIN(tx_mode_to_biggest_tx_size[cm->tx_mode],
                      max_txsize_lookup[bsize]);
        tx_size = (bsize >= BLOCK_8X8) ? mbmi->tx_size : TX_4X4;
      for (y = 0; y < mi_height; y++)
        for (x = 0; x < mi_width; x++)
          if (mi_col + x < cm->mi_cols && mi_row + y < cm->mi_rows)
            mi_8x8[mis * y + x]->mbmi.tx_size = tx_size;
Ronald S. Bultje's avatar
Ronald S. Bultje committed
}