Wydanie kodera wideo SVT-AV1 1.5 opracowanego przez firmę Intel

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.

Aby korzystać z SVT-AV1, wymagany jest procesor x86_64 z obsługą instrukcji AVX2. Kodowanie 10-bitowych strumieni AV1 w jakości 4K wymaga 48 GB pamięci RAM, 1080p – 16 GB, 720p – 8 GB, 480p – 4 GB. Ze względu na złożoność algorytmów stosowanych w AV1, kodowanie tego formatu wymaga znacznie więcej zasobów niż inne formaty, co nie pozwala na wykorzystanie standardowego kodera AV1 do transkodowania w czasie rzeczywistym. Na przykład podstawowy koder z projektu AV1 wymaga 5721, 5869 i 658 razy więcej obliczeń w porównaniu do koderów x264 (profil „główny”), x264 (profil „wysoki”) i libvpx-vp9.

Wśród zmian w nowej wersji SVT-AV1:

  • Kompromisy jakość/szybkość zostały zoptymalizowane, w wyniku czego presety M1-M5 zostały przyspieszone o 15-30%, a presety M6-M13 o 1-3%.
  • Dodano nowe ustawienie wstępne MR (--preset -1), które jest reklamowane jako zapewniające jakość referencyjną.
  • Zoptymalizowano działanie presetów M8-M13 w trybie kodowania o niskim opóźnieniu.
  • Dodano obsługę dynamicznego wyboru hierarchicznych struktur przewidywania zmian „miniGOP” (Grupa obrazów) dla konfiguracji dostępu swobodnego, domyślnie włączona w ustawieniach wstępnych do M9 włącznie. Możliwe jest również określenie mniejszego początkowego rozmiaru miniGOP, aby przyspieszyć wstępne ładowanie.
  • Dostępna jest możliwość zmiany współczynników skalowania lambda w wierszu poleceń.
  • Wtyczka do gstreamera została przepisana.
  • Dodano możliwość pominięcia określonej liczby klatek przed rozpoczęciem kodowania.
  • Dokonano znacznego oczyszczenia nieużywanych zmiennych i funkcji statycznych, a komentarze w kodzie zostały przeformatowane. Rozmiar nazw zmiennych został zmniejszony, aby kod był łatwiejszy do odczytania.

Źródło: opennet.ru

Dodaj komentarz