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 tetrahedral interpolation #8
Comments
As of my post in Doom9 from August 2022 https://forum.doom9.org/showthread.php?t=175552&page=6 It could be something as easy as:
As a simple example on why Tetrahedral can produce better results than Trilinear, take a look at the following script:
Here's the result (Left interpolation is Trilinear, the current default behavior for Cube, while the Right is Tetrahedral): As you can see from the graph, the result on the right hand side is much smoother and it's generally what studios expect, which is why getting trilinear interpolation approved by production houses adds unnecessary complications. |
So, in a nutshell, @sekrit-twc will you be keen to add tetrahedral interpolation as an option for users? |
Thank you so much! :D |
Good news. |
"there were attempts by the AVS community to port vscube to Avisynth" For the record, the AVS support was done by me (Donald Graft = DG). It works perfectly, and it has been successfully used by many for some time now. It's not an "attempt". sekrit-twc, if you want to absorb it and maintain it going forward, that's fine with me. If not, I am willing to continue tracking your releases in my AVS version. Regards and thank you for your work. |
Implemented cpu=1...3 in latest commit. Looks correct on my side, but please verify. Took a look at avscube.cpp, and it needs to be updated due to internal API changes. |
cpu=1...3 is working for me. sekrit-twc, did you plan to modify avscube.cpp for the new API or would you like me to do it? Thank you. |
Please submit an updated avscube in a separate issue. |
Sorry for the late reply, but I unfortunately was busy at work and Tormento couldn't test 'cause he only has AVX (no AVX2 nor AVX512). Anyway, I grabbed your latest changes and made a new vscube build to test on my Intel Xeon Gold 6238R (which properly supports AVX512). I applied the same LUT with all the cpu modes and I saved the result as tiff, then I compared the deviation with a lattice point graph. According to the preliminary results, they all seem to match. |
Guys, here is a test version for AVS+ support (64-bit): https://rationalqm.us/cube/AVSCube_test.rar Will submit code when verified. |
Thanks Donald :) I'm gonna be testing first thing on Monday to see if the results are consistent. The latter being a football game from last season:
I'll try to report back over the rest of the week and let you guys know how it went, but needless to say everyone is gonna appreciate it. Tormento and I were thrilled about the news and so was everyone else. |
Something doesn't feel right.
They produce three VERY different results. What I don't understand is why Cube() tetrahedral and DGCube() tetrahedral are so much different. Souce: https://we.tl/t-xqG6XosULK |
Good to know I did it right. I'm willing to look into the timecube code but I'll need a link to the cube file you used. Did you try cpu=0 for timecube tetrahedral? If it is broken there too I'll be able to troubleshoot it. If cpu=0 works but cpu=1...3 does not that will be up to sekrit-twc. I can link the document I used to implement tetrahedral if it will help anyone. DG |
There was a bug in the AVX2 code that was silently patched. Resync to master. |
Thank you. Here is a test build for Avisynth+ support: |
Hi guys, I noticed that I never replied here. |
ffmpeg's default lut3d tetrahedral interpolation can produce better results in some cases , such as this example posted by ErazorTT
http://forum.doom9.org/showpost.php?p=1972815&postcount=102
http://forum.doom9.org/showthread.php?t=175552&page=6
The text was updated successfully, but these errors were encountered: