Digitale foto Megapixel à 3 bytes = 12 Megabyte
Geheugenkaarten capaciteit: 1 foto 20 foto’s gecomprimeerd tot 600 kB = 5% van 12 MB 20 foto’s 400 foto’s
Compressie nMinder dan 2048*1536 pixels downsampling nMinder dan 3*8 bits per pixel reduce colordepth
Downsampling 4 beeldpunten samengenomen compressie tot 25%
Reduce colordepth 3*8 bits per pixel3*3 bits per pixel compressie tot 37%
Kleur-kanalen RGB
Kleur-kanalen YCbCr Y = 0.3R + 0.6G + 0.1B Cb = B Y Cr = R Y = 0.3R 0.6G + 0.9B = 0.7R 0.6G 0.1B
Kleur-kanalen YCbCr Y niet, Cr en Cb wel downsamplen compressie tot ( )/3 = 50%
Kleur-intensiteit wit zwart grijs X-as: Plaats in de foto Y-as: Grijswaarde
“Cosinus-transformatie” Zoek een combinatie van cosinussen die precies door de “meetpunten” loopt. f(x) =A * cos(0x) +B * cos(1x) +C * cos(2x) … + H * cos(7x)
“Cosinus-transformatie” In plaats van de 8 meetwaardes bewaren we amplitudes A, B, C, … H f(x) =A * cos(0x) +B * cos(1x) +C * cos(2x) … + H * cos(7x) Nog steeds 8 getallen, dus nog geen compressie…
Eigenschap van foto’s nVeel geleidelijk verloop, weinig scherpe randen nCosinussen met hogere frequenties minder belangrijk f(x) =A * cos(0x) +B * cos(1x) +C * cos(2x) … + H * cos(7x) Daarvoor gebruiken we minder bits!
Experimentje enz. waarde enz. #bits enz. opslaan enz. ook slim Huffman-code
Het onderste uit de kan: Run-length encoding enz. waarde enz. #bits enz. opslaan Huf
Het onderste uit de kan: Run-length encoding enz. waarde enz. #bits enz. opslaan Huf enz. #nul Huffman-code voor de combinatie (#bits,#nul)
JPEG-codering nTransformatie RGB YCrCb n4:1 Downsampling van Cr en Cb nDCT-transformatie nMinder bits voor hoge frequenties nRun-length encoding voor nullen nHuffman-codering voor (#bits,#nul) “onzichtbaar” verlies
Digitale foto 4 Megapixel à 3 bytes = 12 Megabyte Gecomprimeerd 600 kilobyte