Image Coding Förlustkomprimering - Bakgrund Bilder överförs för att visas upp för en människa. Människan är otålig och halvblind Otålig Frustrerande med väntan framför skärmen Halvblind Det mänskliga synsinnet uppfattar ej all information 1 4 Common Image Formats GIF (Graphis Interchange Format) Lossless, but only in 256 colors Uses LZW for compression (Patent problem) PNG (Portable Network Graphics) More flexible replacement for GIF JPEG (Joint Photographers Expert Group) Complex standard with many modes Typically lossy, but has lossless mode as well Begränsningar - Färgseendet sämre - Begränsad upplösning - Olika känslighet för olika mönster - Skarpa kontraster döljer svagare Synsinnet 2 5 GIF Flexible color depth, but max is 256 colors Uses LZW to compress the data Codebook size is 4096 entries First version 1987, current version 1989 Has interlacing for progressive viewing Multiple images in one file possible (gif-animation) Komprimeringsexempel Original Komprimerad 99 Kb / 100 sek 6 Kb / 6 sek 3 6 1
Vad är det som skiljer? Komprimering Color split Komprimerad 4 x förstoring Split into three components (Y Cb Cr Color format) 7 10 JPEG The best compression format for photo-like natural images Color or grayscale images Lossy or lossless compression Sequential or progressive display Exploits human visual system characteristics Downsample chrominance components 8 11 JPEG Functional Overview Color conversion and downsample Split in 8x8 pixel blocks Do DCT (Discrete Cosine Transform) Quantize Diffence encode DC and Run-length encode AC Huffman encode Packetize Split in blocks Split into 8x8 pixel blocks 9 12 2
Quantization Split in blocks and do DCT / = Perform DCT The quantization reduces the resolution (i.e. The amount of information) for the coefficents The number of zero coefficients is increased 13 16 Image Frequencies An 8x8 pixel block is transformed into 64 spatial frequencies (coefficients) Sort of 2-dimensional fourier transform Split in blocks and do DCT Quantize Diff code DC Differential encode DC coefficient 14 17 Summing of coefficients By using all 64 coefficients a perfect reconstrucion is possible Using fewer coefficients gives a good reconstruction and data reduction Split in blocks and do DCT Quantize Diff code DC and RLE AC Ursprungsbild Run Length Encode AC coefficients 15 18 3
Zig-zag ordning Decoder - overview The quantized coefficents are coded in a zig-zag manner This leads to longer zero runlength for the last coefficients. 19 22 Split in blocks and do DCT Quantize Diff code DC and RLE AC Huffman encode Packetize Headers One MCU Bilder på Webben - att tänka på Foton el. fotoliknande - använd JPEG Ritat / tecknat använd GIF / PNG Trimma färgdjupet i GIF Trimma quality i JPEG Ingen skalning i browser Inga thumbnails eller text i JPEG 20 23 Coder - overview Jämförelse storlek/kvalite (Från: http://www.psychology.nottingham.ac.uk/staff/cr1/graphics.html) 21 24 4
Waveletkodning Förlust-kodning (lossy coding). Bygger delvis på samma princip som JPEG, men man gör en transformation på hela bilden i flera upplösningssteg, istället för 8x8 block. Använder en annan matematisk funktion än JPEG för att göra transformationen, många olika finns. Kräver mer processorkapacitet för kodning/dekodning än JPEG. Ger bättre komprimering för samma kvalite än JPEG. Nästa JPEG-standard (JPEG2000) är waveletbaserad. Översikt videokodning 25 28 Begrepp i videokodning VIDEOKODNING Spatial Redundans Redundans på grund av att närliggande pixlar typiskt har liknande värden. Tas bort genom DCT-transform/kvantisering/Huffman. Temporal Redundans Redundans på grund av att bildrutor efter varann typiskt har liknande innehåll. Tas bort genom makroblockskodning med rörelsevektorer och differansbilder. 26 29 Kodning av Video Makroblockskodning Videokodning MPEG1, ursprungligen för video med 1x CD-spelare MPEG2, Digital Satellit och kabel-tv, Många moder Videokodning för Videokonferanser H.261, äldre standard, används ex med ISDN H.263, nyare. Fungerar bättre vid låga överföringshastigheter Ny teknik MPEG 4 Rörelsevektorn anger hur mycket och åt vilket håll makroblocket rört sig. Differansbilden anger skillnaden inne i makroblocket mellan de kodade bildrutorna. 27 30 5
Makroblockskodning 2 MPEG 4 Mpeg 4 är objektbaserad, där både bild och ljudobjekt kan placeras in i ett tredimensionellt koordinatsystem. Dessa objekt kan sedan kodas och manipuleras oberoende av varandra. Tittaren kan även interagera med scenen, byta synvinkel osv. 31 34 Meshkodning Ett område i bilden kan modelleras med en mesh. Parametrarna hos denna mesh förändras sedan när området förändras. Texturen skalas om enligt förändringen i meshen. Tråd modeller av ansiktet och animering av trådmodellsansikten med mappade texturer finns i MPEG 4 ver 1. I version skall även modeller av människokroppen och rörelsemönter till den finnas. 32 35 Transmissionsordning Spritekodning En bild kan ställas samman av en fast bakgrund och en rörlig sprite. Bakgrunden kan vara större än vad som visas på skärmen, för att kunna hantera kamerapanoreringar utan att behöva sända en ny bakgrund. 33 36 6
Frekvensmaskning LJUDKODNING En stark ton maskar bort (döljer) omkringliggande Bredden på masken varierar med frekv. Högre=bredare Bredden kallas kritiskt band 37 40 Ljudkodning Tidsmaskning Utnyttja redundans i data Likheterna mellan kanalerna vid stereo Utnyttja hörselsinnets svagheter (psykoakustik) Hörselgränsen Frekvensbunden Maskning Tidsbunden Maskning Starka toner maskar även i tid Vi kan inte uppfatta närliggande toner precis efter att en stark ton upphört 38 41 Hörselgräns Maskning Hörselsinnets känslighet varierar för olika frekvenser. Det som inte kan uppfattas behöver inte överföras. Frekvens och tidsmaskning kan modelleras som en yta Toner under ytan uppfattas ej, och deras information behöver ej kodas / överföras. 39 42 7
MPEG 2 - Audio Layer 3 (MP3) Algoritmen: 1. Dela m.h.a. filter upp ljudet till 32 subband 2. Beräkna maskningen som varje band skapar 3. Om ett ljudstyrkan i ett band är maskad, koda ej bandet 4. Bestäm kvantiseringen med hänsyn till maskning och bitrate 5. Huffmankoda 6. Formatera utdataströmmen 43 8