Die Firma Valve hat die Integration des Videocodecs Pyrowave in die Beta-Version des Steam-Clients bekannt gegeben. Dieser Codec ist für das Streaming von Videos mit niedriger Latenz über Hochgeschwindigkeitsnetzwerke optimiert. Der Codec wird als Option im Steam Remote Play-Dienst hinzugefügt, der es ermöglicht, den Gameplay-Stream oder die Ausgabe auf das eigene System zu streamen, während man auf anderen Geräten spielt. In der Linux-Version von Steam wird der Codec verfügbar, wenn die Einstellungen für den SteamRT3-Modus aktiviert sind. Die Implementierung des Codecs ist in C++ geschrieben und unter der MPL-Lizenz erhältlich.
Der Codec unterstützt nur die separate Codierung jedes Frames (intra-only), unabhängig von benachbarten Frames (alle Frames sind Schlüsselbilder, inter-frame Kompression wird nicht verwendet). Dieser Ansatz ermöglicht eine sehr hohe Bildübertragungsgenauigkeit und verhindert das Auftreten von Artefakten bei Bewegung und abruptem Hintergründenwechsel. Bei der Kodierung von Bildern wird eine diskrete Wavelet-Transformation mit dem CDF 9/7-Filter angewandt, ähnlich dem JPEG2000-Format, sowie triviale Entropie-Codierung, die eine effiziente Parallelisierung der Berechnungen erlaubt.
Der Codec ist sehr anspruchsvoll an die Bandbreite der Kommunikationsverbindung - im Vergleich zu anderen Streaming-Codecs erfordert Pyrowave 5-10 Mal mehr Datenübertragung. Es wird empfohlen, den Codec für das Streaming und den Zugriff auf Spiele in lokalen Netzwerken mit Gigabit-Ethernet-Anschlüssen zu verwenden. Standardmäßig wird die Bitrate automatisch in Abhängigkeit vom Inhalt ausgewählt, jedoch gibt es bei begrenzter Bandbreite Netzwerkeinstellungen, um ein Obergrenze der Bitrate festzulegen (zulässige Werte von 100 bis 500 Mbit/s).
Pyrowave ist für extrem schnelles Kodieren und Dekodieren optimiert und vollständig in Form von Rechen-Shadern implementiert. Bei ausreichender Bandbreite (Bitrate von etwa 200+ Mbit/s) zeigt der Codec minimale Latenzen von 0,1 ms bei 1080p-Qualität und 0,2 ms bei 4K-Qualität. Zur Robustheit gegenüber Paketverlusten verwendet Pyrowave ein isoliertes Blockcodierungssystem mit 64×64.
HDR und die Farbmodelle YCbCr 4:2:0 und 4:4:4 werden unterstützt. HDR wird automatisch aktiviert, wenn es sowohl vom Host als auch vom Client unterstützt wird. Das Farbkomprimierungsformat 4:4:4 erfordert rechenintensivere Berechnungen und erhöht den Datenverkehr, weshalb es standardmäßig deaktiviert ist und empfohlen wird, es für die Übertragung von Desktop-Inhalten oder zur Verbesserung der Lesbarkeit von Text in Videos zu aktivieren.
Quelle: opennet.ru
