Signup for GEOCEN Newsletter here...Print?Tell a friend about this page...

Komprimering af rasterdata

Generelt om rasterdata og billeders opløsning

I den militærgeografisk verden skelner man mellem forskellige typer data. En type af data benævnes "rasterdata". Rasterdata er populært sagt et "billede". Uanset om man har et scannet kort (egentligt en affotografering af et kort) eller et foto. Under alle omstændigheder er der, når man arbejder med rasterdata, tale om et bitmap. Det vil sige, at alle data optræder i et koordinatsystem (x,y), hvor hver enkelt pixel (billedelement) har hhv. en X-værdi og en Y-værdi, samt en farveværdi.

Antallet af pixels (billedets udstrækning på computerskærmen) bestemmes af højeste værdi på X-aksen og højeste værdi på Y-aksen. Det samlede antal pixels kan således beregnes ved at multiplicere hhv. højeste X-værdi med højeste Y-værdi.
Eks.: Et billed er 600 · 800 pixels, dvs. det samlede antal pixel er 480.000 eller knap 0,5 megapixels. Tilsvarende vil et billede på 10.000 · 10.000 pixels være 100.000.000 eller 100 megapixels.

Alle billederne i denne intro er lagret i png-formatet (Portable Network Graphics) med en farvedybde på 24 bit, dvs. ca. 16,7 millioner farver eller "TrueColor". Det gælder også selv om der måtte være langt færre farver på billedet. Så når du ser på filen i CADRG-format, er det ikke den rigtige CADRG-fil, som du ser, men et dump af  CADRG-filen vist i png-formatet. Dette skyldes bl.a. at din browser ikke understøtter alle de formater, som denne intro omhandler.

Udsnit af referencefilen (tif-format) vist i ArcGIS og resamplet til 800x600 pixels.
Billede herover er vist  i opløsningen  (dvs. fysiske udstrækning på din skærm) 800 · 600 pixels.
Billedet er i png-format og filens størrelse er 635.686 bytes eller ca. 620 kilobytes (Kb).

Men bland nu ikke filens størrelse (målt i Bytes) sammen med billedets udstrækning (målt i antallet af Pixels). Der er selvfølgelig en sammenhæng, som vi efterfølgende redegør for, men afgørende for filens størrelse (i Bytes) er også faktorer som farvedybde og anvendelsen af komprimering.

Et billede med  ½ megapixel information (svarende til 500.000 billedpunkter) kan du tage og efterfølgende opbevare på din mobiltelefon, hvis dit mobiltelefonkamera er et Â½ megapixel kamera. Men du kan kun opbevare mange billeder på mobiltelefonen, fordi de er komprimerede. Et billede, som indeholder 100 megapixel, eller 100.000.000 billedpunkter, er et relativt lille billede, set med geospatiale øjne. Derfor er også vigtigt at kende til komprimering af rasterbilleder, når  man arbejder med rummelige data - uanset om det er scannede papirkort, fly- eller satellit-fotos.

Billedets farvedybde

Hver pixel i et billede kan antage en farvedybde på et antal bit. Hvis der er tale om et billede, som kun indeholder enten sorte eller hvide pixels, er forvedybden1 bit. Denne type billeder kendes fra gamle aviser, hvor man lavede gråtoner ved at ændre på tætheden af de sorte pixels på det hvide papir. Herved kunne man nøjes med at trykke en farve, nemlig den sorte.

