Piękny wynik. Dobry wujek Google zmniejszy rozmiar plików JPG o 35 proc.

Artykuł/Sprzęt 17.03.2017
Piękny wynik. Dobry wujek Google zmniejszy rozmiar plików JPG o 35 proc.

„DLACZEGO TEN SCREEN MA 5MB?!” – grzmi na naszym redakcyjnym Slacku nasz magik od zaplecza. I tak średnio raz w tygodniu. Być może niedługo przestanie, za sprawą nowego algorytmu Google’a.

Zbyt duże grafiki w sieci to ogromny problem, zarówno dla zarządców stron, jak i dla ich odbiorców. To właśnie od kompresji grafik zależy, czy pojedynczy wpis zajmuje 1 MB, czy 15 MB.

Czy te 15 MB od razu oznacza wielką tragedię? Właściwie to… tak. Wyobraź sobie, że jedziesz właśnie pociągiem i chcesz w wolnym czasie nadrobić trochę zaległości w tekstach. Zasięg jest kiepski i ciągle zrywa połączenie. W takiej sytuacji objętość wpisu ma kolosalne znaczenie dla czasu ładowania strony.

Patrząc z kolei od strony zaplecza, 15 MB przemnożone przez kilkanaście-kilkadziesiąt tysięcy użytkowników, którzy w ciągu dnia odwiedzą wpis, robi się problemem.

Google chce temu zaradzić pokazując nowe algorytmy, które zmniejszą wagę JPG-ów o 35 proc.

O rany, ile to już było prób wprowadzenia nowych formatów plików z wydajną kompresją. Wszystkie, co do jednego, poległy. Świat kocha najzwyklejsze pliki JPG i to się raczej nie zmieni.

Dlatego Google tym razem nie bawi się w formaty pokroju WebP, a przynosi receptę w postaci nowych algorytmów kompresji plików JPG. Efekty są nie byle jakie, bowiem pozwalają zaoszczędzić aż 35 proc. wagi w stosunku do obecnych standardów.

Metoda kompresji jest podobna do algorytmów Zopfli działających dla formatów PNG i gzip. Najważniejszą informacją jest jednak fakt, że nie wymaga nowego formatu plików, a działa dla standardowych JPG-ów. Algorytm nosi nazwę Guetzli (po niemiecku „herbatnik”) i jest dostępny jako otwarty kod na GitHubie.

google kompresja jpg

A jak to działa w praktyce? Google obrazuje to kilkoma przykładami. Powyżej możecie zobaczyć powiększenie obrazu oka kota, o wielkości 20×24 pikseli. Po lewej stronie widać nieskompresowany plik JPG, na środku plik z kompresją libjpeg, a po prawej plik w nowej kompresji Guetzli.

Widać lekką degradację jakości objawiającą się w formie artefaktów, ale jest o niebo lepiej, niż przy dotychczasowej kompresji.

„Dobry wujek Google” ma w kompresji spory interes.

Tak naprawdę nowy algorytm to miecz obosieczny. Z jednej strony mniejszy rozmiar grafik to szybsze czasy ładowania stron, mniejsze obciążenie serwerów i generalnie powszechne zadowolenie i dobrobyt internautów.

Z drugiej strony, nie zapominajmy, że Google prowadzi takie usługi jak Zdjęcia, w których przechowuje w chmurze nasze skompresowane fotografie wykonane smartfonami (i nie tylko). Można się spodziewać, że nowe algorytmy trafią też do tej usługi, co w globalnej skali przełoży się na niewyobrażalną optymalizację miejsca na serwerach. A do tego skróci czas synchronizacji plików.

Tyle tylko, że da to o kolejne 35 proc. mniejsze możliwości edycji naszych zdjęć, jeśli pozbyliśmy się ich lokalnych kopii. Być może gołym okiem nie będzie widać różnicy między plikami o wielkości 3 i 2 MB, ale podczas obróbki wszystko wyjdzie na jaw. Dużo szybciej będziemy zauważać artefakty pojawiające się np. przy zwiększaniu kontrastu, czy rozjaśnianiu cieni.

