Frage von JudeFresh, 23

Wie rechnet man die Speichergröße von Grafikformaten aus?

Antwort
von TeeTier, 5

So eine Frage kam hier schon mal vor ca. einem Jahr. :)

Im Grunde genommen musst du nur die Farbtiefe mit der Anzahl der Kanäle und der Anzahl der Pixel multiplizieren.

Also hat z. B. ein 8 Bit RGB Bild mit einer Größe von 10 mal 20 Pixeln eine Größe von 600 Byte. (8 Bit = 1 Byte; 1 Byte Rot + 1 Byte Grün + 1 Byte Blau = 3 Byte pro Pixel; 10 * 20 = 200 Pixel; 3 Byte * 200 Pixel = 600 Byte)

Aaaaaber, da gibt es noch zu beachten, dass es durchaus noch mehr, oder weniger Kanäle geben kann. (Graustufen = 1 Kanal; RGBA = 4 Kanäle; CMYK = ebenfalls 4 Kanäle)

Außerdem haben einige Kanäle manchmal weniger als 8 Bit (R5G6B5 = 16 Bit, also nur 2 Byte für 3 Kanäle) und manchmal auch deutlich mehr (16 Bit pro Kanal sind keine Seltenheit).

Darüber hinaus gibt es Formate, die nicht direkt mit Kanälen, sondern mit Paletten arbeiten, sodass z. B. 2 mögliche RGBA Farben mit einem 1 Bit Paletten-Index dargestellt werden, wobei 8 Pixel in ein einziges Byte "passen". Ein Bild mit 2 mal 3 Pixel belegt also nur 6 Bit Speicherplatz für die reinen Pixeldaten, was deutlich unter einem einzigen Byte ist. :)

Allerdings müssen solche Paletten (meistens) auch im Grafikformat gespeichert werden, und bei zwei RGB Einträgen werden mindestens 7 Byte fällig: zwei mal 3 Byte pro Eintrag, und mindestens 1 Byte für die Größenangabe der Palette. (in der Realität ist das aber meistens noch mehr!)

Dann gibt es noch sog. "Padding", was z. B. von einigen Windows-Bitmap Formaten eingesetzt wird: Es gibt zwar nur drei Kanäle (R, G und B), die auch jeweils nur 8 Bit belegen, aber dazwischen wird immer ein Null-Byte gespeichert, wobei man also pro Pixel auf 4, statt nur 3 Byte kommt.

Und dann kommen noch die Kopfdaten (sog. Header) dazu, die oftmals auch noch mal 16 bis 64 Byte belegen (oder mehr, oder weniger ... hängt vom Format ab!), und den "Charakter" eines Grafikformates ausmachen.

Darüber hinaus unterstützen viele Dateiformate für Grafiken Meta-Daten, deren Größe man ebenfalls mit einberechnen muss.

Geht es dir aber NUR um die Rohdaten (nicht mit Rohdaten von Digitalkameras verwechseln!), dann merke dir einfach folgende Formel:

Anzahl Kanäle * Farbtiefe * Breite * Höhe = Dateigröße

Naja, das ist ein komplexes Thema ... ich möchte jetzt hier nicht den Rahmen sprengen.

Schönen Abend noch! :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten