SVT-AV1 4.3.0 (Scalable Video Technology AV1) -kirjasto on julkaistu. Se sisältää AV1-videokoodausformaatin enkooderin ja dekooderin toteutukset, joita kiihdyttävät x86_64- ja ARM-prosessoreissa olevat laitteistotason rinnakkaislaskentalaajennukset. Intel loi projektin yhteistyössä Netflixin kanssa saavuttaakseen suorituskykytason, joka soveltuu reaaliaikaiseen videoiden transkoodaukseen ja käyttöön tilausvideopalveluissa (VOD). Kehitys on parhaillaan käynnissä Open Media Alliancen (AOMedia) alaisuudessa, joka valvoo AV1-videokoodausformaatin kehitystä. Projekti kehitettiin aiemmin OpenVisualCloud-projektissa, joka kehittää myös SVT-HEVC- ja SVT-VP9-enkoodereita. Koodi jaetaan BSD-lisenssillä.
SVT-AV1 voidaan kääntää mille tahansa arkkitehtuurille perustuville järjestelmille, joissa on C99-standardia tukeva kääntäjä, mutta paras suorituskyky saavutetaan x86_64-järjestelmissä, jotka hyödyntävät SIMD-käskyihin perustuvia assembler-optimointeja (AVX2-tuki on ensisijainen suorittimessa, mutta SSE2 riittää vähintään). Muistin kulutus riippuu koodaukseen käytettyjen suorittimen ytimien määrästä, jota säädetään "--lp"-asetuksella. AV1:ssä käytettyjen algoritmien monimutkaisuuden vuoksi tämän formaatin koodaus vaatii huomattavasti enemmän resursseja kuin muut formaatit.
SVT-AV1:n uuden julkaisun muutoksista:
- Проведена оптимизация компромиссов качество/скорость для всех пресетов, позволившая снизить нагрузку на CPU на 5-8% при сохранении того же уровня качества, а также сократить время кодирования на 10-11% в многопоточном режиме. Ускорено выполнение операций исключения неэффективных режимов кодирования (MD — Mode Decision), расчёта векторов движения (MV — Motion Vector) и параметров фильтров во время кодирования, вычисления размера частотных коэффициентов, поиска субпиксельных смещений, копирования блоков и отсеивания лишней детализации при помощи алгоритма RDOQ (Rate-Distortion Optimized Quantization). В многопоточом режиме для экономии ресурсов алгоритм определения трансляции содержимого экрана теперь применяется только к I-кадрам.
- Добавлен экспериментальный флаг «—fast-decode 3» для ускорения декодирования статичных изображений.
- Добавлен флаг «—fgs-table», включающий поддержку таблиц зернистости (film grain), и API FILM_GRAIN_EVENT для задания параметров зернистости в привязке к кадрам.
- Повышена скорость кодирования без потерь.
- В режиме кодирования с низкими задержками реализовано распараллеливание обработки блоков (tile).
- Добавлена опция «max_allowed_consecutive_frames_skips» для настройки пропуска кадров в режиме поддержания постоянного битрейта (CBR).
- Добавлен параметр «max_hierarchical_levels» для управления пулом буферов, применяемым при изменении размера групп промежуточных кадров (mini-GOP — Group of Pictures).
- Добавлена сборочная опция «—mobile-build» (в CMake — MOBILE_BUILD) для формирования 8-битной библиотеки для RTC, VOD и AVIF. Добавлены опции CONFIG_ENABLE_* для отключения cборки неиспользуемых инструментов кодирования.
- Для систем x86 реализованы 8-битные обработчики CDEF на базе инструкций AVX2 и SSE4.1, а также 16-битные прямые преобразования на базе инструкций AVX2 и AVX-512. Добавлен оптимизированный при помощи инструкций SSE4.1 код для межкадрового предсказания, работы с палитрами и трансформаций. Оптимизированы обработчики для квантования, копирования блоков, расчёта искажений и оценки cубпиксельных различий.
- Для систем ARM добавлены варианты обработчиков, ускоренные при помощи процессорных инструкций Neon.
Lähde: opennet.ru
