1 puan yazan GN⁺ 3 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • dav2d, VideoLAN topluluğu tarafından geliştirilen AV2 için yüksek hızlı bir dekoder; amaç, uygulamalarda, tarayıcılarda ve işletim sistemlerinde doğrudan kullanılabilecek bir uygulama sunmak
  • AV2, AV1'in halefi olan telifsiz bir kodek; yaklaşık %25 verimlilik artışı gözlemlense de dekodlama karmaşıklığı AV1'in yaklaşık 5 katına ulaşıyor
  • dav1d, AV1'in yaygınlaşmasının ilk döneminde yüksek hızlı yazılım dekoderi rolünü üstlendiği gibi, dav2d de prodüksiyon kalitesinde bir dekoderi spesifikasyonun erken aşamasından itibaren hazırlıyor
  • Mevcut ağaçta AVM v15 dekoderi işlevsel olarak tamamlanmış durumda ve 8 bit ile 10 bit desteği sunuyor; odak doğruluk, uyumluluk ve optimizasyon üzerinde
  • x86 AVX2, ARM NEON, erken aşama RISC-V çalışmaları ve checkasm doğrulaması sayesinde mimariye özgü optimizasyonlar hızlı ve güvenli biçimde ilerletiliyor

dav2d'nin amacı ve arka planı

  • dav2d, VideoLAN topluluğu üyeleri tarafından geliştirilen yeni AV2 kodeki için yüksek hızlı bir dekoder
  • Depo birkaç hafta önce açıldı ve AV2 ilk resmi spesifikasyon sürümünü yayımladığı sırada projenin amacı ile durumu da paylaşıldı
  • dav2d, AV1 dekoderi olan dav1d'nin devamı niteliğinde
  • Hedef, gerçek uygulamalarda, medya oynatıcılarda, tarayıcılarda, test araçlarında ve işletim sistemlerinde kullanılabilecek küçük, hızlı, taşınabilir ve doğru bir dekoder sunmak
  • “Bir kodek, herkes onu dekode edebilene kadar gerçekten var olmaz” yaklaşımıyla, yalnızca spesifikasyon değil; derlenebilir, test edilebilir, benchmark yapılabilir ve entegre edilebilir bir uygulama da önem kazanıyor

AV2 ve dekodlama zorluğu

  • AV2, Alliance for Open Media'nın en yeni telifsiz video kodeki ve AV1'in halefi
  • AV2 spesifikasyonu herkese açık
  • AV1, 2018'de kesinleşti ve tarayıcılarda, mobil cihazlarda, işletim sistemlerinde, TV'lerde, akış servislerinde ve video uygulamalarında geniş çapta dağıtılan bir video kodeki haline geldi
  • AV2; tahmin, dönüşüm, entropi kodlama, filtreleme ve kroma işleme genelinde yeni kodlama araçları ekleyerek sıkıştırma verimliliğini artırmayı sürdürüyor
  • Test koşullarına göre değişse de AV1'e kıyasla yaklaşık %25 iyileşme sıkça gözlemleniyor; bazı değerlendirmelerde daha büyük kazanımlar da görülüyor
  • AV2 dekodlaması, AV1'den yaklaşık 5 kat daha karmaşık; bu nedenle mevcut donanımda yalnızca yazılımla gerçek zamanlı dekodlama için mimariye özgü optimizasyonlar gerekiyor
  • Bu karmaşıklık nedeniyle dav2d geliştirmesi, spesifikasyonun oturmasını beklemeden erken başlatıldı

dav1d'den dav2d'ye uzanan çizgi

  • dav2d'nin çıkış noktası, dav1d ile edinilen erken dönem deneyimlere dayanıyor
  • AV1 kesinleştiğinde, özel donanım dekodlamasının yeterince hızlı biçimde ve yeterince çok cihaza yayılmayabileceği öngörülüyordu; bu yüzden yüksek hızlı bir yazılım dekoderine ihtiyaç vardı
  • O dönemde AOM topluluğunun bir kısmı donanım uygulamaları ve referans dekoderin yeterli olacağını düşünse de, tarayıcılar, medya oynatıcılar, işletim sistemleri ve mobil cihazlar için özel donanım yaygınlaşmadan önce prodüksiyon kalitesinde bir dekoder gerekliydi
  • Sonrasında AOM da erken geliştirme sürecinin bir bölümünü destekledi ve Alliance üyelerinin bir kısmı çalışmaya katılarak dav1d ortaya çıktı
  • Yüksek hızlı yazılım dekoderi ihtiyacı beklenenden daha büyük oldu ve dav1d bugün en yaygın dağıtılan AV1 yazılım dekoderi haline geldi
  • dav1d; VLC, FFmpeg, mpv, Firefox, Chrome, Safari, Android, Windows, Linux ve çeşitli uygulama ile platformlarda kullanılıyor
  • dav1d ayrıca AV1 dağıtımı, testi ve optimizasyonu yapan birçok geliştirici için referans AV1 dekoder uygulaması olarak da kullanılıyor
  • dav1d'nin geçmişi Introducing dav1d, the road to the first release, First release, dav1d 1.2, 1.5 “Sonic” yazılarında özetleniyor
  • AV2 tarafında da aynı rol daha erken bir aşamadan itibaren hazırlanıyor

