Utvecklarskrivbord med laptop och kamera, kod i editor utan synlig text
Så funkar det

Hur JPEG XL utvecklades från open source-experiment till framtidens bildformat

JPEG XL är ett bildformat som komprimerar bilder bättre än både gamla JPEG och nyare format som WebP, samtidigt som det stödjer både fotografier och skarpa grafiska bilder i samma fil. Formatet standardiserades av ISO under beteckningen ISO/IEC 18181 och utvecklingen drevs i stor utsträckning genom öppen källkod. Resultatet är ett format som klarar förlustfri komprimering, transparens, hög färgdjup och animeringar utan att du behöver välja mellan flera olika filtyper.

Det intressanta är inte att ännu ett bildformat dök upp. Det är hur det blev till. JPEG XL växte fram ur experiment som låg öppet på nätet, där vem som helst kunde läsa koden, testa den och bidra.

JPEG XL ersätter en standard från 1992

Den vanliga JPEG-standarden, formellt kallad JPEG 1, fastställdes redan 1992. Den har funnits i över trettio år och sitter i nästan varje kamera, telefon och webbsida du använder. Problemet är att tekniken bakom är gammal. Den tappar detaljer varje gång du sparar om en bild och hanterar varken transparens eller riktigt högt färgdjup bra.

JPEG XL är tänkt som efterträdaren. Inte ett komplement vid sidan av, utan en ersättare som täcker allt det gamla formatet gjorde plus betydligt mer.

En sak som gör övergången smidig: du kan konvertera en befintlig JPEG-fil till JPEG XL utan att förlora något och tillbaka igen. Den ursprungliga bildkvaliteten bevaras helt. Det betyder att webbplatser kan migrera sina bildbibliotek utan att riskera kvaliteten på äldre bilder. Du hittar den formella standarden hos ISO.

Två projekt smälte samman till ett format

JPEG XL är egentligen två idéer som möttes. Det ena projektet hette PIK och kom från Google. Det andra hette FUIF och byggde vidare på en förlustfri komprimeringsteknik som kallades FLIF. Båda låg öppet tillgängliga och istället för att konkurrera bestämde sig utvecklarna för att slå ihop det bästa från varje.

Det är ovanligt att två separata kodbaser går samman till en standard på det sättet. Vanligare är att ett företag driver sin teknik och försöker få den antagen. Här var processen mer öppen.

Resultatet blev ett format med två lägen:

  • Förlustfritt läge, bevarar varje pixel exakt, byggt på arvet från FLIF. Passar grafik, skärmdumpar och bilder där du inte vill tappa en enda detalj.
  • Förlustkomprimerat läge, bygger på PIK och pressar ner filstorleken kraftigt för fotografier, där ögat ändå inte märker små förluster.

Att båda lägena finns i samma format är poängen. Du behöver inte byta filtyp beroende på om du sparar ett foto eller en logotyp.

Open source gjorde utvecklingen transparent

Hela referensimplementationen ligger på GitHub under namnet libjxl. Det betyder att koden som faktiskt ritar upp och komprimerar bilderna är öppen för granskning. Vem som helst kan läsa den, hitta fel och föreslå förbättringar.

Det här är skillnaden mot hur många format historiskt tagits fram. När koden ligger öppet kan en utvecklare i Stockholm och en i Tokyo testa samma sak och jämföra resultat direkt. Buggar fångas snabbare. Beslut motiveras i öppna diskussioner istället för bakom stängda dörrar.

För dig som är nyfiken på hur ett sådant projekt fungerar i praktiken finns kodbasen att utforska hos libjxl på GitHub. Det är samma typ av öppna samarbete som driver mycket av modern webbteknik, något vi tidigare skrivit om i samband med GitHubs roll som internets ryggrad.

Varför sjukvården bryr sig om bildformat

Ett område där JPEG XL fått snabbt fäste är medicinsk bildhantering. Inom radiologi används en standard som heter DICOM för att lagra röntgenbilder, MR och datortomografi. Där kan du inte tolerera att en bild tappar detaljer, eftersom en suddig pixel i värsta fall döljer en diagnos.

JPEG XL passar här just för att det förlustfria läget bevarar allt, samtidigt som filerna blir mindre än med äldre förlustfria metoder. Mindre filer betyder snabbare överföring och billigare lagring i sjukhusens arkiv, utan att kvaliteten påverkas.

Att ett format dyker upp både i din webbläsare och i en röntgenavdelnings arkivsystem säger något om hur brett det är tänkt att täcka. Den intresserade kan läsa mer om standarden hos DICOM.

Så märker du skillnaden i praktiken

Den konkreta vinsten för en webbplats är mindre filer som laddar snabbare. JPEG XL pressar typiskt ner en fotofil betydligt mer än vanlig JPEG vid samma upplevda kvalitet. För en sida med många bilder kan det betyda kortare laddningstid och mindre dataförbrukning för besökaren.

Det finns en hake. Stödet i webbläsare har varit ojämnt. Vissa stödjer formatet direkt, andra kräver att det aktiveras manuellt eller inte stödjer det alls. Det betyder att du i praktiken ofta behöver en reservplan, där servern levererar JPEG XL till webbläsare som klarar det och ett äldre format till resten.

Om du jobbar med bilder på en webbsida är det värt att förstå hur formaten skiljer sig innan du byter. Vill du själv experimentera med bildhantering i kod kan du börja med ett enkelt bildgalleri i JavaScript och testa hur olika filstorlekar påverkar laddningen. Vill du förstå hur webbläsaren hanterar det du skickar till den finns en bra genomgång i artikeln om hur en webbläsare fungerar.

FAQ

Vad är skillnaden mellan JPEG och JPEG XL?

JPEG är en standard från 1992 som tappar bilddetaljer varje gång du sparar om en fil och saknar stöd för transparens. JPEG XL är efterträdaren som komprimerar bättre, stödjer både förlustfri och förlustkomprimerad lagring, hanterar transparens och kan konvertera gamla JPEG-filer utan kvalitetsförlust.

Kan jag använda JPEG XL på min webbsida idag?

Ja men med reservation. Webbläsarstödet är ojämnt, så du behöver oftast servera ett äldre format som fallback till webbläsare som inte stödjer JPEG XL. Du kan kontrollera aktuellt stöd innan du implementerar det i produktion.

Är JPEG XL förlustfritt eller förlustkomprimerat?

Båda. JPEG XL har ett förlustfritt läge som bevarar varje pixel exakt och ett förlustkomprimerat läge som pressar ner filstorleken för fotografier. Du väljer beroende på om bilden är grafik som ska bevaras exakt eller ett foto där viss komprimering inte märks.

Vad betyder det att JPEG XL är open source?

Referensimplementationen libjxl ligger öppet på GitHub, vilket innebär att koden som komprimerar och visar bilderna är fri att granska, testa och förbättra. Utvecklingen drevs genom öppna experiment där två projekt, Googles PIK och det FLIF-baserade FUIF, slogs samman till en standard.

Varför används JPEG XL inom sjukvården?

Medicinska bilder som röntgen och MR får inte tappa detaljer, eftersom det kan påverka en diagnos. JPEG XL:s förlustfria läge bevarar all information samtidigt som filerna blir mindre än med äldre metoder, vilket sparar lagring och snabbar upp överföring i sjukhusens DICOM-baserade arkiv.

Källor

  • iso.org
  • libjxl på GitHub github.com
  • DICOM dicomstandard.org

Kommentera artikeln

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *