24
Medien- Technik Dateiformate für Rasterbilder .

Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Dateiformate für Rasterbilder

.

Page 2: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Windows Bitmap

BitmapFileHeader

BitmapInfoHeader

RGBQuad array

Color-Index array

Dateiaufbau .BMP

typedef struct tagBITMAPFILEHEADER {WORD bfType; „BM“ Magic numberDWORD bfSize; DateigrößeWORD bfReserved1; „0“WORD bfReserved2; „0“DWORD bfOffBits; Offset Color Index

} BITMAPFILEHEADER, *PBITMAPFILEHEADER;

typedef struct tagBITMAPINFOHEADER{DWORD biSize; Länge des HeadersLONG biWidth; Breite in PixelLONG biHeight; Höhe in Pixel +���� -����WORD biPlanes; Muss 1 sein !WORD biBitCount Bit pro Pixel (1-32)DWORD biCompression; ohne RLE JPEG PNGDWORD biSizeImage; Datei- PuffergrößeLONG biXPelsPerMeter; AusgabeauflösungLONG biYPelsPerMeter;DWORD biClrUsed; 0 oder Anzahl FarbenDWORD biClrImportant; 0 oder wichtige F.

} BITMAPINFOHEADER, *PBITMAPINFOHEADER;

DWORD 32 Bit o. Vz.LONG 32 Bit mit Vz.WORD 16 Bit o. Vz.

Page 3: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Windows Bitmap

BitmapFileHeader

BitmapInfoHeader

RGBQuad array

Color-Index array

Dateiaufbau .BMP ...DWORD bV4RedMask; RGB-RotDWORD bV4GreenMask; RGB-GrünDWORD bV4BlueMask; RGB-BlauDWORD bV4AlphaMask; Transparenz FarbeDWORD bV4CSType; Art des Farbraumes (CIEXYZTRIPLE bV4EndPoints; CIE-FarbdreieckDWORD bV4GammaRed; Gamma für jede FarbeDWORD bV4GammaGreen;DWORD bV4GammaBlue;

Ab Windows 95 erweiterter BitmapV4InfoHeader:

DWORD bV5Intent;DWORD bV5ProfileData; Internes oderDWORD bV5ProfileSize; externes FarbprofilDWORD bV5Reserved;} BITMAPV5HEADER, *PBITMAPV5HEADER;

Win 95

Win 98LogColorSpaceCalibrated RGBsRGBlinked profileembedded profileWindows

Ab Windows 98/2000 erweiterter BitmapV5InfoHeader:

Page 4: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Windows Bitmap

BitmapFileHeader

BitmapInfoHeader

RGBQuad array

Color-Index array

Dateiaufbau .BMP

typedef struct tagRGBQUAD {BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved; = 0

} RGBQUAD;

Palette

Farbwerte oder Farbindizes zeilenweisevon links nach rechtsvon unten nach oben (Höhe positiv)von oben nach unten (Höhe negativ)ggfs. KomprimiertDoppelwortausrichtung jeder Zeile

Page 5: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Windows Bitmap

RGB-Bitmap10*8 Höhe*Breite

Höhe

Ebenen

Bits/Pixel

Zeile 8

Magic number

Dateilänge

Offset

Page 6: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Windows BitmapRun-Length EncodingLauflängen-Kodierung

RLE8: für 8-Bit-Bitmaps (256 Graustufen oder 256 Palettenfarben):

Encoded mode: 1. Byte = Wiederholungsfaktor2. Byte = zu wiederholender Farbwert oder -index

Sonderfall: 1. Byte = 00 (Fluchtsymbol, Escape-Zeichen)und 2. Byte = 00 Zeilenendeoder 2. Byte = 01 Ende des Bitmapsoder 2. Byte = 02 Die nächsten 2 Bytes enthalten einen

Offset, ab dem es dann weitergehtoder 2. Byte >= 3: soviele Bytes kommen unverschlüsselt

