Compression in VR.

Associate
Joined
26 Nov 2010
Posts
1,362
Location
Thorne Yorkshire
I read a lot of folk talking about compression in VR headset images. I get that it's something undesirable in graphics. Seems that some folk see a poor image and blame it on compression. May be it is. Can anyone explain how to identify the effects of compression? Point me in the direction of any video examples showing clearly what the difference is between high/low/lots/little/no compression? Is compression Codec dependant?

Thank you
 
Very hard to see outside of the headset itself. Even inside it can be game/motion dependant.

Half life alyx for example looks very different to racing in car at 100mph.

Pcvr headsets just look and feel much better imho. They have their own issues though.
Thank you.
Yes. From what I've learned from googling I can't find any difinitive simple answers. (Other than the in depth technical explanations which are beyond me anyway) I think yours is a fair and practical answer. Reason I asked was I just got a Quest 3 for iracing on pcvr to replace my existing HP G2 headset.

I've had a good fiddle with the Oculus debug tool and settings on the Q3 in order to try and get it to be at least as good as the G2. I can't. It comes close but not quite there. I wondered if this compression thingy might be a contributing factor (I'm using an oculus link cable if that makes any diff? Dunno). Just not getting the Q3 to display any better than the G2. The G2 is a dedicated pcvr device I believe. Your answer seems to ring true.

Ah well, I think the Q3 will be going back. Sorry Meta. I tried :). No new toy for me then. ;)
 
In Oculus Debug Tool, set the bitrate to 10. You'll see what compression is clearly then.

Then as you increment it up a bit at a time, you'll see that compression artifacting diminish. For me, it's difficult to notice any improvement above 200-300.

But there was a video recently suggesting trying 940, which I'm going to try myself soon. I've never taken it that high.
That's a good idea to drop the bitrate very low just to see what it does. Saw those vids on youtube about bumping it up. I tried 700 then 800. Didn't go any higher. I think my 3080 ti might be a bit underpowered to cope with that.
Oh, to heck with it. I'm going to give it a go. One last chance Mr Zuckerberg. I'm warning ya. This is yer last chance :)
You can use your GPU to up the bitrate more and more so that compression artefacts become less and less evident. I personally find my GPU (4090) has more than enough work just keeping frame rate >= 90 some games. I’ll be getting a Quest 3 but will most likely keep my G2 still for PCVR games such as sims.
I only do sim racing in VR. I'm sure the Q3 is great for other stuff the G2 can not do though. I'll only be keeping the Q3 if it can outdo or at least equal the G2 in pcvr. I'm really sceptical at the moment though.


Edit: I just tried bitrate at 940. Not great. No contest for iracing with my 3080 ti. between the Q3 and the G2. Concluded the G2 wins for my purposes. Having said that folks with better gpu and cpu may get nicer results.
 
Last edited:
Have you sent it back yet? If not, would you be willing to try some other things?

The 3080Ti should be plenty powerful to get good results.

Would you mind telling me what resolution you are using in the Oculus App? And exactly what settings you have changed in the Debug tool and what you have changed them to?
No I haven't sent back yet. I'd really like to keep it if I thought id get better visuals. . I'd be delighted to try other things. I'm all ears . Tried it at 1.0 and full resolution (1.3?) In the oculus app.
At work right now but when I get home this evening I'm up for a twiddle. Thank-you.
 
The classic place to see compression is in dark scenes with 8-bit encoding. You get blocky edges between one intensity of black/grey and the next one up. This happens because there are only 255 discrete levels of your 3 colours, and the encoder is playing tricks to try and make 8-bit colour space look really good in "nominal conditions",.

You can also get blocky textures, where the texture resolution looks to be lower in places. This is simply because the full texture cannot be encoded into the datastream with the selected bitrate, so you get something that looks like a texture where regions have been averaged in blocks. There are a bunch of other impacts, but for me the textures stand out.

