AVSCube
(→Trilinear vs Tetrahedral) |
(Updated documentation to reflect changes in version 1.4) |
||
Line 3: | Line 3: | ||
|{{Author/Donald Graft}} | |{{Author/Donald Graft}} | ||
|v1.3 | |v1.3 | ||
− | |3=[ | + | |3=[https://rationalqm.us/cube/AVSCube_test.rar avscube_1.4.zip] |
|4=Adjustment Filters | |4=Adjustment Filters | ||
|5=Open source | |5=Open source | ||
Line 84: | Line 84: | ||
== Changelog == | == Changelog == | ||
Version Date Changes | Version Date Changes | ||
+ | v1.4 2023/07/12 - Added tetrahedral interpolation. | ||
v1.3 2022/01/21 - Updated to timecube version 1.3 base code. | v1.3 2022/01/21 - Updated to timecube version 1.3 base code. | ||
- Added frame properties passthrough. | - Added frame properties passthrough. | ||
Line 97: | Line 98: | ||
!!width="150px"| Download | !!width="150px"| Download | ||
!!width="150px"| Mirror | !!width="150px"| Mirror | ||
+ | |- | ||
+ | !v1.4 | ||
+ | |[https://rationalqm.us/cube/AVSCube_test.rar avscube_1.4.zip] | ||
|- | |- | ||
!v1.3 | !v1.3 |
Revision as of 09:37, 13 July 2023
Abstract | |
---|---|
Author | Donald Graft |
Version | v1.3 |
Download | avscube_1.4.zip |
Category | Adjustment Filters |
License | Open source |
Discussion | Doom9 Thread |
Contents |
Description
AviSynth+ plugin to load and apply Adobe 3D LUTs to a clip. Ported from VapourSynth timecube plugin.
Requirements
Syntax and Parameters
- Cube (clip, string "cube", int "cpu", int "interp", int "fullrange")
- clip =
- Input clip; the filter receives and delivers the RGBP16 color space.
- clip =
- string cube = ""
- Full path of the 3D LUT file. This must be an Adobe *.cube file.
- string cube = ""
- int cpu = INT_MAX
- cpu: default INT_MAX, which selects best SIMD.
- 0 : SIMD_NONE
- 1 : SIMD_SSE41
- 2 : SIMD_AVX2
- 3 : SIMD_AVX512
- cpu: default INT_MAX, which selects best SIMD.
- int cpu = INT_MAX
- int interp = 0
- interp: default 0 selects the worse interpolation method for backwards compatibility reasons.
- 0 : trilinear interpolation
- 1 : tetrahedral interpolation
- interp: default 0 selects the worse interpolation method for backwards compatibility reasons.
- int interp = 0
- int fullrange = 1
- 0 : limited range
- 1 : full range
- int fullrange = 1
Trilinear vs Tetrahedral
Trilinear interpolation is used by default only for historical reasons.
When Cube() was first developed it only had one interpolation method, namely trilinear.
Although this was far from ideal as it can produce ripples, plenty of people used it (as they were using this function), therefore when tetrahedral was introduced it was agreed to leave trilinear as default to allow people to still obtain the same results when upgrading the version.
However, in practice, tetrahedral should always be used and it's the suggested method.
Source (left) - Trilinear (center) - Tetrahedral (right):
As you can see, in the right hand side waveform (tetrahedral) there are no ripples, unlike the ones you can see in the trilinear interpolation at the center.
Examples
Apply 3D LUT to clip obtained from BlankClip:
BlankClip(pixel_type="RGBP16", color=$ff0000) Cube("...\test.cube") ConvertToYUV420()
Apply 3D LUT to HDR10 PQ clip obtained from DGSource() to go to HLG:
# Source DGSource("THE GREAT WALL.dgi")
# From Limited Range 10bit YUV420 to 16bit Full Range Planar RGB z_ConvertFormat(pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full", dither_type="error_diffusion")
# Load and apply "PQ_to_HLG.cube" to go from PQ to HLG Cube("PQ_to_HLG.cube", fullrange=1, interp=1)
# From 16bit Full Range Planar RGB to Limited Range 10bit YUV420 with dithering z_ConvertFormat(pixel_type="YUV420P10", colorspace_op="rgb:std-b67:2020:full=>2020:std-b67:2020:limited", dither_type="error_diffusion")
Changelog
Version Date Changes v1.4 2023/07/12 - Added tetrahedral interpolation. v1.3 2022/01/21 - Updated to timecube version 1.3 base code. - Added frame properties passthrough. - Updated the help document. v1.1 2019/01/25 - Rather than upgrade to r2a I ported the fullrange fix only. v1.0 2018/08/16 - Initial release
Archived Downloads
Version | Download | Mirror |
---|---|---|
v1.4 | avscube_1.4.zip | |
v1.3 | avscube_1.3.zip | avscube_1.3.zip |
v1.1 | avscube_1.1.rar | avscube_1.1.rar |
v1.0 | avscube_1.0.rar | avscube_1.0.rar |
External Links
- Doom9 Forum - FranceBB LUT Collection
- GitHub - ColorMatch3D - tool that creates a .cube 3D LUT that matches colors of a reference image with a different grading. Discussion thread
- GitHub - hlg-tools - this tool suite consists of the basics needed to generate 3D LUTs that will convert video streams from Perceptual Quantizer (PQ) HDR into Hybrid-Log Gamma (HLG) HDR. Discussion thread, original discussion thread
- AMPAS CLF LUT PseudoCode - Walkthrough on different interpolation methods
Back to External Filters ←