Removed #if CONFIG_I8X8

This commit removed the macro CONFIG_I8X8, which was used to indicate
the 8x8 intra prediction experiment, made the change fully merged in.

Change-Id: Iafa4443781ce6e83f5591c12ba615a0e92ce0ea0
This commit is contained in:
Yaowu Xu 2011-12-07 13:03:57 -08:00
parent 76feb965d3
commit d37cd97682
27 changed files with 61 additions and 269 deletions

1
configure vendored
View File

@ -223,7 +223,6 @@ EXPERIMENT_LIST="
segfeatures
t8x8
csm
i8x8
qimode
uvintra
newnear

View File

@ -86,9 +86,7 @@ typedef enum
V_PRED, /* vertical prediction */
H_PRED, /* horizontal prediction */
TM_PRED, /* Truemotion prediction */
#if CONFIG_I8X8
I8X8_PRED, /* 8x8 based prediction, each 8x8 has its own prediction mode */
#endif
B_PRED, /* block based prediction, each block has its own prediction mode */
NEARESTMV,
@ -345,10 +343,8 @@ static void update_blockd_bmi(MACROBLOCKD *xd)
int i;
int is_4x4;
is_4x4 = (xd->mode_info_context->mbmi.mode == SPLITMV) ||
#if CONFIG_I8X8
(xd->mode_info_context->mbmi.mode==I8X8_PRED)||
#endif
(xd->mode_info_context->mbmi.mode == B_PRED);
(xd->mode_info_context->mbmi.mode == I8X8_PRED) ||
(xd->mode_info_context->mbmi.mode == B_PRED);
if (is_4x4)
{

View File

@ -12,7 +12,6 @@
#include "entropymode.h"
#include "entropy.h"
#include "vpx_mem/vpx_mem.h"
#if CONFIG_I8X8
#if CONFIG_QIMODE
const unsigned int kf_y_mode_cts[8][VP8_YMODES] =
@ -31,10 +30,6 @@ static const unsigned int kf_y_mode_cts[VP8_YMODES] = { 49, 22, 23, 11, 23, 128}
#endif
/* TODO: calibrate the baseline distribution */
static const unsigned int y_mode_cts [VP8_YMODES] = { 8080, 1908, 1582, 1007, 2000, 5874};
#else
static const unsigned int kf_y_mode_cts[VP8_YMODES] = { 1607, 915, 812, 811, 5455};
static const unsigned int y_mode_cts [VP8_YMODES] = { 8080, 1908, 1582, 1007, 5874};
#endif
#if CONFIG_UVINTRA
static const unsigned int uv_mode_cts [VP8_UV_MODES] ={ 162, 41, 41, 12};
@ -53,9 +48,7 @@ static const unsigned int uv_mode_cts [VP8_UV_MODES] = { 59483, 13605, 16492, 4
#endif
#if CONFIG_I8X8
static const unsigned int i8x8_mode_cts [VP8_UV_MODES] = {93, 69, 81, 13};
#endif
#if CONFIG_UVINTRA
@ -169,7 +162,6 @@ const vp8_tree_index vp8_bmode_tree[18] = /* INTRAMODECONTEXTNODE value */
/* Again, these trees use the same probability indices as their
explicitly-programmed predecessors. */
#if CONFIG_I8X8
const vp8_tree_index vp8_ymode_tree[10] =
{
-DC_PRED, 2,
@ -194,23 +186,6 @@ const vp8_tree_index vp8_i8x8_mode_tree[6] =
-V_PRED, 4,
-H_PRED, -TM_PRED
};
#else
const vp8_tree_index vp8_ymode_tree[8] =
{
-DC_PRED, 2,
4, 6,
-V_PRED, -H_PRED,
-TM_PRED, -B_PRED
};
const vp8_tree_index vp8_kf_ymode_tree[8] =
{
-B_PRED, 2,
4, 6,
-DC_PRED, -V_PRED,
-H_PRED, -TM_PRED
};
#endif
const vp8_tree_index vp8_uv_mode_tree[6] =
{
-DC_PRED, 2,
@ -245,9 +220,7 @@ struct vp8_token_struct vp8_bmode_encodings [VP8_BINTRAMODES];
struct vp8_token_struct vp8_ymode_encodings [VP8_YMODES];
struct vp8_token_struct vp8_kf_ymode_encodings [VP8_YMODES];
struct vp8_token_struct vp8_uv_mode_encodings [VP8_UV_MODES];
#if CONFIG_I8X8
struct vp8_token_struct vp8_i8x8_mode_encodings [VP8_UV_MODES];
#endif
struct vp8_token_struct vp8_mbsplit_encodings [VP8_NUMMBSPLITS];
struct vp8_token_struct vp8_mv_ref_encoding_array [VP8_MVREFS];
@ -314,13 +287,11 @@ void vp8_init_mbmode_probs(VP8_COMMON *x)
256, 1
);
#endif
#if CONFIG_I8X8
vp8_tree_probs_from_distribution(
VP8_UV_MODES, vp8_i8x8_mode_encodings, vp8_i8x8_mode_tree,
x->i8x8_mode_prob, bct, i8x8_mode_cts,
256, 1
);
#endif
vpx_memcpy(x->fc.sub_mv_ref_prob, sub_mv_ref_prob, sizeof(sub_mv_ref_prob));
}
@ -373,9 +344,7 @@ void vp8_entropy_mode_init()
vp8_tokens_from_tree(vp8_ymode_encodings, vp8_ymode_tree);
vp8_tokens_from_tree(vp8_kf_ymode_encodings, vp8_kf_ymode_tree);
vp8_tokens_from_tree(vp8_uv_mode_encodings, vp8_uv_mode_tree);
#if CONFIG_I8X8
vp8_tokens_from_tree(vp8_i8x8_mode_encodings, vp8_i8x8_mode_tree);
#endif
vp8_tokens_from_tree(vp8_mbsplit_encodings, vp8_mbsplit_tree);
vp8_tokens_from_tree_offset(vp8_mv_ref_encoding_array,

View File

@ -38,9 +38,7 @@ extern const vp8_tree_index vp8_bmode_tree[];
extern const vp8_tree_index vp8_ymode_tree[];
extern const vp8_tree_index vp8_kf_ymode_tree[];
extern const vp8_tree_index vp8_uv_mode_tree[];
#if CONFIG_I8X8
extern const vp8_tree_index vp8_i8x8_mode_tree[];
#endif
extern const vp8_tree_index vp8_mbsplit_tree[];
extern const vp8_tree_index vp8_mv_ref_tree[];
extern const vp8_tree_index vp8_sub_mv_ref_tree[];
@ -48,9 +46,7 @@ extern const vp8_tree_index vp8_sub_mv_ref_tree[];
extern struct vp8_token_struct vp8_bmode_encodings [VP8_BINTRAMODES];
extern struct vp8_token_struct vp8_ymode_encodings [VP8_YMODES];
extern struct vp8_token_struct vp8_kf_ymode_encodings [VP8_YMODES];
#if CONFIG_I8X8
extern struct vp8_token_struct vp8_i8x8_mode_encodings [VP8_UV_MODES];
#endif
extern struct vp8_token_struct vp8_uv_mode_encodings [VP8_UV_MODES];
extern struct vp8_token_struct vp8_mbsplit_encodings [VP8_NUMMBSPLITS];

View File

@ -137,9 +137,7 @@ static B_PREDICTION_MODE left_block_mode(const MODE_INFO *cur_mb, int b)
return B_HE_PRED;
case TM_PRED:
return B_TM_PRED;
#if CONFIG_I8X8
case I8X8_PRED:
#endif
case B_PRED:
return (cur_mb->bmi + b + 3)->as_mode;
default:
@ -167,9 +165,7 @@ static B_PREDICTION_MODE above_block_mode(const MODE_INFO
return B_HE_PRED;
case TM_PRED:
return B_TM_PRED;
#if CONFIG_I8X8
case I8X8_PRED:
#endif
case B_PRED:
return (cur_mb->bmi + b + 12)->as_mode;
default:

View File

@ -90,9 +90,7 @@ void vp8_machine_specific_config(VP8_COMMON *ctx)
#endif /* CONFIG_DUALPRED */
rtcd->recon.copy8x4 = vp8_copy_mem8x4_c;
rtcd->recon.recon = vp8_recon_b_c;
#if CONFIG_I8X8
rtcd->recon.recon_uv = vp8_recon_uv_b_c;
#endif
rtcd->recon.recon2 = vp8_recon2b_c;
rtcd->recon.recon4 = vp8_recon4b_c;
rtcd->recon.recon_mb = vp8_recon_mb_c;
@ -107,14 +105,10 @@ void vp8_machine_specific_config(VP8_COMMON *ctx)
vp8_build_intra_predictors_mbuv_s;
rtcd->recon.intra4x4_predict =
vp8_intra4x4_predict;
#if CONFIG_I8X8
rtcd->recon.intra8x8_predict =
vp8_intra8x8_predict;
rtcd->recon.intra_uv4x4_predict =
vp8_intra_uv4x4_predict;
#endif
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_c;
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_c;

View File

@ -77,9 +77,7 @@ void vp8_inverse_transform_mb(const vp8_idct_rtcd_vtable_t *rtcd, MACROBLOCKD *x
int i;
if (x->mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
x->mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
x->mode_info_context->mbmi.mode != SPLITMV)
{
/* do 2nd order transform on the dc block */

View File

@ -137,9 +137,7 @@ static void lf_init_lut(loop_filter_info_n *lfi)
lfi->mode_lf_lut[H_PRED] = 1;
lfi->mode_lf_lut[TM_PRED] = 1;
lfi->mode_lf_lut[B_PRED] = 0;
#if CONFIG_I8X8
lfi->mode_lf_lut[I8X8_PRED]=0;
#endif
lfi->mode_lf_lut[ZEROMV] = 1;
lfi->mode_lf_lut[NEARESTMV] = 2;
lfi->mode_lf_lut[NEARMV] = 2;
@ -323,9 +321,7 @@ void vp8_loop_filter_frame
for (mb_col = 0; mb_col < cm->mb_cols; mb_col++)
{
int skip_lf = (mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
mode_info_context->mbmi.mode != SPLITMV &&
mode_info_context->mbmi.mb_skip_coeff);
@ -437,10 +433,7 @@ void vp8_loop_filter_frame_yonly
for (mb_col = 0; mb_col < cm->mb_cols; mb_col++)
{
int skip_lf = (mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
mode_info_context->mbmi.mode != SPLITMV &&
mode_info_context->mbmi.mb_skip_coeff);
@ -578,9 +571,7 @@ void vp8_loop_filter_partial_frame
for (mb_col = 0; mb_col < mb_cols; mb_col++)
{
int skip_lf = (mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
mode_info_context->mbmi.mode != I8X8_PRED &&
mode_info_context->mbmi.mode != SPLITMV &&
mode_info_context->mbmi.mb_skip_coeff);

View File

@ -208,9 +208,8 @@ typedef struct VP8Common
#else
vp8_prob kf_uv_mode_prob [VP8_UV_MODES-1];
#endif
#if CONFIG_I8X8
vp8_prob i8x8_mode_prob [VP8_UV_MODES-1];
#endif
#if CONFIG_MULCONTEXT
FRAME_CONTEXT lfc_a; /* last alt ref entropy */

View File

@ -44,7 +44,6 @@ void vp8_recon_b_c
}
}
#if CONFIG_I8X8
void vp8_recon_uv_b_c
(
unsigned char *pred_ptr,
@ -75,7 +74,6 @@ void vp8_recon_uv_b_c
pred_ptr += 8;
}
}
#endif
void vp8_recon4b_c
(
unsigned char *pred_ptr,

View File

@ -71,12 +71,10 @@ extern prototype_copy_block(vp8_recon_copy8x4);
#endif
extern prototype_recon_block(vp8_recon_recon);
#if CONFIG_I8X8
#ifndef vp8_recon_recon_uv
#define vp8_recon_recon_uv vp8_recon_uv_b_c
#endif
extern prototype_recon_block(vp8_recon_recon_uv);
#endif
extern prototype_recon_block(vp8_recon_recon);
#ifndef vp8_recon_recon2
@ -105,13 +103,11 @@ extern prototype_recon_macroblock(vp8_recon_recon_mby);
extern prototype_build_intra_predictors\
(vp8_recon_build_intra_predictors_mby);
#if CONFIG_I8X8
#ifndef vp8_recon_build_intra8x8_predictors_mby
#define vp8_recon_build_intra8x8_predictors_mby vp8_build_intra8x8_predictors_mby
#endif
extern prototype_build_intra_predictors\
(vp8_recon_build_intra8x8_predictors_mby);
#endif
#ifndef vp8_recon_build_intra_predictors_mby_s
#define vp8_recon_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s
@ -125,13 +121,11 @@ extern prototype_build_intra_predictors\
extern prototype_build_intra_predictors\
(vp8_recon_build_intra_predictors_mbuv);
#if CONFIG_I8X8
#ifndef vp8_recon_build_intra8x8_predictors_mbuv
#define vp8_recon_build_intra8x8_predictors_mbuv vp8_build_intra8x8_predictors_mbuv
#endif
extern prototype_build_intra_predictors\
(vp8_recon_build_intra8x8_predictors_mbuv);
#endif
#ifndef vp8_recon_build_intra_predictors_mbuv_s
#define vp8_recon_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s
@ -145,7 +139,6 @@ extern prototype_build_intra_predictors\
extern prototype_intra4x4_predict\
(vp8_recon_intra4x4_predict);
#if CONFIG_I8X8
#ifndef vp8_recon_intra8x8_predict
#define vp8_recon_intra8x8_predict vp8_intra8x8_predict
#endif
@ -158,8 +151,6 @@ extern prototype_intra4x4_predict\
extern prototype_intra4x4_predict\
(vp8_recon_intra_uv4x4_predict);
#endif
typedef prototype_copy_block((*vp8_copy_block_fn_t));
typedef prototype_recon_block((*vp8_recon_fn_t));
typedef prototype_recon_macroblock((*vp8_recon_mb_fn_t));
@ -175,9 +166,7 @@ typedef struct vp8_recon_rtcd_vtable
#endif /* CONFIG_DUALPRED */
vp8_copy_block_fn_t copy8x4;
vp8_recon_fn_t recon;
#if CONFIG_I8X8
vp8_recon_fn_t recon_uv;
#endif
vp8_recon_fn_t recon2;
vp8_recon_fn_t recon4;
vp8_recon_mb_fn_t recon_mb;
@ -187,10 +176,8 @@ typedef struct vp8_recon_rtcd_vtable
vp8_build_intra_pred_fn_t build_intra_predictors_mbuv_s;
vp8_build_intra_pred_fn_t build_intra_predictors_mbuv;
vp8_intra4x4_pred_fn_t intra4x4_predict;
#if CONFIG_I8X8
vp8_intra4x4_pred_fn_t intra8x8_predict;
vp8_intra4x4_pred_fn_t intra_uv4x4_predict;
#endif
} vp8_recon_rtcd_vtable_t;
#if CONFIG_RUNTIME_CPU_DETECT

View File

@ -551,7 +551,6 @@ void vp8_build_intra_predictors_mbuv_s(MACROBLOCKD *x)
break;
}
}
#if CONFIG_I8X8
void vp8_intra8x8_predict(BLOCKD *x,
int mode,
unsigned char *predictor)
@ -731,4 +730,3 @@ void vp8_intra_uv4x4_predict(BLOCKD *x,
Current code assumes that a uv 4x4 block use same mode
as corresponding Y 8x8 area
*/
#endif

View File

@ -42,14 +42,12 @@ static int vp8_kfread_ymode(vp8_reader *bc, const vp8_prob *p)
return i;
}
#if CONFIG_I8X8
static int vp8_read_i8x8_mode(vp8_reader *bc, const vp8_prob *p)
{
const int i = vp8_treed_read(bc, vp8_i8x8_mode_tree, p);
return i;
}
#endif
static int vp8_read_uv_mode(vp8_reader *bc, const vp8_prob *p)
@ -139,7 +137,6 @@ static void vp8_kfread_modes(VP8D_COMP *pbi,
}
while (++i < 16);
}
#if CONFIG_I8X8
if((m->mbmi.mode = y_mode) == I8X8_PRED)
{
int i;
@ -155,13 +152,12 @@ static void vp8_kfread_modes(VP8D_COMP *pbi,
}
}
else
#endif
#if CONFIG_UVINTRA
m->mbmi.uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc,
pbi->common.kf_uv_mode_prob[m->mbmi.mode]);
m->mbmi.uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc,
pbi->common.kf_uv_mode_prob[m->mbmi.mode]);
#else
m->mbmi.uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc,
pbi->common.kf_uv_mode_prob);
m->mbmi.uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc,
pbi->common.kf_uv_mode_prob);
#endif
}
@ -787,7 +783,6 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
while (++j < 16);
}
#if CONFIG_I8X8
if(mbmi->mode == I8X8_PRED)
{
int i;
@ -803,8 +798,7 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
}
}
else
#endif
mbmi->uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc, pbi->common.fc.uv_mode_prob);
mbmi->uv_mode = (MB_PREDICTION_MODE)vp8_read_uv_mode(bc, pbi->common.fc.uv_mode_prob);
}
}

