Log in

View Full Version : x264 stats-output page updated on wikibooks, need a proofreader


pcordes
19th February 2015, 01:32
I made some updates to https://en.wikibooks.org/w/index.php?title=MeGUI/x264_Settings/x264_Stats_Output&stable=0

(That link is to the "draft" version, since I guess my edits are still awaiting review before becoming the official version.)

Can someone with more experience with the actual h.264 standard, and/or the x264 code, have a look over it? Most of what I know about h.264 / x264 is from reading posts here, and x264 --fullhelp, and git commitlogs. (and of course making some encodes myself.) I haven't gotten my hands dirty with the code.

Or just anyone to proofread it for clarity / typos / editting errors would be helpful. I barely read over what I wrote, so I might have missed something.

I might get around to updating the x264 settings page sometime, but I should finish up some other projects first. (It's in dire need of updates, though. It predates presets, mbtree, and probably lots of other stuff.)

pcordes
22nd February 2015, 04:34
I came across something else about how h.264 which makes me think my speculation was wrong about what skip and direct block are.

https://books.google.ca/books?id=j2Av8mAJ6UQC&pg=PA851&lpg=PA851&dq=h.264+reference+l0+l1+picture+list&source=bl&ots=-4bMPqZa5B&sig=uCgzRKTgQzm-f3yYGX0wynvWBuA&hl=en&sa=X&ei=dQrkVOu6C8WqggTcnoKIAQ&ved=0CB8Q6AEwAA#v=onepage&q=h.264%20reference%20l0%20l1%20picture%20list&f=false

(that was a hit on a google search about L0 and L1 reference lists. It appears to be about SVC, but to describe SVC they first have to describe how AVC works. And end up doing it in a readable summary way, rather than a standards-definition.)

Would it be more accurate to say that direct and skip blocks are blocks that use only the predicted motion vector, and with a limited choice of reference frame? (The with/without residual part is clear and straightforward, right? skip is the same as direct but with no residual?)

Anyone have any thoughts on what it actually tells you about your encode if you see more or fewer direct blocks with different settings? That motion search is finding good motion vectors (that predict well for other blocks), rather than finding locally good matches from some random place?


Or any other thoughts about cases when you'd look for anything in the stats output that would inform your decision on what to try next. (whether that's a different x264 setting, downscaling, or filtering?) Obviously you have to look at the output visually, but if you don't like it, it's not always obvious what you could do differently.

The main thing I know of is that if your encode is slow, you can maybe see that you don't need as many consecutive B-frame, or as many reference frames, from the stats output.

foxyshadis
22nd February 2015, 15:14
P-skip means 16x16 predicted from L0 ref 0, no mv or residual. B-skip is essentially the same. B-direct means 8x8 or 16x16 predicted from nearest L0/L1 with residual, no mv. B-direct L0 can be non-zero in some cases, but unless you feel like explaining the spec it's not worth it. P-skip. B-skip, and B-direct spatial use a specific set of nearby blocks for the mv prediction, either one specific or a median, while B-direct temporal uses a weighted average of the mvs of the ref frames it's sandwiched by, based on how far away they are. Direct may or may not actually have a residual, but it's there if the encoder wants to use it.

In all cases, a 16x16 B-direct MB always shares a single set of references, even if it's 8x8 partitioned.

Generally, more direct blocks mostly means squeezing things into a lower bitrate, though it could possibly mean that a video just lines up that well with predictors.