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