Informacje o tym, jak AVIF został przyjęty w ekosystemie.
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.
Co nowego w ekosystemie AVIF?
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%.
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.:
- AutoOptimize
- Konwertowanie na potrzeby multimediów
- EWWW Image Optimizer
- Optimole
- Optymalizator obrazów ShortPixel
Deweloperzy, którzy lubią samodzielnie testować narzędzia, mogą zacząć od korzystania z narzędzi takich jak ImageMagick i FFmpeg.
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 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.
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.
- 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%.
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.