Didactisch materiaal bij de cursus Beeldverwerking http://telin.UGent.be/~philips/beeldv/ Academiejaar 2010-2011 Prof. dr. ir. W. Philips philips@telin.UGent.be Tel: 09/264.33.85 Fax: 09/264.42.95
Copyright notice This powerpoint presentation was developed as an educational aid to the renewed course “Image processing” (Beeldverwerking), taught at the University of Gent, Belgium as of 1998. This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1. If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 1998-2002” in a font size of at least 10 point on each slide; 2. You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4. You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes, ... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by email. I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures. Prof. dr. ir. W. Philips E-mail: philips@telin.UGent.be Department of Telecommunications and Information Processing Fax: 32-9-264.42.95 University of Gent Tel: 32-9-264.33.85 St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
Beeldcompressietechnieken met verlies
Algemeen compressieschema verminderen van spatiale correlatie Orthogonale transformatie Predictie van pixelwaarden uit voorgaande pixels (gehele) predictiefouten of (reële) transformatiecoëfficiënten verwijderen van visueel-irrelevante data Kwantisatie van coëfficiënten/predictiefouten Niet coderen van sommige coëfficiënten / predictiefouten bitstroom verwijderen van statistische redundantie gehele getallen Huffmancodering Arithmetische codering
De “rate-distortion” curve Bij verlieshebbende codering moet men kwaliteit afwegen tegen compressiefactor aantal bits (“bit rate”) distorsie “rate-distortion” curve “rate-distortion” grens Als numeriek distorsiecriterium neemt men dikwijls de kwadratische fout moet voor een goede techniek overal dalend zijn! beter of de PSNR,of een gemiddelde score gegeven door een panel, of … De “Rate-distortion” curve geeft de corresponderende waarden van distorsie en aantal bits, voor verschillende instellingen van de codeerparameters Ze wordt meestal berekend op een representatief stel beelden De “Rate-distortion” grens begrenst de best mogelijke distorsie die om het even wel codeerschema kan bereiken bij een gegeven aantal bits
Huidige compressiestandaard Voorbeelden... Rmsfout Quasi- verliesloos gebied Huidige compressiestandaard Predictieve techniek #bits (kbyte) De huidige compressiestandaard is niet langer optimaal in het quasi-verliesloos gebied
…Voorbeelden: Compressie vs. distorsie Rmsfout Compressiefactor
“Subjectieve” kwaliteitsmaten Deze houden rekening met de eigenschappen van het menselijk oog Voorbeeld: frequentiegewogen gemiddelde kwadratische fout (met en 2D-DFTs) De gewichtsfunctie Wk,l houdt rekening met de spatiale-frequentie-gevoeligheid van het oog Wk,l hangt in principe af van de kijkafstand! enkel voor vaste kijkafstand! Interessant bij het optimaliseren van codeerschema’s op basis van transformatiecodering
Predictietechnieken met verlies gedecodeerde pixels predictie - + Huffman coder kwantisatie Huffman decoder schaling predictie + nieuwe pixel huidige pixel De coder doet predictie op basis van de gedecodeerde pixels i.p.v. op basis van de originele pixels minder nauwkeurige predictie in de coder geen foutpropagatie netto betere predictie
Kwantisatie ai,j=12.7 = 3.628571429 D ki,j= 4 Kwantisatie=het afronden van een reëel getal naar geheel veelvoud van een kwantisatiestap Voorbeeld met kwantisatiestap D=3.5 en afronden ai,j=12.7 = 3.628571429 D ki,j= 4 ai,j=-4.5 = -1.28571 D ki,j= -1 Nut van kwantisatie na kwantisatie zijn er minder getallen mogelijk, waardoor de ki,j meer comprimeerbaar zijn dan de ai,j voorbeeld er zijn oneindig veel getallen ai,j in het interval [-35, 35], maar daarmee corresponderen voor D=3.5 maar 21 verschillende ki,j voor D=7 zijn er nog minder (n.l. 11) verschillende ki,j Nadelen kwantisatie: er gaat informatie verloren; uit de ki,j kan men de ai,j maar benaderend reconstrueren, b.v.b. voor D=3.5: ki,j= 4 ai,j 4 D =14 ki,j= -1 ai,j -1 D = -3.5
Kwantisatie: voorbeeld Kwantisatie (D=2) -2 -1 -1 0 0 0 1 1 2 1 3 2 4 2 5 3 6 3 Dekwantisatie (schaling met D=2 ) -1 -2 0 0 1 2 2 4 3 6
...Transformatiecodering Doel: beelddata lineair transformeren in (gekwantiseerde) coëfficiënten met lagere entropie kwantisatie transfor-matie statistisch coderen statistisch decoderen inverse transfor-matie schaling Voordeel orthogonaliteit van de basisfuncties: aangezien de transformatie energie behoudt, is de kwadratische fout gemakkelijk te schatten: als Dj=D
De kwantisatiefout nauwkeuriger bekeken transformatie met Afrondingsfouten kunnen beschouwd worden als stochastische grootheden kleine randomvariaties op b(x,y) leiden tot random variaties op aj als deze variaties groot zijn t.o.v. Dj lijkt het alsof de ej uit gegenereerd worden door een randomgenerator met een uniforme distributie Stel ej uniform verdeeld in [-Dj /2, Dj/2] onafhankelijk van de gekozen orthogonale transformatie!
De optimale orthogonale transformatie De beste transformatie is deze die tot de beste rate-distortion curve leidt: bij een gegeven compressiefactor is de distortie zo klein mogelijk bij een gegeven distortie is de compressiefactor (of voor de eenvoud: de entropie van de gekwantiseerde coëfficiënten) zo hoog mogelijk In eerste benadering blijkt dat de RMS-fout enkel afhankelijk is van de kwantisatieparameters en de blokgrootte, maar niet van de gebruikte orthogonale transformatie de compressiefactor is wel degelijk afhankelijk van de gebruikte orthogonale transformatie Op basis van de tweede-orde beeldstatistiek (die men kan meten) kan men een optimale transformatie afleiden: de Karhunen-Loève transformatie deze transformatie is beeldafhankelijk en niet-scheidbaar! Experimenteel blijkt dat de Discrete-CosinusTransformatie (DCT) zo goed als optimaal is deze transformatie is beeldonafhankelijk en ze is scheidbaar (en dus sneller te berekenen)!
Verlieshebbende compressie DCT-gebaseerde technieken
De discrete-cosinustransformatie (DCT) +··· coëfficiënten-blok a00 +a01 +a02 +a03 +a10 +a11 +a12 +a13 +a20 +a21 +a22 +a23 +a30 +a31 +a32 +a33 = beeldblok met ci= 1 als i=0 2 als i 0 Basisfuncties: qi(y)qj (x); Frequenties: DCT: DFT:
Blokcodering met de DCT groot DCT klein Kleine coëfficiënten komen veel voor; grote zijn zeldzaam het histogram van de gekwantiseerde coëfficiënten is sterk niet-uniform ideaal voor statistische codering Experimenteel blijkt dat blokgroottes van n=8 à n=32 de beste rate-distortion curve opleveren De DCT is scheidbaar en vraagt dus 4n berekeningen per pixel n=8 is dus vier keer sneller dan n=32 men kiest steeds n=8
De JPEG-standaard JPEG = Joint Photographic Experts Group beelddata Voorwaartse DCT Kwantisatie entropie- codering kwantiseringstabel tabel huffmantabel tabel Verdeling in blokken van 8x8 pixels Kwantisatie met frequentie-afhankelijke nauwkeurigheid: Gecomprimeerde file Huffmancodering of aritmetische codering De gekwantiseerde DC-coëfficiënten a0,0 (één per blok) worden verzameld in een kleiner beeld dat met lossless JPEG wordt gecodeerd “Runlength” (looplengte-) codering van hoogfrequentcoëfficiënten binnen een blok gecomprimeerde data
Psychovisueel aangepaste kwantisatie De kwantisatiestap is frequentieafhankelijk Bij hoge spatiale frequenties worden de coëfficiënten ruwer gekwantiseerd omdat het oog er minder gevoelig is De optimale kwantisatietabel wordt afgeleid uit experimenten met vrijwilligers De waargenomen spatiale frequentie hangt af van kijkafstand! Men veronderstelt dus impliciet een vaste kijkafstand frequentieafhankelijke kwantisatie is niet gewenst als men beelden wenst uit te vergroten (b.v. in medische toepassingen) Horizontale frequentie j Verticale frequentie i
Codering van de DC-coëfficiënten DC-coëfficiënten van elk blok, gegroepeerd in 32x32 beeld (hier 8x vergroot getoond) 256x256 beeld, verdeeld in 8x8 blokken Naburige DC-coëfficiënten lijken nog vrij sterk op elkaar men vormt er een DC-beeld mee en comprimeert dit beeld met LJPG
Zigzagvolgorde en runlengtecodering “Zero-run” 9 -11 -13 29 35 -30 250 800 1 -2 2 -3 -1 8 -4 -27 -6 3 -9 41 -7 12 18 36 -312 4 -15 23 -80 123 2 -1 0 0 0 -3 0 -4 5 (2,0) (-1,3) (-3,1) (-4,0) (5,0) metasymbool, gecodeerd door b.v. een (aangepaste) Huffmancoder “End-of-block” De gekwantiseerde HF-coëfficiënten sterven snel uit met stijgende frequentie wegens de typische concentratie van beeldenergie bij lage frequenties wegens de sterkere kwantisering van coëfficiënten met hogere frequenties Dit exploiteert men door “zero-runs” en “end-of-block markers” in te voeren
Fouten bij grote compressie Origineel DCT, 32x32 (factor 40) c b a Aan de blokgrenzen verandert de fout discontinu Blokdistorsie (a) De coëfficiënten met de hoogste frequenties worden door de kwantisatie effectief nul gemaakt, net zoals een “ideaal” laagdoorlaatfilter dat zou doen Laag-doorlaateffect: het beeld wordt wazig (b) Gibbs-effect: er verschijnen “rimpels” in het beeld (c)
JPEG: Problemen bij grote compressie Blokdistortie: de blokgrenzen worden zichtbaar Compressiefactor 27 (0.3 bpp)
Beeldcompressietechnieken met verlies Subbandcodering en wavelets
Subbandcodering - waveletcodering Principe: transformeer beeld met niet-redundante wavelettransformatie kwantiseer de waveletcoëfficiënten buit de similariteit van de waveletbanden uit via nulboomcodering of significantiecodering gebruik een Huffmancoder of aritmetische coder om de overblijvende statistische redundantie uit te buiten De JPEG-2000 standaard uitbreiding van de “oude” JPEG-standaard waveletontbinding + significantiecodering belangrijkste voordelen betere kwaliteit bij zeer lage en zeer hoge compressie zeer flexibel: “schaalbaar” in resolutie, kwaliteit, spatiale locatie en kleurcomponent
Schaalbaarheid in kwaliteit Time: 2.10 s 3.90 s 0.51 s 1.05 s 0.27 s 0.02 s 0.09 s 0.17 s 256x256x8 Totale ransmissietijd over 33.6 modem zonder compressie: 20 s met compressie: 13 s Progressieve decompressie: zeer goed beeld na 2 s bruikbaar bij het navigeren in grote beeldensets Opmerking: de getoonde compressietechniek gebruikt geen wavelets! 256x256x8 512x512x12 ISDN (128 kbit/s): 4 s 24 s 33.6 modem: 20 s 2.2 min.
Schaalbaarheid Schaalbaarheid slaat op het feit dat men door het trunceren van het gecomprimeerd bestand een beeld krijgt dat steeds beter wordt naarmate er minder getrunceerd wordt De betekenis van “beter” hangt af van de volgorde waarin datapakketten in het gecomprimeerd bestand worden opgeslagen schaalbaarheid in nauwkeurigheid: de meest significante bits van alle waveletcoëfficiënten in alle banden worden eerst opgeslagen, nadien volgen minder significante bits schaalbaarheid in resolutie: laag- en middenfrequente waveletbanden worden eerst met maximale kwaliteit opgeslagen vooraleer hoog-frequente coëfficiënten aan bod komen schaalbaarheid in spatiale locatie: alle coëfficiënten van een “region of interest” (b.v. centraal deel van een beeld) worden eerst opgeslagen schaalbaarheid in kleur: de coëfficiënten van de luminantiecomponten worden eerst opgeslagen; pas dan volgt de chrominatie
Schaalbaarheid: opmerkingen Er kan van één schaalbaarheid naar een andere worden overgeschakeld tijdens de compressie: b.v. resolutie nadien kwaliteit De JPEG-2000 datastroom bestaat uit pakketten; in de header van die pakketten wordt aangegeven welke informatie ze bevatten Door pakketten te herordenen kan een andere schaalbaarheid worden verkregen zonder te decoderen en hercoderen Toepassingen schaalbaarheid: progressieve transmissie over kanalen met lage bandbreedte: naarmate de bits binnenstromen berekent de decoder steeds betere versies van het gecomprimeerd beeld bij afdrukken op een grijswaardenprinter kunnen chrominantiepakketten worden weggelaten “thumbnails” op een webpagina genereren door hoge-kwaliteitsbeelden te trunceren gemakkelijke conversie van een webpagina naar een WAP-versie met lage kwaliteit maar geschikt voor kanaal met lage bandbreedte
Nulboomcodering... De coëfficiënten in een boom corresponderen met dezelfde plaats en zijn het resultaat van een zelfde soort filtering op een laagdoorlaat (en onderbemonsterde) versie van het beeld
...Nulboomcodering - N De “afstammelingen” van een coëfficiënt met waarde nul zijn dikwijls ook nul nulbomen worden vervangen door één enkel symbool (cfr. looplengtes)
Significantiecodering (JPEG2000) … één resolutieniveau, bestaand uit 3 subbanden één precinct Elk resolutieniveau wordt opgesplitst in “precincts” (districten): elk district bevat coëfficiënten uit een zelfde spatiale omgeving en uit alle 3 de subbanden van het resolutieniveau 1 2 3 8 9 10 11 4 5 6 7 1 code- blok Elk district wordt op gelijkaardige manier opgesplitst in codeblokken Codeblokken worden onafhankelijk van elkaar gecodeerd methode: contextafhankelijke encodering van “bitvlakken”, startend met het meest significante bitvlak k = beeldje gevormd door k-de bit van de absolute waarden elke coëfficiënt van een codeblok
… Significantiecodering (JPEG2000) Elk bitvlak (bitplane) wordt onderverdeeld in stroken van 4 hoog 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 0 0 0… 1 1 1 1 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 0 0 … Volgorde van aritmetische codering meest significante bitvlakken eerst binnen een bitvlak: strook per strook binnen een strook: kolom per kolom Tekenbit wordt apart gecodeerd en niet als bitvlak beschouwd (zie verder) De gecomprimeerde data wordt gegroepeerd in lagen (layers) en pakketten: één pakket bestaat uit een (variabel) aantal bitvlakken van een aantal codeblokken uit één en het zelfde district bevat data van één bepaalde spatiale omgeving en resolutie een laag bestaat uit één pakket van elk district van elk resolutieniveau; een laag bevat echter niet noodzakelijk alle bitplanes bevat data die de kwaliteit van het hele beeld verhoogt
Bitvlakcodering Elk bitvlak wordt afzonderlijk gecodeerd, maar de codering is adaptief en gebruikt contextinformatie van meer significante (in de betekenis 2k is meer significant dan 2k-1) bitvlakken Definitie: een bepaalde waveletcoëfficiënt wordt “significant” (in de betekenis van “significantiecodering”) van zodra minstens één van zijn reeds gecodeerde bits gelijk is aan 1 De codering van een bitvlak loopt in 3 stappen; in elke stap k wordt een deel van de bits van het bitvlak gecodeerd stap 1, significantiepropagatie: coderen van de bits met waarde 2k van coëfficiënten die nog niet significant zijn, maar die minstens één spatiale buur hebben die wel al significant is stap 2, verfijning van de absolute waarde: coderen van bits van coëfficiënten die in een vorige bitvlak significant werden stap 3, opkuis: coderen van alle overblijvende bits Opmerking: wanneer een coëfficiënt voor de eerste keer significant wordt, dan wordt meteen zijn teken gecodeerd
Bitvlakcodering: voorbeeld Coëfficiënten Stap 10 1 3 -7 3. opkuis 1+ 0 0 0 1. significantie 0 2. verfijning 0 3. opkuis 0 1- 1. significantie 0 1+ 2. verfijning 1 1 3. opkuis 1. significantie 1+ 2. verfijning 0 1 1 3.opkuis 10=+1010 -7=-0111 bitvlak 3: waarde 23 tekenbit bitvlak 2: waarde 22 bitvlak 1: waarde 21 geen overblijvende coëfficiënten opkuis heeft geen werk bitvlak 0: waarde 20 Opmerking: voor het allereerst bitvlak worden stap 1 en 2 niet uitgevoerd; er is dan immers nog geen significante coëfficiënten
Filosofie bitvlakcodering Filosofie bitvlakencodering: optimaal “sorteren” van de bits voor een optimale adaptieve werking van de aritmetische coder in stap 1 is er veel kans op “1”-bits: significante coëfficiënten = grote coëfficiënten, en deze liggen spatiaal gegroepeerd in stap 2 is er geen reden om aan te nemen dat “1”-bits meer zouden voorkomen dan “0”-bits of omgekeerd in stap 3 worden typisch de kleinste coëfficiënten gecodeerd veel kans op “0”-bits In elk van de 3 stappen hebben we dus een andere statistiek Door de bits van een bepaalde soort na elkaar te coderen ipv. alle soorten door elkaar te coderen kan een adaptieve aritmetische coder beter zijn werk doen
Opmerkingen Niet besproken aspecten er wordt ook looplengtecodering gebruikt, maar niet overal het beeld wordt eerst in tegels verdeeld; dit zijn deelbeelden die onafhankelijk van elkaar gecodeerd worden extra hoogniveau schaalbaarheid Waarom significantiecodering en geen nulboomcodering in JPEG 2000? bij nulboomcodering worden subbanden gezamenlijk gecodeerd minder mogelijkheden voor schaalbaarheid en complexere implementatie!
Waveletcodering vs. JPEG... JPEG 2000, factor 40 JPEG, factor 40 SPIHT, factor 40 SPIHT= Set Partitioning in Hierarchical Trees = wavelets+nulboomcodering SPIHT doet het veel beter dan JPEG bij lage bit rates De nieuwe JPEG-standaard “JPEG-2000” is vergelijkbaar met SPIHT Origineel: 256 kbyte, 8 bit/pixel Gecomprimeerd: 6500 byte, 0.2 bit/pixel
Waveletcodering vs. JPEG... JPEG 2000, factor 40 JPEG 2000, factor 100 JPEG, factor 100 JPEG 2000, factor 200 JPEG, factor 200 niet realiseerbaar JPEG, factor 40
...Waveletcodering vs. JPEG JPEG-2000, factor 40 JPEG, factor 40 SPIHT, factor 40 Origineel: 64 kbyte, 8 bit/pixel Gecomprimeerd: 1600 byte, 0.2 bit/pixel SPIHT en JPEG-2000 veroorzaaken nooit blokdistorsie Kleine beelden comprimeren duidelijk minder goed dan grote beelden het is niet de resolutie van het beeld maar zijn inhoud die het uiteindelijk aantal bytes voor een bepaalde kwaliteit vastlegt
Commando’s Conversie naar jpeg-2000 factor 40: jasper --input lena512x512.bmp --output-format jp2 --output lena.jp2 -O rate=0.025 factor 100: jasper --input lena512x512.bmp --output-format jp2 --output lena.jp2 -O rate=0.01 Conversie van jpeg-2000 jasper --input lena.jp2 --output-format pnm --output lena.pnm Conversie naar jpeg factor 40: convert -quality 10 lena512x512.bmp lena.jpg factor 100: convert -quality 3 lena512x512.bmp lena.jpg
Bibliografie Technical overview of JPEG-2000 http://www.rii.ricoh.com/%7Egormish/pdf/dcc2000_jpeg2000_note.pdf JPEG-2000 software implementatie http://www.ece.uvic.ca/~mdadams/jasper/
niet te kennen voor examen Appendix niet te kennen voor examen
Entropie van een gekwantiseerde gaussiaan x k
De optimale orthogonale transformatie... gaussiaans met spreiding sk transformatie We zoeken de P die bij een gegeven RMS-fout tot het kleinst aantal bits leidt Onze aanpak is statistisch: Stel D in zodat de verwachte RMS-fout gelijk is aan de opgelegde waarde Bereken de verwachte entropie als schatting van het verwacht aantal bits Onderstellingen De uniforme kwantisatie is voldoende fijn (D is voldoende klein) De coëfficiënten aj zijn gezamenlijk gaussiaans verdeeld met spreiding sj benadering:
...De optimale orthogonale transformatie... gaussiaans met spreiding sk transformatie totale kwadratische fout: Kwantisatiefouten: Stel ej uniform verdeeld in [-D /2, D /2] verwachte kwadratische fout: onafhankelijk van de gekozen orthogonale transformatie! De optimale transformatie is dus deze met de kleinste totale entropie deze waarvoor minimaal is
...De optimale orthogonale transformatie De optimale transformatie is de Karhunen-Loève transformatie, d.w.z. de kolommen van P zijn de eigenvectoren van de covariantiematrix K van x: Er geldt li=si2 d.w.z. de eigenwaarden zijn de varianties van de coëfficiënten De KLT geeft ook een maximale energiecompactie: de verwachte energie in de eerste m coëfficiënten is voor geen enkele andere transformatie groter (en dit geldt voor alle m) op voorwaarde dat men de pi ordent volgens dalende li Het blijkt dat men de (in het algemeen niet-scheidbare) KLT-transformatie zeer goed kan benaderen door de DCT die scheidbaar is Men gebruikt bijna steeds de DCT en niet de KLT
Verband tussen de DCT en de DFT even uit- breiding
Evenperiodieke uitbreiding De 2D-DFT definieert een periodieke uitbreiding van het beeld De 2D-DCT definieert een even-periodieke uitbreiding van het beeld Discontinuïteiten van de beeldfunctie aan de beeldranden! Geen discontinuïteiten van de beeldfunctie aan de beeldranden, wel van de afgeleiden! DCT-coëfficiënten nemen sneller af als functie van de frequentie dan DFT- coëfficiënten