Апублікаваны выпуск бібліятэкі SVT-AV1 2.0 (Scalable Video Technology AV1) c рэалізацыямі кадавальніка і дэкадавальніка фармату кадавання відэа AV1, для паскарэння якіх задзейнічаны прысутныя ў сучасных CPU Intel сродкі апаратнага распаралельвання вылічэнняў. Праект створаны кампаніяй Intel у партнёрстве з Netflix з мэтай дасягнення ўзроўню прадукцыйнасці, прыдатнага для перакадавання відэа на лета і прымянення ў сэрвісах, якія аддаюць відэа па запыце (VOD). У цяперашні час распрацоўка вядзецца пад эгідай альянсу Open Media (AOMedia), які курыруе развіццё фармату кадавання відэа AV1. Раней праект развіваўся ў рамках праекту OpenVisualCloud, які таксама распрацоўвае кадавальнікі SVT-HEVC і SVT-VP9. Код распаўсюджваецца пад ліцэнзіяй BSD.
SVT-AV1 можа быць сабраны для сістэм на базе любых архітэктур, для якіх маецца кампілятар з падтрымкай стандарту C99, але найлепшая прадукцыйнасць дасягаецца на сістэмах x86_64, для якіх ужываюцца асэмблерныя аптымізацыі на базе інструкцый SIMD (пажадана наяўнасць у CPU падтрымкі AVX2, але ў якасці мінімуму дастаткова і SS2). Спажыванне памяці залежыць ад колькасці задзейнічаных пры кадаванні працэсарных ядраў, якія рэгулююцца опцыяй "-lp". З-за ўскладненні ужывальных у AV1 алгарытмаў, для кадавання дадзенага фармату патрабуецца істотна больш рэсурсаў, чым для іншых фарматаў, што не дазваляе ўжываць штатны кадавальнік AV1 для перакадавання ў рэальным часе. Напрыклад, штатны кадавальнік ад праекту AV1 патрабуе ў 5721, 5869 і 658 разоў больш вылічэнняў у параўнанні з кадавальнікамі x264 (профіль «main»), x264 (профіль «high») і libvpx-vp9.
Сярод змен у новым выпуску SVT-AV1:
- Ажыццёўлены пераход на новую нумарацыю версій, у адпаведнасці з якой першая лічба ў версіі будзе мяняцца пры кожнай змене API/ABI.
- Унесены змены ў API, звязаныя з пераходам да індыкацыі завяршэння патоку (EOS – End Of Stream) у апошнім кадры замест выкарыстання пустога кадра, што дазволіла выключыць затрымку на чаканне лішняга кадра. Змена API ужо адлюстравана ў кодавай базе FFmpeg.
- Выдалены трохпрахадны рэжым пераменнага бітрэйту (3-pass VBR), замест якога зараз выкарыстоўваецца механізм шматпрахаднога VBR. Шматпрахадны рэжым VBR зведзены да выканання двух праходаў для забеспячэння інтэграцыі з FFmpeg.
- У кадавальнік дададзены аптымізацыі, у выніку якіх эфектыўнасць сціску прасэтаў M9-M13 павысілася на 1-4%, а спажыванне памяці ў прасеце M5 знізілася на 20-35% у рэжыме LP 8 і на 1-5% у іншых рэжымах. Спажыванне памяці ў астатніх прасэтах зменшылася на 1-5%.
- Праведзена аптымізацыя кампрамісаў якасць/хуткасць для прасэтаў, якія выстаўляюць высокі ўзровень якасці. Праца пресета MR, які прадстаўляе эталоннае якасць, паскорана на 100%.
- У функцыі, напісаныя толькі на мове Сі, дададзены аптымізацыі, спецыфічныя для архітэктуры ARM.
Дадаткова можна адзначыць выпуск праекту dav1d 1.4.1, у рамках якога супольнасці VideoLAN і FFmpeg развіваюць бібліятэку з рэалізацыяй альтэрнатыўнага вольнага дэкадавальніка фармату кадавання відэа AV1. Бібліятэка dav1d падтрымлівае ўсе магчымасці AV1, у тым ліку пашыраныя віды субдыскрэтызацыі і ўсе заяўленыя ў спецыфікацыі параметры кіравання глыбінёй колеру (8, 10 і 12 біт). Ключавой асаблівасцю dav1d з'яўляецца арыентацыя на дасягненне максімальна магчымай прадукцыйнасці дэкадавання і забеспячэнне якаснай працы ў шматструменным рэжыме. Код праекту напісаны на мове C (C99) з асэмблернымі ўстаўкамі (NASM/GAS) і распаўсюджваецца пад ліцэнзіяй BSD. Рэалізавана падтрымка архітэктур x86, x86_64, ARMv7 і ARMv8, і аперацыйных сістэм FreeBSD, Linux, Windows, macOS, Android і iOS.
Версія dav1d 1.4 характэрна падтрымкай новых архітэктур Loongarch і RISC-V, а таксама задзейнічаннем дадатковых аптымізацый на базе інструкцый AVX-512, паскарэннем працы фільтраў 6tap на сістэмах ARM, падвышэннем эфектыўнасці шматструменнай працы і скарачэннем памеру бінарных дадзеных на ARM-64 V. Ухіленая ўразлівасць CVE-32-2024, якая прыводзіла да запісу ў вобласць па-за межамі буфера з-за цэлалікавага перапаўнення пры апрацоўцы кадраў вельмі вялікага памеру.
Крыніца: opennet.ru
