r   e   k   l   a   m   a
r   e   k   l   a   m   a

Guetzli – zdjęcia w JPEG mogą być znacznie mniejsze i wyglądać lepiej

Strona główna AktualnościOPROGRAMOWANIE

Obrazki JPEG mogą niebawem stać się mniejsze, a zarazem mniej obarczone artefaktami stratnej kompresji. Pomoże w tym nowy koder JPEG stworzony przez badaczy Google Research o słodkiej nazwie Guetzli. Słodkiej, bo to nazwa czekoladowych ciasteczek z orzechami ze Szwajcarii. Wzrost kompresji jest godny uwagi, bo nawet o 30-45%. Niezła sprawa, biorąc pod uwagę rozmiary przesyłanych dziś siecią grafik, szczególnie zdjęć z urządzeń mobilnych. Ceną tej lepszej kompresji jest czas – proces trwa zauważalnie dłużej niż w wypadku zwykłej biblioteki libjpeg. Przy mocy obliczeniowej dzisiejszych procesorów nie jest to jednak problem.

Obrazki generowane przez udostępniony na wolnej licencji koder Guetzli są oczywiście w pełni kompatybilne z dotychczas używanym oprogramowaniem, wczytają się w każdej przeglądarce czy wyświetlace plików. Rozwiązanie to jest więc bliższe temu, co Google zrobiło w ramach algorytmu Zopfli dla obrazków PNG, niż np. WebP czy RAISR, które wymagają zmian w całym środowisku software’owym.

Proces kompresji JPEG składa się z trzech etapów – transformacji przestrzeni barw, dyskretnej transformacji kosinusowej i kwantyzacji. Guetzli optymalizuje ten trzeci etap, w którym pewne zakresy wartości przekształcane są w pojedynczą wartość. Im większa kompresja, tym większa utrata jakości, wynikająca z szerszego zakresu kwantyzacji. Nowy algorytm z Google Research poszukiwać ma równowagi między minimalizacją strat na jakości a rozmiarem pliku, wykorzystując model psychowizualny butteraugli.

r   e   k   l   a   m   a

Butteraugli jest narzędziem mającym oceniać subiektywne podobieństwo dwóch obrazów, a także tworzącym przestrzenną mapę poziomu różnic między nimi. Można go także wykorzystać jako metrykę jakości dla stratnej kompresji – jak twierdzą naukowcy Google’a, odwzorowuje on ludzką percepcję barw i maskowania w bardziej kompleksowy, a zarazem szczegółowy sposób niż ten wykorzystywany w dwóch pierwszych etapach kompresji JPEG. Rozpoznawane są tu m.in. różnice w rozdzielczości optycznej oka dla różnych kolorów czy relacje między ilością jednej barwy w obrazie a wrażliwością na inną barwę.

Algorytmy Guetzli są jednak ekstremalnie powolne i wymagają bardzo dużo pamięci, co w praktyce uniemożliwia wykorzystanie ich do czegokolwiek innego niż statycznych obrazków. Na 1 Mpix wejściowego zdjęcia trzeba przeznaczyć około 300 MB RAM, co wyklucza w praktyce wykorzystanie tego na współczesnych smartfonach. Twórcy uważają jednak, że oszczędność ruchu sieciowego dla bogatych w zdjęcia stron internetowych jest jednak warta zainteresowania się algorytmem – zastosowanie Guetzli do kompresji obrazków na wydajnym serwerze z 64 GB RAM to przecież nie problem.

Google informuje o jeszcze jednej ciekawej sprawie. Obrazki wygenerowane przez Guetzli mają bardziej podobać się ludziom. Badani w tej sprawie, przeglądając testowe zdjęcia, w 75% wybierali te, które wygenerował nowy koder.

Kod źródłowy kodera dostępny jest na GitHubie, bez problemu można skompilować go na Linuksie i macOS-ie, a z pewnymi staraniami także na Windowsie (przez Visual Studio 2015 z bibliotekami C++).

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.