Forskare på Google har skapat programmet Guetzli som kan konvertera jpeg-bilder till betydligt mindre storlek utan att de tappar synbart i kvalitet. Det tar sin tid, men programmet är i ett tidigt stadium i sin utveckling.
Av Patrik Brinkhäll
Det är kanske lätt att förbise bild-optimering i dessa tider med snabba internetanslutningar. Det är dock inte alla som har sådana anslutningar, eller som alltid har det. Därför är optimering något att beakta, med den fördelen att det arbete som läggs ned kommer alla till gagn i form av snabbare laddningstider.
Problemet vid bildoptimering är kompatibiliteten. Därför bör man hålla sig till etablerade format som stöds av alla webbläsare. Ett annat problem är att bilderna tappar i kvalitet vid för hård komprimering.
Kanske har vi nu en lösning på detta, då Google har tagit fram ett sätt att koda jpeg-bilder så att de i vissa fall blir 35 procent mindre i filstorlek än originalen. Resultatet är dock väldigt beroende av originalmaterialet.
Bantande kaka
Så mycket som två tredjedelar av webbsidorna brukar utgöras av bilder, enligt upphovsmännen bakom Guetzli. Programmets namn betyder för övrigt kaka på schweizertyska. Däri ligger deras motivation, alltså inte i kakor utan att få kortare laddningstider.
Exakt hur mycket programmet kan reducera filstorlekarna råder det delade meningar om, även bland upphovsmännen. Bloggposten säger upp till 35 procents förbättring och sammanfattningen från Cornell-universitetet nämner 29 till 45 procent, vilket även står i rapporten.
Ett huvudmål är att bilden ska vara så lik originalet som möjligt även om filstorleken minskas med 45 procent. Hemligheten ba-kom detta är att programmet förändrar hur bilden översätts till själva jpeg-formatet, det är som sagt samma avkodare som ska packa upp innehållet och visa bilden.
Nya infallsvinklar krävs
För att åstadkomma bättre kodning av bilden krävs förstås lite nya infallsvinklar, vilket upphovsmännen till Guetzli har tagit fasta på. De gjorde ett antal observationer av hur bilder kodades och förbättrade dessa saker. Ett exempel är när kanter eller linjer kodas. Då ska detaljer intill dessa saker kodas på samma sätt så att försämringen inte blir så märkbar. En annan sak är att ögat uppfattar färger och objekt olika. Det är till exempel svårare att se vit text på gul bakgrund än om bakgrunden är svart. Ett annat exempel är att mörka områden i en bild kräver mindre precision i kodningen, precis på samma sätt som blå himmel gör det.
Processen som sker när Guetzli kodar bilder är egentligen inte driven av filstorlek
De bilder som produceras är inte kodade som progressiva jpeg-bilder, där hela bilden laddas i steg. Progressiva bilder laddas i låg upplösning först, för att sedan tas om från början och fortsätta laddningen till dess att bilden har nått full upplösning. Guetzli skapar istället sekventiella jpeg-bilder som laddas från början till slut. Progressiva jpeg-bilder är upp till fem procent mindre i filstorlek, men de kan ta upp till 200 procent längre tid att avkoda. Processen som sker när Guetzli kodar bilder är egentligen inte driven av filstorlek, utan av att bilderna ska se likadana ut som originalet. Resultatet av det här blir dock att filerna också blir mindre.
Testa själv
Det enklaste sättet att få det här bekräftat är förstås att testa det själv. Koden finns hos Github på https://github.com/google/guetzli. Det är bara att ladda ner och köra igång. Du behöver även Visual Studio Community 2017, den hittar du här: www.visualstudio.com/downloads/. Därefter krävs Libpng, men allt står beskrivet i readme-filen som du får med i nedladdningen från Github. Det går även att ladda ned kompilerade binärer.
När detta skrivs är Guetzli lite långsam i sitt arbete, men mjukvaran är i ett tidigt stadium i sin utveckling. Du lär kunna förvänta dig snabbare optimering allt eftersom utvecklarnas arbete fortskrider. Samtidigt ska inte detta avhålla dig från att börja undersöka programmet och hur du kan använda det framöver.
Vi provade Guetzli med en panoramabild tagen med en Samsung Galaxy S8+. Upplösningen var cirka 8 000 x 4 000 pixel. Den här originalbilden ville inte
Guetzli läsa, så vi sparade om den med Paint.Net och då vägde den in på 15,7 megabyte. Efter komprimering med Guetzli hamnade vi på sju megabyte, alltså en rejäl förbättring. Denna process tog dock inte mindre än 30 minuter att köra.
(Texten publicerades första gången i Datormagazin nummer 3, 2018. Du hittar den senaste utgåvan av tidningen i butik och på https://shop.datormagazin.se.)
1 kommentar
So what’s new? Hur skiljer det sig, förutom att vara avsevärt långsammare, mot JPEGmini som redan funnits på marknaden i minst 5 år?