Video Fan-Out Compressors

H.264 FanOut Compressor [h64f]

Properties:

OutputFormat

Four character code that specifies the output video stream format

Type: Four


UsingHardwareAcceleration

True if the filter is using hardware acceleration.

Note: This property is read only.

Type: Bool


Variants

Array of properties to be applied to each output track.

Type: CVariantArray of CProperties


Ssim

Enables SSIM calculations that are reported on completion at the cost of a small decrease in speed.

Type: Float


VbvBufferInit

Sets how full the VBV Buffer must be before playback starts.

If it is less than 1, the the initial fill is: vbv-init * vbv-bufsize. Otherwise it is interpreted as the initial fill in kbits.

Note: Default is 0.9.

Type: Int32


AveragePsnr

Average Psnr

Type: Float


RateControlMethod

Specifies the rate control method

Value Method
0 Constant quantizer
1 Constant rate factor
2 Average bitrate

Type: Int32


VbvMaxBitrate

Specifies the maximum fill rate for the VBV buffer.

Type: Int32


BitRate

Specifies the requested average bitrate of encoded stream in bits-per-seconds.

Type: Int


VbvSize

Specifies the size of the VBV buffer in bits.

Type: Int32


QpConstant

Specifies the constant quantizer in the range 0 (lossless) to 51 (8 bit) or 63 (10 bit).

Note: Default is 10.

Type: Int32


RateFactorConstant

Specifies the constant rate factor.

Note: Default is 23.

Type: Float


FormatSeiToC708

Format Sei to C708

Type: Bool


PpsInEveryFrame

Pps in Every Frame

Type: Bool


RemoveOptionsSei

Removes the SEI message containing the x265 command line options.

By default x264 adds an unregistered user data sei message containing the compressor’s command line options. Setting this property to true will remove the sei message.

Note: Defaults to false.

Type: Bool


GlobalPsnr

Global Psnr

Type: Float


MulticoreWare H.264 Compressor [mw64]

Properties:

OutputFormat

Four character code that specifies the output video stream format

Type: Four


UsingHardwareAcceleration

True if the filter is using hardware acceleration.

Note: This property is read only.

Type: Bool


QueueDepth

Desired input/analysis queue depth.

The bigger the input queue, better the performance but at the cost of memory. If the goal is to minimize memory footprint, smaller queue depth should be specified. If multiple splits with same input resolution specify different queue-depths, max depth is set.

Type: Int


LogLevel

Desired log level of UHD/x264 api.

Note: Defaults to the current Dib Console log level.

Type: LogLevelType


CommandLine

The x264 CLI comand line.

Configures the x264 encoder with the parameters as specified with the x264 CLI. see https://en.wikibooks.org/wiki/MeGUI/x264_Settings for more information.

The command line parameters will override any parameters specified otherwise.

Type: Int


RemoveOptionsSei

Determines if the x264 command line options user data SEI message is to be removed.

By default x264 adds an unregistered user data sei message containing the compressor’s command line options. Setting this property to true will remove the sei message.

Note: Defaults to false.

Type: Bool


LookaheadThreads

Multiple threads for lookahead analysis.

Note: Default is 0 (frame based threads: 1.5 * logical processors, rounded down; slice based threads: 1 * logical processors)

Type: Bool


RateFactor

Sets the constant rate factor in CRF rate control mode.

While qp targets a certain quantizer, and bitrate targets a certain filesize, crf targets a certain ‘quality’. The idea is for crf n to give the same perceptual quality as qp n, just in a smaller space. The arbitrary unit of measure for crf values is the ‘ratefactor’. CRF achieves this by reducing the quality of ‘less important’ frames. In this context, ‘less important’ means frames in complex or high-motion scenes, where quality is either more expensive (in terms of bits) or less visible, will have their quantizer increased. The bits saved in frames like these are redistributed to frames where they will be more effective. CRF will take less time than a 2-pass bitrate encode, because the ‘first pass’ from a 2-pass encode was skipped. On the other hand, it’s impossible to predict the bitrate a CRF encode will come out to. It’s up to you to decide which rate-control mode is better for your circumstances.

Note: Default is 23.

Type: Float


SceneCutThreshold

Sets the threshold for I/IDR frame placement.

x264 calculates a metric for every frame to estimate how different it is from the previous frame. If the value is lower than scenecut, a ‘scenecut’ is detected. An I-frame is placed if it has been less than MinKeyFrameInterval frames since the last IDR-frame, otherwise an IDR-frame is placed. Higher values of scenecut increase the number of scenecuts detected.

Setting SceneCutThreshold to 0 is equivalent to completely disabling adaptive I-frame decisions.

Note: Default is 40.

Type: Intger


Width

The desired variant width.

Only applicable within the properties for a variant.

Note: Default is the input width.

Type: Int


FakeInterlaced

Marks a stream as interlaced, but encodes as progressive.

Used only when input is interlaced. Setting this flag makes it possible to flag the stream as PAFF interlaced yet encode all frames progessively. Allows encoding of 25p and 30p Blu-ray compliant videos.

Note: Default is false.

Type: Bool


Variants

Sets the variant properties.

The compression settings of each variant are set through this property. On the filter each variant is specfied as a collection of properties x264 properties in addition to width and height. This properties allows for multi-resolution encodes.

Type: CVariantArray of CProperites.


EnableFiller

Sets VBV filler to force CBR VBV and use filler bytes to ensure hard-CBR.

Note: Default is false. Implied by NAL-HRD CBR.

See Also: NalHrdMode

Type: Bool


QualityVariants

Sets the quality variant properties.

The quality settings of each variant are set through this property. Each variant can have multiple quality variants allowing for multi-bitrate encodes. These properties are limited to BitRate, VbvMaxBitRate, VbvBufferSize, VbvInitialFill, RateFactor, and MaxRateFactor.

See Also: BitRate, VbvMaxBitRate, VbvBufferSize, VbvInitialFill, RateFactor, MaxRateFactor

Type: CVariantArray of CProperites.


MinKeyFrameInterval

Sets the minimum interval between IDR-frames.

See MaxKeyFrameInterval for an explanation of IDR-frames. Very small ranges can cause ‘incorrect’ IDR-frame placement (for example, a strobing scene). This option limits the minimum length in frames after each IDR-frame before another can be placed. The maximum allowed value for MinKeyFrameInterval is MaxKeyFrameInterval/2 + 1 unless MinKeyFrameInterval equals MaxKeyFrameInterval, then a strict key frame interval is implied and SceneCutThreshold is set to 0.

Note: Default is 0.

See Also: MaxKeyFrameInterval, SceneCutThreshold, EnableIntraRefresh

Type: Int


Height

The desired variant height.

Only applicable within the properties for a variant.

Note: Default is the input height.

Type: Int


Profile

Limits the profile of the output stream.

If you specify a profile, it overrides all other settings, so if you use it, you will be guaranteed a compatible stream. If you set this option, you cannot use lossless encoding (QP=0 or RateFactor=0). You should set this if you know your playback device only supports a certain profile.

Note: Default is Main.

Type: ProfileType


WriteAccessUnitDelimiters

Determines whether to write access unit delimiters (AUD).

Note: Default is true

Type: Bool


BitRate

Sets the target bitrate for ABR mode (in bits/sec).

Target bitrate mode means the final filesize is known, but the final quality is not. x264 will attempt to encode the video to target the given bitrate as the overall average. The parameter given is the bitrate in kilobits/sec. Note 1 kilobit is 1000, not 1024 bits.

Type: Int


Preset

Changes options to trade off compression efficiency against encoding speed.

If you specify a preset, the changes it makes will be applied before all other parameters are applied. You should generally set this option to the slowest you can bear.

Note: Default is Medium.

Type: PresetType


Tune

Tunes options to further optimize them for your input content.

If you specify a tuning, the changes will be applied after Preset but before all other parameters. If your source content matches one of the available tunings you can use this, otherwise leave unset.

Note: Default is not-set.

Type: TuneType


ApplyFastFirstPass

If first-pass mode is set (StatRead == false && StatWrite == true), modify the encoder settings to disable options generally not useful on the first pass.

Note: Default is true.

Type: Bool


DeblockingAlphaOffset

Specifies the offset used for the deblocking filtering operations.

Note: The value shall be in the range of -6 to +6, inclusive. Default is 0.

Type: Int


EnableStatRead

