Przejdź do treści

Kompresja stratna i bezstratna bez żargonu

Co naprawdę odrzuca kompresja, dlaczego zazwyczaj tego nie widać i w którym momencie staje się to zauważalne.

Kompresja bezstratna zapisuje obraz tak, aby można go było odtworzyć w identycznej postaci, podczas gdy kompresja stratna trwale odrzuca informacje, których ludzkie oko prawdopodobnie nie zauważy. Ta jedna różnica wyjaśnia, dlaczego zdjęcie może stać się 10 razy mniejsze bez widocznej zmiany jakości, a ta sama sztuczka nie udaje się na zrzucie ekranu.

Haczyk z kompresją stratną polega na tym, że utrata jakości się kumuluje. Każde zapisanie odrzuca nieco więcej danych, więc wielokrotne otwieranie i ponowne zapisywanie pliku JPEG pogarsza jego jakość w sposób, który nigdy nie występuje przy otwieraniu pliku PNG. Zachowaj bezstratny oryginał, eksportuj stratne kopie do publikacji i twórz nowe wersje z oryginału, a nie z kopii.

Co naprawdę usuwa kompresja stratna

Kompresja stratna usuwa drobne szczegóły i subtelne różnice kolorów, z którymi ludzki wzrok słabo sobie radzi. Wybory te opierają się na zmierzonych granicach percepcji, a nie na domysłach.

Ludzkie oczy wykrywają zmiany jasności znacznie dokładniej niż zmiany kolorów, dlatego format JPEG przechowuje informacje o kolorze w niższej rozdzielczości, zachowując nienaruszone szczegóły jasności. Format ten upraszcza również drobną teksturę w małych blokach obrazu, ponieważ lekko wygładzony fragment trawy nadal wygląda jak trawa, kosztując ułamek pierwotnej ilości danych.

Jak działa kompresja bezstratna

Kompresja bezstratna znajduje wzorce i opisuje je krócej, nie odrzucając przy tym żadnych danych. Odtworzenie pliku daje piksele identyczne z oryginałem, bajt po bajcie.

Rząd 400 identycznych białych pikseli można zapisać jako jedną instrukcję zamiast 400 wartości, dlatego jednolite kolory kompresują się rewelacyjnie, a szum fotograficzny prawie wcale. W ten sposób działa PNG, WebP w trybie bezstratnym, a także kompresja wewnątrz archiwum ZIP.

Które formaty są które

FormatTypPrzezroczystośćNajlepszy do
JPEGTylko stratnyNieZdjęcia
PNGTylko bezstratnyTakZrzuty ekranu, logo, diagramy
WebPOba trybyTakPrawie wszystko w sieci
AVIFOba trybyTakDuże zdjęcia
HEICStratny, możliwy bezstratnyTakPamięć aparatów w telefonach
GIFBezstratny, 256 kolorówTak, pojedynczy kolorNiewielkie elementy, w większości zastąpiony
BMPPraktycznie bez kompresjiOgraniczonaNic współczesnego

WebP i AVIF to najbardziej użyteczne pozycje, ponieważ obie oferują oba tryby. Jeden format może zatem poprawnie obsłużyć zarówno zdjęcie, jak i logo, czego ani JPEG, ani PNG nie potrafią zrobić samodzielnie.

Dlaczego wielokrotne zapisywanie niszczy plik JPEG

Każdy stratny zapis odrzuca szczegóły z obrazu, który już wcześniej stracił szczegóły, a uszkodzenia się kumulują. Drugi zapis nie przywróci tego, co usunął pierwszy, i usunie jeszcze więcej z tego, co pozostało.

Po 5 lub 6 cyklach efekt staje się widoczny jako pikseloza na gładkich obszarach i poświaty wokół ostrych krawędzi. Problem ten pojawia się najczęściej przy wielokrotnym udostępnianiu zdjęć, ponieważ zdjęcie przesyłane dalej przez kilka komunikatorów może przejść przez 4 lub 5 kodowań, zanim ktokolwiek je wyedytuje. Praca na oryginale za każdym razem całkowicie eliminuje ten problem.

Kiedy kompresja stratna jest właściwym wyborem

  • Zdjęcia na stronie internetowej, gdzie 70-procentowa redukcja rozmiaru jest niewidoczna dla odwiedzających.
  • Zdjęcia produktów w sklepie, gdzie szybkość ładowania strony bezpośrednio wpływa na sprzedaż.
  • Zdjęcia do formularzy przesyłania, gdzie rygorystyczny limit KB nie pozostawia innej możliwości.
  • Obrazy w wiadomościach e-mail, gdzie każdy kilobajt jest pobierany na telefonie.
  • Posty w mediach społecznościowych, gdzie serwis i tak ponownie skompresuje plik.

Kiedy kompresja bezstratna jest właściwym wyborem

  • Pliki źródłowe i oryginały, które będą później edytowane lub ponownie eksportowane.
  • Zrzuty ekranu i diagramy, na których ostre krawędzie i tekst ucierpiałyby przy kompresji stratnej.
  • Logo i elementy tożsamości marki przekazywane innym osobom do użytku w ich własnych materiałach.
  • Obrazy medyczne, prawne i naukowe, gdzie zmodyfikowane piksele mogą nieść za sobą poważne konsekwencje.
  • Wszystko z przezroczystością, która musi pozostać idealnie dokładna na krawędziach.

Wyjaśnienie ustawienia jakości

Wskaźnik jakości kontroluje, jak agresywnie odrzucane są szczegóły, i nie jest on procentem żadnej konkretnej wartości. Jakość 50 nie oznacza połowy jakości, a jakość 100 nie oznacza kompresji bezstratnej.

