~siretart/x264/trunk

« back to all changes in this revision

Viewing changes to x264.c

  • Committer: Loren Merritt
  • Date: 2005-04-19 08:45:36 UTC
  • Revision ID: git-v1:7d35ba6bf080610d8f144f4270e961c69ba14f1c
Allow manual selection of fullpel ME method. New method: Exhaustive search.
based on a patch by Tuukka Toivonen.


git-svn-id: svn://svn.videolan.org/x264/trunk@211 df754926-b1dd-0310-bc7b-ec298dee348c

Show diffs side-by-side

added added

removed removed

Lines of Context:
205
205
             "      --direct <string>       Direct MV prediction mode [\"temporal\"]\n"
206
206
             "                                  - none, spatial, temporal\n"
207
207
             "  -w, --weightb               Weighted prediction for B-frames\n"
 
208
             "      --me <string>           Integer pixel motion estimation method [\"%s\"]\n"
 
209
             "                                  - dia: diamond search, radius 1 (fast)\n"
 
210
             "                                  - hex: hexagonal search, radius 2\n"
 
211
             "                                  - esa: exhaustive search algorithm (slow)\n"
 
212
             "      --merange <integer>     Maximum motion vector search range [%d]\n"
208
213
             "  -m, --subme <integer>       Subpixel motion estimation quality: 1=fast, 5=best. [%d]\n"
209
214
             "      --no-chroma-me          Ignore chroma in motion estimation\n"
210
215
             "\n"
255
260
            defaults->rc.f_qcompress,
256
261
            defaults->rc.f_complexity_blur,
257
262
            defaults->rc.f_qblur,
 
263
            defaults->analyse.i_me_method==X264_ME_DIA ? "dia"
 
264
            : defaults->analyse.i_me_method==X264_ME_HEX ? "hex"
 
265
            : defaults->analyse.i_me_method==X264_ME_ESA ? "esa" : NULL,
 
266
            defaults->analyse.i_me_range,
258
267
            defaults->analyse.i_subpel_refine
259
268
           );
260
269
}
323
332
#define OPT_NO_CABAC 282
324
333
#define OPT_AUD 283
325
334
#define OPT_PROGRESS 284
 
335
#define OPT_ME 285
 
336
#define OPT_MERANGE 286
326
337
 
327
338
        static struct option long_options[] =
328
339
        {
351
362
            { "analyse", required_argument, NULL, 'A' },
352
363
            { "direct",  required_argument, NULL, OPT_DIRECT },
353
364
            { "weightb", no_argument,       NULL, 'w' },
 
365
            { "me",      required_argument, NULL, OPT_ME },
 
366
            { "merange", required_argument, NULL, OPT_MERANGE },
354
367
            { "subme",   required_argument, NULL, 'm' },
355
368
            { "no-chroma-me", no_argument,  NULL, OPT_NO_CHROMA_ME },
356
369
            { "level",   required_argument, NULL, OPT_LEVEL },
529
542
            case 'w':
530
543
                param->analyse.b_weighted_bipred = 1;
531
544
                break;
 
545
            case OPT_ME:
 
546
                if( strstr( optarg, "dia" ) )
 
547
                    param->analyse.i_me_method = X264_ME_DIA;
 
548
                else if( strstr( optarg, "hex" ) )
 
549
                    param->analyse.i_me_method = X264_ME_HEX;
 
550
                else if( strstr( optarg, "esa" ) )
 
551
                    param->analyse.i_me_method = X264_ME_ESA;
 
552
                else
 
553
                {
 
554
                    fprintf( stderr, "bad ME method `%s'\n", optarg );
 
555
                    return -1;
 
556
                }
 
557
                break;
 
558
            case OPT_MERANGE:
 
559
                param->analyse.i_me_range = atoi(optarg);
 
560
                break;
532
561
            case 'm':
533
562
                param->analyse.i_subpel_refine = atoi(optarg);
534
563
                break;