Annons

JPEG-komprimering

Produkter
(logga in för att koppla)

Johan_Hackman

Aktiv medlem
Jag vet i stora drag vad komprimering till JPEG innebär, och jag har sett hur komprimeringen kan förstöra en bild om komprimeringen blir för hård.

Om man nu vänder på det, och sätter kvaliteten till högsta nivån, vad blir resultatet av komprimeringen? Låt mig ta två exempel:

1. Min nya Minolta Dynax 7D, där den högsta JPEG-kvaliteten kallas för Extra fine och ger filer som är runt 5 MB stora.

2. Jag sparar filer i Photoshop och väljer den högsta kvaliteten, dvs nivå 12.

Jag kan själv inte se en kvalitetsförsämring i och med JPEG-komprimeringen eftersom de sätt jag kan studera bilden begränsas till skärmen och utskrifterna på min Canon i965. Jag antar dock att det finns en, åtminstone teoretisk, försämring och jag undrar om det är någon som vet mer om detta?

Johan Hackman
 
Grundregeln är att varje gång du sparar i JPG så förstörs bilden lite. Med andra ord ska man aldrig jobba i JPG utan TIFF eller PSD.

Det är inte alltid man kan se det, men om du zoomar in kring en kant i bilden så kan man se en "spökbild" eller "skugga" av pixlar som följer kanten. Ju större komprimering desto tydligare syns det.

Greven
 
Johan: En grundregel som jag brukar använda är, om betraktaren inte kan se skillnaden med blotta ögat så duger "godtyckliga" inställningar. Det är först när man ska börja göra förstoringar/delförstoringar eller kunna ha möjligheten att i efterhand förbättra färgerna som behovet av högre kvalitet krävs. Om man frågar mig alltså. Jag brukar använda "Fine" i kameran och sedan spara i kvalitet 8 i PS. Ingen av de bilder som jag visar för mina kompisar på min bildskärm, framkallar, eller likn, kommer att se någon skillnad.
Men om jag beskär en bild hårt som jag sedan vill framkalla och sätta upp på väggen i A4. Ja, då kan det vara läge att börja fundera på att spara all info som bara finns i bilden. Men då är det oftast (tycker jag) problem att bilden har fel skärpa eller rörelseoskärpa eller nått annat i grunden som framträder före jpg-komprimeringen.

/Fredrik, som har provat RAW också.

P.S Daniel, länken du bifogade innehåller en punkt på slutet som gör att den fungerar lite knagligt.
 
Hej,

Jag har skrivit en artikel här på Fotosidan om JPEG-komprimering som inte är publicerad än. Den är rätt teknisk. Här kommer en kopia:

JPEG är ett av de vanligaste formaten för digital lagring och överföring av bilder som används idag och ett format som alla på Fotosidan.se har kommit i kontakt med. Men hur fungerar det egentligen? Vad är det man ändrar med kvalitetsinställningen? Varför blir filerna mycket mindre vid vissa motiv jämfört med andra motiv? Den här artikeln ska försöka bringa lite ordning bland begreppen.

Först en kort beskrivning av JPEG. JPEG står för ”Joint Photographic Expert Group” och är ett standardiserat format för komprimering av bilder. JPEG använder så kallad förstörande komprimering av bildinformation. Det betyder att för varje gång man sparar om en bild i JPEG-formatet så förstörs lite bildinformation.

JPEG är specialkonstruerat för att utnyttja svagheter i människans sätt att uppfatta färger, bl a att man har svårare att uppfatta små skillnader i färg än i ljushet. Naturligtvis betyder detta att JPEG bör användas på bilder som ska ses av människor och inte t ex bildanalyseras i datorer.

JPEG kan hantera gråskalebilder (8 bitar/pixel) och fullfärgsbilder (24 bitar/pixel). Gråskalebilder komprimeras dock inte lika effektivt som färgbilder. Gråskalebilder blir oftast 10%-25% mindre än motsvarande fullfärgsbild trots att gråskalebilden bara använder 8 bitar/pixel. Detta beror på ovan sagda faktum att färginformation kan komprimeras effektivare än ljushetsinformation.

Hur komprimeras då en bild i JPEG?

En JPEG-bild använder vanligtvis inte RGB-information vid komprimeringen utan överför först bilden till YCbCr-information. YCbCr är en färgrymd där Y är luminansen (ljusheten) och Cb och Cr är krominansen (färgen). Varje kanal komprimeras sedan var för sig. Anledningen är att man kan komprimera färginformationen mycket hårdare än ljushetsinformationen.

Därefter nersamplar man ofta dom olika komponenterna (detta steg är inte nödvändigt). Luminansen lämnas med full information men krominansen nersamplas ofta med 2:1 horisontellt och 2:1 eller 1:1 (ingen förändring) vertikalt. Detta brukar man beteckna med 2h2v och 2h1v (alternativa beteckningar är 411, 422 eller 2x2,1x1,1x1, 2x1,1x1,1x1). Nersamplingen går till så att man tar en grupp bildpunkter och räknar ut medelfärgen hos dessa varefter men ersätter färginformationen för de enskilda bildpunkterna med medelfärgen för gruppen. Nersampling 2h2v innebär att man grupperar 4 st bildpunkter, 2 horisontellt och 2 vertikalt. Nersampling 2h1v betyder att man grupperar 2 st bildpunkter horisontellt. Redan i detta steg försvinner hälften eller en tredjedel av informationen. Märkligt nog har detta oftast ingen visuell inverkan på bilden.

