By Bill Graham, Graphics Editor, firstname.lastname@example.org
Like many who do graphics for a living I've had to bite the bullet and switch platforms for some processor-intensive tasks, 3D rendering and animation in my case. One newer design challenge, however, involves some graphics chores which are simply unsurpassed on the Amiga.
I am talking about animated GIFs. Anyone who spends much time on the Web runs into these. They can make a web page come alive like nothing else can. In fact, that is what is attractive about animation in all media.
Animated GIF's are unusual in the non-Amiga universe in that the animated GIF format is a delta-based animation format. Most PC/Mac animation formats are either chunky-pixel based (such as FLC and FLI) or lossy (such as AVI and Quicktime). But for Amigas, delta based animation is old hat. In fact, the IFF animation format was the earliest delta animation format that I'm aware of.
Some explanation of these different animation compression methods is in order. In a nutshell, delta animation saves only the differences in the individual frames. Differences in this instance include the color of a pixel from frame to frame, and changes in the color palette from frame to frame. As you can surmise, this method lends itself best to color-mapped, or 256 colors or less, imagery. Chunky-pixel compression involves compression based on the changes of a matrix of pixels in the bitmap from one frame to another. Proprietary graphics cards such as the Retina use this method as its animation format, so this method of image compression is not entirely unknown on the Amiga. Lossy methods such as Quicktime and AVI take a cue from the MPEG format and actually lose data in the individual frames. These are usually full color 24-bit imagery, and have become the most popular form of digital animation.
Consequently, the animated GIF format has more in common with the delta based IFF animation format than any of the other formats in the PC/Mac world. For one thing, it is possible to have low-color animations, as low as 16 colors even. For another, each frame can have its own palette, up to 256 colors out of a 24bit color scheme.
I have about 60 megs of IFF format animations spread all over creation, and one of the reasons I created many of these anims was in experimentation with data compression. In other words, how much animation can you squeeze into a manageable file to be sent through a modem. This problem is also known as bandwidth limitation.
The vast majority of animated GIF's on the Web that you encounter are made with GIF Construction Set for Windows. This $20 shareware product allows for some very neat manipulation of the GIF format. It has some image processing options. You can, for instance, load 24 bit imagery into it and it will auto-convert the frames into 256 color images. It does an admirable job of this, but if you're doing web page animations, you want to squeeze that GIF file to the max. For areas of lots of solid color, GIF Construction Set is great. But if 3D imagery or grabbed video is the source of your files, then that is where the Amiga really shines.
The most popular Web browser in the Mac/PC world is Netscape. The number of plug-ins for this program is growing almost daily. So, if I want my animated GIF's to look the best, it is logical that I make them for Netscape. Other browsers will be to handle these GIF's, but I want to target the majority of users with my efforts.
Netscape has a default 8bit (actually, 216 color) palette that it displays Web graphics with. It can display many more colors, but since I want control over how the animated GIF looks, then the source frames must be mapped to this 216 color palette. By mapping all the frames to the same palette, I can keep the final file size as small as possible. And the best tool for this kind of job is an Amiga and a batch processing program such as ImageFX or ADPro.
Although it is no longer available, I still use ADPro because I was a beta tester for 2.5 and I'm very familiar with it. Plus, it has many dither options that cannot be found anywhere else. Dithering is necessary when converting 24-bit imagery to a lower-color file; it simulates extra colors by algorithmically mixing pixels of two or more colors to make another color. Although GIF Constuction Set dithers 24bit images, the user has no control over how much dithering or of what type.
By taking one of the sample GIF's that come with GIF Construction Set on the PC into ADPro, the Netscape palette is automatically loaded into ADPro's palette editor. Once that palette is locked, I use ADPro's batch processing program FRED to render the frames down to the Netscape palette. There are a couple of hurdles here. Mainly, the PC and Amiga file naming conventions differ enough that making some changes are necessary. With FRED, the typical PC naming scheme of Testpic0001.bmp, Testpic0001.bmp, etc. will not work. FRED needs the last characters of a filename to be a numbered sequence in order to work correctly. Image FX does not have this problem. Also, the Amiga convention of Testpic.0001, Testpic.0002, etc. will not work on a PC, since Windows does not parse filetypes. Fortunately, both ADPro and Image FX have ready-to-use ARexx scripts that remedy these problems.
Once the frames are rendered down and saved as GIF's, I take them into Photoshop on the PC to clean up any stray pixels. This is important if I want a transparent backround in the animated GIF, and it also helps to reduce the delta, thereby keeping the filesize down. Unfortunately, DPaint does not save small non-standard bitmaps, or it would be better to clean up stray pixels with it. The ability to temporarily change the 256-color palette would simplify finding those stray pixels. I do not have Brilliance, but I understand that it is able to save frames on the 100x100 pixel or so size. Once the frames are cleaned up, they can be loaded directly into GIF Construction Set on the PC, as it supports the IFF format.
Going through all this may seem like a bit much. But animated GIFs are usually 25 frames or less and are a small-sized bitmap, so even by using something like Link-It or some other serial transfer scheme, it's possible to get the files back and forth without taking up much time. And by taking a couple of hours to reduce the size of the animated GIF, you can reduce the collective time by much more than a couple of hours that users spend on a web page waiting for images to download. And reduce the number of users that give up and don't wait.
The proof is in the pudding, and you can check out some animated GIF's that were rendered in Imagine and processed in the above manner by visiting my website at http://www.primenet.com/~nucmong/