|64 Bit Processing and the Quality of Color|
James Hughes, Senior Software Engineer, Spaceward Graphics Ltd.
Spaceward Graphics Ltd have recently launched version 2 of their award winning Satori paint software for Windows NT (Intel and Alpha) and Windows 95. Satori is able to import and export 64-bit images, and mix and match them with their 32-bit brethren. Running on Windows NT, Satori offers high performance layer and object based 32/64 bit painting, special effects, color correction, animation and batch processing on a platform capable of running the vast amount of software available for the windows platform.
One of its almost unique selling points is its ability to seamlessly handle 64 bit color images, but what are the advantages of 64 bit processing, and does it have disadvantages?
Before we start our explanation of 64 bit images processing, it is important to distinguish the use of 32 and 64 bit image data from the use of 32 and 64 bit processors. Much is being said of the latest 32 and 64 bit operating systems, running on the latest 32 and 64 bit processors, but this has nothing to do with the image data being processed. Any processor is capable of dealing with these varying bit pictures given the right software; you do not need a 64-bit processor to deal with a 64-bit image. One caveat of this though, is that generally, a 64-bit processor with a 64-bit operating system will probably be faster at processing a 64-bit image, because it is optimized for working with data that is 64 bits in length.
Most systems on the market, both dedicated and software based, can handle 32 bit images. A 32 bit image consists of 3 color planes, usually red, green and blue, and an additional alpha (or transparency) plane. Each one of these planes is usually 8 bits of information, making 32 in total. With a 64-bit system, each plane is represented by 16 bits. The doubling of the number of bits increases the resolution of each color to 2 to the power of 16, so instead of the 256 levels per color in a 32-bit system, we now have 65536. But why would we want this many color levels?
Imagine our image consists of a color ramp, left to right, from black to red. Using the 8 bits available for red in a 32-bit system, we can have at most 256 levels. Therefor, if our image is greater than 256 pixels wide, we have to duplicate red values. While this is not so noticeable at standard video resolutions, HDTV, photographs or images at film resolution (which are generally about 4000 pixels wide, but it can be as high as 16000 pixels for IMAX) will have large areas of red that are all the same value. This can be quite noticeable because the human eye is extremely efficient at picking out edges. This imaging artefact is known as banding, and can also be noticed in the alpha channel when compositing images together.
There is no banding in a 64 bit image until the horizontal resolution of the image is greater than 65536 pixels, at which point values have to be duplicated as in a 32 bit image.
While banding of this type is not generally noticeable at video resolution, there are still areas where 64 bit processing of images can give improved color quality. Even when importing and exporting 32 bit image files, internal processing at 64 bits per pixel can lead to improved color correction, chroma removal, filtering, scaling, compositing and anti-aliasing. A system that allows the import of images at 32 bits can
The increased color resolution of 64-bits is also very useful for processing small detail in an image, such as a brush which is a pixel or smaller in size. In these circumstances the added accuracy of the 64-bit processing means finer and better looking brushes are possible, while in 32-bit they may disappear completely. See fig.2.
So we have talked of some of the advantages of 64 bit processing, but what of the disadvantages. The first is obviously size. By doubling the number of bits used to store each pixel, twice the amount of memory is required to store it. For example, a 1k by 1k image at 32 bits would require 4MB of storage (uncompressed)
1024 pixels x 1024 pixels = 1048576 pixels total
Each pixel uses 32 bits equals 4 bytes, so the total numbers of bytes needed to represent the picture is 4x1048576 = 4194304 bytes.
Converting to megabytes we have 4914304/(1024*1024) = 4MB
Using the same calculation, but with 64 bits per pixels (8 bytes) the image at 64-bit would require 8MB.
The current drop in memory and disk drive prices around the world means this is not as great a disadvantage as might be expected, and if only the processing stage is 64 bit, the disk space requirements are unchanged.
Using a resolution independent paint system such as Satori negates the need for large memory requirements, with even very large 64 bit images being loaded and edited in real time.
Another perceived disadvantage of 64-bit imaging is the added processing requirement for the extra data. Although you might expect a doubling of processor power to achieve the same results this is not the case. Most modern processors are equally happy dealing with 8, 16 or 32 bit data lengths, with little or no degradation of performance for increasing lengths. The overheads generally are down to the added time requirements of moving larger amounts of data around the system, and can be minimal, especially in a resolution independent system
One final disadvantage is the lack of input/output devices at this high bit depth. Most film and flatbed scanners support greater than 8 bits per plane, but video capture devices are generally 8 or 10 bit. Output devices also vary greatly, but higher bit depths usually involve a larger financial outlay. However, if you only wish to process at 64 bit, any input/output bit depths are fine. File formats are now available for storing and transferring images of 64-bit depth (Cineon, PNG, TIFF, RIR) so the barriers to using this advanced imaging feature are almost fully eroded.
So to summarize:
Satori is available off the shelf for standard PC system from £295, and a fraction of the cost of equivalent hardware based solutions. You can now have a high end, 64 bit paint system on a top of the range PC for as little as £3500, comparing very favorably with other software only systems on SGI, and exceptionally well against hardware based alternatives.