Commit b6e23bc4 authored by Yunqing Wang's avatar Yunqing Wang

Force to have a common frame header in large scale tile coding

In large scale tile coding(namely, large_scale_tile = 1), forced
all frames to generate a bit-exact uncompressed frame header.
This patch modified parameters that could change from one frame to
another.

Change-Id: Ibe72519da0b8a4f5a4ef30a4303ad7d7e4992a65
parent 2f319f2f
......@@ -4349,6 +4349,9 @@ void av1_encode_frame(AV1_COMP *cpi) {
#if CONFIG_DUAL_FILTER
cm->interp_filter = SWITCHABLE;
#endif
#if CONFIG_EXT_TILE
if (cm->large_scale_tile) cm->interp_filter = EIGHTTAP_REGULAR;
#endif // CONFIG_EXT_TILE
make_consistent_compound_tools(cm);
......@@ -4375,12 +4378,18 @@ void av1_encode_frame(AV1_COMP *cpi) {
}
make_consistent_compound_tools(cm);
if (cm->tx_mode == TX_MODE_SELECT && cpi->td.mb.txb_split_count == 0)
#if CONFIG_EXT_TILE
if (!cm->large_scale_tile) {
#endif // CONFIG_EXT_TILE
if (cm->tx_mode == TX_MODE_SELECT && cpi->td.mb.txb_split_count == 0)
#if CONFIG_SIMPLIFY_TX_MODE
cm->tx_mode = TX_MODE_LARGEST;
cm->tx_mode = TX_MODE_LARGEST;
#else
cm->tx_mode = ALLOW_32X32 + CONFIG_TX64X64;
#endif // CONFIG_SIMPLIFY_TX_MODE
#if CONFIG_EXT_TILE
}
#endif // CONFIG_EXT_TILE
} else {
make_consistent_compound_tools(cm);
encode_frame_internal(cpi);
......
......@@ -2491,7 +2491,14 @@ void av1_change_config(struct AV1_COMP *cpi, const AV1EncoderConfig *oxcf) {
rc->worst_quality = cpi->oxcf.worst_allowed_q;
rc->best_quality = cpi->oxcf.best_allowed_q;
cm->interp_filter = cpi->sf.default_interp_filter;
#if CONFIG_EXT_TILE
if (!oxcf->large_scale_tile)
#endif // CONFIG_EXT_TILE
cm->interp_filter = cpi->sf.default_interp_filter;
#if CONFIG_EXT_TILE
else
cm->interp_filter = EIGHTTAP_REGULAR;
#endif // CONFIG_EXT_TILE
if (cpi->oxcf.render_width > 0 && cpi->oxcf.render_height > 0) {
cm->render_width = cpi->oxcf.render_width;
......@@ -5496,6 +5503,9 @@ static void encode_frame_to_data_rate(AV1_COMP *cpi, size_t *size,
#if CONFIG_EXT_TILE
cm->large_scale_tile = cpi->oxcf.large_scale_tile;
cm->single_tile_decoding = cpi->oxcf.single_tile_decoding;
#if CONFIG_REFERENCE_BUFFER
if (cm->large_scale_tile) cm->seq_params.frame_id_numbers_present_flag = 0;
#endif // CONFIG_REFERENCE_BUFFER
#endif // CONFIG_EXT_TILE
#if CONFIG_MONO_VIDEO
......
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