
In what bit depth are images processed in the edit page?
OK, I am trying to understand the processing nature of resolve edit page. Which I'm not sure how it works. Maybe someone here can help me understand what is happening.
The main issue is the bit depth.
Lets say you drag a Text + fusion comp to a timeline and you open it in fusion and you apply glow tool. Just glow that ships with resolve. You boost the glow node and when you go back to edit page, you will probably expect glow to be around letters, but letters to be opaque, ad instead you will probably see trough them. This has been brought up few times by others in the past.
The issue is that in fusion, processing by default is at 32-bit float and that allows for values above 1.0.
0-1 scale is in fusion by default, 0 = black, and 1 = White.
If you work in integer 8-bit or 16-bit than it can't go above 1.0 value. But if you are in 32-bit float or half float, known as 16-bit float, you can go beyond 1.0. And that is the problem, especially in the alpha channel. More on this later.
For those who don't know a quick explanation.
Color Bit Depths
The term bit depth describes how many colors are available in the color palette used to make up an image. The higher the bit depth, the greater the precision of color in the image, and therefore the greater the color reproduction. The higher precision is most apparent in gradients with subtle changes. Lower bit-depth gradients have noticeable banding artifacts, whereas higher bit-depth images can reproduce more colors, so fewer, if any, banding artifacts occur.
Fusion page by default within DaVinci Resolve always uses 32-bit float bits per channel precision to process images. However, in Fusion Studio you can choose to process images with 8-bit integer, 16-bit integer, 16-bit float, and 32-bit float bits per channel. And technically you can do this in fusion page as well if you add ChangeDepth tool or use settings on node per node basis. But by default processing in fusion page is 32.bit float. Except for masks.
Understanding Integer vs. Float
Generally, 8-bit integer color processing is the lowest bit depth you’ll come across for video formats. 8-bit images come from older or consumer-grade video equipment like mobile phones and camcorders. If you try to perform any significant gamma or color correction on 8-bit images, you can often see more visible banding.
16-bit integer color depth doubles the amount of precision, eliminating problems with banding. Although you can select 16-bit integer processing for an 8-bit clip, it does not reduce banding that already exists in the original file. Still, it can help when adding additional effects to the clip. This sounds like the best solution until you realize that many digital cameras like Blackmagic Design URSA Mini Pro and others record in formats that can capture over-range values with shadow areas below 0.0 and super highlights above 1.0, which are clipped in 16-bit integer.
The 16-bit float color depth sacrifices a small amount of the precision from standard 16-bit integer color depth to allow storage of color values less than 0 and greater than 1.0. 16-bit float, sometimes called half-float, is most often found in the OpenEXR format and contains more than enough dynamic range for most film and HDR television purposes yet requires significantly less memory and processing time than is required for full float, 32-bit images.
.........................
The problem.
When using tool such as glow tool, by default it will apply its glow effect on all channels. Red, Green, Blue and also alpha. And that is the problem, alpha above 1.0 value when seen on the edit page viewer, becomes semi transparent. You can see trough the object you are applying glow effect to. Even if it looks good in fusion page, even in the color page, but not in the edit page.
Here in 32-bit float, glow tool produces RGB and A values in ranges that can go beyond 1.0.
This can be additionally confirmed with 3D histogram and when you see it on the edit page, you can actually see trough the letters, because A for Alpha in this case is 1.56 something, and edit page can seemingly only display up to 1.0, effectively clipping the rest, causing transparency issue.
..........................................
The Solution
The solution is really simple. All you have to do is limit Alpha values to be in 0-1 range. And you can do this in various ways. One method is to deactivate Alpha channel processing in the glow node itself, leaving Alpha untouched, usually at 1.0.
You can also add Change Depth Node before the glow and change to integer mode, either 8 or 16 bit. Which will limit values in 0-1 range. But unlike first option, you lose nice neon like glow effects that you can pool off in float range.
So you can also add a Brightness / Contrast node which has option to clip white and black values, keeping them in 0-1 range. And if you want to only limit alpha but keep the RGB you can only activate Alpha channel processing with the Brightness / Contrast node.
If you use third party awesome glow fuses like XGlow and Fast Glow, you probably won't see this problem because they already have alpha deactivate and glow is not applied to alpha, only RGB.
For some reason, Glow node that ships with resolve, by default has RGB and A turned on, causing the issue. If you deactivate A from processing, you can than right click on the node and save new settings as default for every new time you use the tool.
So the transparency is not really an issue. But it brings up a question.
........................
The Question
I was under the impression 32-bit float processing is applied across the resolve pages. But it would see that edit page viewer, is not in float mode processing. But in Integer. Curiously color page, and fusion and even "P" for presentation mode, when you go full screen preview on edit page, is not showing transparency issue, so I imagine its not in integer either.
Is edit page in integer when seeing footage in the viewer when editing? And if so, is it to boost performance since its not about image color manipulation as much as editing footage? And color, fusion and full screen preview are full float bit depth processing?
I would like some clarification on this?
By the way, I didn't use any proxy mode or caching or anything other than full quality for this test. You can test it as well on your machine.
Thank you.
OK, I am trying to understand the processing nature of resolve edit page. Which I'm not sure how it works. Maybe someone here can help me understand what is happening.
The main issue is the bit depth.
Lets say you drag a Text + fusion comp to a timeline and you open it in fusion and you apply glow tool. Just glow that ships with resolve. You boost the glow node and when you go back to edit page, you will probably expect glow to be around letters, but letters to be opaque, ad instead you will probably see trough them. This has been brought up few times by others in the past.
The issue is that in fusion, processing by default is at 32-bit float and that allows for values above 1.0.
0-1 scale is in fusion by default, 0 = black, and 1 = White.
If you work in integer 8-bit or 16-bit than it can't go above 1.0 value. But if you are in 32-bit float or half float, known as 16-bit float, you can go beyond 1.0. And that is the problem, especially in the alpha channel. More on this later.
For those who don't know a quick explanation.
Color Bit Depths
The term bit depth describes how many colors are available in the color palette used to make up an image. The higher the bit depth, the greater the precision of color in the image, and therefore the greater the color reproduction. The higher precision is most apparent in gradients with subtle changes. Lower bit-depth gradients have noticeable banding artifacts, whereas higher bit-depth images can reproduce more colors, so fewer, if any, banding artifacts occur.
Fusion page by default within DaVinci Resolve always uses 32-bit float bits per channel precision to process images. However, in Fusion Studio you can choose to process images with 8-bit integer, 16-bit integer, 16-bit float, and 32-bit float bits per channel. And technically you can do this in fusion page as well if you add ChangeDepth tool or use settings on node per node basis. But by default processing in fusion page is 32.bit float. Except for masks.
Understanding Integer vs. Float
Generally, 8-bit integer color processing is the lowest bit depth you’ll come across for video formats. 8-bit images come from older or consumer-grade video equipment like mobile phones and camcorders. If you try to perform any significant gamma or color correction on 8-bit images, you can often see more visible banding.
16-bit integer color depth doubles the amount of precision, eliminating problems with banding. Although you can select 16-bit integer processing for an 8-bit clip, it does not reduce banding that already exists in the original file. Still, it can help when adding additional effects to the clip. This sounds like the best solution until you realize that many digital cameras like Blackmagic Design URSA Mini Pro and others record in formats that can capture over-range values with shadow areas below 0.0 and super highlights above 1.0, which are clipped in 16-bit integer.
The 16-bit float color depth sacrifices a small amount of the precision from standard 16-bit integer color depth to allow storage of color values less than 0 and greater than 1.0. 16-bit float, sometimes called half-float, is most often found in the OpenEXR format and contains more than enough dynamic range for most film and HDR television purposes yet requires significantly less memory and processing time than is required for full float, 32-bit images.
.........................
The problem.
When using tool such as glow tool, by default it will apply its glow effect on all channels. Red, Green, Blue and also alpha. And that is the problem, alpha above 1.0 value when seen on the edit page viewer, becomes semi transparent. You can see trough the object you are applying glow effect to. Even if it looks good in fusion page, even in the color page, but not in the edit page.
Here in 32-bit float, glow tool produces RGB and A values in ranges that can go beyond 1.0.
- sshot-1622aa.jpg (93 KiB) Viewed 2757 times
This can be additionally confirmed with 3D histogram and when you see it on the edit page, you can actually see trough the letters, because A for Alpha in this case is 1.56 something, and edit page can seemingly only display up to 1.0, effectively clipping the rest, causing transparency issue.
- sshot-1623a.jpg (462.89 KiB) Viewed 2757 times
..........................................
The Solution
The solution is really simple. All you have to do is limit Alpha values to be in 0-1 range. And you can do this in various ways. One method is to deactivate Alpha channel processing in the glow node itself, leaving Alpha untouched, usually at 1.0.
You can also add Change Depth Node before the glow and change to integer mode, either 8 or 16 bit. Which will limit values in 0-1 range. But unlike first option, you lose nice neon like glow effects that you can pool off in float range.
So you can also add a Brightness / Contrast node which has option to clip white and black values, keeping them in 0-1 range. And if you want to only limit alpha but keep the RGB you can only activate Alpha channel processing with the Brightness / Contrast node.
- sshot-1627a.jpg (463.23 KiB) Viewed 2757 times
If you use third party awesome glow fuses like XGlow and Fast Glow, you probably won't see this problem because they already have alpha deactivate and glow is not applied to alpha, only RGB.
For some reason, Glow node that ships with resolve, by default has RGB and A turned on, causing the issue. If you deactivate A from processing, you can than right click on the node and save new settings as default for every new time you use the tool.
So the transparency is not really an issue. But it brings up a question.
........................
The Question
I was under the impression 32-bit float processing is applied across the resolve pages. But it would see that edit page viewer, is not in float mode processing. But in Integer. Curiously color page, and fusion and even "P" for presentation mode, when you go full screen preview on edit page, is not showing transparency issue, so I imagine its not in integer either.
Is edit page in integer when seeing footage in the viewer when editing? And if so, is it to boost performance since its not about image color manipulation as much as editing footage? And color, fusion and full screen preview are full float bit depth processing?
I would like some clarification on this?
By the way, I didn't use any proxy mode or caching or anything other than full quality for this test. You can test it as well on your machine.
Thank you.