Question / Help Sharing Experience of x264 (seeking perfection suggestions)

ref=2
filler=0 (allow bitrate to drop when not needed)
direct=temporal (only if there's a lot of camera movement)
trellis=2 (if there's enough CPU power)

threads=lowest possible lookahead_threads=12 rc_lookahead=2xfps (2-pass-at-home)

bframes=16 subme=7 weightp=2 psy-rd=0.6 chroma_qp_offset=2 (minor adjustment)

aq-mode=3 aq-strength=content dependent (lower for shaper edge, higher for clearer texture)
qcomp=content dependent (lower for sharper static part, higher for clearer moving part)

sample video
 
After more experiments, you know what:
psy=0 qcomp=1 mbtree=0

Psy is a hack, and it will always be. When you have enough bitrate, distortion is hard to notice. But when you don't have enough bitrate, it introduces noticeable random noises in the time scale. It really is in essence a encoder-induced film grain, using dithering for information. But same as dithering, never beats the raw information itself. When streaming at high fps or low bitrate, too much noise is more of a menace.

Mbtree, when enabled, makes qcomp an option to adjust its strength. Mbtree is also a hack: when you give more bits to referential blocks at the same time you starve added or newly coded blocks, the later being the key to movement. Again, when you have enough bitrate, nobody is going to notice a drop from q16 to q19. But when you don't, you are redistrubution temporal information to spatial information. Although the stream maybe in 60fps, the effective fps will become lower. The stream will look visually similar to a 45fps stream.

x264 really gives people a lot of rope to hang themselves. I can understand the techinical aspect makes it hard to explain to common people, but when enginners themselves don't give explain what it does or the effects it makes, I start to think they haven't spent enough time to reflect more on what they are really doing, not just building tools for tools' sake.
 
Back
Top