VideoLAN'ın yeni AV2 kodeği için geliştirdiği dav2d yazılım deşifreleyicisini temsil eden soyut dijital arayüz.

dav2d: VideoLAN’dan Yeni Nesil AV2 Kodek Çözümü Geliyor

VideoLAN’dan dav2d: Yeni Nesil AV2 Kodek Çözümü Geliyor

VideoLAN topluluğu, yeni AV2 kodeği için hızlı bir deşifreleyici olan dav2d‘yi duyurdu. Birkaç hafta önce depoyu açarak halka açık geliştirmeye başlayan ekip, AV2’nin ilk resmi spesifikasyon sürümüne ulaşmasıyla birlikte dav2d’nin ne olduğunu, neden başlatıldığını ve projenin mevcut durumunu açıklıyor.

dav2d projesi, AV1 deşifreleyicisi dav1d ile başlayan çalışmaların bir devamıdır. Amaç benzerdir: gerçek uygulamalar, medya oynatıcılar, tarayıcılar, test araçları ve işletim sistemleri için uygun, küçük, hızlı, taşınabilir ve doğru bir deşifreleyici sağlamak.

AV2 Kodeği: AV1’in Mirası Üzerine İnşa Ediliyor

AV2, AV1‘in halefi ve Alliance for Open Media‘nın en son telifsiz video kodeğidir. Spesifikasyonları av2.aomedia.org ve GitHub üzerinden herkese açıktır. 2018’de tamamlanan AV1, tarayıcılar, mobil cihazlar, işletim sistemleri ve yayın hizmetleri dahil olmak üzere dünya çapında en başarılı video kodeklerinden biri haline geldi.

AV2, bu başarı üzerine inşa edilmiştir. Yeni tahmin, dönüşüm, entropi kodlama, filtreleme ve renk işleme araçları sunarak sıkıştırma verimliliğini artırmayı hedefler. Test koşullarına bağlı olarak AV1’e kıyasla %25 civarında iyileşmeler yaygın olarak görülmektedir, bazı değerlendirmelerde ise daha büyük kazanımlar rapor edilmiştir.

Ancak AV2 deşifresi, AV1 deşifresinden yaklaşık beş kat daha karmaşıktır. Bu, günümüz donanımlarında mimariye özgü dikkatli optimizasyon olmadan gerçek zamanlı AV2 deşifresinin zor olacağı anlamına gelir. dav2d’nin spesifikasyonun stabil hale gelmesini beklemeden erken başlamasının ana nedeni budur.

dav1d’den dav2d’ye Geçiş: Erken Başlamanın Önemi

dav2d‘nin kökenleri, dav1d‘nin başlangıcına dayanmaktadır. AV1 tamamlanırken, donanım deşifresinin yeterince hızlı veya yeterince cihazda kullanılamayacağına inandıkları için hızlı bir yazılım deşifreleyici için bastırdılar. Bu değerlendirmeye herkes katılmasa da, tarayıcılar, medya oynatıcılar ve mobil cihazların özel donanım yaygınlaşmadan önce üretim kalitesinde bir deşifreleyiciye ihtiyaç duyacağı düşünüldü. Sonunda AOM, dav1d’nin ilk geliştirme çalışmalarının bir kısmını finanse etti ve bazı Alliance üyeleri bu çabaya katıldı.

dav1d bugün en yaygın olarak kullanılan AV1 yazılım deşifreleyicisidir:

dav1d, birçok AV1 geliştiricisi için referans uygulama haline gelmiştir. AV2 ile bu çalışmaya daha erken başlanmıştır, çünkü bir kodek spesifikasyonu yeterli değildir; geliştiricilerin inşa edilebilecek, test edilebilecek, kıyaslanabilecek ve entegre edilebilecek bir deşifreleyiciye ihtiyacı vardır.

dav2d’nin Mevcut Durumu ve İlerleme

Mevcut dav2d ağacı, hem 8 bit hem de 10 bit deşifreyi destekleyen özellik açısından eksiksiz bir AVM v15 deşifreleyici içerir. Kodekin çoğu ana bölümü zaten uygulanmış ve optimize edilmektedir:

  • Bit akışı ayrıştırma
  • Çerçeve ve dizi başlıkları
  • Entropi deşifreleme ve CDF işleme
  • İç tahmin (intra prediction)
  • Kareler arası tahmin (inter prediction) ve referans hareket vektörleri
  • Dönüşümler (transforms)
  • CCTX ve CfL
  • Deblocking
  • CDEF
  • Wiener filtreleme
  • Film greni sentezi

Bu henüz erken bir aşama olsa da, deşifreleyici işlevseldir. Projenin bu kadar hızlı ilerlemesinin bir nedeni, dav2d’nin sıfırdan başlamamasıdır. AV2, AV1 ile birçok kavramı paylaşır ve dav1d, threading, SIMD organizasyonu, test, taşınabilirlik ve API tasarımı gibi birçok mimari sorunu zaten çözmüştür. dav1d’den edinilen yılların deneyimi doğrudan dav2d’ye aktarılmıştır.

Performans Çalışmaları ve checkasm

Performans çalışmaları halihazırda başlamıştır. x86 üzerinde, çeşitli ters dönüşüm boyutları için AVX2 kodu ve CCTX, deblock, iç tahmin ve CfL ile ilgili yollar üzerinde çalışmalar mevcuttur. ARM üzerinde AArch64 NEON çalışmaları entropi deşifresi, SAD, iç tahmin, palet tahmini, DC tahminleyicileri, düzgün tahminleyiciler ve hareketle ilgili fonksiyonlar için yapılmıştır. arm32 ve RISC-V için de erken çalışmalar mevcuttur.

dav1d geliştirme sırasında oluşturulan checkasm adlı çerçeve, optimize edilmiş uygulamaların C eşdeğerlerine göre doğrulanması ve kıyaslanması için dav2d’ye ilk günden itibaren fayda sağlamıştır. Bu, projenin dav1d’ye kıyasla çok daha hızlı ilerlemesini sağlamıştır.

Açık Kaynak Geliştirme

dav1d gibi, dav2d de bir açık kaynak projesi olarak geliştirilmektedir. Deşifreleyici, dav1d ile aynı BSD tarzı lisans altında yayınlanmıştır, bu da hem açık kaynak hem de özel uygulamalara kolay entegrasyonu sağlar. Geliştirme ilk günden itibaren halka açık bir şekilde gerçekleşir:

VideoLAN, yeni medya teknolojilerinin sağlıklı bir şekilde dağıtılması için açık uygulamaların önemli olduğuna inanmaktadır. Bunlar birlikte çalışabilirlik, spesifikasyonların bağımsız doğrulanması, kolay deneyler ve ekosistem için ortak bir temel sağlar.

Sırada Ne Var?

Önümüzde hala çok iş var: AV2 spesifikasyonunu takip etmeye devam etmek, uygunluğu iyileştirmek, test kapsamını genişletmek, x86 ve ARM’yi daha fazla optimize etmek, RISC-V üzerinde çalışmak, yüksek bit derinliği performansını artırmak, threading’i iyileştirmek, bellek kullanımını azaltmak ve gelecekteki sürümleri hazırlamak. Ancak temeller zaten atıldı: dav1d’den edinilen araçlar, mimari ve deneyim, ek iyileştirmelerle birlikte dav2d’nin yolunu açtı.

dav1d, donanım desteği yaygınlaşmadan çok önce AV1’i pratik hale getirmeye yardımcı oldu. VideoLAN’ın amacı AV2 için de aynısını yapmaktır. Dav2d var olsun. VideoLAN’dan, sevgiyle.

Comments

No comments yet. Why don’t you start the discussion?

    Bir yanıt yazın

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir