Coder Social home page Coder Social logo

Comments (9)

J1Man avatar J1Man commented on August 16, 2024

P.S. I just saw your Doom9 forum thread. I signed up for Doom9 but it does not let me post until I have been registered for 5 days. I will post there 5 days later.

In the meantime, I would really appreciate if a Github user with a Doom9 account can copy/paste and post the above feature request message to the following thread:
http://forum.doom9.org/showthread.php?t=166504

Thanks

from fmtconv.

benmanw avatar benmanw commented on August 16, 2024

I carried it to Doom9.

from fmtconv.

J1Man avatar J1Man commented on August 16, 2024

Dear Benmanw,

Thanks for moving the message to Doom9. I won't be able to post on Doom9 until I have been registered for 5 days (until 3/19/2016). I would appreciate if you can also move the following message along with the source code patches that I generated.

I attached the source code patch zip file for fmtconv r18 that modifies SMPTE-ST-2084 function to "0 cd/m2 to 1000 cd/m2" luminance range and adds the "dci-p3" preset to primaries function. I also attached a zip file that contains the complete fmtconv r18 source code that is already patched. I would appreciate if somebody with Visual Studio can compile the 64bit fmtconv.dll for Windows 7. No matter how hard I tried in the last 2 days, I could not compile fmtconv.dll on Windows 7 by using MSYS2 and mingw64.

I saw that fmtconv uses the "Dolby Labs recommended version of SMPTE-ST-2084 function" specified on page 17/58 of the following PDF document.
http://www.mediaandbroadcast.bt.com/wp-content/uploads/D2936-UHDTV-final.pdf

I think that was good choice because Dolby Labs version is designed for easy scalability between luminance ranges. Upper bound of the range can be changed by dividing or multiplying the right hand side of the function shown on page 17/58 of the PDF document. That's how I modified lines 78 and 83 of the TransOp2084.cpp file.

I am sure that fmtconv author, Laurent, can find a good way to accept the upper bound (or an upper bound multiplier) for the luminance range as an input to SMPTE-ST-2084 function. Instead of hard coding the upper bound of the range into the function (as I did in my patch), it is better to have the ability to play with it.

I added "dci-p3" primaries preset after line 356 of Primaries.cpp function.

fmtconv-r18-HDR1000-patch-only.zip
fmtconv-r18-patched-with-HDR1000features.zip

Best Regards

from fmtconv.

sl1pkn07 avatar sl1pkn07 commented on August 16, 2024

that patchset is linux compatible?

greetings

from fmtconv.

myrsloik avatar myrsloik commented on August 16, 2024

This is only about the range. But why can't you simply modify it with Expr? All you've added on that side is a simple multiplication.

from fmtconv.

J1Man avatar J1Man commented on August 16, 2024

Dear sl1pkn07,

I do not have linux. I only have Windows 7. Having said that, in theory the patch should be compatible with all platforms (including linux) that fmtconv currently supports since the changes I made are very minor. For SMPTE-ST-2084 function there are only two lines of multiplication changes. For the primaries there are 7 lines added for "dci-p3" preset that follow the exact same preset format that fmtconv author used for other presets.

from fmtconv.

J1Man avatar J1Man commented on August 16, 2024

Dear Myrsloik,

Thanks for the feedback. How can I change the luminance mapping range of Fmtconv's SMPTE-ST-2084 function from the original "0 cd/m2 to 10000 cd/m2" range to the desired "0 cd/m2 to 1000 cd/m2" range by using Expr function? Please let me know. That would be very useful to me.

The main reason why I created the patch is to clearly show which modification is necessary to fmtconv's SMPTE-ST-2084 function for HDR1000 compatibility. All that is needed for HDR1000 compatibility is a very very simple multiplication change in the source code (as you also pointed out by examining the changes I made). If I just pointed Laurent to the PDF file with Dolby Labs SMPTE-ST-2084 formula and asked him to figure out how to make the changes, it would take him much much longer to figure out what he needs to change.

Laurent's final implementation will probably be different. As I said in my message, instead of hard coding the upper bound of the range into the function (as I did in my patch), it is better to have the ability to play with it. He will probably find a good way to accept the upper bound (or an upper bound multiplier) for the luminance range as an input to SMPTE-ST-2084 function. I don't have enough programming experience to make major changes like that in the source code.

from fmtconv.

myrsloik avatar myrsloik commented on August 16, 2024

Simple multiplication by 10 for everything. This way you can do it without modifying fmtconv itself
clip = core.std.Expr(clip, expr="x 10 *")

from fmtconv.

EleonoreMizo avatar EleonoreMizo commented on August 16, 2024

– I added the DCI-P3 preset to primaries22cefbc
– Use cont=1000.0/10000.0 in transfer when converting from a transfer characteristic where 1.0 represents 1000 cd/m² to the ST 2084 characteristic.

from fmtconv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.