Steam's new Pyrowave codec uses up to 10 times the bandwidth, and wants gigabit ethernet

Steam's new Pyrowave codec uses up to 10 times the bandwidth, and wants gigabit ethernet

Valve has added an experimental video codec called Pyrowave to Steam Remote Play, and it uses five to 10 times the bandwidth of the streaming codecs Steam uses now. Valve's Remote Play post says you will want your computers "connected directly to your router with at least Gigabit ethernet", and that turning automatic bitrate off lets you set the stream anywhere between 100 Mbit/s and 500 Mbit/s.

The Steam Remote Play session interface

Valve's Remote Play session panel. Pyrowave is off by default and has to be turned on in the advanced client settings. Image: Valve

The codec arrived in the September 21 Steam Client Beta, which describes it as an experimental video codec that "allows high bandwidth, low latency video streaming". It is off until you go and find it.

Pyrowave was built for GPUs, not for compression

Pyrowave is not Valve's own code. It is an open-source codec written by Hans-Kristian Arntzen, the graphics programmer behind VKD3D-Proton, and its repository calls it an intra-only codec implemented in Vulkan compute shaders and built for extremely fast GPU encode.

Every frame is encoded on its own, using a discrete wavelet transform rather than the motion prediction that H.264 and HEVC lean on. Arntzen aims at bitrates of roughly 200 Mbit/s and up, and keeps the coefficient encoding trivial compared with a normal image codec, which is why the bitrate has to be that high. The pay-off he claims is encode and decode in under about 0.1 ms at 1080p and under 0.2 ms at 4K.

Valve says the codec uses the GPU to encode and decode frames "to achieve extremely low end to end latency with a good network". Total latency is still encode plus network plus decode plus display, so the codec only fixes part of it, and Valve points people at the performance graph in Remote Play settings to see where the time goes.

You have to switch it on yourself

Pyrowave sits in Steam's Remote Play advanced client settings, off by default. Steam normally tunes the stream for visual quality, giving every frame a constant size, so the higher your frame rate, the more bandwidth it needs, and a quality slider moves that up and down.

Turning automatic bitrate off unlocks the manual 100 Mbit/s to 500 Mbit/s range. Valve says HDR switches on by itself when the host and the client both support it, while YUV 4:4:4, which encodes colour with more precision, stays off by default because it costs a little more bandwidth and processing time. Valve suggests turning it on if you are streaming your desktop or reading text on a 4K display.

Windows and macOS first, phones later

Pyrowave is in the Steam beta on Windows and macOS. On Linux it needs the experimental SteamRT3 Steam client, which Valve says you enable in System Settings, and Valve describes support in the Steam Link app for mobile devices as coming soon.

Remote Play streams flat PC games from one machine to another PC, a Steam Deck, a TV or a phone, and Valve's post says nothing about VR. That runs on a separate path, and Steam Machine still cannot stream VR games to Steam Frame.

Valve is not promising the codec will be quicker for everyone. "Your particular setup may or may not benefit from the new codec," the Remote Play post says, "but feel free to give it a try and let us know how it works for you."

Leave a Comment

Your email address will not be published. Required fields are marked *