Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
0

Why is AE 'visually' 15bit int instead of 16bit int?

Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

The range of values in 16bit integer is 65536 but when AE is set to 16bit the values in the inspector only go up to 32768 which is 15bit. Also the Levels effect show this 15bit as max value.

 

I find it hard to test and verify if files are also written with 15bit precision but regardless, I do not understand the reason why AE shows 15bit inside the software. It's technically wrong.

 

Can I get some clarity on this?

Bug Unresolved
TOPICS
Compositing and VFX , UI and UX , Workflow

Views

142
Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
10 Comments
Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

Hey @Amir Stone , thanks for the explanation. I don't really get it though. Are you talking about the internal image processing for plugins/native effects? Because for the user there is no such thing as negative values or values over 'white'. This is only possible when working in an actual floating point working space which AE can only do in 32bits.

I also hope that some day AE will implement a 16bit float working space option because for many usecases 32bit is not necessary and theoretically 16float would perform faster.

 

Anyway, even for internal processing it looks to be not very true, otherwise a levels effect would be able to 'recover' lost data if the operations are kept within the processing chain of the tool before the output is written to the viewer.

 

Happy to be proven wrong.

 

Shebbe_0-1741196415562.pngexpand image

 

Votes

Translate

Report

Report
Adobe Employee ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

Here's some more relevant information from a discussion within the team on this last week.

 

Note that the max value is 32768, not 32767. Also from another team member - "This is the 16b (integer) representation used by AE and Photoshop, and other Adobe components. It was done this way to have an exact midpoint and so that divide/max operations could be a pure shift."

Votes

Translate

Report

Report
Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@jgjerde I also spotted that nuance in the max value. It sort of feels like a hack to me. Is this mechanism in place only for that purpose? It theoretically means that precision is reduced to 15bit for the readout on the info panel and the levels effect? I know it probably won't affect anyone in real world projects but I find it very weird that it works this way 🙂

Do you have any thoughts on implementing a 16b float option in AE?

Votes

Translate

Report

Report
Adobe Employee ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

Sorry I was incorrect. My brain was thinking 32bit. Jamie is correct.

Votes

Translate

Report

Report
Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@Amir Stone ah no worries!

@jgjerde sorry but could you please explain more also for future reference...

Amir's claim was that it is 32768 because the full 16bit range is shifted to "-32768 -> 32768". Is that still true? Or is it a reduced/remapped representation of full range to 0 to 32768 for sake of having a mid point? Does it affect precision in any way? Or is it only the numbers we see in the information?

 

My intuition tells me that because the range of the levels effect only present half of the total possible values you can only manipulate those values in that level of precision, at least regarding that particular effect.

 

Again fully aware that the likeliness of this being an issue in real world projects is super small but I'd like to have solid information when teaching others about bit depths and how it is used in AE.

Votes

Translate

Report

Report
Adobe Employee ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@Shebbe thanks for the feedback, we'll make a note of your request.

Votes

Translate

Report

Report
Adobe Employee ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@shebbe it's 0 - 32768 as stated in the first pargraph here on the help site - https://helpx.adobe.com/after-effects/using/color-basics.html

Votes

Translate

Report

Report
Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@jgjerde I understand that "it's 32768" but that doesn't really answer my question? The link you provided only states the following: "16-bpc pixels can have values for each color channel from 0 (black) to 32,768 (pure, saturated color)" But that claim is actually false? 16bit should have a range of 0-65535?

Votes

Translate

Report

Report
Adobe Employee ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

@shebbe - The text in the help doc is explaining what the 16-bpc format is internally in After Effects. This format does technically use 16 bits because the max value is 32768 (not 32767). However, yes - you are correct that an unsigned 16 bit integer does have a full range of  0 - 65535, so as an example if you were to convert a source in a full range format you would lose some precision. Hope this helps.

Votes

Translate

Report

Report
Community Expert ,
Mar 05, 2025 Mar 05, 2025

Copy link to clipboard

Copied

LATEST

@jgjerde interesting, thanks! Maybe you do not have an answer to this but I would wonder what motivated the choice of halving the range. Wouldn't subtracting 1 value from 65536 achieve the same for sake of having a middle value?

Votes

Translate

Report

Report