Moderne digitale billeder vil oftest være kendetegnet af en større farvedybde. Ved at anvende 8 bits får man 256 værdier, som enten giver mulighed for at give et gråtone spektrum eller 256 farver. Hvis man opdeler billedet i en rød, blå og grøn "kanal" eller farvebånd [Engelsk: Band], kan man give én af 256 forskellige værdier til hver kanal for hver pixel. Når man blander disse 8 + 8 + 8 = 24 bit får man en farvedybde, som giver mulighed for op til ca. 16,7 millioner farver -  eller 256 · 256 · 256 farver, der også betegnes som TrueColor.Billeder kan også antage endnu større farvedybde, simpelthen ved at hver farvekanon har en større farvedybde, eks. har mange almindelige scannere mulighed for at scanne billeder i 30 (10 +10 +10), 36 (12 +12 +12) eller 48 (16 + 16 + 16) bit farvedybde. Denne forøgede farvedybde har normalt ingen betydning for det visuelle udtryk, men når man scanner med f.eks.16 bit gråtoner giver det jo i sagens natur en langt højere granularitet (finkornethed) hvis man har 65.536 forskellige pixelværdier end hvis man har 256 (8 bit). 

Hvorfor komprimere data?

Hvis hver TrueColor pixel kan antage én af 16,7 mill. værdier vil et ukomprimeret raster-billede komme til at fylde (10.000px · 10.000px · 24bit) 2.400.000.000 bits. Og da der går 8 bit på 1 Byte ser regnestykket således ud:
2.400.000.000 : 8  =  300.000.000bytes eller 300 megabytes. Dette eksempel viser blot, at hvis man ikke gør noget for at reucere billed-filens størrelse, vil man hurtigt komme i en situation, hvor man mangler lagerplads: Hvis den angivne billedfil er et satellit foto med med en spatial (rummelig) opløsning på én m pr. pixel, altså hvor hver pixel på billedet svarer til 1 m i terænnet, svarer det til, at billedfilen dækker et område på 10.000m · 10.000m eller 100km2. Da Danmarks areal udgør ca. 45.000km2 betyder det, at vi for at dække vort ganske lille land, skal bruge 135.000.000.000 bytes eller 135 Gb lagerplads for at dække hele Danmark. Ville vi gøre det samme med Grønland, ville dette tal vokse til adskillige tusinde Gb (Tb). Derfor er det hensigtsmæssigt at komprimere data.

To måder at komprimere data på.

Uden at gå for meget i de matematiske deltaljer vil jeg blot fortælle, at der er i princippet er to forskellige måder at komprimere rasterdata på: Enten ved at anvende en tabsgivende algoritme eller ved at anvende en ikke-tabsgivende algoritme. (Visse programmer anvender en "variabel" algoritme: Hvis man ikke komprimerer data for hårdt, kan det gøres (næsten!) uden tab af data, men hvis man komprimerer hårdt, så sker der et tab. Eks. på sådanne programmer er Mr. Sid (*.sid) og ECW (*.tif))
Eks. på programmer, som anvender ikke-tabsgivende algoritmer, er WinZip og WinRAR til Windows-platformen eller TarBall og GunZip til Linux / UNIX paltformen. Et eks. på et format, som anvender en tabsgivende algoritme, er JPG / JPEG - formaterne.

 [Hvis man vil komprimere levende billeder eller lyd, kan man anvende MPG / MPEG, WMA/WMV og MP3-formaterne; men vær opmærksom på, at alle disse er filformater, som anvender tabsgivende algoritmer]

I praksis (forsøget).

For at anskueliggøre ovenstående har vi i GISSEK/MGA gennemført en række (absolut ikke videnskabelige) forsøg med at komprimere et rasterbillede. Originalbilledet er et udtræk af VisIT+ programmet, som kendes mange soldater. Som referencefil har vi valgt en ukomprimeret GeoTIF-fil med en størrelse på ca. 6,9 Mb (7.152.100 bytes ).

De forskellige filformater viser det markerede udsnit ...

For at vise forskellene har vi taget et 4 km stort udsnit af øen Fur og lavet en række skærmdump fra ArcGIS v. 9.1: Zoomniveauet var i alle tilfælde sat til 1:15.000 og filerne er efterfølgende resamplet til ca. 500 · 500 pixels, og lagret i 24 bit PNG-filer. Selvom det således ikke er originalfilerne, som du ser skulle det nok kunne give dig en fornemmelse af forskellene.

