Log in

View Full Version : Quality encodes with low CPU playback usage


MarkZ
2nd March 2011, 19:45
I've been experimenting with some settings in the hope that I can find a good compromise between quality, file size, and decoding CPU usage. Ultimately, I want the encodes to be compatible with the original xbox.

I can get it to work at full res (720x480) if I turn off deblocking and cabac, and use a vbv buffer:rate setting of 1500:2500. Problem solved.

I'd like to get my file sizes down a little bit (perhaps by implementing CABAC), but no matter what setting combination I use, it seems the only way I can do this is by decreasing bitrate, which I don't want to do because it leads to obvious decreases in quality. At present, my mean bitrates are hovering around 1400. When I flip on CABAC, I drop frames.

Question:
Are there any obvious CPU *playback* optimizations I'm overlooking? Yes, I know, decreasing res could solve it too, but I don't want that either.

The relevant settings look like this:
CRF=21-23.5 (depending on the source, etc)
b-frames = 3 (increasing this didn't seem to have much effect on file size)
adaptive b-frames = 2
ref frames = 8 (reducing this didn't seem to reduce CPU decoding)
Max/Min GOP = 250/25 (not sure what this would do)
qcomp=0.5 (I like a lower qcomp value for vbv-limited encodes when trying to reduce file size)
rc-lookahead=100
mb-tree=1
VAQ=1
me=umh, range=24 (changing range didn't do much, neither did switching to esa, surprisingly)
subme=9 (would this have an effect on cpu playback?)
trellis=1

LoRd_MuldeR
2nd March 2011, 19:49
Are there any obvious CPU *playback* optimizations I'm overlooking?

Try "--tune fastdecode" (which is equivalent to "--no-cabac" + "--no-deblock" + "--no-weightb" + "--weightp 0") or some subset of it ;)

MarkZ
2nd March 2011, 22:53
Hmmm...just tried bypassing weighted b-frames and smart p frame and, while that helped reduce CPU load, it still wasn't enough for me to be able to enable CABAC. Not sure that I'd prefer CABAC over those options anyway. Thanks, though.

AnonCrow
2nd March 2011, 23:58
Yes, I know, decreasing res could solve it too, but I don't want that either.
I'd reconsider decreasing only the horizontal or only the vertical res

Blue_MiSfit
3rd March 2011, 02:35
The Xbox is woefully underpowered for this task, especially with CABAC.

Your best bet for the Xbox is to use MPEG-4 ASP, in my opinion. That, or just buy a little $100 media streamer that can handle H.264 at full HP@L4.1 without issues ;)

Derek

MarkZ
3rd March 2011, 03:48
What benefit is there to MPEG-4 ASP over h.264 with CABAC/deblocking disabled? My understanding is that h.264 is still the better option (yes, I know "better" probably isn't the best word here...) as it has many other features that MPEG-4 ASP lacks. Am I wrong?

upyzl
3rd March 2011, 12:47
maybe you can use GraphStudio (http://blog.monogram.sk/janos/tools/monogram-graphstudio/) to see different parameters' effect

http://i.imgur.com/0nI4R.png