Use MI row and col indices stored in MACROBLOCKD Use MI row and col indices stored in MACROBLOCKD where applicable. Change-Id: Ia8d6d987284b4f7aa69d6f02876e44439f3b385c
diff --git a/av1/common/blockd.c b/av1/common/blockd.c index 9abd58a..55bd052 100644 --- a/av1/common/blockd.c +++ b/av1/common/blockd.c
@@ -56,18 +56,16 @@ memset(l, has_eob, sizeof(*l) * txs_high); } } -void av1_reset_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col, - BLOCK_SIZE bsize, const int num_planes) { - int i; - int nplanes; - int chroma_ref; +void av1_reset_skip_context(MACROBLOCKD *xd, BLOCK_SIZE bsize, + const int num_planes) { assert(bsize < BLOCK_SIZES_ALL); - - chroma_ref = + const int mi_row = xd->mi_row; + const int mi_col = xd->mi_col; + const int chroma_ref = is_chroma_reference(mi_row, mi_col, bsize, xd->plane[1].subsampling_x, xd->plane[1].subsampling_y); - nplanes = 1 + (num_planes - 1) * chroma_ref; - for (i = 0; i < nplanes; i++) { + const int nplanes = 1 + (num_planes - 1) * chroma_ref; + for (int i = 0; i < nplanes; i++) { struct macroblockd_plane *const pd = &xd->plane[i]; const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, pd->subsampling_x, pd->subsampling_y);
diff --git a/av1/common/blockd.h b/av1/common/blockd.h index 85164ae..bef5587 100644 --- a/av1/common/blockd.h +++ b/av1/common/blockd.h
@@ -998,8 +998,8 @@ pd->subsampling_y); } -void av1_reset_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col, - BLOCK_SIZE bsize, const int num_planes); +void av1_reset_skip_context(MACROBLOCKD *xd, BLOCK_SIZE bsize, + const int num_planes); void av1_reset_loop_filter_delta(MACROBLOCKD *xd, int num_planes);
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index 693a9c8..5783b85 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -1265,8 +1265,7 @@ td->cfl_store_inter_block_visit(cm, xd); } - av1_visit_palette(pbi, xd, mi_row, mi_col, r, bsize, - set_color_index_map_offset); + av1_visit_palette(pbi, xd, r, bsize, set_color_index_map_offset); } static AOM_INLINE void set_inter_tx_size(MB_MODE_INFO *mbmi, int stride_log2, @@ -1417,8 +1416,7 @@ MACROBLOCKD *const xd = &td->xd; decode_mbmi_block(pbi, xd, mi_row, mi_col, r, partition, bsize); - av1_visit_palette(pbi, xd, mi_row, mi_col, r, bsize, - av1_decode_palette_tokens); + av1_visit_palette(pbi, xd, r, bsize, av1_decode_palette_tokens); AV1_COMMON *cm = &pbi->common; const int num_planes = av1_num_planes(cm); @@ -1492,7 +1490,7 @@ } } } - if (mbmi->skip) av1_reset_skip_context(xd, mi_row, mi_col, bsize, num_planes); + if (mbmi->skip) av1_reset_skip_context(xd, bsize, num_planes); decode_token_recon_block(pbi, td, mi_row, mi_col, r, bsize); }
diff --git a/av1/decoder/decoder.c b/av1/decoder/decoder.c index 6d765c2..c2b84d4 100644 --- a/av1/decoder/decoder.c +++ b/av1/decoder/decoder.c
@@ -251,14 +251,14 @@ aom_free(pbi); } -void av1_visit_palette(AV1Decoder *const pbi, MACROBLOCKD *const xd, int mi_row, - int mi_col, aom_reader *r, BLOCK_SIZE bsize, +void av1_visit_palette(AV1Decoder *const pbi, MACROBLOCKD *const xd, + aom_reader *r, BLOCK_SIZE bsize, palette_visitor_fn_t visit) { if (!is_inter_block(xd->mi[0])) { for (int plane = 0; plane < AOMMIN(2, av1_num_planes(&pbi->common)); ++plane) { const struct macroblockd_plane *const pd = &xd->plane[plane]; - if (is_chroma_reference(mi_row, mi_col, bsize, pd->subsampling_x, + if (is_chroma_reference(xd->mi_row, xd->mi_col, bsize, pd->subsampling_x, pd->subsampling_y)) { if (xd->mi[0]->palette_mode_info.palette_size[plane]) visit(xd, plane, r);
diff --git a/av1/decoder/decoder.h b/av1/decoder/decoder.h index 61206dd..6df582d 100644 --- a/av1/decoder/decoder.h +++ b/av1/decoder/decoder.h
@@ -310,8 +310,8 @@ typedef void (*palette_visitor_fn_t)(MACROBLOCKD *const xd, int plane, aom_reader *r); -void av1_visit_palette(AV1Decoder *const pbi, MACROBLOCKD *const xd, int mi_row, - int mi_col, aom_reader *r, BLOCK_SIZE bsize, +void av1_visit_palette(AV1Decoder *const pbi, MACROBLOCKD *const xd, + aom_reader *r, BLOCK_SIZE bsize, palette_visitor_fn_t visit); typedef void (*block_visitor_fn_t)(AV1Decoder *const pbi, ThreadData *const td,
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index b22adb3..025b8b3 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -5607,25 +5607,29 @@ } } -static AOM_INLINE void tx_partition_count_update( - const AV1_COMMON *const cm, MACROBLOCK *x, BLOCK_SIZE plane_bsize, - int mi_row, int mi_col, FRAME_COUNTS *td_counts, uint8_t allow_update_cdf) { +static AOM_INLINE void tx_partition_count_update(const AV1_COMMON *const cm, + MACROBLOCK *x, + BLOCK_SIZE plane_bsize, + FRAME_COUNTS *td_counts, + uint8_t allow_update_cdf) { MACROBLOCKD *xd = &x->e_mbd; const int mi_width = mi_size_wide[plane_bsize]; const int mi_height = mi_size_high[plane_bsize]; const TX_SIZE max_tx_size = get_vartx_max_txsize(xd, plane_bsize, 0); const int bh = tx_size_high_unit[max_tx_size]; const int bw = tx_size_wide_unit[max_tx_size]; - int idx, idy; - xd->above_txfm_context = cm->above_txfm_context[xd->tile.tile_row] + mi_col; + xd->above_txfm_context = + cm->above_txfm_context[xd->tile.tile_row] + xd->mi_col; xd->left_txfm_context = - xd->left_txfm_context_buffer + (mi_row & MAX_MIB_MASK); + xd->left_txfm_context_buffer + (xd->mi_row & MAX_MIB_MASK); - for (idy = 0; idy < mi_height; idy += bh) - for (idx = 0; idx < mi_width; idx += bw) + for (int idy = 0; idy < mi_height; idy += bh) { + for (int idx = 0; idx < mi_width; idx += bw) { update_txfm_count(x, xd, td_counts, max_tx_size, 0, idy, idx, allow_update_cdf); + } + } } static AOM_INLINE void set_txfm_context(MACROBLOCKD *xd, TX_SIZE tx_size, @@ -5668,17 +5672,17 @@ static AOM_INLINE void tx_partition_set_contexts(const AV1_COMMON *const cm, MACROBLOCKD *xd, - BLOCK_SIZE plane_bsize, - int mi_row, int mi_col) { + BLOCK_SIZE plane_bsize) { const int mi_width = mi_size_wide[plane_bsize]; const int mi_height = mi_size_high[plane_bsize]; const TX_SIZE max_tx_size = get_vartx_max_txsize(xd, plane_bsize, 0); const int bh = tx_size_high_unit[max_tx_size]; const int bw = tx_size_wide_unit[max_tx_size]; - xd->above_txfm_context = cm->above_txfm_context[xd->tile.tile_row] + mi_col; + xd->above_txfm_context = + cm->above_txfm_context[xd->tile.tile_row] + xd->mi_col; xd->left_txfm_context = - xd->left_txfm_context_buffer + (mi_row & MAX_MIB_MASK); + xd->left_txfm_context_buffer + (xd->mi_row & MAX_MIB_MASK); for (int idy = 0; idy < mi_height; idy += bh) { for (int idx = 0; idx < mi_width; idx += bw) { @@ -5718,8 +5722,7 @@ mbmi->skip = 1; for (int plane = 0; plane < num_planes; ++plane) { av1_encode_intra_block_plane(cpi, x, bsize, plane, - cpi->optimize_seg_arr[mbmi->segment_id], - mi_row, mi_col); + cpi->optimize_seg_arr[mbmi->segment_id]); } // If there is at least one lossless segment, force the skip for intra @@ -5745,7 +5748,7 @@ } } - av1_update_txb_context(cpi, td, dry_run, bsize, rate, mi_row, mi_col, + av1_update_txb_context(cpi, td, dry_run, bsize, tile_data->allow_update_cdf); } else { int ref; @@ -5787,8 +5790,8 @@ (void)num_planes; #endif - av1_encode_sb(cpi, x, bsize, mi_row, mi_col, dry_run); - av1_tokenize_sb_vartx(cpi, td, dry_run, mi_row, mi_col, bsize, rate, + av1_encode_sb(cpi, x, bsize, dry_run); + av1_tokenize_sb_vartx(cpi, td, dry_run, bsize, rate, tile_data->allow_update_cdf); } @@ -5798,7 +5801,7 @@ !xd->lossless[mbmi->segment_id] && mbmi->sb_type > BLOCK_4X4 && !(is_inter && (mbmi->skip || seg_skip))) { if (is_inter) { - tx_partition_count_update(cm, x, bsize, mi_row, mi_col, td->counts, + tx_partition_count_update(cm, x, bsize, td->counts, tile_data->allow_update_cdf); } else { if (mbmi->tx_size != max_txsize_rect_lookup[bsize]) @@ -5844,7 +5847,7 @@ if (x->tx_mode_search_type == TX_MODE_SELECT && block_signals_txsize(mbmi->sb_type) && is_inter && !(mbmi->skip || seg_skip) && !xd->lossless[mbmi->segment_id]) { - if (dry_run) tx_partition_set_contexts(cm, xd, bsize, mi_row, mi_col); + if (dry_run) tx_partition_set_contexts(cm, xd, bsize); } else { TX_SIZE tx_size = mbmi->tx_size; // The new intra coding scheme requires no change of transform size
diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c index 2575214..a62d5d9 100644 --- a/av1/encoder/encodemb.c +++ b/av1/encoder/encodemb.c
@@ -218,9 +218,7 @@ static void encode_block(int plane, int block, int blk_row, int blk_col, BLOCK_SIZE plane_bsize, TX_SIZE tx_size, void *arg, - int mi_row, int mi_col, RUN_TYPE dry_run) { - (void)mi_row; - (void)mi_col; + RUN_TYPE dry_run) { (void)dry_run; struct encode_b_args *const args = arg; const AV1_COMMON *const cm = &args->cpi->common; @@ -307,8 +305,8 @@ BLOCK_SIZE bsize = txsize_to_bsize[tx_size]; int blk_w = block_size_wide[bsize]; int blk_h = block_size_high[bsize]; - mi_to_pixel_loc(&pixel_c, &pixel_r, mi_col, mi_row, blk_col, blk_row, - pd->subsampling_x, pd->subsampling_y); + mi_to_pixel_loc(&pixel_c, &pixel_r, xd->mi_col, xd->mi_row, blk_col, + blk_row, pd->subsampling_x, pd->subsampling_y); mismatch_record_block_tx(dst, pd->dst.stride, cm->current_frame.order_hint, plane, pixel_c, pixel_r, blk_w, blk_h, xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH); @@ -318,10 +316,7 @@ static void encode_block_inter(int plane, int block, int blk_row, int blk_col, BLOCK_SIZE plane_bsize, TX_SIZE tx_size, - void *arg, int mi_row, int mi_col, - RUN_TYPE dry_run) { - (void)mi_row; - (void)mi_col; + void *arg, RUN_TYPE dry_run) { struct encode_b_args *const args = arg; MACROBLOCK *const x = args->x; MACROBLOCKD *const xd = &x->e_mbd; @@ -344,7 +339,7 @@ if (tx_size == plane_tx_size || plane) { encode_block(plane, block, blk_row, blk_col, plane_bsize, tx_size, arg, - mi_row, mi_col, dry_run); + dry_run); } else { assert(tx_size < TX_SIZES_ALL); const TX_SIZE sub_txs = sub_tx_size_map[tx_size]; @@ -364,7 +359,7 @@ if (offsetr >= max_blocks_high || offsetc >= max_blocks_wide) continue; encode_block_inter(plane, block, offsetr, offsetc, plane_bsize, sub_txs, - arg, mi_row, mi_col, dry_run); + arg, dry_run); block += step; } } @@ -414,16 +409,18 @@ } void av1_foreach_transformed_block(const MACROBLOCKD *const xd, - BLOCK_SIZE bsize, int mi_row, int mi_col, + BLOCK_SIZE bsize, foreach_transformed_block_visitor visit, void *arg, const int num_planes) { for (int plane = 0; plane < num_planes; ++plane) { const struct macroblockd_plane *const pd = &xd->plane[plane]; - const int ss_x = xd->plane[plane].subsampling_x; - const int ss_y = xd->plane[plane].subsampling_y; - if (!is_chroma_reference(mi_row, mi_col, bsize, ss_x, ss_y)) continue; - const BLOCK_SIZE plane_bsize = - get_plane_block_size(bsize, pd->subsampling_x, pd->subsampling_y); + const int ss_x = pd->subsampling_x; + const int ss_y = pd->subsampling_y; + if (plane && + !is_chroma_reference(xd->mi_row, xd->mi_col, bsize, ss_x, ss_y)) { + continue; + } + const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, ss_x, ss_y); av1_foreach_transformed_block_in_plane(xd, plane_bsize, plane, visit, arg); } } @@ -475,7 +472,7 @@ } void av1_encode_sb(const struct AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, - int mi_row, int mi_col, RUN_TYPE dry_run) { + RUN_TYPE dry_run) { assert(bsize < BLOCK_SIZES_ALL); MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *mbmi = xd->mi[0]; @@ -492,15 +489,16 @@ cpi->optimize_seg_arr[mbmi->segment_id] }; const AV1_COMMON *const cm = &cpi->common; const int num_planes = av1_num_planes(cm); - + const int mi_row = xd->mi_row; + const int mi_col = xd->mi_col; for (int plane = 0; plane < num_planes; ++plane) { const struct macroblockd_plane *const pd = &xd->plane[plane]; const int subsampling_x = pd->subsampling_x; const int subsampling_y = pd->subsampling_y; - if (!is_chroma_reference(mi_row, mi_col, bsize, subsampling_x, - subsampling_y)) + if (plane && !is_chroma_reference(mi_row, mi_col, bsize, subsampling_x, + subsampling_y)) { continue; - + } const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, subsampling_x, subsampling_y); assert(plane_bsize < BLOCK_SIZES_ALL); @@ -532,7 +530,7 @@ for (blk_row = idy; blk_row < unit_height; blk_row += bh) { for (blk_col = idx; blk_col < unit_width; blk_col += bw) { encode_block_inter(plane, block, blk_row, blk_col, plane_bsize, - max_tx_size, &arg, mi_row, mi_col, dry_run); + max_tx_size, &arg, dry_run); block += step; } } @@ -642,22 +640,23 @@ void av1_encode_intra_block_plane(const struct AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int plane, - int enable_optimize_b, int mi_row, - int mi_col) { + int enable_optimize_b) { assert(bsize < BLOCK_SIZES_ALL); const MACROBLOCKD *const xd = &x->e_mbd; const struct macroblockd_plane *const pd = &xd->plane[plane]; const int ss_x = pd->subsampling_x; const int ss_y = pd->subsampling_y; - if (plane && !is_chroma_reference(mi_row, mi_col, bsize, ss_x, ss_y)) return; + if (plane && + !is_chroma_reference(xd->mi_row, xd->mi_col, bsize, ss_x, ss_y)) { + return; + } ENTROPY_CONTEXT ta[MAX_MIB_SIZE] = { 0 }; ENTROPY_CONTEXT tl[MAX_MIB_SIZE] = { 0 }; struct encode_b_args arg = { cpi, x, NULL, &(xd->mi[0]->skip), ta, tl, enable_optimize_b }; - const BLOCK_SIZE plane_bsize = - get_plane_block_size(bsize, pd->subsampling_x, pd->subsampling_y); + const BLOCK_SIZE plane_bsize = get_plane_block_size(bsize, ss_x, ss_y); if (enable_optimize_b) { av1_get_entropy_contexts(plane_bsize, pd, ta, tl); }
diff --git a/av1/encoder/encodemb.h b/av1/encoder/encodemb.h index 320b5fe..37c8201 100644 --- a/av1/encoder/encodemb.h +++ b/av1/encoder/encodemb.h
@@ -46,14 +46,14 @@ } UENUM1BYTE(AV1_XFORM_QUANT); void av1_encode_sb(const struct AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, - int mi_row, int mi_col, RUN_TYPE dry_run); + RUN_TYPE dry_run); void av1_foreach_transformed_block_in_plane( const MACROBLOCKD *const xd, BLOCK_SIZE plane_bsize, int plane, foreach_transformed_block_visitor visit, void *arg); void av1_foreach_transformed_block(const MACROBLOCKD *const xd, - BLOCK_SIZE bsize, int mi_row, int mi_col, + BLOCK_SIZE bsize, foreach_transformed_block_visitor visit, void *arg, const int num_planes); @@ -97,8 +97,7 @@ void av1_encode_intra_block_plane(const struct AV1_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bsize, int plane, - int enable_optimize_b, int mi_row, - int mi_col); + int enable_optimize_b); #ifdef __cplusplus } // extern "C"
diff --git a/av1/encoder/encodetxb.c b/av1/encoder/encodetxb.c index 78deef5..43ef418 100644 --- a/av1/encoder/encodetxb.c +++ b/av1/encoder/encodetxb.c
@@ -2150,29 +2150,25 @@ } void av1_update_txb_context(const AV1_COMP *cpi, ThreadData *td, - RUN_TYPE dry_run, BLOCK_SIZE bsize, int *rate, - int mi_row, int mi_col, uint8_t allow_update_cdf) { + RUN_TYPE dry_run, BLOCK_SIZE bsize, + uint8_t allow_update_cdf) { const AV1_COMMON *const cm = &cpi->common; const int num_planes = av1_num_planes(cm); MACROBLOCK *const x = &td->mb; MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *const mbmi = xd->mi[0]; struct tokenize_b_args arg = { cpi, td, 0, allow_update_cdf }; - (void)rate; - (void)mi_row; - (void)mi_col; if (mbmi->skip) { - av1_reset_skip_context(xd, mi_row, mi_col, bsize, num_planes); + av1_reset_skip_context(xd, bsize, num_planes); return; } if (!dry_run) { - av1_foreach_transformed_block(xd, bsize, mi_row, mi_col, - av1_update_and_record_txb_context, &arg, - num_planes); + av1_foreach_transformed_block(xd, bsize, av1_update_and_record_txb_context, + &arg, num_planes); } else if (dry_run == DRY_RUN_NORMAL) { - av1_foreach_transformed_block(xd, bsize, mi_row, mi_col, - av1_update_txb_context_b, &arg, num_planes); + av1_foreach_transformed_block(xd, bsize, av1_update_txb_context_b, &arg, + num_planes); } else { printf("DRY_RUN_COSTCOEFFS is not supported yet\n"); assert(0);
diff --git a/av1/encoder/encodetxb.h b/av1/encoder/encodetxb.h index 677b4f9..d795454 100644 --- a/av1/encoder/encodetxb.h +++ b/av1/encoder/encodetxb.h
@@ -63,8 +63,8 @@ int av1_get_txb_entropy_context(const tran_low_t *qcoeff, const SCAN_ORDER *scan_order, int eob); void av1_update_txb_context(const AV1_COMP *cpi, ThreadData *td, - RUN_TYPE dry_run, BLOCK_SIZE bsize, int *rate, - int mi_row, int mi_col, uint8_t allow_update_cdf); + RUN_TYPE dry_run, BLOCK_SIZE bsize, + uint8_t allow_update_cdf); void av1_update_txb_context_b(int plane, int block, int blk_row, int blk_col, BLOCK_SIZE plane_bsize, TX_SIZE tx_size,
diff --git a/av1/encoder/firstpass.c b/av1/encoder/firstpass.c index 590523e..edf4276 100644 --- a/av1/encoder/firstpass.c +++ b/av1/encoder/firstpass.c
@@ -458,7 +458,7 @@ xd->mi[0]->mode = DC_PRED; xd->mi[0]->tx_size = use_dc_pred ? (bsize >= BLOCK_16X16 ? TX_16X16 : TX_8X8) : TX_4X4; - av1_encode_intra_block_plane(cpi, x, bsize, 0, 0, mb_row * 2, mb_col * 2); + av1_encode_intra_block_plane(cpi, x, bsize, 0, 0); this_intra_error = aom_get_mb_ss(x->plane[0].src_diff); if (this_intra_error < UL_INTRA_THRESH) {
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index f6d1309..ce6cadb 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -7215,8 +7215,7 @@ if (xd->cfl.store_y) { // Restore reconstructed luma values. av1_encode_intra_block_plane(cpi, x, mbmi->sb_type, AOM_PLANE_Y, - cpi->optimize_seg_arr[mbmi->segment_id], - mi_row, mi_col); + cpi->optimize_seg_arr[mbmi->segment_id]); xd->cfl.store_y = 0; } rd_pick_intra_sbuv_mode(cpi, x, rate_uv, rate_uv_tokenonly, dist_uv, skip_uv, @@ -11759,8 +11758,7 @@ sizeof(x->blk_skip[0]) * ctx->num_4x4_blk); av1_copy_array(xd->tx_type_map, ctx->tx_type_map, ctx->num_4x4_blk); av1_encode_intra_block_plane(cpi, x, bsize, AOM_PLANE_Y, - cpi->optimize_seg_arr[mbmi->segment_id], - mi_row, mi_col); + cpi->optimize_seg_arr[mbmi->segment_id]); av1_copy_array(ctx->tx_type_map, xd->tx_type_map, ctx->num_4x4_blk); xd->cfl.store_y = 0; }
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c index df2d04a..735c345 100644 --- a/av1/encoder/tokenize.c +++ b/av1/encoder/tokenize.c
@@ -186,21 +186,22 @@ } void av1_tokenize_sb_vartx(const AV1_COMP *cpi, ThreadData *td, - RUN_TYPE dry_run, int mi_row, int mi_col, - BLOCK_SIZE bsize, int *rate, + RUN_TYPE dry_run, BLOCK_SIZE bsize, int *rate, uint8_t allow_update_cdf) { + assert(bsize < BLOCK_SIZES_ALL); const AV1_COMMON *const cm = &cpi->common; - const int num_planes = av1_num_planes(cm); MACROBLOCK *const x = &td->mb; MACROBLOCKD *const xd = &x->e_mbd; - MB_MODE_INFO *const mbmi = xd->mi[0]; - struct tokenize_b_args arg = { cpi, td, 0, allow_update_cdf }; + const int mi_row = xd->mi_row; + const int mi_col = xd->mi_col; if (mi_row >= cm->mi_rows || mi_col >= cm->mi_cols) return; - assert(bsize < BLOCK_SIZES_ALL); + const int num_planes = av1_num_planes(cm); + MB_MODE_INFO *const mbmi = xd->mi[0]; + struct tokenize_b_args arg = { cpi, td, 0, allow_update_cdf }; if (mbmi->skip) { - av1_reset_skip_context(xd, mi_row, mi_col, bsize, num_planes); + av1_reset_skip_context(xd, bsize, num_planes); return; }
diff --git a/av1/encoder/tokenize.h b/av1/encoder/tokenize.h index 28334ac..4f629e2 100644 --- a/av1/encoder/tokenize.h +++ b/av1/encoder/tokenize.h
@@ -47,8 +47,7 @@ // with the coefficient token cost only if dry_run = DRY_RUN_COSTCOEFS, // otherwise rate is not incremented. void av1_tokenize_sb_vartx(const struct AV1_COMP *cpi, struct ThreadData *td, - RUN_TYPE dry_run, int mi_row, int mi_col, - BLOCK_SIZE bsize, int *rate, + RUN_TYPE dry_run, BLOCK_SIZE bsize, int *rate, uint8_t allow_update_cdf); int av1_cost_color_map(const MACROBLOCK *const x, int plane, BLOCK_SIZE bsize,