Kiedy wysyłasz zdjęcie na WeChat lub przesyłasz je na stronę internetową, za kulisami dzieje się jedna rzecz: plik staje się mniejszy.

Ale „zmniejszanie się” w rzeczywistości odbywa się na dwa zupełnie różne sposoby. Jedno nazywa się „wyrzucaniem rzeczy”, drugie „przepakowywaniem”. W branży są to kompresja stratna i kompresja bezstratna — dwie podstawowe metody kompresji obrazu. Dzisiaj omówimy oba wyraźnie, prostym językiem, bez żargonu.

Definicja jednowierszowa: kompresja stratna usuwa szczegóły, których oko ledwo zauważa, zmniejszając pliki o 80-90%, ale proces jest nieodwracalny i oryginału nie można odzyskać; kompresja bezstratna nie zmniejsza ani jednego bitu i dekompresuje bajt po bajcie identycznie z oryginałem, ale zwykle zmniejsza pliki tylko o 20–50%.

Jak właściwie działa kompresja obrazu

Rozłóż zdjęcie, a zobaczysz po prostu stos kolorowych kropek. Zdjęcie wykonane telefonem składa się z dziesiątek milionów kropek, z których każda przechowuje wartość koloru. Plik jest duży, ponieważ wiernie przechowuje każdy z dziesiątków milionów kolorów.

Kompresja ma na celu jedno: wyrazić obraz za pomocą mniejszej liczby bajtów. Jak sprawić, by był mniejszy, ale nadal wyglądał tak samo? Dwie trasy.

Stratny: wyrzuć to, czego nie widzisz

Strata brzmi przerażająco — „odrzucanie danych”. Ale dobra kompresja stratna nie usuwa losowo pikseli; wykorzystuje „model ludzkiego wzroku” do obliczenia, których informacji prawdopodobnie nie zauważysz, których brakuje, odrzuca je i szczelnie pakuje resztę.

Pomyśl o tym jak o pisaniu streszczenia powieści: dobre streszczenie utrzymuje fabułę i pomija tylko przymiotniki, których nikt nie pamięta.

Efekt jest potężny. Zdjęcie o rozmiarze 5 MB skompresowane do 500 KB jest rutynowe — 80-90% mniejsze i wygląda tak samo na ekranie.

Jedyny koszt: nie możesz wrócić. Odrzucone bajty naprawdę zniknęły i w momencie zapisania akceptujesz tę wersję – ulica jednokierunkowa.

Bezstratny: niewiele zmian, po prostu przekodowany

Bezstratny jest bardziej uprzejmy. Plik staje się mniejszy, ale nie traci ani jednego bitu, dekompresując bajt po bajcie identycznie z oryginałem.

Robi dokładnie to samo, co ZIP: znajduje powtórzenia i wzorce w danych i rejestruje je w sposób bardziej oszczędzający miejsce.

Na przykład, jeśli rząd pikseli składa się z 200 identycznych niebieskich pikseli w rzędzie, kodowanie bezstratne nie zapisze „niebieskiego” 200 razy — po prostu zarejestruje ”niebieski ×200” i przejdzie dalej. Dlatego pięknie kompresuje zrzuty ekranu i interfejs użytkownika — obrazy pełne powtarzających się jednolitych kolorów.

Koszt jest równie oczywisty: pełna wierność, ale ograniczone oszczędności. W przypadku obrazów metoda bezstratna zazwyczaj zmniejsza pliki tylko o 20%–50%, czasem mniej. Na hałaśliwym, chaotycznym zdjęciu prawie nie ma wzorców, które można wykorzystać, więc bezstratność ledwo pomaga.

Wszystkie bezstratne warstwy PNG i WebP oraz FLAC w formacie audio podążają tą drogą. Nic nie jest stracone i jest mniejszy — o ile możesz tolerować, że nadal jest dość duży.

W jaki sposób JPEG ośmiela się usuwać Twoje kolory? Luka w ludzkiej wizji

Najpierw odpowiedz: JPEG to format kompresji stratnej. Pewnie zastanawiasz się: jak ośmiela się dotykać moich danych kolorystycznych?

Ponieważ wykorzystuje lukę w ludzkim wzroku. Oko ma dwa rodzaje komórek fotoreceptorów: pręciki odpowiadają za jasność, czopki za kolor. Pręcików jest około dwadzieścia razy więcej niż czopków, a rozdzielczość mózgu w zakresie jasności jest znacznie większa niż w przypadku koloru. Mówiąc wprost: jesteś niezwykle wrażliwy na światło i ciemność, ale dość niewrażliwy na kolor.

JPEG o tym wie. Podczas kompresji dzieli obraz na kanały jasności i kolorów, agresywnie przycina kolory i zachowuje jasność. Nazywa się to podpróbkowaniem chrominancji — zobacz wyjaśnienie w Wikipedii — i pozwala na wyrzucenie ponad połowy koloru, podczas gdy oko nie zauważa żadnej różnicy.

Następnie wykorzystuje dyskretną transformatę kosinusową (DCT), dzieląc obraz na częstotliwości i jeszcze mocniej wycinając drobne tekstury i szumy o wysokiej częstotliwości – rzeczy, które twoje oczy też nie są dobrze widoczne, szczególnie w kolorowych obszarach. Cała strategia polega na odrzuceniu „tego, za czym nie będziesz tęsknić”, a jest tego mnóstwo.

Ten 85% słodki punkt

W przypadku zdecydowanej większości zdjęć zapisanie JPEG w jakości 80-85 jest nie do odróżnienia od oryginału. Nie „wystarczająco blisko” — umieść je obok siebie w normalnej odległości na normalnym ekranie, a większość ludzi nie będzie w stanie rozpoznać, który jest który.

Nie przesadzam. Sama przeszłam kilka ślepych testów i wnioski są spójne: w wieku 85 lat ludzie po prostu nie widzą różnicy, która została usunięta. Aby go faktycznie dostrzec, trzeba by powiększyć do 400% i zmrużyć oczy na obszar o wielkości 20 pikseli, a nawet wtedy można by tylko zgadywać.

Ale różnica w wielkości między jakością 100 a 85 jest ogromna, często 60%–75% mniejsza. To nie jest zaokrąglanie — to różnica między natychmiastowym ładowaniem strony a frustrującym odbiciem i jest to najtrudniejsza wygrana w optymalizacji obrazu.

Zejdź poniżej 70, a zaczniesz to widzieć: blokowe krawędzie, zabłocone odcienie skóry, rozmyty tekst. Ale ten szeroki zakres 80-90 to najlepsza wartość — duże oszczędności przy zerowych widocznych kosztach.

Kiedy ponieść stratę bez zmartwień

Zdecydowana większość obrazów w Internecie powinna być stratna. Zdjęcia internetowe, przesyłane z serwisów społecznościowych i miniatury – wszystkie mają ten sam wymiar: nikt nie liczy pikseli na obrazie nagłówka podczas przewijania. JPEG/WebP w jakości 80-85 wygląda dobrze i ładuje się szybko.

Instagram i Facebook i tak rekompresują wszystko, co przesyłasz, więc przesłanie oryginalnego pliku TIFF nic nie daje. Miniatury są małe i pojawiają się dziesiątki na stronie, więc duża kompresja jest rozsądna. Wyślij zdjęcie do cioci — obejrzy je na swoim telefonie i nie potrzebuje oryginału o rozdzielczości 24 megapikseli.

W tych scenariuszach zaoszczędzony rozmiar jest rzeczywisty, a utrata jakości jest w większości teoretyczna. 90% mniejszy i zerowe postrzegane straty — to nie kompromis, tylko zdrowy rozsądek.

Kiedy musisz działać bezstratnie