Jeder Lauf auf Wortgrenze ausgerichtet03 04 05 06 00 03 45 56 67 00 02 78 00 02 05 01 02 78 00 00 09 1E 00 01

04 04 04 06 06 06 06 06 45 56 67 78 78 5 rechts 1 runter 78 78 (eol)

1E 1E 1E 1E 1E 1E 1E 1E 1E 1E eobm

RLE4aufNibbles

Page 7: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:02:03:04:05:06:07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

LempelZivWalsh

nein

ja

Idee:Silben oderMuster erkennenund codieren

Präfix:

Muster:

Output:Anwendung:GIF und TIFFGrafik-Formate

Page 8: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:06:07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:

Beispiel:ABCABCABCABCD

=A

A

Page 9: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:06:07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:

Beispiel:ABCABCABCABCD

A

=ABAB

01

=B

B

Page 10: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:AB06:07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:01

Beispiel:ABCABCABCABCD

B

=BC BC

02

=C

C

Page 11: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:AB06:BC07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:01 02

Beispiel:ABCABCABCABCD

C

=CACA

03

=A

A

Page 12: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:AB06:BC07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:01 02

Beispiel:ABCABCABCABCD

C

=ABCA

03

AB

Page 13: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Codetabelle01:A02:B03:C04:D05:AB06:BC07:08:09:

Codetabelle initialisierenPräfix = ““

Lese nächstes Zeichen A

Muster = Präfix + A

Muster inCodetabelle ?

Muster in Codetabelle eintragen

LZW-Code von Präfix ausgeben

Präfix = A

Präfix = Muster

LZW-Code von Präfix ausgeben

Ende

nein

ja

Präfix:

Muster:

Output:01 02

Beispiel:ABCABCABCABCD

C

=CACA

03

=A

A

Page 14: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

LZW-Komprimierung

AABBCCAABABCCACABBCBCAABABCABCD

hat Codeneu AB=04neu BC=5neu CA=6hat Codeneu ABC=7hat Codeneu CAB=8hat Codeneu BCA=9hat Codehat Codeneu

Ausgabe

0101 0201 02 0301 02 0301 02 03 0401 02 03 0401 02 03 04 0601 02 03 04 0601 02 03 04 06 0501 02 03 04 06 0501 02 03 04 06 0501 02 03 04 06 05 07 04

A B C DA B C D ABA B C D AB BCA B C D AB BC CAA B C D AB BC CAA B C D AB BC CA ABCA B C D AB BC CA ABCA B C D AB BC CA ABC CABA B C D AB BC CA ABC CABA B C D AB BC CA ABC CAB BCAA B C D AB BC CA ABC CAB BCAA B C D AB BC CA ABC CAB BCAA B C D AB BC CA ABC CAB BCA

Erkannte PräfixeAktion

ABCABCABCABCD

Präfixtabelle begrenzen 4096Präfixtabelle kann beibekannter Codierungsstrategierekonstruiert werden

Muster:

Page 15: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

GIF Graphics Interchange FormatCompuserve, 1987-89 Palettenbilder mit max. 256 Einträgen

Mehrere TeilbilderLZW-Komprimierung (Patent Unisys)Transparenz (1 Stufe)1D-Interlacing

www.cdrom.com/pub/png

Portable Network GraphicsPNG spec 1.0 released as Informational RFC 2083 (IETF)

RGB-BilderGraustufenbilderPalettenbilder

KompressionVariable Transparenz2D-InterlacingFarbraum-Unterstützung

Say „ping“ !

Page 16: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNG

Alpha-Kanal: Maß der DeckkraftRGBAals 4. ByteA=0 durchsichtigA=2Bittiefe-1 opak

Korrekter Schatten auf jedem Hintergrund !

Progressiver Bildaufbau

Alpha-Kanal des GIF-Formatesordnet jedem Pixel das AttributTransparent / nicht transparentzu.

