InputFile = "CREW_352x288_30_orig_01.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 = 128 # Number of frames to be coded FrameRate = 30 # Frame Rate per second (0.1-100.0) SourceWidth = 352 # Source frame width SourceHeight = 288 # Source frame height SourceResize = 0 # Resize source size for output TraceFile = "CREW_trace_enc_hPP.txt" # Trace file ReconFile = "CREW_rec_hPP.yuv" # Reconstruction YUV file StatsFile = "CREW_stats_hPP.dat" # Coding statistics file ########################################################################################## OutputFile = "/home/eymen/Dropbox/understandingJM/igop_1_ogop_0_intper_8_idrper_8_ref_1_.264" # Bitstream QPISlice = 28 # Quant. param for I Slices (0-51) QPPSlice = 40 # Quant. param for P Slices (0-51) ExplicitHierarchyFormat = "p0e0t2p1r0t1p2e0t2" EnableIDRGOP = 1 # Support for IDR closed GOPs (0: disabled, 1: enabled) EnableOpenGOP = 0 # Support for open GOPs (0: disabled, 1: enabled) IntraPeriod = 8 # Period of I-pictures (0=only first) IDRPeriod = 8 # Period of IDR pictures (0=only first) ########################################################################################## ########################################################################################## # Encoder Control ########################################################################################## ProfileIDC = 66 # Profile IDC (66=baseline) IntraProfile = 0 # Activate Intra Profile for FRExt (0: false, 1: true) # (e.g. ProfileIDC=110, IntraProfile=1 => High 10 Intra Profile) LevelIDC = 40 # Level IDC (e.g. 20 = level 2.0) AdaptiveIntraPeriod = 0 # Adaptive intra period (currently ignored) AdaptiveIDRPeriod = 0 # Adaptive IDR period (currently ignored) IntraDelay = 0 # Intra (IDR) picture delay (i.e. coding structure of PPIPPP... ) FrameSkip = 0 # Number of frames to be skipped in input (e.g 2 will code every third frame). # Note that this now excludes intermediate (i.e. B) coded pictures ChromaQPOffset = 0 # Chroma QP offset (-51..51) DisableSubpelME = 0 # Disable Subpixel Motion Estimation (0=off/default, 1=on) SearchRange = 32 # Max search range MEDistortionFPel = 0 # Select error metric for Full-Pel ME (0: SAD, 1: SSE, 2: Hadamard SAD) MEDistortionHPel = 2 # Select error metric for Half-Pel ME (0: SAD, 1: SSE, 2: Hadamard SAD) MEDistortionQPel = 2 # Select error metric for Quarter-Pel ME (0: SAD, 1: SSE, 2: Hadamard SAD) MDDistortion = 2 # Select error metric for Mode Decision (0: SAD, 1: SSE, 2: Hadamard SAD) SkipDeBlockNonRef = 0 # Skip Deblocking (regardless of DFParametersFlag) for non-reference frames (0: off, 1: on) ChromaMCBuffer = 1 # Calculate Color component interpolated values in advance and store them. # Provides a trade-off between memory and computational complexity # (0: disabled/default, 1: enabled) ChromaMEEnable = 0 # Take into account Color component information during ME # (0: only first component/default, # 1: All Color components - Integer refinement only # 2: All Color components - All refinements) ChromaMEWeight = 1 # Weighting for chroma components. This parameter should have a relationship with color format. NumberReferenceFrames = 1 # Number of previous frames used for inter motion search (0-16) PList0References = 0 # 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) SendAUD = 0 # Send Access Delimiter Unit NALU (for every access unit) ResendSPS = 2 # Resend SPS (0: disabled, 1: all Intra pictures, 2: only for IDR, 3: for IDR and OpenGOP I) 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 ########################################################################################## # PSlice Mode types ########################################################################################## PSliceSkip = 1 # P-Slice Skip mode consideration (0=disable, 1=enable) PSliceSearch16x16 = 1 # P-Slice Inter block search 16x16 (0=disable, 1=enable) PSliceSearch16x8 = 1 # P-Slice Inter block search 16x8 (0=disable, 1=enable) PSliceSearch8x16 = 1 # P-Slice Inter block search 8x16 (0=disable, 1=enable) PSliceSearch8x8 = 1 # P-Slice Inter block search 8x8 (0=disable, 1=enable) PSliceSearch8x4 = 1 # P-Slice Inter block search 8x4 (0=disable, 1=enable) PSliceSearch4x8 = 1 # P-Slice Inter block search 4x8 (0=disable, 1=enable) PSliceSearch4x4 = 1 # P-Slice Inter block search 4x4 (0=disable, 1=enable) DisableIntra4x4 = 0 # Disable Intra 4x4 modes DisableIntra16x16 = 0 # Disable Intra 16x16 modes DisableIntraInInter = 0 # Disable Intra modes for inter slices 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) PreferDispOrder = 1 # Prefer display order when building the prediction structure as opposed to coding order (affects intra and IDR periodic insertion, among others) PreferPowerOfTwo = 0 # Prefer prediction structures that have lengths expressed as powers of two FrmStructBufferLength = 16 # Length of the frame structure unit buffer; it can be overriden for certain cases ChangeQPFrame = 0 # Frame in display order from which to apply the Change QP offsets ChangeQPI = 0 # Change QP offset value for I_SLICE ChangeQPP = 0 # Change QP offset value for P_SLICE ChangeQPB = 0 # Change QP offset value for B_SLICE ChangeQPSI = 0 # Change QP offset value for SI_SLICE ChangeQPSP = 0 # Change QP offset value for SP_SLICE ########################################################################################## # Output Control, NALs ########################################################################################## OutFileMode = 0 # Output file mode, 0:Annex B, 1:RTP ########################################################################################## # Picture based Multi-pass encoding ######################################################################################### RDPictureDecision = 0 # Perform multiple pass coding and make RD optimal decision among them RDPSliceBTest = 0 # Perform Slice level RD decision between P and B slices. RDPictureMaxPassISlice = 1 # Max number of coding passes for I slices, valid values [1,3], default is 1 RDPictureMaxPassPSlice = 2 # Max number of coding passes for P slices, valid values [1,6], default is 2 RDPictureMaxPassBSlice = 3 # Max number of coding passes for B slices, valid values [1,6], default is 3 RDPictureFrameQPPSlice = 0 # Perform additional frame level QP check (QP+/-1) for P slices, 0: disabled (default), 1: enabled RDPictureFrameQPBSlice = 0 # Perform additional frame level QP check (QP+/-1) for B slices, 0: disabled, 1: enabled (default) RDPictureDeblocking = 0 # Perform another coding pass to check non-deblocked picture, 0: disabled (default), 1: enabled RDPictureDirectMode = 0 # Perform another coding pass to check the alternative direct mode for B slices, , 0: disabled (default), 1: enabled ########################################################################################## # Deblocking filter parameters ########################################################################################## DFParametersFlag = 0 # Configure deblocking filter (0=parameters below ignored, 1=parameters sent) # Note that for pictures with multiple slice types, # only the type of the first slice will be considered. DFDisableRefISlice = 0 # Disable deblocking filter in reference I coded pictures (0=Filter, 1=No Filter). DFAlphaRefISlice = 0 # Reference I coded pictures Alpha offset div. 2, {-6, -5, ... 0, +1, .. +6} DFBetaRefISlice = 0 # Reference I coded pictures Beta offset div. 2, {-6, -5, ... 0, +1, .. +6} DFDisableNRefISlice = 0 # Disable deblocking filter in non reference I coded pictures (0=Filter, 1=No Filter). DFAlphaNRefISlice = 0 # Non Reference I coded pictures Alpha offset div. 2, {-6, -5, ... 0, +1, .. +6} DFBetaNRefISlice = 0 # Non Reference I coded pictures Beta offset div. 2, {-6, -5, ... 0, +1, .. +6} DFDisableRefPSlice = 0 # Disable deblocking filter in reference P coded pictures (0=Filter, 1=No Filter). DFAlphaRefPSlice = 0 # Reference P coded pictures Alpha offset div. 2, {-6, -5, ... 0, +1, .. +6} DFBetaRefPSlice = 0 # Reference P coded pictures Beta offset div. 2, {-6, -5, ... 0, +1, .. +6} DFDisableNRefPSlice = 0 # Disable deblocking filter in non reference P coded pictures (0=Filter, 1=No Filter). DFAlphaNRefPSlice = 0 # Non Reference P coded pictures Alpha offset div. 2, {-6, -5, ... 0, +1, .. +6} DFBetaNRefPSlice = 0 # Non Reference P coded pictures Beta offset div. 2, {-6, -5, ... 0, +1, .. +6} ########################################################################################## # Error Resilience / Slices ########################################################################################## SliceMode = 0 # Slice mode (0=off 1=fixed #mb in slice 2=fixed #bytes in slice 3=use callback) SliceArgument = 50 # 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 = 1 # 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 = 0 # 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 # 4: RD-on (High complexity mode) with negative skip bias I16RDOpt = 0 # perform rd-optimized mode decision for Intra 16x16 MB # 0: SAD-based mode decision for Intra 16x16 MB # 1: RD-based mode decision for Intra 16x16 MB SubMBCodingState = 1 # submacroblock coding state # 0: lowest complexity, do not store or reset coding state during sub-MB mode decision # 1: medium complexity, reset to master coding state (for current mode) during sub-MB mode decision # 2: highest complexity, store and reset coding state during sub-MB mode decision DistortionSSIM = 0 # Compute SSIM distortion. (0: disabled/default, 1: enabled) DistortionMS_SSIM = 0 # Compute Multiscale SSIM distortion. (0: disabled/default, 1: enabled) SSIMOverlapSize = 8 # Overlap size to calculate SSIM distortion (1: pixel by pixel, 8: no overlap) DistortionYUVtoRGB = 0 # Calculate distortion in RGB domain after conversion from YCbCr (0:off, 1:on) CtxAdptLagrangeMult = 0 # Context Adaptive Lagrange Multiplier # 0: disabled (default) # 1: enabled (works best when RDOptimization=0) FastCrIntraDecision = 1 # Fast Chroma intra mode decision (0:off, 1:on) DisableThresholding = 0 # Disable Thresholding of Transform Coefficients (0:off, 1:on) SkipIntraInInterSlices = 0 # Skips Intra mode checking in inter slices if certain mode decisions are satisfied (0: off, 1: on) WeightY = 1 # Luma weight for RDO WeightCb = 1 # Cb weight for RDO WeightCr = 1 # Cr weight for RDO ########################################################################################## # Explicit Lambda Usage ########################################################################################## UseExplicitLambdaParams = 0 # Use explicit lambda scaling parameters (0:disabled, 1:enable lambda weight, 2: use explicit lambda value) UpdateLambdaChromaME = 0 # Update lambda given Chroma ME consideration FixedLambdaISlice = 0.1 # Fixed Lambda value for I slices FixedLambdaPSlice = 0.1 # Fixed Lambda value for P slices 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) LossRateA = 5 # expected packet loss rate of the channel for the first partition, only valid if RDOptimization = 3 LossRateB = 0 # expected packet loss rate of the channel for the second partition, only valid if RDOptimization = 3 LossRateC = 0 # expected packet loss rate of the channel for the third partition, only valid if RDOptimization = 3 FirstFrameCorrect = 0 # If 1, the first frame is encoded under the assumption that it is always correctly received. NumberOfDecoders = 30 # Numbers of decoders used to simulate the channel, only valid if RDOptimization = 3 RestrictRefFrames = 0 # 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. 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 NumFramesInELayerSubSeq = 0 # number of frames in the Enhanced Scalability Layer(0: no Enhanced Layer) 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) ######################################################################################## #Fast Mode Decision ######################################################################################## EarlySkipEnable = 0 # Early skip detection (0: Disable 1: Enable) SelectiveIntraEnable = 0 # Selective Intra mode decision (0: Disable 1: Enable) ReportFrameStats = 0 # (0:Disable Frame Statistics 1: Enable) DisplayEncParams = 0 # (0:Disable Display of Encoder Params 1: Enable) Verbose = 3 # level of display verboseness # 0: short, 1: normal (default), 2: detailed, 3: detailed/nvb # 4: with additional MB level lambda info ######################################################################################## #Rounding Offset control ######################################################################################## OffsetMatrixPresentFlag = 0 # Enable Explicit Offset Quantization Matrices (0: disable 1: enable) QOffsetMatrixFile = "q_offset.cfg" # Explicit Quantization Matrices file AdaptiveRounding = 1 # Enable Adaptive Rounding based on JVT-N011 (0: disable, 1: enable) AdaptRoundingFixed = 1 # Enable Global Adaptive rounding for all qps (0: disable, 1: enable - default/old) AdaptRndPeriod = 16 # 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 = 1 # 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 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 AdaptRndCrWFactorIRef = 4 # Chroma Adaptive Rounding Weight for I/SI slices in reference pictures /4096 AdaptRndCrWFactorPRef = 4 # Chroma Adaptive Rounding Weight for P/SP slices in reference pictures /4096 AdaptRndCrWFactorINRef = 4 # Chroma Adaptive Rounding Weight for I/SI slices in non reference pictures /4096 AdaptRndCrWFactorPNRef = 4 # Chroma Adaptive Rounding Weight for P/SP slices in non reference pictures /4096 ######################################################################################## #Fast Motion Estimation Control Parameters ######################################################################################## SearchMode = 0 # Motion estimation mode # -1 = Full Search # 0 = Fast Full Search (default) # 1 = UMHexagon Search # 2 = Simplified UMHexagon Search # 3 = Enhanced Predictive Zonal Search (EPZS) UMHexDSR = 1 # Use Search Range Prediction. Only for UMHexagonS method # (0:disable, 1:enabled/default) UMHexScale = 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, 4: SBP Large Diamond, # 5: PMVFAST ) EPZSDualRefinement = 3 # Enables secondary refinement pattern. # (0:disabled, 1: small diamond, 2: square, # 3: extended diamond/default, 4: large diamond, # 5: SBP Large Diamond, 6: PMVFAST ) EPZSFixedPredictors = 2 # Enables Window based predictors # (0:disabled, 1: P only, 2: P and B/default) EPZSAggressiveWindow = 0 # Use Aggressive Window pattern for EPZS (0: disabled, 1: enabled) EPZSTemporal = 1 # Enables temporal predictors # (0: disabled, 1: enabled/default) EPZSSpatialMem = 1 # Enables spatial memory predictors # (0: disabled, 1: enabled/default) EPZSBlockType = 1 # Enables block type 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 = 2 # Scaler for EPZS maximum threshold (1 default). # Increasing value can speed up encoding. EPZSSubPelME = 1 # EPZS Subpel ME consideration EPZSSubPelMEBiPred = 1 # EPZS Subpel ME consideration for BiPred partitions EPZSSubPelThresScale = 2 # EPZS Subpel ME Threshold scaler EPZSSubPelGrid = 1 # Perform EPZS using a subpixel grid ########################################################################################## # B Slices ########################################################################################## BiPredMotionEstimation = 1 # Enable Bipredictive based Motion Estimation (0:disabled, 1:enabled) NumberBFrames = 3 # Number of B coded frames inserted (0=not used) PReplaceBSlice = 1 # Replace B-coded slices with P-coded slices when NumberBFrames>0 QPBSlice = 40 # Quant. param for B slices (0-51) BRefPicQPOffset = -1 # Quantization offset for reference B coded pictures (-51..51) DirectModeType = 1 # Direct Mode Type (0:Temporal 1:Spatial) DirectInferenceFlag = 1 # Direct Inference Flag (0: Disable 1: Enable) BList0References = 0 # B slice List 0 reference override (0 disable, N <= NumberReferenceFrames) BList1References = 0 # 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 = 0 # Referenced B coded pictures (0=off, 1=B references for secondary layer, 2=B references for primary layer) HierarchicalCoding = 3 # B hierarchical coding (0= off, 1= 2 layers, 2= 2 full hierarchy, 3 = explicit) HierarchyLevelQPEnable = 1 LowDelay = 1 # Apply HierarchicalCoding without delay (i.e., encode in the captured/display order) ReferenceReorder = 2 # Reorder References according to Poc distance for HierarchicalCoding (0=off, 1=enable, 2=use when LowDelay is set) PocMemoryManagement = 2 # Memory management based on Poc Distances for HierarchicalCoding (0=off, 1=on, 2=use when LowDelay is set)