Log in

View Full Version : New B-pyramid testing thread


Dark Shikari
13th February 2010, 07:06
There were all sorts of conflicting results on B-pyramid before we made it spec compliant. Now that it is, I'd like to know if there are any devices that have problems with it.

How to test:

1) Create a video with --b-adapt 2 --b-pyramid normal and a video with --b-adapt 2 --b-pyramid none.
2) Does one work and the other not?
3) Report yes or no.
4) Make sure to otherwise use device-compatible settings.

Results so far:

DVXA on ATI: Works
DVXA on nVidia: Works
Popcorn Hour: Works
PS3: Works
Xbox 360: Works
WDTV: Works
Archos 5: Works
VDPAU: Works
iPhone 3GS: Works
PSP: Doesn't work

Things we still need tested:

Any other mobiles/standalones?
VAAPI?

Also, ideally, the tests should be done with the highest possible --ref value that works with the device. For example, for L4.1, that means 1080p@4 refs for example.

If there are no problems, I will make b-pyramid default.

MuLTiTaSK
13th February 2010, 08:31
x264 r1416 with proper device compatible settings

dxva (nvidia gpu) = yes (both work)
nmt popcorn hour = yes (both work)
ps3 = yes (both work)

:thanks:

Atavarius
13th February 2010, 09:24
Tried a couple 1500 frame 1080p vids I keep around for testing.

With max device settings both options worked on the PS3, Xbox360, and Ipod Touch.

Also tested on my Sprint Palm Pre mobile and both worked fine.

Dark Shikari
13th February 2010, 09:55
Tried a couple 1500 frame 1080p vids I keep around for testing.

With max device settings both options worked on the PS3, Xbox360, and Ipod Touch.

Also tested on my Sprint Palm Pre mobile and both worked fine.Do remember that b-pyramid does nothing in Baseline Profile (since there's no B-frames). Not sure which of those mobiles support more than Baseline...

Atavarius
13th February 2010, 10:03
Ah didn't even realize. I am 90% sure the Pre only does baseline, but I will run some with other profiles tomorrow and see.

Audionut
13th February 2010, 10:10
Works on a nokia with Symbian S60 3rd Edition OS and latest coreplayer mobile.

edit: inbuilt player won't play files with bframes.

RainyDog
13th February 2010, 10:43
Western Digital TV (first iteration, not the latest WDTV2 Live) which uses the Sigma 8635.

Tested with b-adapt 2, b-pyramid normal and 3 or 16 b-frames at 1280x720, works perfectly. Same with b-pyramid none.

Chikuzen
13th February 2010, 13:06
PSP3000 (system software ver6.20)

x264.nl_r1416(32bit) --profile main --b-adapt 2
b-pyramid normal: No
b-pyramid none : Yes
b-pyramid none --ref 4 : No

kemuri-_9
13th February 2010, 13:34
1) Create a video with --b-adapt 2 --b-pyramid normal and a video with --b-adapt 2 --b-pyramid none.

why are you excluding --b-pyramid strict?
could there not be a device that supports strict but not normal?

Chengbin
13th February 2010, 13:37
Archos 5 works

Dark Shikari
13th February 2010, 18:30
why are you excluding --b-pyramid strict?
could there not be a device that supports strict but not normal?Probably not. We'll only consider it if normal doesn't work.

Lyle_JP
13th February 2010, 20:52
Should we test with or without MB Tree?

b66pak
13th February 2010, 21:10
@Chikuzen could you test --b-pyramid strict for PSP?
_

Rumbah
13th February 2010, 21:45
PSP2000 5.00

b-pyramid
none: Yes
strict: No
normal: No

The PSP just rejects the b-pyramid videos with an error message that the video cannot be played.

If the log is any help:

none:
[NoImage] Standard error stream
-[NoImage] yuv [info]: 480x272p 1:1 @ 10000000/417083 fps (cfr)
-[NoImage] x264 [info]: using SAR=1/1
-[NoImage] x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
-[NoImage] x264 [info]: profile Main, level 3.0
-[NoImage]
-[NoImage] x264 [info]: frame I:9 Avg QP:21.76 size: 8376
-[NoImage] x264 [info]: frame P:833 Avg QP:27.61 size: 2145
-[NoImage] x264 [info]: frame B:1237 Avg QP:29.80 size: 1137
-[NoImage] x264 [info]: consecutive B-frames: 10.0% 26.1% 29.3% 19.5% 7.2% 3.2% 3.0% 0.8% 0.4% 0.5% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%
-[NoImage] x264 [info]: mb I I16..4: 68.0% 0.0% 32.0%
-[NoImage] x264 [info]: mb P I16..4: 8.3% 0.0% 2.1% P16..4: 29.7% 8.8% 3.4% 0.6% 0.3% skip:46.7%
-[NoImage] x264 [info]: mb B I16..4: 2.7% 0.0% 0.4% B16..8: 26.3% 2.0% 3.7% direct: 7.7% skip:57.2% L0:45.0% L1:46.4% BI: 8.6%
-[NoImage] x264 [info]: direct mvs spatial:95.7% temporal:4.3%
-[NoImage] x264 [info]: coded y,uvDC,uvAC intra: 11.7% 17.3% 11.6% inter: 10.1% 16.4% 5.3%
-[NoImage] x264 [info]: i16 v,h,dc,p: 67% 22% 3% 8%
-[NoImage] x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 5% 51% 6% 6% 5% 6% 5% 7%
-[NoImage] x264 [info]: Weighted P-Frames: Y:24.0%
-[NoImage] x264 [info]: ref P L0: 49.5% 25.8% 9.3% 13.7% 1.6%
-[NoImage] x264 [info]: ref B L0: 75.2% 24.8%
-[NoImage] x264 [info]: kb/s:301.57
-[NoImage] encoded 2079 frames, 17.62 fps, 301.57 kb/s
strict:
[NoImage] Standard error stream
-[NoImage] yuv [info]: 480x272p 1:1 @ 10000000/417083 fps (cfr)
-[NoImage] x264 [info]: using SAR=1/1
-[NoImage] x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
-[NoImage] x264 [info]: profile Main, level 3.0
-[NoImage]
-[NoImage] x264 [info]: frame I:9 Avg QP:21.52 size: 8314
-[NoImage] x264 [info]: frame P:575 Avg QP:27.38 size: 2362
-[NoImage] x264 [info]: frame B:1495 Avg QP:29.58 size: 1197
-[NoImage] x264 [info]: consecutive B-frames: 8.1% 3.5% 7.0% 23.4% 22.7% 18.3% 7.4% 5.8% 1.7% 0.5% 1.1% 0.6% 0.0% 0.0% 0.0% 0.0% 0.0%
-[NoImage] x264 [info]: mb I I16..4: 67.8% 0.0% 32.2%
-[NoImage] x264 [info]: mb P I16..4: 8.6% 0.0% 3.1% P16..4: 26.7% 8.6% 3.2% 0.6% 0.3% skip:48.8%
-[NoImage] x264 [info]: mb B I16..4: 3.1% 0.0% 0.5% B16..8: 26.2% 2.0% 3.8% direct: 8.0% skip:56.2% L0:43.9% L1:47.3% BI: 8.8%
-[NoImage] x264 [info]: direct mvs spatial:99.7% temporal:0.3%
-[NoImage] x264 [info]: coded y,uvDC,uvAC intra: 12.9% 20.1% 13.5% inter: 10.4% 16.6% 5.0%
-[NoImage] x264 [info]: i16 v,h,dc,p: 62% 24% 3% 11%
-[NoImage] x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 5% 52% 5% 6% 5% 6% 5% 6%
-[NoImage] x264 [info]: Weighted P-Frames: Y:20.2%
-[NoImage] x264 [info]: ref P L0: 56.5% 30.7% 10.7% 1.7% 0.5%
-[NoImage] x264 [info]: ref B L0: 85.6% 14.4%
-[NoImage] x264 [info]: ref B L1: 90.4% 9.6%
-[NoImage] x264 [info]: kb/s:297.35
-[NoImage] encoded 2079 frames, 19.25 fps, 297.35 kb/s
normal:
[NoImage] Standard error stream
-[NoImage] yuv [info]: 480x272p 1:1 @ 10000000/417083 fps (cfr)
-[NoImage] x264 [info]: using SAR=1/1
-[NoImage] x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
-[NoImage] x264 [info]: profile Main, level 3.0
-[NoImage]
-[NoImage] x264 [info]: frame I:9 Avg QP:21.52 size: 8314
-[NoImage] x264 [info]: frame P:575 Avg QP:27.46 size: 2342
-[NoImage] x264 [info]: frame B:1495 Avg QP:29.63 size: 1191
-[NoImage] x264 [info]: consecutive B-frames: 8.1% 3.5% 7.0% 23.4% 22.7% 18.3% 7.4% 5.8% 1.7% 0.5% 1.1% 0.6% 0.0% 0.0% 0.0% 0.0% 0.0%
-[NoImage] x264 [info]: mb I I16..4: 67.8% 0.0% 32.2%
-[NoImage] x264 [info]: mb P I16..4: 8.1% 0.0% 2.5% P16..4: 27.7% 8.8% 3.1% 0.6% 0.3% skip:49.0%
-[NoImage] x264 [info]: mb B I16..4: 2.5% 0.0% 0.6% B16..8: 26.8% 2.0% 3.8% direct: 7.9% skip:56.5% L0:44.9% L1:46.6% BI: 8.5%
-[NoImage] x264 [info]: direct mvs spatial:99.7% temporal:0.3%
-[NoImage] x264 [info]: coded y,uvDC,uvAC intra: 14.1% 21.5% 14.8% inter: 10.2% 16.2% 5.0%
-[NoImage] x264 [info]: i16 v,h,dc,p: 62% 24% 4% 11%
-[NoImage] x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 10% 6% 49% 6% 7% 5% 6% 5% 7%
-[NoImage] x264 [info]: Weighted P-Frames: Y:20.2%
-[NoImage] x264 [info]: ref P L0: 47.8% 26.4% 9.1% 14.8% 1.9%
-[NoImage] x264 [info]: ref B L0: 81.0% 15.1% 3.9%
-[NoImage] x264 [info]: ref B L1: 90.2% 9.8%
-[NoImage] x264 [info]: kb/s:295.38
-[NoImage] encoded 2079 frames, 19.43 fps, 295.38 kb/s