Enable loading data from the stat input file in a multi-pass encode.

Type: Bool


EnableCABAC

Enables CABAC (Context Adaptive Binary Arithmetic Coder) stream compression.

When disabled the algorithm falls back to the less efficient CAVLC (Context Adaptive Variable Length Coder) system significantly reducing both the compression efficiency (10-20% typically) and the decoding requirements.

Note: Default is true.

Type: Bool


MaxSliceSize

Sets the maximum slice size in bytes, including estimated NAL overhead.

Currently is not compatible with interlaced frames.

Note: Default is 0.

See Also: SliceCount, MaxSliceMbs, MaxSlices

Type: Int


MaxSliceCount

Sets the absolute cap on slices per frame

Sops applying slice-max-size and slice-max-mbs if this is reached.

Note: Default is 0.

See Also: SliceCount, MaxSliceSize, MaxSliceMbs

Type: Int


MaxKeyFrameInterval

Sets the maximum interval between IDR-frames (aka keyframes) in x264’s output.

IDR-frames are ‘delimiters’ in the stream - no frame can reference data from the other side of the IDR-frame. As well as this, IDR-frames are also I-frames, so they don’t reference data from any other frame. This means they can be used as seek points in a video. Note I-frames are generally significantly larger than P/B-frames (often 10x or more in low motion scenes), so they can play havoc with rate-control when combined with aggressively low VBV settings (eg, sub-second buffer sizes). In these cases, investigate EnableIntraRefresh.

The default setting is fine for most videos. When encoding for Blu-ray, broadcast, live streaming or certain other specialist scenarios you may require a significantly smaller GOP length (often ~1x fps).

Note: Default is 250.

See Also: MinKeyFrameInterval, SceneCutThreshold, EnableIntraRefresh

Type: Int


FixedIdrFrameInterval

Integer value representing the fixed IDR frame interval size.

Type: Int32


EnableIntraRefresh

Disables IDR-frames, instead x264 uses intra coding for each macroblock in the frame every MaxKeyFrameInterval frames.

Blocks are refreshed in a horizontally scrolling column - the ‘refresh wave’. This benefits low-latency streaming by making it possible to achieve more constant frame sizes than is possible with standard IDR-frames. It also increases the resilience of the video stream to packet loss. This option does reduce compression efficiency, hence only use it when needed.

Fun facts:

  • The first frame is still an IDR frame.
  • Intra-blocks are placed only in P-frames - the refresh wave is wider in the first P-frame after one or more B-frames.
  • The loss in compression efficiency comes primarily from the fact macroblocks on the ‘new’ (left) side of the refresh wave can’t refer to data on the ‘old’ (right) side.

Note: Default is false.

Type: Int


AdaptiveBFramePlacement

Sets the adaptive B-frame placement decision algorithm.

This setting controls how x264 decides between placing a P-frame or B-frame. Note for a multi-pass encode, this option is only needed for the first pass where frame types are decided.

Note: Default is Disabled.

Type: AdaptiveBFramePlacementType


EnableStatWrite

Enable writing the stats in a multi-pass encode to the stat output file.

Type: Bool


MaxBFrames

Sets the maximum number of consecutive B-frames that x264 can use.

Without B-frames, a typical x264 stream has frame types like so: IPPPPP…PI. With MaxBFrames=2, up to two consecutive P-frames can be replaced with B-frames, like: IBPBBPBPPPB…PI. B-frames are similar to P-frames, except they can use motion prediction from future frames as well. This can lead to significantly better efficiency in terms of compression ratio. Their average quality is controlled by PBRatio.