Domyślną wartością jest strata, ale w takich przypadkach nawet niewielka strata jest zła:

  • Obrazowanie medyczne. Lekarz czytający skan w poszukiwaniu guzów nie powinien wymagać od ciebie decydowania, „który szczegół jest prawdopodobnie niezauważalny”. Kompresja stratna obrazów diagnostycznych jest ściśle regulowana przez organy takie jak FDA i ACR.
  • Wzorce archiwalne. Wzorcowe kopie zdjęć, dzieł sztuki i archiwów muszą być bezstratne. Dziś nie widzisz różnicy, ale nie wiesz, jakich narzędzi będzie wymagać jutro. Stratna jest ulicą jednokierunkową.
  • Praca wielokrotnie edytowana. Za każdym razem, gdy otwierasz, edytujesz i zapisujesz plik JPEG, następuje jego ponowna kompresja i dodanie kolejnej warstwy artefaktów. Nazywa się to stratą pokoleniową i dlatego profesjonaliści nagrywają w formacie RAW i edytują w formacie TIFF/PSD. Kompresuj produkt, nigdy plik roboczy.
  • Obrazy z tekstem i ostrymi krawędziami. Zrzuty ekranu, logo i makiety interfejsu użytkownika to twarde linie i jednolite bloki kolorów — stratny nie jest w stanie sobie z nimi poradzić. JPEG narodził się dla zdjęć; PNG jest dla nich znacznie silniejszy. Nie kompresuj arkusza kalkulacyjnego w formacie zdjęcia.

W skrócie: stratna kontra bezstratna

WymiarStraty w jakościbezstratny
OdwracalnyNie (w jedną stronę)Tak (bajt za bajt)
Stopień sprężaniaWysokie, często 60%–90% mniejszeOgraniczony, ~20%–50%
JakośćZasadniczo niewidoczna utrata (jakość 80-85)100% wierność
Typowe formaty0, stroniczny 1, 2, 3PNG, bezstratny WebP, TIFF, FLAC, ZIP
Najlepsze zastosowanieZdjęcia internetowe, media społecznościowe, miniaturyMedycyna, mistrzowie, redakcja, zrzuty ekranu/logo

Często zadawane pytania

Jaka jest różnica między kompresją stratną i bezstratną?

Kompresja stratna usuwa szczegóły, które ludzkie oko ledwo zauważa, radykalnie zmniejszając rozmiar, a proces jest nieodwracalny; kompresja bezstratna nie powoduje utraty danych i dekompresuje bajt po bajcie identycznie jak oryginał, ale jej współczynnik kompresji jest ograniczony, zwykle tylko o 20–50% mniejszy.

Czy JPEG jest stratny czy bezstratny?

JPEG jest formatem kompresji stratnej. Odrzuca kolory i szczegóły o wysokiej częstotliwości, na które ludzkie oko jest niewrażliwe, poprzez podpróbkowanie chrominancji i dyskretną transformację kosinusową (DCT), radykalnie zmniejszając zdjęcia. JPEG ma również tryb bezstratny, ale sieć i zdecydowana większość scenariuszy korzysta z warstwy stratnej.

Czy powinienem ustawić jakość kompresji obrazu na 80 czy 100?

W przypadku zdecydowanej większości zdjęć zapisanie w jakości 80–85 nie różni się od oryginału przy normalnej odległości oglądania i na ekranie, mimo to plik jest o 60–75% mniejszy niż w jakości 100. Widoczne artefakty, takie jak blokowość i zabłocone odcienie skóry, pojawiają się dopiero poniżej 70, dlatego 80–85 jest najlepszym rozwiązaniem.

Kiedy należy zastosować kompresję bezstratną?

Obrazowanie medyczne, wzorce archiwalne, pliki do edycji, które są wielokrotnie otwierane i modyfikowane, a także zrzuty ekranu/logo/interfejs z tekstem i twardymi krawędziami – wszystko to wymaga bezstratności. Straty to droga jednokierunkowa — wyrzuconych danych nie da się odzyskać, a wielokrotne zapisywanie powoduje stratę pokoleniową.

Ostatnie słowo

Domyślnym ustawieniem internetowym jest stratna wartość: 80–85 pozwala zaoszczędzić dużo na zdjęciach z widoczną utratą bliską zera. Lossless trafia do archiwalnych wzorców, obrazowania medycznego i procesów edycyjnych, które są wielokrotnie zapisywane. Najbezpieczniejsza gra to jedno zdanie: zachowaj bezstratny plik master i eksportuj stratny w celu dostarczenia.

Gotowy, aby zastosować to w praktyce? Skorzystaj z naszego bezpłatnego kompresora obrazu, aby zmniejszyć zdjęcia w sposób stratny lub bezstratny, lub przejdź do opcji resize, crop i konwertuj JPG na WebP, aby zastosować to, czego się właśnie nauczyłeś.