Full Version : GIF Compression Explained prt 1
xmaster >>CodeMasters Storage Area >>GIF Compression Explained prt 1


<< Prev | Next >>

CodeMaster- 02-12-2007
GIF Compression Explained


This may not be an exact representation of what goes on in a GIF, but I'm guessing it's close enough for our purposes.

Let's suppose you have a 6x6 gif image made up of 3 colors a,b and c...

user posted image

Or in terms of a, b and c...

c c c c c c
c b b b b b a = red
c b b b b b b = green
c a a b b b c = blue
c a a b b b
c c c c c c
One way to "describe" this image is

first row c-c-c-c-c-c
second row c-b-b-b-b-b
etc
Each pixel is defined one at a time.

Let's suppose we tried to save a little time though and described it like this...

1:6c
2:c-5b
etc
By attempting to group pixels together you save room. If we had a very large image that started off like this...

first row c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c
second row c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c-c
A gif might simply say...

1:25c
2:25c
This is gif "compression".

Let's suppose that instead of all c's in those first two rows, there are other colors...

first row c-c-c-c-b-b-b-a-b-b-a-a-a-a-a-c-c-b-b-b-a-b-c-c-c
second row a-a-a-a-b-b-b-a-b-c-c-c-c-c-b-b-b-b-c-c-c-c-c-c-c
This would compress into...

1:4c-3b-a-2b-5a-2c-3b-a-b3c
2:4a-3b-a-b-5c-4b-7c
Now let's suppose instead of 3 colors, we reduced the number of colors to 2. We'll remove a and substitute b instead. If a and b are similar colors, the image quality may not suffer very much at all...

first row c-c-c-c-b-b-b-b-b-b-b-b-b-b-b-c-c-b-b-b-b-b-c-c-c
second row b-b-b-b-b-b-b-b-b-c-c-c-c-c-b-b-b-b-c-c-c-c-c-c-c
This would compress into...

1:4c-11b-2c-5b-3c
2:9b-5c-4b-7c
Compare this to the last example. Do you see how this would translate into a smaller file size?

One of the worst things you can do to a gif is make it speckled...

first row c-b-c-b-c-b-c-b-c-b-c-b-c-b
Because what would that compress into?

1:c-b-c-b-c-b-c-b-c-b-c-b-c-b
You don't save a thing.

So, the whole business of gif compression revolves around one simple idea... reduce the number of colors and/or color changes in the file.






Free Forum Hosting by Forumer.comTM!