AV1 video formati uchun SVT-AV2.0 1 kodlovchisi va dav1.4d 1 dekoderining chiqarilishi

SVT-AV1 2.0 (Scalable Video Technology AV1) kutubxonasining chiqarilishi AV1 video kodlash formatidagi kodlovchi va dekoderni amalga oshirish bilan chop etildi, uni tezlashtirish uchun zamonaviy Intel protsessorlarida mavjud bo'lgan apparat parallel hisoblash vositalaridan foydalaniladi. . Loyiha Intel tomonidan Netflix bilan hamkorlikda videoni tez kodlash va talab boΚ»yicha video (VOD) xizmatlarida foydalanish uchun mos ishlash darajasiga erishish maqsadida yaratilgan. Hozirda AV1 video kodlash formatini ishlab chiqishni nazorat qiluvchi Open Media Alliance (AOMedia) homiyligida ishlanmalar olib borilmoqda. Ilgari loyiha OpenVisualCloud loyihasi doirasida ishlab chiqilgan boβ€˜lib, u SVT-HEVC va SVT-VP9 kodlovchilarini ham ishlab chiqadi. Kod BSD litsenziyasi ostida tarqatiladi.

SVT-AV1 C99 standartini qo'llab-quvvatlaydigan kompilyator mavjud bo'lgan har qanday arxitektura asosidagi tizimlar uchun yig'ilishi mumkin, lekin eng yaxshi ishlashga SIMD ko'rsatmalariga asoslangan yig'ish optimallashtirish qo'llaniladigan x86_64 tizimlarida erishiladi (uga ega bo'lish maqsadga muvofiqdir) Protsessorda AVX2-ni qo'llab-quvvatlaydi, lekin minimal darajada etarli va SS2). Xotira iste'moli "-lp" opsiyasi bilan tartibga solingan kodlash paytida ishlatiladigan protsessor yadrolari soniga bog'liq. AV1 da qoβ€˜llaniladigan algoritmlarning murakkabligi tufayli ushbu formatni kodlash boshqa formatlarga qaraganda sezilarli darajada koβ€˜proq resurslarni talab qiladi, bu esa real vaqtda transkodlash uchun standart AV1 kodlovchisidan foydalanishga imkon bermaydi. Masalan, AV1 loyihasidagi stok kodlovchisi x5721 (β€œasosiy” profil), x5869 (β€œyuqori” profil) va libvpx-vp658 kodlovchilariga nisbatan 264, 264 va 9 marta koβ€˜proq hisob-kitoblarni talab qiladi.

SVT-AV1 ning yangi versiyasidagi o'zgarishlar orasida:

  • Yangi versiya raqamiga o'tish amalga oshirildi, unga ko'ra versiyadagi birinchi raqam har bir API/ABI o'zgarishi bilan o'zgaradi.
  • APIga bo'sh kadrdan foydalanish o'rniga oxirgi kadrda oqim oxiri ko'rsatkichiga (EOS - End Of Stream) o'tish bilan bog'liq o'zgarishlar kiritildi, bu esa qo'shimcha kadrni kutishdagi kechikishni bartaraf etdi. API o'zgarishi allaqachon FFmpeg kod bazasida aks ettirilgan.
  • Uch o'tishli o'zgaruvchan bit tezligi rejimi (3-pasli VBR) olib tashlandi va endi ko'p o'tishli VBR mexanizmi bilan almashtirildi. FFmpeg bilan integratsiyani ta'minlash uchun VBR ko'p o'tish rejimi ikki o'tishga qisqartirildi.
  • Kodlovchiga optimallashtirishlar qo'shildi, buning natijasida M9-M13 oldindan o'rnatilgan siqish samaradorligi 1-4% ga oshdi va M5 oldindan o'rnatilgan xotira iste'moli LP 20 rejimida 35-8% ga kamaydi va boshqa rejimlarda 1-5% gacha. Boshqa oldindan o'rnatilgan xotira iste'moli 1-5% ga kamaydi.
  • Sifatning yuqori darajasini o'rnatadigan oldindan o'rnatilgan sozlamalar uchun sifat/tezlik murosalarini optimallashtirish amalga oshirildi. Malumot sifati MR oldindan o'rnatilishi 100% ga tezlashtirildi.
  • Faqat C funksiyalariga ARM-ga xos optimallashtirishlar qo'shildi.

Bundan tashqari, biz dav1d 1.4.1 loyihasining chiqarilishini qayd etishimiz mumkin, uning doirasida VideoLAN va FFmpeg hamjamiyatlari AV1 video kodlash formati uchun muqobil bepul dekoderni amalga oshirish bilan kutubxonani ishlab chiqmoqda. dav1d kutubxonasi AV1 ning barcha xususiyatlarini, jumladan, quyi namuna olishning ilg'or turlarini va spetsifikatsiyada (8, 10 va 12 bit) ko'rsatilgan barcha rang chuqurligini boshqarish parametrlarini qo'llab-quvvatlaydi. Dav1d ning asosiy xususiyati uning eng yuqori dekodlash samaradorligiga erishish va ko'p tarmoqli rejimda yuqori sifatli ishni ta'minlashga qaratilganligidir. Loyiha kodi montaj qo'shimchalari (NASM/GAS) bilan C (C99) da yozilgan va BSD litsenziyasi ostida tarqatiladi. x86, x86_64, ARMv7 va ARMv8 arxitekturalari hamda FreeBSD, Linux, Windows, macOS, Android va iOS operatsion tizimlarini qoβ€˜llab-quvvatlash amalga oshirildi.

dav1d 1.4 versiyasi yangi Loongarch va RISC-V arxitekturalarini qo'llab-quvvatlashi, shuningdek, AVX-512 ko'rsatmalari asosida qo'shimcha optimallashtirishni joriy etish, ARM tizimlarida 6 ta tegli filtrlarning ishlashini tezlashtirish, ko'p bosqichli ishlarning samaradorligini oshirish va kamaytirish bilan ajralib turadi. ARM64, ARM32 va RISC tizimlarida ikkilik ma'lumotlar hajmi V. CVE-2024-1580 zaifligi tuzatildi, bu juda katta ramka o'lchamlarini qayta ishlashda butun sonlar to'lib ketishi tufayli chegaradan tashqarida yozishga olib keldi.

Manba: opennet.ru

a Izoh qo'shish