-
Notifications
You must be signed in to change notification settings - Fork 612
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE REQUEST] Add additional approximate diff methods to oiiotool #4276
Comments
Others I've been meaning to try, or that people have suggested over the years:
I'm sure there's been lots of work in this area over the years since Yee, I'm not even sure which are considered best of class these days. |
What @lgritz cited sounds good to me. However, now that we have HDR displays, another thing to consider is whether we want our difference metric to also account for that. And if we do, we probably need the help of ocio so that these computations are done in the proper display space. |
FWIW, I have found Flip extremely useful in CI over the last few years. |
Chris points out that the Flip has sample code here: https://github.com/NVlabs/flip/blob/main/cpp/FLIP.h |
Planning on taking a swing at implementing Flip for DevDays |
Great, Cole! I know people have wanted this feature for a long time, and we'll certainly use it at work. It's bigger than most dev days tasks, so don't be discouraged if it takes more than a day to get finalized, because it's a high-impact task and worth the wait. |
Also, @colerjstevenson, it's ok to break it into several sized chunks, potentially even as separate PRs to get them reviewed and merged sequentially rather than feeling that you must have every last detail. Roughly speaking, what you need for functionality like this is:
|
Thanks Larry! This gives be a great starting point to work off of! yeah I have a suspicious this might a project that requires work past the deadline of dev days |
It is not a problem for it to take longer. Even when people get all the coding done in a day, it's quite common for it to simmer a few more days to get review cycle completed, make minor requested changes, etc. No big deal. Also, it is fine to break into multiple PRs. If you are comfortable with the scope of task you chose to take on, I'm fine with it extending past the day. Especially because this one is something we've really wanted and will definitely be used right away. |
just as an update, this is definetly a project that I'll need to continue post devdays but now I have a better idea of the scope so I'll keep picking away at it over the next little bit and keep you posted |
All good! I look forward to seeing it completed. Please don't hesitate to ask questions or at any point show us what you have for feedback. |
Progress update: I have a "working" version of my implementation pushed to my fork, there is still lot of work to be done, including documentation, tests, python bindings, and general cleaning, but this version can successful use oiiotool on the command line to compute the FLIP difference of both LDR and HDR images |
I just took a look and made some comments on your fork. But I think it would be better to make it a real PR against this project (you can mark it as a "draft"), so that it's easier to get feedback as you go and that we can all make suggestions in small steps. The last thing you want is to work on something for a long time and then find out only at the final review that it has long since veered off into some kind of design that doesn't fit in with our requirements or conventions. The first place I want to steer you can be summarized by two points:
I recommend proceeding in truly bite-sized chunks -- like, I would make the first instalment for feedback just be the changes to imagebufalgo.h that shows the new function declaration and a detailed comment providing the "specification" for what that IBA function does (from a user's point of view, essentially writing the documentation first to make sure it's an API design that makes sense). |
That makes total sense, I'll start looking into that, I had a suspicion this was only a version 1, I'll submit a pull request and then start picking away at it |
oiiotool
has options for absolute tolerance based diff as well as pdiff.It can be useful to have additional diff methods based on whether the image differences are "perceptually significant". One use for this is to prevent false fails in automated validations of image generation/processing systems where very minor or "imperceptible" differences are allowable.
Some potential diff methods could be:
oiiotool
with this methodology can be found in an OpenColorIO scriptThe text was updated successfully, but these errors were encountered: