Obrazki – typy, optymalizacja, metody
Marcin Pietrzak
o mnie
- Marcin Pietrzak
- WPMU DEV
- iworks.pl
- marcin@iworks.pl
cel prezentacji
- definicja
- wybór
- WordPress
- wtyczki
rodzaj
- raster2002
- wektor1323 (615)
rodzaj
- raster2002
- wektor1323 (615)
gif
- paleta
- animacja
- LZW (patent)
- przezroczystość
Graphics Interchange Format
LZW - Lempel-Ziv-Welch - strumieniowa kompresja słownikowa
256 kolorów z palety 24-bit
bloki mogą mieć własne palety
png
- bezstratna kompresja
- kolory
- deflate
- przeplot
Portable Network Graphics
deflate - niopatentowana komplresja, szeroko dostępna jako zlib
paleta - od 1 do 64 bitów na piksel
przeplot - umożliwia wcześniejsze wyświetlanie - Adam7
wybór palety
kanał alfa
tylko RGB
jpg
- kompresja
- jakość
- powszechność
- prostota
Joint Photographic Experts Group
Algorytm kompresji:
zamiana przestrzeni kolorów z RGB na kanał jasności i dwa kanały koloru. Ludzie znacznie dokładniej postrzegają drobne różnice jasności od drobnych różnic barwy, a więc użyteczne jest tutaj użycie różnych parametrów kompresji. Krok nie jest obowiązkowy.
obniżenie rozdzielczości kanałów koloru (podpróbkowanie chrominancji), zwykle odrzuca się co drugą wartość wzdłuż osi poziomej i każdą na pionowej, choć możliwe są też inne ustawienia. Tak radykalne cięcie danych nieznacznie wpływa na jakość, ponieważ rozdzielczość postrzegania kolorów przez ludzkie oko jest słaba. Krok nie jest obowiązkowy.
podzielenie każdego kanału obrazka na bloki 8×8. W przypadku kanałów kolorów, jest to 8×8 rzeczywistych danych, a więc zwykle 16×8.
transformata kosinusowa każdego z bloków. Zamiast wartości pikseli mamy teraz średnią wartość wewnątrz bloku oraz częstotliwości zmian wewnątrz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. Transformata DCT jest odwracalna, więc na razie nie tracimy żadnych danych.
Zastąpienie średnich wartości bloków przez różnice wobec wartości poprzedniej. Poprawia to w pewnym stopniu współczynnik kompresji.
Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych przez liczby całkowite. Tutaj właśnie następuje utrata precyzji danych. Zależnie od parametrów kompresora, odrzuca się mniej lub więcej danych. Zasadniczo większa dokładność jest stosowana do danych dotyczących niskich częstotliwości niż wysokich, kodowanych algorytmem Huffmana.
jpg
- 82k (20%)
- 440k (90%)
jpg
- 20%
- 90%
svg
- wielkość
- skalowalność
- dynamiczne
225x300
- svg (1323)
- gif (1324)
- png (5058)
- jpg (10553)
500x500
- gif (147K)
- png (410K)
- jpg (89K) 80%
metody
- program
- online
- CLI
- wtyczka
Program: Photoshop, GIMP
Online:
CLI: optipng, jpegoptim
wtyczka
- reSmush.it
- EWWW Image Optimizer
- Compress JPEG & PNG images
- ShortPixel Image Optimizer
- Smush Image
reSmush - limit input 5mb
EWWW - nie wymaga konta, konto dodaje features
Compress - 100 obrazków miesięcznie free
ShortPixel
Smush Image
- 40 MB
- 69 TB
- 86 tysięcy
- 45 milionów
- 19 miliardów
maj 2018
Processed more than 19, 000,000,000 ( 19 Billion ) images so far, We process upto 45287279 ( 45 Million images in a day ), highest so far :wink:
86558, 86k sites daily
And we’ve saved 68,703 GB ( 68K GBs ) of data
The biggest image we ever had was around 40MB I guess
That too only once :stuck_out_tongue:
As per the log at least, can’t be sure on that
o mnie
- Marcin Pietrzak
- WPMU DEV
- iworks.pl
- marcin@iworks.pl
Licencja
Uznanie autorstwa - Na tych samych warunkach 3.0 Unported (CC BY-SA 3.0)
Wolno:
- kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
- tworzyć utwory zależne
- użytkować utwór w sposób komercyjny
Na następujących warunkach:
- Uznanie autorstwa - Utwór należy oznaczyć w sposób określony przez Twórcę lub Licencjodawcę
- Na tych samych warunkach - Jeśli zmienia się lub przekształca niniejszy utwór, lub tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie takiej samej licencji.