Commit 52ece884 authored by Jingning Han's avatar Jingning Han

Temporarily disable multi-thread loop filter in cb4x4

The loop filter parameters change due to many experiments. The
multi-thread loop filter is built on certain assumptions that would
require changes in many table contents. Temporarily disable the
multi-thread loop filter pass and only maintain the single frame
reference during the development process.

Change-Id: I33a6a7a6fc4299f8fc414ae7f28c5a463af1e12b
parent d49c5c41
......@@ -3547,7 +3547,7 @@ static const uint8_t *decode_tiles(AV1Decoder *pbi, const uint8_t *data,
// when Parallel deblocking is enabled, deblocking should not
// be interleaved with decoding. Instead, deblocking should be done
// after the entire frame is decoded.
#if !CONFIG_VAR_TX && !CONFIG_PARALLEL_DEBLOCKING
#if !CONFIG_VAR_TX && !CONFIG_PARALLEL_DEBLOCKING && !CONFIG_CB4X4
// Loopfilter one tile row.
if (cm->lf.filter_level && !cm->skip_loop_filter) {
LFWorkerData *const lf_data = (LFWorkerData *)pbi->lf_worker.data1;
......@@ -3578,7 +3578,7 @@ static const uint8_t *decode_tiles(AV1Decoder *pbi, const uint8_t *data,
av1_frameworker_broadcast(pbi->cur_buf, mi_row << cm->mib_size_log2);
}
#if CONFIG_VAR_TX
#if CONFIG_VAR_TX || CONFIG_CB4X4
// Loopfilter the whole frame.
av1_loop_filter_frame(get_frame_new_buffer(cm), cm, &pbi->mb,
cm->lf.filter_level, 0, 0);
......@@ -4946,11 +4946,11 @@ void av1_decode_frame(AV1Decoder *pbi, const uint8_t *data,
cm->coef_probs_update_idx = 0;
#endif // CONFIG_SUBFRAME_PROB_UPDATE
if (pbi->max_threads > 1
if (pbi->max_threads > 1 && !CONFIG_CB4X4 &&
#if CONFIG_EXT_TILE
&& pbi->dec_tile_col < 0 // Decoding all columns
pbi->dec_tile_col < 0 && // Decoding all columns
#endif // CONFIG_EXT_TILE
&& cm->tile_cols > 1) {
cm->tile_cols > 1) {
// Multi-threaded tile decoder
*p_data_end = decode_tiles_mt(pbi, data + first_partition_size, data_end);
if (!xd->corrupted) {
......
......@@ -2322,7 +2322,6 @@ static void write_tokens_b(AV1_COMP *cpi, const TileInfo *const tile,
assert(*tok < tok_end);
#endif
for (plane = 0; plane < MAX_MB_PLANE; ++plane) {
#if CONFIG_CB4X4
if (!is_chroma_reference(mi_row, mi_col, mbmi->sb_type,
xd->plane[plane].subsampling_x,
......@@ -2331,7 +2330,6 @@ static void write_tokens_b(AV1_COMP *cpi, const TileInfo *const tile,
continue;
}
#endif
#if CONFIG_VAR_TX
const struct macroblockd_plane *const pd = &xd->plane[plane];
BLOCK_SIZE bsize = mbmi->sb_type;
......
......@@ -3514,7 +3514,7 @@ static void loopfilter_frame(AV1_COMP *cpi, AV1_COMMON *cm) {
}
if (lf->filter_level > 0) {
#if CONFIG_VAR_TX || CONFIG_EXT_PARTITION
#if CONFIG_VAR_TX || CONFIG_EXT_PARTITION || CONFIG_CB4X4
av1_loop_filter_frame(cm->frame_to_show, cm, xd, lf->filter_level, 0, 0);
#else
if (cpi->num_workers > 1)
......
......@@ -42,7 +42,7 @@ static int64_t try_filter_frame(const YV12_BUFFER_CONFIG *sd,
AV1_COMMON *const cm = &cpi->common;
int64_t filt_err;
#if CONFIG_VAR_TX || CONFIG_EXT_PARTITION
#if CONFIG_VAR_TX || CONFIG_EXT_PARTITION || CONFIG_CB4X4
av1_loop_filter_frame(cm->frame_to_show, cm, &cpi->td.mb.e_mbd, filt_level, 1,
partial_frame);
#else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment