GIF FILE FORMAT

 

BASICS

Introduction

GIF is CompuServe's standard for graphics image data exchange. There are currently two versions (GIF standards): GIF87a and GIF89a. The differences between two formats are minor.

Number of colors

Today, main disadvantage of GIF is the number of colors that can be used for representing image data. Bit depth of an image can be no more then 8 bits per pixel which means that maximum of 256 different colors can be found in a single GIF image.

Animation

The file containing GIF data may consist of sequence of images thus representing animation. Images are dumped out to the screen with or without pause between them. Animated GIFs are today widely used by the WEB creators.

Compression

Image data in the GIF file format is compressed using modified LZW (Lempel-Ziv Welch) algorithm.


DETAILS

GIF header

GIF header size is 6 bytes. First 3 bytes are representing GIF signature that identifies GIF data. These 3 bytes are containing string value "GIF". Second 3 bytes are representing version number. Version number is actually string containing either "87a" or "89a". Version numbers are ordered numerically by the first two bytes and than alphabetically by the third byte. GIF header must be present at the start of each GIF file.

	struct	tagGIFVersion {
		BYTE	bNum[2];
		char	chAlpha;
	};

Logical screen descriptor

Logical screen descriptor must follow GIF header. It is used to determine the area in which the bitmap data will be dumped out. The coordinates given in a logical screen descriptor are relative to the virtual screen of the target device. Target device can be either part of the screen which will be used for image dump out or full screen. In logical screen descriptor are given width and height of the virtual screen, background color index. There can be also found size of the global color table (that is used to render images that are given without local color table), and flag that is indicating that the global color table is sorted by decreasing order of the color importance. That means that most significant color will be first in the color table, and the last significant color will be last in the color table.

	struct	tagMISCScreenDesc {
		BYTE	bGlobalColorTableSize:3;
		BYTE	bSortFlag:1;
		BYTE	bColorResolution:3;
		BYTE	bGlobalColorTableFlag:1;
	};

	struct	tagScreenDescriptor {
		WORD	wWidth;
		WORD	wHeight;
		struct	tagMISCScreenDesc bMISC;
		BYTE	bBackgroundColor;
		BYTE	bPixelAspectRatio;
	};

Global color table

Global color table is used to render images that are given without local color table. Usually in animated GIFs there is global color table and no local color tables so global color table is used to render all images found in the rest of data stream that follows. Size and presence of the global color table is determined by reading the logical screen descriptor.

	struct	tagColorMap {
		BYTE	bRed;
		BYTE	bGreen;
		BYTE	bBlue;
	};

Image descriptor

Image descriptor contains information about image data that follows. It contains width and height of the image data that will be dumped out, image top and left position with respect to the logical screen set by logical screen descriptor. The presence of image's local color table is also determined from image descriptor structure. Image can be interlaced or non interlaced. If non interlaced image data is stored in data stream from up to bottom, and left to right. That means that the first pixel read from data stream will be the first pixel in the upper left corner, and the last pixel in the data stream will be the last pixel in the bottom right corner. Else, if image is interlaced than the special output scheme is used to render image. Image is then rendered in 4 passes. In first pass every 8th row is rendered starting from row 0 (0, 8, 16, 24, etc.). In second pass every 8th row is rendered starting from row 4 (4, 12, 20, 28, etc.). Third pass render's every 4th row starting with row 2 (2, 6, 10, 14, etc.). The final pass renders all remaining rows - every 2nd row starting witch row 1 (1, 3, 5, 7, etc.).

	struct	tagMISCImageDesc {
		BYTE	bLocalColorTableSize:3;
		BYTE	bReserved:2;
		BYTE	bSortFlag:1;
		BYTE	bInterlaceFlag:1;
		BYTE    bLocalColorTableFlag:1;
	};

	struct	tagImageDescriptor {
		WORD	wImageLeft;
		WORD	wImageTop;
		WORD	wImageWidth;
		WORD	wImageHeight;
		struct	tagMISCImageDesc bMISC;
	};

