Dav2d
(jbkempf.com)- dav2d adalah decoder cepat untuk AV2 yang dikembangkan komunitas VideoLAN, dengan tujuan menjadi implementasi yang bisa langsung digunakan di aplikasi, browser, dan sistem operasi
- AV2 adalah codec bebas royalti penerus AV1 dengan peningkatan efisiensi sekitar 25% yang telah teramati, tetapi kompleksitas decoding-nya mencapai sekitar 5 kali AV1
- Seperti dav1d yang berperan sebagai decoder perangkat lunak cepat pada awal penyebaran AV1, dav2d juga sedang menyiapkan decoder kualitas produksi sejak tahap awal spesifikasi
- Pohon kode saat ini telah menyelesaikan decoder AVM v15 secara fungsional dan mendukung 8-bit serta 10-bit, dengan fokus pada akurasi, kesesuaian, dan optimisasi
- Melalui optimisasi khusus arsitektur dan verifikasi checkasm untuk x86 AVX2, ARM NEON, serta pekerjaan awal RISC-V, pengembangan bisa berjalan cepat dan aman
Tujuan dan latar belakang dav2d
- dav2d adalah decoder cepat baru untuk codec AV2 yang dikembangkan oleh anggota komunitas VideoLAN
- Repositorinya dibuka beberapa minggu lalu, dan tujuan serta status proyek ini diumumkan bertepatan dengan rilis spesifikasi resmi pertama AV2
- dav2d merupakan kelanjutan dari dav1d, decoder AV1
- Tujuannya adalah menyediakan decoder yang kecil, cepat, portabel, dan akurat untuk digunakan dalam aplikasi nyata, pemutar media, browser, alat pengujian, dan sistem operasi
- Dari sudut pandang bahwa “sebuah codec belum benar-benar ada sampai semua orang bisa mendekodenya”, yang penting bukan hanya spesifikasi, tetapi juga implementasi yang bisa dibangun, diuji, di-benchmark, dan diintegrasikan
AV2 dan tingkat kesulitan decoding
- AV2 adalah codec video bebas royalti terbaru dari Alliance for Open Media dan merupakan penerus AV1
- Spesifikasi AV2 sudah dipublikasikan
- AV1 ditetapkan pada 2018, lalu menjadi codec video yang didistribusikan luas di browser, perangkat mobile, sistem operasi, TV, layanan streaming, dan aplikasi video
- AV2 terus meningkatkan efisiensi kompresi dengan memperkenalkan alat pengodean baru di seluruh area prediksi, transformasi, entropy coding, filtering, dan pemrosesan chroma
- Meski hasilnya berbeda tergantung kondisi pengujian, peningkatan sekitar 25% dibanding AV1 umum diamati, dan beberapa evaluasi menunjukkan peningkatan yang lebih besar
- Decoding AV2 kira-kira 5 kali lebih kompleks daripada AV1, sehingga decoding real-time berbasis perangkat lunak pada hardware saat ini memerlukan optimisasi khusus arsitektur
- Karena kompleksitas ini, pengembangan dav2d dimulai lebih awal tanpa menunggu stabilisasi spesifikasi
Alur dari dav1d ke dav2d
- Titik awal dav2d berasal dari pengalaman awal dav1d
- Saat AV1 ditetapkan, ada kemungkinan besar decoding hardware khusus tidak akan menyebar cukup cepat ke cukup banyak perangkat, sehingga dibutuhkan decoder perangkat lunak berkecepatan tinggi
- Saat itu sebagian komunitas AOM menganggap implementasi hardware dan decoder referensi sudah cukup, tetapi browser, pemutar media, sistem operasi, dan perangkat mobile memerlukan decoder kualitas produksi bahkan sebelum hardware khusus tersebar luas
- Setelah itu AOM sendiri mendukung sebagian pengembangan awal, dan beberapa anggota Alliance turut bergabung dalam pekerjaan ini sehingga dav1d pun lahir
- Kebutuhan akan decoder perangkat lunak cepat ternyata lebih besar dari perkiraan, dan dav1d kini menjadi decoder perangkat lunak AV1 yang paling luas didistribusikan
- dav1d digunakan di VLC, FFmpeg, mpv, Firefox, Chrome, Safari, Android, Windows, Linux, serta berbagai aplikasi dan platform lainnya
- dav1d juga dipakai sebagai implementasi decoder AV1 referensi oleh banyak pengembang yang mendistribusikan, menguji, dan mengoptimalkan AV1
- Riwayat dav1d dirangkum di Introducing dav1d, the road to the first release, First release, dav1d 1.2, 1.5 “Sonic”
- Untuk AV2, peran yang sama sedang dipersiapkan sejak tahap yang lebih awal
Status implementasi saat ini
- Pohon kode dav2d saat ini telah menyelesaikan decoder AVM v15 secara fungsional dan mendukung decoding 8-bit maupun 10-bit
- Sebagian besar komponen codec utama telah diimplementasikan dan kini memasuki tahap optimisasi
- parsing bitstream
- header frame dan sequence
- decoding entropi dan pemrosesan CDF
- prediksi intra
- prediksi inter dan reference motion vector
- transformasi
- CCTX dan CfL
- deblocking
- CDEF
- filtering Wiener
- sintesis film grain
- Ekosistem AV2 masih berada di tahap awal, tetapi dav2d sudah merupakan decoder yang berfungsi dan melampaui level repositori kosong untuk presentasi
- Sebagian besar pekerjaan saat ini berfokus pada akurasi, kesesuaian, optimisasi, dan dukungan platform
- Salah satu alasan kemajuan dav2d yang cepat adalah pengalaman dari dav1d dalam threading, konfigurasi SIMD, pengujian, portabilitas, dan desain API
- AV2 memang membutuhkan cukup banyak kode decoder baru, tetapi banyak pengalaman yang diperoleh saat pengembangan dav1d bisa langsung diterapkan ke dav2d
Optimisasi performa dan verifikasi
- Di x86, kode AVX2 untuk berbagai ukuran inverse transform sudah ditambahkan, dan pekerjaan pada jalur terkait CCTX, deblock, intra prediction, dan CfL juga sedang berlangsung
- Di ARM, pekerjaan AArch64 NEON sedang diterapkan pada decoding entropi, SAD, prediksi intra, prediksi palet, prediktor DC, prediktor smooth, dan fungsi terkait motion
- Pekerjaan arm32 juga sudah mulai dilakukan sebagian
- Pekerjaan RISC-V masih pada tahap awal dan sedang diarahkan pada pengaktifan kembali serta penyesuaian assembly prediksi intra dan motion compensation yang sudah ada
- Alur optimisasinya mirip dengan dav1d
- pertama membuat implementasi C yang bersih
- lalu membangun infrastruktur verifikasi
- kemudian menambahkan kode optimisasi khusus arsitektur pada hot path penting
- checkasm, yang dibuat saat pengembangan dav1d, adalah framework untuk memverifikasi dan melakukan benchmark implementasi hasil optimisasi dengan membandingkannya terhadap implementasi C
- dav2d memanfaatkan infrastruktur ini sejak hari pertama, sehingga bergerak lebih cepat dibanding tahap serupa pada dav1d
- Pohon kode saat ini mencakup cakupan checkasm untuk inverse transform, motion compensation, film grain, CfL, dan kode reference motion vector
Cara pengembangan open source dan langkah berikutnya
- Seperti dav1d, dav2d dikembangkan sebagai proyek open source
- Decoder ini didistribusikan dengan lisensi bergaya BSD yang sama seperti dav1d, sehingga mudah diintegrasikan baik ke aplikasi open source maupun aplikasi proprietari
- Seperti sebagian besar proyek VideoLAN, pengembangan dilakukan secara terbuka sejak hari pertama
- Repository: https://code.videolan.org/videolan/dav2d
- Issues: https://code.videolan.org/videolan/dav2d/-/issues
- Merge Requests: https://code.videolan.org/videolan/dav2d/-/merge_requests
- Implementasi terbuka ini memberikan interoperabilitas, verifikasi independen terhadap spesifikasi, eksperimen yang lebih mudah, dan fondasi bersama bagi ekosistem
- Ke depan, masih diperlukan pelacakan spesifikasi AV2, peningkatan kesesuaian, perluasan cakupan pengujian, optimisasi tambahan untuk x86 dan ARM, serta pekerjaan RISC-V
- Peningkatan performa untuk bit depth tinggi, perbaikan threading, pengurangan penggunaan memori, dan persiapan rilis di masa depan juga masih tersisa
- Seperti dav1d yang membuat AV1 menjadi praktis sebelum dukungan hardware menjadi umum, dav2d juga menargetkan peran yang sama untuk AV2
1 komentar
Komentar Hacker News
Too Many Requests
Arsipnya bisa dilihat di sini:
https://web.archive.org/web/20260531130034/https://jbkempf.com/blog/2026/dav2d/
https://archive.md/ln5UE
Muncul
Too Many Requests, beserta pesan bahwa pemilik file telah melampaui batas bandwidth jangka pendek dan melewati batas 160000 aksi per hariDekode perangkat lunak AV1 saja sudah sangat berat, jadi benchmark dekode AV2 kemungkinan akan jadi tontonan yang sangat menarik atau menakutkan berikutnya
Bisa juga dipasang sebagai kartu tambahan di PC untuk perekaman dan encoding OBS
Semoga lini produk generasi berikutnya yang mendukung AV2 juga menghadirkan opsi serupa, apalagi produksi video dan streaming sekarang sangat populer sehingga terasa makin dibutuhkan
Spesifikasi codec baru bisa dianggap selesai jika sudah ada setidaknya satu decoder yang dikembangkan di lapangan. Artinya dibutuhkan implementasi referensi + 1 implementasi, dan implementasi lapangan sering kali menjadi spesifikasi de facto
Saat masih kecil di era 90-an, saya membaca spesifikasi MPEG1 dan dari sana mulai memahami cara mendefinisikan sistem yang kompleks
Dalam standar pengodean media, sebagian besar waktunya dihabiskan untuk menjelaskan cara menafsirkan byte yang telah dienkode, dan itu terasa brilian
Decoding bisa didefinisikan secara deskriptif, sementara encoding tidak perlu diikat secara normatif
Kreativitas bisa diwujudkan di sisi encoding, tetapi harus selalu ada cara bersama untuk memahami byte yang telah dienkode
Sepertinya terjadi HN hug of death
Saya kurang yakin pengurangan ukuran 25% cukup bernilai jika itu pada praktiknya membuat semua perangkat dengan decoder hardware AV1 jadi usang. Soalnya decoding AV2 akan terlalu berat bagi perangkat-perangkat itu
YouTube punya ratusan variasi format:
https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
Perangkat dengan decoding hardware AV1 memang jarang, tetapi tidak akan cepat jadi usang
https://www.youtube.com/watch?v=XqZsoesa55w
Tambahan 25% itu jadi berharga
Tidak ada yang menjadi usang. AV1 akan tetap bertahan lama, dan YouTube masih menyediakan encoding H.264 demi mendukung perangkat lama
Sepertinya HN hug of death datang lagi, dan muncul error 429
Saya sempat mengira ini tentang Dave2D
Blognya sepertinya kena HN hug of death
Muncul
Actioning this file would cause "jbkempf.com//blog/2026/dav2d/" to exceed the per-day file actions limit of 160000 actions, try again later, apakah ada salinannya di tempat lain?https://web.archive.org/web/20260531115337/https://jbkempf.com/blog/2026/dav2d/
Saya kurang paham apa arti masing-masing dari klaim peningkatan sekitar 25% dibanding AV1 dan klaim bahwa decoding AV2 kira-kira 5 kali lebih kompleks daripada AV1, serta apakah keduanya memang bisa dibandingkan
Kualitas yang didapat pada 10Mbps di AV1 bisa didapat pada 8Mbps di AV2
Hanya saja, untuk mendapatkan keuntungan 25% itu dibutuhkan kemampuan komputasi 5 kali lebih besar
Tulisan terkait: The AV2 Video Standard Has Released (Final v1.0 Specification)
https://news.ycombinator.com/item?id=48340910