Underground78
13th February 2010, 22:34
- DVXA (ATI GPU) : both work
- Freebox (Set-top box of the French ISP Free) (Sigma SMP8630 chip) : both work

Dark Shikari
13th February 2010, 23:12
I thought the PSP didn't work with weightp or ref > 3?

Rumbah
13th February 2010, 23:55
I used -ref 3 in the examples above, I didn't notice any weightp glitches. But perhaps the material wasn't that good to see something (superbad intro).

edit: The last month I always encoded with weightp for my psp and never had a problem.

edit2: my command line: --profile main --level 3 --preset veryslow --tune film --thread-input --bframes 16 --ref 3 --rc-lookahead 250 --partitions p8x8,b8x8,i4x4,p4x4 --no-8x8dct --sar 1:1 --aud

Assassinator
14th February 2010, 11:39
PSP...
b-pyramid = no.

Though that may not be because it doesn't support b-pyramid, but rather it doesn't support more than 3 ref frames. If anyone knows of a set of options to get b-pyramid while at the same time keeping ref frame count 3 or less, please tell me and I can try it (whatever settings I've tried already, MediaInfo always tells me 4 or more).


I used -ref 3 in the examples above, I didn't notice any weightp glitches. But perhaps the material wasn't that good to see something (superbad intro).

edit: The last month I always encoded with weightp for my psp and never had a problem.

edit2: my command line: --profile main --level 3 --preset veryslow --tune film --thread-input --bframes 16 --ref 3 --rc-lookahead 250 --partitions p8x8,b8x8,i4x4,p4x4 --no-8x8dct --sar 1:1 --aud

The PSP, very rarely, does glitch up when using weightp.

http://doom10.org/index.php?topic=74.msg629#msg629


....Also, --aud is not needed for PSP.

Rumbah
14th February 2010, 17:23
....Also, --aud is not needed for PSP.
I know, I just clicked a normal profile to PSP settings in Megui and it sets --aud by default.

Dark Shikari
14th February 2010, 19:39
PSP...
b-pyramid = no.

Though that may not be because it doesn't support b-pyramid, but rather it doesn't support more than 3 ref frames. If anyone knows of a set of options to get b-pyramid while at the same time keeping ref frame count 3 or less, please tell me and I can try it (whatever settings I've tried already, MediaInfo always tells me 4 or more).That actually could be it. Pyramid requires num_ref_frames=4, even if internally x264 doesn't use that many.

Assassinator
14th February 2010, 23:12
That actually could be it. Pyramid requires num_ref_frames=4, even if internally x264 doesn't use that many.

I should've mentioned the details.... the PSP doesn't even attempt to play it, simply errors out with "the video cannot be played". So imo that's almost definitely the case.

The old b-pyramid back then did actually play, but not properly.

skottish
14th February 2010, 23:53
Both work with VDPAU. Note: Only tested with L4.0.

Esurnir
15th February 2010, 00:31
Anyone got a clue of what's the iphone max level ?

Dark Shikari
15th February 2010, 00:32
Anyone got a clue of what's the iphone max level ?iPhone 3GS should be able to play High up to at least 3.1. I've had some reports of up to 4.1 with easier encoding settings (e.g. no CABAC).

Esurnir
15th February 2010, 02:18
C:\Users\Esurnir\Documents\x264binaries>x264 --tune animation --preset slow --b-adapt 2 --b-pyramid normal --crf 20 --profile high -r 4 --level 3 -o totoro-bpyramid.mp4 totoro.avs
avs [info]: 640x336p 0:0 @ 24000/1001 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: profile High, level 3.0
x264 [info]: consecutive B-frames: 1.1% 4.6% 11.2% 33.5% 24.2% 25.4%
x264 [info]: Weighted P-Frames: Y:17.6%
x264 [info]: ref P L0: 48.2% 25.9% 12.2% 9.1% 4.0% 0.6%
x264 [info]: ref B L0: 81.4% 14.1% 4.6%
x264 [info]: ref B L1: 93.6% 6.4%
this vid worked. does it sound good to you ? (level 3.1 wouldn't be transfered by itunes, -r 16 wouldn't be "played", I didn't found yet what ref work on the iphone).

Want me to try to find out which ref work (and if b-pyramid work on it?)

jethro
15th February 2010, 02:46
(level 3.1 wouldn't be transfered by itunes,...).
Try SharePod then

Dark Shikari
15th February 2010, 03:04
Yes, you have to bypass iTunes for a lot of stuff (high res iPhone videos mainly). Sounds like it works though.

Esurnir
16th February 2010, 04:15
If I don't suck at calc.exe I assumed that a 640*416 L3 can only have 7 ref frame, I tried with that and both bpyramid and nobpyramid worked.

Dark Shikari
23rd February 2010, 11:13
As of the latest revision, b-pyramid is on by default.

PSP users, be warned. Everyone else, be happy.

roozhou
23rd February 2010, 11:32
As of the latest revision, b-pyramid is on by default.

PSP users, be warned. Everyone else, be happy.
Would you turn off b-pyramid and weightp by default for main profile to make PSP happy?

me7
23rd February 2010, 14:03
Would you turn off b-pyramid and weightp by default for main profile to make PSP happy?

Why, it's part of the main profile spec?

rack04
23rd February 2010, 14:13
Now that b-pyramid normal is default will b-pyramid strict over write b-pyramid normal?

J_Darnley
23rd February 2010, 15:20
Of course! If it didn't nobody could ever use anything but the defaults.

roozhou
23rd February 2010, 17:01
Why, it's part of the main profile spec?
Yes, but we don't have to turn every feature within main profile on by default. IMO the default settings should give the best compatibility.

me7
23rd February 2010, 19:37
Yes, but we don't have to turn every feature within main profile on by default. IMO the default settings should give the best compatibility.

Since it seems to be supported by pretty much everything apart from PSP (even iPods, and Apple is known to care little about standards) I'd say that turning it on gives very good compatibility.

The default settings should give the best compromise between quality and compatiblility for the average user, which these features do.

Dark Shikari
23rd February 2010, 19:48
Yes, but we don't have to turn every feature within main profile on by default. IMO the default settings should give the best compatibility.Main profile? The default is High.

roozhou
24th February 2010, 02:53
Main profile? The default is High.
I mean the default setting for "--profile main".

@me7
There are a great number of PSP users and we should not ignore them. Compatibility is more important than 1% bitrate saved.

Dark Shikari
24th February 2010, 03:08
I mean the default setting for "--profile main".

@me7
There are a great number of PSP users and we should not ignore them. Compatibility is more important than 1% bitrate saved.B-pyramid + weightp save quite a bit more than 1%. x264 enables the best options by default, and if one of dozens of hardware devices doesn't like it, we are not going to cripple the settings to be favorable to that one, because you can just turn it off anyways.

roozhou
24th February 2010, 04:32
because you can just turn it off anyways.

And vice versa, you can just turn it on anyways.

kemuri-_9
24th February 2010, 04:59
And vice versa, you can just turn it on anyways.

your logic is also saying 'we should use baseline profile because not all hardware can support b-frames or cabac', and that's truly illogical.

in all honesty, this argument is rather pointless though.
--device will come in due time and solve the problem.

Disabled
24th February 2010, 05:03
Do you know the percentage of PSP owners? And the moment they try to play a file on it, they realize they used wrong settings. If you randomly disable stuff for every limited device, unexperienced users will encode and wonder why x264 sucks, but they don't know what to do. Having said that, there was a device switch proposed, so you only would need to write --device psp and all restrictions will be applied. It might take some time to get it into the main builds though. (I don't know the status.)
*edit* what kemuri said...

Assassinator
24th February 2010, 05:48
And the moment they try to play a file on it, they realize they used wrong settings.

In addition, consider that 98%+ of people doing such encodes (converting to play on PSP) probably don't use x264 directly and instead do it through some sort of front-end (eg. MeGUI, XviD4PSP), using some sort of PSP profile.

So even if not all the end users know how/why to disable pyramid, the author of the PSP profiles for said front-ends most likely do know. As for the remaining small percentage of users who do use x264 directly, they're probably interested and knowledgeable enough in this kind of stuff to be able to find out themselves (otherwise they should really be using a front-end instead).

roozhou
24th February 2010, 08:08
--device will come in due time and solve the problem.
That sounds great. Can I use multiple device options like "--device PSP,iPhone" so the encoder will make sure the video will play on both PSP and iPhone?

@Disabled
Disabling b-pyramid and weightp will not make x264 suck. They are far less visible than subme 1 vs subme 7. I know that x264 devels are willing to turn new algorithms and features on by default just to parade their effort, but I will choose to sacrifice 5% bitrate for compatibility on one more device.

sneaker_ger
24th February 2010, 08:11
That sounds great. Can I use multiple device options like "--device PSP,iPhone" so the encoder will make sure the video will play on both PSP and iPhone?

Yes, will be possible.

Dark Shikari
24th February 2010, 08:17
That sounds great. Can I use multiple device options like "--device PSP,iPhone" so the encoder will make sure the video will play on both PSP and iPhone?Actually that particular case will be hard, as non-3GS iPhone doesn't do CABAC, and PSP, last I heard, doesn't do CAVLC.

But other than that, yes, it'll work that way.

roozhou
24th February 2010, 10:51
as non-3GS iPhone doesn't do CABAC, and PSP, last I heard, doesn't do CAVLC.

If x264 failed to find a setting that meets limitation of every device, it should post an error and exit.

Dark Shikari
24th February 2010, 10:54
If x264 failed to find a setting that meets limitation of every device, it should post an error and exit.That's what it's going to do.

b66pak
24th February 2010, 18:05
Actually that particular case will be hard, as non-3GS iPhone doesn't do CABAC, and PSP, last I heard, doesn't do CAVLC.

actually PSP can play CAVLC baseline profile up to level 2.1 but only 480x272 or 480x270 and SAR 1:1...so if you want your clip on both psp and iphone don't go over it...
_

chainring
28th February 2010, 21:14
I know this thread is about b-pyramid, but since the topic is centering around the PSP, I thought I'd mention it also barfs on 8x8 DCT, or at least is used to.

Summary for PSP:
No b-pyramid
No 8x8 DCT
less than or equal to 3 reference frames.