When I set my app to Color Reduction, what does it convert the images to, what is the converted color depth, etc?
Thanks
Printable View
When I set my app to Color Reduction, what does it convert the images to, what is the converted color depth, etc?
Thanks
Generally it is half the color quality.
It goes from 16.777.216 colors down to 65.536 for images with no alpha channel. This should not be much of an issue in most cases though. Best is to leave color compression ON by default and only disabling it on the objects where you see any noticeable loss of quality.
The amount of different shades you can describe with N bits is 2^N.
Without color compression:
A 24bit RGB (R8G8B8) image can therefore contain 2^24 shades = 16.777.216 colors
A 32bit RGBA (R8G8B8A8) image can contain 2^32 shades = 16.777.216 colors * 256 shades of alpha
With color compression:
No transparency RGB: (R8G8B8) -> (R5G6B5) 65.536 colors
Transparent color RGB: (R8G8B8) -> (R5G5B5A1) 32.768 colors * 1 shade of alpha (opaque or completely transparent)
Alpha channel RGB: (R8G8B8A8) -> (R4G4B4A4) 4.096 colors * 16 shades of alpha
Thanks!
Does it intelligently choose which colours to keep or does it have a pre-defined palette of colours which it uses?
That is to say, if my object has 60,000 colours does that mean that my image will actually look the same, every time? Or does that mean that some of the colours will be removed?
Andos very good explanation, thanks ...
It is not palletized, it will uniformly remove colors over the entire spectrum. For example you might be able to notice it when you have large gradients that go from two colors somewhat close to each other.
I should probably make some comparisons for people to see.
One nice example: The original Zeb game was only 256 colors, you could use all the color compression on that game without ever loosing any color quality as it was already using colors that exists in the reduced set of colors.
If you want to know if a certain color is in the set, you can again do a little math:
A color compressed channel can either use 4,5 or 6 bits (depending on the format).
That means that there can either be 16 shades, 32 shades or 64 shades. That value will then be mapped into the [0..255] range on the screen.
I made a small 1 minute MMF2 app to give me the values:
Possible values for a 4bit channel:
Possible values for a 5bit channel:Code:0
17
34
51
68
85
102
119
136
153
170
187
204
221
238
255
Possible values for a 6bit channel:Code:0
8
16
24
32
41
49
57
65
74
82
90
98
106
115
123
131
139
148
156
164
172
180
189
197
205
213
222
230
238
246
255
So if an image gets compressed into a R5G6B5 format, you can find the possible red values in the second table, the green values in the third table and the blue values in the second table.Code:0
4
8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
85
89
93
97
101
105
109
113
117
121
125
129
133
137
141
145
149
153
157
161
165
170
174
178
182
186
190
194
198
202
206
210
214
218
222
226
230
234
238
242
246
250
255
That makes sense Andos. I'll keep it in mind. Thanks!