Przeplot
Przy wolnym łączu obraz zapisany wiersz po wierszu pojawia się od góry, pas po pasie. Przeplot zmienia kolejność danych tak, żeby najpierw pokazać cały obraz w niskiej rozdzielczości, a potem stopniowo go doostrzać.
Przeplot w GIF: cztery przebiegi
GIF z włączonym przeplotem (bit w deskryptorze obrazu) zapisuje wiersze w czterech przebiegach:
| Przebieg | Wiersze | Co jest widać po nim |
|---|---|---|
| 1 | 0, 8, 16, 24, ... | co 8. wiersz (1/8 danych) |
| 2 | 4, 12, 20, 28, ... | co 4. wiersz (1/4) |
| 3 | 2, 6, 10, 14, ... | co 2. wiersz (1/2) |
| 4 | 1, 3, 5, 7, ... | wszystkie wiersze |
Dla obrazu o 10 wierszach kolejność w pliku to:
Przeglądarka po pierwszym przebiegu zwykle powiela każdy wiersz w dół, wypełniając puste miejsca, więc od razu widać rozmyty, ale kompletny obraz. Przeplot dotyczy tylko kolejności wierszy. Dane są te same, a kompresja LZW działa na nich tak samo, choć plik bywa nieco większy, bo sąsiednie w strumieniu wiersze są mniej do siebie podobne.
Adam7 w PNG
PNG przeplata nie tylko wiersze, ale i kolumny. Schemat Adam7 dzieli obraz na kwadraty 8 × 8 i zapisuje piksele w siedmiu przebiegach:
Liczba w polu to numer przebiegu, w którym ten piksel trafia do pliku. Po pierwszym przebiegu jest 1/64 pikseli, po czwartym 1/8, po szóstym połowa. Obraz zaczyna być rozpoznawalny dużo wcześniej niż w GIF, ale plik PNG z przeplotem jest zwykle o kilka do kilkunastu procent większy, bo kompresja gorzej radzi sobie z rozrzuconymi pikselami.
Progresywny JPEG
JPEG nie przeplata pikseli, tylko współczynniki częstotliwości. Najpierw zapisuje dla każdego bloku 8 × 8 średnią barwę, potem kolejne szczegóły. Efekt podobny: najpierw rozmyty obraz, potem coraz ostrzejszy. W odróżnieniu od PNG progresywny JPEG bywa nawet nieco mniejszy niż zwykły.
Kiedy przeplot ma sens
- Duże obrazy na wolnym łączu: progresywny JPEG nadal się opłaca.
- Małe grafiki, ikony: przeplot tylko powiększa plik.
- Animowane GIF: każda klatka może być z przeplotem, ale przy szybkiej animacji nikt tego nie zobaczy.
- Przetwarzanie: dekoder musi pamiętać kolejność. Program, który czyta GIF z przeplotem jak zwykły, pokaże obraz z poprzestawianymi wierszami.