Podsumowując, dobrze jest oglądać czyjeś skompresowane pliki, ale dożo gorzej jest przetrzymywać własne JPG-i w jeszcze większej kompresji.

Teksty, które musisz przeczytać:

Dołącz do dyskusji

  • https://www.buczek.tk Kamil

    Screen 5 MB? Wrzucacie w Paint’a i do BMP? :)

  • Stanisław Bejm

    Nie chcę się wymądrzać, ale wydaje mi się że są skuteczniejsze metody. Ogromnie polecam „JPEGmini PRO”. Zmniejszyłem rozmiar zdjęć biblioteki iCloud z 62GB do 11GB bez straty jakości :)

  • angry

    „Po lewej stronie widać nieskompresowany plik JPG” – hmmm… jpg to
    format kompresji obrazu… Więc chyba to zdanie nie ma sensu. Może –
    dodatkowo skompresowany – bo on już jest skompresowany :)

  • carma

    Kolory wyblakłe, wyraźnie widać oko żółto-zielone, żółto-zielone i wyblakło-żółte.

  • Camis

    JPEG to algorytm kompresji stratnej, ale JPG/JPEG to też format plików graficznych o tej samej nazwie.

  • mmtt

    To że gołym okiem nie widać straty jakości, nie znaczy że jej nie ma. Kompresja działa właśnie dzięki takiej „stracie”

  • Martina Neumayer

    Koopa, bo w dalszym ciągu tworzy brzydkie artefakty na krawędziach kontrastowych powierzchni. Dla szaraków do smartfonów może i się nada, ale nigdzie więcej do poważniejszych zastosowań.

  • Filodendron

    Tyle tylko, że da to o kolejne 35 proc. mniejsze możliwości edycji naszych zdjęć, jeśli pozbyliśmy się ich lokalnych kopii. Być może gołym okiem nie będzie widać różnicy między plikami o wielkości 3 i 2 MB, ale podczas obróbki wszystko wyjdzie na jaw.

    Kompletnie nie rozumiem istoty tego wtrętu… Czy dotychczasowe JPGi lepiej się obrabiało, niż będzie się to robić po kompresji wykonanej nowym algorytmem? Lepsza kompresja nie oznacza jednocześnie większej degradacji obrazu, co zresztą sam pokazałeś na przykładzie od Google’a. TIFFa z kompresją ZIP obrabia się gorzej niż z kompresją LZW (większy) albo bez niej (plik jeszcze większy)? Może i nie do końca dobry przykład, bo w JPGu jest kompresja stratna, ale… Widać przecież, że straty wizualne są mniejsze, a kompresja i tak nie pożre nic ponadto, bo przecież zarówno w jednej i w drugiej metodzie, praktycznie nie zostaje tam nic więcej niż widać). :)

  • Marek Karnecki

    a to powiedzcie specowi Waszemu od SEO -ze coś nie hulają obrazki od przynajmniej miesiąca na spidersweb.pl i nikt qrwa tego nie widzi fachowcy ???

  • Andrzej Para

    Rozdzielczość wyższa niż 768p

  • GB

    Niech wujek Google najpierw zoptymalizuje kod.
    Kompresja pliku 1,23 do 1,05 MB, 4080×2720 pikseli trwała kilka minut. Ponadto przez ten czas proces zajmował ok. 2 GB RAM-u.
    Masowa kompresja wielu plików to jakaś masakra.

  • Kamil Ro. Dzióbek

    Tego się nie da całkowicie zlikwidować w jpge, taka uroda tego formatu. W koderze kolesie od firefoksa to zredukowali. (proszę obejrzeć zdjęcia).
    https://kornel.ski/deringing/
    https://www.dobreprogramy.pl/Tekst-i-grafiki-w-JPEG-bez-paskudnego-halo-dzieki-pomyslowi-polskiego-programisty,News,60024.html

    Ja bym proponował inne rozwiązanie. Segmentacja obrazu na zdjęcie i tekst. Zdjęcie będzie kodowane za pomocą jpge, i na ten obraz będzie nakładany przezroczysty gif/png z tekstem. Więc bez problemu będzie to działać na starych przeglądarkach.
    Pomyślałem to głównie do kodowanie memów, niestety facebook nie chce wykupić mojego pomysłu.
    oczywiście warstw w png może być kilkaset. Nawet każda może mieć inny kolor. Będzie się dzięki temu wczytywać progresywnie. Oczywiście nie tylko tekst można tak kodować, ale też elementy kontrastowe.

  • Kamil Ro. Dzióbek

    Chyba mu chodzi o to jak Google skompresuje jeszcze raz zdjęcia które trzyma od lat. Najpierw aparat kompresuje dodając artefakty jpg. Zdjęcie trafia na chmurę Google i jest ponownie kompresowane i powstają artefakty wokół artefaktów.

  • Kamil Ro. Dzióbek

    Witam! Tak się akurat składa, że jestem ekspertem od kompresji więc się wypowiem.

    >Metoda kompresji jest podobna do algorytmów Zopfli działających dla formatów PNG i gzip.

    Przejrzałem kod, metoda kompresji nie jest wcale podobna.
    Po prostu Zopfli generuje plik który może być odczytany przez stare dekodery gzip w przeglądarkach.
    A googlowy enkoder jpg generuje plik który może być odczytany w starych przeglądarkach. Na tym podobieństwo się kończy.

    Po drugie kod jest bardzo podobny do mozjpg, wydanego kilka lat temu, który też redukował rozmiar jpge. Oczywiście, nie chce nikogo oskarżać o plagiat.
    http://smashingweb.info/mozilla-introduces-mozjpg-helps-reduce-size-jpeg-images/

    Mozjpg się nie przyjął. Rozwiązanie Google się przyjmie bo będzie zapewne montowane w aparatach fotograficznych z androidem. Tylko czy to wydajnościowo da radę?

  • Filodendron

    Ale nikt normalny nie używa Google Photos jako jedynej kopii oryginalnych zdjęć. Tam się wrzuca foty do udostępniania szerszemu gronu albo pstryki ze smartfona. Poza tym, jaki rozsądny fotograf, obrabiający swoje zdjęcia, zapisuje je w JPGach? A fotografujący w tym formacie fotoreporterzy, którzy robią zdjęcia na wyścigi (żeby jak najszybciej spylić je przez agencję), mają w d… jakąkolwiek obróbkę.

  • Filodendron

    To nadal nic nie tłumaczy. Screen z dwóch monitorów (masa różnych okien) w rozmiarze 5120×1440 pikseli, zapisany do JPG w jakości „12”, ma zaledwie 2,9 MB.

  • Jeicam

    Mi to nawet logo strony nie działa, adblocka nie mam.

  • Luk

    Przy 96dpi to raczej nic dziwnego

  • Filodendron

    Człowieku, a co ma PPI* do kompresji? Liczy się „fizyczność” obrazu, czyli liczba pikseli (+ ilość detalu). Uważasz, że obraz w 5120×1440 i 96 PPI lepiej się skompresuje od screena w 5120×1440 i np. 300 PPI? Większych bredni dawno nie czytałem.

    * DPI to masz w druku. W obrazie cyfrowym jest PPI.

  • Bartasx

    Osobiście staram się unikać tego formatu. Wystarczy zmienić jeden pixel na zdjęciu i ponownie zapisać żeby pogorszyć jakość całego zdjęcia. W sumie to nawet nie trzeba nic zmieniać tylko nadpisywać i jest ten sam efekt. Zrobiłem kiedyś test i stworzyłem macro w photoshop. Jedno zdjęcie zapisywane, otworzone i ponownie zapisane, po 100 takich operacjach nie nadaje się do niczego.

  • masa

    wolałbym, żeby standardem zostało webp, ale to bardzo odległa przyszłość, bo większość dopiero niedawno odkryła gify, gdy świat lata temu przeniósł się na webm

  • buzz

    Nie zrozumiałeś, tu nie chodzi o to żeby przerabiać standardowy jpg do Guetzli tylko raw od razu do Guetzli…

  • buzz

    A to Google nie kompresuje wszystkich zdjęć z automatu, nawet jeżeli już są jpg? Tak samo robi chyba Facebook.

MAŁO? CZYTAJ KOLEJNY WPIS...

MAŁO? CZYTAJ KOLEJNY WPIS...

Advertisement