Wdrażanie pliku AVIF na potrzeby bardziej elastycznych witryn

Informacje o tym, jak AVIF został przyjęty w ekosystemie.

Jani Huoponen
Jani Huoponen
Vignesh Venkatasubramanian
Vignesh Venkatasubramanian

AVIF to nowy format obrazu, który szybko zyskuje popularność w internecie dzięki wysokiemu stopniowi kompresji, wydajności i szerokiemu zastosowaniu. AVIF to otwarty format obrazu bez tantiem, który opiera się na kodzieku wideo AV1 znormalizowanym przez Alliance for Open Media. W tym poście na blogu omówimy, jak AVIF jest wdrażany w ekosystemie, oraz jakie korzyści w zakresie wydajności i jakości mogą przynieść deweloperom pliki AVIF w przypadku obrazów statycznych i animacji.

Od czasu wprowadzenia formatu AVIF w Chrome, Firefox i Safari jego użycie w internecie stale rośnie. Obecnie prawie wszystkie przeglądarki obsługują format AVIF.

W Chrome, w ciągu niespełna roku od dodania obsługi AVIF w wersji stabilnej, wykorzystanie tego formatu wzrosło do około 1%.

Wykres liniowy pokazujący użycie formatu AVIF w Chrome od maja 2021 r. do marca 2023 r. Liczba użytkowników korzystających z pomocy wzrosła z 0% do niecałych 1,4%.

Wiele sieci CDN obrazów, takich jak Akamai, Cloudflare, Cloudinary i Imgix, udostępnia obecnie obrazy w formacie AVIF. W poście na blogu ogłaszającym obsługę formatu AVIF firma Imgix poinformowała o 60% mniejszym rozmiarze pliku w porównaniu z JPEG i 35% mniejszym rozmiarze w porównaniu z WebP. Taka oszczędność rozmiaru plików zapewnia znaczne oszczędności miejsca na dane, a jednocześnie przyspiesza wczytywanie stron, co przekłada się na szybsze największe wyrenderowanie treści (LCP). LCP to jeden z podstawowych wskaźników internetowych, który wskazuje, jak szybko wczytuje się największy blok treści na stronie. Korzystanie z nowoczesnych kodeków do kompresji obrazów to jedna z kluczowych technik, które pozwalają skrócić czas LCP. Lighthouse to świetne narzędzie dla programistów Chrome do testowania witryn internetowych i sprawdzania, ile oszczędności przyniesie AVIF.

WordPress to najpopularniejsza platforma do tworzenia stron internetowych na świecie. Deweloperzy mogą korzystać z wielu wtyczek do konwertowania obrazów na format AVIF, np.:

Deweloperzy, którzy lubią samodzielnie testować narzędzia, mogą zacząć od korzystania z narzędzi takich jak ImageMagickFFmpeg.

Szybkość kodowania AVIF

Szybka prędkość kodowania i wysoka jakość obrazu są kluczowe dla stosowania kompresji obrazu na dużą skalę. W ciągu ostatnich 2 lat znacznie wzrosła szybkość kodowania za pomocą oprogramowania AVIF. W porównaniu z innymi nowoczesnymi formatami obrazów statycznych AVIF generuje mniejsze pliki o podobnej jakości (patrz wykres poniżej, im niżej, tym lepiej), a także szybciej je koduje.

Wykres słupkowy porównujący różne rozmiary plików kodeków obrazu jako procent wyjściowego pliku TurboJPEG. Najmniejsza jest wartość AVIF, potem JPEG XL, potem WebP, a na końcu MozJPEG.

Wykres poniżej (im wyższa wartość, tym lepiej) pokazuje szybkość kodowania AVIF w porównaniu z innymi formatami obrazów. Kodery poprzedniej generacji, takie jak WebP, korzystają z mniej złożonych (ale też mniej wydajnych) algorytmów kompresji. Dzięki schematowi kodowania wielowątkowego AVIF osiąga podobną wydajność w typowych przypadkach użycia, a jednocześnie zapewnia znaczny wzrost kompresji.

Porównanie szybkości kodowania kodeka obrazu. Porównywane kodery to średni AVIF, średni JPEG XL, średni WebP (jeden wątek) i średni MozJPEG (jeden wątek). AVIF to jeden z najszybszych koderów obrazów pod względem najlepszej jakości i domyślnej metody działania, ale jest najwolniejszy spośród wszystkich koderów zapewniających wydajność „w locie”.

Dla deweloperów zainteresowanych bardziej szczegółowym porównaniem szybkości kodowania i jakości obrazu strona Image Coding Comparisons zawiera wyniki testów porównawczych, które można odtworzyć.

Implementacje oprogramowania dla nowoczesnych kodeków obrazów, takich jak AVIF i WebP, są zoptymalizowane pod kątem architektur procesorów x86 i ARM, ale kompresja ogromnych ilości obrazów na dużą skalę może być kosztowna. Jednym ze sposobów na obniżenie kosztów kompresji jest sprawdzenie akceleracji sprzętowej. Firma Bluedot opracowała koder Pulsar-AVIF z przyspieszeniem sprzętowym, który działa na programowalnych układach FPGA, takich jak Alveo U250 firmy AMD. W porównaniu z opartym na oprogramowaniu kodekiem avifenc, Pulsar-AVIF zapewnia od 7 do 23 razy większą szybkość przy podobnej skuteczności kompresji.

