Wydanie rav1e 0.5, kodera AV1

Rav1e 0.5.0, został wydany koder dla formatu kodowania wideo AV1. Produkt jest rozwijany przez społeczności Mozilli i Xiph i różni się od referencyjnej implementacji libaom napisanej w językach C/C++ zwiększeniem szybkości kodowania i większą dbałością o bezpieczeństwo (wydajność kompresji wciąż pozostaje w tyle). Produkt napisany jest w języku programowania Rust z optymalizacjami asemblera (72.2% - asembler, 27.5% - Rust), kod rozpowszechniany jest na licencji BSD. Gotowe kompilacje przygotowywane są dla systemów Windows i macOS (kompilacje dla systemu Linux są chwilowo pomijane ze względu na problemy z systemem ciągłej integracji).

rav1e obsługuje wszystkie główne funkcje AV1, w tym obsługę klatek wewnątrz- i międzyramkowych (wewnątrz- i międzyramkowych), superbloków 64x64, podpróbkowania chrominancji 4:2:0, 4:2:2 i 4:4:4, 8 -, 10- i 12-bitowe kodowanie głębi kolorów, optymalizacja zniekształceń RDO (optymalizacja zniekształceń szybkości), różne tryby przewidywania zmian między klatkami i wykrywania transformacji, kontrola szybkości transmisji i wykrywanie obcięcia sceny.

Format AV1 wyraźnie wyprzedza H.264 i VP9 pod względem możliwości kompresji, ale ze względu na złożoność algorytmów, które je implementują, kodowanie zajmuje znacznie więcej czasu (pod względem szybkości kodowania libaom pozostaje setki razy w tyle libvpx-vp9 i tysiące razy za x264). Koder rav1e zapewnia 11 poziomów wydajności, z których najwyższy pozwala osiągnąć prędkości zbliżone do kodowania w czasie rzeczywistym. Koder jest dostępny zarówno jako narzędzie wiersza poleceń, jak i jako biblioteka.

Nowa wersja zawiera następujące zmiany:

  • Znaczące przyspieszenie kodeka;
    Wydanie rav1e 0.5, kodera AV1
  • Naprawianie błędu, który powodował awarię kodera przy niektórych rozmiarach wideo;
  • Zastosowanie instrukcji AVX2 do znacznego (nawet 13-krotnego) przyspieszenia estymacji Wienera dla 16 bitów na kanał. Podobnie dodano wykorzystanie instrukcji SIMD, co pozwoliło przyspieszyć obliczenia nawet 7-krotnie w podobnych warunkach;
  • Mnóstwo drobnych poprawek i optymalizacji dla platform x86, arm32 i arm64.

Źródło: opennet.ru

Dodaj komentarz