Efter detta steg delas bilden in i block om 8x8 bildpunkter för varje komponent (Y, Cb och Cr). Varje block omvandlas genom en diskret cosinustransform (DCT). En DCT liknar en fouriertransform och ger på samma sätt en frekvenskarta med 8x8 komponenter som beskriver medelinformationen för komponenten i blocket och successivt högre frekvens för förändringen i blocket. Enkelt sagt är DCT ett annat sätt att beskriva bildinformationen. En DCT är helt reversibel, dvs ingen information fösvinner när man gör en DCT, med undantag för avrundningsfel. Högfrekvensinformation är mindre viktig än låg-frekvensinformation och kan därför kastas bort i högre grad.

Nu kommer den stora informationsförstörande steget. Utifrån den kvalitetsinställning du har angett att du vill spara JPEG-bilden i så räknas en tabell med ”kvantifieringskoefficienter” ut. Var och en av de 64 frekvenskomponenterna i blocket divideras med en ”kvantifieringskoefficient” och omvandlas till heltal. Ju högre kvantifieringskoefficient desto mer data förloras. Oftast används lägre kvantifieringskoefficienter för luminansinformationen än för krominansinformationen. Höga frekvenser divideras alltid med en högre koefficient än lägre frekvenser, men exakt hur detta är kopplat till kvalitetsinställningen är olika i olika program. Det är därför en uppgift om vilken kvalitet man sparade bilden i är i stort sett meningslös om man inte samtidigt anger vilket program som användes.

I sista steget komprimeras de reducerade koefficienterna med Huffmankodning eller aritmetisk kodning. Detta är vanliga datakomprimeringsalgoritmer liknande dom som används i vanliga packprogram som t ex WinZip mfl. I detta steg förloras ingen bilddata.

Varför får olika motiv olika filstorlek?

Svaret på denna fråga finns att finna i steget då man reducerar frekvensinformationen genom att dividera med kvantifieringskoefficienterna. En bild med mycket kontraster och fina detaljer ger mycket högfrekvent information efter DCT. Trots reduceringen med kvantifieringskoefficienterna blir mycket högfrekvent information kvar vilket leder till större filer. I en bild med mindre kontraster och jämna övergångar får man mer låga frekvenser vid DCT och dom höga frekvenserna kan försvinna helt vilket ger mindre filer.

Slutord

JPEG erbjuder ett antal olika inställningar för att styra vilken kvalité man vill ha i den slutliga bilden. Vad som är viktigt att komma ihåg är att inte spara om bilder i JPEG flera gånger. Om man arbetar med en bild och man sparar undan bilden som arbetskopior så bör man spara i ett oförstörande format som okomprimerad TIFF, PNG eller programmets eget format. Undvik GIF-formatet! Även om GIF använder oförstörande komprimering så kan formatet endast hantera 8 bitar per pixel (256 färger) och en stor mängd data går förlorad vid konverteringen från 24 bitar/pixel till 8 bitar/pixel. Om man ändå vill spara arbetskopior som JPEG så spara alltid med exakt samma kvalitetsinställning och samma program. Då förloras minst kvalité.

Om du vill ladda upp en bild på t ex fotosidan.se och du måste hålla dig under en viss filstorlek (t ex i forumen) så prova i första hand att välja 2h2v-nersampling. Justera därefter kvalitetsinställningen så att filen blir tillräckligt liten. Om kvalitén är av högsta prioritet så välj ingen nersampling (1h1v) och en hög kvalitetsinställning.

Många program har även en inställning för hur DCT ska utföras. Oftast har man en snabb heltalsalgoritm (integer) och en långsammare, men noggrannare, flyttalsalgoritm (floating point). Ibland finns även en snabbare (men ännu mindre noggrann) heltalsalgoritm (fast integer). Skillnaden mellan dessa brukar vara minimal, både i tid och i kvalité och ska bara enstaka bilder sparas på en relativt modern dator så kan flyttalsalgoritmen användas. På 386:eek:rnas tid spelade denna inställning en roll men knappas på moderna maskiner.
 
Tim: Den var som sagt teknisk, men helt ok. Jag saknar dock vad som menas rent tekniskt med progressive jpg?
 
Tim: Synd att man inte har läst "bildkomprimeringsalgoritmer, 5p". Den var om än mer teknisk. Men en sak kunde jag iaf utläsa av texten. Det är inte enkelt!
Jag var egentligen lite nyfiken på om du skulle ta med lite kort om progressiv jpg i din artikel. Om inte, varför då?
 
Bra fråga. I grunden är ju komprimeringen lika och det är i princip bara hur data sparas som skiljer. Jag tyckte det var viktigare att peka på principerna bakom jpeg-kodningen och dessutom är baslinje-kodningen vanligare och den som används på Fotosidan.se.
 
Tack för många väldigt intressanta och lärorika svar!

Jag undrar dock fortfarande vad som händer med en bild om man håller sig till den högsta kvaliteten?

Vilken information går förlorad när jag sparar i Photoshop och använder nivå 12? Och vilken information saknas när jag väljer JPEG istället för RAW när jag fotograferar med min Dynax 7D, (förutom att jag där får 12 bitar istället för 8)?

Johan
 
Johan_Hackman skrev:
Och vilken information saknas när jag väljer JPEG istället för RAW när jag fotograferar med min Dynax 7D, (förutom att jag där får 12 bitar istället för 8)?
Detta har (till största delen) inget med JPEG att göra, läs mer under avsnittet vitbalans här.
 
ANNONS
Götaplatsens foto – en riktig fotobutik.