Some fixes in interintra expt
Removes some redundant information when supertx and interintra both are used. Change-Id: I40b0fddbc1ba54607c6e8068bde128c21c14d997
This commit is contained in:
parent
b43beffc3c
commit
cb165354e7
@ -1193,7 +1193,7 @@ void vp9_predict_intra_block(const MACROBLOCKD *xd, int block_idx, int bwl_in,
|
||||
}
|
||||
|
||||
#if CONFIG_INTERINTRA
|
||||
static INLINE TX_SIZE intra_size_log2_for_interintra(int bs) {
|
||||
static INLINE TX_SIZE blocklen_to_txsize(int bs) {
|
||||
switch (bs) {
|
||||
case 4:
|
||||
return TX_4X4;
|
||||
@ -1498,11 +1498,11 @@ static void build_intra_predictors_for_interintra(
|
||||
int right_available, int plane) {
|
||||
if (bw == bh) {
|
||||
build_intra_predictors(xd, src, src_stride, pred_ptr, stride,
|
||||
mode, intra_size_log2_for_interintra(bw),
|
||||
mode, blocklen_to_txsize(bw),
|
||||
up_available, left_available, right_available,
|
||||
0, 0, plane);
|
||||
} else if (bw < bh) {
|
||||
const TX_SIZE tx_size = intra_size_log2_for_interintra(bw);
|
||||
const TX_SIZE tx_size = blocklen_to_txsize(bw);
|
||||
uint8_t *src_bottom = src + bw * src_stride;
|
||||
uint8_t *pred_ptr_bottom = pred_ptr + bw * stride;
|
||||
build_intra_predictors(
|
||||
@ -1514,7 +1514,7 @@ static void build_intra_predictors_for_interintra(
|
||||
up_available, left_available, 0,
|
||||
1, 0, bw, plane);
|
||||
} else {
|
||||
const TX_SIZE tx_size = intra_size_log2_for_interintra(bh);
|
||||
const TX_SIZE tx_size = blocklen_to_txsize(bh);
|
||||
uint8_t *src_right = src + bh;
|
||||
uint8_t *pred_ptr_right = pred_ptr + bh;
|
||||
build_intra_predictors(
|
||||
|
@ -448,7 +448,7 @@ static INLINE INTERP_FILTER read_switchable_interp_filter(
|
||||
|
||||
static void read_intra_block_mode_info(VP9_COMMON *const cm, MODE_INFO *mi,
|
||||
#if CONFIG_FILTERINTRA
|
||||
MACROBLOCKD *const xd,
|
||||
MACROBLOCKD *const xd,
|
||||
#endif
|
||||
vp9_reader *r) {
|
||||
MB_MODE_INFO *const mbmi = &mi->mbmi;
|
||||
@ -619,6 +619,9 @@ static void read_inter_block_mode_info(VP9_COMMON *const cm,
|
||||
MACROBLOCKD *const xd,
|
||||
const TileInfo *const tile,
|
||||
MODE_INFO *const mi,
|
||||
#if CONFIG_SUPERTX
|
||||
int supertx_enabled,
|
||||
#endif
|
||||
int mi_row, int mi_col, vp9_reader *r) {
|
||||
MB_MODE_INFO *const mbmi = &mi->mbmi;
|
||||
const BLOCK_SIZE bsize = mbmi->sb_type;
|
||||
@ -684,7 +687,10 @@ static void read_inter_block_mode_info(VP9_COMMON *const cm,
|
||||
#if CONFIG_INTERINTRA
|
||||
if (is_interintra_allowed(bsize) &&
|
||||
is_inter_mode(mbmi->mode) &&
|
||||
(mbmi->ref_frame[1] <= INTRA_FRAME)) {
|
||||
#if CONFIG_SUPERTX
|
||||
!supertx_enabled &&
|
||||
#endif
|
||||
mbmi->ref_frame[1] <= INTRA_FRAME) {
|
||||
mbmi->ref_frame[1] = vp9_read(r, cm->fc.interintra_prob[bsize]) ?
|
||||
INTRA_FRAME : NONE;
|
||||
cm->counts.interintra[bsize][mbmi->ref_frame[1] == INTRA_FRAME]++;
|
||||
@ -899,6 +905,9 @@ static void read_inter_frame_mode_info(VP9_COMMON *const cm,
|
||||
|
||||
if (inter_block) {
|
||||
read_inter_block_mode_info(cm, xd, tile, mi,
|
||||
#if CONFIG_SUPERTX
|
||||
supertx_enabled,
|
||||
#endif
|
||||
mi_row, mi_col, r);
|
||||
} else {
|
||||
read_intra_block_mode_info(cm, mi,
|
||||
|
@ -528,7 +528,10 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, const MODE_INFO *mi,
|
||||
if (cpi->common.reference_mode != COMPOUND_REFERENCE &&
|
||||
is_interintra_allowed(bsize) &&
|
||||
is_inter_mode(mode) &&
|
||||
(mbmi->ref_frame[1] <= INTRA_FRAME)) {
|
||||
#if CONFIG_SUPERTX
|
||||
!supertx_enabled &&
|
||||
#endif
|
||||
mbmi->ref_frame[1] <= INTRA_FRAME) {
|
||||
vp9_write(w, mbmi->ref_frame[1] == INTRA_FRAME,
|
||||
cm->fc.interintra_prob[bsize]);
|
||||
if (mbmi->ref_frame[1] == INTRA_FRAME) {
|
||||
|
@ -971,19 +971,6 @@ static void update_state_supertx(VP9_COMP *cpi, PICK_MODE_CONTEXT *ctx,
|
||||
const int ctx = vp9_get_pred_context_switchable_interp(xd);
|
||||
++cm->counts.switchable_interp[ctx][mbmi->interp_filter];
|
||||
}
|
||||
#if CONFIG_INTERINTRA
|
||||
if (is_interintra_allowed(bsize) &&
|
||||
is_inter_mode(mbmi->mode) &&
|
||||
(mbmi->ref_frame[1] <= INTRA_FRAME)) {
|
||||
if (mbmi->ref_frame[1] == INTRA_FRAME) {
|
||||
assert(0);
|
||||
++cm->counts.y_mode[size_group_lookup[bsize]][mbmi->interintra_mode];
|
||||
++cm->counts.interintra[bsize][1];
|
||||
} else {
|
||||
++cm->counts.interintra[bsize][0];
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_INTERINTRA
|
||||
}
|
||||
|
||||
rd_opt->comp_pred_diff[SINGLE_REFERENCE] += ctx->single_pred_diff;
|
||||
|
Loading…
x
Reference in New Issue
Block a user