Resultatet er opsat i et skemaet, som fremgår herunder.

Kvalitet            
Filformat (extnsion) (Geo) *.TIF (Geo) *.ECW (Geo) *.IMG *.TL4 (Geo)*.JP2 (Geo)*.SID *.ZIP
Kompression Ukomprimeret ECW Ukomprimeret CADRG Jpg2000 Mr.Sid WinZip
Komprimere uden tab

Komprimere med tab
Variabel kompression
Størrelse med ringe tab  6.985Kb  1.333Kb  2.982Kb   320Kb   1.026Kb 2.553Kb  679Kb
Faktor -  20 - -   20  20 Max: (92%)
Normal: (90%)
Fast: (89%)
Størrelse med tab - (meget tab!) 623Kb - - 1.026Kb  2.553Kb  Tabsfri
Bemærkninger 3 Farvebånd
8 bit = True Color

ArcGIS 9.1 PlugIn.

[Tillader max filstørrelse på 500Mb]

3 Farvebånd
8 bit = True Color

Kan håndteres af:
 - ArcGIS 9.1
- ERDAS Imagine 9.0

Kan håndteres af:
 - ArcGIS 9.1
- ERDAS Imagine 9.0

Lavet med ERDAS Imagine 9.0

ERDAS Imagine 9.0
[Tillader max filstørrelse på 4 Gb]

ArcGIS PlugIn
[Tillader max filstørrelse på 500Mb]

Kan håndteres af:
 - ArcGIS 9.1
- ERDAS Imagine 9.0
 

Lavet med ERDAS Imagine 9.0

Shareware, WinXP og nyere OS kan læse *.zip-formatet direkte

Herunder kan du se dumps af de forskellige formater og konsekvenserne af de forskellige komprimeringer.
 

Referencefilen: Skærmdump af ukomprimeret 1:50.000 geokodet tiff-fil (Fra ViSIT M+). Zoomniveauet er sat til 1:15.000 og filen er gemt i Portable Networks Graphics (PNG) format.

Compreddes Arc Digitized Raster GGraphics (CADRG)-fil: Bemærk at farveafgrænsningerne bliver uklare og fontene næsten ulæselige. Endvidere tilføjes gråt mønster i det lyseblå vand for at minimere det samlede farveantal...

Referencefilen: Skærmdump af ukomprimeret 1:50.000 geokodet tif-fil (Ffra ViSIT M+). Zoomniveauet er sat til 1:15.000 og filen er gemt i Portable Networks Graphics (PNG) format.
Filstørrelsen er ca. 6,9 Mb
Compressed Arc Digitized Raster Graphics (CADRG)-fil: Bemærk at farveafgrænsningerne bliver uklare og fontene næsten ulæselige. Endvidere tilføjes gråt mønster i det lyseblå vand for at minimere det samlede farveantal...
Filstørrelsen er ca. 5% af den oprindelige.

Bemærk bl.a. at NH i nederste venstre hjørne ikke længere fremstår med en ensartet rød flade;

Bemærk bl.a. at NH i nederste venstre hjørne nu fremstår med en noget grumset flade og den

Tagged Image File Format (TIF)-fil let komprimeret med ECW algoritmen:
Bemærk bl.a. at NH i nederste venstre hjørne ikke længere fremstår med en ensartet rød flade;
den bliver lidt grumset, men fonte og detaljer fremstår stadig klare og ret velafgrænsede...
Filstørrelsen er ca. 20% af den oprindelige.
Tagged Image File Format (TIF)-fil middelsvært komprimeret med ECW algoritmen:
Bemærk bl.a. at NH i nederste venstre hjørne nu fremstår med en noget grumset flade og den
hvide baggrundsfarve bliver gråmeleret. Ligeledes er fonte og andre detaljernoget mindre velafgrænsede...
Filstørrelsen er nu kun ca. 9% af den oprindelige.

 

