Opublikowano wydanie biblioteki SVT-AV1 1.5 (Scalable Video Technology AV1) z implementacjami kodera i dekodera formatu kodowania wideo AV1, do którego akceleracji wykorzystywane są środki sprzętowego przetwarzania równoległego obecne w nowoczesnych procesorach Intel. Projekt został stworzony przez firmę Intel we współpracy z Netfliksem w celu osiągnięcia poziomu wydajności odpowiedniego do transkodowania wideo w locie i wykorzystania w usługach wideo na żądanie (VOD). Obecnie prace nad nim prowadzone są pod auspicjami Open Media Alliance (AOMedia), które nadzoruje rozwój formatu kodowania wideo AV1. Wcześniej projekt był rozwijany w ramach projektu OpenVisualCloud, w ramach którego rozwijane są także kodery SVT-HEVC i SVT-VP9. Kod rozpowszechniany jest na licencji BSD.
SVT-AV1 wymaga procesora x86_64 z obsługą AVX2. Kodowanie 10-bitowych strumieni AV1 w jakości 4K wymaga 48 GB pamięci RAM, 1080p – 16 GB, 720p – 8 GB, a 480p – 4 GB. Ze względu na złożoność algorytmów używanych w AV1, kodowanie tego formatu wymaga znacznie więcej zasobów niż w przypadku innych formatów, co uniemożliwia wykorzystanie natywnego kodera AV1 do transkodowania w czasie rzeczywistym. Na przykład natywny koder AV1 wymaga 5721, 5869 i 658 razy więcej obliczeń niż kodery x264 (profil główny), x264 (profil wysoki) i libvpx-vp9.
Wśród zmian w nowej wersji SVT-AV1:
- Zoptymalizowano kompromisy pomiędzy jakością i szybkością, w wyniku czego ustawienia wstępne M1-M5 zostały przyspieszone o 15-30%, a ustawienia wstępne M6-M13 o 1-3%.
- Dodano nowy preset MR (--preset -1), który jest promowany jako zapewniający jakość referencyjną.
- Zoptymalizowano działanie ustawień wstępnych M8-M13 w trybie kodowania o niskim opóźnieniu.
- Dodano obsługę dynamicznego wyboru hierarchicznych struktur przewidywania zmian miniGOP (Grupa Obrazów) dla konfiguracji z dostępem swobodnym, domyślnie włączoną w ustawieniach wstępnych do M9 włącznie. Dostępna jest również możliwość określenia mniejszego rozmiaru początkowego miniGOP w celu przyspieszenia wstępnego ładowania.
- Dodano możliwość zmiany współczynników skalowania lambda z poziomu wiersza poleceń.
- Wtyczka dla gstreamer została przepisana.
- Dodano możliwość pominięcia określonej liczby klatek przed rozpoczęciem kodowania.
- Przeprowadzono gruntowne porządkowanie nieużywanych zmiennych i funkcji statycznych, a komentarze do kodu zostały przeformatowane. Nazwy zmiennych zostały zmniejszone, aby poprawić czytelność kodu.
Źródło: opennet.ru
