Adaptive 8x8 DCT enables the intelligentadaptive use of 8x8 transforms in I-frames.This disables the feature.
AdaptiveQuantization Mode
Default: 1
Without AQ, x264 tends to underallocatebits to less-detailed sections. AQ isused to better distribute the available bits between all macroblocks in thevideo. This setting changes what scope AQ re-arranges bits in:
0:Do not use AQ at all.
1:Allow AQ to redistribute bits across the whole video and within frames.
2:Auto-variance AQ (experimental) which attempts to adapt strength per-frame.
Default: 1
Set the adaptive B-frame placement decisionalgorithm. This setting controls how x264 decides between placing a P- orB-frame.
0. Disabled. Pick B-frames always. This isthe same as what the older no-b-adapt setting did.
1. 'Fast' algorithm, faster, speed slightlyincreases with higher --b-frames setting. When using this mode, you basicallyalways want to use --bframes 16.
2. 'Optimal' algorithm, slower, speedsignificantly decreases with higher --b-frames setting.
Note: For a multi-pass encode, this optionis only needed for the first pass where frame types are decided.
Default: 3
Sets the maximum number of concurrentB-frames that x264 can use.
Without B-frames, a typical x264 stream hasframe types like so: IPPPPP...PI. With --bframes 2, up to two consecutiveP-frames can be replaced with B-frames, like: IBPBBPBPPPB...PI.
B-frames are similar to P-frames, exceptthey can use motion prediction from futureframes as well. This can lead to significantly better efficiency interms of compression ratio. Theiraverage quality is controlled by --pbratio.
Funfacts:
x264also 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--b-pyramid, 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 notimportant, just 'B' is generally used to refer to all B-frames.
Formore information about the choices x264 makes between P or B frames for eachcandidate frame, see this ffmpeg-devel mail. In this case, frame types willlook like this (in display order) (assuming --bframes 3): IBBBPBBBPBPI.
Default: Not set
Disables CABAC (Context Adaptive BinaryArithmetic Coder) stream compression and falls back to the lessefficient CAVLC (Context Adaptive Variable Length Coder) system.Significantly reduces both the compression efficiency (10-20% typically) andthe decoding requirements.
Default: Not Set
Completely disables the loop filter. NotRecommended.
See Also: --deblock
=============
deblock
Default: 0:0
Controls the loop filter (aka inloopdeblocker), which is part of the H.264 standard. Itis very efficient in terms of encoding time vs. quality gained.
You can find a good description of how theloop filter parameters work in this doom9 thread (see the initial post andakupenguin's replies).
Default: Not Set
Disable macroblock tree ratecontrol. Using macroblock tree ratecontroloverall improves the compression bykeeping track of temporal propagation across frames and weighting accordingly.Requires a new large statsfile in addition to the already existing formultipass encodes.
Recommendation: Default
Default: 'hex'
Set the full-pixel motion estimation method. There are five choices:
dia(diamond) is thesimplest search, consisting of starting at the best predictor, checking themotion vectors at one pixel upwards, left, down, and to the right, picking thebest, and repeating the process until it no longer finds any better motionvector.
hex(hexagon) consists of a similar strategy, except ituses a range-2 search of 6 surrounding points, thus the name. It isconsiderably more efficient than dia and hardly any slower, and therefore makesa good choice for general-use encoding.
umh(uneven multi-hex) is considerably slower than hex,but searches a complex multi-hexagon pattern in order to avoid missingharder-to-find motion vectors. Unlike hex and dia, the merange parameterdirectly controls umh's search radius, allowing one to increase or decrease thesize of the wide search.
esa(exhaustive) is a highly optimized intelligentsearch of the entire motion search space within merange of the best predictor.It is mathematically equivalent to the bruteforce method of searching everysingle motion vector in that area, though faster. However, it is stillconsiderably slower than UMH, with not too much benefit, so is not particularlyuseful for everyday encoding.
tesa(transformed exhaustive) is an algorithm whichattempts to approximate the effect of running a Hadamard transform comparisonat each motion vector; like exhaustive, but a little bit better and a littlebit slower.
Default:Not Set
Mixedrefs will select refs on a per-8x8 partition, rather than per-macroblock basis.This improves quality when using multiple reference frames, albeit at somespeed cost. Setting this option will disable it.
Recommendation:Default
Default:'p8x8,b8x8,i8x8,i4x4'
H.264video is split up into 16x16 macroblocksduring compression. These blocks can be further split up into smallerpartitions, which is what this option controls.
Withthis option, you enable individual partitions. Partitions are enabledper-frametype (i.e., I, P, B). The available partitions are p8x8, p4x4, b8x8,i8x8, and i4x4.
I: i8x8, i4x4
P: p8x8 (also enables p16x8/p8x16), p4x4 (also enablesp8x4/p4x8)
B: b8x8 (also enables b16x8/b8x16)
Youcan also set 'none' or 'all'.
p4x4is generally not very useful and has an extremely high ratio of speed cost toresulting quality gain.
Seealso: --no-8x8dct
Default:40
Sets the number of frames to use for mb-treeratecontrol and vbv-lookahead. The maximum allowedvalue is 250.
Forthe mb-tree portion of this, increasing the frame count generates betterresults but is also slower. The maximum buffer value used by mb-tree is theMIN( rc-lookahead, --keyint )
Forthe vbv-lookahead portion of this, increasing the frame count generates betterstability and accuracy when using vbv. The maximum value used by vbv-lookaheadis:
MIN(rc-lookahead,MAX(--keyint, MAX(--vbv-maxrate, --bitrate) / --vbv-bufsize * --fps))
Default:3
Controlsthe size of the DPB (Decoded PictureBuffer). The range is from 0-16. In short, this value is the number of previous frames each P-framecan use as references. (B-frames can use one or two fewer, depending on ifthey are used as references or not.) The minimum number of refs that can bereferenced is 1.
Alsonote that the H.264 spec limits DPB size for each level. If adhering to Level4.1 specs, the maximum refs for 720p and1080p video are 9 and 4 respectively. You can read more about levels and 4.1 in particular under --level.
Default:40
Setsthe threshold for I/IDR frame placement (read: scene change detection).
x264calculates a metric for every frame to estimate how different it is from theprevious frame. If the value is lower than scenecut, a 'scenecut' is detected.An I-frame is placed if it has been less than --min-keyint frames since thelast IDR-frame, otherwise an IDR-frame is placed. Higher values of scenecutincrease the number of scenecuts detected. For more information on how thescenecut comparison works, see this doom9 thread.
Settingscenecut to 0 is equivalent to setting --no-scenecut.
Recommendation:Default
Default:7
Setthe subpixel estimation complexity.Higher numbers are better. Levels 1-5 simply control the subpixel refinementstrength. Level 6 enables RDO for mode decision, and level 8 enables RDO formotion vectors and intra prediction modes. RDO levels are significantly slowerthan the previous levels.
Usinga value less than 2 will enable a faster, and lower quality lookahead mode, aswell as cause poorer --scenecut decisions to be made, and thus it is notrecommended.
PossibleValues:
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. RDon I/P frames
7. RDon all frames
8. RDrefinement on I/P frames
9. RDrefinement on all frames
10.QP-RD (requires --trellis=2, --aq-mode > 0)
11. Full RD [1][2]
Recommendation:Default, or higher, unless speed is very important.
Default:1
Performs Trellis quantization to increase efficiency.
0.Disabled
1.Enabled only on the final encode of a macroblock
2.Enabled on all mode decisions
OnMacroblock provides a good compromisebetween speed and efficiency. On all decisions reduces speed further.
Recommendation:Default
Default:Not Set
H.264allows you to 'weight' references in B-frames, which allows you to change howmuch each reference affects the predicted picture. This disables that feature.
Recommendation:Default
Default:2
Enablesuse of explicit weighted prediction to improve compression in P-frames. Alsoimproves quality in fades. Higher modes are slower.
NOTE:When encoding for Adobe Flash set this to 1 - its decoder generates artifactsotherwise. Flash 10.1 fixes this bug.
Modes:
0. Disabled.
1. Simple: fade analysis, but no referenceduplication.
2. Smart: fade analysis and referenceduplication.