From: AvramD@aol.com Date: Sat, 02 Jul 94 16:22:35 EDT Subject: copy of better-8bit-qt-color.txt for archives Here you go Igor... Thanks! ---------------------- If you've seen some really beautiful 16 or 24 bit quicktime moovs on someone else's expensive Mac, and you've seen really beautiful GIF images on your own piddling 8 bit Mac (256 colors), and you whish you could get the quality of the later when viewing the former (and you don't mind run-on sentences), then you've come to the right posting! This is a simple trick that anyone can do to improve the color of quicktime moovs on a mac that can only display 256 simultaneous colors. It doesn't always work, and sometimes it makes them look much worse. But there are lots of moovs out there that it does help, and hey - it's free! Background (experienced graphics people can skip this): Color Macs can actually display over 16 million colors. The trouble is that due to memory limitations, many Macs can only display 256 of these at one time. The reason that GIFs look so good even if you only have 256 colors is that they come with a custom color palate. This means that they can contain any 256 colors from the full palate, not just the standard 256 system colors. You may notice that when you display a nice GIF, things in the background like your desktop pattern and some of your icons will have messed up colors. Lots of really nice pictures only have a few hundred colors in them just by chance. For example, if you had a picture of a six pack of Coke cans, you would need many shades of red and grey, but if your background was just white, you might not need anything else. Thus, it would be possible for the Coke cans to appear with the same quality in 256 colors as they would in 16 million color mode. The problem with quicktime: Lots of quicktime movies don't need more than a few hundred colors to look perfect. As with GIFs, you ought to be able to get these movies to look nearly top quality even with only 256 colors, simply by using a custom color palate. Ideally, if you changed the palate with every frame, you would be able to get qt moovs to look as good as GIFs. Unfortunately, that's too much work, and qt would be unusably slow. So, Apple just uses the standard 256 color palate, and picks the best matches it can. The theory: If you have a quicktime moov that over the course of its life doesn't use more than a few hundred colors, you should be able to pick a color palate that is customized for the colors that the moov as a whole uses. Then the moov would look much better than it did under the standard 256 system colors. It would be much closer to it's ideal 24 bit appearance, especially if the colors the moov uses are very different from the standard palate (which is usually the case). The method: Well, you CAN pick a custom palate to display quicktime moovs! And thanks to readily available tools, a wonderful operating system, and a system limitation 8-), it's very easy. Most graphics applications that can display GIFs (e.g. GifConverter, available at Sumex) will customize the color palate according to whatever image they are currently displaying. All you need to do is get a picture that has a color palate that is appropirate for the movie, display it in the graphics program, then simultaneously play the movie. But where can you get a picture with a good color palate? Every frame in the moov you are viewing can be used as such a picture. Most qt moovs are stored in 24 bit color, regardless of the system that they will be viewed on. When you copy a frame from the moov to the clipboard (just fast forward to the frame, go to Edit, and select Copy), MoviePlayer copies the picture in 24 bit color even if it is displaying it in only 8 bit color. You can then paste it into a graphics application, and most apps will customize the color palate on the spot to give you the best 256 colors for displaying that picture. Ok, the procedure: (I'll use GifConverter as the example graphics app) 1. Open the moov. 2. Open GifConverter. 3. Find a frame in the moov that is a good sample of what colors the moov needs. 4. Copy it to the clipboard. 5. In GifConverter, select New from the File menu 6. Paste the frame into the new GifConverter document. (GifConverter will adjust the color palate). 7. Switch directly to MoviePlayer and watch the moov (don't go through the finder). -- The moov will be shown with the current color palate instead of the standard one. When you switch directly from the graphics app to MoviePlayer, the system doesn't reinstall the standard color palate (that's the application's responsability, and MoviePlayer doesn't bother). If you switch to the finder, it may try to readjust the palate. Just go back to the graphics app, and then make the switch directly (e.g. by clicking on the moov window). The limitations: Some moovs have drastic scene changes with very different sets of colors. If this happens, you probably won't be able to get a frame that represents both equally. The result is that the unrepresented scene will look much worse than if you just played the moov straight. Other moovs just plain have too many colors, and will look equally awful. Side notes: This only helps with the color related problem of 8 bit quicktime. The other main issue is speed: The algorithm to display graphics in 16 bit or 24 bit mode is much simpler because the system doesn't have to decide which color is closest to the requested color. Theoretically, there should be no change in speed between the standard palate and a custom palate. In practice, it may be that the system is optimized for working with the standard palate, or it may be that it is easier to work with an optimized palate. I couldn't tell either way. Have fun, and feel free to send questions or comments! -Avram Disclaimers: 1) Yes, I know that GIF's aren't the only images that take advantage of custom palates 2) I omitted all discussion of dithering for the sake of simplification 3) I can't imagine any way that anyone could cause any harm by doing this, but if you come up with one, it's not my fault.