&& h->mb.i_subpel_refine >= 5;
/* I: Intra part */
- a->i_sad_i16x16 = -1;
- a->i_sad_i4x4 = -1;
- a->i_sad_i8x8 = -1;
+ a->i_sad_i16x16 =
+ a->i_sad_i4x4 =
+ a->i_sad_i8x8 = COST_MAX;
/* II: Inter part P/B frame */
if( h->sh.i_type != SLICE_TYPE_I )
}
#undef CLIP_FMV
- a->l0.me16x16.cost = -1;
- a->l0.i_cost8x8 = -1;
+ a->l0.me16x16.cost =
+ a->l0.i_cost8x8 = COST_MAX;
for( i = 0; i < 4; i++ )
{
- a->l0.i_cost4x4[i] = -1;
- a->l0.i_cost8x4[i] = -1;
- a->l0.i_cost4x8[i] = -1;
+ a->l0.i_cost4x4[i] =
+ a->l0.i_cost8x4[i] =
+ a->l0.i_cost4x8[i] = COST_MAX;
}
- a->l0.i_cost16x8 = -1;
- a->l0.i_cost8x16 = -1;
+ a->l0.i_cost16x8 =
+ a->l0.i_cost8x16 = COST_MAX;
if( h->sh.i_type == SLICE_TYPE_B )
{
- a->l1.me16x16.cost = -1;
- a->l1.i_cost8x8 = -1;
+ a->l1.me16x16.cost =
+ a->l1.i_cost8x8 = COST_MAX;
for( i = 0; i < 4; i++ )
{
- a->l1.i_cost4x4[i] = -1;
- a->l1.i_cost8x4[i] = -1;
- a->l1.i_cost4x8[i] = -1;
- a->i_cost8x8direct[i] = -1;
+ a->l1.i_cost4x4[i] =
+ a->l1.i_cost8x4[i] =
+ a->l1.i_cost4x8[i] =
+ a->i_cost8x8direct[i] = COST_MAX;
}
- a->l1.i_cost16x8 = -1;
- a->l1.i_cost8x16 = -1;
+ a->l1.i_cost16x8 =
+ a->l1.i_cost8x16 =
- a->i_cost16x16bi = -1;
- a->i_cost16x16direct = -1;
- a->i_cost8x8bi = -1;
- a->i_cost16x8bi = -1;
- a->i_cost8x16bi = -1;
+ a->i_cost16x16bi =
+ a->i_cost16x16direct =
+ a->i_cost8x8bi =
+ a->i_cost16x8bi =
+ a->i_cost8x16bi = COST_MAX;
}
}
}
i_sad = h->pixf.satd[PIXEL_16x16]( p_dst, i_stride, p_src, i_stride ) +
res->i_lambda * bs_size_ue( x264_mb_pred_mode16x16_fix[i_mode] );
/* if i_score is lower it is better */
- if( res->i_sad_i16x16 == -1 || res->i_sad_i16x16 > i_sad )
+ if( res->i_sad_i16x16 > i_sad )
{
res->i_predict16x16 = i_mode;
res->i_sad_i16x16 = i_sad;
p_src_by = p_src + 4 * x + 4 * y * i_stride;
p_dst_by = p_dst + 4 * x + 4 * y * i_stride;
- i_best = -1;
+ i_best = COST_MAX;
predict_4x4_mode_available( h->mb.i_neighbour, idx, predict_mode, &i_max );
for( i = 0; i < i_max; i++ )
{
i_sad += res->i_lambda * (i_pred_mode == x264_mb_pred_mode4x4_fix[i_mode] ? 1 : 4);
/* if i_score is lower it is better */
- if( i_best == -1 || i_best > i_sad )
+ if( i_best > i_sad )
{
res->i_predict4x4[x][y] = i_mode;
i_best = i_sad;
uint8_t *p_dstc[2], *p_srcc[2];
int i_stride[2];
- if( res->i_sad_i8x8 >= 0 )
+ if( res->i_sad_i8x8 < COST_MAX )
return;
/* 8x8 prediction selection for chroma */
i_stride[1] = h->mb.pic.i_stride[2];
predict_8x8_mode_available( h->mb.i_neighbour, predict_mode, &i_max );
- res->i_sad_i8x8 = -1;
+ res->i_sad_i8x8 = COST_MAX;
for( i = 0; i < i_max; i++ )
{
int i_sad;
res->i_lambda * bs_size_ue( x264_mb_pred_mode8x8_fix[i_mode] );
/* if i_score is lower it is better */
- if( res->i_sad_i8x8 == -1 || res->i_sad_i8x8 > i_sad )
+ if( res->i_sad_i8x8 > i_sad )
{
res->i_predict8x8 = i_mode;
res->i_sad_i8x8 = i_sad;
i_part_cost = i_part_cost_bi;
h->mb.i_sub_partition[i] = D_BI_8x8;
}
- if( a->i_cost8x8direct[i] < i_part_cost && a->i_cost8x8direct[i] >= 0)
+ if( a->i_cost8x8direct[i] < i_part_cost )
{
i_part_cost = a->i_cost8x8direct[i];
h->mb.i_sub_partition[i] = D_DIRECT_8x8;
{
x264_mb_analyse_intra( h, &analysis );
- if( analysis.i_sad_i4x4 >= 0 && analysis.i_sad_i4x4 < analysis.i_sad_i16x16 )
+ if( analysis.i_sad_i4x4 < analysis.i_sad_i16x16 )
h->mb.i_type = I_4x4;
else
h->mb.i_type = I_16x16;
x264_mb_analyse_intra( h, &analysis );
if( h->mb.b_chroma_me &&
( analysis.i_sad_i16x16 < i_cost
- || ( analysis.i_sad_i4x4 < i_cost && analysis.i_sad_i4x4 >= 0 )))
+ || ( analysis.i_sad_i4x4 < i_cost )))
{
x264_mb_analyse_intra_chroma( h, &analysis );
analysis.i_sad_i16x16 += analysis.i_sad_i8x8;
- if( analysis.i_sad_i4x4 >= 0 )
- analysis.i_sad_i4x4 += analysis.i_sad_i8x8;
+ analysis.i_sad_i4x4 += analysis.i_sad_i8x8;
}
i_intra_type = I_16x16;
i_intra_cost = analysis.i_sad_i16x16;
- if( analysis.i_sad_i4x4 >=0 && analysis.i_sad_i4x4 < i_intra_cost )
+ if( analysis.i_sad_i4x4 < i_intra_cost )
{
i_intra_type = I_4x4;
i_intra_cost = analysis.i_sad_i4x4;
}
- if( i_intra_cost >= 0 && i_intra_cost < i_cost )
+ if( i_intra_cost < i_cost )
{
h->mb.i_type = i_intra_type;
i_cost = i_intra_cost;
h->mb.i_type = B_BI_BI;
i_cost = analysis.i_cost16x16bi;
}
- if( analysis.i_cost16x16direct < i_cost && analysis.i_cost16x16direct >= 0 )
+ if( analysis.i_cost16x16direct < i_cost )
{
h->mb.i_type = B_DIRECT;
i_cost = analysis.i_cost16x16direct;
/* best intra mode */
x264_mb_analyse_intra( h, &analysis );
- if( analysis.i_sad_i16x16 >= 0 && analysis.i_sad_i16x16 < i_cost )
+ if( analysis.i_sad_i16x16 < i_cost )
{
h->mb.i_type = I_16x16;
i_cost = analysis.i_sad_i16x16;
}
- if( analysis.i_sad_i4x4 >=0 && analysis.i_sad_i4x4 < i_cost )
+ if( analysis.i_sad_i4x4 < i_cost )
{
h->mb.i_type = I_4x4;
i_cost = analysis.i_sad_i4x4;
#endif
x264_param_default( ¶m );
- param.b_cabac = 0;
/* Parse command line */
if( Parse( argc, argv, ¶m, &hin, &fout, &b_decompress ) < 0 )
" --b-bias <integer> Influences how often B-frames are used [%d]\n"
" --b-pyramid Keep some B-frames as references\n"
"\n"
- " -c, --cabac Enable CABAC\n"
+ " --no-cabac Disable CABAC\n"
" -r, --ref <integer> Number of reference frames [%d]\n"
" -n, --nf Disable loop filter\n"
" -f, --filter <alpha:beta> Loop filter AplhaCO and Beta parameters [%d]\n"
#define OPT_BPYRAMID 279
#define OPT_CHROMA_QP 280
#define OPT_NO_CHROMA_ME 281
+#define OPT_NO_CABAC 282
static struct option long_options[] =
{
{ "scenecut",required_argument, NULL, OPT_SCENECUT },
{ "nf", no_argument, NULL, 'n' },
{ "filter", required_argument, NULL, 'f' },
- { "cabac", no_argument, NULL, 'c' },
+ { "no-cabac",no_argument, NULL, OPT_NO_CABAC },
{ "qp", required_argument, NULL, 'q' },
{ "qpmin", required_argument, NULL, OPT_QPMIN },
{ "qpmax", required_argument, NULL, OPT_QPMAX },
case 'r':
param->i_frame_reference = atoi( optarg );
break;
- case 'c':
- param->b_cabac = 1;
+ case OPT_NO_CABAC:
+ param->b_cabac = 0;
break;
case 'x':
*pb_decompress = 1;