View File

@ -208,10 +208,8 @@ void clamp_mvs(MACROBLOCKD *xd)
}
}
#if CONFIG_I8X8
extern const int vp8_i8x8_block[4];
#endif
extern const int vp8_i8x8_block[4];
static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
unsigned int mb_idx)
{
@ -267,9 +265,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
mode = xd->mode_info_context->mbmi.mode;
if (eobtotal == 0 && mode != B_PRED && mode != SPLITMV
#if CONFIG_I8X8
&& mode != I8X8_PRED
#endif
&&!vp8dx_bool_error(xd->current_bc)
)
{
@ -301,22 +297,17 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
/* do prediction */
if (xd->mode_info_context->mbmi.ref_frame == INTRA_FRAME)
{
#if CONFIG_I8X8
if(mode != I8X8_PRED)
{
#endif
RECON_INVOKE(&pbi->common.rtcd.recon, build_intra_predictors_mbuv)(xd);
if (mode != B_PRED)
{
RECON_INVOKE(&pbi->common.rtcd.recon,
build_intra_predictors_mby)(xd);
} else {
vp8_intra_prediction_down_copy(xd);
RECON_INVOKE(&pbi->common.rtcd.recon, build_intra_predictors_mbuv)(xd);
if (mode != B_PRED)
{
RECON_INVOKE(&pbi->common.rtcd.recon,
build_intra_predictors_mby)(xd);
} else {
vp8_intra_prediction_down_copy(xd);
}
}
#if CONFIG_I8X8
}
#endif
}
else
{
@ -344,7 +335,6 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
#endif
/* dequantization and idct */
#if CONFIG_I8X8
if (mode == I8X8_PRED)
{
for (i = 0; i < 4; i++)
@ -392,9 +382,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
*(b->base_dst) + b->dst, 8, b->dst_stride);
}
}
else
#endif
if (mode == B_PRED)
else if (mode == B_PRED)
{
for (i = 0; i < 16; i++)
{
@ -500,13 +488,11 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
}
else
#endif
#if CONFIG_I8X8
if(xd->mode_info_context->mbmi.mode!=I8X8_PRED)
#endif
DEQUANT_INVOKE (&pbi->dequant, idct_add_uv_block)
(xd->qcoeff+16*16, xd->block[16].dequant,
xd->predictor+16*16, xd->dst.u_buffer, xd->dst.v_buffer,
xd->dst.uv_stride, xd->eobs+16);
DEQUANT_INVOKE (&pbi->dequant, idct_add_uv_block)
(xd->qcoeff+16*16, xd->block[16].dequant,
xd->predictor+16*16, xd->dst.u_buffer, xd->dst.v_buffer,
xd->dst.uv_stride, xd->eobs+16);
}
@ -593,9 +579,8 @@ decode_mb_row(VP8D_COMP *pbi, VP8_COMMON *pc, int mb_row, MACROBLOCKD *xd)
}
#endif
#if CONFIG_I8X8
update_blockd_bmi(xd);
#endif
xd->dst.y_buffer = pc->yv12_fb[dst_fb_idx].y_buffer + recon_yoffset;
xd->dst.u_buffer = pc->yv12_fb[dst_fb_idx].u_buffer + recon_uvoffset;
xd->dst.v_buffer = pc->yv12_fb[dst_fb_idx].v_buffer + recon_uvoffset;

View File

@ -90,9 +90,7 @@ void vp8_reset_mb_tokens_context(MACROBLOCKD *x)
{
/* Clear entropy contexts for Y2 blocks */
if (x->mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
x->mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
x->mode_info_context->mbmi.mode != SPLITMV)
{
vpx_memset(x->above_context, 0, sizeof(ENTROPY_CONTEXT_PLANES));
@ -669,9 +667,7 @@ int vp8_decode_mb_tokens(VP8D_COMP *dx, MACROBLOCKD *xd)
scan = vp8_default_zig_zag1d;
qcoeff_ptr = &xd->qcoeff[0];
if (xd->mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
xd->mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
xd->mode_info_context->mbmi.mode != SPLITMV)
{
i = 24;

View File

@ -898,9 +898,7 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd)
if (pbi->common.filter_level)
{
int skip_lf = (xd->mode_info_context->mbmi.mode != B_PRED &&
#if CONFIG_I8X8
xd->mode_info_context->mbmi.mode != I8X8_PRED &&
#endif
xd->mode_info_context->mbmi.mode != SPLITMV &&
xd->mode_info_context->mbmi.mb_skip_coeff);

View File

@ -148,12 +148,11 @@ static void kfwrite_ymode(vp8_writer *bc, int m, const vp8_prob *p)
vp8_write_token(bc, vp8_kf_ymode_tree, p, vp8_kf_ymode_encodings + m);
}
#if CONFIG_I8X8
static void write_i8x8_mode(vp8_writer *bc, int m, const vp8_prob *p)
{
vp8_write_token(bc,vp8_i8x8_mode_tree, p, vp8_i8x8_mode_encodings + m);
}
#endif
static void write_uv_mode(vp8_writer *bc, int m, const vp8_prob *p)
{
vp8_write_token(bc, vp8_uv_mode_tree, p, vp8_uv_mode_encodings + m);
@ -1140,7 +1139,6 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
write_bmode(w, m->bmi[j].as_mode, pc->fc.bmode_prob);
while (++j < 16);
}
#if CONFIG_I8X8
if(mode == I8X8_PRED)
{
write_i8x8_mode(w, m->bmi[0].as_mode, pc->i8x8_mode_prob);
@ -1149,9 +1147,7 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
write_i8x8_mode(w, m->bmi[10].as_mode, pc->i8x8_mode_prob);
}
else
#endif
write_uv_mode(w, mi->uv_mode, pc->fc.uv_mode_prob);
write_uv_mode(w, mi->uv_mode, pc->fc.uv_mode_prob);
}
else
{
@ -1399,7 +1395,6 @@ static void write_kfmodes(VP8_COMP *cpi)
}
while (++i < 16);
}
#if CONFIG_I8X8
if(ym == I8X8_PRED)
{
write_i8x8_mode(bc, m->bmi[0].as_mode, c->i8x8_mode_prob);
@ -1409,11 +1404,10 @@ static void write_kfmodes(VP8_COMP *cpi)
m++;
}
else
#endif
#if CONFIG_UVINTRA
write_uv_mode(bc, (m++)->mbmi.uv_mode, c->kf_uv_mode_prob[ym]);
write_uv_mode(bc, (m++)->mbmi.uv_mode, c->kf_uv_mode_prob[ym]);
#else
write_uv_mode(bc, (m++)->mbmi.uv_mode, c->kf_uv_mode_prob);
write_uv_mode(bc, (m++)->mbmi.uv_mode, c->kf_uv_mode_prob);
#endif
}
//printf("\n");

