JPEG

logo
Et bilde med kvalitetsnivå som synker fra venstre til høyre

JPEG ([ ˈdʒeɪpɛɡ ]) er det vanlige navnet på standarden ISO / IEC 10918-1 eller CCITT- anbefaling T.81, presentert i 1992 , som beskriver forskjellige metoder for bildekomprimering . Navnet "JPEG" går tilbake til Joint Photographic Experts Group , som utviklet JPEG-standarden.

JPEG foreslår forskjellige komprimerings- og kodingsmetoder, inkludert tapsfri og tapsfri komprimering , forskjellige fargedybder og sekvensiell eller progressiv modus (normal bildesammensetning eller gradvis forbedring). Bare tapsfri komprimering i sekvensiell eller progressiv modus og 8-biters fargekanaler er utbredt .

JPEG-standarden beskriver bare bildekomprimeringsprosesser, men spesifiserer ikke hvordan de resulterende dataene skal lagres. Vanligvis er “JPEG-filer” eller “JPG-filer” filer i grafisk format JPEG File Interchange Format (JFIF). Imidlertid er JFIF bare en måte å lagre JPEG-data på; SPIFF og JNG er andre, om enn sjelden brukt, alternativer.

JPEG / JFIF støtter en maksimal bildestørrelse på 65 535 × 65 535 piksler eller 65 535 piksler på den lengste siden av bildet.

Oversikt og standarder

JPEG-standarden ISO / IEC 10918-1 definerer følgende moduser, hvorav bare de med farget bakgrunn brukes:

Sekvensielt (sekvensielt) Progressiv (Progressiv) Lossless (Lossless) Hierarkisk (Hierarkisk)
Huffman-koding Aritmetisk koding Huffman-koding Aritmetisk koding
8 bit 12 bit 8 bit 12 bit 8 bit 12 bit 8 bit 12 bit

I tillegg til tapsmodus definert i ISO / IEC 10918-1, er det også den forbedrede, tapsfrie komprimeringsmetoden JPEG-LS , som ble spesifisert i en annen standard. Det er også JBIG- standarden for komprimering av svart-hvitt-bilder.

JPEG og JPEG-LS er definert i følgende standarder:

JPEG (lossy og lossless): ITU-T T.81 (PDF; 1,1 MB), ISO / IEC IS 10918-1
JPEG (utvidelser): ITU-T T.84
JPEG-LS (tapsfri, forbedret): ITU-T T.87, ISO / IEC IS 14495-1

JPEG-standarden har den offisielle tittelen Information technology - Digital komprimering og koding av kontinuerlige stillbilder: Krav og retningslinjer . "Fugen" i navnet kommer fra samarbeidet mellom ITU , IEC og ISO .

JPEG-komprimering

JPEG-standarden definerer 41 forskjellige underfilformater, hvorav stort sett bare ett støttes (og som dekker nesten alle brukstilfeller).

Komprimeringen gjøres ved å bruke flere behandlingstrinn, hvorav fire er tapsfri.

Datareduksjonen foregår gjennom de tapsfrie behandlingstrinnene i samarbeid med entropikodingen .

Kompresjoner opp til omkring 1,5 til 2 biter / bildeelement er visuelt tapsfri, ved 0,7-1 bit / bildeelement gode resultater kan likevel oppnås, under 0,3 bit / bildeelement JPEG blir praktisk talt ubrukelig, bildet blir i økende grad av umiskjennelig komprimerte gjenstander (Blokkskjema , trinnvise overganger, fargeeffekter på grå kiler). Etterfølgeren JPEG 2000 er mye mindre utsatt for denne typen gjenstander.

Hvis du ser på 24-biters RGB-filer som kildeformat, får du kompresjonsfrekvenser på 12 til 15 for visuelt tapte bilder og opptil 35 for bilder som fremdeles er gode. I tillegg til kompresjonshastigheten, avhenger kvaliteten også av typen bilder. Støy og vanlige fine strukturer i bildet reduserer maksimal kompresjonshastighet.

JPEG Lossless Mode for lossless komprimering bruker en annen metode ( prediktiv koding og entropikoding ).

Konvertering av fargemodell

Opprinnelig fargebilde ovenfor og delingen av dette bildet i komponentene Y, Cb og Cr. Den lave opplevde kontrasten i fargekomponentene Cb og Cr gjør det klart hvorfor oppløsningen av fargeinformasjonen kan reduseres (undersampling) uten å svekke bildeinntrykket betydelig.

Utgangsbildet, som stort sett er tilgjengelig som et RGB- bilde, konverteres til YCbCr- fargemodellen. I utgangspunktet brukes YPbPr- ordningen i henhold til CCIR 601 :

Siden R'G'B'-verdiene allerede er tilgjengelige digitalt som 8-bits tall i området {0, 1, ..., 255}, trenger bare YPbPr-komponentene å skiftes (renormaliseres), hvorved komponenter Y '( luminans ), Cb ( fargeblåhet ) og Cr ( farge rødhet ) oppstår:

Komponentene er nå igjen i verdiområdet {0, 1,…, 255}.

Ved konvertering av fargemodellen oppstår de vanlige avrundingsfeilene på grunn av begrenset beregningsnøyaktighet og en ytterligere datareduksjon, siden Cb- og Cr-verdiene bare beregnes for annenhver piksel (se CCIR 601 ).

Lavpassfiltrering av fargeforskjellsignalene

Fargeavvikssignalene Cb og Cr lagres for det meste i redusert oppløsning. For å gjøre dette blir de lavpassfiltrert og underprøvet (i det enkleste tilfellet ved gjennomsnitt).

Vanligvis brukes vertikal og horisontal undersampling med en faktor 2 (YCbCr 4: 2: 0), noe som reduserer datavolumet med en faktor på 4. Denne konverteringen bruker det faktum at den romlige oppløsningen til det menneskelige øye er betydelig lavere for farger enn for lysstyrkeoverganger.

Blokkformasjon og diskret cosinustransformasjon

Hver komponent (Y, Cb og Cr) i bildet er delt inn i 8 × 8 blokker. Disse blir utsatt for en todimensjonal diskret cosinustransformasjon (DCT):

med

I stedet for 64 individuelle punkter vises hver 8 × 8-blokk som en lineær kombinasjon av disse 64 blokkene
De komprimerte 8 × 8 rutene kan sees i forstørrelsen.

Denne transformasjonen kan implementeres med svært liten innsats ved hjelp av den raske Fourier-transformasjonen (FFT). DCT er en ortogonal transformasjon , har gode energikompresjonsegenskaper og det er en invers transformasjon, IDCT (som også betyr at DCT er tapsfri, ingen informasjon gikk tapt, da dataene bare ble brakt til en form som er gunstigere for videre behandling ble).

Kvantisering

Som med alle tapte kodingsmetoder, oppnås den faktiske datareduksjonen (og kvalitetsforringelsen) gjennom kvantisering. For å gjøre dette deles DCT-koeffisientene av kvantiseringsmatrisen (delt etter element) og avrundes deretter til nærmeste heltall:

I dette avrundingstrinnet finner en irrelevansreduksjon sted. Kvantiseringsmatrisen er ansvarlig for både kvaliteten og kompresjonshastigheten. Den lagres i overskriften i JPEG-filer (DQT-markør).

Kvantiseringsmatrisen er optimal når den omtrent representerer øyets følsomhet for de tilsvarende romlige frekvensene. Øyet er mer følsomt for grove strukturer, så kvantiseringsverdiene for disse frekvensene er mindre enn de for høye frekvenser.

Her er et eksempel på en kvantiseringsmatrise og dens anvendelse på en 8 × 8 blokk med DCT-koeffisienter:

hvor beregnes med:

etc.

Re-sortering og differensialkoding av den konstante komponenten

Sikksakk rekkefølge på bildekomponentene

De 64 koeffisientene til den diskrete cosinustransformasjonen er sortert etter frekvens . Dette resulterer i en sikksakk- sekvens, startende med likestrømskomponenten med frekvensen 0. Etter den engelske likestrømmen (for likestrøm ) forkortes den med DC , her angir den gjennomsnittlig lysstyrke. Koeffisientene med høy verdi er nå vanligvis først og de små koeffisientene lenger bak. Dette optimaliserer inngangen til den påfølgende kjørelengdekodingen . Omleggingsordren ser slik ut:

 1  2  6  7 15 16 28 29
 3  5  8 14 17 27 30 43
 4  9 13 18 26 31 42 44
10 12 19 25 32 41 45 54
11 20 24 33 40 46 53 55
21 23 34 39 47 52 56 61
22 35 38 48 51 57 60 62
36 37 49 50 58 59 63 64

Videre blir DC-komponenten kodet igjen differensielt til blokken til venstre for den, og på denne måten blir det tatt hensyn til avhengighetene mellom naboblokkene.

Ovennevnte eksempel fører til følgende re-sorterte koeffisienter

119  …
 78   3  -8  0 -4  7 -1  0 -1  0  0  0 -2  1  0  1  1 -1 0 …
102   5  -5  0  3 -4  2 -1  0  0  0  0  1  1 -1  0  0 -1 0 0 0 0 0 0 0 1 0 …
 75 -19   2 -1  0 -1  1 -1  0  0  0  0  0  0  1 …
132  -3  -1 -1 -1  0  0  0 -1  0 …

Forskjellskodingen av den første koeffisienten gir da:

-41   3  -8  0 -4  7 -1  0 -1  0  0  0 -2  1  0  1  1 -1 0 …
 24   5  -5  0  3 -4  2 -1  0  0  0  0  1  1 -1  0  0 -1 0 0 0 0 0 0 0 1 0 …
-27 -19   2 -1  0 -1  1 -1  0  0  0  0  0  0  1 …
 57  -3  -1 -1 -1  0  0  0 -1  0 …

I strukturelt fattige regioner (med samme bilde) kan koeffisientene også se slik ut:

 35 -2  0 0 0 1 0 …
  4  0  1 0 …
  0  0  2 0 1 0 …
-13  0 -1 …
  8  1  0 …
 -2  0 …

Disse områdene kan selvfølgelig kodes bedre som strukturrike områder. For eksempel ved kjørelengdekoding.

Sikksakk-omorganiseringen av DCT-koeffisientene faller inn under beskyttelsesområdet for US patent nr. 4,698,672 (og andre applikasjoner og patenter i Europa og Japan). Imidlertid ble det i 2002 funnet at den påkrevde kjente metoden ikke var ny, slik at påstandene neppe ville vært håndhevbare. I mellomtiden har patentene fra patentfamilien for det nevnte amerikanske patentet også utløpt på grunn av tidens gang, for eksempel EP-patent 0 266 049 B1 i september 2007.

Entropikoding

En Huffman- koding brukes vanligvis som entropikoding . JPEG-standarden tillater også aritmetisk koding . Selv om dette genererer mellom 5 og 15 prosent mindre filer, brukes det sjelden av patentgrunner, og denne kodingen er betydelig tregere.

JPEG-dekoding

Dekompresjonen (vanligvis kalt dekoding) skjer omvendt til komprimeringen:

  • Entropi-dekoding
  • Omorganisering
  • Rekvirering
  • Invers diskret kosinustransformasjon.
  • Oversampling og lavpassfiltrering av fargedifferenssignalene U og V (lossy)
  • Konvertering av fargemodell fra YCbCr-fargemodellen til målfargerommet (for det meste RGB )

Dekompresjonen er (stort sett) tapsfri, men det omvendte dekoderproblemet oppstår. Det er vanskelig å rekonstruere originalfilen fra dekodede data. En dekodingskodingsprosess endrer filen og er derfor ikke tapsfri; generasjonstap oppstår som ved analog kopiering.