Both issues are greatly improved with Quest 3 and recent Virtual Desktop updates: 10-bit HEVC encoding gives you 1024 discrete levels for your colours, and so makes those dark scenes less blocky. The quest 3 also has ~25% higher decoding capability, meaning you can push higher bit-rates without the latency running wild.

One final note is that the Quest 3 also includes AV1 (10-bit) decoding capability. AV1 has higher quality for the same bitrate as HEVC, so you can further reduce the aforementioned texture quality issues if you have a GPU that supports: NV 4000 series, and potentially AMD 7000 but that's TBC.

AV1 isn't always a golden bullet. Each format has strengths and weaknesses, and people subjectively prefer the quirks of some formats over others. Anecdotally at the limits of the quest 3 hardware, H264 @~400Mbps is better for racing & fast shooters than AV1/HEVC @ 200Mbps. For 99% of people though, newer codecs like AV1 and HEVC should be used always.

EDIT: One annoying thing about the Meta Air Link is the lack of configurability. I gather there are applications to get into the back-end and play with the selected encoder and bitrates. Honestly though, if you're doing wireless streaming Virtual Desktop is worth £15. It sucks, you shouldn't have to buy it, but it is objectively better in all ways, e.g. it actually allows you to use AV1.
Thank you for that explanation oh_no_not_again.

That was very helpful. Nicely written and described. Thank you for taking the time to do that. I'm going to have a twiddle with the settings later tonight. I'm using the hard wired Oculus link usb cable. VD sounds very good but presumably the USB lead I'm using is better than wireless?

I will be interested and hoping to see if melmac (if he has time) might come up with some helpful suggestions to see if the visuals can be improved over my amateur tinkering attempts.
@melmac, am I right in thinking you might offer some suggestions?

Difficult to describe what I am seeing. In iracing (that's the only thing I use VR for) the edges of the track, walls and objects shimmer noticably compared to the G2 when I'm racing around the track. Could be "blockiness"/compression over usb?. But the effect I see is "shimmer". The G2 I have been using also shows this effect but to a far, far smaller extent. As said above by TheOracle, perhaps the Q3 is not best suited to racing games. Horses for courses and all that.

But to listento one or two of the youtube guys describing it..... well, to listen to one or two these guys the picture on their Q3 is almost perfect. Sliced bread and all that. Tried those settings they suggested. Didn't work for me.

Only got myself the Q3 to see if it might be better than the G2. I wouldn't have bothered with the Q3 if I had't got that 20% discount from the site mentioned in the Quest 3 owners thread here.
Isn't the end of the world if the Q3 doesn't tank the G2. It's a toy and I'm a 63 year old kid :). I'm not going to throw my teddy out the pram :)
But it's £380 I could use elswhere if I can't make the Q3 pull its socks up.
 
Last edited:
In the Oculus App, in the resolution slider, make sure it's all the way over to the right. Max it out. For the moment set the Refresh rate to 80hz. Can make changes here later, for the moment just use these values. Restart the Oculus app. And close it again.

Now open up the debug tool. Lets try the following. Set the Encode resolution width to 4128. Change the bitrate to 500 and set link sharpening to Quality. Set the Codec to H.264 as well. Just to make doubly certain it doesn't automatically pick H.265 by mistake.

Make those changes and restart the Oculus Service.

I presume the games you are playing are on Steam? I am also presuming that in the Steam VR settings, the resolution per eye is set to 100%?

If that's all ok. Run a test on a game and see how you get on.

Carried out those steps correctly, I think. Iracing is better visually. Was some noticable shimmering in this test until I dropped the graphics settings down from within the iracing app which reduced the shimmer effect inside the Iracing app. Looking much nicer Thank you.

Dynamic bitrate set to 500. Encode bitrate is set to zero. Does Encode bitrate seem right? (i believe ZERO sets things to Oculus default in debug tool)
 
Last edited:
Well, there are things to try. You could try lowering the resolution in the Oculus app by one. i.e moving it from 1.5 to 1.4 or whatever it is for you. I set the refresh rate to 80 because there are some reports of 90 causing problems. You could try 90 to see if that works better for you.

There are some other things to try in the debug tool. You might prefer the look of HEVC. However, even if it's better visually, it might not be worth the trade off latency wise. But it's worth trying.

So the first thing I would try is putting the bitrate up to 700 and then 800 and see if you notice a difference. It won't let you just put in 700 or 800 you will have to copy and paste.

Then I would try HEVC. That's change the Codec to HEVC in the debug tool and set the bitrate to 200.

See which you prefer.
Thank you so much melmac. You're a star. I'll give things things a try and see what happens. Obvs it's going to take some time to try them out. I'll post back with updates and findings.

Looking better already.

Many many thanks
 
Feedback time on my quest for Quest 3 visuals in iracing:

A big thank you @melmac. I had a play with the settings you suggested. Thank you for that. And for correcting my obvious glaring errors :)

Today, after much tears, tantrums on my part and mumbled threats to send the bloody thing back, I got very good visuals with it. To my surprise and delight they actually pip the G2 visuals.

I've finally learned a little bit about the debug tool. Nice sharp picture. No stuttering and had a bit of fun sim racing.
That "shimmering" I was referring to earlier was in fact (I discovered after some googling around) to do with aliasing. Jagged/shimmering lines. In iracing I set the AA on. That seemed to help a lot.

I'm not finished yet. Whilst is is now very acceptable and enjoyable I'm going to try and improve on it a bit more by tinkering. Half the fun's the tinkering;).

It was going to be returned before melmac offered to lend a hand and convinced me to persevere. Thank you melmac.
 
Last edited:
2xAA and FXAA in iRacing should give you a good picture without killing your GPU. You still get those shimmering lines now and again, but they are really toned down.

Don't forget to enable HDR, even though the headset doesn't support it, it enables you to tweak the brightness, contrast and gamma.

oh, and also tick sharpening if you haven't already. Probably makes the biggest difference in clarity.
Ill give them a go. Thank you.
 
Well, I did a bit more tinkering..... and made it worse. Lol. :) Made things a bit "grainy". Is this what compression is, I wonder? Wish I'd written down the settings I used this afternoon. ne'er mind it's not too bad at all. Quite playable. I'll have another tinker tomorrow. I'm on annual leave. Time to play with my toys.

@TheOracle, I've used similar in game settings to the ones you posted above. Admittedly quite a few of mine were on lower detail prior to seeing yours. So I upped them to see what happened with my 3080 ti. Surprisingly the gameplay was still quite smooth. I've just made it a wee bit poorer/grainier than it was earlier today.

@melmac, so far I think 700 Bitrate, 72fps and 1.3 res seems ok from what I find. It's not been a scientific experiment though. Just whacked in a couple of changes and see what happens. (I didn't have the patience to do one change, restart, test and repeat. I know, I know I should known better than to change two things at a time).

All in all I think ithe Quest 3 has been worth it for the money it cost me. £96 discount from the Berry site, ten quid from Topchashback and a bit of cash recouped from selling my Q2. Net payout £230. Can't complain. :). On the other hand, now I'm seriously toying with the idea of splashing out on a 5800x3d to replace my 5600x. No way am I going to get a 4090 though. That rabbit hole is calling me but not loudly enough to drop a grand and a half on another gpu.

What is it they say? The difference between a man and a boy is the price of his toys :).
 
Last edited:
Did you try setting it to 10 as I suggested? It will show you what compression is very clearly, then just change it back and see the effect vanish in front of your eyes. You can do this live in the Oculus link construct viewing your desktop in the headset, don't even need to be in a game to see the effect.
Hi danlightbulb,
It's been a while since I fiddled with the settings in debug tool. I think generally I'm over trying to reach nirvana with current vr tech. Anyhow, I gave it a go this morning. Set the encode bitrate to 10. Maybe my eyesight is not that great or I'm doing something very wrong here but I couldn't see much difference :) Picture was just as good with it set to 500 . (I reset debug tool after each change)

I'll give it another this evening.
 
Last edited:
Back
Top Bottom