CWG-B068: Changes to ORIP
In B068, it's proposed to always enable ORIP to V/H intra prediction mode
on zero reference line and always disable ORIP to V/H on non-zero
reference line.
STATS_CHANGED
diff --git a/av1/common/entropy.c b/av1/common/entropy.c
index 2e1eb01..94dbcc2 100644
--- a/av1/common/entropy.c
+++ b/av1/common/entropy.c
@@ -202,11 +202,6 @@
#endif
RESET_CDF_COUNTER(fc->switchable_interp_cdf, SWITCHABLE_FILTERS);
RESET_CDF_COUNTER(fc->kf_y_cdf, INTRA_MODES);
-#if CONFIG_ORIP
- RESET_CDF_COUNTER(fc->angle_delta_cdf_hv,
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA);
-#endif
-
RESET_CDF_COUNTER(fc->angle_delta_cdf, 2 * MAX_ANGLE_DELTA + 1);
#if CONFIG_NEW_TX_PARTITION
RESET_CDF_COUNTER(fc->intra_4way_txfm_partition_cdf[0], 4);
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index 93392c8..e2c37ca 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -100,22 +100,6 @@
{ AOM_CDF7(2240, 11096, 15453, 20341, 22561, 28917) },
{ AOM_CDF7(3605, 10428, 12459, 17676, 21244, 30655) } }
};
-
-#if CONFIG_ORIP
-static const aom_cdf_prob default_angle_delta_cdf_hv
- [PARTITION_STRUCTURE_NUM][TOTAL_NUM_ORIP_ANGLE_DELTA]
- [CDF_SIZE(2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA)] = {
- {
- { AOM_CDF8(1180, 3032, 4567, 19776, 22989, 25217, 26639) },
- { AOM_CDF8(1301, 3608, 5801, 20487, 22974, 25330, 26371) },
- },
- {
- { AOM_CDF8(1180, 3032, 4567, 19776, 22989, 25217, 26639) },
- { AOM_CDF8(1301, 3608, 5801, 20487, 22974, 25330, 26371) },
- }
- };
-
-#endif
#else
static const aom_cdf_prob default_angle_delta_cdf[DIRECTIONAL_MODES][CDF_SIZE(
2 * MAX_ANGLE_DELTA + 1)] = {
@@ -128,15 +112,6 @@
{ AOM_CDF7(2240, 11096, 15453, 20341, 22561, 28917) },
{ AOM_CDF7(3605, 10428, 12459, 17676, 21244, 30655) }
};
-#if CONFIG_ORIP
-static const aom_cdf_prob
- default_angle_delta_cdf_hv[TOTAL_NUM_ORIP_ANGLE_DELTA][CDF_SIZE(
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA)] = {
- { AOM_CDF8(1180, 3032, 4567, 19776, 22989, 25217, 26639) },
- { AOM_CDF8(1301, 3608, 5801, 20487, 22974, 25330, 26371) },
- };
-
-#endif
#endif
static const aom_cdf_prob default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
@@ -1392,9 +1367,6 @@
av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
av1_copy(fc->kf_y_cdf, default_kf_y_mode_cdf);
-#if CONFIG_ORIP
- av1_copy(fc->angle_delta_cdf_hv, default_angle_delta_cdf_hv);
-#endif
av1_copy(fc->angle_delta_cdf, default_angle_delta_cdf);
av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf);
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h
index fcbe79e..612123b 100644
--- a/av1/common/entropymode.h
+++ b/av1/common/entropymode.h
@@ -181,19 +181,9 @@
#if CONFIG_SDP
aom_cdf_prob angle_delta_cdf[PARTITION_STRUCTURE_NUM][DIRECTIONAL_MODES]
[CDF_SIZE(2 * MAX_ANGLE_DELTA + 1)];
-#if CONFIG_ORIP
- aom_cdf_prob angle_delta_cdf_hv[PARTITION_STRUCTURE_NUM]
- [TOTAL_NUM_ORIP_ANGLE_DELTA]
- [CDF_SIZE(2 * MAX_ANGLE_DELTA + 1 +
- ADDITIONAL_ANGLE_DELTA)];
-#endif
#else
aom_cdf_prob angle_delta_cdf[DIRECTIONAL_MODES]
[CDF_SIZE(2 * MAX_ANGLE_DELTA + 1)];
-#if CONFIG_ORIP
- aom_cdf_prob angle_delta_cdf_hv[TOTAL_NUM_ORIP_ANGLE_DELTA][CDF_SIZE(
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA)];
-#endif
#endif
#if CONFIG_NEW_TX_PARTITION
diff --git a/av1/common/enums.h b/av1/common/enums.h
index 555e378..5e1fa63 100644
--- a/av1/common/enums.h
+++ b/av1/common/enums.h
@@ -650,12 +650,6 @@
#define MAX_ANGLE_DELTA 3
#define ANGLE_STEP 3
-#if CONFIG_ORIP
-#define ADDITIONAL_ANGLE_DELTA 1
-#define TOTAL_NUM_ORIP_ANGLE_DELTA 2
-#define ANGLE_DELTA_VALUE_ORIP (MAX_ANGLE_DELTA + 1)
-#endif
-
#define INTER_SINGLE_MODES SINGLE_INTER_MODE_NUM
#define INTER_COMPOUND_MODES COMP_INTER_MODE_NUM
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index efd8b6d..77ab9d8 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -2518,12 +2518,7 @@
av1_predict_intra_block(cm, xd, pd->width, pd->height,
max_txsize_rect_lookup[plane_bsize], mode, 0, 0,
FILTER_INTRA_MODES, ctx->plane[plane],
- ctx->stride[plane], dst, dst_stride, 0, 0,
-#if CONFIG_ORIP
- plane, 0);
-#else
- plane);
-#endif
+ ctx->stride[plane], dst, dst_stride, 0, 0, plane);
}
void av1_combine_interintra(MACROBLOCKD *xd, BLOCK_SIZE bsize, int plane,
diff --git a/av1/common/reconintra.c b/av1/common/reconintra.c
index baf33cd..da53b8c 100644
--- a/av1/common/reconintra.c
+++ b/av1/common/reconintra.c
@@ -1430,7 +1430,6 @@
#endif
#if CONFIG_ORIP
,
- const int disable_intra_pred_filter_for_hor_ver_mode,
const int seq_intra_pred_filter_flag
#endif
#if CONFIG_IBP_DIR || CONFIG_IBP_DC
@@ -1525,8 +1524,7 @@
#if CONFIG_ORIP && !CONFIG_ORIP_NONDC_DISABLED
if (apply_sub_block_based_refinement_filter &&
- (p_angle == 90 || p_angle == 180) &&
- !disable_intra_pred_filter_for_hor_ver_mode) {
+ (p_angle == 90 || p_angle == 180)) {
need_above = 1;
need_left = 1;
need_above_left = 1;
@@ -1780,9 +1778,8 @@
#if CONFIG_ORIP
#if !CONFIG_ORIP_NONDC_DISABLED
// Apply sub-block based filter for horizontal/vertical intra mode
- apply_sub_block_based_refinement_filter &=
- av1_allow_orip_dir(p_angle, disable_intra_pred_filter_for_hor_ver_mode);
- if (apply_sub_block_based_refinement_filter) {
+ if (apply_sub_block_based_refinement_filter &&
+ av1_allow_orip_dir(p_angle)) {
av1_apply_orip_4x4subblock_hbd(dst, dst_stride, tx_size, above_row,
left_col, mode, xd->bd);
}
@@ -1829,7 +1826,6 @@
#endif
#if CONFIG_ORIP
,
- const int disable_intra_pred_filter_for_hor_ver_mode,
const int seq_intra_pred_filter_flag
#endif
#if CONFIG_IBP_DIR || CONFIG_IBP_DC
@@ -1922,8 +1918,7 @@
#if CONFIG_ORIP && !CONFIG_ORIP_NONDC_DISABLED
if (apply_sub_block_based_refinement_filter &&
- (p_angle == 90 || p_angle == 180) &&
- !disable_intra_pred_filter_for_hor_ver_mode) {
+ (p_angle == 90 || p_angle == 180)) {
need_above = 1;
need_left = 1;
need_above_left = 1;
@@ -2173,9 +2168,8 @@
#if CONFIG_ORIP
#if !CONFIG_ORIP_NONDC_DISABLED
// Apply sub-block based filter for horizontal/vertical intra mode
- apply_sub_block_based_refinement_filter &=
- av1_allow_orip_dir(p_angle, disable_intra_pred_filter_for_hor_ver_mode);
- if (apply_sub_block_based_refinement_filter) {
+ if (apply_sub_block_based_refinement_filter &&
+ av1_allow_orip_dir(p_angle)) {
av1_apply_orip_4x4subblock(dst, dst_stride, tx_size, above_row, left_col,
mode);
}
@@ -2264,12 +2258,7 @@
const AV1_COMMON *cm, const MACROBLOCKD *xd, int wpx, int hpx,
TX_SIZE tx_size, PREDICTION_MODE mode, int angle_delta, int use_palette,
FILTER_INTRA_MODE filter_intra_mode, const uint8_t *ref, int ref_stride,
- uint8_t *dst, int dst_stride, int col_off, int row_off, int plane
-#if CONFIG_ORIP
- ,
- const int disable_intra_pred_filter_for_hor_ver_mode
-#endif
-) {
+ uint8_t *dst, int dst_stride, int col_off, int row_off, int plane) {
const MB_MODE_INFO *const mbmi = xd->mi[0];
const int txwpx = tx_size_wide[tx_size];
const int txhpx = tx_size_high[tx_size];
@@ -2349,55 +2338,55 @@
#endif
if (is_cur_buf_hbd(xd)) {
- build_intra_predictors_high(
- xd, ref, ref_stride, dst, dst_stride, mode, angle_delta,
- filter_intra_mode, tx_size, disable_edge_filter,
- have_top ? AOMMIN(txwpx, xr + txwpx) : 0,
- have_top_right ? AOMMIN(txwpx, xr) : 0,
- have_left ? AOMMIN(txhpx, yd + txhpx) : 0,
- have_bottom_left ? AOMMIN(txhpx, yd) : 0, plane
+ build_intra_predictors_high(xd, ref, ref_stride, dst, dst_stride, mode,
+ angle_delta, filter_intra_mode, tx_size,
+ disable_edge_filter,
+ have_top ? AOMMIN(txwpx, xr + txwpx) : 0,
+ have_top_right ? AOMMIN(txwpx, xr) : 0,
+ have_left ? AOMMIN(txhpx, yd + txhpx) : 0,
+ have_bottom_left ? AOMMIN(txhpx, yd) : 0, plane
#if CONFIG_MRLS
- ,
- is_sb_boundary
+ ,
+ is_sb_boundary
#endif
#if CONFIG_ORIP
- ,
- disable_intra_pred_filter_for_hor_ver_mode, cm->seq_params.enable_orip
+ ,
+ cm->seq_params.enable_orip
#endif
#if CONFIG_IBP_DIR || CONFIG_IBP_DC
- ,
- cm->seq_params.enable_ibp
+ ,
+ cm->seq_params.enable_ibp
#endif
#if CONFIG_IBP_DIR
- ,
- cm->ibp_directional_weights
+ ,
+ cm->ibp_directional_weights
#endif
);
return;
}
- build_intra_predictors(
- xd, ref, ref_stride, dst, dst_stride, mode, angle_delta,
- filter_intra_mode, tx_size, disable_edge_filter,
- have_top ? AOMMIN(txwpx, xr + txwpx) : 0,
- have_top_right ? AOMMIN(txwpx, xr) : 0,
- have_left ? AOMMIN(txhpx, yd + txhpx) : 0,
- have_bottom_left ? AOMMIN(txhpx, yd) : 0, plane
+ build_intra_predictors(xd, ref, ref_stride, dst, dst_stride, mode,
+ angle_delta, filter_intra_mode, tx_size,
+ disable_edge_filter,
+ have_top ? AOMMIN(txwpx, xr + txwpx) : 0,
+ have_top_right ? AOMMIN(txwpx, xr) : 0,
+ have_left ? AOMMIN(txhpx, yd + txhpx) : 0,
+ have_bottom_left ? AOMMIN(txhpx, yd) : 0, plane
#if CONFIG_MRLS
- ,
- is_sb_boundary
+ ,
+ is_sb_boundary
#endif
#if CONFIG_ORIP
- ,
- disable_intra_pred_filter_for_hor_ver_mode, cm->seq_params.enable_orip
+ ,
+ cm->seq_params.enable_orip
#endif
#if CONFIG_IBP_DIR || CONFIG_IBP_DC
- ,
- cm->seq_params.enable_ibp
+ ,
+ cm->seq_params.enable_ibp
#endif
#if CONFIG_IBP_DIR
- ,
- cm->ibp_directional_weights
+ ,
+ cm->ibp_directional_weights
#endif
);
}
@@ -2417,34 +2406,7 @@
? mbmi->filter_intra_mode_info.filter_intra_mode
: FILTER_INTRA_MODES;
-#if CONFIG_ORIP
-#if CONFIG_SDP
- const BLOCK_SIZE bsize = mbmi->sb_type[AOM_PLANE_Y];
-#else
- const BLOCK_SIZE bsize = mbmi->sb_type;
-#endif
- const int angle_delta =
- cm->seq_params.enable_orip
- ? ((mbmi->angle_delta[plane != AOM_PLANE_Y] == ANGLE_DELTA_VALUE_ORIP)
- ? 0
- : mbmi->angle_delta[plane != AOM_PLANE_Y] * ANGLE_STEP)
- : mbmi->angle_delta[plane != AOM_PLANE_Y] * ANGLE_STEP;
- const int disable_intra_pred_filter_for_hor_ver_mode =
- cm->seq_params.enable_orip
- ? ((mbmi->angle_delta[plane != AOM_PLANE_Y] == ANGLE_DELTA_VALUE_ORIP)
- ? 1
- : 0)
- : 1;
- if (cm->seq_params.enable_orip) {
- int violate_orip = disable_intra_pred_filter_for_hor_ver_mode;
- violate_orip &= !av1_signal_orip_for_horver_modes(
- cm, mbmi, plane != AOM_PLANE_Y, bsize);
- assert(violate_orip == 0);
- }
-
-#else
const int angle_delta = mbmi->angle_delta[plane != AOM_PLANE_Y] * ANGLE_STEP;
-#endif
if (plane != AOM_PLANE_Y && mbmi->uv_mode == UV_CFL_PRED) {
#if CONFIG_DEBUG
@@ -2471,13 +2433,7 @@
av1_predict_intra_block(cm, xd, pd->width, pd->height, tx_size, mode,
angle_delta, use_palette, filter_intra_mode, dst,
dst_stride, dst, dst_stride, blk_col, blk_row,
-#if CONFIG_ORIP
- plane,
- disable_intra_pred_filter_for_hor_ver_mode);
-#else
plane);
-#endif
-
if (cfl->use_dc_pred_cache) {
cfl_store_dc_pred(xd, dst, pred_plane, tx_size_wide[tx_size]);
cfl->dc_pred_is_cached[pred_plane] = 1;
@@ -2499,12 +2455,7 @@
av1_predict_intra_block(cm, xd, pd->width, pd->height, tx_size, mode,
angle_delta, use_palette, filter_intra_mode, dst,
-#if CONFIG_ORIP
- dst_stride, dst, dst_stride, blk_col, blk_row, plane,
- disable_intra_pred_filter_for_hor_ver_mode);
-#else
dst_stride, dst, dst_stride, blk_col, blk_row, plane);
-#endif
}
void av1_init_intra_predictors(void) {
diff --git a/av1/common/reconintra.h b/av1/common/reconintra.h
index a8b7abb..fd6e268 100644
--- a/av1/common/reconintra.h
+++ b/av1/common/reconintra.h
@@ -27,20 +27,11 @@
void av1_predict_intra_block_facade(const AV1_COMMON *cm, MACROBLOCKD *xd,
int plane, int blk_col, int blk_row,
TX_SIZE tx_size);
-#if CONFIG_ORIP
-void av1_predict_intra_block(
- const AV1_COMMON *cm, const MACROBLOCKD *xd, int wpx, int hpx,
- TX_SIZE tx_size, PREDICTION_MODE mode, int angle_delta, int use_palette,
- FILTER_INTRA_MODE filter_intra_mode, const uint8_t *ref, int ref_stride,
- uint8_t *dst, int dst_stride, int col_off, int row_off, int plane,
- const int disable_intra_pred_filter_for_hor_ver_mode);
-#else
void av1_predict_intra_block(
const AV1_COMMON *cm, const MACROBLOCKD *xd, int wpx, int hpx,
TX_SIZE tx_size, PREDICTION_MODE mode, int angle_delta, int use_palette,
FILTER_INTRA_MODE filter_intra_mode, const uint8_t *ref, int ref_stride,
uint8_t *dst, int dst_stride, int col_off, int row_off, int plane);
-#endif
#if CONFIG_ORIP
void av1_apply_orip_4x4subblock_hbd(uint16_t *dst, ptrdiff_t stride,
@@ -123,8 +114,8 @@
#endif
#endif
}
-static INLINE int av1_allow_orip_dir(int p_angle, int disable_filter) {
- return (!disable_filter && (p_angle == 90 || p_angle == 180));
+static INLINE int av1_allow_orip_dir(int p_angle) {
+ return (p_angle == 90 || p_angle == 180);
}
#endif
@@ -202,47 +193,6 @@
return type ? (blk_wh <= 8) : (blk_wh <= 16);
}
-#if CONFIG_ORIP
-// This function returns if enable/disable ORIP is signalled in the bitstream
-// 1 means signal; 0 means does not signal
-static INLINE int av1_signal_orip_for_horver_modes(const AV1_COMMON *cm,
- const MB_MODE_INFO *mbmi,
- PLANE_TYPE plane,
- BLOCK_SIZE bsize) {
-#if CONFIG_ORIP_NONDC_DISABLED
- return 0;
-#endif
- if (!cm->seq_params.enable_orip) return 0;
-
-#if CONFIG_SDP
- const int use_intrabc = mbmi->use_intrabc[PLANE_TYPE_Y];
- const int is_inter = is_inter_block(mbmi, SHARED_PART);
-#else
- const int use_intrabc = mbmi->use_intrabc;
- const int is_inter = is_inter_block(mbmi);
-#endif
-
- if (plane != PLANE_TYPE_Y || is_inter || use_intrabc) return 0;
- if (!av1_use_angle_delta(bsize)) return 0;
-
-#if CONFIG_MRLS
- if (mbmi->mrl_index) return 0;
-#endif
-
- if (mbmi->mode == V_PRED || mbmi->mode == H_PRED) return 1;
- return 0;
-}
-
-static INLINE int get_angle_delta_to_idx(int angle_delta) {
- return (MAX_ANGLE_DELTA + angle_delta);
-}
-
-static INLINE int get_idx_to_angle_delta(int index) {
- return (index - MAX_ANGLE_DELTA);
-}
-
-#endif
-
#if CONFIG_IBP_DIR
static const int32_t transpose_tx_size[TX_SIZES_ALL] = {
TX_4X4, TX_8X8, TX_16X16, TX_32X32, TX_64X64, TX_8X4, TX_4X8,
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 7cfc173..b3519dc 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -754,14 +754,6 @@
}
}
-#if CONFIG_ORIP
-static int read_angle_delta_hv(aom_reader *r, aom_cdf_prob *cdf) {
- const int sym = aom_read_symbol(
- r, cdf, 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA, ACCT_STR);
- return get_idx_to_angle_delta(sym);
-}
-#endif
-
static int read_angle_delta(aom_reader *r, aom_cdf_prob *cdf) {
const int sym = aom_read_symbol(r, cdf, 2 * MAX_ANGLE_DELTA + 1, ACCT_STR);
return sym - MAX_ANGLE_DELTA;
@@ -1118,61 +1110,24 @@
if (xd->tree_type != CHROMA_PART) {
#endif // CONFIG_SDP
mbmi->mode = read_intra_mode(r, get_y_mode_cdf(ec_ctx, above_mi, left_mi));
-#if CONFIG_ORIP
-#if CONFIG_MRLS
- // when both ORIP and MRLS are enabled, mrl index are signalled right after
- // intra mode and before angle delta
- // Parsing reference line index
- mbmi->mrl_index =
- (cm->seq_params.enable_mrls && av1_is_directional_mode(mbmi->mode))
- ? read_mrl_index(ec_ctx, r)
- : 0;
-#endif // CONFIG_MRLS
-
- if (use_angle_delta && av1_is_directional_mode(mbmi->mode)) {
- int signal_intra_filter =
- av1_signal_orip_for_horver_modes(cm, mbmi, PLANE_TYPE_Y, bsize);
- aom_cdf_prob *anglecdf =
- signal_intra_filter
#if CONFIG_SDP
- ? ec_ctx->angle_delta_cdf_hv[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- : ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED];
+ mbmi->angle_delta[PLANE_TYPE_Y] =
+ (use_angle_delta && av1_is_directional_mode(mbmi->mode))
+ ? read_angle_delta(
+ r, ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED])
+ : 0;
#else
- ? ec_ctx->angle_delta_cdf_hv[mbmi->mode - V_PRED]
- : ec_ctx->angle_delta_cdf[mbmi->mode - V_PRED];
-#endif // CONFIG_SDP
-
- mbmi->angle_delta[PLANE_TYPE_Y] = signal_intra_filter
- ? read_angle_delta_hv(r, anglecdf)
- : read_angle_delta(r, anglecdf);
- } else {
- mbmi->angle_delta[PLANE_TYPE_Y] = 0;
- }
-#elif CONFIG_SDP
mbmi->angle_delta[PLANE_TYPE_Y] =
(use_angle_delta && av1_is_directional_mode(mbmi->mode))
- ? read_angle_delta(
- r, ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED])
+ ? read_angle_delta(r, ec_ctx->angle_delta_cdf[mbmi->mode - V_PRED])
: 0;
-#else
-mbmi->angle_delta[PLANE_TYPE_Y] =
- (use_angle_delta && av1_is_directional_mode(mbmi->mode))
- ? read_angle_delta(r, ec_ctx->angle_delta_cdf[mbmi->mode - V_PRED])
- : 0;
-#endif // CONFIG_ORIP
-
-#if CONFIG_MRLS && !CONFIG_ORIP
- // When both ORIP and MRLS are enabled, mrl index are signalled right after
- // intra mode and before angle delta
- // However when MRLS is enabled but ORIP is disabled, mrl_index is signalled
- // here ( after angle delta)
- // Parsing reference line index
+#endif // CONFIG_SDP
+#if CONFIG_MRLS
mbmi->mrl_index =
(cm->seq_params.enable_mrls && av1_is_directional_mode(mbmi->mode))
? read_mrl_index(ec_ctx, r)
: 0;
#endif
-
#if CONFIG_SDP
}
#endif // CONFIG_SDP
@@ -1492,37 +1447,7 @@
mbmi->mode = read_intra_mode(r, ec_ctx->y_mode_cdf[size_group_lookup[bsize]]);
-#if CONFIG_MRLS && CONFIG_ORIP
#if CONFIG_SDP
- if (xd->tree_type != CHROMA_PART)
-#endif
- // Parsing reference line index
- mbmi->mrl_index =
- (cm->seq_params.enable_mrls && av1_is_directional_mode(mbmi->mode))
- ? read_mrl_index(ec_ctx, r)
- : 0;
-#endif
-
-#if CONFIG_ORIP
- if (use_angle_delta && av1_is_directional_mode(mbmi->mode)) {
- int signal_intra_filter =
- av1_signal_orip_for_horver_modes(cm, mbmi, PLANE_TYPE_Y, bsize);
- aom_cdf_prob *anglecdf =
- signal_intra_filter
-#if CONFIG_SDP
- ? ec_ctx->angle_delta_cdf_hv[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- : ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED];
-#else
- ? ec_ctx->angle_delta_cdf_hv[mbmi->mode - V_PRED]
- : ec_ctx->angle_delta_cdf[mbmi->mode - V_PRED];
-#endif
- mbmi->angle_delta[PLANE_TYPE_Y] = signal_intra_filter
- ? read_angle_delta_hv(r, anglecdf)
- : read_angle_delta(r, anglecdf);
- } else {
- mbmi->angle_delta[PLANE_TYPE_Y] = 0;
- }
-#elif CONFIG_SDP
mbmi->angle_delta[PLANE_TYPE_Y] =
use_angle_delta && av1_is_directional_mode(mbmi->mode)
? read_angle_delta(
@@ -1533,9 +1458,9 @@
use_angle_delta && av1_is_directional_mode(mbmi->mode)
? read_angle_delta(r, ec_ctx->angle_delta_cdf[mbmi->mode - V_PRED])
: 0;
-#endif // CONFIG_ORIP
+#endif // CONFIG_SDP
-#if CONFIG_MRLS && !CONFIG_ORIP
+#if CONFIG_MRLS
#if CONFIG_SDP
if (xd->tree_type != CHROMA_PART)
#endif
@@ -1544,7 +1469,7 @@
(cm->seq_params.enable_mrls && av1_is_directional_mode(mbmi->mode))
? read_mrl_index(ec_ctx, r)
: 0;
-#endif
+#endif // CONFIG_MRLS
if (!cm->seq_params.monochrome && xd->is_chroma_ref) {
mbmi->uv_mode =
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 509e679..1926bb9 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -841,14 +841,6 @@
}
}
-#if CONFIG_ORIP
-static AOM_INLINE void write_angle_delta_hv(aom_writer *w, int angle_delta,
- aom_cdf_prob *cdf) {
- aom_write_symbol(w, get_angle_delta_to_idx(angle_delta), cdf,
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA);
-}
-#endif
-
static AOM_INLINE void write_angle_delta(aom_writer *w, int angle_delta,
aom_cdf_prob *cdf) {
aom_write_symbol(w, angle_delta + MAX_ANGLE_DELTA, cdf,
@@ -1408,46 +1400,17 @@
write_intra_y_mode_nonkf(ec_ctx, bsize, mode, w);
}
-#if CONFIG_MRLS && CONFIG_ORIP
- // Encoding reference line index before angle delta if ORIP is enable
- if (cm->seq_params.enable_mrls && av1_is_directional_mode(mode)) {
- write_mrl_index(ec_ctx, mbmi->mrl_index, w);
- }
-#endif
-
// Y angle delta.
-#if !CONFIG_SDP
- const int use_angle_delta = av1_use_angle_delta(bsize);
-#endif
if (use_angle_delta && av1_is_directional_mode(mode)) {
-#if CONFIG_ORIP
- int signal_intra_filter =
- av1_signal_orip_for_horver_modes(cm, mbmi, PLANE_TYPE_Y, bsize);
- aom_cdf_prob *cdf_angle =
- signal_intra_filter
#if CONFIG_SDP
- ? ec_ctx->angle_delta_cdf_hv[PLANE_TYPE_Y][mode - V_PRED]
- : ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mode - V_PRED];
-#else
- ? ec_ctx->angle_delta_cdf_hv[mode - V_PRED]
- : ec_ctx->angle_delta_cdf[mode - V_PRED];
-
-#endif // CONFIG_SDP
- assert(mbmi->angle_delta[PLANE_TYPE_Y] >= -3 &&
- mbmi->angle_delta[PLANE_TYPE_Y] <= ANGLE_DELTA_VALUE_ORIP);
- if (signal_intra_filter)
- write_angle_delta_hv(w, mbmi->angle_delta[PLANE_TYPE_Y], cdf_angle);
- else
- write_angle_delta(w, mbmi->angle_delta[PLANE_TYPE_Y], cdf_angle);
-#elif CONFIG_SDP
- write_angle_delta(w, mbmi->angle_delta[PLANE_TYPE_Y],
- ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mode - V_PRED]);
+ write_angle_delta(w, mbmi->angle_delta[PLANE_TYPE_Y],
+ ec_ctx->angle_delta_cdf[PLANE_TYPE_Y][mode - V_PRED]);
#else
write_angle_delta(w, mbmi->angle_delta[PLANE_TYPE_Y],
ec_ctx->angle_delta_cdf[mode - V_PRED]);
-#endif // CONFIG_ORIP
+#endif // CONFIG_SDP
}
-#if CONFIG_MRLS && !CONFIG_ORIP
+#if CONFIG_MRLS
// Encoding reference line index
if (cm->seq_params.enable_mrls && av1_is_directional_mode(mode)) {
write_mrl_index(ec_ctx, mbmi->mrl_index, w);
diff --git a/av1/encoder/block.h b/av1/encoder/block.h
index 2b93cb4..3915901 100644
--- a/av1/encoder/block.h
+++ b/av1/encoder/block.h
@@ -628,17 +628,7 @@
//! angle_delta_cost
int angle_delta_cost[PARTITION_STRUCTURE_NUM][DIRECTIONAL_MODES]
[2 * MAX_ANGLE_DELTA + 1];
-#if CONFIG_ORIP
- //! angle_delta_cost_hv
- int angle_delta_cost_hv[PARTITION_STRUCTURE_NUM][TOTAL_NUM_ORIP_ANGLE_DELTA]
- [2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA];
-#endif
#else
-#if CONFIG_ORIP
- //! angle_delta_cost_hv
- int angle_delta_cost_hv[TOTAL_NUM_ORIP_ANGLE_DELTA]
- [2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA];
-#endif
//! angle_delta_cost
int angle_delta_cost[DIRECTIONAL_MODES][2 * MAX_ANGLE_DELTA + 1];
#endif
diff --git a/av1/encoder/encodeframe_utils.c b/av1/encoder/encodeframe_utils.c
index 06adc08..fba9943 100644
--- a/av1/encoder/encodeframe_utils.c
+++ b/av1/encoder/encodeframe_utils.c
@@ -589,30 +589,13 @@
[mbmi->angle_delta[PLANE_TYPE_Y] + MAX_ANGLE_DELTA];
#endif
-#if CONFIG_ORIP
- int signal_intra_filter =
- av1_signal_orip_for_horver_modes(cm, mbmi, PLANE_TYPE_Y, bsize);
- if (signal_intra_filter) {
#if CONFIG_SDP
- update_cdf(fc->angle_delta_cdf_hv[PLANE_TYPE_Y][mbmi->mode - V_PRED],
-#else
- update_cdf(fc->angle_delta_cdf_hv[mbmi->mode - V_PRED],
-#endif
- get_angle_delta_to_idx(mbmi->angle_delta[PLANE_TYPE_Y]),
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA);
- } else {
-#endif
-#if CONFIG_SDP
- update_cdf(fc->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED],
+ update_cdf(fc->angle_delta_cdf[PLANE_TYPE_Y][mbmi->mode - V_PRED],
#else
update_cdf(fc->angle_delta_cdf[mbmi->mode - V_PRED],
#endif
- mbmi->angle_delta[PLANE_TYPE_Y] + MAX_ANGLE_DELTA,
- 2 * MAX_ANGLE_DELTA + 1);
-
-#if CONFIG_ORIP
- }
-#endif
+ mbmi->angle_delta[PLANE_TYPE_Y] + MAX_ANGLE_DELTA,
+ 2 * MAX_ANGLE_DELTA + 1);
}
#if CONFIG_SDP
}
@@ -1353,10 +1336,7 @@
AVERAGE_CDF(ctx_left->kf_y_cdf, ctx_tr->kf_y_cdf, INTRA_MODES);
AVERAGE_CDF(ctx_left->angle_delta_cdf, ctx_tr->angle_delta_cdf,
2 * MAX_ANGLE_DELTA + 1);
-#if CONFIG_ORIP
- AVERAGE_CDF(ctx_left->angle_delta_cdf_hv, ctx_tr->angle_delta_cdf_hv,
- 2 * MAX_ANGLE_DELTA + 1 + ADDITIONAL_ANGLE_DELTA);
-#endif
+
#if CONFIG_NEW_TX_PARTITION
// Square blocks
AVERAGE_CDF(ctx_left->intra_4way_txfm_partition_cdf[0],
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index 0073ad6..782afbc 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -180,14 +180,6 @@
* the mode info for the current macroblock.
*/
void set_y_mode_and_delta_angle(const int mode_idx, MB_MODE_INFO *const mbmi) {
-#if CONFIG_ORIP
- if (mode_idx >= LUMA_MODE_COUNT) {
- mbmi->mode = (mode_idx == LUMA_MODE_COUNT) ? H_PRED : V_PRED;
- mbmi->angle_delta[PLANE_TYPE_Y] = ANGLE_DELTA_VALUE_ORIP;
- return;
- }
-#endif
-
if (mode_idx < INTRA_MODE_END) {
mbmi->mode = intra_rd_search_mode_order[mode_idx];
mbmi->angle_delta[PLANE_TYPE_Y] = 0;
@@ -1112,16 +1104,8 @@
mbmi->mrl_index = mrl_idx;
#endif
-#if CONFIG_ORIP && !CONFIG_ORIP_NONDC_DISABLED
- int total_num_mode = cpi->common.seq_params.enable_orip
- ? (LUMA_MODE_COUNT + TOTAL_NUM_ORIP_ANGLE_DELTA)
- : LUMA_MODE_COUNT;
- for (int mode_idx = INTRA_MODE_START; mode_idx < total_num_mode;
+ for (int mode_idx = INTRA_MODE_START; mode_idx < LUMA_MODE_COUNT;
++mode_idx) {
-#else
- for (int mode_idx = INTRA_MODE_START; mode_idx < LUMA_MODE_COUNT;
- ++mode_idx) {
-#endif
set_y_mode_and_delta_angle(mode_idx, mbmi);
RD_STATS this_rd_stats;
int this_rate, this_rate_tokenonly, s;
@@ -1141,23 +1125,6 @@
if (is_directional_mode && directional_mode_skip_mask[mbmi->mode])
continue;
-#if CONFIG_ORIP
- int signal_intra_filter = av1_signal_orip_for_horver_modes(
- &cpi->common, mbmi, PLANE_TYPE_Y, bsize);
- if (!signal_intra_filter &&
- mbmi->angle_delta[PLANE_TYPE_Y] == ANGLE_DELTA_VALUE_ORIP)
- continue;
- if (mbmi->angle_delta[PLANE_TYPE_Y] == ANGLE_DELTA_VALUE_ORIP) {
- if (mbmi->mode == H_PRED && best_mbmi.mode != H_PRED) {
- continue;
- } else if (mbmi->mode == V_PRED && best_mbmi.mode != V_PRED) {
- continue;
- } else if (best_mbmi.angle_delta[PLANE_TYPE_Y]) {
- continue;
- }
- }
-#endif
-
#if CONFIG_MRLS
if (!is_directional_mode && mrl_idx) continue;
if (best_mbmi.mrl_index == 0 && mbmi->mrl_index > 1 &&
diff --git a/av1/encoder/intra_mode_search_utils.h b/av1/encoder/intra_mode_search_utils.h
index 9518cbd..e58505f 100644
--- a/av1/encoder/intra_mode_search_utils.h
+++ b/av1/encoder/intra_mode_search_utils.h
@@ -307,37 +307,16 @@
}
if (av1_is_directional_mode(mbmi->mode)) {
if (av1_use_angle_delta(bsize)) {
-#if CONFIG_ORIP
- int signal_intra_filter = av1_signal_orip_for_horver_modes(
- &cpi->common, mbmi, PLANE_TYPE_Y, bsize);
-#endif // CONFIG_ORIP
#if CONFIG_SDP
-#if CONFIG_ORIP
- if (signal_intra_filter)
- total_rate +=
- mode_costs
- ->angle_delta_cost_hv[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- [get_angle_delta_to_idx(
- mbmi->angle_delta[PLANE_TYPE_Y])];
- else
-#endif
- total_rate +=
- mode_costs->angle_delta_cost[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- [MAX_ANGLE_DELTA +
- mbmi->angle_delta[PLANE_TYPE_Y]];
+ total_rate +=
+ mode_costs->angle_delta_cost[PLANE_TYPE_Y][mbmi->mode - V_PRED]
+ [MAX_ANGLE_DELTA +
+ mbmi->angle_delta[PLANE_TYPE_Y]];
#else
-#if CONFIG_ORIP
- if (signal_intra_filter)
- total_rate +=
- mode_costs->angle_delta_cost_hv[mbmi->mode -
- V_PRED][get_angle_delta_to_idx(
- mbmi->angle_delta[PLANE_TYPE_Y])];
- else
-#endif
- total_rate +=
- mode_costs->angle_delta_cost[mbmi->mode - V_PRED]
- [MAX_ANGLE_DELTA +
- mbmi->angle_delta[PLANE_TYPE_Y]];
+ total_rate +=
+ mode_costs->angle_delta_cost[mbmi->mode - V_PRED]
+ [MAX_ANGLE_DELTA +
+ mbmi->angle_delta[PLANE_TYPE_Y]];
#endif
}
}
@@ -461,36 +440,14 @@
cpi, bsize, x, xd, 0, 0, &this_rd_stats.rate, &this_rd_stats.dist,
&this_rd_stats.skip_txfm, &temp_sse, NULL, NULL, NULL);
if (av1_is_directional_mode(mbmi->mode) && av1_use_angle_delta(bsize)) {
-#if CONFIG_ORIP
- int signal_intra_filter =
- av1_signal_orip_for_horver_modes(cm, mbmi, PLANE_TYPE_Y, bsize);
-#endif // CONFIG_ORIP
#if CONFIG_SDP
-#if CONFIG_ORIP
- if (signal_intra_filter)
- mode_cost +=
- mode_costs->angle_delta_cost_hv[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- [get_angle_delta_to_idx(
- mbmi->angle_delta[PLANE_TYPE_Y])];
- else
-#endif // CONFIG_ORIP
- mode_cost +=
- mode_costs->angle_delta_cost[PLANE_TYPE_Y][mbmi->mode - V_PRED]
- [MAX_ANGLE_DELTA +
- mbmi->angle_delta[PLANE_TYPE_Y]];
+ mode_cost += mode_costs->angle_delta_cost[PLANE_TYPE_Y][mbmi->mode - V_PRED]
+ [MAX_ANGLE_DELTA +
+ mbmi->angle_delta[PLANE_TYPE_Y]];
#else
-#if CONFIG_ORIP
- if (signal_intra_filter)
- mode_cost +=
- mode_costs
- ->angle_delta_cost_hv[mbmi->mode - V_PRED][get_angle_delta_to_idx(
- mbmi->angle_delta[PLANE_TYPE_Y])];
- else
-#endif // CONFIG_ORIP
- mode_cost +=
- mode_costs->angle_delta_cost[mbmi->mode - V_PRED]
- [MAX_ANGLE_DELTA +
- mbmi->angle_delta[PLANE_TYPE_Y]];
+ mode_cost += mode_costs->angle_delta_cost[mbmi->mode - V_PRED]
+ [MAX_ANGLE_DELTA +
+ mbmi->angle_delta[PLANE_TYPE_Y]];
#endif // CONFIG_SDP
}
diff --git a/av1/encoder/rd.c b/av1/encoder/rd.c
index b3f29e4..f4d5ff7 100644
--- a/av1/encoder/rd.c
+++ b/av1/encoder/rd.c
@@ -269,28 +269,12 @@
}
}
-#if CONFIG_ORIP
- for (i = 0; i < PARTITION_STRUCTURE_NUM; ++i) {
- for (j = 0; j < TOTAL_NUM_ORIP_ANGLE_DELTA; ++j) {
- av1_cost_tokens_from_cdf(mode_costs->angle_delta_cost_hv[i][j],
- fc->angle_delta_cdf_hv[i][j], NULL);
- }
- }
-#endif
-
#else
for (i = 0; i < DIRECTIONAL_MODES; ++i) {
av1_cost_tokens_from_cdf(mode_costs->angle_delta_cost[i],
fc->angle_delta_cdf[i], NULL);
}
-#if CONFIG_ORIP
- for (i = 0; i < TOTAL_NUM_ORIP_ANGLE_DELTA; ++i) {
- av1_cost_tokens_from_cdf(mode_costs->angle_delta_cost_hv[i],
- fc->angle_delta_cdf_hv[i], NULL);
- }
-#endif
#endif // CONFIG_SDP
-
av1_cost_tokens_from_cdf(mode_costs->intrabc_cost, fc->intrabc_cdf, NULL);
#if CONFIG_IST
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index d018b19..525d0af 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5971,18 +5971,8 @@
mrl_index++) {
mbmi->mrl_index = mrl_index;
#endif
-
-#if CONFIG_ORIP && !CONFIG_ORIP_NONDC_DISABLED
- int total_num_mode = cpi->common.seq_params.enable_orip
- ? (LUMA_MODE_COUNT + TOTAL_NUM_ORIP_ANGLE_DELTA)
- : LUMA_MODE_COUNT;
- for (int mode_idx = INTRA_MODE_START; mode_idx < total_num_mode;
+ for (int mode_idx = INTRA_MODE_START; mode_idx < LUMA_MODE_COUNT;
++mode_idx) {
-#else
-
- for (int mode_idx = INTRA_MODE_START; mode_idx < LUMA_MODE_COUNT;
- ++mode_idx) {
-#endif
if (sf->intra_sf.skip_intra_in_interframe &&
search_state.intra_search_state.skip_intra_modes)
break;
@@ -6011,14 +6001,6 @@
continue;
}
#endif
-
-#if CONFIG_ORIP
- int signal_intra_filter = av1_signal_orip_for_horver_modes(
- &cpi->common, mbmi, PLANE_TYPE_Y, bsize);
- if (!signal_intra_filter &&
- mbmi->angle_delta[PLANE_TYPE_Y] == ANGLE_DELTA_VALUE_ORIP)
- continue;
-#endif
const PREDICTION_MODE this_mode = mbmi->mode;
assert(av1_mode_defs[mode_enum].ref_frame[0] == INTRA_FRAME);
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index a8e0ac9..9c4b1ee 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -313,12 +313,7 @@
av1_predict_intra_block(cm, xd, block_size_wide[bsize],
block_size_high[bsize], tx_size, mode, 0, 0,
FILTER_INTRA_MODES, dst_buffer, dst_buffer_stride,
- predictor, bw, 0, 0,
-#if CONFIG_ORIP
- 0, 0);
-#else
- 0);
-#endif
+ predictor, bw, 0, 0, 0);
intra_cost = tpl_get_satd_cost(x, src_diff, bw, src_mb_buffer, src_stride,
predictor, bw, coeff, bw, bh, tx_size);
@@ -498,14 +493,7 @@
av1_predict_intra_block(cm, xd, block_size_wide[bsize],
block_size_high[bsize], tx_size, best_mode, 0, 0,
FILTER_INTRA_MODES, dst_buffer, dst_buffer_stride,
- dst_buffer, dst_buffer_stride, 0, 0
-#if CONFIG_ORIP
- ,
- 0, 0);
-#else
- ,
- 0);
-#endif
+ dst_buffer, dst_buffer_stride, 0, 0, 0);
}
int rate_cost;