Forum: Offtopic S: 4-Bit RGB-Palette


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jürgen (derkleinemuck)


Lesenswert?

Ich bin wohl irgendwie zu doof zum suchen und brauche Hilfe:
Ich suche eine simple Farbpalette als Bild mit 4-Bit werten für RGB. 
Also im Grunde so was: 
https://static.planetminecraft.com/files/resource_media/screenshot/1403/4-bit_6994524_lrg.jpg 
Nur das da zwar 4-Bit drüber steht aber 8 Bit genutzt werden. Ja, ich 
kann das vermutlich schneller selber malen aber das sollte es doch 
irgendwo geben???
BTW: Eventuell auch gleich mit 5-Bit - wird beides oft für RGB-LEDs 
genutzt

von Ste N. (steno)


Lesenswert?

Was meinst Du denn mit 4bit für RGB. Das jede Farbe mit 16 
Helligkeitswerten dargestellt werden kann? Also insgesammt 12bit für 
RGB?

Das oben verlinkte ist ein Bild mit indizierter Farbe, da benötigt man 
pro Pixel tatsächlich nur 4bit. Siehe 
https://de.wikipedia.org/wiki/Indizierte_Farben

Wenn das erstere gemeint ist, warum nicht gleich 16bit mit 5, 6, 5 bits 
für RGB?

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Jürgen schrieb:
> Nur das da zwar 4-Bit drüber steht aber 8 Bit genutzt werden.

Dann sieh Dir doch mal die Werte an, die in den Spalten auftauchen:

255, 170, 85 und 0.

Das sind nur vier Werte, also zwei Bit pro Farbe.

Von den möglichen 64 Kombinationen (drei Farben à 2 Bit, also 6 Bit) 
werden 16 recht willkürlich ausgesucht, um eine 16-Bit-Palette zu 
erzeugen.

Also gibt es eine Transformation 4 Bit -> 6 Bit:
1
4-Bit-Wert  R G B  6-Bit-Wert
2
0           3 3 3  63
3
1           2 2 2  42
4
2           1 1 1  21
5
3           0 0 0   0
6
4           3 3 1  61
7
5           0 2 0   8
8
6           1 3 1  29
9
7           3 1 1  53
10
8           2 0 0  32
11
9           2 1 0  36
12
10          2 0 2  34
13
11          3 1 3  55
14
12          1 3 3  31
15
13          0 2 2  10
16
14          0 0 2   2
17
15          1 1 3  23

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Wandle die Zahlenwerte der Tabelle in Hex um und schmeiße beliebig viele 
niederwertige Bits weg. Dann hast du die Tabelle für 4, 5 oder auch nur 
2 Bit. Die Farben stimmen dann halt nicht mehr so gut, weil es dann 
nicht mehr so viel Farbauswahl gibt. Aber im Großen und Ganzen wird das 
schon hinkommen.

von Harald K. (kirnbichler)


Lesenswert?

Wolfgang R. schrieb:
> Wandle die Zahlenwerte der Tabelle in Hex um und schmeiße beliebig viele
> niederwertige Bits weg.
1
255 = 1111 1111
2
170 = 1010 1010
3
 85 = 0101 0101
4
  0 = 0000 0000

Maximal reduziert kommt genau das raus, was ich oben gepostet habe.
1
255 = 1111 1111  == 11  (3)
2
170 = 1010 1010  == 10  (2)
3
 85 = 0101 0101  == 01  (1)
4
  0 = 0000 0000  == 00  (0)

von Ste N. (steno)


Lesenswert?

Wolfgang R. schrieb:
> Wandle die Zahlenwerte der Tabelle in Hex um und schmeiße beliebig viele
> niederwertige Bits weg. Dann hast du die Tabelle für 4, 5 oder auch nur
> 2 Bit. Die Farben stimmen dann halt nicht mehr so gut, weil es dann
> nicht mehr so viel Farbauswahl gibt. Aber im Großen und Ganzen wird das
> schon hinkommen.

Dann kann man die 4bits doch gleich als Index auf eine 24bit breite 
Farbtabelle nehmen und hat in der Farbauswahl null Einschränkungen. So 
hat das doch früher jede Grafikkarte gemacht.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

So haben das auch schon die alten Arcade-Spiele gemacht - 
Paletteneinträge im BPROM. Aber wer weiß schon, was der TO genau damit 
will? Bisher will er nur eine Tabelle.

von Jürgen (derkleinemuck)


Lesenswert?

Vier Bits pro RGB-Wert sind durchaus üblich, weil eine LED sowieso keine 
256 Abstufungen kann. Da reichen auch 16 und das spart Platz, weil man 
keine 3 Bytes braucht.

0 0 0 = schwarz
0 0 1 = etwas schwarz
...
0 0 F = Blau
...
F F 0 = Gelb
...
F F F = Weiß

So, jetzt habe ich mir die Tabelle selbst gemalt. Ich dachte halt, so 
was gibt's schon fertig

von Harald K. (kirnbichler)


Lesenswert?

Jürgen schrieb:
> So, jetzt habe ich mir die Tabelle selbst gemalt.

Das ist aber was anderes; das sind nicht 4, sondern 12 Bit, also 4096 
statt 16 unterschiedliche Farben.

Und damit widerspricht das dem, was Du eingangs gewünscht hast.

von Falk B. (falk)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.