From 07365c9a0f9ae30b98edaa8f7dd2576d2a49654e Mon Sep 17 00:00:00 2001 From: Cheng Chen Date: Thu, 21 Dec 2017 16:37:33 -0800 Subject: [PATCH] Remove lpf_sb As loopfilter is not needed for intrabc, clean up related code. Change-Id: If89d4969a7795cd8993e6add8fd03ef1296699ef --- av1/common/av1_loopfilter.c | 66 +-------------------------- av1/common/av1_loopfilter.h | 22 --------- av1/common/blockd.h | 14 ------ av1/common/enums.h | 6 --- av1/common/mvref_common.h | 18 +------- av1/decoder/decodeframe.c | 31 ++----------- av1/encoder/bitstream.c | 4 +- av1/encoder/encodeframe.c | 36 --------------- av1/encoder/encoder.c | 13 ------ av1/encoder/picklpf.c | 6 --- av1/encoder/picklpf.h | 5 -- build/cmake/aom_config_defaults.cmake | 1 - configure | 1 - tools/aom_entropy_optimizer.c | 24 ---------- 14 files changed, 8 insertions(+), 239 deletions(-) diff --git a/av1/common/av1_loopfilter.c b/av1/common/av1_loopfilter.c index 46173f8c6..b9d3ca7e4 100644 --- a/av1/common/av1_loopfilter.c +++ b/av1/common/av1_loopfilter.c @@ -2208,18 +2208,8 @@ static void av1_filter_block_plane_vert( const uint32_t scale_vert = plane_ptr->subsampling_y; uint8_t *const dst_ptr = plane_ptr->dst.buf; const int dst_stride = plane_ptr->dst.stride; -#if CONFIG_LPF_SB - int y_range = mi_row ? MAX_MIB_SIZE : MAX_MIB_SIZE - FILT_BOUNDARY_MI_OFFSET; - y_range = AOMMIN(y_range, cm->mi_rows); - y_range >>= scale_vert; - - int x_range = mi_col ? MAX_MIB_SIZE : MAX_MIB_SIZE - FILT_BOUNDARY_MI_OFFSET; - x_range = AOMMIN(x_range, cm->mi_cols); - x_range >>= scale_horz; -#else const int y_range = (MAX_MIB_SIZE >> scale_vert); const int x_range = (MAX_MIB_SIZE >> scale_horz); -#endif // CONFIG_LPF_SB for (int y = 0; y < y_range; y += row_step) { uint8_t *p = dst_ptr + y * MI_SIZE * dst_stride; for (int x = 0; x < x_range; x += col_step) { @@ -2329,18 +2319,8 @@ static void av1_filter_block_plane_horz( const uint32_t scale_vert = plane_ptr->subsampling_y; uint8_t *const dst_ptr = plane_ptr->dst.buf; const int dst_stride = plane_ptr->dst.stride; -#if CONFIG_LPF_SB - int y_range = mi_row ? MAX_MIB_SIZE : MAX_MIB_SIZE - FILT_BOUNDARY_MI_OFFSET; - y_range = AOMMIN(y_range, cm->mi_rows); - y_range >>= scale_vert; - - int x_range = mi_col ? MAX_MIB_SIZE : MAX_MIB_SIZE - FILT_BOUNDARY_MI_OFFSET; - x_range = AOMMIN(x_range, cm->mi_cols); - x_range >>= scale_horz; -#else const int y_range = (MAX_MIB_SIZE >> scale_vert); const int x_range = (MAX_MIB_SIZE >> scale_horz); -#endif // CONFIG_LPF_SB for (int y = 0; y < y_range; y += row_step) { uint8_t *p = dst_ptr + y * MI_SIZE * dst_stride; for (int x = 0; x < x_range; x += col_step) { @@ -2443,9 +2423,6 @@ static void av1_filter_block_plane_horz( void av1_loop_filter_rows(YV12_BUFFER_CONFIG *frame_buffer, AV1_COMMON *cm, struct macroblockd_plane *planes, int start, int stop, -#if CONFIG_LPF_SB - int col_start, int col_end, -#endif int y_only) { #if CONFIG_LOOPFILTER_LEVEL // y_only no longer has its original meaning. @@ -2459,12 +2436,10 @@ void av1_loop_filter_rows(YV12_BUFFER_CONFIG *frame_buffer, AV1_COMMON *cm, const int plane_start = 0; const int plane_end = num_planes; #endif // CONFIG_LOOPFILTER_LEVEL -#if !CONFIG_LPF_SB #if CONFIG_PARALLEL_DEBLOCKING const int col_start = 0; const int col_end = cm->mi_cols; #endif -#endif // CONFIG_LPF_SB int mi_row, mi_col; int plane; @@ -2516,12 +2491,7 @@ void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm, #if CONFIG_LOOPFILTER_LEVEL int frame_filter_level_r, #endif - int y_only, int partial_frame -#if CONFIG_LPF_SB - , - int mi_row, int mi_col -#endif - ) { + int y_only, int partial_frame) { int start_mi_row, end_mi_row, mi_rows_to_filter; #if CONFIG_EXT_DELTA_Q #if CONFIG_LOOPFILTER_LEVEL @@ -2536,30 +2506,6 @@ void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm, #else if (!frame_filter_level) return; #endif -#if CONFIG_LPF_SB - int start_mi_col; - int end_mi_col; - - // In the experiment of deblocking filtering per superblock. - // When partial_frame is 1, it indicates we are searching for the best filter - // level for current superblock. We reuse frame_filter_level as filter level - // for superblock, no longer for the whole frame. - // When partial_frame is 0, it's in the actual filtering stage for the frame - if (partial_frame) { - start_mi_row = AOMMAX(0, mi_row - FILT_BOUNDARY_MI_OFFSET); - start_mi_col = AOMMAX(0, mi_col - FILT_BOUNDARY_MI_OFFSET); - const int mi_row_range = mi_row - FILT_BOUNDARY_MI_OFFSET + MAX_MIB_SIZE; - const int mi_col_range = mi_col - FILT_BOUNDARY_MI_OFFSET + MAX_MIB_SIZE; - end_mi_row = AOMMIN(mi_row_range, cm->mi_rows); - end_mi_col = AOMMIN(mi_col_range, cm->mi_cols); - } else { - start_mi_row = 0; - mi_rows_to_filter = cm->mi_rows; - end_mi_row = start_mi_row + mi_rows_to_filter; - start_mi_col = 0; - end_mi_col = cm->mi_cols; - } -#else start_mi_row = 0; mi_rows_to_filter = cm->mi_rows; if (partial_frame && cm->mi_rows > 8) { @@ -2576,7 +2522,6 @@ void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm, #else av1_loop_filter_frame_init(cm, frame_filter_level, frame_filter_level); #endif -#endif // CONFIG_LPF_SB #if CONFIG_EXT_DELTA_Q #if CONFIG_LOOPFILTER_LEVEL @@ -2587,12 +2532,7 @@ void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, AV1_COMMON *cm, #endif #endif -#if CONFIG_LPF_SB - av1_loop_filter_rows(frame, cm, xd->plane, start_mi_row, end_mi_row, - start_mi_col, end_mi_col, y_only); -#else av1_loop_filter_rows(frame, cm, xd->plane, start_mi_row, end_mi_row, y_only); -#endif // CONFIG_LPF_SB #if CONFIG_EXT_DELTA_Q #if CONFIG_LOOPFILTER_LEVEL @@ -2618,11 +2558,7 @@ void av1_loop_filter_data_reset(LFWorkerData *lf_data, int av1_loop_filter_worker(LFWorkerData *const lf_data, void *unused) { (void)unused; -#if !CONFIG_LPF_SB av1_loop_filter_rows(lf_data->frame_buffer, lf_data->cm, lf_data->planes, lf_data->start, lf_data->stop, lf_data->y_only); -#else - (void)lf_data; -#endif // CONFIG_LPF_SB return 1; } diff --git a/av1/common/av1_loopfilter.h b/av1/common/av1_loopfilter.h index 78305ecee..3dd274c5c 100644 --- a/av1/common/av1_loopfilter.h +++ b/av1/common/av1_loopfilter.h @@ -145,27 +145,6 @@ void av1_loop_filter_frame_init(struct AV1Common *cm, int default_filt_lvl, #endif ); -#if CONFIG_LPF_SB -void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, struct AV1Common *cm, - struct macroblockd *mbd, int filter_level, -#if CONFIG_LOOPFILTER_LEVEL - int frame_filter_level_r, -#endif - int y_only, int partial_frame, int mi_row, - int mi_col); - -// Apply the loop filter to [start, stop) macro block rows in frame_buffer. -void av1_loop_filter_rows(YV12_BUFFER_CONFIG *frame_buffer, - struct AV1Common *cm, - struct macroblockd_plane *planes, int start, int stop, - int col_start, int col_end, int y_only); - -void av1_loop_filter_sb_level_init(struct AV1Common *cm, int mi_row, int mi_col, -#if CONFIG_LOOPFILTER_LEVEL - int plane, int dir, -#endif - int lvl); -#else void av1_loop_filter_frame(YV12_BUFFER_CONFIG *frame, struct AV1Common *cm, struct macroblockd *mbd, int filter_level, #if CONFIG_LOOPFILTER_LEVEL @@ -178,7 +157,6 @@ void av1_loop_filter_rows(YV12_BUFFER_CONFIG *frame_buffer, struct AV1Common *cm, struct macroblockd_plane *planes, int start, int stop, int y_only); -#endif // CONFIG_LPF_SB typedef struct LoopFilterWorkerData { YV12_BUFFER_CONFIG *frame_buffer; diff --git a/av1/common/blockd.h b/av1/common/blockd.h index 1f14d3c88..579b6c7a0 100644 --- a/av1/common/blockd.h +++ b/av1/common/blockd.h @@ -320,20 +320,6 @@ typedef struct MB_MODE_INFO { #endif BOUNDARY_TYPE boundary_info; -#if CONFIG_LPF_SB -#if CONFIG_LOOPFILTER_LEVEL - // 0: y plane vert, 1: y plane horz, 2: u plane, 3: v plane - uint8_t filt_lvl[4]; - int reuse_sb_lvl[4]; - int sign[4]; - int delta[4]; -#else - uint8_t filt_lvl; - int reuse_sb_lvl; - int sign; - int delta; -#endif // CONFIG_LOOPFILTER_LEVEL -#endif // CONFIG_LPF_SB #if CONFIG_JNT_COMP int compound_idx; diff --git a/av1/common/enums.h b/av1/common/enums.h index a9b20606d..ef85f3f57 100644 --- a/av1/common/enums.h +++ b/av1/common/enums.h @@ -96,12 +96,6 @@ extern "C" { #define DEFAULT_DELTA_LF_MULTI 0 #endif // CONFIG_LOOPFILTER_LEVEL -#if CONFIG_LPF_SB -// Half of maximum loop filter length (15-tap) -#define FILT_BOUNDARY_OFFSET 0 -#define FILT_BOUNDARY_MI_OFFSET (FILT_BOUNDARY_OFFSET >> MI_SIZE_LOG2) -#endif // CONFIG_LPF_SB - #if CONFIG_JNT_COMP typedef enum COMPOUND_DIST_WEIGHT_MODE { DIST, diff --git a/av1/common/mvref_common.h b/av1/common/mvref_common.h index 6f64e07d1..1a508afe9 100644 --- a/av1/common/mvref_common.h +++ b/av1/common/mvref_common.h @@ -461,9 +461,6 @@ int findSamples(const AV1_COMMON *cm, MACROBLOCKD *xd, int mi_row, int mi_col, #define INTRABC_DELAY_PIXELS 256 // Delay of 256 pixels #define INTRABC_DELAY_SB64 (INTRABC_DELAY_PIXELS / 64) #define USE_WAVE_FRONT 1 // Use only top left area of frame for reference. -#if CONFIG_LPF_SB -#define INTRABC_FILTER_DELAY 8 // Delay of 8 pixels -#endif // CONFIG_LPF_SB static INLINE void av1_find_ref_dv(int_mv *ref_dv, const TileInfo *const tile, int mib_size, int mi_row, int mi_col) { @@ -497,24 +494,11 @@ static INLINE int av1_is_dv_valid(const MV dv, const TileInfo *const tile, const int src_left_edge = mi_col * MI_SIZE * SCALE_PX_TO_MV + dv.col; const int tile_left_edge = tile->mi_col_start * MI_SIZE * SCALE_PX_TO_MV; if (src_left_edge < tile_left_edge) return 0; -// Is the bottom right inside the current tile? -#if CONFIG_LPF_SB - // Because of loop filter, the bottom 8 rows and the rightmost 8 cols of - // IntraBC area now is invalid. It is equal to let the valid region add an - // offset of the filter delay - const int src_bottom_edge = - (mi_row * MI_SIZE + bh + INTRABC_FILTER_DELAY) * SCALE_PX_TO_MV + dv.row; -#else + // Is the bottom right inside the current tile? const int src_bottom_edge = (mi_row * MI_SIZE + bh) * SCALE_PX_TO_MV + dv.row; -#endif // CONFIG_LPF_SB const int tile_bottom_edge = tile->mi_row_end * MI_SIZE * SCALE_PX_TO_MV; if (src_bottom_edge > tile_bottom_edge) return 0; -#if CONFIG_LPF_SB - const int src_right_edge = - (mi_col * MI_SIZE + bw + INTRABC_FILTER_DELAY) * SCALE_PX_TO_MV + dv.col; -#else const int src_right_edge = (mi_col * MI_SIZE + bw) * SCALE_PX_TO_MV + dv.col; -#endif // CONFIG_LPF_SB const int tile_right_edge = tile->mi_col_end * MI_SIZE * SCALE_PX_TO_MV; if (src_right_edge > tile_right_edge) return 0; diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index fd79b4079..381413577 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c @@ -992,9 +992,9 @@ static void loop_restoration_read_sb_coeffs(const AV1_COMMON *const cm, #endif // CONFIG_LOOP_RESTORATION static void setup_loopfilter(AV1_COMMON *cm, struct aom_read_bit_buffer *rb) { -#if CONFIG_INTRABC && !CONFIG_LPF_SB +#if CONFIG_INTRABC if (cm->allow_intrabc && NO_FILTER_FOR_IBC) return; -#endif // CONFIG_INTRABC && !CONFIG_LPF_SB +#endif // CONFIG_INTRABC struct loopfilter *lf = &cm->lf; #if CONFIG_LOOPFILTER_LEVEL lf->filter_level[0] = aom_rb_read_literal(rb, 6); @@ -2098,27 +2098,6 @@ static const uint8_t *decode_tiles(AV1Decoder *pbi, const uint8_t *data, #endif decode_partition(pbi, &td->xd, mi_row, mi_col, &td->bit_reader, cm->sb_size); -#if CONFIG_LPF_SB - if (cm->allow_screen_content_tools) { -#if CONFIG_LOOPFILTER_LEVEL - if (cm->lf.filter_level[0] || cm->lf.filter_level[1]) { - av1_loop_filter_frame(get_frame_new_buffer(cm), cm, &pbi->mb, - cm->lf.filter_level[0], - cm->lf.filter_level[1], 0, 1, mi_row, - mi_col); - av1_loop_filter_frame( - get_frame_new_buffer(cm), cm, &pbi->mb, cm->lf.filter_level_u, - cm->lf.filter_level_u, 1, 1, mi_row, mi_col); - av1_loop_filter_frame( - get_frame_new_buffer(cm), cm, &pbi->mb, cm->lf.filter_level_v, - cm->lf.filter_level_v, 2, 1, mi_row, mi_col); - } -#else - av1_loop_filter_frame(get_frame_new_buffer(cm), cm, &pbi->mb, - cm->lf.filter_level, 0, 1, mi_row, mi_col); -#endif // CONFIG_LOOPFILTER_LEVEL - } -#endif // CONFIG_LPF_SB } aom_merge_corrupted_flag(&pbi->mb.corrupted, td->xd.corrupted); if (pbi->mb.corrupted) @@ -2137,12 +2116,11 @@ 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_INTRABC && !CONFIG_LPF_SB +#if CONFIG_INTRABC if (!(cm->allow_intrabc && NO_FILTER_FOR_IBC)) -#endif // CONFIG_INTRABC && !CONFIG_LPF_SB +#endif // CONFIG_INTRABC { // Loopfilter the whole frame. -#if !CONFIG_LPF_SB #if CONFIG_OBU if (endTile == cm->tile_rows * cm->tile_cols - 1) #endif @@ -2162,7 +2140,6 @@ static const uint8_t *decode_tiles(AV1Decoder *pbi, const uint8_t *data, av1_loop_filter_frame(get_frame_new_buffer(cm), cm, &pbi->mb, cm->lf.filter_level, 0, 0); #endif // CONFIG_LOOPFILTER_LEVEL -#endif // CONFIG_LPF_SB } if (cm->frame_parallel_decode) av1_frameworker_broadcast(pbi->cur_buf, INT_MAX); diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index a2bd8bb04..1ecca5338 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c @@ -2439,9 +2439,9 @@ static void loop_restoration_write_sb_coeffs(const AV1_COMMON *const cm, #endif // CONFIG_LOOP_RESTORATION static void encode_loopfilter(AV1_COMMON *cm, struct aom_write_bit_buffer *wb) { -#if CONFIG_INTRABC && !CONFIG_LPF_SB +#if CONFIG_INTRABC if (cm->allow_intrabc && NO_FILTER_FOR_IBC) return; -#endif // CONFIG_INTRABC && !CONFIG_LPF_SB +#endif // CONFIG_INTRABC int i; struct loopfilter *lf = &cm->lf; diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index 9d46505bd..9357aa522 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c @@ -56,9 +56,6 @@ #endif #include "av1/encoder/ethread.h" #include "av1/encoder/extend.h" -#if CONFIG_LPF_SB -#include "av1/encoder/picklpf.h" -#endif #include "av1/encoder/rd.h" #include "av1/encoder/rdopt.h" #include "av1/encoder/segmentation.h" @@ -3096,34 +3093,6 @@ static void encode_rd_sb_row(AV1_COMP *cpi, ThreadData *td, rd_pick_partition(cpi, td, tile_data, tp, mi_row, mi_col, cm->sb_size, &dummy_rdc, INT64_MAX, pc_root, NULL); } -#if CONFIG_LPF_SB - // TODO(chengchen): change to allow intraBC. It requires to store the - // unfiltered frame to a buffer and process later. - if (cm->allow_screen_content_tools) { -#if CONFIG_LOOPFILTER_LEVEL - int filter_lvl[4]; - - struct loopfilter *lf = &cpi->common.lf; - filter_lvl[0] = lf->filter_level[0]; - filter_lvl[1] = lf->filter_level[1]; - filter_lvl[2] = lf->filter_level_u; - filter_lvl[3] = lf->filter_level_v; - av1_loop_filter_frame(cm->frame_to_show, cm, xd, filter_lvl[0], - filter_lvl[1], 0, 1, mi_row, mi_col); - av1_loop_filter_frame(cm->frame_to_show, cm, xd, filter_lvl[2], - filter_lvl[2], 1, 1, mi_row, mi_col); - av1_loop_filter_frame(cm->frame_to_show, cm, xd, filter_lvl[3], - filter_lvl[3], 2, 1, mi_row, mi_col); -#else - int filter_lvl; - - struct loopfilter *lf = &cpi->common.lf; - filter_lvl = lf->filter_level; - av1_loop_filter_frame(get_frame_new_buffer(cm), cm, xd, filter_lvl, 0, 1, - mi_row, mi_col); -#endif // CONFIG_LOOPFILTER_LEVEL - } -#endif // CONFIG_LPF_SB } } @@ -3296,11 +3265,6 @@ static void encode_tiles(AV1_COMP *cpi) { av1_init_tile_data(cpi); -#if CONFIG_LPF_SB - cm->frame_to_show = get_frame_new_buffer(cm); - av1_pick_filter_level(cpi->source, cpi, LPF_PICK_FROM_Q); -#endif - for (tile_row = 0; tile_row < cm->tile_rows; ++tile_row) for (tile_col = 0; tile_col < cm->tile_cols; ++tile_col) av1_encode_tile(cpi, &cpi->td, tile_row, tile_col); diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c index dc16c9e79..e4bf069c3 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c @@ -5291,11 +5291,7 @@ static void loopfilter_frame(AV1_COMP *cpi, AV1_COMMON *cm) { || cm->large_scale_tile #endif // CONFIG_EXT_TILE ) { -#if CONFIG_LPF_SB - if (!cm->allow_screen_content_tools) no_loopfilter = 1; -#else no_loopfilter = 1; -#endif // CONFIG_LPF_SB #if CONFIG_LOOP_RESTORATION no_restoration = 1; #endif // CONFIG_LOOP_RESTORATION @@ -5327,26 +5323,18 @@ static void loopfilter_frame(AV1_COMP *cpi, AV1_COMMON *cm) { aom_usec_timer_start(&timer); -#if !CONFIG_LPF_SB av1_pick_filter_level(cpi->source, cpi, cpi->sf.lpf_pick); -#endif aom_usec_timer_mark(&timer); cpi->time_pick_lpf += aom_usec_timer_elapsed(&timer); } -#if !CONFIG_LPF_SB #if CONFIG_LOOPFILTER_LEVEL if (lf->filter_level[0] || lf->filter_level[1]) #else if (lf->filter_level > 0) #endif -#endif // CONFIG_LPF_SB { -#if CONFIG_LPF_SB && !CONFIG_LOOPFILTER_LEVEL - av1_loop_filter_frame(cm->frame_to_show, cm, xd, lf->filter_level, 0, 0, 0, - 0); -#elif !CONFIG_LPF_SB #if CONFIG_LOOPFILTER_LEVEL av1_loop_filter_frame(cm->frame_to_show, cm, xd, lf->filter_level[0], lf->filter_level[1], 0, 0); @@ -5358,7 +5346,6 @@ static void loopfilter_frame(AV1_COMP *cpi, AV1_COMMON *cm) { #else av1_loop_filter_frame(cm->frame_to_show, cm, xd, lf->filter_level, 0, 0); #endif // CONFIG_LOOPFILTER_LEVEL -#endif // CONFIG_LPF_SB } #if CONFIG_STRIPED_LOOP_RESTORATION diff --git a/av1/encoder/picklpf.c b/av1/encoder/picklpf.c index 3206f20f6..1aea028e4 100644 --- a/av1/encoder/picklpf.c +++ b/av1/encoder/picklpf.c @@ -27,7 +27,6 @@ #include "av1/encoder/encoder.h" #include "av1/encoder/picklpf.h" -#if !CONFIG_LPF_SB static void yv12_copy_plane(const YV12_BUFFER_CONFIG *src_bc, YV12_BUFFER_CONFIG *dst_bc, int plane) { switch (plane) { @@ -37,7 +36,6 @@ static void yv12_copy_plane(const YV12_BUFFER_CONFIG *src_bc, default: assert(plane >= 0 && plane <= 2); break; } } -#endif // CONFIG_LPF_SB int av1_get_max_filter_level(const AV1_COMP *cpi) { if (cpi->oxcf.pass == 2) { @@ -48,7 +46,6 @@ int av1_get_max_filter_level(const AV1_COMP *cpi) { } } -#if !CONFIG_LPF_SB static int64_t try_filter_frame(const YV12_BUFFER_CONFIG *sd, AV1_COMP *const cpi, int filt_level, int partial_frame @@ -213,7 +210,6 @@ static int search_filter_level(const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi, if (best_cost_ret) *best_cost_ret = RDCOST_DBL(x->rdmult, 0, best_err); return filt_best; } -#endif // CONFIG_LPF_SB void av1_pick_filter_level(const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi, LPF_PICK_METHOD method) { @@ -278,7 +274,6 @@ void av1_pick_filter_level(const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi, lf->filter_level = clamp(filt_guess, min_filter_level, max_filter_level); #endif } else { -#if !CONFIG_LPF_SB #if CONFIG_LOOPFILTER_LEVEL lf->filter_level[0] = lf->filter_level[1] = search_filter_level( sd, cpi, method == LPF_PICK_FROM_SUBIMAGE, NULL, 0, 2); @@ -295,6 +290,5 @@ void av1_pick_filter_level(const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi, lf->filter_level = search_filter_level(sd, cpi, method == LPF_PICK_FROM_SUBIMAGE, NULL); #endif // CONFIG_LOOPFILTER_LEVEL -#endif // !CONFIG_LPF_SB } } diff --git a/av1/encoder/picklpf.h b/av1/encoder/picklpf.h index 9c04d7dc5..2a168358e 100644 --- a/av1/encoder/picklpf.h +++ b/av1/encoder/picklpf.h @@ -23,11 +23,6 @@ struct AV1_COMP; int av1_get_max_filter_level(const AV1_COMP *cpi); void av1_pick_filter_level(const struct yv12_buffer_config *sd, struct AV1_COMP *cpi, LPF_PICK_METHOD method); -#if CONFIG_LPF_SB -int av1_search_filter_level(const YV12_BUFFER_CONFIG *sd, AV1_COMP *cpi, - int partial_frame, double *best_cost_ret, - int mi_row, int mi_col, int last_lvl); -#endif // CONFIG_LPF_SB #ifdef __cplusplus } // extern "C" #endif diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake index 6419acb71..f010dd7ff 100644 --- a/build/cmake/aom_config_defaults.cmake +++ b/build/cmake/aom_config_defaults.cmake @@ -158,7 +158,6 @@ set(CONFIG_LOOPFILTERING_ACROSS_TILES 1 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_LOOPFILTERING_ACROSS_TILES_EXT 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_LOOPFILTER_LEVEL 1 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_LOOP_RESTORATION 1 CACHE NUMBER "AV1 experiment flag.") -set(CONFIG_LPF_SB 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_LV_MAP 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_LV_MAP_MULTI 0 CACHE NUMBER "AV1 experiment flag.") set(CONFIG_MAX_TILE 1 CACHE NUMBER "AV1 experiment flag.") diff --git a/configure b/configure index ac5884870..ae12c188c 100755 --- a/configure +++ b/configure @@ -319,7 +319,6 @@ EXPERIMENT_LIST=" obu add_4bytes_obusize amvr - lpf_sb opt_ref_mv tmv ext_warped_motion diff --git a/tools/aom_entropy_optimizer.c b/tools/aom_entropy_optimizer.c index 8449334b6..73a61ec76 100644 --- a/tools/aom_entropy_optimizer.c +++ b/tools/aom_entropy_optimizer.c @@ -721,30 +721,6 @@ int main(int argc, const char **argv) { #endif // CONFIG_LV_MAP -/* lgt_from_pred experiment */ -#if CONFIG_LPF_SB - cts_each_dim[0] = LPF_REUSE_CONTEXT; - cts_each_dim[1] = 2; - optimize_cdf_table(&fc.lpf_reuse[0][0], probsfile, 2, cts_each_dim, - "static const aom_cdf_prob " - "default_lpf_reuse_cdf[LPF_REUSE_CONTEXT][CDF_SIZE(2)]"); - - cts_each_dim[0] = LPF_DELTA_CONTEXT; - cts_each_dim[1] = DELTA_RANGE; - optimize_cdf_table(&fc.lpf_delta[0][0], probsfile, 2, cts_each_dim, - "static const aom_cdf_prob " - "default_lpf_delta_cdf[LPF_DELTA_CONTEXT][CDF_SIZE(DELTA_" - "RANGE)]"); - - cts_each_dim[0] = LPF_REUSE_CONTEXT; - cts_each_dim[1] = LPF_SIGN_CONTEXT; - cts_each_dim[2] = 2; - optimize_cdf_table(&fc.lpf_delta[0][0], probsfile, 3, cts_each_dim, - "static const aom_cdf_prob " - "default_lpf_sign_cdf[LPF_REUSE_CONTEXT][LPF_SIGN_CONTEXT]" - "[CDF_SIZE(2)]"); -#endif - #if CONFIG_EXT_SKIP /* Skip mode flag */ cts_each_dim[0] = SKIP_MODE_CONTEXTS; -- GitLab