x264 options

x264 custom profile

These x264 options refer to the x264 custom profile settings available in video.NET and are displayed here as they are shown within the program. Using the custom profile option can have a huge effect on your video encode process, whether that be for better or worse, you really need to know what you are doing.

b-adapt:

Set the adaptive B-frame placement decision algorithm. This setting controls how x264 decides between placing a P- or B-frame.
 0 (disabled): Pick B-frames always. This is the same as what the older no-b-adapt setting did.
 1 (fast): 'Fast' algorithm, faster, speed slightly increases with higher --b-frames setting.
 2 (optimal): 'Optimal' algorithm, slower, speed significantly decreases with higher --b-frames setting.

direct:

Set prediction mode for 'direct' motion vectors, spatial or temporal in B-frames.
 none: Direct none wastes bits and is strongly discouraged.
 spatial: Spatial is the default and almost always best option.
 temporal: Similar to above, can be useful too.
 auto: Auto allows x264 to swap between direct motion vectors as it sees fit.

me:

Full-pixel motion estimation method.
 dia (diamond): The simplest search, consisting of starting at the best predictor, checking the motion vectors at one pixel upwards, left, down, right, and picking the best, and repeating the process until it no longer finds any better motion vector.
 hex (hexagon): Consists of a similar strategy, except it uses a range-2 search of 6 surrounding points, thus the name. It is considerably more efficient than dia and hardly any slower, and therefore makes a good choice for general-use encoding.
 umh (uneven multi-hex): Considerably slower than hex, but searches a complex multi-hexagon pattern in order to avoid missing harder-to-find motion vectors. Unlike hex and dia, the merange parameter directly controls umh's search radius, allowing one to increase or decrease the size of the wide search.
 esa (exhaustive): Highly optimized intelligent search of the entire motion search space within merange of the best predictor. It is mathematically equivalent to the bruteforce method of searching every single motion vector in that area, though faster. However, it is still considerably slower than UMH, with not too much benefit, so is not particularly useful for everyday encoding.
 tesa (transformed exhaustive): An algorithm which attempts to approximate the effect of running a Hadamard transform comparison at each motion vector; like exhaustive, but a little bit better and a little bit slower.

subme:

Subpixel Estimation Complexity.
Higher numbers are better. Levels 1-5 simply control the subpixel refinement strength. Level 6 enables RDO for mode decision, and level 8 enables RDO for motion vectors and intra prediction modes. RDO levels are significantly slower than the previous levels. Using a value less than 2 will enable a faster, and lower quality lookahead mode, as well as cause poorer --scenecut decisions to be made, and thus it is not recommended.
 0: fullpel only
 1: QPel SAD 1 iteration
 2: QPel SATD 2 iterations
 3: HPel on MB then QPel
 4: Always QPel
 5: Multi QPel + bi-directional motion estimation
 6: RD on I/P frames
 7: RD on all frames
 8: RD refinement on I/P frames
 9: RD refinement on all frames
 10: QP-RD (requires --trellis=2, --aq-mode > 0)

aq-strength:

Adaptive Quantization Strength.
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.

psy-rd:

Psychovisual Rate Distortion.
The first number is the strength of Psy-RDO to use (requires subme >5 to activate). The second number is the strength of Psy-Trellis (requires trellis to be enabled). Note that Trellis is still considered 'experimental', and almost certainly is a bad thing for at least cartoons.

deblock:

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.

trellis:

Performs Trellis quantization to increase efficiency.
 0 (off): Disabled.
 1 (encode): Enabled only on the final encode of a macroblock.
 2 (always): Enabled on all mode decisions.

analyse:

Mode Decision (partition type).
Mode decision picks from a variety of options to make its decision; fewer partitions to check means faster encoding at the cost of worse decisions.

ref:

Controls the size of the 'Decoded Picture Buffer'.
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.

bframes:

Sets the maximum number of concurrent B-frames that x264 can use.
Without B-frames, a typical x264 stream has frame types like so: IPPPPP...PI. With --bframes 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.

b-pyramid:

Allow the use of B-frames as references for other frames. Without this setting, frames can only reference I- 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.
 none: Do not allow B-frames to be used as references.
 normal: Allow numerous B-frames per minigop to be used as references.
 strict: Allow one B-frame per minigop to be used as reference; enforces restrictions imposed by the Blu-ray standard.

cabac:

Context Adaptive Binary Arithmetic Coder.
Disabling will significantly reduce both the compression efficiency (10-20% typically) and the decoding requirements.

8x8dct:

Adaptive 8x8 DCT enables the intelligent adaptive use of 8x8 transforms in I-frames.

weightp:

Enables use of explicit weighted prediction to improve compression in P-frames. Also improves quality in fades.

no-dct-decimate:

DCT Decimation will drop DCT blocks it deems "unnecessary". This will improve coding efficiency, with a usually negligible loss in quality. Setting this option will disable it.