Kompresja stratna i bezstratna
Jedna idea wyjaśnia większość zamieszania wokół konwersji plików i zrozumienie jej porządnie zajmuje dwie minuty.
Opublikowano
Różnica
Kompresja bezstratna zmniejsza plik, opisując go wydajniej. Rozpakuj go, a dostaniesz dokładnie to, co włożyłeś, bit po bicie. ZIP, PNG i FLAC działają w ten sposób.
Kompresja stratna zmniejsza plik, wyrzucając informacje — konkretnie takie, których brak człowiek prawdopodobnie nie zauważy. JPG, MP3, AAC i H.264 działają w ten sposób i uzyskują znacznie mniejsze pliki, niż kiedykolwiek mogłaby kompresja bezstratna, właśnie dlatego, że wolno im odrzucać.
Strata jest trwała i to właśnie ludzie pomijają
Gdy koder stratny coś odrzuci, to znika. Żadna późniejsza konwersja tego nie odzyska. Konwersja MP3 na FLAC daje duży, bezstratny plik zawierający dokładnie wady MP3 — zatrzymuje dalsze uszkodzenia, ale żadnych nie cofa.
To najczęstsze nieporozumienie dotyczące konwersji plików i kosztuje ludzi prawdziwą pracę: zdjęcie wielokrotnie otwierane, edytowane i zapisywane ponownie jako JPG pogarsza się odrobinę za każdym razem, najpierw niewidocznie, potem wyraźnie.
Transkodowanie kumuluje straty
Konwersja między dwoma formatami stratnymi — MP3 na OGG lub M4A na MP3 — oznacza dekodowanie dźwięku, który już przeszedł przez jeden koder, i przepuszczenie go przez drugi. Oba przyjmują różne założenia co do tego, co można bezpiecznie odrzucić, więc drugi uszkadza materiał, który pierwszy już przerzedził.
Praktyczna zasada: zawsze koduj z najlepszego oryginału, jaki masz. Jeśli nadal masz WAV lub FLAC, koduj z niego, a nie z wcześniej utworzonego MP3.
Kiedy to wszystko nie ma znaczenia
Bardzo często naprawdę nie ma. MP3 192 kb/s zrobiony z płyty CD jest nie do odróżnienia od źródła dla większości słuchaczy na większości sprzętu. JPG o jakości 0,92 zdjęcia z wakacji jest nie do odróżnienia od oryginału w normalnym rozmiarze wyświetlania. Obsesja na punkcie strat generacyjnych w pliku, którego posłuchasz raz w samochodzie, to zmarnowany wysiłek.
Różnica ma znaczenie, gdy plik jest matrycą — czymś, co będziesz jeszcze edytować, archiwizować lub ponownie kodować. Matryce trzymaj bezstratnie. Kopie do dystrybucji rób stratne. Ten jeden nawyk pozwala uniknąć niemal wszystkich problemów opisanych w tym artykule.
Gdzie leży każdy format
Bezstratne: PNG, BMP, FLAC, WAV oraz formaty danych — CSV, JSON, YAML — gdzie pojedynczy zmieniony znak byłby błędem, a nie kompromisem.
Stratne: JPG, WebP w zwykłym trybie, MP3, AAC, Vorbis, Opus i każdy popularny kodek wideo, w tym H.264 i VP8.
Wypróbuj oba rodzaje sam: kompresuj obraz ustawieniami stratnymi lub konwertuj WAV na FLAC, by zobaczyć, jak kompresja bezstratna zmniejsza dźwięk bez zmiany ani jednej próbki.