Mevcut uygulama durumu

  • Mevcut dav2d ağacı, AVM v15 dekoderini işlevsel olarak tamamladı ve hem 8 bit hem de 10 bit dekodlamayı destekliyor
  • Kodekin ana bileşenlerinin büyük bölümü uygulanmış durumda ve optimizasyon aşamasına girildi
    • bitstream parsing
    • frame ve sequence header
    • entropi dekodlama ve CDF işleme
    • intra prediction
    • inter prediction ve referans motion vector
    • dönüşümler
    • CCTX ve CfL
    • deblocking
    • CDEF
    • Wiener filtering
    • film grain sentezi
  • AV2 ekosistemi henüz erken aşamada olsa da dav2d şimdiden çalışan bir dekoder ve boş bir tanıtım deposu olmanın ötesine geçmiş durumda
  • Mevcut çalışmanın önemli bir bölümü doğruluk, uygunluk, optimizasyon ve platform desteği üzerine yoğunlaşıyor
  • dav2d'nin hızlı ilerlemesinin arkasında, dav1d'de biriken threading, SIMD yapısı, test, taşınabilirlik ve API tasarımı deneyimi bulunuyor
  • AV2 için önemli ölçüde yeni dekoder kodu gerekiyor ancak dav1d geliştirme sürecinde kazanılan deneyimin büyük kısmı dav2d'ye doğrudan uygulanabiliyor

Performans optimizasyonu ve doğrulama

  • x86 tarafında çeşitli ters dönüşüm boyutları için AVX2 kodu eklendi; CCTX, deblock, intra prediction ve CfL ile ilgili yol çalışmaları da sürüyor
  • ARM tarafında AArch64 NEON çalışmaları; entropi dekodlama, SAD, intra prediction, palet tahmini, DC predictor, smooth predictor ve hareketle ilgili işlevlere uygulanıyor
  • arm32 çalışmaları da kısmen başlamış durumda
  • RISC-V çalışmaları erken aşamada; mevcut intra prediction ve motion compensation assembly kodunu yeniden etkinleştirme ve uyarlama yönünde ilerliyor
  • Optimizasyon akışı dav1d'ye benziyor
    • önce temiz bir C uygulaması hazırlanıyor
    • ardından doğrulama altyapısı kuruluyor
    • sonra kritik hot path'lere mimariye özgü optimize kod ekleniyor
  • dav1d geliştirilirken oluşturulan checkasm, optimize uygulamaları C uygulamasıyla karşılaştırarak doğrulayan ve benchmark yapan bir framework
  • dav2d, bu altyapıyı ilk günden kullandığı için dav1d'nin benzer aşamasına göre daha hızlı ilerliyor
  • Mevcut ağaç; ters dönüşümler, motion compensation, film grain, CfL ve referans motion vector kodu için checkasm kapsamı içeriyor

Açık kaynak geliştirme modeli ve sonraki adımlar

  • dav2d, dav1d gibi açık kaynaklı bir proje olarak geliştiriliyor
  • Dekoder, dav1d ile aynı BSD tarzı lisansla dağıtılıyor; bu da hem açık kaynak hem de kapalı kaynak uygulamalara entegrasyonu kolaylaştırıyor
  • VideoLAN projelerinin çoğunda olduğu gibi geliştirme ilk günden itibaren açık biçimde yürütülüyor
  • Açık uygulama; birlikte çalışabilirlik, spesifikasyonun bağımsız doğrulanması, daha kolay deney yapma ve ekosistem için ortak bir temel sağlıyor
  • Bundan sonra da AV2 spesifikasyonunu takip etme, uygunluğu iyileştirme, test kapsamını genişletme, x86 ve ARM için ek optimizasyonlar ve RISC-V çalışmaları gerekecek
  • Daha yüksek bit derinliğinde performans iyileştirmeleri, threading geliştirmeleri, bellek kullanımının azaltılması ve gelecekteki sürümlere hazırlık da yapılacak işler arasında
  • dav1d, donanım desteği yaygınlaşmadan önce AV1'i pratik hale getirdiyse, dav2d de AV2 için aynı rolü hedefliyor