Men generasjon tap av JPEG er relativt lite hvis samme kvantisering tabellen brukes igjen og blokkgrensene er de samme. Med passende grensebetingelser kan de til og med unngås med JPEG. Dette er ikke lenger tilfelle med JPEG-2000 (overlappende transformasjoner, som de brukes i JPEG-2000 så vel som i lyddatakomprimering , krever utopisk datakraft).

Invers diskret cosinustransformasjon

Den omvendte transformasjonen, IDCT, eksisterer for DCT:

med samme korreksjonsfaktorer som for DCT.

Konvertering av fargemodell

Omberegningen fra YCbCr-fargemodellen til RGB-fargerommet skjer via den omvendte matrisen til omberegningen, den lyder:

med:

Progressiv JPEG

Et JPEG-bilde består av koeffisienter. Disse lagrer ikke piksler, men tilnærminger av hele bildeinnholdet i en 8 × 8-bildeblokk. Med progressiv JPEG lagres først de første koeffisientene til hver bildeblokk, deretter den andre osv. I rekkefølge, slik at tilnærmingen til det opprinnelige bildet blir bedre og bedre.

Som med interlacing brukt i GIF, er formålet å raskt gi brukeren et grovt forhåndsvisningsbilde før hele filen lastes inn. Dette er spesielt nyttig hvis det tar lengre tid enn et halvt sekund til et helt sekund å laste inn et bilde, eller hvis du bare trenger et forhåndsvisningsbilde. Imidlertid tilbys vanligvis fortsatt store bilder for nedlasting i vanlig JPEG-modus.

Tapsfri etterbehandling av JPEG

Tapsfri visuell etterbehandling

Tap når du gjentatte ganger roterer og lagrer et JPEG-bilde med en "skjev" oppløsning på 1021 × 767 (ikke delelig med 16).
Den gjentatte rotasjonen av JPEG-bilder med en oppløsning som kan deles med 16 (f.eks. 1024 × 768) når den alltid bruker samme kvantiseringsmatrise, er derimot tapsfri (hvis den er implementert riktig).

Selv om dekoding og omkoding vanligvis er tapsfri, kan noen bildemanipulasjoner (i prinsippet) utføres uten uønsket tap av data:

  • Bildereotasjoner 90 °, 180 ° og 270 °
  • horisontal og vertikal bildespeiling
  • Beskjæring av kanter med multipler på 16 piksler (eller 8 piksler for svart-hvitt-bilder eller fargebilder uten undersampling)

For å gjøre dette må entropikodingen og sikksakk-omorganiseringen reverseres. Operasjonene utføres deretter på grunnlag av DCT-koeffisientene (omsortering, utelatelse av blokker som ikke er nødvendige). Deretter foregår sikksakksorteringen og entropikodingen igjen. Det er ikke flere tapte arbeidstrinn. Ikke hvert program utfører disse operasjonene uten tap, det krever spesielle behandlingsmoduler som er spesifikke for filformatet. Dette er vanligvis ikke tilfelle med de populære bildebehandlingsprogrammene , da de vanligvis først dekoder filen i et lite mønster og deretter jobber med disse dataene.

For eksempel kan konsollprogrammet jpegtran, som er tilgjengelig for Windows og Linux, utføre alle disse operasjonene tapsfritt, det samme gjør den GUI-baserte IrfanView for Windows.

Bilder med en oppløsning på ikke et multiplum på 16 piksler (eller 8 piksler for svarte og hvite bilder eller fargebilder uten undersampling) er problematiske. De har ufullstendige blokker, det vil si blokker som ikke bruker alle de syntetiserte pikslene. Imidlertid tillater JPEG bare slike blokker på høyre og nedre kant av bildet. Noen av disse operasjonene krever derfor at disse marginale stripene kastes en gang.

Tapsfri utvidet komprimering av dataene

Selskapet Dropbox har utviklet et program som bruker aritmetisk koding for å redusere den plassen som kreves av eksisterende JPEG-filer med et gjennomsnitt på rundt 20 prosent. Programmet heter Lepton og er tilgjengelig under Apache 2.0-lisensen , en åpen kildekode-lisens .

Visuell kvalitet og relaterte formater

JPEG-komprimering ble utviklet for naturlige (raster) bilder som de som finnes i fotografering eller datamaskengenererte bilder .

JPEG er uegnet for

  • digitale linjetegninger (f.eks. skjermbilder eller vektorgrafikk) som inneholder mange høyfrekvente bildedel (harde kanter),
  • Svarte og hvite bilder med 1 bit per piksel,
  • rasteriserte bilder (avisutskrift).

I tillegg kan du ikke lage gjennomsiktig grafikk med JPEG.

Formater som GIF , PNG eller JBIG er langt mer passende for disse bildene .

En påfølgende økning i kvalitetsfaktoren øker lagringskravene til bildefilen, men bringer ikke tapt bildeinformasjon tilbake. Kvantiseringstabellene kan velges vilkårlig og er ikke standardiserte. Imidlertid lar mange bildebehandlingsprogrammer brukeren velge en generell kvalitetsfaktor mellom 0 og 100, som blir konvertert til en kvantiseringstabell i henhold til en formel i JPEG-biblioteket publisert av JPEG-komiteen. Selv med kvalitetsfaktorer som “100” eller “100%”, er det fremdeles en kvantisering og dermed et tap av kvalitet, noe som er betydelig når det gjelder bilder som ikke er egnet for JPEG.

En JPEG-transformasjon er vanligvis ikke uvirksom . Åpning og lagring av en JPEG-fil resulterer i en ny komprimering med tap.

Bilder med forskjellige JPEG-kvalitetsnivåer, fra venstre til høyre: "90", "60", "20", detalj ("20")

Eksempelbildet sammenligner bilder som var kodet med forskjellige kvalitetsinnstillinger. Portrettbildet har en størrelse på 200 × 200 piksler. Med en fargedybde på 8 bits per farge og ukomprimert lagring, skaper dette bildet en 120 Kbyte-fil (unntatt topptekst og annen metainformasjon). Blokkformasjonen av 8 × 8 piksler er vist forstørret i høyre del av bildet. Et annet problem i tillegg til blokkformasjonen er " ringing ", en konsekvens av DCTs dårlige oppførsel med harde fargeoverganger.

I den profesjonelle sektoren brukes JPEG sjelden på grunn av den tapte datareduksjonen. I stedet brukes formater som komprimerer uten tap, uavhengig av hvor mye minne som kreves. Eksempler er TIFF , BMP , TGA eller PNG (fullfargemodus). Et ukomprimert opptak på 6 megapiksler med en fargedybde på 16 bits per grunnfarge og 3 grunnfarger krever et minnekrav på 36 Mbytes, som bare kan reduseres moderat i tilfelle strukturerte, kornete eller støyende bilder gjennom tapsfri komprimering (for detaljert bilder, kompresjonsfrekvensen er rundt 50% vanlig).

Det er ofte mulig å optimalisere komprimeringen av eksisterende JPEG-filer uten ytterligere tap og dermed redusere filstørrelsen noe. Nyere versjoner av noen pakkeprogrammer kan komprimere JPEG-bilder med opptil 25% uten ytterligere tap.

Kompresjonsprosedyrene for bevegelige bilder MPEG-1 (nært knyttet til Motion JPEG- kodeken ) og MPEG-2 er basert på JPEG-standarden. Et oppfølgingsprosjekt til JPEG for lagring av bilder er JPEG 2000 , som har bedre komprimering og mange nyttige egenskaper, men som ennå ikke har klart å få bred aksept, i hvert fall til nå. Et annet potensielt etterfølgerformat er JPEG XR , som er basert på HD Photo- format utviklet av Microsoft , men som også bare har blitt støttet sporadisk så langt.

JPEG XL

Et annet etterfølgerformat, JPEG XL, er også under utvikling. Det sies å tilby en rekke fordeler, spesielt forbedret komprimering basert på de eksperimentelle PIK- og FUIF-formatene. En formatfrysing ble kunngjort i januar 2021. I mai 2021 ble det rapportert at formatet kunne prøves ut i forhåndsversjoner av Chrome, Edge og Firefox (fortsatt sikret med ekstra brytere).

