Dateiformate

Aus TuxBoxWIKI
Version vom 9. November 2011, 21:24 Uhr von Martinm (Diskussion | Beiträge) (Initiale Version)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

RAW+PAL

Bei diesem Format werden zwei Dateien benutzt: Eine für die Bilddaten (.raw) und eine für die Palette (.pal). RAW-Dateien haben folgendes Format:

Offset Datentyp Beschreibung
0 Short Breite des Bildes (Little-Endian)
2 Short Höhe des Bildes (Little-Endian)
4 Byte Transparenzfarbe
5 Byte[N] Bilddaten

Die Bilddaten enthalten die eigentlichen Pixel. Bei Bildern für das LCD werden zwei Pixel pro Byte gespeichert (das Hi-Nibble enthält den linken Pixel), bei Bildern für den Framebuffer ist es ein Pixel pro Byte.

Die Größe des Byte-Arrays 'Bilddaten' ist bei LCD-Bildern N = Breite * Höhe / 2. Bei Framebuffer-Bildern ist N = Breite * Höhe. Warum LCD-Bilder 4 Bits pro Pixel enthalten und nicht 1 Bit ist mir schleierhaft. Das LCD selber kann ja nur zwei Farben darstellen.

Das Array 'Bilddaten' enthält zuerst die Bilddaten für die erste Zeile, dann für zweite Zeile, usw.

Paletten-Dateien enthalten 256 RGB-Farbeinträge. Jede Palettendatei ist somit 768 Bytes groß.

ANI

Dieses Format dient der Speicherung von Animationen von LCD-Bildern genutzt. Es wird vom Programm aniplay verwendet. Es hat den folgenden Aufbau:

Offset Datentyp Beschreibung
0 Char[4] Signatur (= 'LCDA')
4 Short Format
6 Short Breite der Bilder
8 Short Höhe der Bilder
10 Short Anzahl der Bilder (= n)
12 Short Wartezeit zwischen den Bildern
14 Byte[N] Bilddaten der Einzelbilder

Alle multi-byte Integers sind im Gegensatz zum RAW Format in Big Endian. Die Felder Format, Breite und Höhe werden von aniplay ignoriert. Sie sind eigentlich überflüssig, dar dieses Format ausschließlich für LCD-Animationen genutzt wird.

Als Format ist nur der Wert 0 spezifiziert. Dieses sieht vor jeweils 1 Bit pro Pixel zu benutzen. Ein Byte enthält 8 untereinanderliegende Pixel. Sie werden nachfolgend als Teilspalte bezeichnet, dar eine Teilspalte eben nur 8 Pixel anstatt der 64 Pixel einer (Voll-)Spalte enthalten. Die Daten werden so gespeichert: Es zuerst nebeneinanderliegende Teilspalten, welche in der ersten Zeile beginnen gespeichert. Dies sind 120 Teilspalten (dar das LCD ja aus 120 Spalten besteht). Danach werden die unterhalb liegenden Spalten (welche in Zeile 8 beginnen) gespeichert. Danach wiederum die Darunterliegenden und so weiter.

Das Bilddaten-Array ist N = n * Breite * Höhe / 8 Bytes groß.

Format der Datei logo-fb

Diese Datei wird im MPEG-1 Format gespeichert. Die Auflösung ist 720x756 Pixel, die Frame Rate bei 25 FPS und die Videonorm sollte PAL sein. Es wird nur ein Einzelbild gespeichert.

Die Datei befindet sich im Ordner /var/tuxbox/boot.

Format der Datei logo-lcd

Diese Datei enthält exakt 120 * 64 = 7680 Bytes. Das Layout der Pixel ist wie beim ANI-Format. Es wird jeweils ein Byte pro Pixel gespeichert.

Die Datei befindet sich im Ordner /var/tuxbox/boot.

Referenzen

RAW/ANI: Im cdk: '/source/hostapps/bmp2raw/formats.txt'
logo-lcd: im cdk: '/source/boot/u-boot/board/dbox2/lcd.c'