x1_4.3.0 ve ARM işlemcilerde bulunan donanım paralel hesaplama uzantılarıyla hızlandırılmış AV1 video kodlama formatı kodlayıcı ve kod çözücüsünün uygulamalarını içeren SVT-AV1 86 (Ölçeklenebilir Video Teknolojisi AV64) kütüphanesi yayınlandı. Proje, anında video kod dönüştürme ve isteğe bağlı video (VOD) hizmetlerinde kullanıma uygun bir performans düzeyi elde etmek amacıyla Intel ve Netflix iş birliğiyle oluşturuldu. Geliştirme çalışmaları, AV1 video kodlama formatının geliştirilmesini denetleyen Açık Medya İttifakı (AOMedia) himayesinde devam ediyor. Proje daha önce, SVT-HEVC ve SVT-VP9 kodlayıcılarını da geliştiren OpenVisualCloud projesi kapsamında geliştirilmişti. Kod, BSD lisansı altında dağıtılıyor.
SVT-AV1, C99 standardını destekleyen bir derleyiciye sahip herhangi bir mimariye dayalı sistemler için derlenebilir, ancak en iyi performans, SIMD komutlarına dayalı assembler optimizasyonlarını kullanan x86_64 sistemlerinde elde edilir (CPU'da AVX2 desteği tercih edilir, ancak minimum olarak SSE2 yeterlidir). Bellek tüketimi, kodlama için kullanılan işlemci çekirdeklerinin sayısına bağlıdır ve bu da "--lp" seçeneğiyle kontrol edilir. AV1'de kullanılan algoritmaların karmaşıklığı nedeniyle, bu formatın kodlanması diğer formatlara göre önemli ölçüde daha fazla kaynak gerektirir.
SVT-AV1'in yeni sürümündeki değişiklikler arasında:
- Tüm ön ayarlar için kalite/hız dengesi optimize edilerek, aynı kalite seviyesi korunurken CPU yükü %5-8 oranında azaltılmış ve çoklu iş parçacığı modunda kodlama süresi %10-11 oranında kısaltılmıştır. Mod kararı (MD) dışlama, hareket vektörü (MV) hesaplama, kodlama sırasında filtre parametresi hesaplama, frekans katsayısı hesaplama, alt piksel ofset tespiti, blok kopyalama ve oran-bozulma optimize edilmiş niceleme (RDOQ) gibi işlemler için hızlandırma sağlanmıştır. Çoklu iş parçacığı modunda, kaynakları korumak için ekran içeriği yayın algılama algoritması artık yalnızca I-karelerine uygulanmaktadır.
- Statik görüntülerin kod çözme işlemini hızlandırmak için deneysel "--fast-decode 3" bayrağı eklendi.
- Film gren tablolarını desteklemek için "--fgs-table" bayrağı ve kare bazında gren parametrelerini ayarlamak için FILM_GRAIN_EVENT API'si eklendi.
- Kayıpsız kodlama hızı artırıldı.
- Düşük gecikmeli kodlama modunda, paralel karo işleme uygulanır.
- Sabit bit hızı (CBR) modunda kare atlamayı yapılandırmak için "max_allowed_consecutive_frames_skips" seçeneği eklendi.
- Mini GOP'ların (Resim Grupları) boyutunu değiştirirken kullanılan arabellek havuzunu kontrol etmek için "max_hierarchical_levels" parametresi eklendi.
- RTC, VOD ve AVIF için 8 bitlik bir kütüphane oluşturmak üzere "--mobile-build" derleme seçeneği (CMake'te MOBILE_BUILD) eklendi. Kullanılmayan kodlama araçlarının derlenmesini devre dışı bırakmak için CONFIG_ENABLE_* seçenekleri eklendi.
- x86 sistemler için, AVX2 ve SSE4.1 komutlarına dayalı 8 bitlik CDEF işleyicileri ve AVX2 ve AVX-512 komutlarına dayalı 16 bitlik doğrudan dönüşümler uygulanmıştır. Kareler arası tahmin, palet işleme ve dönüşümler için SSE4.1 komutları kullanılarak optimize edilmiş kod eklenmiştir. Nicelleştirme, blok kopyalama, bozulma hesaplama ve alt piksel farkı tahmini için işleyiciler optimize edilmiştir.
- ARM sistemleri için, Neon işlemci komutlarıyla hızlandırılmış işleyici varyantları eklendi.
Kaynak: opennet.ru
