1 
2 /*!
3  ***********************************************************************
4  *  \file
5  *     configfile.h
6  *  \brief
7  *     Prototypes for configfile.c and definitions of used structures.
8  ***********************************************************************
9  */
10 
11 #include "fmo.h"
12 
13 #ifndef _CONFIGFILE_H_
14 #define _CONFIGFILE_H_
15 
16 #include "config_common.h"
17 
18 #define DEFAULTCONFIGFILENAME "encoder.cfg"
19 
20 #define PROFILE_IDC     88
21 #define LEVEL_IDC       21
22 
23 extern InputParameters cfgparams;
24 
25 
26 #ifdef INCLUDED_BY_CONFIGFILE_C
27 // Mapping_Map Syntax:
28 // {NAMEinConfigFile,  &cfgparams.VariableName, Type, InitialValue, LimitType, MinLimit, MaxLimit, CharSize}
29 // Types : {0:int, 1:text, 2: double}
30 // LimitType: {0:none, 1:both, 2:minimum, 3: QP based}
31 // We could separate this based on types to make it more flexible and allow also defaults for text types.
32 Mapping Map[] = {
33     {"ProfileIDC",               &cfgparams.ProfileIDC,                   0,   (double) PROFILE_IDC,      0,  0.0,              0.0,                             },
34     {"IntraProfile",             &cfgparams.IntraProfile,                 0,   0.0,                       1,  0.0,              1.0,                             },
35     {"LevelIDC",                 &cfgparams.LevelIDC,                     0,   (double) LEVEL_IDC,        0,  0.0,              0.0,                             },
36     {"FrameRate",                &cfgparams.source.frame_rate,            2,   (double) INIT_FRAME_RATE,  1,  0.0,            480.0,                             },
37     {"Enable32Pulldown",         &cfgparams.enable_32_pulldown,           0,   0.0,                       1,  0.0,              2.0,                             },
38     {"ResendSPS",                &cfgparams.ResendSPS,                    0,   0.0,                       1,  0.0,              3.0,                             },
39     {"StartFrame",               &cfgparams.start_frame,                  0,   0.0,                       2,  0.0,              0.0,                             },
40     {"IntraPeriod",              &cfgparams.intra_period,                 0,   0.0,                       2,  0.0,              0.0,                             },
41     {"IDRPeriod",                &cfgparams.idr_period,                   0,   0.0,                       2,  0.0,              0.0,                             },
42     {"IntraDelay",               &cfgparams.intra_delay,                  0,   0.0,                       2,  0.0,              0.0,                             },
43     {"AdaptiveIntraPeriod",      &cfgparams.adaptive_intra_period,        0,   0.0,                       1,  0.0,              1.0,                             },
44     {"AdaptiveIDRPeriod",        &cfgparams.adaptive_idr_period,          0,   0.0,                       1,  0.0,              2.0,                             },
45     {"EnableOpenGOP",            &cfgparams.EnableOpenGOP,                0,   0.0,                       1,  0.0,              1.0,                             },
46     {"EnableIDRGOP",             &cfgparams.EnableIDRGOP,                 0,   0.0,                       1,  0.0,              1.0,                             },
47     {"FramesToBeEncoded",        &cfgparams.no_frames,                    0,   1.0,                       2, -1.0,              0.0,                             },
48     {"QPISlice",                 &cfgparams.qp[I_SLICE],                  0,   24.0,                      3,  (double) MIN_QP,  (double) MAX_QP,                 },
49     {"QPPSlice",                 &cfgparams.qp[P_SLICE],                  0,   24.0,                      3,  (double) MIN_QP,  (double) MAX_QP,                 },
50     {"QPBSlice",                 &cfgparams.qp[B_SLICE],                  0,   24.0,                      3,  (double) MIN_QP,  (double) MAX_QP,                 },
51     {"QPSPSlice",                &cfgparams.qp[SP_SLICE],                 0,   24.0,                      3,  (double) MIN_QP,  (double) MAX_QP,                 },
52     {"QPSISlice",                &cfgparams.qp[SI_SLICE],                 0,   24.0,                      3,  (double) MIN_QP,  (double) MAX_QP,                 },
53     {"ChangeQPFrame",            &cfgparams.qp2frame,                     0,   0.0,                       2,  0.0,              0.0,                             },
54     {"ChangeQPI",                &cfgparams.qp2off[I_SLICE],              0,   0.0,                       0,  (double) -MAX_QP,  (double) MAX_QP,                },
55     {"ChangeQPP",                &cfgparams.qp2off[P_SLICE],              0,   0.0,                       0,  (double) -MAX_QP,  (double) MAX_QP,                },
56     {"ChangeQPB",                &cfgparams.qp2off[B_SLICE],              0,   0.0,                       0,  (double) -MAX_QP,  (double) MAX_QP,                },
57     {"ChangeQPSP",               &cfgparams.qp2off[SP_SLICE],             0,   0.0,                       0,  (double) -MAX_QP,  (double) MAX_QP,                },
58     {"ChangeQPSI",               &cfgparams.qp2off[SI_SLICE],             0,   0.0,                       0,  (double) -MAX_QP,  (double) MAX_QP,                },
59     {"QPSP2Slice",               &cfgparams.qpsp,                         0,   0.0,                       3,  (double) MIN_QP,  (double) MAX_QP,                 },
60     {"FrameSkip",                &cfgparams.frame_skip,                   0,   0.0,                       2,  0.0,              0.0,                             },
61     {"DisableSubpelME",          &cfgparams.DisableSubpelME[0],           0,   0.0,                       1,  0.0,              1.0,                             },
62     {"SearchRange",              &cfgparams.search_range[0],              0,   16.0,                      2,  0.0,              0.0,                             },
63     {"NumberReferenceFrames",    &cfgparams.num_ref_frames,               0,   1.0,                       1,  0.0,             16.0,                             },
64     {"PList0References",         &cfgparams.P_List0_refs[0],              0,   0.0,                       1,  0.0,             16.0,                             },
65     {"BList0References",         &cfgparams.B_List0_refs[0],              0,   0.0,                       1,  0.0,             16.0,                             },
66     {"BList1References",         &cfgparams.B_List1_refs[0],              0,   1.0,                       1,  0.0,             16.0,                             },
67     {"NumberOfViews",            &cfgparams.num_of_views,                 0,   1.0,                       1,  1.0,              2.0,                             },
68 #if (MVC_EXTENSION_ENABLE)
69     {"View1ConfigFile",          &cfgparams.View1ConfigName,              1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
70 #endif
71     {"Log2MaxFNumMinus4",        &cfgparams.Log2MaxFNumMinus4,            0,   0.0,                       1, -1.0,             12.0,                             },
72     {"Log2MaxPOCLsbMinus4",      &cfgparams.Log2MaxPOCLsbMinus4,          0,   2.0,                       1, -1.0,             12.0,                             },
73     {"GenerateMultiplePPS",      &cfgparams.GenerateMultiplePPS,          0,   0.0,                       1,  0.0,              1.0,                             },
74     {"ResendPPS",                &cfgparams.ResendPPS,                    0,   0.0,                       1,  0.0,              1.0,                             },
75     {"SendAUD",                  &cfgparams.SendAUD,                      0,   0.0,                       1,  0.0,              3.0,                             },
76     {"SourceWidth",              &cfgparams.source.width[0],              0,   176.0,                     2,  0.0,              0.0,                             },
77     {"SourceHeight",             &cfgparams.source.height[0],             0,   144.0,                     2,  0.0,              0.0,                             },
78     {"SourceResize",             &cfgparams.src_resize,                   0,   0.0,                       1,  0.0,              1.0,                             },
79     {"OutputWidth",              &cfgparams.output.width[0],              0,   176.0,                     2, 16.0,              0.0,                             },
80     {"OutputHeight",             &cfgparams.output.height[0],             0,   144.0,                     2, 16.0,              0.0,                             },
81     {"Grayscale",                &cfgparams.grayscale,                    0,   0.0,                       0,  0.0,              1.0,                             },
82     {"MbLineIntraUpdate",        &cfgparams.intra_upd,                    0,   0.0,                       1,  0.0,              1.0,                             },
83     {"SliceMode",                &cfgparams.slice_mode,                   0,   0.0,                       1,  0.0,              3.0,                             },
84     {"SliceArgument",            &cfgparams.slice_argument,               0,   1.0,                       2,  1.0,              1.0,                             },
85     {"UseConstrainedIntraPred",  &cfgparams.UseConstrainedIntraPred,      0,   0.0,                       1,  0.0,              1.0,                             },
86     {"InputFile",                &cfgparams.input_file1.fname,            1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
87     {"InputHeaderLength",        &cfgparams.infile_header,                0,   0.0,                       2,  0.0,              1.0,                             },
88     {"OutputFile",               &cfgparams.outfile,                      1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
89     {"ReconFile",                &cfgparams.ReconFile,                    1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
90     {"TraceFile",                &cfgparams.TraceFile,                    1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
91     {"StatsFile",                &cfgparams.StatsFile,                    1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
92     {"DisposableP",              &cfgparams.DisposableP,                  0,   0.0,                       1,  0.0,              1.0,                             },
93     {"SetFirstAsLongTerm",       &cfgparams.SetFirstAsLongTerm,           0,   0.0,                       1,  0.0,              1.0,                             },
94     {"MultiSourceData",          &cfgparams.MultiSourceData,              0,   0.0,                       0,  0.0,              2.0,                             },
95     {"InputFile3",               &cfgparams.input_file3.fname,            1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
96     {"SEIVUI32Pulldown",         &cfgparams.SEIVUI32Pulldown,             0,   0.0,                       1,  0.0,              5.0,                             },
97     {"SEIFPAType",               &cfgparams.SEIFPAType,                   0,    -1,                       1,   -1,                7,                             },
98 
99     {"ProcessInput",             &cfgparams.ProcessInput,                 0,   0.0,                       1,  0.0,              4.0,                             },
100     {"DispPQPOffset",            &cfgparams.DispPQPOffset,                0,   0.0,                       0,-51.0,             51.0,                             },
101     {"NumberBFrames",            &cfgparams.NumberBFrames,                0,   0.0,                       2,  0.0,              0.0,                             },
102     {"PReplaceBSlice",           &cfgparams.PReplaceBSlice,               0,   0.0,                       1,  0.0,              1.0,                             },
103     {"BRefPicQPOffset",          &cfgparams.qpBRSOffset,                  0,   0.0,                       0,-51.0,             51.0,                             },
104     {"DirectModeType",           &cfgparams.direct_spatial_mv_pred_flag,  0,   0.0,                       1,  0.0,              1.0,                             },
105     {"DirectInferenceFlag",      &cfgparams.directInferenceFlag,          0,   1.0,                       1,  0.0,              1.0,                             },
106     {"SPPicturePeriodicity",     &cfgparams.sp_periodicity,               0,   0.0,                       2,  0.0,              0.0,                             },
107     {"SI_FRAMES",                &cfgparams.si_frame_indicator,           0,   0.0,                       1,  0.0,              1.0,                             },
108     {"SP_output",                &cfgparams.sp_output_indicator,          0,   0.0,                       1,  0.0,              1.0,                             },
109     {"SP_output_name",           &cfgparams.sp_output_filename,           1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
110     {"SPSwitchPeriod",           &cfgparams.sp_switch_period,             0,   0.0,                       2,  0.0,              0.0,                             },
111     {"SP2_FRAMES",               &cfgparams.sp2_frame_indicator,          0,   0.0,                       1,  0.0,              1.0,                             },
112     {"SP2_input_name1",          &cfgparams.sp2_input_filename1,          1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
113     {"SP2_input_name2",          &cfgparams.sp2_input_filename2,          1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
114     {"SymbolMode",               &cfgparams.symbol_mode,                  0,   0.0,                       1,  (double) CAVLC,  (double) CABAC,                   },
115     {"OutFileMode",              &cfgparams.of_mode,                      0,   0.0,                       1,  0.0,              1.0,                             },
116     {"PartitionMode",            &cfgparams.partition_mode,               0,   0.0,                       1,  0.0,              1.0,                             },
117     {"PSliceSkip",               &cfgparams.InterSearch[0][0][0],         0,   1.0,                       1,  0.0,              1.0,                             },
118     {"PSliceSearch16x16",        &cfgparams.InterSearch[0][0][1],         0,   1.0,                       1,  0.0,              1.0,                             },
119     {"PSliceSearch16x8",         &cfgparams.InterSearch[0][0][2],         0,   1.0,                       1,  0.0,              1.0,                             },
120     {"PSliceSearch8x16",         &cfgparams.InterSearch[0][0][3],         0,   1.0,                       1,  0.0,              1.0,                             },
121     {"PSliceSearch8x8",          &cfgparams.InterSearch[0][0][4],         0,   1.0,                       1,  0.0,              1.0,                             },
122     {"PSliceSearch8x4",          &cfgparams.InterSearch[0][0][5],         0,   1.0,                       1,  0.0,              1.0,                             },
123     {"PSliceSearch4x8",          &cfgparams.InterSearch[0][0][6],         0,   1.0,                       1,  0.0,              1.0,                             },
124     {"PSliceSearch4x4",          &cfgparams.InterSearch[0][0][7],         0,   1.0,                       1,  0.0,              1.0,                             },
125     // B slice partition modes.
126     {"BSliceDirect",             &cfgparams.InterSearch[0][1][0],         0,   1.0,                       1,  0.0,              1.0,                             },
127     {"BSliceSearch16x16",        &cfgparams.InterSearch[0][1][1],         0,   1.0,                       1,  0.0,              1.0,                             },
128     {"BSliceSearch16x8",         &cfgparams.InterSearch[0][1][2],         0,   1.0,                       1,  0.0,              1.0,                             },
129     {"BSliceSearch8x16",         &cfgparams.InterSearch[0][1][3],         0,   1.0,                       1,  0.0,              1.0,                             },
130     {"BSliceSearch8x8",          &cfgparams.InterSearch[0][1][4],         0,   1.0,                       1,  0.0,              1.0,                             },
131     {"BSliceSearch8x4",          &cfgparams.InterSearch[0][1][5],         0,   1.0,                       1,  0.0,              1.0,                             },
132     {"BSliceSearch4x8",          &cfgparams.InterSearch[0][1][6],         0,   1.0,                       1,  0.0,              1.0,                             },
133     {"BSliceSearch4x4",          &cfgparams.InterSearch[0][1][7],         0,   1.0,                       1,  0.0,              1.0,                             },
134     //Bipredicting Motion Estimation parameters
135     {"BiPredMotionEstimation",   &cfgparams.BiPredMotionEstimation,       0,   0.0,                       1,  0.0,              1.0,                             },
136     {"BiPredSearch16x16",        &cfgparams.BiPredSearch[0],              0,   1.0,                       1,  0.0,              1.0,                             },
137     {"BiPredSearch16x8",         &cfgparams.BiPredSearch[1],              0,   0.0,                       1,  0.0,              1.0,                             },
138     {"BiPredSearch8x16",         &cfgparams.BiPredSearch[2],              0,   0.0,                       1,  0.0,              1.0,                             },
139     {"BiPredSearch8x8",          &cfgparams.BiPredSearch[3],              0,   0.0,                       1,  0.0,              1.0,                             },
140     {"BiPredMERefinements",      &cfgparams.BiPredMERefinements,          0,   0.0,                       1,  0.0,              5.0,                             },
141     {"BiPredMESearchRange",      &cfgparams.BiPredMESearchRange[0],       0,   8.0,                       2,  0.0,              0.0,                             },
142     {"BiPredMESubPel",           &cfgparams.BiPredMESubPel,               0,   1.0,                       1,  0.0,              2.0,                             },
143     {"DisableIntraInInter",      &cfgparams.DisableIntraInInter[0],       0,   0.0,                       1,  0.0,              1.0,                             },
144     {"IntraDisableInterOnly",    &cfgparams.IntraDisableInterOnly,        0,   0.0,                       1,  0.0,              1.0,                             },
145     {"DisableIntra4x4",          &cfgparams.DisableIntra4x4,              0,   0.0,                       1,  0.0,              1.0,                             },
146     {"DisableIntra16x16",        &cfgparams.DisableIntra16x16,            0,   0.0,                       1,  0.0,              1.0,                             },
147     {"Intra4x4ParDisable",       &cfgparams.Intra4x4ParDisable,           0,   0.0,                       1,  0.0,              1.0,                             },
148     {"Intra4x4DiagDisable",      &cfgparams.Intra4x4DiagDisable,          0,   0.0,                       1,  0.0,              1.0,                             },
149     {"Intra4x4DirDisable",       &cfgparams.Intra4x4DirDisable,           0,   0.0,                       1,  0.0,              1.0,                             },
150     {"Intra16x16ParDisable",     &cfgparams.Intra16x16ParDisable,         0,   0.0,                       1,  0.0,              1.0,                             },
151     {"Intra16x16PlaneDisable",   &cfgparams.Intra16x16PlaneDisable,       0,   0.0,                       1,  0.0,              1.0,                             },
152     {"EnableIPCM",               &cfgparams.EnableIPCM,                   0,   0.0,                       1,  0.0,              2.0,                             },
153     {"ChromaIntraDisable",       &cfgparams.ChromaIntraDisable,           0,   0.0,                       1,  0.0,              1.0,                             },
154     {"RDOptimization",           &cfgparams.rdopt,                        0,   0.0,                       1,  0.0,              4.0,                             },
155 
156     {"DistortionEstimation",     &cfgparams.de,                           0,   1.0,                       2,  0.0,              8.0,                             },
157     {"SubMBCodingState",         &cfgparams.subMBCodingState,             0,   2.0,                       1,  0.0,              2.0,                             },
158     {"I16RDOpt",                 &cfgparams.I16rdo,                       0,   0.0,                       1,  0.0,              1.0,                             },
159     {"MDReference",              &cfgparams.MDReference[0],               0,   0.0,                       1,  0.0,              1.0,                             },
160     {"EnhLayerMDReference",      &cfgparams.MDReference[1],               0,   0.0,                       1,  0.0,              1.0,                             },
161     {"DistortionSSIM",           &cfgparams.Distortion[SSIM],             0,   0.0,                       1,  0.0,              1.0,                             },
162     {"DistortionMS_SSIM",        &cfgparams.Distortion[MS_SSIM],          0,   0.0,                       1,  0.0,              1.0,                             },
163     {"SSIMOverlapSize",          &cfgparams.SSIMOverlapSize,              0,   1.0,                       2,  1.0,              1.0,                             },
164     {"DistortionYUVtoRGB",       &cfgparams.DistortionYUVtoRGB,           0,   0.0,                       1,  0.0,              1.0,                             },
165     {"CtxAdptLagrangeMult",      &cfgparams.CtxAdptLagrangeMult,          0,   0.0,                       1,  0.0,              1.0,                             },
166     {"FastCrIntraDecision",      &cfgparams.FastCrIntraDecision,          0,   0.0,                       1,  0.0,              1.0,                             },
167     {"DisableThresholding",      &cfgparams.disthres,                     0,   0.0,                       1,  0.0,              2.0,                             },
168     {"DisableBSkipRDO",          &cfgparams.nobskip,                      0,   0.0,                       1,  0.0,              1.0,                             },
169     {"BiasSkipRDO",              &cfgparams.BiasSkipRDO,                  0,   0.0,                       1,  0.0,              1.0,                             },
170     {"ForceTrueRateRDO",         &cfgparams.ForceTrueRateRDO,             0,   0.0,                       1,  0.0,              2.0,                             },
171     {"LossRateA",                &cfgparams.LossRateA,                    2,   0.0,                       2,  0.0,              0.0,                             },
172     {"LossRateB",                &cfgparams.LossRateB,                    2,   0.0,                       2,  0.0,              0.0,                             },
173     {"LossRateC",                &cfgparams.LossRateC,                    2,   0.0,                       2,  0.0,              0.0,                             },
174     {"FirstFrameCorrect",        &cfgparams.FirstFrameCorrect,            0,   0.0,                       2,  0.0,              0.0,                             },
175     {"NumberOfDecoders",         &cfgparams.NoOfDecoders,                 0,   0.0,                       2,  0.0,              0.0,                             },
176     {"ErrorConcealment",         &cfgparams.ErrorConcealment,             0,   0.0,                       2,  0.0,              0.0,                             },
177     {"RestrictRefFrames",        &cfgparams.RestrictRef ,                 0,   0.0,                       1,  0.0,              1.0,                             },
178 #ifdef _LEAKYBUCKET_
179     {"NumberofLeakyBuckets",     &cfgparams.NumberLeakyBuckets,           0,   2.0,                       1,  2.0,              255.0,                           },
180     {"LeakyBucketRateFile",      &cfgparams.LeakyBucketRateFile,          1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
181     {"LeakyBucketParamFile",     &cfgparams.LeakyBucketParamFile,         1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
182 #endif
183     {"PicInterlace",             &cfgparams.PicInterlace,                 0,   0.0,                       1,  0.0,              3.0,                             },
184     {"MbInterlace",              &cfgparams.MbInterlace,                  0,   0.0,                       1,  0.0,              3.0,                             },
185 
186     {"IntraBottom",              &cfgparams.IntraBottom,                  0,   0.0,                       1,  0.0,              1.0,                             },
187 
188     {"NumFramesInELayerSubSeq",  &cfgparams.NumFramesInELSubSeq,          0,   0.0,                       2,  0.0,              0.0,                             },
189     {"RandomIntraMBRefresh",     &cfgparams.RandomIntraMBRefresh,         0,   0.0,                       2,  0.0,              0.0,                             },
190     {"WeightedPrediction",       &cfgparams.WeightedPrediction,           0,   0.0,                       1,  0.0,              1.0,                             },
191     {"WeightedBiprediction",     &cfgparams.WeightedBiprediction,         0,   0.0,                       1,  0.0,              2.0,                             },
192     {"WPMethod",                 &cfgparams.WPMethod,                     0,   0.0,                       1,  0.0,              3.0,                             },
193     {"WPIterMC",                 &cfgparams.WPIterMC,                     0,   0.0,                       1,  0.0,              1.0,                             },
194     {"ChromaWeightSupport",      &cfgparams.ChromaWeightSupport,          0,   0.0,                       1,  0.0,              1.0,                             },
195     {"EnhancedBWeightSupport",   &cfgparams.EnhancedBWeightSupport,       0,   0.0,                       1,  0.0,              2.0,                             },
196     {"UseWeightedReferenceME",   &cfgparams.UseWeightedReferenceME,       0,   0.0,                       1,  0.0,              1.0,                             },
197     {"RDPictureDecision",        &cfgparams.RDPictureDecision,            0,   0.0,                       1,  0.0,              1.0,                             },
198     {"RDPSliceBTest",            &cfgparams.RDPSliceBTest,                0,   0.0,                       1,  0.0,              1.0,                             },
199     {"RDPSliceITest",            &cfgparams.RDPSliceITest,                0,   1.0,                       1,  0.0,              1.0,                             },
200     {"RDPictureMaxPassISlice",   &cfgparams.RDPictureMaxPassISlice,       0,   1.0,                       1,  1.0,              3.0,                             },
201     {"RDPictureMaxPassPSlice",   &cfgparams.RDPictureMaxPassPSlice,       0,   2.0,                       1,  1.0,              6.0,                             },
202     {"RDPictureMaxPassBSlice",   &cfgparams.RDPictureMaxPassBSlice,       0,   3.0,                       1,  1.0,              6.0,                             },
203     {"RDPictureDeblocking",      &cfgparams.RDPictureDeblocking,          0,   0.0,                       1,  0.0,              1.0,                             },
204     {"RDPictureDirectMode",      &cfgparams.RDPictureDirectMode,          0,   0.0,                       1,  0.0,              1.0,                             },
205     {"RDPictureFrameQPPSlice",   &cfgparams.RDPictureFrameQPPSlice,       0,   0.0,                       1,  0.0,              1.0,                             },
206     {"RDPictureFrameQPBSlice",   &cfgparams.RDPictureFrameQPBSlice,       0,   0.0,                       1,  0.0,              1.0,                             },
207     {"SkipIntraInInterSlices",   &cfgparams.SkipIntraInInterSlices,       0,   0.0,                       1,  0.0,              1.0,                             },
208     {"PSliceSkipDecisionMethod", &cfgparams.PSliceSkipDecisionMethod,     0,   0.0,                       1,  0.0,              5.0,                             },
209     {"BReferencePictures",       &cfgparams.BRefPictures,                 0,   0.0,                       1,  0.0,              2.0,                             },
210     {"HierarchicalCoding",       &cfgparams.HierarchicalCoding,           0,   0.0,                       1,  0.0,              3.0,                             },
211     {"HierarchyLevelQPEnable",   &cfgparams.HierarchyLevelQPEnable,       0,   0.0,                       1,  0.0,              1.0,                             },
212     {"ExplicitHierarchyFormat",  &cfgparams.ExplicitHierarchyFormat,      1,   0.0,                       0,  0.0,              0.0,             INPUT_TEXT_SIZE,},
213     {"ExplicitSeqCoding",        &cfgparams.ExplicitSeqCoding,            0,   0.0,                       1,  0.0,              3.0,                             },
214     {"ExplicitSeqFile",          &cfgparams.ExplicitSeqFile,              1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
215     {"LowDelay",                 &cfgparams.LowDelay,                     0,   0.0,                       1,  0.0,              1.0,                             },
216     {"ReferenceReorder",         &cfgparams.ReferenceReorder,             0,   0.0,                       1,  0.0,              2.0,                             },
217     {"EnableReorderBslice",      &cfgparams.EnableReorderBslice,          0,   0.0,                       1,  0.0,              1.0,                             },
218     {"UseDistortionReorder",     &cfgparams.UseDistortionReorder,         0,   0.0,                       1,  0.0,              1.0,                             },
219     {"PocMemoryManagement",      &cfgparams.PocMemoryManagement,          0,   0.0,                       1,  0.0,              2.0,                             },
220 
221 
222     {"DFParametersFlag",         &cfgparams.DFSendParameters,             0,   0.0,                       1,  0.0,              1.0,                             },
223     {"DFDisableRefISlice",       &cfgparams.DFDisableIdc[1][I_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
224     {"DFDisableNRefISlice",      &cfgparams.DFDisableIdc[0][I_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
225     {"DFDisableRefPSlice",       &cfgparams.DFDisableIdc[1][P_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
226     {"DFDisableNRefPSlice",      &cfgparams.DFDisableIdc[0][P_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
227     {"DFDisableRefBSlice",       &cfgparams.DFDisableIdc[1][B_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
228     {"DFDisableNRefBSlice",      &cfgparams.DFDisableIdc[0][B_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
229     {"DFDisableRefSPSlice",      &cfgparams.DFDisableIdc[1][SP_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
230     {"DFDisableNRefSPSlice",     &cfgparams.DFDisableIdc[0][SP_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
231     {"DFDisableRefSISlice",      &cfgparams.DFDisableIdc[1][SI_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
232     {"DFDisableNRefSISlice",     &cfgparams.DFDisableIdc[0][SI_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
233     {"DFAlphaRefISlice",         &cfgparams.DFAlpha[1][I_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
234     {"DFAlphaNRefISlice",        &cfgparams.DFAlpha[0][I_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
235     {"DFAlphaRefPSlice",         &cfgparams.DFAlpha[1][P_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
236     {"DFAlphaNRefPSlice",        &cfgparams.DFAlpha[0][P_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
237     {"DFAlphaRefBSlice",         &cfgparams.DFAlpha[1][B_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
238     {"DFAlphaNRefBSlice",        &cfgparams.DFAlpha[0][B_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
239     {"DFAlphaRefSPSlice",        &cfgparams.DFAlpha[1][SP_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
240     {"DFAlphaNRefSPSlice",       &cfgparams.DFAlpha[0][SP_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
241     {"DFAlphaRefSISlice",        &cfgparams.DFAlpha[1][SI_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
242     {"DFAlphaNRefSISlice",       &cfgparams.DFAlpha[0][SI_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
243     {"DFBetaRefISlice",          &cfgparams.DFBeta[1][I_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
244     {"DFBetaNRefISlice",         &cfgparams.DFBeta[0][I_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
245     {"DFBetaRefPSlice",          &cfgparams.DFBeta[1][P_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
246     {"DFBetaNRefPSlice",         &cfgparams.DFBeta[0][P_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
247     {"DFBetaRefBSlice",          &cfgparams.DFBeta[1][B_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
248     {"DFBetaNRefBSlice",         &cfgparams.DFBeta[0][B_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
249     {"DFBetaRefSPSlice",         &cfgparams.DFBeta[1][SP_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
250     {"DFBetaNRefSPSlice",        &cfgparams.DFBeta[0][SP_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
251     {"DFBetaRefSISlice",         &cfgparams.DFBeta[1][SI_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
252     {"DFBetaNRefSISlice",        &cfgparams.DFBeta[0][SI_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
253     {"SparePictureOption",       &cfgparams.SparePictureOption,           0,   0.0,                       1,  0.0,              1.0,                             },
254     {"SparePictureDetectionThr", &cfgparams.SPDetectionThreshold,         0,   0.0,                       2,  0.0,              0.0,                             },
255     {"SparePicturePercentageThr",&cfgparams.SPPercentageThreshold,        0,   0.0,                       2,  0.0,            100.0,                             },
256 
257     {"num_slice_groups_minus1",  &cfgparams.num_slice_groups_minus1,      0,   0.0,                       1,  0.0,  (double)MAXSLICEGROUPIDS - 1                 },
258     {"slice_group_map_type",     &cfgparams.slice_group_map_type,         0,   0.0,                       1,  0.0,              6.0,                             },
259     {"slice_group_change_direction_flag", &cfgparams.slice_group_change_direction_flag, 0,   0.0,         1,  0.0,              2.0,                             },
260     {"slice_group_change_rate_minus1",    &cfgparams.slice_group_change_rate_minus1,    0,   0.0,         2,  0.0,              1.0,                             },
261     {"SliceGroupConfigFileName", &cfgparams.SliceGroupConfigFileName,     1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
262 
263     {"UseRedundantPicture",      &cfgparams.redundant_pic_flag,           0,   0.0,                       1,  0.0,              1.0,                             },
264     {"NumRedundantHierarchy",    &cfgparams.NumRedundantHierarchy,        0,   0.0,                       1,  0.0,              4.0,                             },
265     {"PrimaryGOPLength",         &cfgparams.PrimaryGOPLength,             0,   1.0,                       1,  1.0,              16.0,                            },
266     {"NumRefPrimary",            &cfgparams.NumRefPrimary,                0,   1.0,                       1,  1.0,              16.0,                            },
267 
268     {"PicOrderCntType",          &cfgparams.pic_order_cnt_type,           0,   0.0,                       1,  0.0,              2.0,                             },
269 
270     {"ContextInitMethod",        &cfgparams.context_init_method,          0,   0.0,                       1,  0.0,              1.0,                             },
271     {"FixedModelNumber",         &cfgparams.model_number,                 0,   0.0,                       1,  0.0,              2.0,                             },
272 
273     {"ReportFrameStats",         &cfgparams.ReportFrameStats,             0,   0.0,                       1,  0.0,              1.0,                             },
274     {"DisplayEncParams",         &cfgparams.DisplayEncParams,             0,   0.0,                       1,  0.0,              1.0,                             },
275     {"Verbose",                  &cfgparams.Verbose,                      0,   1.0,                       1,  0.0,              4.0,                             },
276     {"SkipGlobalStats",          &cfgparams.skip_gl_stats,                0,   0.0,                       1,  0.0,              1.0,                             },
277     {"OnTheFlyFractMCP",         &cfgparams.OnTheFlyFractMCP,             0,   0.0,                       1,  0.0,              3.0,                             },
278     {"ChromaMCBuffer",           &cfgparams.ChromaMCBuffer,               0,   0.0,                       1,  0.0,              1.0,                             },
279     {"ChromaMEEnable",           &cfgparams.ChromaMEEnable,               0,   0.0,                       1,  0.0,              2.0,                             },
280     {"ChromaMEWeight",           &cfgparams.ChromaMEWeight,               0,   1.0,                       2,  0.0,              1.0,                             },
281     {"MESoftenSSEMetric",        &cfgparams.MESoftenSSEMetric,            0,   0.0,                       1,  0.0,              1.0,                             },
282     {"MEDistortionFPel",         &cfgparams.MEErrorMetric[F_PEL],         0,   0.0,                       1,  0.0,              3.0,                             },
283     {"MEDistortionHPel",         &cfgparams.MEErrorMetric[H_PEL],         0,   0.0,                       1,  0.0,              3.0,                             },
284     {"MEDistortionQPel",         &cfgparams.MEErrorMetric[Q_PEL],         0,   2.0,                       1,  0.0,              3.0,                             },
285     {"MDDistortion",             &cfgparams.ModeDecisionMetric,           0,   2.0,                       1,  0.0,              2.0,                             },
286     {"SkipDeBlockNonRef",        &cfgparams.SkipDeBlockNonRef,            0,   0.0,                       1,  0.0,              1.0,                             },
287 
288     // Rate Control
289     {"RateControlEnable",        &cfgparams.RCEnable,                     0,   0.0,                       1,  0.0,              1.0,                             },
290     {"Bitrate",                  &cfgparams.bit_rate,                     0,   0.0,                       2,  0.0,              0.0,                             },
291     {"InitialQP",                &cfgparams.SeinitialQP,                  0,   0.0,                       3,  (double) MIN_QP,  (double) MAX_QP,                 },
292     {"BasicUnit",                &cfgparams.basicunit,                    0,   0.0,                       2,  0.0,              0.0,                             },
293     {"ChannelType",              &cfgparams.channel_type,                 0,   0.0,                       1,  0.0,              1.0,                             },
294     {"RCUpdateMode",             &cfgparams.RCUpdateMode,                 0,   0.0,                       1,  0.0,              4.0,                             },
295     {"RCISliceBitRatio",         &cfgparams.RCISliceBitRatio,             2,   1.0,                       1,  0.0,              20.0,                            },
296     {"RCBSliceBitRatio0",        &cfgparams.RCBSliceBitRatio[0],          2,   0.5,                       1,  0.0,              20.0,                            },
297     {"RCBSliceBitRatio1",        &cfgparams.RCBSliceBitRatio[1],          2,   0.25,                      1,  0.0,              20.0,                            },
298     {"RCBSliceBitRatio2",        &cfgparams.RCBSliceBitRatio[2],          2,   0.25,                      1,  0.0,              20.0,                            },
299     {"RCBSliceBitRatio3",        &cfgparams.RCBSliceBitRatio[3],          2,   0.25,                      1,  0.0,              20.0,                            },
300     {"RCBSliceBitRatio4",        &cfgparams.RCBSliceBitRatio[4],          2,   0.25,                      1,  0.0,              20.0,                            },
301     {"RCBoverPRatio",            &cfgparams.RCBoverPRatio,                2,   0.45,                      1,  0.0,              1000.0,                          },
302     {"RCIoverPRatio",            &cfgparams.RCIoverPRatio,                2,   3.80,                      1,  0.0,              1000.0,                          },
303     {"RCMinQPPSlice",            &cfgparams.RCMinQP[P_SLICE],             0,   (double) MIN_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
304     {"RCMaxQPPSlice",            &cfgparams.RCMaxQP[P_SLICE],             0,   (double) MAX_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
305     {"RCMinQPBSlice",            &cfgparams.RCMinQP[B_SLICE],             0,   (double) MIN_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
306     {"RCMaxQPBSlice",            &cfgparams.RCMaxQP[B_SLICE],             0,   (double) MAX_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
307     {"RCMinQPISlice",            &cfgparams.RCMinQP[I_SLICE],             0,   (double) MIN_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
308     {"RCMaxQPISlice",            &cfgparams.RCMaxQP[I_SLICE],             0,   (double) MAX_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
309     {"RCMinQPSPSlice",           &cfgparams.RCMinQP[SP_SLICE],            0,   (double) MIN_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
310     {"RCMaxQPSPSlice",           &cfgparams.RCMaxQP[SP_SLICE],            0,   (double) MAX_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
311     {"RCMinQPSISlice",           &cfgparams.RCMinQP[SI_SLICE],            0,   (double) MIN_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
312     {"RCMaxQPSISlice",           &cfgparams.RCMaxQP[SI_SLICE],            0,   (double) MAX_QP,           3,  (double) MIN_QP,  (double) MAX_QP,                 },
313     {"RCMaxQPChange",            &cfgparams.RCMaxQPChange,                0,   4.0,                       1,  0.0,              51.0,                            },
314 
315     // Q_Matrix
316     {"QmatrixFile",              &cfgparams.QmatrixFile,                  1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
317     {"ScalingMatrixPresentFlag", &cfgparams.ScalingMatrixPresentFlag,     0,   0.0,                       1,  0.0,              3.0,                             },
318     {"ScalingListPresentFlag0",  &cfgparams.ScalingListPresentFlag[0],    0,   0.0,                       1,  0.0,              3.0,                             },
319     {"ScalingListPresentFlag1",  &cfgparams.ScalingListPresentFlag[1],    0,   0.0,                       1,  0.0,              3.0,                             },
320     {"ScalingListPresentFlag2",  &cfgparams.ScalingListPresentFlag[2],    0,   0.0,                       1,  0.0,              3.0,                             },
321     {"ScalingListPresentFlag3",  &cfgparams.ScalingListPresentFlag[3],    0,   0.0,                       1,  0.0,              3.0,                             },
322     {"ScalingListPresentFlag4",  &cfgparams.ScalingListPresentFlag[4],    0,   0.0,                       1,  0.0,              3.0,                             },
323     {"ScalingListPresentFlag5",  &cfgparams.ScalingListPresentFlag[5],    0,   0.0,                       1,  0.0,              3.0,                             },
324     {"ScalingListPresentFlag6",  &cfgparams.ScalingListPresentFlag[6],    0,   0.0,                       1,  0.0,              3.0,                             },
325     {"ScalingListPresentFlag7",  &cfgparams.ScalingListPresentFlag[7],    0,   0.0,                       1,  0.0,              3.0,                             },
326     {"ScalingListPresentFlag8",  &cfgparams.ScalingListPresentFlag[8],    0,   0.0,                       1,  0.0,              3.0,                             },
327     {"ScalingListPresentFlag9",  &cfgparams.ScalingListPresentFlag[9],    0,   0.0,                       1,  0.0,              3.0,                             },
328     {"ScalingListPresentFlag10", &cfgparams.ScalingListPresentFlag[10],   0,   0.0,                       1,  0.0,              3.0,                             },
329     {"ScalingListPresentFlag11", &cfgparams.ScalingListPresentFlag[11],   0,   0.0,                       1,  0.0,              3.0,                             },
330 
331     // Chroma QP Offset
332     {"ChromaQPOffset",           &cfgparams.chroma_qp_index_offset,       0,   0.0,                       1,-51.0,             51.0,                             },
333 
334     // Fidelity Range Extensions
335 // New Input bit-depth entries
336     {"SourceBitDepthLuma",       &cfgparams.source.bit_depth[0],          0,   8.0,                       1,  8.0,             14.0,                             },
337     {"SourceBitDepthChroma",     &cfgparams.source.bit_depth[1],          0,   8.0,                       1,  8.0,             14.0,                             },
338     {"SourceBitDepthRescale",    &cfgparams.src_BitDepthRescale,          0,   0.0,                       1,  0.0,              1.0,                             },
339 // Old variables replaced from BitDepthLuma and BitDepthChroma. Considered only if SourceBitDepthRescale is 1.
340     {"OutputBitDepthLuma",       &cfgparams.output.bit_depth[0],          0,   8.0,                       1,  8.0,             14.0,                             },
341     {"OutputBitDepthChroma",     &cfgparams.output.bit_depth[1],          0,   8.0,                       1,  8.0,             14.0,                             },
342 
343     {"YUVFormat",                &cfgparams.yuv_format,                   0,   1.0,                       1,  0.0,              3.0,                             },
344     {"RGBInput",                 &cfgparams.source.color_model,           0,   0.0,                       1,  0.0,              1.0,                             },
345     {"PixelFormat",              &cfgparams.source.pixel_format,          0,   0.0,                       1,  0.0,              4.0,                             },
346     {"Interleaved",              &cfgparams.input_file1.is_interleaved ,  0,   0.0,                       1,  0.0,              1.0,                             },
347     {"StandardRange",            &cfgparams.stdRange,                     0,   0.0,                       1,  0.0,              1.0,                             },
348     {"VideoCode",                &cfgparams.videoCode,                    0,   1.0,                       1,  0.0,              8.0,                             },
349     {"CbQPOffset",               &cfgparams.cb_qp_index_offset,           0,   0.0,                       1,-51.0,             51.0,                             },
350     {"CrQPOffset",               &cfgparams.cr_qp_index_offset,           0,   0.0,                       1,-51.0,             51.0,                             },
351     {"Transform8x8Mode",         &cfgparams.Transform8x8Mode,             0,   0.0,                       1,  0.0,              2.0,                             },
352     // Lossless Coding
353     {"LosslessCoding",           &cfgparams.LosslessCoding,               0,   0.0,                       1,  0.0,              1.0,                             },
354 
355     // Explicit Lambda Parameters for RDO
356     {"UseExplicitLambdaParams",  &cfgparams.UseExplicitLambdaParams,      0,   0.0,                       1,  0.0,              3.0,                             },
357     {"DisableDistanceLambdaScale", &cfgparams.DisableDistanceLambdaScale, 0,   0.0,                       1,  0.0,              1.0,                             },
358     {"UpdateLambdaChromaME",     &cfgparams.UpdateLambdaChromaME,         0,   0.0,                       1,  0.0,              1.0,                             },
359     {"FixedLambdaPSlice",        &cfgparams.FixedLambda[P_SLICE],         2,   0.1,                       2,  0.0,              0.0,                             },
360     {"FixedLambdaBSlice",        &cfgparams.FixedLambda[B_SLICE],         2,   0.1,                       2,  0.0,              0.0,                             },
361     {"FixedLambdaISlice",        &cfgparams.FixedLambda[I_SLICE],         2,   0.1,                       2,  0.0,              0.0,                             },
362     {"FixedLambdaSPSlice",       &cfgparams.FixedLambda[SP_SLICE],        2,   0.1,                       2,  0.0,              0.0,                             },
363     {"FixedLambdaSISlice",       &cfgparams.FixedLambda[SI_SLICE],        2,   0.1,                       2,  0.0,              0.0,                             },
364     {"FixedLambdaRefBSlice",     &cfgparams.FixedLambda[5],               2,   0.1,                       2,  0.0,              0.0,                             },
365     {"LambdaWeightPSlice",       &cfgparams.LambdaWeight[P_SLICE],        2,   0.68,                      2,  0.0,              0.0,                             },
366     {"LambdaWeightBSlice",       &cfgparams.LambdaWeight[B_SLICE],        2,   2.00,                      2,  0.0,              0.0,                             },
367     {"LambdaWeightISlice",       &cfgparams.LambdaWeight[I_SLICE],        2,   0.65,                      2,  0.0,              0.0,                             },
368     {"LambdaWeightSPSlice",      &cfgparams.LambdaWeight[SP_SLICE],       2,   1.50,                      2,  0.0,              0.0,                             },
369     {"LambdaWeightSISlice",      &cfgparams.LambdaWeight[SI_SLICE],       2,   0.65,                      2,  0.0,              0.0,                             },
370     {"LambdaWeightRefBSlice",    &cfgparams.LambdaWeight[5],              2,   1.50,                      2,  0.0,              0.0,                             },
371     // Usage of explicit "initial" offsets for quantization
372     {"QOffsetMatrixFile",        &cfgparams.QOffsetMatrixFile,            1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
373     {"OffsetMatrixPresentFlag",  &cfgparams.OffsetMatrixPresentFlag,      0,   0.0,                       1,  0.0,              1.0,                             },
374     {"OffsetMatrixFlat",         &cfgparams.OffsetMatrixFlat,             0,   0.0,                       1,  0.0,              2.0,                             },
375     // Adaptive rounding technique based on JVT-N011
376     {"AdaptiveRounding",         &cfgparams.AdaptiveRounding,             0,   0.0,                       1,  0.0,              1.0,                             },
377     {"AdaptRoundingFixed",       &cfgparams.AdaptRoundingFixed,           0,   1.0,                       1,  0.0,              1.0,                             },
378     {"AdaptRndPeriod",           &cfgparams.AdaptRndPeriod,               0,  16.0,                       2,  1.0,              0.0,                             },
379     {"AdaptRndChroma",           &cfgparams.AdaptRndChroma,               0,   0.0,                       1,  0.0,              1.0,                             },
380     {"AdaptRndWFactorIRef",      &cfgparams.AdaptRndWFactor[1][I_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
381     {"AdaptRndWFactorPRef",      &cfgparams.AdaptRndWFactor[1][P_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
382     {"AdaptRndWFactorBRef",      &cfgparams.AdaptRndWFactor[1][B_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
383     {"AdaptRndWFactorINRef",     &cfgparams.AdaptRndWFactor[0][I_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
384     {"AdaptRndWFactorPNRef",     &cfgparams.AdaptRndWFactor[0][P_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
385     {"AdaptRndWFactorBNRef",     &cfgparams.AdaptRndWFactor[0][B_SLICE],  0,   4.0,                       1,  0.0,           4096.0,                             },
386 
387     {"AdaptRndCrWFactorIRef",    &cfgparams.AdaptRndCrWFactor[1][I_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
388     {"AdaptRndCrWFactorPRef",    &cfgparams.AdaptRndCrWFactor[1][P_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
389     {"AdaptRndCrWFactorBRef",    &cfgparams.AdaptRndCrWFactor[1][B_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
390     {"AdaptRndCrWFactorINRef",   &cfgparams.AdaptRndCrWFactor[0][I_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
391     {"AdaptRndCrWFactorPNRef",   &cfgparams.AdaptRndCrWFactor[0][P_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
392     {"AdaptRndCrWFactorBNRef",   &cfgparams.AdaptRndCrWFactor[0][B_SLICE],0,   4.0,                       1,  0.0,           4096.0,                             },
393 
394     // Prediction Structure
395     {"PreferDispOrder",          &cfgparams.PreferDispOrder,              0,   1.0,                       1,  0.0,              1.0,                             },
396     {"PreferPowerOfTwo",         &cfgparams.PreferPowerOfTwo,             0,   0.0,                       1,  0.0,              1.0,                             },
397     {"FrmStructBufferLength",    &cfgparams.FrmStructBufferLength,        0,  16.0,                       1,  1.0,            128.0,                             },
398 
399     // Fast Mode Decision
400     {"EarlySkipEnable",          &cfgparams.EarlySkipEnable,              0,   0.0,                       1,  0.0,              1.0,                             },
401     {"SelectiveIntraEnable",     &cfgparams.SelectiveIntraEnable,         0,   0.0,                       1,  0.0,              1.0,                             },
402 
403     //================================
404     // Motion Estimation (ME) Parameters
405     //================================
406     {"RestrictSearchRange",      &cfgparams.full_search,                  0,   2.0,                       1,  0.0,              2.0,                             },
407     // ME Limits
408     {"UseMVLimits",              &cfgparams.UseMVLimits,                  0,   0.0,                       1,  0.0,              1.0,                             },
409     {"SetMVXLimit",              &cfgparams.SetMVXLimit,                  0,   0.0,                       1,  0.0,           2048.0,                             },
410     {"SetMVYLimit",              &cfgparams.SetMVYLimit,                  0,   0.0,                       1,  0.0,            512.0,                             },
411     // Fast ME enable
412     {"SearchMode",               &cfgparams.SearchMode[0],                0,   0.0,                       1, -1.0,              3.0,                             },
413     // Parameters for UMHEX control
414     {"UMHexDSR",                 &cfgparams.UMHexDSR,                     0,   1.0,                       1,  0.0,              1.0,                             },
415     {"UMHexScale",               &cfgparams.UMHexScale,                   0,   1.0,                       0,  0.0,              0.0,                             },
416     // Parameters for EPZS control
417     {"EPZSPattern",              &cfgparams.EPZSPattern,                  0,   2.0,                       1,  0.0,              5.0,                             },
418     {"EPZSDualRefinement",       &cfgparams.EPZSDual,                     0,   3.0,                       1,  0.0,              6.0,                             },
419     {"EPZSFixedPredictors",      &cfgparams.EPZSFixed,                    0,   3.0,                       1,  0.0,              3.0,                             },
420     {"EPZSAggressiveWindow",     &cfgparams.EPZSAggressiveWindow,         0,   0.0,                       1,  0.0,              1.0,                             },
421 #if (MVC_EXTENSION_ENABLE)
422     {"EPZSTemporal",             &cfgparams.EPZSTemporal[0],              0,   1.0,                       1,  0.0,              1.0,                             },
423 #else
424     {"EPZSTemporal",             &cfgparams.EPZSTemporal,                 0,   1.0,                       1,  0.0,              1.0,                             },
425 #endif
426     {"EPZSSpatialMem",           &cfgparams.EPZSSpatialMem,               0,   1.0,                       1,  0.0,              1.0,                             },
427     {"EPZSBlockType",            &cfgparams.EPZSBlockType,                0,   1.0,                       1,  0.0,              1.0,                             },
428 #if (MVC_EXTENSION_ENABLE)
429     {"EPZSMinThresScale",        &cfgparams.EPZSMinThresScale[0],         0,   0.0,                       0,  0.0,              0.0,                             },
430     {"EPZSMaxThresScale",        &cfgparams.EPZSMaxThresScale[0],         0,   2.0,                       0,  0.0,              0.0,                             },
431     {"EPZSMedThresScale",        &cfgparams.EPZSMedThresScale[0],         0,   1.0,                       0,  0.0,              0.0,                             },
432     {"EPZSSubPelThresScale",     &cfgparams.EPZSSubPelThresScale[0],      0,   1.0,                       0,  0.0,              0.0,                             },
433 #else
434     {"EPZSMinThresScale",        &cfgparams.EPZSMinThresScale,            0,   0.0,                       0,  0.0,              0.0,                             },
435     {"EPZSMaxThresScale",        &cfgparams.EPZSMaxThresScale,            0,   2.0,                       0,  0.0,              0.0,                             },
436     {"EPZSMedThresScale",        &cfgparams.EPZSMedThresScale,            0,   1.0,                       0,  0.0,              0.0,                             },
437     {"EPZSSubPelThresScale",     &cfgparams.EPZSSubPelThresScale,         0,   2.0,                       0,  0.0,              0.0,                             },
438 #endif
439     {"EPZSSubPelME",             &cfgparams.EPZSSubPelME,                 0,   1.0,                       1,  0.0,              2.0,                             },
440     {"EPZSSubPelMEBiPred",       &cfgparams.EPZSSubPelMEBiPred,           0,   1.0,                       1,  0.0,              2.0,                             },
441     {"EPZSSubPelGrid",           &cfgparams.EPZSSubPelGrid,               0,   0.0,                       1,  0.0,              1.0,                             },
442     {"EPZSSubPelThresScale",     &cfgparams.EPZSSubPelThresScale,         0,   1.0,                       0,  0.0,              0.0,                             },
443     {"EPZSUseHMEPredictors",     &cfgparams.EPZSUseHMEPredictors,         0,   0.0,                       1,  0.0,              1.0,                             },
444     {"DisableMEPrediction",      &cfgparams.DisableMEPrediction,          0,   0.0,                       1,  0.0,              1.0,                             },
445     {"HMEEnable",                &cfgparams.HMEEnable,                    0,   0.0,                       1,  0.0,              1.0,                             },
446     {"HMEDisableMMCO",           &cfgparams.HMEDisableMMCO,               0,   0.0,                       1,  0.0,              1.0,                             },
447     {"PyramidLevels",            &cfgparams.PyramidLevels,                0,   0.0,                       1,  0.0,              6.0,                             },
448 
449     // Tone mapping SEI cfg file
450     {"ToneMappingSEIPresentFlag",&cfgparams.ToneMappingSEIPresentFlag,    0,   0.0,                       1,  0.0,              1.0,                             },
451     {"ToneMappingFile",          &cfgparams.ToneMappingFile,              1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
452 
453     {"SeparateColourPlane",      &cfgparams.separate_colour_plane_flag,   0,   0.0,                       1,  0.0,              1.0,                             },
454     {"WeightY",                  &cfgparams.WeightY,                      2,   1.00,                      1,  0.0,              4.0,                             },
455     {"WeightCb",                 &cfgparams.WeightCb,                     2,   1.00,                      1,  0.0,              4.0,                             },
456     {"WeightCr",                 &cfgparams.WeightCr,                     2,   1.00,                      1,  0.0,              4.0,                             },
457     {"WPMCPrecision",            &cfgparams.WPMCPrecision,                0,   0.0,                       1,  0.0,              2.0,                             },
458     {"WPMCPrecFullRef",          &cfgparams.WPMCPrecFullRef,              0,   0.0,                       1,  0.0,              1.0,                             },
459     {"WPMCPrecBSlice",           &cfgparams.WPMCPrecBSlice,               0,   1.0,                       1,  0.0,              2.0,                             },
460     {"RCCpbSize",                &cfgparams.rc_cpb_size,                  0,1024.0,                       2,  0.0,              0.0,                             },
461     {"MinIDRDistance",           &cfgparams.MinIDRDistance,               0,  10.0,                       1,  0.0,            128.0,                             },
462     // Trellis based quantization
463     {"UseRDOQuant",              &cfgparams.UseRDOQuant,                  0,   0.0,                       1,  0.0,              1.0,                             },
464     {"RDOQ_DC",                  &cfgparams.RDOQ_DC,                      0,   1.0,                       1,  0.0,              1.0,                             },
465     {"RDOQ_CR",                  &cfgparams.RDOQ_CR,                      0,   1.0,                       1,  0.0,              1.0,                             },
466     {"RDOQ_DC_CR",               &cfgparams.RDOQ_DC_CR,                   0,   1.0,                       1,  0.0,              1.0,                             },
467     {"RDOQ_QP_Num",              &cfgparams.RDOQ_QP_Num,                  0,   1.0,                       1,  1.0,              9.0,                             },
468     {"RDOQ_CP_Mode",             &cfgparams.RDOQ_CP_Mode,                 0,   0.0,                       1,  0.0,              1.0,                             },
469     {"RDOQ_CP_MV",               &cfgparams.RDOQ_CP_MV,                   0,   0.0,                       1,  0.0,              1.0,                             },
470     {"RDOQ_Fast",                &cfgparams.RDOQ_Fast,                    0,   0.0,                       1,  0.0,              1.0,                             },
471     // VUI parameters
472     {"GenerateSEIMessage",       &cfgparams.GenerateSEIMessage,           0,   0.0,                       1,  0.0,              1.0,                             },
473     {"EnableVUISupport",         &cfgparams.EnableVUISupport,             0,   0.0,                       1,  0.0,              1.0,                             },
474     {"VUI_aspect_ratio_info_present_flag",     &cfgparams.VUI.aspect_ratio_info_present_flag,     0,   0.0,                       1,  0.0,              1.0,     },
475     {"VUI_aspect_ratio_idc",                   &cfgparams.VUI.aspect_ratio_idc,                   0,   0.0,                       1,  0.0,            255.0,     },
476     {"VUI_sar_width",                          &cfgparams.VUI.sar_width,                          0,   0.0,                       2,  0.0,              0.0,     },
477     {"VUI_sar_height",                         &cfgparams.VUI.sar_height,                         0,   0.0,                       2,  0.0,              0.0,     },
478     {"VUI_overscan_info_present_flag",         &cfgparams.VUI.overscan_info_present_flag,         0,   0.0,                       1,  0.0,              1.0,     },
479     {"VUI_overscan_appropriate_flag",          &cfgparams.VUI.overscan_appropriate_flag,          0,   0.0,                       1,  0.0,              1.0,     },
480     {"VUI_video_signal_type_present_flag",     &cfgparams.VUI.video_signal_type_present_flag,     0,   0.0,                       1,  0.0,              1.0,     },
481     {"VUI_video_format",                       &cfgparams.VUI.video_format,                       0,   5.0,                       1,  0.0,              7.0,     },
482     {"VUI_video_full_range_flag",              &cfgparams.VUI.video_full_range_flag,              0,   0.0,                       1,  0.0,              1.0,     },
483     {"VUI_colour_description_present_flag",    &cfgparams.VUI.colour_description_present_flag,    0,   0.0,                       1,  0.0,              1.0,     },
484     {"VUI_colour_primaries",                   &cfgparams.VUI.colour_primaries,                   0,   2.0,                       1,  0.0,            255.0,     },
485     {"VUI_transfer_characteristics",           &cfgparams.VUI.transfer_characteristics,           0,   2.0,                       1,  0.0,            255.0,     },
486     {"VUI_matrix_coefficients",                &cfgparams.VUI.matrix_coefficients,                0,   2.0,                       1,  0.0,            255.0,     },
487     {"VUI_chroma_location_info_present_flag",  &cfgparams.VUI.chroma_location_info_present_flag,  0,   0.0,                       1,  0.0,              1.0,     },
488     {"VUI_chroma_sample_loc_type_top_field",   &cfgparams.VUI.chroma_sample_loc_type_top_field,   0,   0.0,                       1,  0.0,              5.0,     },
489     {"VUI_chroma_sample_loc_type_bottom_field",&cfgparams.VUI.chroma_sample_loc_type_bottom_field,0,   0.0,                       1,  0.0,              5.0,     },
490     {"VUI_timing_info_present_flag",           &cfgparams.VUI.timing_info_present_flag,           0,   0.0,                       1,  0.0,              1.0,     },
491     {"VUI_num_units_in_tick",                  &cfgparams.VUI.num_units_in_tick,                  0,1000.0,                       2,  0.0,              0.0,     },
492     {"VUI_time_scale",                         &cfgparams.VUI.time_scale,                         0,60000.0,                      2,  0.0,              0.0,     },
493     {"VUI_fixed_frame_rate_flag",              &cfgparams.VUI.fixed_frame_rate_flag,              0,   0.0,                       1,  0.0,              1.0,     },
494     {"VUI_nal_hrd_parameters_present_flag",    &cfgparams.VUI.nal_hrd_parameters_present_flag,    0,   0.0,                       1,  0.0,              1.0,     },
495     {"VUI_nal_cpb_cnt_minus1",                 &cfgparams.VUI.nal_cpb_cnt_minus1,                 0,   0.0,                       1,  0.0,             31.0,     },
496     {"VUI_nal_bit_rate_scale",                 &cfgparams.VUI.nal_bit_rate_scale,                 0,   0.0,                       2,  0.0,              0.0,     },
497     {"VUI_nal_cpb_size_scale",                 &cfgparams.VUI.nal_cpb_size_scale,                 0,   0.0,                       2,  0.0,              0.0,     },
498     {"VUI_nal_bit_rate_value_minus1",          &cfgparams.VUI.nal_bit_rate_value_minus1,          0,   0.0,                       2,  0.0,              0.0,     },
499     {"VUI_nal_cpb_size_value_minus1",          &cfgparams.VUI.nal_cpb_size_value_minus1,          0,   0.0,                       2,  0.0,              0.0,     },
500     {"VUI_nal_vbr_cbr_flag",                   &cfgparams.VUI.nal_vbr_cbr_flag,                   0,   1.0,                       1,  0.0,              1.0,     },
501     {"VUI_nal_initial_cpb_removal_delay_length_minus1", &cfgparams.VUI.nal_initial_cpb_removal_delay_length_minus1,  0, 23.0,     2,  0.0,              0.0,     },
502     {"VUI_nal_cpb_removal_delay_length_minus1",&cfgparams.VUI.nal_cpb_removal_delay_length_minus1,0,  23.0,                       2,  0.0,              0.0,     },
503     {"VUI_nal_dpb_output_delay_length_minus1", &cfgparams.VUI.nal_dpb_output_delay_length_minus1, 0,  23.0,                       2,  0.0,              0.0,     },
504     {"VUI_nal_time_offset_length",             &cfgparams.VUI.nal_time_offset_length,             0,  24.0,                       2,  0.0,              0.0,     },
505     {"VUI_vcl_hrd_parameters_present_flag",    &cfgparams.VUI.vcl_hrd_parameters_present_flag,    0,   0.0,                       1,  0.0,              1.0,     },
506     {"VUI_vcl_cpb_cnt_minus1",                 &cfgparams.VUI.vcl_cpb_cnt_minus1,                 0,   0.0,                       1,  0.0,             31.0,     },
507     {"VUI_vcl_bit_rate_scale",                 &cfgparams.VUI.vcl_bit_rate_scale,                 0,   0.0,                       2,  0.0,              0.0,     },
508     {"VUI_vcl_cpb_size_scale",                 &cfgparams.VUI.vcl_cpb_size_scale,                 0,   0.0,                       2,  0.0,              0.0,     },
509     {"VUI_vcl_bit_rate_value_minus1",          &cfgparams.VUI.vcl_bit_rate_value_minus1,          0,   0.0,                       2,  0.0,              0.0,     },
510     {"VUI_vcl_cpb_size_value_minus1",          &cfgparams.VUI.vcl_cpb_size_value_minus1,          0,   0.0,                       2,  0.0,              0.0,     },
511     {"VUI_vcl_vbr_cbr_flag",                   &cfgparams.VUI.vcl_vbr_cbr_flag,                   0,   0.0,                       1,  0.0,              1.0,     },
512     {"VUI_vcl_initial_cpb_removal_delay_length_minus1", &cfgparams.VUI.vcl_initial_cpb_removal_delay_length_minus1,  0,  23.0,    2,  0.0,              0.0,     },
513     {"VUI_vcl_cpb_removal_delay_length_minus1",&cfgparams.VUI.vcl_cpb_removal_delay_length_minus1,0,  23.0,                       2,  0.0,              0.0,     },
514     {"VUI_vcl_dpb_output_delay_length_minus1", &cfgparams.VUI.vcl_dpb_output_delay_length_minus1, 0,  23.0,                       2,  0.0,              0.0,     },
515     {"VUI_vcl_time_offset_length",             &cfgparams.VUI.vcl_time_offset_length,             0,  24.0,                       2,  0.0,              0.0,     },
516     {"VUI_low_delay_hrd_flag",                 &cfgparams.VUI.low_delay_hrd_flag,                 0,   0.0,                       1,  0.0,              1.0,     },
517     {"VUI_pic_struct_present_flag",            &cfgparams.VUI.pic_struct_present_flag,            0,   0.0,                       1,  0.0,              1.0,     },
518     {"VUI_bitstream_restriction_flag",         &cfgparams.VUI.bitstream_restriction_flag,         0,   0.0,                       1,  0.0,              1.0,     },
519     {"VUI_motion_vectors_over_pic_boundaries_flag", &cfgparams.VUI.motion_vectors_over_pic_boundaries_flag,      0,   1.0,        1,  0.0,              1.0,     },
520     {"VUI_max_bytes_per_pic_denom",            &cfgparams.VUI.max_bytes_per_pic_denom,            0,   2.0,                       1,  0.0,             16.0,     },
521     {"VUI_max_bits_per_mb_denom",              &cfgparams.VUI.max_bits_per_mb_denom,              0,   1.0,                       1,  0.0,             16.0,     },
522     {"VUI_log2_max_mv_length_vertical",        &cfgparams.VUI.log2_max_mv_length_vertical,        0,  16.0,                       1,  0.0,             16.0,     },
523     {"VUI_log2_max_mv_length_horizontal",      &cfgparams.VUI.log2_max_mv_length_horizontal,      0,  16.0,                       1,  0.0,             16.0,     },
524     {"VUI_num_reorder_frames",                 &cfgparams.VUI.num_reorder_frames,                 0,  16.0,                       1,  0.0,             16.0,     },
525     {"VUI_max_dec_frame_buffering",            &cfgparams.VUI.max_dec_frame_buffering,            0,  16.0,                       1,  0.0,             16.0,     },
526     {"SEIMessageText",                         &cfgparams.SEIMessageText,                         1,   0.0,                       0,  0.0,              0.0,             INPUT_TEXT_SIZE,},
527 #if B0_MORE_REF
528     {"BLevel0MoreRef",                         &cfgparams.BLevel0MoreRef,                         0,   0.0,                       1,  0.0,              1.0,                             },
529 #endif
530 #if KEEP_B_SAME_LIST
531     {"BIdenticalList",                         &cfgparams.BIdenticalList,                         0,   0.0,                       1,  0.0,              2.0,                             },
532 #endif
533 #if CRA
534     {"CRA",                                    &cfgparams.useCRA,                                 0,   0.0,                       1,  0.0,              1.0,                             },
535 #endif
536 #if HM50_LIKE_MMCO
537     {"HM50RefStructure",                       &cfgparams.HM50RefStructure,                       0,   0.0,                       1,  0.0,              1.0,                             },
538 #endif
539 #if LD_REF_SETTING
540     {"LDRefSetting",                           &cfgparams.LDRefSetting,                           0,   0.0,                       1,  0.0,              1.0,                             },
541     {"UnconstrainedLDRef",                     &cfgparams.UnconstrainedLDRef,                     0,   0.0,                       1,  0.0,              1.0,                             },
542 
543 #endif
544     {NULL,                       NULL,                                   -1,   0.0,                       0,  0.0,              0.0,                             },
545 };
546 
547 
548 #if (MVC_EXTENSION_ENABLE)
549 Mapping MapView1[] = {
550   {"InputFile",               &cfgparams.input_file2.fname,                    1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
551   {"ReconFile",               &cfgparams.ReconFile2,                           1,   0.0,                       0,  0.0,              0.0,             FILE_NAME_SIZE, },
552   {"SearchRange",             &cfgparams.search_range[1],                      0,   16.0,                      2,  0.0,              0.0,                             },
553   {"DisableSubpelME",         &cfgparams.DisableSubpelME[1],                   0,   0.0,                       1,  0.0,              1.0,                             },
554   {"DisableIntraInInter",     &cfgparams.DisableIntraInInter[1],               0,   0.0,                       1,  0.0,              1.0,                             },
555   {"MVCInterViewReorder",     &cfgparams.MVCInterViewReorder,                  0,   0.0,                       1,  0.0,              2.0,                             },
556   {"MVCFlipViews",            &cfgparams.MVCFlipViews,                         0,   0.0,                       1,  0.0,              1.0,                             },
557   {"QPOffset",                &cfgparams.View1QPOffset,                        0,   0.0,                       0,  (double) -MAX_QP, (double) MAX_QP,                 },
558   {"MVCInterViewForceB",      &cfgparams.MVCInterViewForceB,                   0,   0.0,                       1,  0.0,              1.0,                             },
559   {"MVCEnableInterViewFlag",  &cfgparams.enable_inter_view_flag,               0,   1.0,                       1,  0.0,              1.0,                             },
560   {"SepViewInterSearch",      &cfgparams.SepViewInterSearch,                   0,   0.0,                       1,  0.0,              1.0,                             },
561   {"NoResidueRDO",            &cfgparams.View1NoResidueRDO,                    0,   1.0,                       1,  0.0,              1.0,                             },
562   {"PList0References",        &cfgparams.P_List0_refs[1],                      0,   0.0,                       1,  0.0,             16.0,                             },
563   {"BList0References",        &cfgparams.B_List0_refs[1],                      0,   0.0,                       1,  0.0,             16.0,                             },
564   {"BList1References",        &cfgparams.B_List1_refs[1],                      0,   1.0,                       1,  0.0,             16.0,                             },
565   {"LambdaMultiplier",        &cfgparams.enh_layer_lambda_multiplier,          2,   1.0,                       2,  0.0,              0.0,                             },
566   {"MELambdaMultiplier",      &cfgparams.enh_layer_me_lambda_multiplier,       2,   1.0,                       2,  0.0,              0.0,                             },
567   {"PSliceSkip",              &cfgparams.InterSearch[1][0][0],                 0,   1.0,                       1,  0.0,              1.0,                             },
568   {"PSliceSearch16x16",       &cfgparams.InterSearch[1][0][1],                 0,   1.0,                       1,  0.0,              1.0,                             },
569   {"PSliceSearch16x8",        &cfgparams.InterSearch[1][0][2],                 0,   1.0,                       1,  0.0,              1.0,                             },
570   {"PSliceSearch8x16",        &cfgparams.InterSearch[1][0][3],                 0,   1.0,                       1,  0.0,              1.0,                             },
571   {"PSliceSearch8x8",         &cfgparams.InterSearch[1][0][4],                 0,   1.0,                       1,  0.0,              1.0,                             },
572   {"PSliceSearch8x4",         &cfgparams.InterSearch[1][0][5],                 0,   1.0,                       1,  0.0,              1.0,                             },
573   {"PSliceSearch4x8",         &cfgparams.InterSearch[1][0][6],                 0,   1.0,                       1,  0.0,              1.0,                             },
574   {"PSliceSearch4x4",         &cfgparams.InterSearch[1][0][7],                 0,   1.0,                       1,  0.0,              1.0,                             },
575   // B slice partition modes.
576   {"BSliceDirect",            &cfgparams.InterSearch[1][1][0],                 0,   1.0,                       1,  0.0,              1.0,                             },
577   {"BSliceSearch16x16",       &cfgparams.InterSearch[1][1][1],                 0,   1.0,                       1,  0.0,              1.0,                             },
578   {"BSliceSearch16x8",        &cfgparams.InterSearch[1][1][2],                 0,   1.0,                       1,  0.0,              1.0,                             },
579   {"BSliceSearch8x16",        &cfgparams.InterSearch[1][1][3],                 0,   1.0,                       1,  0.0,              1.0,                             },
580   {"BSliceSearch8x8",         &cfgparams.InterSearch[1][1][4],                 0,   1.0,                       1,  0.0,              1.0,                             },
581   {"BSliceSearch8x4",         &cfgparams.InterSearch[1][1][5],                 0,   1.0,                       1,  0.0,              1.0,                             },
582   {"BSliceSearch4x8",         &cfgparams.InterSearch[1][1][6],                 0,   1.0,                       1,  0.0,              1.0,                             },
583   {"BSliceSearch4x4",         &cfgparams.InterSearch[1][1][7],                 0,   1.0,                       1,  0.0,              1.0,                             },
584   {"BiPredMESearchRange",     &cfgparams.BiPredMESearchRange[1],               0,   8.0,                       2,  0.0,              0.0,                             },
585   {"MDReference",             &cfgparams.MDReference[1],                       0,   0.0,                       1,  0.0,              1.0,                             },
586   {"DFDisableRefISlice",      &cfgparams.EnhLayerDFDisableIdc[1][I_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
587   {"DFDisableNRefISlice",     &cfgparams.EnhLayerDFDisableIdc[0][I_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
588   {"DFDisableRefPSlice",      &cfgparams.EnhLayerDFDisableIdc[1][P_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
589   {"DFDisableNRefPSlice",     &cfgparams.EnhLayerDFDisableIdc[0][P_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
590   {"DFDisableRefBSlice",      &cfgparams.EnhLayerDFDisableIdc[1][B_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
591   {"DFDisableNRefBSlice",     &cfgparams.EnhLayerDFDisableIdc[0][B_SLICE],     0,   0.0,                       1,  0.0,              2.0,                             },
592   {"DFDisableRefSPSlice",     &cfgparams.EnhLayerDFDisableIdc[1][SP_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
593   {"DFDisableNRefSPSlice",    &cfgparams.EnhLayerDFDisableIdc[0][SP_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
594   {"DFDisableRefSISlice",     &cfgparams.EnhLayerDFDisableIdc[1][SI_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
595   {"DFDisableNRefSISlice",    &cfgparams.EnhLayerDFDisableIdc[0][SI_SLICE],    0,   0.0,                       1,  0.0,              2.0,                             },
596   {"DFAlphaRefISlice",        &cfgparams.EnhLayerDFAlpha[1][I_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
597   {"DFAlphaNRefISlice",       &cfgparams.EnhLayerDFAlpha[0][I_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
598   {"DFAlphaRefPSlice",        &cfgparams.EnhLayerDFAlpha[1][P_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
599   {"DFAlphaNRefPSlice",       &cfgparams.EnhLayerDFAlpha[0][P_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
600   {"DFAlphaRefBSlice",        &cfgparams.EnhLayerDFAlpha[1][B_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
601   {"DFAlphaNRefBSlice",       &cfgparams.EnhLayerDFAlpha[0][B_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
602   {"DFAlphaRefSPSlice",       &cfgparams.EnhLayerDFAlpha[1][SP_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
603   {"DFAlphaNRefSPSlice",      &cfgparams.EnhLayerDFAlpha[0][SP_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
604   {"DFAlphaRefSISlice",       &cfgparams.EnhLayerDFAlpha[1][SI_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
605   {"DFAlphaNRefSISlice",      &cfgparams.EnhLayerDFAlpha[0][SI_SLICE],         0,   0.0,                       1, -6.0,              6.0,                             },
606   {"DFBetaRefISlice",         &cfgparams.EnhLayerDFBeta[1][I_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
607   {"DFBetaNRefISlice",        &cfgparams.EnhLayerDFBeta[0][I_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
608   {"DFBetaRefPSlice",         &cfgparams.EnhLayerDFBeta[1][P_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
609   {"DFBetaNRefPSlice",        &cfgparams.EnhLayerDFBeta[0][P_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
610   {"DFBetaRefBSlice",         &cfgparams.EnhLayerDFBeta[1][B_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
611   {"DFBetaNRefBSlice",        &cfgparams.EnhLayerDFBeta[0][B_SLICE],           0,   0.0,                       1, -6.0,              6.0,                             },
612   {"DFBetaRefSPSlice",        &cfgparams.EnhLayerDFBeta[1][SP_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
613   {"DFBetaNRefSPSlice",       &cfgparams.EnhLayerDFBeta[0][SP_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
614   {"DFBetaRefSISlice",        &cfgparams.EnhLayerDFBeta[1][SI_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
615   {"DFBetaNRefSISlice",       &cfgparams.EnhLayerDFBeta[0][SI_SLICE],          0,   0.0,                       1, -6.0,              6.0,                             },
616   {"SearchMode",              &cfgparams.SearchMode[1],                        0,   0.0,                       1, -1.0,              3.0,                             },
617   {"EPZSTemporal",            &cfgparams.EPZSTemporal[1],                      0,   0.0,                       1,  0.0,              1.0,                             },
618   {"EnableEPZSScalers",       &cfgparams.EnableEnhLayerEPZSScalers,            0,   0.0,                       1,  0.0,              1.0,                             },
619   {"EPZSMinThresScale",       &cfgparams.EPZSMinThresScale[1],                 0,   0.0,                       0,  0.0,              0.0,                             },
620   {"EPZSMaxThresScale",       &cfgparams.EPZSMaxThresScale[1],                 0,   2.0,                       0,  0.0,              0.0,                             },
621   {"EPZSMedThresScale",       &cfgparams.EPZSMedThresScale[1],                 0,   1.0,                       0,  0.0,              0.0,                             },
622   {"EPZSSubPelThresScale",    &cfgparams.EPZSSubPelThresScale[1],              0,   1.0,                       0,  0.0,              0.0,                             },
623   {NULL,                      NULL,                                           -1,   0.0,                       0,  0.0,              0.0,                             },
624 };
625 #endif
626 
627 #endif
628 
629 #ifndef INCLUDED_BY_CONFIGFILE_C
630 extern Mapping Map[];
631 extern Mapping MapView1[];
632 #endif
633 
634 extern void Configure            (VideoParameters *p_Vid, InputParameters *p_Inp, int ac, char *av[]);
635 extern void get_number_of_frames (InputParameters *p_Inp, VideoDataFile *input_file);
636 extern void read_slice_group_info(VideoParameters *p_Vid, InputParameters *p_Inp);
637 
638 #endif
639 
640