View Full Version : new x264 stats?
bond
9th October 2005, 19:09
since r310 x264 outputs new stats, but i didnt find anywhere a hint which tells for sure what the new values mean:
x264 [info]: mb I I16..4: 20.4% 34.6% 45.0%
x264 [info]: mb P I16..4: 3.9% 9.3% 7.1% P16..4: 30.6% 12.8% 4.8% 1.0% 0.5% skip:30.1%
x264 [info]: mb B I16..4: 0.5% 1.8% 1.3% B16..8: 30.7% 1.7% 2.5% direct: 1.5% skip:60.0%
x264 [info]: 8x8 transform intra:45.7% inter:30.8%
x264 [info]: ref P 77.7% 11.1% 6.0% 2.6% 2.6%
x264 [info]: ref B 83.4% 9.9% 3.6% 1.8% 1.3%
snacky
9th October 2005, 19:22
since r310 x264 outputs new stats, but i didnt find anywhere a hint which tells for sure what the new values mean:
x264 [info]: mb I I16..4: 20.4% 34.6% 45.0%
x264 [info]: mb P I16..4: 3.9% 9.3% 7.1% P16..4: 30.6% 12.8% 4.8% 1.0% 0.5% skip:30.1%
x264 [info]: mb B I16..4: 0.5% 1.8% 1.3% B16..8: 30.7% 1.7% 2.5% direct: 1.5% skip:60.0%
x264 [info]: 8x8 transform intra:45.7% inter:30.8%
x264 [info]: ref P 77.7% 11.1% 6.0% 2.6% 2.6%
x264 [info]: ref B 83.4% 9.9% 3.6% 1.8% 1.3%
The upper rows give a more detailed breakdown of block partition types.
The bottom rows show the percentage of references that were into L0, L1, L2, etc. The stats give you an idea of how mref is being used.
bond
9th October 2005, 19:32
yeah i can imagine that much (and more), i wanted to know more the exact meaning of each value :)
edit: ok here is my guess:
I16..4 is i16x16 i8x8 i4x4
P16..4 is p16x16 p16x8/p8x16 p8x8 p8x4/p4x8 p4x4
B16..8 is b16x16 b16x8/b8x16 b8x8
ref position1 shows the % of all frames that referred to the frame before, position2 shows the % of all frames that referred to the second last frame, position3 to the third last aso...
correct?
virus
9th October 2005, 19:57
The bottom rows show the percentage of references that were into L0, L1, L2, etc.
AFAIK there's only L0 and L1 in H.264 :)
Those are the lists of frames a macroblock can predict from. Usually L0 holds past frames (forward references) and L1 future frames (backwards references), but that's absolutely not mandatory. You can put a frame in one of the 2 lists at your wish. You can even put a frame in both lists. IIRC both L0 and L1 can hold up to 16 frames.
P-frames can only be predicted from a single list (I'm not sure but it may be that you can only use L0), while B-frames can use both lists. Again, that's not mandatory - IIRC you *can* predict from a frame in L0 and one in L1 (bidirectional prediction) but IIRC B-frames also support prediction from a single list, like P-frames.
(hope I didn't mess things too much :D)
That said, the stats show how often a frame has been referenced. I guess the first ones (with higher percentages) are frames closer to the current one. They're used often because signalling their use requires less bits. "Far" references costs more, so they're only used when they allow you a clearly better prediction, that makes you save bits when you encode your macroblock. Those saved bits can compensate for the cost of writing in the bitstream something like "hey, for this block, use frame 12 as predictor".
Or something like that.
For further details, just wait aku's answer :)
akupenguin
9th October 2005, 21:21
Note: all the refs stats are for L0. We don't override the default of L0=past, L1=future, so the only time we have multiple choices in L1 is B-pyramid. I guess I could make a separate line for that.
Ref cost is mostly just a tie-breaker. The main reason that near refs are more common is that they're more likely to resemble the current frame, since less has moved.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.