Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdNora de Winter Laatst gewijzigd meer dan 9 jaar geleden
1
Beeldverwerking Prof. dr. ir. W. Philips Didactisch materiaal bij de cursus Academiejaar 2011-2012 philips@telin.UGent.be http://telin.UGent.be/~philips/beeldv/ Tel: 09/264.33.85 Fax: 09/264.42.95
2
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 2 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. PhilipsE-mail: philips@telin.UGent.be Department of Telecommunications and Information ProcessingFax: 32-9-264.42.95 University of GentTel: 32-9-264.33.85 St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
3
Compressietechnieken voor beelden
4
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 4 Voorbeeld: Diffusion Tensor Imaging Heel veel kleine beelden (b.v. 60x 200x200; 12 bit grijswaarden)
5
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 5 Medische beelden radiografie 2048x1680x10 (4 Mbyte) Grote hoeveelheden data door hoge spatiale resolutie (b.v. radiografie) en/of 3D-acquisie: volumedata (e.g., MRI) of video (e.g., angiografie) Angiografie: 20 s 120 MB
6
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 6 Datahoeveelheden per studie In het UZGent produceerden de MR-scanners in 2001: 5 Gbyte/dag
7
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 7 Noodzaak compressie: “Pre-press” beelden CMYK (4 bytes per pixel) i.p.v. RGB 15 MB 4 MB Combinatie van fotografische beelden, tekst en lijnwerk Zeer hoge kwaliteit noodzakelijk
8
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 8 Andere toepassingen Andere toepassingen zijn minder kritisch: men kan heel wat fouten tolereren
9
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 9 Beeldcompressie Verliesloze compressie het beeld na decompressie is exact gelijk aan het origineel beeld compressiefactor klein (2 à 5) Compressie met verlies het beeld na decompressie is ongeveer gelijk aan het origineel beeld compressiefactor willekeurig hoog naarmate de kwaliteitseisen zakken
10
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 10 Opmerkingen We beperken ons tot grijswaardenbeelden Codering met verlies van kleurenbeelden meestal wordt het beeld eerst getransformeerd naar de YUV- kleurenruimte de U- en V-beelden worden dan spatiaal onderbemonsterd: men verwijdert 3/4 van de pixels (pixels op oneven rijen en kolommen worden weggelaten) daarna worden de Y-, U-, en V-beelden elk afzonderlijk gecodeerd Verliesloze codering van kleurenbeelden meestal door de R-, G- en B-beelden afzonderlijk te coderen gezamenlijke codering doet het echter beter (cfr: kleurenkwantisatie)
11
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 11 Algemeen compressieschema Orthogonale transformatie: omzetten van een aantal pixelwaarden in evenveel coëfficiënten Predictie van pixelwaarden uit voorgaande pixels statistische codering: veel voorkomende getallen worden vervangen door korte codewoorden en weinig voorkomende getallen door lange codewoorden netto bespaart men bits gecomprimeerde bitstroom verwijderen van statistische redundantie Afronden tot lage precisie van getallen Weglaten van sommige getallen verwijderen van visueel- irrelevante data omzetten naar vorm waarin redundantie gemakkelijker exploiteerbaar is enkel bij verlieshebbende compressie
12
Compressietechnieken voor beelden Principes van datacompressie
13
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 13 Variabele-woordlengte codering Principe: codeer veel voorkomende symbolen ( p i groot) met een korte bitstring ( l i klein) en (noodgedwongen) minder voorkomende symbolen met een lange string 11110011000111000001010100 vaste lengte A000 B001 C010 D011 E100 F101 G110 H111 000011101011110011011011011010011100 A D F D G D D D D C D E variabele lengte 11110 1101 101 0 100 1100 1110 11111 variabele lengte Men moet ervoor zorgen dat de code decodeerbaar blijft ieder codewoord moet uniek zijn men moet het einde van ieder codewoord éénduidig kunnen herkennen in de gecodeerde bitstroom bits/symbool: vaste lengte
14
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 14 Prefix-code Prefix code: geen enkel codewoord is het begin van een ander codewoord De decoder kan steeds het eind van een codewoord onderscheiden Zo een code kan men afbeelden op de bladeren van een decodeerboom output bits A11110 B1101 C101 D0 E100 F1100 G1110 H11111 D G A H F B E C 1 1 1 1 0 0 1 1 0 0... 1 1 1 1 0 0 1 1 0 0 ADF
15
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 15 Entropie H is de kleinst mogelijke gemiddelde woordlengte voor om het even welke techniek die symbool per symbool codeert Eerste-orde bronentropie:bits stationaire bron symbolen met mogelijke waarden i, i= 1 …N, en probabiliteit P ( i ) =p i opmerking: 0log 2 0=0 en zelfs voor om het even welke codeertechniek indien opeenvolgende symbolen statistisch onafhankelijk zijn (en dezelfde distributie hebben) H ligt tussen 0 bit en log 2 N bit, met N het aantal symbolen in het alfabet H log 2 M met M het aantal symbolen met p k 0: logisch: symbolen die nooit voorkomen ( p k = 0) kunnen uit het alfabet worden verwijderd H is maximaal als alle symbolen even waarschijnlijk zijn:
16
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 16 Entropie
17
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 17 Huffmancodes stationaire bron symbolen met mogelijke waarden i, i= 1 …N, en probabiliteit P ( i ) =p i De Huffmancode is een specifieke prefixcode de codewoordlengtes voldoen aan l k - log 2 p k benaderend optimaal onder de codes die ieder symbool apart coderen en ook benaderend optimaal onder alle codes als bron statistisch onafhankelijke symbolen genereert gemiddelde codewoordlengte ligt tussen H en H+1 verre van optimaal als H klein is (b.v. H 1), in het bijzonder niet geschikt voor binaire beelden
18
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 18 Huffmancode van teksten De Huffmancode exploiteert het feit dat sommige letters meer voorkomen dan andere (eerste-orde statistische redundantie) maar niet het feit dat sommige combinaties van letters meer voorkomen dan andere (tweede of hogere orde statistische redundantie) Voorbeeld: een Huffmancode voor de Engelse taal exploiteert dat de letter E meer voorkomt dan de letter Q maar niet dat de combinatie TH meer voorkomt dan HT Exploitatie van hogere-orde redundantie kan door groepen van twee of meer opeenvolgende letters als één metaletter te behandelen (blokcode) Voorbeeld: engelse teksten Huffmancode per letter 4.03 bit/letter Blok-Huffmancode per twee letters 3.32 bit/letter alle redundantie exploiteren 0.6-1.3 bit/letter
19
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 19 Redundantie in teksten RDIAENG. Aoccdrnig to a rscheearch at an Elingsh uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht frist and lsat ltteer is at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe. ceehiro.
20
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 20 Entropiecodering van de beeldpixels “Lenna”, entropie=7.2 bit/pixel“CT”, entropie=5.7 bit/pixel
21
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 21 Opmerkingen Huffmancodering is geen efficiënte techniek om beeldpixels te coderen omdat de eerste-orde entropie van de beeldpixels veel te groot is Codeboek moet ook door decoder gekend zijn vast codeboek, eens en voor altijd gekozen codeboek opslaan in gecomprimeerd bestand vertrekken met een standaard codeboek dat continu wordt aangepast op basis van de reeds gecodeerde data “adaptieve” werking is wel nuttig in combinatie met predictie en transformatiecodering Huffmancoder kan 1-bit symbolen (A=0, B=1) helemaal niet comprimeren De blok-Huffmancoder biedt hiervoor een oplossing (zie appendix) Een betere oplossing is de aritmetische coder: die codeert een willekeurig lange rij symbolen (meestal bits) als één enkel codewoord dat wordt berekend uit de ingangsrij
22
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 22 Aritmetische coders... Het codewoord voor x 1 … x n is de binaire vlottende-komma voorstelling van a ( x 1 … x n ), echter afgerond tot het minimaal aantal bits nodig om a ( x 1 … x n ) te kunnen onderscheiden van de andere ondergrenzen a ( x’ 1 … x’ n ) 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0.1??....01??....011?... 1 0 De aritmetische coder associeert aan elke mogelijke bitstring x 1 … x n een deelinterval [ a ( x 1 … x n ), b ( x 1 … x n )] van [0,1] met lengte P ( x 1 … x n ).0??... 110 .011 3 bits x1…xnx1…xn bepaal a(x 1 …x n ) a afronden tot minimale precisie codewoord 111 bin: 0.100101 1 111 .1 1 bit.5 ~P (0) ~P (1) a (111)=0.5781 a (110)=0.4375
23
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 23 Oefening Bereken alle codewoorden voor ingangs-strings met lengte 3 als P (0)=0.25 x 1 x 2 x 3 a ( x 1 x 2 x 3 )codewoordlengte decimaal binair 000 001 010 011 100 101 1100.438.0111000113 0.140 111 Wat is de gemiddelde codewoordlengte in dit geval? (3.1) Wat is de gemiddelde entropie in dit geval? (2.43) de aritmetische coder wordt pas efficiënt als de lengte n van de te coderen bitstroom groot wordt
24
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 24... Aritmetische coders De aritmetische coder is trager dan de Huffmancoder en gepatenteerd maar codeert efficiënter De aritmetische coder beschouwt een volledig bestand als één bitstring Men kan aantonen dat (voor voldoend grote ingangslengte n ) de codewoordlengtes voldoen aan l ( x 1,…,x n ) - log 2 ( P ( x 1 ) P ( x 2 ) …P ( x n )) met x k de waarde (0 of 1) van de k -de bit en P (0) en P (1) de kans dat een bit uit de string de waarde 0 of 1 aanneemt Een praktische aritmetische coder begint al codebits te produceren voor alle ingangsbits gekend zijn gebruikt geen vlottende-komma maar gehele berekeningen voor lange bitstrings de gemiddelde codewoordlengte nadert tot nH gemiddeld aantal codebits per ingangsbit: H kan gemakkelijker “adaptief” gemaakt worden kan gemakkelijk worden aangepast voor niet-binaire data, maar wordt wel meest gebruikt bij binaire data
25
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 25 Adaptieve aritmetische coders 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0.5 P ( x 1 = 0) = 0.25 P ( x 2 = 0) = 0.75 P ( x 3 = 0) = 0.5 Zonder bewijs: de aritmetische (de)coder blijft werken als de intervalverdeling van bit tot bit wordt aangepast “adaptieve” werking is mogelijk: als P ( x n = 0) verandert in functie van n (niet-stationaire bron) dan kan de coder zich hieraan “aanpassen” betere compressie 1000100011101011 aritm. coder bnbn schat P ( x n = 0) intervalverdeling b n-m …b n-1 met De decoder moet de gebruikte intervalverdeling zelf ook kunnen berekenen; dit kan als ze enkel afhangt van de “vorige” bits praktische methode:
26
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 26 al gecodeerd huidige pixel a bc x Binair beeld: alle beeldpixels nemen de waarde 0 of 1 aan Contextmodellering: voorbeeld binair beeld… Men codeert hier een binair beeld met een aritmetische coder De intervalverdeling van de aritmetische coder wordt nu echter afhankelijk gemaakt van de “context”, d.w.z. de waarden van de naburige pixels: men schat b.v. P ( x= 0 |a,b,c ) en baseert de intervalverdeling van de coder hierop i.p.v. op P ( x= 0) men kan spatiale correlatie uitbuiten 1 10 x a b cP(x= 0 |a,b,c) 0 0 00.9 0 0 10.6 …... 1 1 00.3 1 1 10.1 In de praktijk schat men P ( x= 0 |a,b,c ) voor elke context adaptief aritm. coder intervalverdeling
27
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 27 al gecodeerd huidige pixel a bc x Contextmodellering: waar zit de winst? Typische beelden bestaan uit grote gebieden met gelijkaardige intensiteiten gescheiden door intensiteitsranden A. Als a=b=c= 1 is er veel kans dat x zich in een vlak “wit” gebied bevindt: P ( x= 1 |a= 1,b= 1,c= 1) is zeer hoog en P ( x= 0 |a= 1,b= 1,c= 1) is zeer laag B. In de omgeving van een beeldrand is b.v. a=c=1 en b=0; hier is het niet a priori duidelijk of x aan witte of de zwarte kant van de rand ligt P ( x= 1 |a= 1,b= 0,c= 1) en P ( x= 0 |a= 1,b= 0,c= 1) zullen hier dichter bij 0.5 liggen: b.v. P ( x= 1 |a= 1,b= 0,c= 1) = 0. 3 en P ( x= 0 |a= 1,b= 0,c= 1) = 0. 7 Het is duidelijk dat de optimale intervalverdeling voor geval A. en geval B. niet dezelfde zal zijn men verandert de intervalverdeling naargelang de context zodat voor elke pixel de optimale verdeling wordt gekozen
28
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 28 Contextmodellering: voorbeeld Zonder contextmodellering is in dit voorbeeld geen compressie mogelijk (tenzij misschien met adaptieve werking); met contextmodellering wel gemiddelde codewoordlengte als intervalverdeling is aangepast aan context 011 gemiddelde van de gemiddelde lengtes, rekening houdend met hoe dikwijls elke context optreedt gemiddelde codewoordlengte indien geen contextmodellering wordt gebruikt
29
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 29 Nadeel: er wordt geen rekening gehouden met statistische afhankelijkheden tussen beeldpixels uitzondering: blok-Huffman (maar dat is te complex) Schema verliesloze compressie Orthogonale transformatie Predictie van pixelwaarden uit voorgaande pixels (gehele) predictiefouten of (reële) transformatiecoëfficiënten verwijderen van visueel- irrelevante data Huffmancodering Arithmetische codering bitstroom verwijderen van statistische redundantie gehele getallen verminderen van spatiale correlatie Kwantisatie van coëfficiënten/predictiefouten Niet coderen van sommige coëfficiënten / predictiefouten niet bij verliesloze codering
30
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 30 Statistische eigenschappen van beelden Naburige pixels in beelden lijken zeer goed op elkaar bijna diagonale coöcurrentiematrix (histogram van 2de-orde) 0 255 0 blokcodes doen het beter dan pixelcodes; H 2 << 2 H 1 (cfr. appendix) zeer grote correlatiecoëfficiënt: > 0.9 aantal keer dat de combinatie b ( x,y ) = 128, b ( x+ 1,y ) = 128 voorkomt
31
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 31 Voorspelling: X p aA+bB+cC Eenvoudige predictieve technieken Principe: De “huidige” pixelwaarde wordt eerst voorspeld uit andere pixels al gecodeerd huidige pixel A BC X Gecodeerde fout: X-X p De predictiefout wordt gecodeerd met een Huffman- of aritmetische coder Nabije pixels hebben de grootste voorspellende waarde Men mag enkel reeds gecodeerde pixels gebruiken (want de decoder moet dezelfde voorspelling kunnen maken!) Voorbeeld: LJPEG (Lossless JPEG; Joint Photographic Experts Group) LJPEG biedt een keuze uit 7 voorgedefinieerde predictoren Predictor “7” werkt meestal het best: X p = ( A + B ) / 2 (“gehele” deling)
32
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 32 Predictie werkt: Voorbeeld... Lenna, origineel Predictiefout: Predictie werkt goed behalve aan objectranden
33
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 33 …Voorbeeld... “Lenna”, entropie=7.2 bit/pixel Na LJPG-predictie: entropie=4.4 bit/pixel NA LJPEG-predictie: de fouten zijn veel minder uniform verdeeld dan de originele grijswaarden De entropie van de fouten is kleiner dan die van de originele grijswaarden een aritmetische coder kan ze veel efficiënter coderen dan de grijswaarden Dit is het geval voor de meeste beelden (maar er zijn tegenvoorbeelden)
34
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 34 …Voorbeeld... CT, origineel Predictiefout:
35
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 35 …Voorbeeld... Winst: een 1.78 maal grotere compressiefactor “CT”, entropie=5.7 bit/pixel Na LJPG-predictie: entropie=3.2 bit/pixel
36
© W. Philips, Universiteit Gent, 1999-2012versie: 14/12/2011 11c. 36 “Optimale” lineaire predictie al gecodeerd huidige pixel a bc x Het uiteindelijk doel is het minimaliseren van de entropie van x-x p Eenvoudiger doel: minimaliseer de verwachte kwadratische predictiefout minimaliseer worden geschat uit een (aantal) beelden lineair stelsel in , en !
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.