Guetzli – zdjęcia w JPEG mogą być znacznie mniejsze i wyglądać lepiej
Obrazki JPEG mogą niebawem stać się mniejsze, a zarazem mniejobarczone artefaktami stratnej kompresji. Pomoże w tym nowy koderJPEG stworzony przez badaczy Google Research o słodkiej nazwieGuetzli. Słodkiej, bo to nazwa czekoladowych ciasteczek z orzechamize 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żejniż w wypadku zwykłej biblioteki libjpeg. Przy mocy obliczeniowejdzisiejszych procesorów nie jest to jednak problem.
17.03.2017 11:51
Zalogowani mogą więcej
Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika
Obrazki generowane przez udostępniony na wolnej licencji koderGuetzli są oczywiście w pełni kompatybilne z dotychczasużywanym oprogramowaniem, wczytają się w każdej przeglądarce czywyświetlace plików. Rozwiązanie to jest więc bliższe temu, coGoogle zrobiło w ramach algorytmu Zopflidla obrazków PNG, niż np. WebP czy RAISR, które wymagają zmian wcałym środowisku software’owym.
Proces kompresji JPEG składa się z trzech etapów –transformacji przestrzeni barw, dyskretnej transformacji kosinusoweji kwantyzacji. Guetzli optymalizuje ten trzeci etap, w którym pewnezakresy wartości przekształcane są w pojedynczą wartość. Imwiększa kompresja, tym większa utrata jakości, wynikająca zszerszego zakresu kwantyzacji. Nowy algorytm z Google Researchposzukiwać ma równowagi między minimalizacją strat na jakości arozmiarem pliku, wykorzystując model psychowizualny butteraugli.
Butteraugli jest narzędziem mającym oceniać subiektywnepodobieństwo dwóch obrazów, a także tworzącym przestrzenną mapępoziomu różnic między nimi. Można go także wykorzystać jakometrykę jakości dla stratnej kompresji – jak twierdzą naukowcyGoogle’a, odwzorowuje on ludzką percepcję barw i maskowania wbardziej kompleksowy, a zarazem szczegółowy sposób niż tenwykorzystywany w dwóch pierwszych etapach kompresji JPEG.Rozpoznawane są tu m.in. różnice w rozdzielczości optycznej okadla różnych kolorów czy relacje między ilością jednej barwy wobrazie 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 ichdo czegokolwiek innego niż statycznych obrazków. Na 1 Mpixwejściowego zdjęcia trzeba przeznaczyć około 300 MB RAM, cowyklucza w praktyce wykorzystanie tego na współczesnychsmartfonach. Twórcy uważają jednak, że oszczędność ruchusieciowego dla bogatych w zdjęcia stron internetowych jest jednakwarta zainteresowania się algorytmem – zastosowanie Guetzli dokompresji obrazków na wydajnym serwerze z 64 GB RAM to przecież nieproblem.
Google informuje o jeszcze jednej ciekawej sprawie. Obrazkiwygenerowane przez Guetzli mają bardziej podobać się ludziom.Badani w tej sprawie, przeglądając testowezdję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 zpewnymi staraniami także na Windowsie (przez Visual Studio 2015 zbibliotekami C++).