Patentproblemer

Flere selskaper (se patentroll ) har allerede prøvd å bruke sine (stort sett feil bevilgede ) patenter for å reise krav mot programvareprodusenter hvis produkter kan lese eller opprette JPEG-filer. Så langt har alle relevante patenter blitt trukket tilbake. Likevel klarte klagerne å samle inn millioner i utenrettslige forlik.

Implementeringer

En veldig viktig implementering av en JPEG-kodek er det gratis programbiblioteket libjpeg . Den ble først publisert i 1991 og har vært en nøkkel til standardens suksess. De eller en direkte etterkommer brukes i et stort antall applikasjoner.

I mars 2017 presenterte Google en ny åpen kildekode JPEG-koder kalt “Guetzli” . Dette komprimerer bildefiler bedre enn tidligere metoder. Ifølge Google bør Guetzli generere JPEG-filer som er opptil 35 prosent mindre enn konvensjonelle kodere og skape mindre irriterende komprimeringsgjenstander . Kodehastigheten (~ 0,01 MPixel / s) er imidlertid omtrent fire størrelsesordener lavere enn for JPEG-standardkodere (100 MPixel / s) og er derfor bare egnet i praksis for meget ofte brukte statiske bilder.

litteratur

  • Heiner Küsters: Bildedatakomprimering med JPEG og MPEG. Franzis, Poing 1995, ISBN 3-7723-7281-3 .
  • Thomas W. Lipp: Grafiske formater. Microsoft Press, Unterschleißheim 1997, ISBN 3-86063-391-0 .
  • John Miano: Komprimerte bildefilformater. Addison-Wesley, Reading 2000, ISBN 0-201-60443-4 (engelsk).
  • William Pennebaker, Joan Mitchell: JPEG Still Image Data Compression Standard. Chapman & Hall, New York 1993, ISBN 0-442-01272-1 (engelsk).
  • Tilo Strutz: bildedatakomprimering, grunnleggende, koding, bølger, JPEG, MPEG. 4., reviderte og supplerte utgave, Vieweg + Teubner, Wiesbaden 2009, ISBN 978-3-8348-0472-3 .

weblenker

Commons : JPEG  - samling av bilder, videoer og lydfiler

Individuelle bevis

  1. jpeg.org 20:20 30. januar 2016
  2. ^ Digital komprimering og koding av kontinuertone-stillbilder - Krav og retningslinjer
  3. Patenterklæring ( Memento 30. oktober 2014 i Internettarkivet ) fra jpeg.org
  4. jpegtran nettsted
  5. Ubuntu - Informasjon om pakken libjpeg-progs i jaunty (inneholder jpegtran)
  6. Sebastian Grüner: Kompresjon - Dropbox gjør Jpeg-bilder nesten en fjerdedel mindre. Golem.de , 15. juli 2016, åpnet 19. juli 2016 .
  7. Sammenligning av egenskapene (inkludert komprimering) av BMP GIF PNG JPEG TIFF PCX TGA , tilgjengelig 10. oktober 2012
  8. maximumcompression.com
  9. JPEG - JPEG XL. Hentet 11. juli 2020 .
  10. Hvordan JPEG XL sammenlignes med andre bildekodeker. Hentet 11. juli 2020 .
  11. heise online: JPEG XL skal arve JPEG, PNG, GIF og Webp. Hentet 9. mai 2021 .
  12. Aktiver JPEG XL som et nytt bildeformat i nettleseren (Chrome, Edge, Firefox). 9. mai 2021, åpnet 9. mai 2021 (tysk).
  13. jpeg.org
  14. Robert Obryk og Jyrki Alakuijala: Kunngjøring av informasjonskapsler: En ny åpen kildekode JPEG-koder. Google Research Europe, 16. mars 2017, åpnet 18. mars 2017 .
  15. Ber Daniel Berger: Googles kjekskoder krymper JPEG-bilder med en tredjedel. I: heise online. Heise Zeitschriften Verlag, 17. mars 2017, åpnet 18. mars 2017 .