Liczba ta odpowiada temu, jak bardzo koder upraszcza każdy blok obrazu. Format JPEG przy jakości 100 nadal odrzuca informacje, dlatego to ustawienie marnuje miejsce, zamiast zachowywać wszystko. Różne formaty korzystają z tej skali inaczej, więc WebP przy 80 i AVIF przy 60 wyglądają porównywalnie do JPEG przy 85.

Jak zbudować bezpieczny proces pracy

Aby uniknąć skumulowanych uszkodzeń w swojej bibliotece, przestrzegaj tych 5 zasad.

  1. Pozostaw oryginalny plik z aparatu lub projektu nienaruszony, w folderze, z którego nigdy nie eksportujesz bezpośrednio.
  2. Wprowadzaj zmiany na bezstratnej kopii, a nie na gotowym pliku JPEG.
  3. Za każdym razem eksportuj kopie docelowe z oryginału, a nie z poprzedniego eksportu.
  4. Wybieraj format docelowy w zależności od przeznaczenia, używając WebP do sieci, a JPG do formularzy i e-maili.
  5. Gdy potrzebny jest nowy rozmiar lub format, wykonaj ponowny eksport zamiast ponownej kompresji.

Zasada 3 jest łamana najczęściej. Ponowna kompresja istniejącego eksportu jest w danej chwili szybsza, ale za każdym razem dodaje kolejną generację strat.

Dlaczego plik ZIP nie zmniejsza rozmiaru JPEG

Skompresowanie folderu z plikami JPEG do archiwum ZIP prawie nic nie daje, ponieważ te obrazy są już skompresowane. Archiwum ZIP zawierające 200 zdjęć jest zazwyczaj tylko o 1 do 3 procent mniejsze niż same zdjęcia.

ZIP stosuje kompresję bezstratną, która działa poprzez wyszukiwanie powtórzeń, a koder stratny zdążył już usunąć większość dostępnych powtórzeń. Ten sam folder z nieskompresowanymi plikami BMP zmniejszyłby się drastycznie, ponieważ nic wcześniej z nimi nie robiono. ZIP pozostaje przydatny do łączenia wielu plików w jedno pobranie, co jest jednak ułatwieniem, a nie redukcją rozmiaru.

Czy można ocenić, jak bardzo skompresowany jest obraz

Porównaj rozmiar pliku z liczbą pikseli, ponieważ zdjęcie o rozmiarze znacznie poniżej 1 bajta na piksel zostało mocno skompresowane. Zdjęcie o wymiarach 1000 na 1000 pikseli mające 60 KB zostało mocno skompresowane, podczas gdy ten sam obraz mający 400 KB – nie.

Ocena wizualna również działa, gdy wiesz, na co patrzeć. Przybliż obraz do 100 procent i sprawdź gładkie obszary pod kątem słabo widocznych kwadratowych bloków oraz ostre krawędzie pod kątem poświaty. Oba te artefakty pojawiają się w dokładnie tych samych miejscach, niezależnie od użytego narzędzia, więc taka kontrola jest szybka i niezawodna.

Czy uszkodzenia spowodowane kompresją stratną można naprawić

Nie, odrzuconych szczegółów nie da się odzyskać, ponieważ te informacje nie są nigdzie zapisane w pliku. Konwersja uszkodzonego pliku JPEG do formatu PNG da większy plik zawierający te same uszkodzenia.

Niektóre narzędzia do edycji wygładzają artefakty JPEG, co raczej maskuje uszkodzenia niż je cofa, a przy okazji zmiękcza rzeczywiste szczegóły. Jedynym prawdziwym rozwiązaniem jest powrót do oryginalnego pliku. To praktyczny powód, dla którego warto przechowywać oryginały, i powód, dla którego folder z oryginalnymi zdjęciami z aparatu jest wart miejsca na dysku, które zajmuje.

Gdzie te pojęcia pojawiają się w rzeczywistych narzędziach

Oprogramowanie rzadko używa bezpośrednio słów stratny i bezstratny, oferując w zamian suwak jakości lub gotowe ustawienia eksportu. Świadomość tego, z którego trybu korzystasz, ma większe znaczenie niż etykieta, którą go oznaczono.

  • Suwak jakości oznacza kompresję stratną, niezależnie od nazwy formatu.
  • Zapisz dla Internetu w programach graficznych oznacza eksport stratny z określoną jakością.
  • Optymalizacja lub kompresja PNG oznacza bezstratną reorganizację danych, chyba że redukowana jest liczba kolorów.
  • Eksport jako PNG 8 oznacza redukcję palety barw, co trwale zmienia obraz.
  • Docelowy rozmiar w KB oznacza, że narzędzie będzie obniżać jakość, aż plik się zmieści, więc jest to zawsze proces stratny.

Stosowanie właściwego trybu w całej bibliotece

Najpierw podziel obrazy na zdjęcia i grafiki, a następnie zastosuj kompresję stratną do jednej grupy, a bezstratną do drugiej. Przetwarzanie mieszanego folderu przy użyciu jednego ustawienia zawsze uszkodzi połowę plików.

Wrzuć do 500 plików naraz, ustaw jakość oraz format dla tej grupy, a drugą grupę przetwórz osobno. Wszystko działa w Twojej przeglądarce na Twoim własnym procesorze, więc oryginały, projekty dla klientów i niepublikowane prace nigdy nie trafiają na serwer. Ponieważ nic nie jest przesyłane, oryginalne pliki pozostają dokładnie tam, gdzie były, a zmieniają się tylko eksportowane wersje.

Powrót do bloga