1 yorum

 
GN⁺ 3 시간 전
Hacker News yorumları
  • Too Many Requests
    Arşiv kopyaları burada görülebilir:
    https://web.archive.org/web/20260531130034/https://jbkempf.com/blog/2026/dav2d/
    https://archive.md/ln5UE

    • Görünüşe göre HN'den çok fazla trafik gitmiş
      Too Many Requests görünüyor ve dosya sahibinin kısa süreli bant genişliği sınırını aştığını, ayrıca günlük 160000 işlem sınırının da geçildiğini söyleyen bir mesaj çıkıyor
  • AV1 yazılım çözme zaten çok ağır; bu yüzden AV2 çözme kıyaslamaları bir sonraki gerçekten ilginç ya da korkutucu gösteri olabilir gibi duruyor

    • Intel'in Arc dGPU'su, özel AV1 kodlama ve çözme için oldukça cazipti; özellikle bazı kartların küçük form faktörü güzeldi
      OBS kayıt ve kodlama işleri için kullanılan bir PC'ye yardımcı kart olarak takıp kullanmak da mümkündü
      AV2 destekleyen yeni nesil ürün ailesinde de benzer seçenekler çıkarsa iyi olur; bugünlerde video üretimi ve yayıncılık çok yaygın olduğu için buna daha da fazla ihtiyaç var gibi görünüyor
    • Yaygın, ucuz donanım 2018 codec'ine yetişene kadar AV ailesindeki yeni codec'ler nişin ötesine geçemeyecek gibi görünüyor
    • Bunu takip etmek eğlenceli olacak gibi
  • Bir codec spesifikasyonu, sahada geliştirilmiş en az bir çözücü olmadan tamamlanmış sayılmaz. Yani referans uygulama + 1 uygulama gerekir ve çoğu zaman fiilî spesifikasyon sahadaki uygulama olur
    90'larda çocukken MPEG1 spesifikasyonunu okurken karmaşık sistemlerin nasıl tanımlandığına dair gözüm açılmıştı
    Medya kodlama standartlarında zamanın büyük kısmı kodlanmış baytların nasıl yorumlanacağını anlatmaya gider ve bunu dahiyane bulmuştum
    Çözme işlemi betimleyici olarak tanımlanabilir; kodlamayı ise kurallı biçimde bağlamak gerekmez
    Yaratıcılık kodlama tarafında ortaya çıkabilir, ama kodlanmış baytları birlikte anlayabilmenin yolu mutlaka sağlanmalıdır

  • Görünüşe göre HN hug of death yaşanmış

  • Boyutu %25 küçültmenin, AV1 donanım çözücüsüne sahip tüm cihazları fiilen eski hale getirecek kadar değerli olup olmadığından emin değilim. Çünkü AV2 çözme bu cihazlar için fazla ağır olacaktır

    • Modern video servisleri, farklı codec'ler, bit hızları ve ekran boyutları için ayrı ayrı kodlama yapar; ardından istemci cihazın çözebileceği en uygun biçimi gönderir
      YouTube'da yüzlerce biçim varyantı var:
      https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
      AV1 donanım çözme destekli cihazlar nadir olsa da uzun süre eski sayılmayacaktır
    • Neredeyse 17 milyar görüntülenmesi olan bir videoyu barındırıyorsanız, mümkün olan en düşük bit oranıyla yayın yapmak istersiniz:
      https://www.youtube.com/watch?v=XqZsoesa55w
      O ek %25 bu noktada değerli hale gelir
      Hiçbir şey eski hale gelmez. AV1 uzun süre kalacaktır ve YouTube eski cihazları desteklemek için hâlâ H.264 kodlamaları da sunuyor
  • Yine HN hug of death olmuş gibi ve 429 hatası görünüyor

  • Ben bunun Dave2D ile ilgili olduğunu sandım

    • Adını dav1d'den almış gibi görünüyor ama yine de oldukça talihsiz bir isim çakışması gibi duruyor
  • Görünüşe göre blog HN hug of death yüzünden çökmüş
    Actioning this file would cause "jbkempf.com//blog/2026/dav2d/" to exceed the per-day file actions limit of 160000 actions, try again later mesajı çıkıyor; bunun bir kopyası bir yerde var mı?

  • AV1'e kıyasla yaklaşık %25 iyileşme denmesiyle, AV2 çözmenin AV1'den yaklaşık 5 kat daha karmaşık olduğunun söylenmesi tam olarak ne anlama geliyor, bunlar birbiriyle karşılaştırılabilir mi pek bilmiyorum

    • Bunu sıkıştırmanın %25 daha iyi olması şeklinde anladım
      AV1'de 10Mbps ile elde edilen kaliteye AV2'de 8Mbps ile ulaşılabileceği anlamına geliyor
      Ancak bu %25 kazanç için 5 kat daha fazla hesaplama gücü gerekiyor
    • AV2, çözme karmaşıklığında 5 kat artış karşılığında %25 bant genişliği tasarrufu sağlıyor
    • Dosyalar daha küçük ama çözmek daha zor
  • İlgili gönderi: The AV2 Video Standard Has Released (Final v1.0 Specification)
    https://news.ycombinator.com/item?id=48340910