YOUR ACCOUNT

Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
I'm currently testing some of the new HDR features with different HDR sample images.
It would be really useful if you could add HDR support to the following components:

Average Color
Minimum Level
Maximum Level
Hue / Saturation (possibly via HSY model)
Levels (if possible)

I understand why it might not be possible to add HDR support in Brightness / Contrast as you cannot assume 0.5 as midpoint / greypoint.

Another less essential thing is the lack of .hdr format support. A lot of HDR images are distributed in this format.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Sphinx. wrote:
Minimum Level, Maximum Level


These will be difficult, because these are histogram-based. We'd have to remove the Cutoff input to ditch the histograms and support HDR.

Quote
Sphinx. wrote:
Hue / Saturation (possibly via HSY model)


We did several attempts to HDRize it, no luck so far. We'll get back to it when we have more time (probably sometime after the release.)

Quote
Sphinx. wrote:
Levels (if possible)


It's already has HDR support, sort of. Also, IIRC, its use of the Gamma function (in the Midpoint parameter) poses a problem for negative RGB channels -- though we'd better ask the programmers.
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
These will be difficult, because these are histogram-based. We'd have to remove the Cutoff input to ditch the histograms and support HDR.


Ok, yeah I can see why that might be a problem. Perhaps adding a slightly different set of components could be solution (Minimum Value, Maximum Value)?

So you're actually building a full histogram - interesting (how about putting that into a fixed gradient in the external category).
While the range is not fixed with HDR in general, it is fixed for a given HDR image (i.e. there is a minimum and a maximum), so it should still be possible to build a histogram (via temporary range normalization)?
  Details E-Mail
Dmitry Sapelnikov
Filter Forge, Inc. AKA Egret
Posts: 76
Filters: 5
Quote
Sphinx. wrote:
While the range is not fixed with HDR in general, it is fixed for a given HDR image (i.e. there is a minimum and a maximum), so it should still be possible to build a histogram (via temporary range normalization)?

It's a right idea. Of course, it's possible but the main issue of histogram-based image filters is how to choose number of historgram "bins" (i.e. levels of discretization). It's incorrect to use the same number of bins for images with different RGB value ranges, isn't it? smile;) Range-dependent histograms makes us to rewrite FF historgram infrastructure. Unfortunately have no time to do that. smile:(
BTW you question about Levels has given me an idea how to implement fully-hdr Levels smile:)
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
(...) the main issue of histogram-based image filters is how to choose number of historgram "bins" (i.e. levels of discretization). It's incorrect to use the same number of bins for images with different RGB value ranges, isn't it?


With 8 bpc images there is not much doubt, here you can represent all values with direct correlation btwn value and index - but how did you handle histogram building with floating point images earlier? I guess by clamping and mapping to 8 bit range.

The question is if the direct correlation btwn value and index is really needed: i.e. the bin at e.g. index 255 could represent another value than 255, say image maximum value, and the value at index 0 could hold the image minimum.

Since floating point images are likely to contain lots of almost, but not equal values, some sort of weighted approach is needed for all intermediate values, as they probably will not match the index value for a given bin. When adding intermediate values that are not in direct correlation with an index, the values could be added with a weight to the two nearest entries.

Anyways - its just an idea, I haven't tested it in a real implementation yet. I'm also curious about another approach: sort each channel in the image and consider the result as a 1D array, resample that array down to the wished final table size. This should represent some sort of histogram, but I'm not sure about the actual mapping here..

Quote
BTW you question about Levels has given me an idea how to implement fully-hdr Levels


That is great news! Specially if you also figure out how to HDRize Min./Max. Level smile:)

About HDR version of HSL adjustment:
I did some tests yesterday - this is indeed a tough problem, mainly regarding increase in saturation because "full saturation" is range dependent. Shifting hue: no problem, decreasing saturation: no problem, lightness: no problem, but increasing saturation.. can't figure out that one..
  Details E-Mail
Dmitry Sapelnikov
Filter Forge, Inc. AKA Egret
Posts: 76
Filters: 5
Quote
Sphinx. wrote:
About HDR version of HSL adjustment

"Lasciate ogni speranza voi ch 'entrate" smile;)
I've spent about 3 days for the issue. Adequate solution CAN'T exist as HLS model is natively-LDR. Calculations of the model are based on the size of color RGB cube. For example, Photoshop has HDR hue/saturation correction via HLS, but it's a fake HDR because it performs correction in RGB cube with dimensions [0..20] (so, the upper border for HDR is only 20)
An implementation via HSY is the right approach, but HSY is not so user-friendly as HLS. smile:(
  Details E-Mail

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

33,712 Registered Users
+19 new in 30 days!

153,533 Posts
+31 new in 30 days!

15,348 Topics
+73 new in year!

Create an Account

Online Users Last minute:

32 unregistered users.