- Streaming game menuntut latensi yang sangat rendah sebagai syarat mutlak
- PyroWave mencapai kecepatan ekstrem dengan menghilangkan prediksi gerak dan entropy coding
- Pendekatan ini berbasis Discrete Wavelet Transform (DWT), berbeda dari codec DCT konvensional
- Encoding/decoding di GPU sangat cepat berkat pemrosesan paralel berbasis blok 32×32 dan implementasi rate control yang cepat
- Evaluasi kualitas menunjukkan hasil yang memadai dalam situasi tertentu bahkan saat dibandingkan dengan H.264/HEVC/AV1
Kebutuhan latensi ultra-rendah pada streaming game dan keterbatasan pendekatan yang ada
- Seiring meningkatnya permintaan untuk streaming gameplay, transmisi real-time melalui jaringan dari satu perangkat ke perangkat lain menjadi semakin penting
- Latensi yang terakumulasi di setiap tahap, mulai dari DMA, rendering, encoding, transmisi, decoding, hingga output layar, sangat memengaruhi pengalaman secara keseluruhan
- Solusi tradisional adalah menggunakan codec video dengan akselerasi GPU seperti H.264, HEVC, dan AV1
- Namun dalam streaming, teknik kompresi tinggi seperti B-frame tidak bisa digunakan, sehingga batasan latensi dan bitrate menjadi lebih berat
Filosofi desain: menghapus prediksi gerak dan entropy coding
Menghapus prediksi gerak – pendekatan Intra-Only
- Prediksi gerak pada codec video konvensional dihapus sehingga setiap frame diperlakukan secara terpisah
- Akibatnya bitrate meningkat, tetapi ada keunggulan dalam ketahanan terhadap error, kesederhanaan, dan konsistensi kualitas
- Pendekatan Intra-only juga sudah pernah digunakan di bidang seperti digital cinema
- Karena itu pendekatan ini kurang cocok untuk streaming internet, tetapi dapat memberi hasil baik di lingkungan berbandwidth tinggi seperti LAN
Menghapus entropy coding
- Entropy coding dikeluarkan sepenuhnya karena tidak cocok untuk pemrosesan paralel di GPU
- Wilayah yang sebelumnya hanya ada untuk ASIC khusus atau perangkat spesial diwujudkan dengan pendekatan berbasis software
- Ini membuka ranah codec ultra-rendah-latensi yang tidak ada di FFmpeg
Pendekatan baru dengan memanfaatkan transformasi wavelet (DWT)
- Alih-alih DCT yang digunakan codec konvensional, pendekatan ini mengadopsi Discrete Wavelet Transform (DWT)
- Transformasi wavelet mirip dengan struktur mip-map yang akrab bagi programmer grafis
- Gambar dipisahkan ke dalam beberapa band, lalu kuantisasi diterapkan pada tiap band
- Band frekuensi tinggi dikuantisasi lebih kuat untuk memaksimalkan karakteristik visual
- Proses ini juga terkait dengan rate control
Artefak khas dan keterbatasan codec berbasis wavelet
- Alih-alih blocking artifact seperti pada JPEG, wavelet terutama menimbulkan blur atau ringing
- Efek ini bisa jadi bukan masalah besar dalam praktik karena bertumpuk dengan blur akibat TAA pada game modern
Packing bitstream berkecepatan tinggi dan paralelisasi
- Blok koefisien 32×32 diproses secara independen sehingga saat terjadi packet loss, dampaknya dibatasi pada blur lokal saja
- Susunan sub-blok 8×8 dan 4×2 mengoptimalkan pemrosesan paralel per unit GPU workgroup
- Bitplane encoding digunakan, tetapi data bit mentah disimpan tanpa entropy coding yang kompleks
- Pendekatan ramah GPU seperti penyimpanan SSBO 8-bit memaksimalkan efisiensi memori dan kecepatan pemrosesan
Rate control yang akurat dan cepat
- Berbeda dari pendekatan entropy coding konvensional, jumlah bit yang dihilangkan untuk tiap blok diukur dan disimpan berulang kali agar rasio dapat disesuaikan dengan tepat
- Secara global, rentang rate-distortion optimal dihitung untuk mematuhi CBR secara ketat
- Keunggulan codec keluarga wavelet berupa penghentian awal per bitplane juga berhasil dicapai melalui software
Kinerja dan efisiensi nyata
- Pada 1080p 4:2:0, encoding/decoding selesai dalam 0.13ms di GPU RX 9070 XT
- Tiap tahap pemrosesan seperti DWT dan kuantisasi memanfaatkan optimisasi FP16 untuk menyeimbangkan trade-off antara kualitas dan kecepatan
- Untuk video 4K, hasil eksperimen menunjukkan bahwa mengompresi di GPU lalu mentransfernya lebih cepat daripada kecepatan transfer PCI-e
- Kecepatan yang dicapai bahkan lebih dari 10 kali lebih cepat dibanding codec hardware khusus
Evaluasi kualitas dan perbandingan dengan codec lain
- Kelompok pembanding: encoder GPU FFmpeg (H.264/HEVC/AV1) dalam mode Intra-only, CBR, dan latensi minimum
- Dalam kondisi 200Mbps dan 60fps, artefak kompresi pada PyroWave hampir tidak bisa dibedakan secara visual
- Untuk berbagai adegan game, hasil yang memadai juga diperoleh melalui metrik kualitas objektif seperti VMAF, SSIM, dan PSNR
- Beberapa metrik tertentu (seperti VMAF) menilai PyroWave agak terlalu baik, sedangkan PSNR dan sejenisnya memperlihatkan pengaruh presisi internal
- Meski ada blur atau artefak berkualitas rendah pada gambar, hal itu bukan masalah besar untuk penggunaan nyata mengingat visual game modern dan tujuan pemakaiannya
Kesimpulan
- PyroWave menghadirkan alternatif inovatif untuk streaming game lokal yang membutuhkan latensi sangat rendah dan pemrosesan berkecepatan tinggi
- Codec ini selaras dengan arsitektur GPU modern dan dioptimalkan untuk pemrosesan paralel serta kontrol CBR
- Meski merupakan proyek pribadi, tingkat kepuasannya tinggi sebagai solusi streaming supercepat DIY
1 komentar
Komentar Hacker News
Membahas VC-2, codec ultra-rendah-latensi berbasis wavelet intra-only yang dikembangkan BBC. Codec ini bisa digunakan tanpa royalti, dan saat ini baru ada implementasi berbasis CPU di ffmpeg dan repositori resmi BBC. Ia berencana membuat versi berakselerasi CUDA sebagai tesis masternya. Implementasi Vulkan yang dikerjakan pada GSoC tahun lalu masih belum memuaskan. Ia merekomendasikan agar orang-orang benar-benar melihat codec ini
Tulisan ini adalah contoh yang sangat bagus dalam menjelaskan toleransi distorsi dan trade-off yang cocok dengan karakteristik sinyal. Bahkan jika posisinya bukan merancang codec melainkan memilihnya, mengikuti proses ini tetap bisa menghasilkan hasil yang baik. Jika tertarik pada bidang yang mengutamakan latensi sangat rendah, laporan VSF yang merangkum karakteristik berbagai codec alternatif (tautan) akan berguna
Saya hampir tidak tahu apa-apa tentang encoding video, tetapi saya pikir jika encoder bisa bekerja sama meski sedikit dengan game engine, ada banyak pendekatan praktis yang terlewat dalam streaming videogame. Misalnya, kebanyakan rendering engine sudah punya buffer prediksi gerakan untuk kegunaannya sendiri, dan itu bisa dipakai gratis juga untuk encoding. Tapi sayangnya sepertinya ada paten yang menghambat inovasi semacam ini sehingga mungkin sulit diwujudkan
Mengusulkan pendekatan memakai LLM (large language model) untuk merangkum situasi dalam game menjadi beberapa kalimat di setiap frame lalu mengirimkannya lewat jaringan, dan LLM di sisi penerima merekonstruksi frame dari teks itu. Menyebut bahwa ini sulit untuk real-time dan kehilangan informasinya besar, tetapi rasio kompresinya luar biasa dan sesuai tren terbaru
Metode codec ini hampir sama persis dengan yang hendak saya pakai dalam proyek riset. Sebagai referensi, untuk proyek komersial, karena isu patent pool, standar berbayar JPEG-XS (tautan1, tautan2) yang juga mengklaim latensi ultra-rendah mungkin bisa menjadi pilihan yang lebih aman
Membagikan bahwa pendiri VLC sedang mengembangkan protokol streaming ultra-rendah-latensi, beserta wawancara (tautan) dan video demo (tautan)
Menyadari bahwa pendekatan CODEC ini berbasis algoritme yang sama seperti HTJ2K (High-Throughput JPEG 2000), dan jika penulis melihatnya, akan menarik bila ia menjelaskan perbedaannya dengan HTJ2K
Menjelaskan bahwa jika hanya fokus pada streaming jaringan lokal, banyak fitur codec modern sebenarnya tidak diperlukan. Selama bandwidth sekitar 100Mbps tersedia, pemrosesan bisa dibuat cepat dan latensinya juga kecil. Sebagai contoh, codec Microsoft DXT hampir tidak punya fitur codec modern (tanpa entropy encoding, motion compensation, atau deblocking), tetapi dengan rasio kompresi 4~8x dan decoding hardware, ia menguntungkan untuk mengurangi total latensi. Namun ditegaskan bahwa bahkan jika dioptimalkan, display itu sendiri tetap menambah latensi 30~100ms
Menyampaikan bahwa hasil pengembangannya benar-benar luar biasa, dan berharap suatu hari nanti akan diterapkan ke Moonlight atau proyek serupa
Mengutip pendapat bahwa karena codec ini masih tergolong asing dan spesialis, sulit menemukan materi perbandingan dengan codec pesaing, lalu menyatakan penasaran dengan benchmark terhadap H.264/AVC (opsi ffmpeg zero-latency) dan JPEG XS. Juga membagikan contoh perintah ffmpeg beserta parameter encoding yang rinci