Skip to main content
johnt53984649
Inspiring
July 1, 2019
Question

Color Depth in After Effects Export Options

  • July 1, 2019
  • 1 reply
  • 18642 views

I am trying to understand how color depth works.  So there are two things to consider:

  1. The bit depth of my project
  2. The bit depth of the codec I export with

After Effects lets me select between 8, 16, and 32 bits per channel in the project settings:

FlpbqVf.png

However, when I go to export, I get this nonsense:

zRKlyT3.png

I don't understand what corresponds to what.  How many bits per channel is each of these options?  Essentially, I want this table filled in:

DepthBits Per Channel (BPC)
256 Colors
Millions of Colors
Millions of Colors+
Trillions of Colors
Trillions of Colors+
Floating Point
Floating Point+

I'm assuming that Millions of Colors is 8 bits per channel, but I'm not confident.  I feel like it might be 10.  Here's an example of what I mean:

When I export using these settings:

diJpsqF.png

And then I import that exported MXF file into After Effects, I get this:

0ejFdUy.png

So if I exported it with "Millions of Colors", why does it get imported as having "Trillions of Colors"?  I just don't understand this.

This topic has been closed for replies.

1 reply

Legend
July 1, 2019

The color depth for the project decides the accuracy of calculations when all the layers and effects are combined together. Even if your source footage is all in 8 bits per channel, adding something like the Glow effect can generate pixels which are in between the 256 allowed color values, so you gain smoothness by changing the project to 16pbc or 32bpc, at the expense of slower processing and much more RAM.

The "Depth" menu under Video Output uses the old fashioned way of describing bit depth. It multiplies the number of possible values for R, G and B, and shows "+" if it also includes an alpha channel.

For 8bpc data (0-255) we get 256*256*256 = 16,777,216 = "millions" of colors.

16bpc = "trillions" (32768 values per channel)

32bpc = "floating point" (in 32bpc we use decimals to represent each channel)

"256 colors" is a special case where only one 8-bit channel is exported

We stopped using this descriptor years ago because it falls apart when you have extra channels (e.g. in EXR). After Effects never bothered to change the menu.

However this is only the bit depth of the data that After Effects sends to the encoder library. The bit depth of the exported file also depends on what the particular codec can support. If you send 16bpc "trillions" to a codec that only stores 10-bit numbers, then your file will only be 10pbc. If you send 8pbc "millions" to a codec that always stores data in 16-bit, then the file will contain 16-bit numbers but they will be limited to only 256 possible values. Also if your project is in 8pbc, changing the Video Output menu to Floating Point doesn't magically increase the quality.

johnt53984649
Inspiring
July 2, 2019

This is helpful, but to make sure I'm understanding, let's take this scenario.  Suppose I am working in a project using a bit depth of 16 bpc. 

Then I want to export using the MXF OP1a AVC-Intra Class 100 1080 59.94 fps codec.  I know that the final video file is 10 bpc.

However, the bit depth was chosen to be "millions of colors" because that's the only option that After Effects give me in the "Output Module Settings."

Because "Millions of Colors" refers to 8 bits per channel, even though my project is in 16 bpc, and even though my codec of choice supports 10 bit per channel color, I assume that my video is actually only truly 8 bpc because I have "Millions of Colors" selected.  Am I correct, or is my video truly 10 bpc?

Legend
July 3, 2019

Thank you very much for that suggestion.  I have confirmed that the output is indeed using all 10 bits per channel when rendered out with the project settings in 16 bpc, despite the fact that I chose "Millions of Colors."  I'll document my results here for future reference:

For all of the tests, the same gradient was exported using the same codec and the same "Millions of Colors" option, with the only different being the project's bit depth.

Original AE Project was in 8 bpc:

Original AE project was in 16 bpc:

Original AE project was in 32 bpc:

So, despite the fact that "Millions of Colors" was selected as the output depth in all scenarios, and all of those MXF files are listed as storing the video in 10 bpc, we can see that if the project bpc was 16 or higher, then the MXF codec does indeed use those extra two bits.

So I guess "Millions of Colors" could mean 8 or 10 bpc.


I assume you are aware that it is illegal to use CC 2014. All licenses were revoked in May. Users running versions before CC2018 can be sued for trademark infringement, so not the best plan to advertise it with screenshots.

Upgrade to CC2019, export your MXFs through Media Encoder, and none of this "millions vs trillions" stuff matters.