Google odkrył nowy sposób kompresji plików JPEG

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

Google

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

Google

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