za pomocą kodera. Czas kodowania (ms) Klatki na sekundę Wykorzystanie procesora Specyfikacja sprzętowa
Pulsar-AVIF
(FPGA)
60 409,85 305% AMD Alveo U250 1ea + Intel(R) Xeon(R)
Procesor Platinum 8171 2,6 GHz, 10 rdzeni
avifenc
(libaom)
405 59,26 3200% Procesor Intel(R) Xeon(R) Platinum 8370C
2,8 GHz, 32 rdzenie
avifenc
(SVT-AV1)
1325 18.11 3200-procentowy Procesor Intel(R) Xeon(R) Platinum 8370C
2,8 GHz, 32 rdzenie
Porównanie szybkości kodowania AVIF
  • Zestaw testowy: Kodak (24 obrazy o wymiarach 768 x 512)
  • Kodowanie 24 obrazów jednocześnie (24 procesy)
  • Każdy proces kodowania oprogramowania jest realizowany z 4 wątkami. (-j 4)


Deweloperzy mogą wdrożyć koder Pulsar-AVIF za pomocą maszyn wirtualnych działających w chmurze, takich jak Azure NP-Series.

Funkcje AVIF dla elastycznych stron internetowych

AVIF ma kilka ciekawych funkcji, które pomogą zapewnić bardziej elastyczne strony internetowe. Tym razem zajmiemy się animowanymi formatami AVIF, które są zdecydowanie najskuteczniejszym sposobem wyświetlania ciekawych animacji w internecie.

Animowany AVIF

Animowany GIF to nadal popularny format animowanych obrazów, mimo że ma już 35 lat. Największe wady animowanych GIF-ów to obsługa tylko 256 kolorów i słabe kompresowanie, co prowadzi do bardzo dużych rozmiarów plików, a także ogranicza rozdzielczość lub liczbę klatek na sekundę w praktycznych zastosowaniach. Animowane kodowanie AVIF przypomina jednak kodowanie wideo AV1, które znacznie oszczędza rozmiar plików w porównaniu do animowanych plików GIF.

Przeprowadziliśmy prosty test porównawczy, w którym zakodowaliśmy zestaw animowanych GIF-ów zarówno do formatu AVIF, jak i JPEG XL. W przypadku testowanego zbioru średnia oszczędność miejsca na dysku w porównaniu z oryginalnymi plikami GIF wyniosła około 86%, a w porównaniu z animowanymi plikami JPEG XL* – około 73%.

Porównanie skuteczności kodeków animowanych obrazów. Format AVIF przewyższa formaty GIF i JPEG XL pod względem średniego i medianowego rozmiaru pliku.
* Wersje libavif i libjxl: libavif w wersji 4cff6a3 (libaom w wersji 3.5.0), libjxl w wersji 176b1c03. Zbiór testowy: 15 przykładowych GIF-ów z Wikipedii.

Chrome, Firefox i Safari obsługują odtwarzanie animowanych plików AVIF.

FFmpeg to jedno z narzędzi do tworzenia animowanych plików AVIF. Oto podstawowy przykład konwertowania GIF-a na AVIF za pomocą FFmpeg:

ffmpeg -i "$INPUT_GIF" -crf $CRF -b:v 0 "$OUTPUT.avif"

$CRF to żądana jakość wyjściowa na skali od 0 do 63. Im niższa wartość, tym lepsza jakość i większy rozmiar pliku. 0 wykorzystuje kompresję bezstratną. Rozpocznij od wartości 23 w przypadku małych animowanych plików AVIF.

Do kodowania obrazów AVIF FFmpeg domyślnie używa biblioteki libaom, ale może też użyć biblioteki rav1e lub SVT-AV1, jeśli są dostępne. Więcej informacji o opcjach kodowania i dostrojeniu parametrów kodowania pod kątem kompromisu między szybkością a jakością znajdziesz w przewodniku po kodowaniu AV1 w FFmpeg.

Innym zastosowaniem jest przepakowanie pliku wideo AV1 do formatu AVIF bez ponownego kodowania oryginalnego pliku. Jest to znacznie tańsze niż dekodowanie lub kodowanie oryginalnego pliku AV1 i umożliwia użycie filmu AV1 z elementem <img>. Aby to zrobić, prześlij parametr -c:v copy do FFmpeg.

ffmpeg -i "$INPUT_AV1_VIDEO" -c:v copy -an "$OUTPUT.avif"

Podsumowanie

Od czasu wprowadzenia formatu AVIF jego użycie w internecie stale rośnie. Jest on szeroko obsługiwany przez przeglądarki, sieci CDN obrazów, wtyczki WordPressa i narzędzia kodowania. Podsumowując, AVIF to świetny wybór do wyświetlania obrazów w internecie. Format ten jest szybki do kodowania i dekodowania, a jednocześnie zapewnia najlepszą jakość lub najmniejszy rozmiar pliku – w zależności od tego, co jest dla Ciebie ważniejsze w przypadku Twojej witryny. AVIF to najskuteczniejszy sposób przesyłania animacji w internecie. Jeśli masz pytania, komentarze lub propozycje funkcji, skontaktuj się z nami na liście mailingowej av1-discuss, w społeczności AOM na GitHubie i w wiki AVIF.

Baner powitalny z Unsplash autorstwa Amal S.