Fun facts:

  • x264 also occasionally distinguishes between two different sorts of B-frames. A ‘B’ can refer to a B-frame that is used as a reference by other frames (see \ref EnableBPyramid, while ‘b’ can refer to a B-frame that is not. If you see a mix of ‘B’ and ‘b’, it’s usually related to the above. When the difference is not important, just ‘B’ is generally used to refer to all B-frames.

Note: Default is 3.

See Also: BFrameBias, BFramePyramid, MaxReferences, PBRatio

Type: Int


BFrameBias

Controls the likelihood of B-frames being used instead of P-frames.

Values greater than 0 increase the weighting towards B-frames, while values less than 0 do the opposite. This number is an arbitrary metric. The range is from -100 to 100. A value of 100/-100 does not guarantee every/no P-frame will be converted (use AdaptiveBFramePlacement=Disabled for that). Only use this if you think you make better rate-control decisions than x264.

Note: Default is 0.

See Also: MaxBFrames

Type: Int


BFramePyramid

Allows the use of B-frames as references for other frames.

Without this setting, frames can only reference I-frames or P-frames. Although I/P-frames are more valued as references because of their higher quality, B-frames can also be useful. B-frames designated as references will get a quantizer halfway between P-frames and normal B-frames. You need to use at least two B-frames before B-pyramid will work. If you’re encoding for Blu-ray, use None or Strict.

Note: Default is Normal

See Also: MaxBFrames, MaxReferences, AllowMixedReferences

Type: BFramePyramidType


EnableOpenGop

Enables open GOPs.

Open-GOP is an encoding technique which increases efficiency. Some decoders don’t fully support open-GOP streams, which is why this hasn’t been enabled by default. You should test with all decoders your streams will be played on, or (if that’s impossible) wait until support is generally available.

Note: Default is false.

Type: Bool


MaxReferences

Controls the size of the DPB (Decoded Picture Buffer).

The range is from 0-16. In short, this value is the number of previous frames each P-frame can use as references. (B-frames can use one or two fewer, depending on if they are used as references or not.) The minimum number of refs that can be referenced is 1. Also note that the H.264 spec limits DPB size for each level. If adhering to Level 4.1 specs, the maximum refs for 720p and 1080p video are 9 and 4 respectively. You can read more about levels and 4.1 in particular under Level.

Note: Default is 3.

See Also: BFramePyramid, EnabledMixedReferences, Level

Type: Int


EnableDeblockingFilter

Controls the loop filter (aka inloop deblocker), which is part of the H.264 standard.

It is very efficient in terms of encoding time vs. quality gained. Dissabling is not recommended.

Note: Default is true.

Type: Bool


DeblockingBetaOffset

Specifies the offset used for the deblocking filtering operations.

Note: The value shall be in the range of -6 to +6, inclusive. Default is 0.

Type: Int


MaxQP

Sets the maximum allowed QP value.

Defines the maximum quantizer that x264 can use. The default of 51 is the highest quantizer available for use in the H.264 spec, and is extremely low quality. This default effectively disables qpmax. You may want to set this lower (values in the 30-40 range are generally as low as you’d go) if you want to cap the minimum quality x264 can output, but adjusting it is generally not recommended.

Note: Default is 51.

Type: Int


SliceCount

Sets the number of slices per frame, and forces rectangular slices.

Overridden by either MaxSliceSize or MaxSliceMbs if they are set. If you are encoding for Blu-ray, set this to 4. Otherwise, don’t use this unless you know you need to.

Note: Default is 0.

See Also: MaxSliceCount, MaxSliceSize, MaxSliceMbs, MaxSlices

Type: Int


MinSliceMbs

Sets the minimum slice size in macroblocks.

Currently is not compatible with interlaced frames.

Note: Default is 0.

See Also: SliceCount, MaxSliceSize, MaxSlices

Type: Int


MaxSliceMbs

Sets the maximum slice size in macroblocks.

Currently is not compatible with interlaced frames.

Note: Default is 0.

See Also: SliceCount, MaxSliceSize, MaxSlices

Type: Int


RateControlMethod

The rate control method.

There are three primary rate control methods:

  • Constant Quantizer:
  • CQ mode targets a certain quantizer, which means final filesize is not known (although it can be reasonably accurately estimated with some methods). A setting of 0 will produce lossless output. qp produces larger files than CRF for the same visual quality. QP mode also disables adaptive quantization, since by definition ‘constant quantizer’ implies no adaptive quantization.
  • Adaptive Bit Rate:
  • ABR mode means the final filesize is known, but the final quality is not. x264 will attempt to encode the video to target the given bitrate as the overall average. The parameter given is the bitrate in kilobits/sec. (8bits = 1byte and so on).
  • Constant Rate Factor:
  • While qp targets a certain quantizer, and bitrate targets a certain filesize, CRF targets a certain ‘quality’. The idea is for CRF n to give the same perceptual quality as qp n, just in a smaller space. The arbitrary unit of measure for CRF values is the ‘ratefactor’. CRF achieves this by reducing the quality of ‘less important’ frames. In this context, ‘less important’ means frames in complex or high-motion scenes, where quality is either more expensive (in terms of bits) or less visible, will have their quantizer increased. The bits saved in frames like these are redistributed to frames where they will be more effective. CRF will take less time than a 2-pass bitrate encode, because the ‘first pass’ from a 2-pass encode was skipped. On the other hand, it’s impossible to predict the bitrate a CRF encode will come out to. It’s up to you to decide which rate-control mode is better for your circumstances.

Note: Defualt is CRF. For more information see http://git.videolan.org/?p=x264.git;a=blob_plain;f=doc/ratecontrol.txt;hb=HEAD.

Type: RateControlMethodType


QP

Specifies the quantization parameter for CQP rate control mode.

The number you give here specifies the P-frame quantizer. The quantizer used for I-frame and B-frames is derived from IPRatio and PBRatio. CQP mode targets a certain quantizer, which means final filesize is not known (although it can be reasonably accurately estimated with some methods). A setting of 0 will produce lossless output. QP produces larger files than –crf for the same visual quality. qp mode also disables adaptive quantization, since by definition ‘constant quantizer’ implies no adaptive quantization.

Note: Only used in constant quantizer rate control mode. Default is 10. Range is 0 to (51 + 6*(x264_bit_depth-8)). 0=lossless.

Type: Int


MaxRateFactor

In CRF mode, maximum CRF as caused by VBV.

A similar setting to MaxQP except instead of specifying a maximum quantizer you’re specifying a maximum ratefactor. This option only works when you are using CRF and have VBV enabled. It prevents x264 from reducing the ratefactor (aka ‘quality’) below the given value even when doing so would violate VBV constraints. This setting is mostly applicable to custom streaming servers.

See Also: RateFactor, VbvMaxBitRate, VbvBufferSize

Type: Float


MinQP

Sets the minimum allowed QP value.

Defines the minimum quantizer that x264 will ever use. The lower the quantizer, the closer the output is to the input. At some point, the output of x264 will look the same as the input, even though it is not exactly the same. Usually there is no reason to allow x264 to spend more bits than this on any particular macroblock. With adaptive quantization enabled (the default), raising qpmin is discouraged because this could reduce the quality of flat background areas of the frame.

Note: Default is 0.

Type: Int


MaxQPStep

Sets the maximum change in quantizer between two frames.

Note: Default is 4.

Type: Int


AdaptiveQuantizationMode

Sets the adaptive quantization mode.

Without AQ, x264 tends to underallocate bits to less-detailed sections. AQ is used to better distribute the available bits between all macroblocks in the video. This setting changes what scope AQ re-arranges bits in.

Note: Default is Variance.

See Also: AdaptiveQuantizationStrength

Type: AdaptiveQuantizationModeType


AdaptiveQuantizationStrength

Sets the strength of AQ bias towards low detail (‘flat’) macroblocks.

Negative values are not allowed. Values more than +/-100% from 1.0 are probably a bad idea.

Note: Default is 1.

See Also: AdaptiveQuantizationMode

Type: Float


VbvMaxBitRate

Sets the maximum rate the VBV buffer should be assumed to refill at.

VBV reduces quality, so you should only use this if you’re encoding for a playback scenario that requires it.

Note: Default 0.9.

Type: Float


EnableMacroblockTreeRateControl

Enables macroblock tree ratecontrol.

Using macroblock tree ratecontrol overall improves the compression by keeping track of temporal propagation across frames and weighting accordingly. Requires a new large statsfile in addition to the already existing for multipass encodes.

Note: Default is false.

See Also: LookaheadFrames

Type: Bool


IPRatio

Sets the I/P qp ratio.

Modifies the target average increase in quantizer for I-frames as compared to P-frames. Higher values increase the quality of I-frames generated.

Note: Default is 1.4.

See Also: QP, PBRatio

Type: Float


PBRatio

Sets the P/B qp ratio.

Modifies the target average decrease in quantizer for B-frames as compared to P-frames. Higher values decrease the quality of B-frames generated. Not used with mbtree (enabled by default), which calculates the optimum value automatically.

Note: Default is 1.3.

See Also: QP, IPRatio

Type: Float


LookaheadFrames

Sets the number of frames to use for mb-tree ratecontrol and vbv-lookahead.

The maximum allowed value is 250. For the mb-tree portion of this, increasing the frame count generates better results but is also slower. The maximum buffer value used by mb-tree is the MIN( LookaheadFrames, MaxKeyFrameInterval ) For the vbv-lookahead portion of this, increasing the frame count generates better stability and accuracy when using VBV. The maximum value used by vbv-lookahead is: MIN(LookaheadFrames, MAX(MaxKeyFrameInterval, MAX(VbvMaxBitRate, BitRate) / VbvBufferSize * FPS))

Note: Default is 40.

Type: Int


VbvBufferSize

Sets the size of the VBV buffer in bits.

VBV reduces quality, so you should only use this if you’re encoding for a playback scenario that requires it.

Note: Default 0 (vbv disabled)

Type: Int


Threads

Enables parallel encoding by using more than 1 thread to increase speed on multi-core systems.

The quality loss from multiple threads is mostly negligible unless using very high numbers of threads (say, above 16). The speed gain should be slightly less than linear until you start using more than 1 thread per 40px of vertical video, at which point the gain from additional threads sharply decreases. x264 currently has an internal limit on the number of threads set at 128, realistically you should never set it this high.

Note: Default is 0 (frame based threads: 1.5 * logical processors, rounded down; slice based threads: 1 * logical processors)

Type: Int


NoiseReductionWeight

Performs noise reduction.

Estimates film noise based on this value and attempts to remove it by dropping small details before quantization. This may not match the quality of a good external noise reduction filter, but it performs very fast.

Note: Default is 0 (disabled). Recommended 100 to 1000 for denoising.

Type: Int


VbvInitialFill

Sets how full the VBV Buffer must be before playback starts.

If it is less than 1, the the initial fill is: VbvInitialFill * VbvBufferSize. Otherwise, it is interpreted as the initial fill in kilobits.

Type: Float


MinFrameError

Sets VBV fine tuning to avoid underflows when buffer size is signifcantly smaller than bitrate.

Note: Default 0.

Type: Float


AllowMixedReferences

Allows each mb partition to have its own reference number.

Mixed refs will select refs on a per-8x8 partition, rather than per-macroblock basis. This improves quality when using multiple reference frames, albeit at some speed cost. Setting this option will disable it.

Note: Defaults to true.

Type: Bool


EnableChromaMotionEstimation

Enables chroma mostion estimation for subpel and mode decision in P-frames.

Normally, motion estimation works off both the luma and chroma planes. This can disable chroma motion estimation for a small speed boost.

Note: Defaults to true.

Type: Bool


ForcePicStruct

Force the insertion of pic_struct in Picture Timing SEI messages.

The presence of picture timeing SEI messages is indicated by a flag in the SPS. Inorder to change picture timing SEI messages downstream from the encoder this property must be set to true.

Note: Default is false.

Type: Bool


EnableSlicedThreads

Whether to use slice-based threading.

This threading method produces lower quality results than the default method both compression and efficiency-wise, but adds no encoding latency.

Note: Default is false.


SyncLookaheadFrames

Sets the number of frames to be used as a buffer for threaded lookahead.

Maximum Value is 250. Automatically disabled during the 2nd or greater pass or when using sliced threads. Setting this to 0 disables threaded lookahead, which allows lower latency at the cost of reduced performance.

Note: Default is BFrames + 1.


WriteSeiMessages

Determines whether to write sei messages in the bitstream

Note: Default is true

Type: Bool


RepeatHeaders

Whether to put SPS/PPS before each keyframe.

Note: Default is false.

Type: Bool


NalHrdModel

Whether to signal HRD information.

Required for Blu-ray streams, television broadcast and a few other specialist areas.

Note: Default is None

Type: NalHrdModelType


StatFile

Filename of the multi-pass output/input stats file.

Input can be encoded multiple times, storing the encoded information of each pass in a stats file from which the consecutive pass tunes the qp of each frame to improve the quality of the output.

Type: String


TrellisQuantiztionMethod

Performs trellis quantization to increase efficiency.

Macroblock provides a good compromise between speed and efficiency while All reduces speed further.

Trellis quantization is an algorithm that can improve data compression in DCT-based encoding methods. It is used to optimize residual DCT coefficients after motion estimation in lossy video compression. Trellis quantization reduces the size of some DCT coefficients while recovering others to take their place. This process can increase quality because coefficients chosen by TrellisQuantiztionMethod have the lowest rate-distortion ratio. trellis quantization effectively finds the optimal quantization for each block to maximize the PSNR relative to bitrate. It has varying effectiveness depending on the input data and compression method.

Note: Default is Macroblock

Type: TrellisQuantiztionMethodType


Enumerations:

TrellisQuantiztionMethodType

Property values for TrellisQuantiztionMethod.

Value Name Description
0 TrellisQuantiztionMethod_Dissabled Disabled
1 TrellisQuantiztionMethod_Macroblock Enabled only on the final encode of a macroblock
2 TrellisQuantiztionMethod_All Enabled on all mode decisions

RateControlMethodType

Property values for RateControlMethod.

Value Name Description
0 RateControlMethod_CQP Constant quantizer.
1 RateControlMethod_CRF Constant rate factor.
2 RateControlMethod_ABR Adaptive bit rate.

LogLevelType

Property values for LogLevel.

Value Name Description
-1 LogLevel_None None
0 LogLevel_Error Error
1 LogLevel_Warning Warning
2 LogLevel_Info Info
5 LogLevel_Full Full
3 LogLevel_Frame Frame
4 LogLevel_Debug Debug

ProfileType

Property values for Profile.

Value Name Description
-1 Profile_None None
0 Profile_Baseline Baseline
1 Profile_Main Main
2 Profile_High High
3 Profile_High10 High 10
5 Profile_High444 High 4:4:4
4 Profile_High422 High 4:2:2

PresetType

Property values for Preset.

Value Name Description
4 Preset_Fast Fast
9 Preset_Placebo Placebo
0 Preset_UltraFast Ultrafast
7 Preset_Slower Slower
-1 Preset_None None
5 Preset_Medium Medium
1 Preset_SuperFast Superfast
2 Preset_VeryFast Very fast
3 Preset_Faster Faster
6 Preset_Slow Slow
8 Preset_VerySlow Very slow

TuneType

Property values for Tune.

Value Name Description
-1 Tune_None None
1 Tune_Animation Animation
0 Tune_Film Film
2 Tune_Grain Grain
3 Tune_StillImage Still image
4 Tune_PSNR PSNR
5 Tune_SSIM SSIM
6 Tune_FastDecode Fast decode
7 Tune_ZeroLatency Zero latency

AdaptiveBFramePlacementType

Property values for AdaptiveBFramePlacement.

Value Name Description
0 AdaptiveBFramePlacement_Disabled Pick B-frames always. This is the same as what the older adaptive placement setting did.
1 AdaptiveBFramePlacement_Fast Fast algorithm, faster, speed slightly increases with higher BFrames setting. When using this mode, you basically always want to use BFrames=16.
2 AdaptiveBFramePlacement_Optimal Optimal algorithm, slower, speed significantly decreases with higher BFrames setting.

BFramePyramidType

Property values for BFramePyramid.

Value Name Description
0 BFramePyramid_None Do not allow B-frames to be used as references.
1 BFramePyramid_Strict Allow one B-frame per minigop to be used as reference; enforces restrictions imposed by the Blu-ray standard.
2 BFramePyramid_Normal Allow numerous B-frames per minigop to be used as references.

AdaptiveQuantizationModeType

Property values for AdaptiveQuantizationMode.

Value Name Description
0 AdaptiveQuantizationMode_None Do not use AQ at all.
1 AdaptiveQuantizationMode_Variance Allow AQ to redistribute bits across the whole video and within frames.
2 AdaptiveQuantizationMode_AutoVariance Auto-variance AQ (experimental) which attempts to adapt strength per-frame.

NalHrdModelType

Property values for NalHrdModel.

Value Name Description
0 NalHrdModel_None Specify no HRD information
1 NalHrdModel_VBR Specify HRD information
2 NalHrdModel_CBR Specify HRD information and pack the bitstream to the bitrate specified by bitrate. Requires bitrate mode ratecontrol.