Alpha-Kanal des PNG-Formatesordnet jedem Pixel Deckkraft zu.

Transparenz

Page 17: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNGTransparenz

Page 18: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

M

edien-

Techn

ik

PNGTransparenz

HintergrundVordergrundAlpha-Kanal

Page 19: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNGProgressivitätInterlacing

1 6 4 6 2 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 73 6 4 6 3 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 7

Gif-Interlacing1. Schritt: jede 8. Zeile, Start: 02. Schritt: jede 8. Zeile, ab 43. Schritt: jede 4. Zeile, ab 24. Schritt: alle ungeraden

Reihenfolge desErscheinens derPixel„Adam7“

Page 20: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNG: Dateistruktur

PNG-Signatur: 137 80 78 71 13 10 26 10 (dezimal) \211 P N G \r \n \032 \n

„Chunks“

IEND

I H D RLänge Typ Daten CRC

Alle Bytes in Network Byte Order (Little Endian)Alle Integer-Werte 31 Bit, höchstes 0

Page 21: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNG: Chunks

IHDR

Width: 4 bytesHeight: 4 bytesBit depth: 1 byteColor type: 1 byteCompression method: 1 byteFilter method: 1 byteInterlace method: 1 byte

Color type1 Bild hat Palette2 Bild hat Farbe4 Bild hat Alphakanalsinnvolle Kombinationen0,2,3,4,6

Bittiefen:1,2,4,8,16 für Graustufen1,2,4,8 für Palettengröße8,16 für RGB, RGBA, Grau+A

Filter:verlustfreie Transformation pro Zeilez.B. Differenz zum Vorgängerpixel

Compression 0:ähnlich LZ77 (zip, gzip, pkzip)zlib, RFC 1950

Page 22: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNG: Chunks

IDAT:Zeilenweise,vor jeder Zeile Filterbyte (None = 0),komprimiert mit zlib.

PLTE:Bis zu 256 8 oder 16-Bit tiefe RGB-Werte

gAMA:sample = lightout^gammasample, lightout [0..1]4 Byte Gamma-Wert, interpretiertals Gamma*100.000Beispiel: 1/2.2 = 45455

cHRM: (Chroma)Weißpunkt (x,y) nach CIERot (x,y)Grün (x,y)Blau (x,y)x,y als 4 Byte Festkommazahlenmit 5 Dezimalen

Page 23: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

PNG: Chunks

sRGB: (1 Byte)0: Perceptual1: Relative colorimetric2: Saturation3: Absolute colorimetric

tRNS:Für einfache Transparenz,besteht aus (je nach Bildart)

■ einem Farbwert für Truecolor-Bilder■ einem Grauwert für Graufstufenbilder■ einer Alpha-Palette, die jeder

Palettenfarbe einen Alpha-Wertzuordnet.

Weitere ChunkspHYs (Pixelgröße) sPLT (suggested Palette) sBIT (signifcant Bits)tIME (Zeit) iTXt (international Text) sKGD (Background)tEXt zTXt (zipped text)hIST (histogramm) iCCP (color profile) pivate Chunks

Page 24: Medien- Dateiformate für Rasterbilder Technikmtech.uni-koblenz.de/MT2000-1/Folien/15-Grafikiformate 1.pdf · Medien-Technik Windows Bitmap BitmapFileHeader BitmapInfoHeader RGBQuad

Medien-Technik

Vorlesung „Medientechnik WS 1999/2000“Dr. Manfred JackelStudiengang ComputervisualistikInstitut für InformatikUniversität Koblenz-LandauRheinau 156075 Koblenz

© Manfred JackelE-Mail: [email protected]: www.uni-koblenz.de/~jkl

mtech.uni-koblenz.de

Literatur zu diesem Kapitel Hyperlinks zu diesem Kapitelhttp://www.libpng.org/pub/png/

Grafik-Quellen