View File

@ -98,9 +98,7 @@ typedef struct
int mbmode_cost[2][MB_MODE_COUNT];
int intra_uv_mode_cost[2][MB_MODE_COUNT];
unsigned int bmode_costs[10][10][10];
#if CONFIG_I8X8
unsigned int i8x8_mode_costs[MB_MODE_COUNT];
#endif
unsigned int inter_bmode_costs[B_MODE_COUNT];
// These define limits to motion vector components to prevent them from extending outside the UMV borders

View File

@ -1435,7 +1435,7 @@ static void sum_intra_stats(VP8_COMP *cpi, MACROBLOCK *x)
}
while (++b < 16);
}
#if CONFIG_I8X8
if(m==I8X8_PRED)
{
i8x8_modes[xd->block[0].bmi.as_mode]++;
@ -1443,7 +1443,6 @@ static void sum_intra_stats(VP8_COMP *cpi, MACROBLOCK *x)
i8x8_modes[xd->block[8].bmi.as_mode]++;
i8x8_modes[xd->block[10].bmi.as_mode]++;
}
#endif
#endif
++cpi->ymode_count[m];
@ -1488,24 +1487,18 @@ int vp8cx_encode_intra_macro_block(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t)
vp8_update_zbin_extra(cpi, x);
}
#if CONFIG_I8X8
if(x->e_mbd.mode_info_context->mbmi.mode == I8X8_PRED)
{
vp8_encode_intra8x8mby(IF_RTCD(&cpi->rtcd), x);
vp8_encode_intra8x8mbuv(IF_RTCD(&cpi->rtcd), x);
}
else
#endif
if (x->e_mbd.mode_info_context->mbmi.mode == B_PRED)
else if (x->e_mbd.mode_info_context->mbmi.mode == B_PRED)
vp8_encode_intra4x4mby(IF_RTCD(&cpi->rtcd), x);
else
{
vp8_encode_intra16x16mby(IF_RTCD(&cpi->rtcd), x);
}
#if CONFIG_I8X8
if(x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED)
#endif
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);
if(x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED)
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);
sum_intra_stats(cpi, x);
vp8_tokenize_mb(cpi, &x->e_mbd, t);
#if CONFIG_T8X8
@ -1701,13 +1694,11 @@ int vp8cx_encode_inter_macroblock
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);
vp8_encode_intra4x4mby(IF_RTCD(&cpi->rtcd), x);
}
#if CONFIG_I8X8
else if(xd->mode_info_context->mbmi.mode == I8X8_PRED)
{
vp8_encode_intra8x8mby(IF_RTCD(&cpi->rtcd), x);
vp8_encode_intra8x8mbuv(IF_RTCD(&cpi->rtcd), x);
}
#endif
else
{
vp8_encode_intra16x16mbuv(IF_RTCD(&cpi->rtcd), x);

View File

@ -250,7 +250,6 @@ void vp8_encode_intra16x16mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
vp8_recon_intra_mbuv(IF_RTCD(&rtcd->common->recon), &x->e_mbd);
}
#if CONFIG_I8X8
void vp8_encode_intra8x8(const VP8_ENCODER_RTCD *rtcd,
MACROBLOCK *x, int ib)
{
@ -328,4 +327,3 @@ void vp8_encode_intra8x8mbuv(const VP8_ENCODER_RTCD *rtcd, MACROBLOCK *x)
vp8_encode_intra_uv4x4(rtcd, x, i+20, mode);
}
}
#endif

