Remove a category in #1076 Remove macro a category in https://gitlab.com/AOMediaCodec/avm/-/issues/1076 CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID, CONFIG_CWG_F349_SIGNAL_TILE_INFO, CONFIG_CWG_F362
diff --git a/av2/common/av2_common_int.h b/av2/common/av2_common_int.h index a6a5439..e96dc87 100644 --- a/av2/common/av2_common_int.h +++ b/av2/common/av2_common_int.h
@@ -643,9 +643,7 @@ // in the Sequence header and Multi Frame Header // Different from CommonTilesParams which is used to process the tiles typedef struct TileInfoSyntax { -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO uint8_t allow_tile_info_change; /*!< whether to allow tile info change */ -#endif CommonTileParams tile_info; } TileInfoSyntax; #endif // CONFIG_CWG_E242_SIGNAL_TILE_INFO @@ -5951,7 +5949,6 @@ } #endif // CONFIG_CWG_E242_SIGNAL_TILE_INFO -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO static INLINE int is_frame_tile_config_reuse_eligible( const TileInfoSyntax *const tile_params, const CommonTileParams *const tiles) { @@ -5959,7 +5956,6 @@ (tile_params->tile_info.sb_rows == tiles->sb_rows && tile_params->tile_info.sb_cols == tiles->sb_cols)); } -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO #if CONFIG_MULTI_LEVEL_SEGMENTATION static INLINE int is_frame_seg_config_reuse_eligible( @@ -5988,7 +5984,6 @@ } #endif // CONFIG_MULTI_LEVEL_SEGMENTATION -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID // This function derives the order of frame output with layer IDs static INLINE uint64_t derive_output_order_idx(AV2_COMMON *cm, RefCntBuffer *output_candidate) { @@ -5997,7 +5992,6 @@ uint64_t display_order = output_candidate->display_order_hint; return ((max_mlayer_id + 1) * display_order) + mlayer_id; } -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #ifdef __cplusplus } // extern "C"
diff --git a/av2/decoder/decodeframe.c b/av2/decoder/decodeframe.c index 129eff3..3dc636e 100644 --- a/av2/decoder/decodeframe.c +++ b/av2/decoder/decodeframe.c
@@ -3213,15 +3213,11 @@ return; } init_gdf(cm); -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { cm->gdf_info.gdf_mode = 1; } else { cm->gdf_info.gdf_mode = avm_rb_read_bit(rb); } -#else - cm->gdf_info.gdf_mode = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F362 if (cm->gdf_info.gdf_mode > 0) { alloc_gdf_buffers(&cm->gdf_info); if (cm->gdf_info.gdf_block_num > 1) { @@ -3244,15 +3240,11 @@ if (cm->bru.frame_inactive_flag || cm->features.tip_frame_mode == TIP_FRAME_AS_OUTPUT) return; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { cdef_info->cdef_frame_enable = 1; } else { cdef_info->cdef_frame_enable = avm_rb_read_bit(rb); } -#else - cdef_info->cdef_frame_enable = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F362 if (!cdef_info->cdef_frame_enable) { cdef_info->cdef_on_skip_txfm_frame_enable = 0; return; @@ -3324,15 +3316,11 @@ if (cm->bridge_frame_info.is_bridge_frame) { cm->ccso_info.ccso_frame_flag = 0; } else { -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { cm->ccso_info.ccso_frame_flag = 1; } else { cm->ccso_info.ccso_frame_flag = avm_rb_read_bit(rb); } -#else - cm->ccso_info.ccso_frame_flag = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F362 } if (cm->ccso_info.ccso_frame_flag) { const int ccso_blk_size = get_ccso_unit_size_log2_adaptive_tile( @@ -4416,7 +4404,6 @@ #if CONFIG_CWG_E242_SIGNAL_TILE_INFO const TileInfoSyntax *const tile_params = find_effective_tile_params(cm); int reuse = 0; -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO if (tile_params && is_frame_tile_config_reuse_eligible(tile_params, &cm->tiles)) { if (tile_params->allow_tile_info_change) @@ -4424,14 +4411,6 @@ else reuse = 1; } -#else - cm->current_frame.tile_info_present_in_frame_header = avm_rb_read_bit(rb); - reuse = !cm->current_frame.tile_info_present_in_frame_header; - if (reuse && !tile_params) { - avm_internal_error(&cm->error, AVM_CODEC_CORRUPT_FRAME, - "No tile information present"); - } -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO if (reuse) { reconstruct_tile_info_max_tile(cm, tile_params); } else { @@ -6011,15 +5990,11 @@ if (seq_params->film_grain_params_present && (cm->show_frame || cm->showable_frame)) { avm_film_grain_t *pars = &cm->film_grain_params; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { pars->apply_grain = 1; } else { pars->apply_grain = avm_rb_read_bit(rb); } -#else - pars->apply_grain = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F362 if (pars->apply_grain) { cm->fgm_id = avm_rb_read_literal(rb, FGM_ID_BITS); pars->random_seed = avm_rb_read_literal(rb, 16); @@ -6067,15 +6042,11 @@ avm_film_grain_t *pars = &cm->film_grain_params; const SequenceHeader *const seq_params = &cm->seq_params; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { pars->apply_grain = 1; } else { pars->apply_grain = avm_rb_read_bit(rb); } -#else - pars->apply_grain = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F362 if (!pars->apply_grain) { memset(pars, 0, sizeof(*pars)); return; @@ -6486,9 +6457,7 @@ #if CONFIG_CWG_E242_SIGNAL_TILE_INFO void read_tile_syntax_info(TileInfoSyntax *tile_params, struct avm_read_bit_buffer *rb) { -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO tile_params->allow_tile_info_change = avm_rb_read_bit(rb); -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO CommonTileParams *tile_info = &tile_params->tile_info; tile_info->uniform_spacing = avm_rb_read_bit(rb); @@ -7219,9 +7188,7 @@ #endif //! CONFIG_IMPROVED_REORDER_SEQ_FLAGS #if CONFIG_CWG_E242_SIGNAL_TILE_INFO seq_params->seq_tile_info_present_flag = 0; -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO seq_params->tile_params.allow_tile_info_change = 0; -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO #endif // CONFIG_CWG_E242_SIGNAL_TILE_INFO #if CONFIG_REORDER_SEQ_FLAGS #if CONFIG_IMPROVED_REORDER_SEQ_FLAGS @@ -10729,13 +10696,8 @@ if (is_first_tile_group) { #if CONFIG_BITSTREAM_DEBUG -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID avm_bitstream_queue_set_frame_read( (int)(derive_output_order_idx(cm, cm->cur_frame) * 2 + cm->show_frame)); -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - avm_bitstream_queue_set_frame_read(cm->current_frame.order_hint * 2 + - cm->show_frame); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #endif // avm_rb_bytes_read()= (rb->bit_offset + 7) >> 3;
diff --git a/av2/decoder/decoder.c b/av2/decoder/decoder.c index 9a62e0f..b09c4b8 100644 --- a/av2/decoder/decoder.c +++ b/av2/decoder/decoder.c
@@ -670,13 +670,8 @@ output_candidate = trigger_frame; for (int i = 0; i < cm->seq_params.ref_frames; i++) { if (is_frame_eligible_for_output(cm->ref_frame_map[i]) && -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID derive_output_order_idx(cm, cm->ref_frame_map[i]) < derive_output_order_idx(cm, output_candidate)) { -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - cm->ref_frame_map[i]->display_order_hint < - output_candidate->display_order_hint) { -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID output_candidate = cm->ref_frame_map[i]; } } @@ -685,12 +680,8 @@ &pbi->output_frames[pbi->num_output_frames++], output_candidate); output_candidate->frame_output_done = 1; #if CONFIG_BITSTREAM_DEBUG -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID avm_bitstream_queue_set_frame_read( derive_output_order_idx(cm, output_candidate) * 2 + 1); -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - avm_bitstream_queue_set_frame_read(output_candidate->order_hint * 2 + 1); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #endif // CONFIG_BITSTREAM_DEBUG #if CONFIG_MISMATCH_DEBUG mismatch_move_frame_idx_r(0); @@ -716,12 +707,8 @@ #if CONFIG_BITSTREAM_DEBUG if (trigger_frame->order_hint != cm->cur_frame->order_hint) { -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID avm_bitstream_queue_set_frame_read( derive_output_order_idx(cm, trigger_frame) * 2 + 1); -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - avm_bitstream_queue_set_frame_read(trigger_frame->order_hint * 2 + 1); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID } #endif // CONFIG_BITSTREAM_DEBUG #if CONFIG_MISMATCH_DEBUG @@ -729,11 +716,9 @@ mismatch_move_frame_idx_r(0); #endif // CONFIG_MISMATCH_DEBUG - // Add the next frames (showable_frame == 1) into the output queue. -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID + // Add the next frames (showable_frame == 1) into the output queue. uint64_t trigger_frame_output_order = derive_output_order_idx(cm, trigger_frame); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #if CONFIG_F322_OBUER_REFRESTRICT // NOTE when the restricted switch frame is used, the DOHs of some reference @@ -744,33 +729,20 @@ int successive_output = 1; for (int k = 1; k <= cm->seq_params.ref_frames && successive_output > 0; k++) { -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID uint64_t next_frame_output_order = trigger_frame_output_order + k; -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - unsigned int next_disp_order = trigger_frame->display_order_hint + k; -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID successive_output = 0; for (int i = 0; i < cm->seq_params.ref_frames; i++) { if (is_frame_eligible_for_output(cm->ref_frame_map[i]) && -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID derive_output_order_idx(cm, cm->ref_frame_map[i]) == - next_frame_output_order -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - cm->ref_frame_map[i]->display_order_hint == next_disp_order -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYE - ) { + next_frame_output_order) { assign_output_frame_buffer_p( &pbi->output_frames[pbi->num_output_frames++], cm->ref_frame_map[i]); cm->ref_frame_map[i]->frame_output_done = 1; successive_output++; #if CONFIG_BITSTREAM_DEBUG -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID avm_bitstream_queue_set_frame_read( derive_output_order_idx(cm, cm->ref_frame_map[i]) * 2 + 1); -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - avm_bitstream_queue_set_frame_read(next_disp_order * 2 + 1); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #endif // CONFIG_BITSTREAM_DEBUG #if CONFIG_MISMATCH_DEBUG mismatch_move_frame_idx_r(0);
diff --git a/av2/encoder/bitstream.c b/av2/encoder/bitstream.c index e8f26a9..d5fd009 100644 --- a/av2/encoder/bitstream.c +++ b/av2/encoder/bitstream.c
@@ -3828,15 +3828,11 @@ cm->features.tip_frame_mode == TIP_FRAME_AS_OUTPUT) { return; } -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { assert(cm->gdf_info.gdf_mode > 0); } else { avm_wb_write_bit(wb, cm->gdf_info.gdf_mode == 0 ? 0 : 1); } -#else - avm_wb_write_bit(wb, cm->gdf_info.gdf_mode == 0 ? 0 : 1); -#endif // CONFIG_CWG_F362 if (cm->gdf_info.gdf_mode) { if (cm->gdf_info.gdf_block_num > 1) { avm_wb_write_bit(wb, cm->gdf_info.gdf_mode == 1 ? 0 : 1); @@ -3856,15 +3852,11 @@ if (cm->bru.frame_inactive_flag || cm->features.tip_frame_mode == TIP_FRAME_AS_OUTPUT) return; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { assert(cdef_info->cdef_frame_enable); } else { avm_wb_write_bit(wb, cdef_info->cdef_frame_enable); } -#else - avm_wb_write_bit(wb, cdef_info->cdef_frame_enable); -#endif // CONFIG_CWG_F362 if (!cdef_info->cdef_frame_enable) return; const int num_planes = av2_num_planes(cm); int i; @@ -3920,15 +3912,11 @@ : cm->ref_frames_info.num_total_refs; #endif // CONFIG_F322_OBUER_REFRESTRICT if (!cm->bridge_frame_info.is_bridge_frame) { -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { assert(cm->ccso_info.ccso_frame_flag); } else { avm_wb_write_literal(wb, cm->ccso_info.ccso_frame_flag, 1); } -#else - avm_wb_write_literal(wb, cm->ccso_info.ccso_frame_flag, 1); -#endif // CONFIG_CWG_F362 } if (cm->ccso_info.ccso_frame_flag) { for (int plane = 0; plane < av2_num_planes(cm); plane++) { @@ -4399,7 +4387,6 @@ #if CONFIG_CWG_E242_SIGNAL_TILE_INFO const TileInfoSyntax *const tile_params = find_effective_tile_params(cm); int reuse = 0; -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO if (tile_params && is_frame_tile_config_reuse_eligible(tile_params, &cm->tiles)) { if (tile_params->allow_tile_info_change) { @@ -4410,13 +4397,6 @@ } assert(IMPLIES(reuse, check_tile_equivalence(tile_params, &cm->tiles))); } -#else - if (tile_params) { - reuse = check_tile_equivalence(tile_params, &cm->tiles); - } - bool tile_info_present_in_frame_header = !reuse; - avm_wb_write_bit(wb, tile_info_present_in_frame_header); -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO if (!reuse) write_tile_info_max_tile(&cm->tiles, wb); #else write_tile_info_max_tile(&cm->tiles, wb); @@ -4735,9 +4715,7 @@ // Writes tile syntax void write_tile_syntax_info(const TileInfoSyntax *tile_params, struct avm_write_bit_buffer *wb) { -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO avm_wb_write_bit(wb, tile_params->allow_tile_info_change); -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO const CommonTileParams *tiles = &tile_params->tile_info; int size_sb, i; int tile_width_sb = tiles->sb_cols; @@ -4793,15 +4771,11 @@ struct avm_write_bit_buffer *wb) { const AV2_COMMON *const cm = &cpi->common; const avm_film_grain_t *const pars = &cm->cur_frame->film_grain_params; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { assert(pars->apply_grain); } else { avm_wb_write_bit(wb, pars->apply_grain); } -#else - avm_wb_write_bit(wb, pars->apply_grain); -#endif // CONFIG_CWG_F362 if (pars->apply_grain) { avm_wb_write_literal(wb, cm->fgm_id, FGM_ID_BITS); avm_wb_write_literal(wb, pars->random_seed, 16); @@ -4813,15 +4787,11 @@ const AV2_COMMON *const cm = &cpi->common; const avm_film_grain_t *const pars = &cm->cur_frame->film_grain_params; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { assert(pars->apply_grain); } else { avm_wb_write_bit(wb, pars->apply_grain); } -#else - avm_wb_write_bit(wb, pars->apply_grain); -#endif // CONFIG_CWG_F362 if (!pars->apply_grain) return; avm_wb_write_literal(wb, pars->random_seed, 16); @@ -9037,7 +9007,6 @@ const uint8_t film_grain_params_present_save = cm->seq_params.film_grain_params_present; -#if CONFIG_CWG_F362 if (cm->seq_params.single_picture_header_flag) { if (cm->gdf_info.gdf_mode == 0) { cm->seq_params.enable_gdf = 0; @@ -9052,7 +9021,6 @@ cm->seq_params.film_grain_params_present = 0; } } -#endif // CONFIG_CWG_F362 const int res = av2_pack_bitstream_internal(cpi, dst, size, largest_tile_id);
diff --git a/av2/encoder/encoder.c b/av2/encoder/encoder.c index 6d6e861..c428567 100644 --- a/av2/encoder/encoder.c +++ b/av2/encoder/encoder.c
@@ -431,9 +431,7 @@ ? frm_dim_cfg->forced_max_frame_height : frm_dim_cfg->height; #if CONFIG_CWG_E242_SIGNAL_TILE_INFO -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO seq->tile_params.allow_tile_info_change = 0; -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO if (!seq->still_picture && oxcf->kf_cfg.key_freq_max > 0) { av2_set_seq_tile_info(seq, oxcf); seq->seq_tile_info_present_flag = 1; @@ -5151,13 +5149,8 @@ assert(cpi->oxcf.max_threads <= 1 && "bitstream debug tool does not support multithreading"); bitstream_queue_record_write(); -#if CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID avm_bitstream_queue_set_frame_write( (int)(derive_output_order_idx(cm, cm->cur_frame) * 2 + cm->show_frame)); -#else // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID - avm_bitstream_queue_set_frame_write(cm->current_frame.order_hint * 2 + - cm->show_frame); -#endif // CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID #endif // CONFIG_BITSTREAM_DEBUG const ResizeCfg *resize_cfg = &cpi->oxcf.resize_cfg; FeatureFlags *const features = &cm->features;
diff --git a/av2/encoder/encoder_utils.h b/av2/encoder/encoder_utils.h index 7ffbcdf..367b021 100644 --- a/av2/encoder/encoder_utils.h +++ b/av2/encoder/encoder_utils.h
@@ -1009,7 +1009,6 @@ const TileConfig *const tile_cfg = &oxcf->tile_cfg; TileInfoSyntax *tile_params = &seq_params->tile_params; CommonTileParams *tiles = &seq_params->tile_params.tile_info; -#if CONFIG_CWG_F349_SIGNAL_TILE_INFO // For uniform tile spacing or if resize is disabled we currently do not // need to change tiling config per frame. This is an encoder side choice // and can be changed later. @@ -1017,7 +1016,6 @@ !(oxcf->resize_cfg.resize_mode == RESIZE_NONE || oxcf->tile_cfg.tile_width_count == 0 || oxcf->tile_cfg.tile_height_count == 0); -#endif // CONFIG_CWG_F349_SIGNAL_TILE_INFO int i, start_sb; av2_get_seqmfh_tile_limits( tile_params, seq_params->max_frame_height, seq_params->max_frame_width,
diff --git a/build/cmake/avm_config_defaults.cmake b/build/cmake/avm_config_defaults.cmake index 9c52044..53c25b2 100644 --- a/build/cmake/avm_config_defaults.cmake +++ b/build/cmake/avm_config_defaults.cmake
@@ -178,10 +178,6 @@ set_avm_config_var(CONFIG_SCAN_TYPE_METADATA 1 "CWG-F233 Scan type metadata syntax") -# CWG-F349 -set_avm_config_var(CONFIG_CWG_F349_SIGNAL_TILE_INFO 1 - "Improved tile information at sequence header.") - # CWG-E242 Chroma Format IDC set_avm_config_var(CONFIG_CWG_E242_CHROMA_FORMAT_IDC 1 "Chroma format idc.") @@ -198,8 +194,6 @@ # Source of throughput analysis : CWG-B065 set_avm_config_var(CONFIG_THROUGHPUT_ANALYSIS 0 "AV2 experiment flag to measure throughput.") -set_avm_config_var(CONFIG_FRAME_OUTPUT_ORDER_WITH_LAYER_ID 1 - "Enable frame output order derivation with layer ID") set_avm_config_var(CONFIG_CWG_E242_MFH_ID_UVLC 1 "Signaling multi-frame header ID in UVLC") set_avm_config_var(OBU_ORDER_IN_TU 1 "Check OBU order in TU") @@ -233,8 +227,6 @@ CONFIG_ADJ_PYR_Q_OFFSET_LD 1 "Encoder-only config to adjust pyr qp offsets for LD from nominal.") -set_avm_config_var(CONFIG_CWG_F362 1 - "Implicit frame tool flags for single picture headers.") set_avm_config_var( CONFIG_CWG_F377_STILL_PICTURE 1 "Sequence header OBU changes for single_picture_header_flag.")
diff --git a/build/cmake/avm_experiment_deps.cmake b/build/cmake/avm_experiment_deps.cmake index 934b485..5716432 100644 --- a/build/cmake/avm_experiment_deps.cmake +++ b/build/cmake/avm_experiment_deps.cmake
@@ -54,11 +54,6 @@ change_config_and_warn(CONFIG_TENSORFLOW_LITE 1 CONFIG_DIP_EXT_PRUNING) endif() - if(CONFIG_CWG_F349_SIGNAL_TILE_INFO) - change_config_and_warn(CONFIG_CWG_E242_SIGNAL_TILE_INFO 1 - CONFIG_CWG_F349_SIGNAL_TILE_INFO) - endif() - if(CONFIG_QM_REVERT) change_config_and_warn(CONFIG_F255_QMOBU 1 CONFIG_QM_REVERT) endif()