![](/wp-content/uploads/2019/12/pl-google-odkryl-nowy-sposob-kompresji-plikow-jpeg-1.jpg)
Obraz, którego współczynnik kompresji JPEG rośnie od prawej do lewej
Wikimedia commons
Google otworzył dostęp do nowego algorytmu kompresji obrazów JPEG, Guetzli (przetłumaczonego z szwajcarskiego niemieckiego dialektu, „ciasteczek”). Pozwala uzyskać wysokiej jakości pliki obrazów, które są o 35 procent mniejsze niż w wyniku pracy standardowych algorytmów. Osiąga się to poprzez psycho-wizualny model postrzegania obrazu. Minus Guetzli - wymagania dotyczące zasobów i powolność. Kod źródłowy algorytmu jest dostępny w repozytorium github, także o tym informuje blog google.
JPEG to stratna metoda kompresji obrazu opracowana przez Joint Photographic Experts Group w 1992 roku. Polega na przekształceniu fragmentów obrazu w zbiór sinusoid ( dyskretna transformacja kosinusowa ) i wpisz parametry tych krzywych zamiast kolorów piksel po pikselu. Istnieje kilka algorytmów kompresji, które różnią się kolejnością, geometrią i innymi parametrami transformacji. Z reguły kompresja bez znaczącej utraty jakości dla algorytmów JPEG wynosi dziesięć do jednego.
Od lewej do prawej: oryginalny, wynik kompresji libjpeg, wynik kompresji Guetzli
Ogólnie, JPEG zawiera następujące etapy: konwersja kolorów, decymacja, dyskretna transformacja cosinusowa 8 × 8 bloków pikseli i kwantyzacja . Nowy rozwój Google odnosi się głównie do ostatniego etapu kompresji. Autorzy wykorzystali psycho-wizualne modele percepcji, aby straty kwantyzacji były jak najmniej widoczne. Eksperymenty pokazałem wolontariusze wolą obrazy Guetzli w porównaniu ze zdjęciami skompresowanymi przy użyciu standardowej biblioteki libjpeg - nawet jeśli te ostatnie miały taki sam lub nieco większy rozmiar.
Od lewej do prawej: oryginalny, wynik kompresji libjpeg, wynik kompresji Guetzli
Jednak nowy algorytm wymaga znacznie więcej obliczeń. Na przykład kompresowanie małego obrazy (620 × 444, 32 kilobajty) zajęło około 20 sekund i 50 megabajtów pamięci RAM. Jak informuje jeden z użytkowników, kompresja większych plików (1,7 megabajta) wymaga kilku gigabajtów pamięci RAM i 15 minut programu. Jak świętować programiści dla każdego obrazu megapikselowego zajmują około 300 megabajtów. Wynik kompresji jest zgodny ze standardowymi przeglądarkami obrazów.
Edycja Arstechnica przyznaje że w rozwoju modelu psycho-wizualnego leżącego u podstaw algorytmu można wykorzystać sieci neuronowe. W kodzie źródłowym kluczowe parametry reprezentować to zbiór kilkuset stałych.
Wcześniej Google Brain zestaw Eksperyment, w którym dwa serwery (Alicja i Bob), wykorzystując sieci neuronowe, opracowali własną metodę szyfrowania wiadomości. Specyfiką pracy sieci neuronowych jest to, że bardzo trudno jest dokładnie zinterpretować, w jaki sposób przekształcają dane.
Vladimir Korolev