View File

@ -719,9 +719,7 @@ static void optimize_mb(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
tl = (ENTROPY_CONTEXT *)&t_left;
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&&x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
@ -771,9 +769,7 @@ void vp8_optimize_mby(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
tl = (ENTROPY_CONTEXT *)&t_left;
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&&x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
type = has_2nd_order ? PLANE_TYPE_Y_NO_DC : PLANE_TYPE_Y_WITH_DC;
@ -1088,10 +1084,7 @@ void optimize_mb_8x8(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
tl = (ENTROPY_CONTEXT *)&t_left;
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&&x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
type = has_2nd_order ? 0 : 3;
@ -1190,9 +1183,7 @@ void vp8_optimize_mby_8x8(MACROBLOCK *x, const VP8_ENCODER_RTCD *rtcd)
tl = (ENTROPY_CONTEXT *)&t_left;
has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
type = has_2nd_order ? 0 : 3;

View File

@ -52,10 +52,7 @@ void vp8_init_mode_costs(VP8_COMP *c)
#else
vp8_cost_tokens(c->mb.intra_uv_mode_cost[0], x->kf_uv_mode_prob, vp8_uv_mode_tree);
#endif
#if CONFIG_I8X8
vp8_cost_tokens(c->mb.i8x8_mode_costs,
x->i8x8_mode_prob,vp8_i8x8_mode_tree);
#endif
}

View File

@ -845,9 +845,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 1000;
sf->thresh_mult[THR_H_PRED ] = 1000;
sf->thresh_mult[THR_B_PRED ] = 2000;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 2000;
#endif
sf->thresh_mult[THR_TM ] = 1000;
sf->thresh_mult[THR_NEWMV ] = 1000;
@ -886,9 +884,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 1000;
sf->thresh_mult[THR_H_PRED ] = 1000;
sf->thresh_mult[THR_B_PRED ] = 2500;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 2500;
#endif
sf->thresh_mult[THR_TM ] = 1000;
sf->thresh_mult[THR_NEARESTG ] = 1000;
@ -974,9 +970,8 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 1500;
sf->thresh_mult[THR_H_PRED ] = 1500;
sf->thresh_mult[THR_B_PRED ] = 5000;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 5000;
#endif
if (cpi->ref_frame_flags & VP8_LAST_FLAG)
{
sf->thresh_mult[THR_NEWMV ] = 2000;
@ -1028,9 +1023,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 2000;
sf->thresh_mult[THR_H_PRED ] = 2000;
sf->thresh_mult[THR_B_PRED ] = 7500;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 7500;
#endif
if (cpi->ref_frame_flags & VP8_LAST_FLAG)
{
@ -1090,10 +1083,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
cpi->mode_check_freq[THR_V_PRED] = 0;
cpi->mode_check_freq[THR_H_PRED] = 0;
cpi->mode_check_freq[THR_B_PRED] = 0;
#if CONFIG_I8X8
cpi->mode_check_freq[THR_I8X8_PRED] = 0;
#endif
cpi->mode_check_freq[THR_NEARG] = 0;
cpi->mode_check_freq[THR_NEWG] = 0;
cpi->mode_check_freq[THR_NEARA] = 0;
@ -1112,10 +1102,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
cpi->mode_check_freq[THR_V_PRED] = 2;
cpi->mode_check_freq[THR_H_PRED] = 2;
cpi->mode_check_freq[THR_B_PRED] = 2;
#if CONFIG_I8X8
cpi->mode_check_freq[THR_I8X8_PRED]=2;
#endif
if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
{
@ -1176,9 +1163,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 1000;
sf->thresh_mult[THR_H_PRED ] = 1000;
sf->thresh_mult[THR_B_PRED ] = 2500;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 2500;
#endif
sf->thresh_mult[THR_I8X8_PRED] = 2500;
sf->thresh_mult[THR_NEARESTG ] = 1000;
sf->thresh_mult[THR_ZEROG ] = 1000;
sf->thresh_mult[THR_NEARG ] = 1000;
@ -1220,9 +1205,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 2000;
sf->thresh_mult[THR_H_PRED ] = 2000;
sf->thresh_mult[THR_B_PRED ] = 5000;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 5000;
#endif
if (cpi->ref_frame_flags & VP8_LAST_FLAG)
{
@ -1269,9 +1252,8 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_V_PRED ] = 2000;
sf->thresh_mult[THR_H_PRED ] = 2000;
sf->thresh_mult[THR_B_PRED ] = 5000;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 5000;
#endif
if (cpi->ref_frame_flags & VP8_LAST_FLAG)
{
sf->thresh_mult[THR_NEWMV ] = 2000;
@ -1320,10 +1302,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
cpi->mode_check_freq[THR_V_PRED] = 2;
cpi->mode_check_freq[THR_H_PRED] = 2;
cpi->mode_check_freq[THR_B_PRED] = 2;
#if CONFIG_I8X8
cpi->mode_check_freq[THR_I8X8_PRED]=2;
#endif
if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
{
@ -1371,9 +1350,8 @@ void vp8_set_speed_features(VP8_COMP *cpi)
cpi->mode_check_freq[THR_V_PRED] = 4;
cpi->mode_check_freq[THR_H_PRED] = 4;
cpi->mode_check_freq[THR_B_PRED] = 4;
#if CONFIG_I8X8
cpi->mode_check_freq[THR_I8X8_PRED]=4;
#endif
if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
{
cpi->mode_check_freq[THR_NEARG] = 2;
@ -1388,10 +1366,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
sf->thresh_mult[THR_TM ] = 2000;
sf->thresh_mult[THR_B_PRED ] = 5000;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = 5000;
#endif
if (cpi->ref_frame_flags & VP8_GOLD_FLAG)
{
@ -1420,9 +1395,7 @@ void vp8_set_speed_features(VP8_COMP *cpi)
{
// Disable split MB intra prediction mode
sf->thresh_mult[THR_B_PRED] = INT_MAX;
#if CONFIG_I8X8
sf->thresh_mult[THR_I8X8_PRED] = INT_MAX;
#endif
}
if (Speed > 6)
@ -2720,12 +2693,8 @@ void vp8_remove_compressor(VP8_PTR *ptr)
sprintf(modes_stats_file, "modes_q%03d.stt",cpi->common.base_qindex);
f = fopen(modes_stats_file, "w");
fprintf(f, "intra_mode in Intra Frames:\n");
#if CONFIG_I8X8
fprintf(f, "Y: %8d, %8d, %8d, %8d, %8d, %8d\n", y_modes[0], y_modes[1], y_modes[2], y_modes[3], y_modes[4], y_modes[5]);
fprintf(f, "I8:%8d, %8d, %8d, %8d\n", i8x8_modes[0], i8x8_modes[1], i8x8_modes[2], i8x8_modes[3]);
#else
fprintf(f, "Y: %8d, %8d, %8d, %8d, %8d\n", y_modes[0], y_modes[1], y_modes[2], y_modes[3], y_modes[4]);
#endif
fprintf(f, "UV:%8d, %8d, %8d, %8d\n", uv_modes[0], uv_modes[1], uv_modes[2], uv_modes[3]);
fprintf(f, "Y-UV:\n");
{

View File

@ -43,9 +43,9 @@
#define AF_THRESH2 100
#define ARF_DECAY_THRESH 12
#if CONFIG_DUALPRED
#define MAX_MODES (32 + CONFIG_I8X8)
#define MAX_MODES 33
#else /* CONFIG_DUALPRED */
#define MAX_MODES (20 + CONFIG_I8X8)
#define MAX_MODES 21
#endif /* CONFIG_DUALPRED */
#define MIN_THRESHMULT 32
@ -190,26 +190,24 @@ typedef enum
THR_SPLITA = 18,
THR_B_PRED = 19,
#if CONFIG_I8X8
THR_I8X8_PRED = 20,
#endif
#if CONFIG_DUALPRED
THR_DUAL_ZEROLG = 20 + CONFIG_I8X8,
THR_DUAL_NEARESTLG = 21 + CONFIG_I8X8,
THR_DUAL_NEARLG = 22 + CONFIG_I8X8,
THR_DUAL_ZEROLG = 21,
THR_DUAL_NEARESTLG = 22,
THR_DUAL_NEARLG = 23,
THR_DUAL_ZEROLA = 23 + CONFIG_I8X8,
THR_DUAL_NEARESTLA = 24 + CONFIG_I8X8,
THR_DUAL_NEARLA = 25 + CONFIG_I8X8,
THR_DUAL_ZEROLA = 24,
THR_DUAL_NEARESTLA = 25,
THR_DUAL_NEARLA = 26,
THR_DUAL_ZEROGA = 26 + CONFIG_I8X8,
THR_DUAL_NEARESTGA = 27 + CONFIG_I8X8,
THR_DUAL_NEARGA = 28 + CONFIG_I8X8,
THR_DUAL_ZEROGA = 27,
THR_DUAL_NEARESTGA = 28,
THR_DUAL_NEARGA = 29,
THR_DUAL_NEWLG = 29 + CONFIG_I8X8,
THR_DUAL_NEWLA = 30 + CONFIG_I8X8,
THR_DUAL_NEWGA = 31 + CONFIG_I8X8,
THR_DUAL_NEWLG = 30,
THR_DUAL_NEWLA = 31,
THR_DUAL_NEWGA = 32,
#endif /* CONFIG_DUALPRED */
}
THR_MODES;

View File

@ -286,9 +286,7 @@ void vp8_quantize_mby_c(MACROBLOCK *x)
{
int i;
int has_2nd_order = (x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
for (i = 0; i < 16; i++)
@ -302,9 +300,7 @@ void vp8_quantize_mb_c(MACROBLOCK *x)
{
int i;
int has_2nd_order=(x->e_mbd.mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&& x->e_mbd.mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->e_mbd.mode_info_context->mbmi.mode != SPLITMV);
for (i = 0; i < 24+has_2nd_order; i++)

View File

@ -103,9 +103,7 @@ const MB_PREDICTION_MODE vp8_mode_order[MAX_MODES] =
SPLITMV,
B_PRED,
#if CONFIG_I8X8
I8X8_PRED,
#endif
#if CONFIG_DUALPRED
/* dual prediction modes */
@ -157,9 +155,7 @@ const MV_REFERENCE_FRAME vp8_ref_frame_order[MAX_MODES] =
ALTREF_FRAME,
INTRA_FRAME,
#if CONFIG_I8X8
INTRA_FRAME,
#endif
#if CONFIG_DUALPRED
/* dual prediction modes */
@ -186,9 +182,7 @@ const MV_REFERENCE_FRAME vp8_second_ref_frame_order[MAX_MODES] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
#if CONFIG_I8X8
0,
#endif
/* dual prediction modes */
GOLDEN_FRAME,
@ -881,7 +875,6 @@ static int rd_pick_intra16x16mby_mode(VP8_COMP *cpi,
x->e_mbd.mode_info_context->mbmi.mode = mode_selected;
return best_rd;
}
#if CONFIG_I8X8
static int rd_pick_intra8x8block(
VP8_COMP *cpi,
MACROBLOCK *x,
@ -1030,7 +1023,6 @@ int rd_pick_intra8x8mby_modes(VP8_COMP *cpi,
*Distortion = distortion;
return RDCOST(mb->rdmult, mb->rddiv, cost, distortion);
}
#endif
static int rd_cost_mbuv(MACROBLOCK *mb)
{
@ -2014,7 +2006,6 @@ static void rd_update_mvcount(VP8_COMP *cpi, MACROBLOCK *x, int_mv *best_ref_mv)
}
}
#if CONFIG_I8X8
static void set_i8x8_block_modes(MACROBLOCK *x, int *modes)
{
int i;
@ -2033,9 +2024,6 @@ static void set_i8x8_block_modes(MACROBLOCK *x, int *modes)
xd->block[i].bmi = xd->mode_info_context->bmi[i];
}
}
#endif
void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int recon_uvoffset,
int *returnrate, int *returndistortion, int *returnintra,
@ -2054,9 +2042,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
MB_PREDICTION_MODE this_mode;
int num00;
int best_mode_index = 0;
#if CONFIG_I8X8
int mode8x8[4];
#endif
unsigned char segment_id = xd->mode_info_context->mbmi.segment_id;
int i;
@ -2309,7 +2295,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
}
}
break;
#if CONFIG_I8X8
case I8X8_PRED:
{
int tmp_rd;
@ -2339,7 +2324,6 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
}
}
break;
#endif
case SPLITMV:
{
@ -2842,9 +2826,7 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
vpx_memcpy(&best_partition, x->partition_info, sizeof(PARTITION_INFO));
if ((this_mode == B_PRED)
#if CONFIG_I8X8
||(this_mode == I8X8_PRED)
#endif
|| (this_mode == SPLITMV))
for (i = 0; i < 16; i++)
{
@ -2984,12 +2966,10 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
}
}
#if CONFIG_I8X8
if (best_mbmode.mode == I8X8_PRED)
{
set_i8x8_block_modes(x, mode8x8);
}
#endif
if (best_mbmode.mode == SPLITMV)
{
@ -3021,12 +3001,10 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate_)
int rate4x4_tokenonly = 0;
int rate16x16_tokenonly = 0;
int rateuv_tokenonly = 0;
#if CONFIG_I8X8
int error8x8, rate8x8_tokenonly=0;
int rate8x8, dist8x8;
int mode16x16;
int mode8x8[4];
#endif
x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME;
@ -3036,7 +3014,6 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate_)
error16x16 = rd_pick_intra16x16mby_mode(cpi, x,
&rate16x16, &rate16x16_tokenonly,
&dist16x16);
#if CONFIG_I8X8
mode16x16 = x->e_mbd.mode_info_context->mbmi.mode;
error8x8 = rd_pick_intra8x8mby_modes(cpi, x,
&rate8x8, &rate8x8_tokenonly,
@ -3045,7 +3022,6 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate_)
mode8x8[1]= x->e_mbd.mode_info_context->bmi[2].as_mode;
mode8x8[2]= x->e_mbd.mode_info_context->bmi[8].as_mode;
mode8x8[3]= x->e_mbd.mode_info_context->bmi[10].as_mode;
#endif
#if CONFIG_T8X8
if ( get_seg_tx_type( xd,
@ -3065,24 +3041,19 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate_)
&dist4x4, error16x16);
#endif
#if CONFIG_I8X8
if(error8x8> error16x16)
{
#endif
if (error4x4 < error16x16)
{
x->e_mbd.mode_info_context->mbmi.mode = B_PRED;
rate += rate4x4;
}
else
{
#if CONFIG_I8X8
x->e_mbd.mode_info_context->mbmi.mode = mode16x16;
#endif
rate += rate16x16;
if (error4x4 < error16x16)
{
x->e_mbd.mode_info_context->mbmi.mode = B_PRED;
rate += rate4x4;
}
else
{
x->e_mbd.mode_info_context->mbmi.mode = mode16x16;
rate += rate16x16;
}
#if CONFIG_I8X8
}
}
else
{
@ -3099,6 +3070,5 @@ void vp8_rd_pick_intra_mode(VP8_COMP *cpi, MACROBLOCK *x, int *rate_)
rate += rate8x8;
}
}
#endif
*rate_ = rate;
}

View File

@ -499,9 +499,7 @@ void vp8_tokenize_mb(VP8_COMP *cpi, MACROBLOCKD *x, TOKENEXTRA **t)
skip_inc = 0;
has_y2_block = (x->mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&& x->mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->mode_info_context->mbmi.mode != SPLITMV);
x->mode_info_context->mbmi.mb_skip_coeff =
@ -1029,9 +1027,7 @@ void vp8_fix_contexts(MACROBLOCKD *x)
{
/* Clear entropy contexts for Y2 blocks */
if (x->mode_info_context->mbmi.mode != B_PRED
#if CONFIG_I8X8
&& x->mode_info_context->mbmi.mode != I8X8_PRED
#endif
&& x->mode_info_context->mbmi.mode != SPLITMV)
{
vpx_memset(x->above_context, 0, sizeof(ENTROPY_CONTEXT_PLANES));