# New Input File Format is as follows # = # Comment # # See configfile.h for a list of supported ParameterNames ########################################################################################## # Files ########################################################################################## InputFile = "Foreman_QCIF15.yuv" # Input sequence InputHeaderLength = 0 # If the inputfile has a header, state it's length in byte here StartFrame = 0 # Start frame for encoding. (0-N) FramesToBeEncoded = 19 # Number of frames to be coded, int(Tframe-1)/(numBframe+1))+1, 149/8+1 FrameRate = 15.0 # Frame Rate per second (0.1-100.0) SourceWidth = 176 # Frame width SourceHeight = 144 # Frame height TraceFile = "trace_enc.txt" ReconFile = "test_rec.yuv" OutputFile = "test.264" ########################################################################################## # Encoder Control ########################################################################################## ProfileIDC = 77 # Profile IDC (66=baseline, 77=main, 88=extended; FREXT Profiles: 100=High, 110=High 10, 122=High 4:2:2, 144=High 4:4:4, for params see below) LevelIDC = 40 # Level IDC (e.g. 20 = level 2.0) IntraPeriod = 0 # Period of I-Frames (0=only first) EnableOpenGOP = 1 # Support for open GOPs (0: disabled, 1: enabled) IDRIntraEnable = 0 # Force IDR Intra (0=disable 1=enable) QPISlice = 26 # Quant. param for I Slices (0-51) QPPSlice = 26 # Quant. param for P Slices (0-51) FrameSkip = 7 # Number of frames to be skipped in input (e.g 2 will code every third frame) ChromaQPOffset = 0 # Chroma QP offset (-51..51) UseHadamard = 1 # Hadamard transform (0=not used, 1=used for all subpel positions, 2=use only for qpel) DisableSubpelME = 0 # Disable Subpixel Motion Estimation (0=off/default, 1=on) SearchRange = 96 # Max search range 16 NumberReferenceFrames = 2 # Number of previous frames used for inter motion search (1-16) PList0References = 1 # P slice List 0 reference override (0 disable, N <= NumberReferenceFrames) Log2MaxFNumMinus4 = 0 # Sets log2_max_frame_num_minus4 (-1 : based on FramesToBeEncoded/Auto, >=0 : Log2MaxFNumMinus4) Log2MaxPOCLsbMinus4 = -1 # Sets log2_max_pic_order_cnt_lsb_minus4 (-1 : Auto, >=0 : Log2MaxPOCLsbMinus4) GenerateMultiplePPS = 0 # Transmit multiple parameter sets. Currently parameters basically enable all WP modes (0: diabled, 1: enabled) ResendPPS = 0 # Resend PPS (with pic_parameter_set_id 0) for every coded Frame/Field pair (0: disabled, 1: enabled) MbLineIntraUpdate = 0 # Error robustness(extra intra macro block updates)(0=off, N: One GOB every N frames are intra coded) RandomIntraMBRefresh = 0 # Forced intra MBs per picture InterSearch16x16 = 1 # Inter block search 16x16 (0=disable, 1=enable) InterSearch16x8 = 1 # Inter block search 16x8 (0=disable, 1=enable) InterSearch8x16 = 1 # Inter block search 8x16 (0=disable, 1=enable) InterSearch8x8 = 1 # Inter block search 8x8 (0=disable, 1=enable) InterSearch8x4 = 1 # Inter block search 8x4 (0=disable, 1=enable) InterSearch4x8 = 1 # Inter block search 4x8 (0=disable, 1=enable) InterSearch4x4 = 1 # Inter block search 4x4 (0=disable, 1=enable) IntraDisableInterOnly = 0 # Apply Disabling Intra conditions only to Inter Slices (0:disable/default,1: enable) Intra4x4ParDisable = 0 # Disable Vertical & Horizontal 4x4 Intra4x4DiagDisable = 0 # Disable Diagonal 45degree 4x4 Intra4x4DirDisable = 0 # Disable Other Diagonal 4x4 Intra16x16ParDisable = 0 # Disable Vertical & Horizontal 16x16 Intra16x16PlaneDisable = 0 # Disable Planar 16x16 ChromaIntraDisable = 0 # Disable Intra Chroma modes other than DC EnableIPCM = 1 # Enable IPCM macroblock mode DisposableP = 0 # Enable Disposable P slices in the primary layer (0: disable/default, 1: enable) DispPQPOffset = 0 # Quantizer offset for disposable P slices (0: default) ########################################################################################## # B Slices ########################################################################################## NumberBFrames = 7 # Number of B coded frames inserted (0=not used) QPBSlice = 34 # Quant. param for B slices (0-51) BRefPicQPOffset = 0 # Quantization offset for reference B coded pictures (-51..51) DirectModeType = 0 # Direct Mode Type (0:Temporal 1:Spatial) DirectInferenceFlag = 1 # Direct Inference Flag (0: Disable 1: Enable) BList0References = 1 # B slice List 0 reference override (0 disable, N <= NumberReferenceFrames) BList1References = 1 # B slice List 1 reference override (0 disable, N <= NumberReferenceFrames) # 1 List1 reference is usually recommended for normal GOP Structures. # A larger value is usually more appropriate if a more flexible # structure is used (i.e. using HierarchicalCoding) BReferencePictures = 1 # Referenced B coded pictures (0=off, 1=on) HierarchicalCoding = 2 # B hierarchical coding (0= off, 1= 2 layers, 2= 2 full hierarchy, 3 = explicit) HierarchyLevelQPEnable = 1 # Adjust QP based on hierarchy level (in increments of 1). Overrides BRefPicQPOffset behavior.(0=off, 1=on) ExplicitHierarchyFormat = "b2r28b0e30b1e30b3e30b4e30" # Explicit Enhancement GOP. Format is {FrameDisplay_orderReferenceQP}. # Valid values for reference type is r:reference, e:non reference. ReferenceReorder = 0 # Reorder References according to Poc distance for HierarchicalCoding (0=off, 1=enable) PocMemoryManagement = 0 # Memory management based on Poc Distances for HierarchicalCoding (0=off, 1=on) BiPredMotionEstimation = 0 # Enable Bipredictive based Motion Estimation (0:disabled, 1:enabled) BiPredMERefinements = 3 # Bipredictive ME extra refinements (0: single, N: N extra refinements (1 default) BiPredMESearchRange = 16 # Bipredictive ME Search range (8 default). Note that range is halved for every extra refinement. BiPredMESubPel = 1 # Bipredictive ME Subpixel Consideration (0: disabled, 1: single level, 2: dual level) ########################################################################################## # SP Frames ########################################################################################## SPPicturePeriodicity = 0 # SP-Picture Periodicity (0=not used) QPSPSlice = 36 # Quant. param of SP-Slices for Prediction Error (0-51) QPSP2Slice = 35 # Quant. param of SP-Slices for Predicted Blocks (0-51) SI_FRAMES = 0 # SI frame encoding flag (0=not used, 1=used) SP_output = 0 # Controls whether coefficients will be output to encode switching SP frames (0=no, 1=yes) SP_output_name = "low_quality.dat" # Filename for SP output coefficients SP2_FRAMES = 0 # switching SP frame encoding flag (0=not used, 1=used) SP2_input_name1 = "high_quality.dat" # Filename for the first swithed bitstream coefficients SP2_input_name2 = "low_quality.dat" # Filename for the second switched bitstream coefficients ########################################################################################## # Output Control, NALs ########################################################################################## SymbolMode = 0 # Symbol mode (Entropy coding method: 0=UVLC, 1=CABAC) OutFileMode = 0 # Output file mode, 0:Annex B, 1:RTP PartitionMode = 0 # Partition Mode, 0: no DP, 1: 3 Partitions per Slice ########################################################################################## # CABAC context initialization ########################################################################################## ContextInitMethod = 1 # Context init (0: fixed, 1: adaptive) FixedModelNumber = 0 # model number for fixed decision for inter slices ( 0, 1, or 2 ) ########################################################################################## # Interlace Handling ######################################################################################### PicInterlace = 0 # Picture AFF (0: frame coding, 1: field coding, 2:adaptive frame/field coding) MbInterlace = 0 # Macroblock AFF (0: frame coding, 1: field coding, 2:adaptive frame/field coding) IntraBottom = 0 # Force Intra Bottom at GOP Period ########################################################################################## # Weighted Prediction ######################################################################################### WeightedPrediction = 0 # P picture Weighted Prediction (0=off, 1=explicit mode) WeightedBiprediction = 0 # B picture Weighted Prediciton (0=off, 1=explicit mode, 2=implicit mode) UseWeightedReferenceME = 0 # Use weighted reference for ME (0=off, 1=on) ########################################################################################## # Picture based Multi-pass encoding ######################################################################################### RDPictureDecision = 0 # Perform RD optimal decision between different coded picture versions. # If GenerateMultiplePPS is enabled then this will test different WP methods. # Otherwise it will test QP +-1 (0: disabled, 1: enabled) RDPictureIntra = 1 # Perform RD optimal decision also for intra coded pictures (0: disabled (default), 1: enabled). RDPSliceWeightOnly = 1 # Only consider Weighted Prediction for P slices in Picture RD decision. (0: disabled, 1: enabled (default)) RDBSliceWeightOnly = 0 # Only consider Weighted Prediction for B slices in Picture RD decision. (0: disabled (default), 1: enabled ) ########################################################################################## # Loop filter parameters ########################################################################################## LoopFilterParametersFlag = 0 # Configure loop filter (0=parameter below ingored, 1=parameters sent) LoopFilterDisable = 0 # Disable loop filter in slice header (0=Filter, 1=No Filter) LoopFilterAlphaC0Offset = 0 # Alpha & C0 offset div. 2, {-6, -5, ... 0, +1, .. +6} LoopFilterBetaOffset = 0 # Beta offset div. 2, {-6, -5, ... 0, +1, .. +6} ########################################################################################## # Error Resilience / Slices ########################################################################################## SliceMode = 2 # Slice mode (0=off 1=fixed #mb in slice 2=fixed #bytes in slice 3=use callback) SliceArgument = 110 # Slice argument (Arguments to modes 1 and 2 above) num_slice_groups_minus1 = 0 # Number of Slice Groups Minus 1, 0 == no FMO, 1 == two slice groups, etc. slice_group_map_type = 0 # 0: Interleave, 1: Dispersed, 2: Foreground with left-over, # 3: Box-out, 4: Raster Scan 5: Wipe # 6: Explicit, slice_group_id read from SliceGroupConfigFileName slice_group_change_direction_flag = 0 # 0: box-out clockwise, raster scan or wipe right, # 1: box-out counter clockwise, reverse raster scan or wipe left slice_group_change_rate_minus1 = 85 # SliceGroupConfigFileName = "sg0conf.cfg" # Used for slice_group_map_type 0, 2, 6 UseRedundantPicture = 0 # 0: not used, 1: enabled NumRedundantHierarchy = 0 # 0-4 PrimaryGOPLength = 10 # GOP length for redundant allocation (1-16) # NumberReferenceFrames must be no less than PrimaryGOPLength when redundant slice enabled NumRefPrimary = 1 # Actually used number of references for primary slices (1-16) ########################################################################################## # Search Range Restriction / RD Optimization ########################################################################################## RestrictSearchRange = 2 # restriction for (0: blocks and ref, 1: ref, 2: no restrictions) RDOptimization = 1 # rd-optimized mode decision # 0: RD-off (Low complexity mode) # 1: RD-on (High complexity mode) # 2: RD-on (Fast high complexity mode - not work in FREX Profiles) # 3: with losses DisableThresholding = 0 # Disable Thresholding of Transform Coefficients (0:off, 1:on) DisableBSkipRDO = 0 # Disable B Skip Mode consideration from RDO Mode decision (0:off, 1:on) SkipIntraInInterSlices = 0 # Skips Intra mode checking in inter slices if certain mode decisions are satisfied (0: off, 1: on) # Explicit Lambda Usage UseExplicitLambdaParams = 0 # Use explicit lambda scaling parameters (0:disabled, 1:enabled) LambdaWeightIslice = 0.65 # scaling param for I slices. This will be used as a multiplier i.e. lambda=LambdaWeightISlice * 2^((QP-12)/3) LambdaWeightPslice = 0.68 # scaling param for P slices. This will be used as a multiplier i.e. lambda=LambdaWeightPSlice * 2^((QP-12)/3) LambdaWeightBslice = 2.00 # scaling param for B slices. This will be used as a multiplier i.e. lambda=LambdaWeightBSlice * 2^((QP-12)/3) LambdaWeightRefBslice = 1.50 # scaling param for Referenced B slices. This will be used as a multiplier i.e. lambda=LambdaWeightRefBSlice * 2^((QP-12)/3) LambdaWeightSPslice = 1.50 # scaling param for SP slices. This will be used as a multiplier i.e. lambda=LambdaWeightSPSlice * 2^((QP-12)/3) LambdaWeightSIslice = 0.65 # scaling param for SI slices. This will be used as a multiplier i.e. lambda=LambdaWeightSISlice * 2^((QP-12)/3) LossRateA = 5 # expected packet loss rate of the channel for the first partition, only valid if RDOptimization = 2 LossRateB = 0 # expected packet loss rate of the channel for the second partition, only valid if RDOptimization = 2 LossRateC = 0 # expected packet loss rate of the channel for the third partition, only valid if RDOptimization = 2 NumberOfDecoders = 30 # Numbers of decoders used to simulate the channel, only valid if RDOptimization = 2 RestrictRefFrames = 1 # Doesnt allow reference to areas that have been intra updated in a later frame. ########################################################################################## # Additional Stuff ######################################################################################### UseConstrainedIntraPred = 0 # If 1, Inter pixels are not used for Intra macroblock prediction. LastFrameNumber = 0 # Last frame number that have to be coded (0: no effect) ChangeQPI = 16 # QP (I-slices) for second part of sequence (0-51) ChangeQPP = 16 # QP (P-slices) for second part of sequence (0-51) ChangeQPB = 18 # QP (B-slices) for second part of sequence (0-51) ChangeQPBSRefOffset = 2 # QP offset (stored B-slices) for second part of sequence (-51..51) ChangeQPStart = 0 # Frame no. for second part of sequence (0: no second part) NumberofLeakyBuckets = 8 # Number of Leaky Bucket values LeakyBucketRateFile = "leakybucketrate.cfg" # File from which encoder derives rate values LeakyBucketParamFile = "leakybucketparam.cfg" # File where encoder stores leakybucketparams NumberFramesInEnhancementLayerSubSequence = 0 # number of frames in the Enhanced Scalability Layer(0: no Enhanced Layer) NumberOfFrameInSecondIGOP = 0 # Number of frames to be coded in the second IGOP SparePictureOption = 0 # (0: no spare picture info, 1: spare picture available) SparePictureDetectionThr = 6 # Threshold for spare reference pictures detection SparePicturePercentageThr = 92 # Threshold for the spare macroblock percentage PicOrderCntType = 0 # (0: POC mode 0, 1: POC mode 1, 2: POC mode 2) ######################################################################################## #Rate control ######################################################################################## RateControlEnable = 0 # 0 Disable, 1 Enable Bitrate = 512000 # Bitrate(bps) InitialQP = 24 # Initial Quantization Parameter for the first I frame # InitialQp depends on two values: Bits Per Picture, # and the GOP length BasicUnit = 11 # Number of MBs in the basic unit # should be a fractor of the total number # of MBs in a frame ChannelType = 0 # type of channel( 1=time varying channel; 0=Constant channel) ######################################################################################## #Fast Mode Decision ######################################################################################## EarlySkipEnable = 0 # Early skip detection (0: Disable 1: Enable) SelectiveIntraEnable = 0 # Selective Intra mode decision (0: Disable 1: Enable) ######################################################################################## #FREXT stuff ######################################################################################## YUVFormat = 1 # YUV format (0=4:0:0, 1=4:2:0, 2=4:2:2, 3=4:4:4) RGBInput = 0 # 1=RGB input, 0=GBR or YUV input BitDepthLuma = 8 # Bit Depth for Luminance (8...12 bits) BitDepthChroma = 8 # Bit Depth for Chrominance (8...12 bits) CbQPOffset = 0 # Chroma QP offset for Cb-part (-51..51) CrQPOffset = 0 # Chroma QP offset for Cr-part (-51..51) Transform8x8Mode = 0 # (0: only 4x4 transform, 1: allow using 8x8 transform additionally, 2: only 8x8 transform) ResidueTransformFlag = 0 # (0: no residue color transform 1: apply residue color transform) ReportFrameStats = 1 # (0:Disable Frame Statistics 1: Enable) DisplayEncParams = 0 # (0:Disable Display of Encoder Params 1: Enable) Verbose = 2 # level of display verboseness (0:short, 1:normal, 2:detailed) ######################################################################################## #Q-Matrix (FREXT) ######################################################################################## QmatrixFile = "q_matrix.cfg" ScalingMatrixPresentFlag = 0 # Enable Q_Matrix (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag0 = 3 # Intra4x4_Luma (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag1 = 3 # Intra4x4_ChromaU (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag2 = 3 # Intra4x4_chromaV (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag3 = 3 # Inter4x4_Luma (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag4 = 3 # Inter4x4_ChromaU (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag5 = 3 # Inter4x4_ChromaV (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag6 = 3 # Intra8x8_Luma (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ScalingListPresentFlag7 = 3 # Inter8x8_Luma (0 Not present, 1 Present in SPS, 2 Present in PPS, 3 Present in both SPS & PPS) ######################################################################################## #Rounding Offset control ######################################################################################## OffsetMatrixPresentFlag = 0 # Enable Explicit Offset Quantization Matrices (0: disable 1: enable) QOffsetMatrixFile = "q_offset.cfg" # Explicit Quantization Matrices file AdaptiveRounding = 0 # Enable Adaptive Rounding based on JVT-N011 (0: disable, 1: enable) AdaptRndPeriod = 1 # Period in terms of MBs for updating rounding offsets. # 0 performs update at the picture level. Default is 16. 1 is as in JVT-N011. AdaptRndChroma = 0 # Enables coefficient rounding adaptation for chroma AdaptRndWFactorIRef = 4 # Adaptive Rounding Weight for I/SI slices in reference pictures /4096 AdaptRndWFactorPRef = 4 # Adaptive Rounding Weight for P/SP slices in reference pictures /4096 AdaptRndWFactorBRef = 4 # Adaptive Rounding Weight for B slices in reference pictures /4096 AdaptRndWFactorINRef = 4 # Adaptive Rounding Weight for I/SI slices in non reference pictures /4096 AdaptRndWFactorPNRef = 4 # Adaptive Rounding Weight for P/SP slices in non reference pictures /4096 AdaptRndWFactorBNRef = 4 # Adaptive Rounding Weight for B slices in non reference pictures /4096 ######################################################################################## #Lossless Coding (FREXT) ######################################################################################## QPPrimeYZeroTransformBypassFlag = 0 # Enable lossless coding when qpprime_y is zero (0 Disabled, 1 Enabled) ######################################################################################## #Fast Motion Estimation Control Parameters ######################################################################################## UseFME = 3 # Use fast motion estimation (0=disable/default, 1=UMHexagonS, # 2=Simplified UMHexagonS, 3=EPZS patterns) FMEDSR = 1 # Use Search Range Prediction. Only for UMHexagonS method # (0:disable, 1:enabled/default) FMEScale = 3 # Use Scale_factor for different image sizes. Only for UMHexagonS method # (0:disable, 3:/default) # Increasing value can speed up Motion Search. EPZSPattern = 2 # Select EPZS primary refinement pattern. # (0: small diamond, 1: square, 2: extended diamond/default, # 3: large diamond) EPZSDualRefinement = 3 # Enables secondary refinement pattern. # (0:disabled, 1: small diamond, 2: square, # 3: extended diamond/default, 4: large diamond) EPZSFixedPredictors = 2 # Enables Window based predictors # (0:disabled, 1: P only, 2: P and B/default) EPZSTemporal = 1 # Enables temporal predictors # (0: disabled, 1: enabled/default) EPZSSpatialMem = 1 # Enables spatial memory predictors # (0: disabled, 1: enabled/default) EPZSMinThresScale = 0 # Scaler for EPZS minimum threshold (0 default). # Increasing value can speed up encoding. EPZSMedThresScale = 1 # Scaler for EPZS median threshold (1 default). # Increasing value can speed up encoding. EPZSMaxThresScale = 1 # Scaler for EPZS maximum threshold (1 default). # Increasing value can speed up encoding.