Local color table

Local color table is used to render image that follows it. If there is no local color table, image that follows image descriptor is rendered using global color table. Size and presence of the local color table is determined by reading image descriptor.

	struct	tagColorMap {
		BYTE	bRed;
		BYTE	bGreen;
		BYTE	bBlue;
	};

Image data

First byte in the image data represents minimum code size used to decompress data. Following minimum code size are image data blocks. Image data is block based meaning that the first byte represents the size of a block, and the following bytes represent image data. Last block is determined by the size of 0 (empty block). Image data is compressed modified version of LZW algorithm.

Trailer

Trailer (fixed value of 0x3B) is used to indicate the end of GIF data stream.

Extension blocks

GIF version 89a defines 4 extension blocks. They are:

  1. Graphics control extension

    Graphics control extension block defines parameters that are used with image rendering. It contains various parameter such as transparent color index, delay time before rendering image data, disposal method, etc...

    	struct	tagMISCGraphicControl {
    		BYTE	bTransparentColorFlag:1;
    		BYTE	bUserInputFlag:1;
    		BYTE	bDisposalMethod:3;
    		BYTE	bReserved:3;
    	};
    
    	struct	tagGraphicControl {
    		BYTE	bBlockSize;
    		struct	tagMISCGraphicControl bMISC;
    		WORD	wDelayTime;
    		BYTE	bTransparentColorIndex;
    	};
    

  2. Comment extension

    Comment extension block is used to put data that is not actually part of image data into GIF data stream. It is useful for putting various information in it.

  3. Plain text extension

    Plain text extension block contains textual data and all information necessary to render textual data in graphical screen.

    	struct	tagPlainText {
    		BYTE	bBlockSize;
    		WORD	wTextGridLeft;
    		WORD	wTextGridTop;
    		WORD	wTextGridWidth;
    		WORD	wTextGridHeight;
    		BYTE	bCellWidth;
    		BYTE	bCellHeight;
    		BYTE	bForeColor;
    		BYTE	bBackColor;
    	};
    

  4. Application extension

    Application extension block is used by application to put in various application specific data.

    	struct	tagApplicationBlock {
    		BYTE	bBlockSize;
    		char	pchIdent[8];
    		BYTE	bAuthent[3];
    	};
    


EXAMPLE

Text dump of the sample GIF file

General Info:
=============
File name: sample.gif
Signature: GIF
Version: 87a


Screen Descriptor:
==================
Screen width: 32
Screen height: 32
Global color map exists: Yes
Bits per pixel for global color map: 8
Background color index: 0
Global color map sorted (89a+): Not supported by this version of GIF.
Bits per pixel of the original palette: 8
Aspect ratio (89a+): Not supported by this version of GIF.


Global Color Map (RGB format):
==============================
     0.   0xc6   0xc6   0xc6
     1.   0xff   0x00   0x00
     2.   0xff   0xff   0xff
     3.   0xff   0xff   0xff
     4.   0xff   0xff   0xff
     5.   0xff   0xff   0xff
     6.   0xff   0xff   0xff
     7.   0xff   0xff   0xff
     8.   0xff   0xff   0xff
     9.   0xff   0xff   0xff
    10.   0xff   0xff   0xff
    11.   0xff   0xff   0xff
    12.   0xff   0xff   0xff
    13.   0xff   0xff   0xff
    14.   0xff   0xff   0xff
    15.   0xff   0xff   0xff
    16.   0xff   0xff   0xff
    17.   0xff   0xff   0xff
    18.   0xff   0xff   0xff
    19.   0xff   0xff   0xff
    20.   0xff   0xff   0xff
    21.   0xff   0xff   0xff
    22.   0xff   0xff   0xff
    23.   0xff   0xff   0xff
    24.   0xff   0xff   0xff
    25.   0xff   0xff   0xff
    26.   0xff   0xff   0xff
    27.   0xff   0xff   0xff
    28.   0xff   0xff   0xff
    29.   0xff   0xff   0xff
    30.   0xff   0xff   0xff
    31.   0xff   0xff   0xff
    32.   0xff   0xff   0xff
    33.   0xff   0xff   0xff
    34.   0xff   0xff   0xff
    35.   0xff   0xff   0xff
    36.   0xff   0xff   0xff
    37.   0xff   0xff   0xff
    38.   0xff   0xff   0xff
    39.   0xff   0xff   0xff
    40.   0xff   0xff   0xff
    41.   0xff   0xff   0xff
    42.   0xff   0xff   0xff
    43.   0xff   0xff   0xff
    44.   0xff   0xff   0xff
    45.   0xff   0xff   0xff
    46.   0xff   0xff   0xff
    47.   0xff   0xff   0xff
    48.   0xff   0xff   0xff
    49.   0xff   0xff   0xff
    50.   0xff   0xff   0xff
    51.   0xff   0xff   0xff
    52.   0xff   0xff   0xff
    53.   0xff   0xff   0xff
    54.   0xff   0xff   0xff
    55.   0xff   0xff   0xff
    56.   0xff   0xff   0xff
    57.   0xff   0xff   0xff
    58.   0xff   0xff   0xff
    59.   0xff   0xff   0xff
    60.   0xff   0xff   0xff
    61.   0xff   0xff   0xff
    62.   0xff   0xff   0xff
    63.   0xff   0xff   0xff
    64.   0xff   0xff   0xff
    65.   0xff   0xff   0xff
    66.   0xff   0xff   0xff
    67.   0xff   0xff   0xff
    68.   0xff   0xff   0xff
    69.   0xff   0xff   0xff
    70.   0xff   0xff   0xff
    71.   0xff   0xff   0xff
    72.   0xff   0xff   0xff
    73.   0xff   0xff   0xff
    74.   0xff   0xff   0xff
    75.   0xff   0xff   0xff
    76.   0xff   0xff   0xff
    77.   0xff   0xff   0xff
    78.   0xff   0xff   0xff
    79.   0xff   0xff   0xff
    80.   0xff   0xff   0xff
    81.   0xff   0xff   0xff
    82.   0xff   0xff   0xff
    83.   0xff   0xff   0xff
    84.   0xff   0xff   0xff
    85.   0xff   0xff   0xff
    86.   0xff   0xff   0xff
    87.   0xff   0xff   0xff
    88.   0xff   0xff   0xff
    89.   0xff   0xff   0xff
    90.   0xff   0xff   0xff
    91.   0xff   0xff   0xff
    92.   0xff   0xff   0xff
    93.   0xff   0xff   0xff
    94.   0xff   0xff   0xff
    95.   0xff   0xff   0xff
    96.   0xff   0xff   0xff
    97.   0xff   0xff   0xff
    98.   0xff   0xff   0xff
    99.   0xff   0xff   0xff
   100.   0xff   0xff   0xff
   101.   0xff   0xff   0xff
   102.   0xff   0xff   0xff
   103.   0xff   0xff   0xff
   104.   0xff   0xff   0xff
   105.   0xff   0xff   0xff
   106.   0xff   0xff   0xff
   107.   0xff   0xff   0xff
   108.   0xff   0xff   0xff
   109.   0xff   0xff   0xff
   110.   0xff   0xff   0xff
   111.   0xff   0xff   0xff
   112.   0xff   0xff   0xff
   113.   0xff   0xff   0xff
   114.   0xff   0xff   0xff
   115.   0xff   0xff   0xff
   116.   0xff   0xff   0xff
   117.   0xff   0xff   0xff
   118.   0xff   0xff   0xff
   119.   0xff   0xff   0xff
   120.   0xff   0xff   0xff
   121.   0xff   0xff   0xff
   122.   0xff   0xff   0xff
   123.   0xff   0xff   0xff
   124.   0xff   0xff   0xff
   125.   0xff   0xff   0xff
   126.   0xff   0xff   0xff
   127.   0xff   0xff   0xff
   128.   0xff   0xff   0xff
   129.   0xff   0xff   0xff
   130.   0xff   0xff   0xff
   131.   0xff   0xff   0xff
   132.   0xff   0xff   0xff
   133.   0xff   0xff   0xff
   134.   0xff   0xff   0xff
   135.   0xff   0xff   0xff
   136.   0xff   0xff   0xff
   137.   0xff   0xff   0xff
   138.   0xff   0xff   0xff
   139.   0xff   0xff   0xff
   140.   0xff   0xff   0xff
   141.   0xff   0xff   0xff
   142.   0xff   0xff   0xff
   143.   0xff   0xff   0xff
   144.   0xff   0xff   0xff
   145.   0xff   0xff   0xff
   146.   0xff   0xff   0xff
   147.   0xff   0xff   0xff
   148.   0xff   0xff   0xff
   149.   0xff   0xff   0xff
   150.   0xff   0xff   0xff
   151.   0xff   0xff   0xff
   152.   0xff   0xff   0xff
   153.   0xff   0xff   0xff
   154.   0xff   0xff   0xff
   155.   0xff   0xff   0xff
   156.   0xff   0xff   0xff
   157.   0xff   0xff   0xff
   158.   0xff   0xff   0xff
   159.   0xff   0xff   0xff
   160.   0xff   0xff   0xff
   161.   0xff   0xff   0xff
   162.   0xff   0xff   0xff
   163.   0xff   0xff   0xff
   164.   0xff   0xff   0xff
   165.   0xff   0xff   0xff
   166.   0xff   0xff   0xff
   167.   0xff   0xff   0xff
   168.   0xff   0xff   0xff
   169.   0xff   0xff   0xff
   170.   0xff   0xff   0xff
   171.   0xff   0xff   0xff
   172.   0xff   0xff   0xff
   173.   0xff   0xff   0xff
   174.   0xff   0xff   0xff
   175.   0xff   0xff   0xff
   176.   0xff   0xff   0xff
   177.   0xff   0xff   0xff
   178.   0xff   0xff   0xff
   179.   0xff   0xff   0xff
   180.   0xff   0xff   0xff
   181.   0xff   0xff   0xff
   182.   0xff   0xff   0xff
   183.   0xff   0xff   0xff
   184.   0xff   0xff   0xff
   185.   0xff   0xff   0xff
   186.   0xff   0xff   0xff
   187.   0xff   0xff   0xff
   188.   0xff   0xff   0xff
   189.   0xff   0xff   0xff
   190.   0xff   0xff   0xff
   191.   0xff   0xff   0xff
   192.   0xff   0xff   0xff
   193.   0xff   0xff   0xff
   194.   0xff   0xff   0xff
   195.   0xff   0xff   0xff
   196.   0xff   0xff   0xff
   197.   0xff   0xff   0xff
   198.   0xff   0xff   0xff
   199.   0xff   0xff   0xff
   200.   0xff   0xff   0xff
   201.   0xff   0xff   0xff
   202.   0xff   0xff   0xff
   203.   0xff   0xff   0xff
   204.   0xff   0xff   0xff
   205.   0xff   0xff   0xff
   206.   0xff   0xff   0xff
   207.   0xff   0xff   0xff
   208.   0xff   0xff   0xff
   209.   0xff   0xff   0xff
   210.   0xff   0xff   0xff
   211.   0xff   0xff   0xff
   212.   0xff   0xff   0xff
   213.   0xff   0xff   0xff
   214.   0xff   0xff   0xff
   215.   0xff   0xff   0xff
   216.   0xff   0xff   0xff
   217.   0xff   0xff   0xff
   218.   0xff   0xff   0xff
   219.   0xff   0xff   0xff
   220.   0xff   0xff   0xff
   221.   0xff   0xff   0xff
   222.   0xff   0xff   0xff
   223.   0xff   0xff   0xff
   224.   0xff   0xff   0xff
   225.   0xff   0xff   0xff
   226.   0xff   0xff   0xff
   227.   0xff   0xff   0xff
   228.   0xff   0xff   0xff
   229.   0xff   0xff   0xff
   230.   0xff   0xff   0xff
   231.   0xff   0xff   0xff
   232.   0xff   0xff   0xff
   233.   0xff   0xff   0xff
   234.   0xff   0xff   0xff
   235.   0xff   0xff   0xff
   236.   0xff   0xff   0xff
   237.   0xff   0xff   0xff
   238.   0xff   0xff   0xff
   239.   0xff   0xff   0xff
   240.   0xff   0xff   0xff
   241.   0xff   0xff   0xff
   242.   0xff   0xff   0xff
   243.   0xff   0xff   0xff
   244.   0xff   0xff   0xff
   245.   0xff   0xff   0xff
   246.   0xff   0xff   0xff
   247.   0xff   0xff   0xff
   248.   0xff   0xff   0xff
   249.   0xff   0xff   0xff
   250.   0xff   0xff   0xff
   251.   0xff   0xff   0xff
   252.   0xff   0xff   0xff
   253.   0xff   0xff   0xff
   254.   0xff   0xff   0xff
   255.   0xff   0xff   0xff


Image Descriptor:
=================
   Relative start of image from left: 0
   Relative start of image from top: 0
   Image width: 32
   Image height: 32
   Image is interlaced: No
   Local color map exists: No


Image Data:
===========
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x00   0x00   0x00   0x00   0x00   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00
   0x00   0x01   0x01   0x01   0x01   0x02   0x02   0x02   0x02   0x01
   0x02   0x02   0x02   0x02   0x02   0x02   0x01   0x02   0x02   0x02
   0x02   0x01   0x01   0x02   0x02   0x02   0x02   0x02   0x01   0x01
   0x01   0x00   0x00   0x01   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x02   0x02   0x01   0x01   0x02
   0x02   0x01   0x01   0x00   0x00   0x01   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x02   0x02   0x01
   0x01   0x02   0x02   0x01   0x01   0x00   0x00   0x01   0x01   0x01
   0x02   0x02   0x01   0x01   0x01   0x01   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x02
   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x00   0x00   0x01
   0x01   0x01   0x02   0x02   0x02   0x01   0x01   0x01   0x01   0x01
   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x00
   0x00   0x01   0x01   0x01   0x01   0x02   0x02   0x02   0x01   0x01
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01
   0x01   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x02   0x02
   0x02   0x01   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x02   0x02   0x02   0x02   0x02
   0x01   0x01   0x01   0x00   0x00   0x01   0x01   0x01   0x01   0x01
   0x01   0x02   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x02   0x02   0x01
   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x02
   0x02   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x01
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x02   0x02   0x01   0x01   0x01   0x01   0x01   0x01   0x00
   0x00   0x01   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02
   0x01   0x01   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01
   0x02   0x02   0x01   0x02   0x02   0x01   0x01   0x01   0x01   0x01
   0x01   0x00   0x00   0x01   0x01   0x01   0x01   0x02   0x02   0x02
   0x02   0x01   0x01   0x01   0x02   0x02   0x01   0x01   0x01   0x02
   0x02   0x02   0x02   0x01   0x01   0x02   0x02   0x01   0x01   0x01
   0x01   0x01   0x01   0x00   0x00   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00   0x00
   0x00   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x01
   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01   0x01
   0x01   0x01   0x01   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00   0x00
   0x00   0x00   0x00   0x00

COPYRIGHTS

The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated.

 

 

 

               Books

               References

               Related Links

               

HomePage - Basic Facts -Commercial - Algorithms - Hardware - FAQ - Glossary

arcsepd.gif (196 bytes)

Maintained and Copyrighted © 1997-2000 by DataCompression Reference Center 

(compresswww@rasip.fer.hr)

arcsepd.gif (196 bytes)