Alpha Channels and Premultiplication

Adobe After Effects Source

Alpha Channels and Premultiplication

Clearly, you don't need to be able to write out the compositing formula to composite, any more than you need to be able to design a car in order to drive one. After Effects helps you by shielding this formula and many other mathematical portions of the compositing operations from your view.

Ignorance is not always bliss, however, when it comes to premultiplication, which After Effects also largely shields from view when you build a composition. Like Photoshop, After Effects uses non-premultiplied data for the compositing operation (that's how it operates internally), yet it never explicitly tells you (or even allows you to find out) how and when an image is premultiplied and unmultiplied as it makes its way through the image pipeline.

Fortunately, After Effects does an effective job of managing premultiplication under normal circumstances—fortunate because managing it yourself is a tedious process. You just need to know how things can go wrong, the symptoms that show you that something has gone wrong, and what to do to set it right.

Premultiplication Illustrated

Premultiplication exists for one reason only: so that source images look nice, with realistic, anti-aliased edges, before they are composited.

That's right, we have premultiplication just so that a matted object looks right against a black background when it comes out of, say, your 3D animation program. All premultiplication does is composite the foreground against the background, so that the edges and transparency blend as well into that solid color (typically black) as they would against the final background.

It is the color channels, not the alpha channel, that distinguish premultiplied and straight alpha images. When you ask After Effects to "guess" how to interpret the footage (on import, by choosing Guess in the Interpret Footage dialog, or using Ctrl+F/Cmd+F), it looks for a solid color background with edge pixels that seem to have had that color multiplied into them.

What does it mean to have the background multiplied into the edge pixels? Revisit "Geek Alert: The Compositing Formula," but imagine the background value to be 0,0,0. There's your answer. The effect is to darken semi-transparent edge pixels if the background is black, to lighten them if it's white, and to really wreak havoc with them if it's any other color.

The close-ups in Figures 3.9a and b show a section of the same foreground image with the alpha interpreted properly and with it misinterpreted. A misinterpreted alpha either fails to remove the background color from the edge pixels, or removes color that should actually be present.

Figures3.9.png|500

Most computer-generated images are premultiplied, unless the artist takes specific steps to counteract the process. The Video Output section of the Output Module Settings for items in the Render Queue includes a pulldown to specify whether you render with Straight or Premultiplied alpha; by default, it is set to Premultiplied.

Why should you care about premultiplication? First of all, because incorrectly managing your alpha channels can produce undesirable fringe artifacts. But just as important, you may find yourself in a situation where those artifacts seem to be presenting themselves although you've carefully managed the process; Suddenly your composited elements have black edges around them. Your job depends on getting to the bottom of this. There are two basic ways it can happen:

Unfortunately, users who aren't confident enough to trace the underlying problem often end up resorting to all sorts of strange machinations to try to get rid of the black edge; re-rendering the element against a different color, choking the alpha matte even though it comes from a 3D program and is accurate, and possibly even more frightening and desperate maneuvers.

TIP
To see any alpha channel displayed in straight alpha mode (all pixels with any transparency displaying as pure white), choose RGB Straight from the Show Channel pull-down menu, below the Composition and Layer panels (Alt+Shift+4/Option+Shift+4).

Most people's ace in the hole if they don't really understand premultiplication is the Guess feature that sits next to the premultiplication settings in the Footage Settings dialog. A preference in Preferences > Import determines what happens when footage is imported with an alpha channel; if this is set to anything other than Ask User (the default), you may inadvertently import files without knowing what is happening to their alpha channels.

Is Guess ever wrong? Certainly it can be, if the factors it expects in a premultiplied alpha are there in a straight image or vice versa. Thus it is probably best not to automate this process. In the case of a premultiplied image, After Effects attempts to guess not only the setting but also the color of the background; generally this will be black or white, but watch out for situations where a 3D artist has become creative and rendered against canary yellow or powder blue. For that reason, there is an eyedropper adjacent to the Matted with Color setting (Figure 3.11). When in doubt, examine your footage without the alpha applied: If you see a solid background that is neither pure black or white and After Effects isn't detecting it, use the eyedropper.

TIP
Remove Color Matting will not work properly on a layer with a track matte; because this is the main situation in which it's useful, be sure to precompose the layer and its track matte prior to applying Channel > Remove Color Matting.
UnMult, originally created by John Knoll and available free from Red Giant Software (and included on this book's disc), is useful in tricky situations in which Remove Color Matting won't do the job because there is no alpha channel. It uses the black areas of the images to create transparency and remove premultiplied black from the resulting transparent pixels.

Solving the Problem Internally

The really gnarly fact is that premultiplication errors can be introduced within the After Effects pipeline. Usually this happens when you apply a selection as a track matte to footage (described in more detail toward the end of this chapter), taking After Effects out of the loop; the application still assumes there is no premultiplication present.

If you see fringing in your edges and need to solve it internally in After Effects, there is a tool to help: the Remove Color Matting effect ( Figures 3.12a and b ). This effect has one setting only, for background color, because all it does is apply the unpremultiply calculation (the antidote to premultiplication) in the same manner that it would be applied in the Footage Settings.

Figures3.12.png

Figures 3.12a and b In 3.12a, the plane saved against a white background has transparency applied via a track matte, which does not unpremultiply, thus revealing evident white fringing against black. Remove Color Matting with Color set to pure white corrects the problem (b), but it is necessary to precompose the color and track matte layers first.

Introduction to Premultiplication for After Effects Users