Bemærk bl.a. at NH i nederste venstre hjørne nu fremstår med en svagt grumset flade mens den hvide baggrund fortsat fremtræder helt hvid. Detaljer gengives med ubetydelige visuelle forvanskinger og er stadig fint afgrænsede... Filstørrelsen er ca. 15% af den oprindelige.

 Mr. Sid Format, sid-fil, med lav komprimereing: Meget ringe tab af både farver og detaljer...

 JPEG 2000 Format (jp2)-fil moderat komprimeret med jp2 algoritmen:
Bemærk bl.a. at NH i nederste venstre hjørne nu fremståer med en svagt grumset flade mens den hvide baggrund fortsat
fremtræder helt hvid. Detaljer gengives med ubetydelige visuelle forvanskinger og er stadig fint afgrænsede...
Filstørrelsen er ca. 15% af den oprindelige.
 Mr. Sid Format, sid-fil, med lav komprimereing: Bemærk at NH i nederste venstre hjørne fremståer
med en ensartet rød flade og detaljerne er meget skarpe. Eneste visuelle ændring i forhold til ref-filen er at farverne synes
en anelse mørkere. (Dette kan skyldes en automatisk justering af histogrammet under konverteringen. Men intet detaljetab.
Filstørrelsen er ca. 36% af den oprindelige.

 

 

Den oprindelige TIF-fil (ref.) komprimeret med WinZip for Windows med tre forskellige komprimeringsalgoritmer:

  • Max:   6.985 Kb => 589 Kb ~ 12 : 1
  • Normal: 6.985 Kb => 679 Kb ~ 10 : 1
  • Super Fast (min): 6.985 Kb => 797 Kb ~ 8,8 : 1

 

Den letkomprimerede ECW-fil resamplet med AntiAliasing slået til: Stadig samme grumsede farver,
men fonte frenstår tydeligt og letlæste og billedet synes at have et "blødere" visuelt udtryk.
 

Pakkerne med de fulde referencefiler kan downloades her.

Konklusion

Af ovenstående test vil vi tillade os at konkludere, at ingen at ingen af de valgte komprimeringsalgoritmer, bortset fra WinZip, kan komprimere helt uden at der sker ændringer i forhold til den oprindelige referencefil. Generelt ser det ud som om, at jo mindre filstørrelse, jo mere tab: Størst tab på CADRG-filen, som så tilgengæld kun fylder ca. godt 4% af den oprindelige fil.
Hvis man kan acceptere et moderat tab er ECW algoritmen temmelig stærk; dels fordi den er variabel og brugeren dermed selv får indflydelse på den komprimerede fils størrelse, dels fordi farveændringerne ikke er af stor betydning for kortets læselighed på skærmen.

Hvis tabet kun må være minimalt, vil vi fremhæve formaterne Mr. Sid (sid) og JPEG 2000 (jp2): Mr. Sid giver meget skarpe og klare farver, selv når der zoomes meget. Til gengæld fylder filen med nænsom komprimering stadig 36% af den oprindelige fil. Hvis en mindre ændring af farverne kan accepteres er JPEG 2000 algoritmen et godt valg: Den komprimerede fil fylder kun ca. 14% af den oprindelige fil og kortet fremstår letlæst og klart. Begge algoritmer er variable.

Mest overraskende er nok WinZip-komprimeringen: Det sker uden tab - alligevel er det muligt (selv med "normal"-algoritmen) at reducere filens størrelse til mindre end 10% af den oprindelige størrelse. Ulempen ved denne komprimering er jo, at filen udpakket på brugerens system, igen fylder de fulde ca. 7 Mb og at slutbrugeren skal have et værktøj til koprimering og de-komprimering. Men det er måske også komprimeringens styrke: Den er 100% tabsfri og specielt til brug i geospatiale rasteranalyser er det vigtigt, at arbejde med ukomprimerede data for at skabe det bedste og mest nøjagtige analyseresultat...

 

 Happy Compressin´
Anders & Vasanthan